@flightlesslabs/dodo-ui 0.1.5 → 0.3.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 (90) hide show
  1. package/dist/index.d.ts +6 -0
  2. package/dist/index.js +4 -0
  3. package/dist/stories/Home.mdx +57 -7
  4. package/dist/stories/assets/dark-theme-toggle.png +0 -0
  5. package/dist/stories/components/Form/Button/Button.stories.svelte +10 -5
  6. package/dist/stories/components/Form/Button/Button.svelte +213 -211
  7. package/dist/stories/components/Form/Button/Button.svelte.d.ts +4 -1
  8. package/dist/stories/components/Form/Button/Events/Events.stories.svelte +40 -0
  9. package/dist/stories/components/Form/Button/Events/Events.stories.svelte.d.ts +18 -0
  10. package/dist/stories/components/Form/Button/Roundness/Roundness.stories.svelte +14 -11
  11. package/dist/stories/components/Form/Button/utils/scss/mixins.scss +21 -21
  12. package/dist/stories/components/Form/PasswordInput/Events/Events.stories.svelte +168 -0
  13. package/dist/stories/components/Form/PasswordInput/Events/Events.stories.svelte.d.ts +18 -0
  14. package/dist/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +37 -0
  15. package/dist/stories/components/Form/PasswordInput/PasswordInput.stories.svelte.d.ts +21 -0
  16. package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte +219 -0
  17. package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte.d.ts +59 -0
  18. package/dist/stories/components/Form/PasswordInput/Roundness/Roundness.stories.svelte +20 -0
  19. package/dist/stories/components/Form/{ExampleButton/ExampleButton.stories.svelte.d.ts → PasswordInput/Roundness/Roundness.stories.svelte.d.ts} +3 -4
  20. package/dist/stories/components/Form/PasswordInput/Size/Size.stories.svelte +16 -0
  21. package/dist/stories/components/Form/PasswordInput/Size/Size.stories.svelte.d.ts +26 -0
  22. package/dist/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte +31 -0
  23. package/dist/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte.d.ts +26 -0
  24. package/dist/stories/components/Form/TextInput/Events/Events.stories.svelte +148 -0
  25. package/dist/stories/components/Form/TextInput/Events/Events.stories.svelte.d.ts +18 -0
  26. package/dist/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +21 -0
  27. package/dist/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte.d.ts +26 -0
  28. package/dist/stories/components/Form/TextInput/Size/Size.stories.svelte +17 -0
  29. package/dist/stories/components/Form/TextInput/Size/Size.stories.svelte.d.ts +26 -0
  30. package/dist/stories/components/Form/TextInput/TextInput.stories.svelte +35 -0
  31. package/dist/stories/components/Form/TextInput/TextInput.stories.svelte.d.ts +21 -0
  32. package/dist/stories/components/Form/TextInput/TextInput.svelte +166 -0
  33. package/dist/stories/components/Form/TextInput/TextInput.svelte.d.ts +56 -0
  34. package/dist/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +47 -0
  35. package/dist/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte.d.ts +26 -0
  36. package/dist/stories/philosophy/Colors/Colors.mdx +43 -0
  37. package/dist/stories/philosophy/Colors/Colors.stories.svelte +20 -0
  38. package/dist/stories/philosophy/Colors/Colors.stories.svelte.d.ts +19 -0
  39. package/dist/stories/philosophy/Colors/Colors.svelte +33 -0
  40. package/dist/stories/philosophy/Colors/Colors.svelte.d.ts +6 -0
  41. package/dist/stories/philosophy/Colors/Opacity.stories.svelte +9 -0
  42. package/dist/stories/philosophy/Colors/Opacity.stories.svelte.d.ts +19 -0
  43. package/dist/stories/philosophy/Colors/Opacity.svelte +20 -0
  44. package/dist/stories/philosophy/Colors/Opacity.svelte.d.ts +18 -0
  45. package/dist/stories/philosophy/Colors/Swatches/Palette.svelte +15 -0
  46. package/dist/stories/philosophy/Colors/Swatches/Palette.svelte.d.ts +6 -0
  47. package/dist/stories/philosophy/Colors/Swatches/Swatch.svelte +18 -0
  48. package/dist/stories/philosophy/Colors/Swatches/Swatch.svelte.d.ts +8 -0
  49. package/dist/stories/philosophy/Colors/Swatches/Swatches.svelte +39 -0
  50. package/dist/stories/philosophy/Colors/Swatches/Swatches.svelte.d.ts +8 -0
  51. package/dist/stories/philosophy/Colors/utils/color.d.ts +4 -0
  52. package/dist/stories/philosophy/Colors/utils/color.js +38 -0
  53. package/dist/stories/philosophy/Themes.mdx +23 -0
  54. package/dist/styles/_colors.css +2 -2
  55. package/dist/styles/_components.css +7 -6
  56. package/dist/styles/_minimal-reset.css +3 -0
  57. package/dist/styles/global.css +1 -0
  58. package/dist/types.d.ts +1 -1
  59. package/package.json +3 -2
  60. package/src/lib/index.ts +13 -0
  61. package/src/lib/stories/components/Form/Button/Button.stories.svelte +10 -5
  62. package/src/lib/stories/components/Form/Button/Button.svelte +36 -30
  63. package/src/lib/stories/components/Form/Button/Events/Events.stories.svelte +42 -0
  64. package/src/lib/stories/components/Form/Button/Roundness/Roundness.stories.svelte +14 -11
  65. package/src/lib/stories/components/Form/Button/utils/scss/mixins.scss +21 -21
  66. package/src/lib/stories/components/Form/PasswordInput/Events/Events.stories.svelte +174 -0
  67. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +41 -0
  68. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.svelte +361 -0
  69. package/src/lib/stories/components/Form/PasswordInput/Roundness/Roundness.stories.svelte +20 -0
  70. package/src/lib/stories/components/Form/PasswordInput/Size/Size.stories.svelte +16 -0
  71. package/src/lib/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte +31 -0
  72. package/src/lib/stories/components/Form/TextInput/Events/Events.stories.svelte +153 -0
  73. package/src/lib/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +21 -0
  74. package/src/lib/stories/components/Form/TextInput/Size/Size.stories.svelte +17 -0
  75. package/src/lib/stories/components/Form/TextInput/TextInput.stories.svelte +39 -0
  76. package/src/lib/stories/components/Form/TextInput/TextInput.svelte +293 -0
  77. package/src/lib/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +47 -0
  78. package/src/lib/styles/_colors.css +2 -2
  79. package/src/lib/styles/_components.css +7 -6
  80. package/src/lib/styles/_minimal-reset.css +3 -0
  81. package/src/lib/styles/global.css +1 -0
  82. package/src/lib/types.ts +1 -1
  83. package/dist/stories/Getting Started.mdx +0 -13
  84. package/dist/stories/components/Form/ExampleButton/ExampleButton.stories.svelte +0 -30
  85. package/dist/stories/components/Form/ExampleButton/ExampleButton.svelte +0 -14
  86. package/dist/stories/components/Form/ExampleButton/ExampleButton.svelte.d.ts +0 -16
  87. package/dist/stories/components/Form/ExampleButton/button.css +0 -30
  88. package/src/lib/stories/components/Form/ExampleButton/ExampleButton.stories.svelte +0 -30
  89. package/src/lib/stories/components/Form/ExampleButton/ExampleButton.svelte +0 -29
  90. package/src/lib/stories/components/Form/ExampleButton/button.css +0 -30
@@ -1,13 +1,13 @@
1
1
  <script lang="ts" module>export {};
2
2
  </script>
3
3
 
4
- <script lang="ts">const { children, type = 'button', size = 'normal', color = 'default', roundness = 1, variant = 'text', outline = false, compact = false, name, id, title, class: className = '', disabled = false, onclick, before, after, href, download, hreflang, media, ping, rel, target, anchorMediaType, referrerpolicy, _unsafeChildrenStringForTesting, } = $props();
4
+ <script lang="ts">const { children, type = 'button', size = 'normal', color = 'default', roundness = '1x', variant = 'text', outline = false, compact = false, fullWidth = false, name, id, title, class: className = '', disabled = false, onclick, before, after, href, download, hreflang, media, ping, rel, target, anchorMediaType, referrerpolicy, _unsafeChildrenStringForTesting, } = $props();
5
5
  export {};
6
6
  </script>
7
7
 
8
8
  {#snippet buttonContent()}
9
9
  {#if before}
10
- <span class="button-content--before">
10
+ <span class="content--before">
11
11
  {@render before()}
12
12
  </span>
13
13
  {/if}
@@ -19,7 +19,7 @@ export {};
19
19
  {/if}
20
20
 
21
21
  {#if after}
22
- <span class="button-content--after">
22
+ <span class="content--after">
23
23
  {@render after()}
24
24
  </span>
25
25
  {/if}
@@ -41,8 +41,9 @@ export {};
41
41
  class:outline
42
42
  class:compact
43
43
  class:disabled
44
+ class:fullWidth
44
45
  class={[
45
- 'dodo-ui-button',
46
+ 'dodo-ui-Button',
46
47
  `size--${size}`,
47
48
  `color--${color}`,
48
49
  `variant--${variant}`,
@@ -56,8 +57,9 @@ export {};
56
57
  <button
57
58
  class:outline
58
59
  class:compact
60
+ class:fullWidth
59
61
  class={[
60
- 'dodo-ui-button',
62
+ 'dodo-ui-Button',
61
63
  `size--${size}`,
62
64
  `color--${color}`,
63
65
  `variant--${variant}`,
@@ -76,100 +78,100 @@ export {};
76
78
  {/if}
77
79
 
78
80
  <style>:global(:root) {
79
- --dodo-ui-button-disabled-color: var(--dodo-color-default-400);
80
- --dodo-ui-button-disabled-bg: var(--dodo-color-default-200);
81
- --dodo-ui-button-outline-default: var(--dodo-color-default-400);
82
- --dodo-ui-button-text-default-bg: var(--dodo-color-default-100);
83
- --dodo-ui-button-text-default-hover-bg: var(--dodo-color-default-200);
84
- --dodo-ui-button-text-default-active-bg: var(--dodo-color-default-300);
85
- --dodo-ui-button-solid-default-bg: var(--dodo-color-default-500);
86
- --dodo-ui-button-solid-default-hover-bg: var(--dodo-color-default-600);
87
- --dodo-ui-button-solid-default-active-bg: var(--dodo-color-default-700);
88
- --dodo-ui-button-outline-primary: var(--dodo-color-primary-400);
89
- --dodo-ui-button-text-primary-bg: var(--dodo-color-primary-100);
90
- --dodo-ui-button-text-primary-hover-bg: var(--dodo-color-primary-200);
91
- --dodo-ui-button-text-primary-active-bg: var(--dodo-color-primary-300);
92
- --dodo-ui-button-solid-primary-bg: var(--dodo-color-primary-500);
93
- --dodo-ui-button-solid-primary-hover-bg: var(--dodo-color-primary-600);
94
- --dodo-ui-button-solid-primary-active-bg: var(--dodo-color-primary-700);
95
- --dodo-ui-button-outline-safe: var(--dodo-color-safe-400);
96
- --dodo-ui-button-text-safe-bg: var(--dodo-color-safe-100);
97
- --dodo-ui-button-text-safe-hover-bg: var(--dodo-color-safe-200);
98
- --dodo-ui-button-text-safe-active-bg: var(--dodo-color-safe-300);
99
- --dodo-ui-button-solid-safe-bg: var(--dodo-color-safe-500);
100
- --dodo-ui-button-solid-safe-hover-bg: var(--dodo-color-safe-600);
101
- --dodo-ui-button-solid-safe-active-bg: var(--dodo-color-safe-700);
102
- --dodo-ui-button-outline-warning: var(--dodo-color-warning-400);
103
- --dodo-ui-button-text-warning-bg: var(--dodo-color-warning-100);
104
- --dodo-ui-button-text-warning-hover-bg: var(--dodo-color-warning-200);
105
- --dodo-ui-button-text-warning-active-bg: var(--dodo-color-warning-300);
106
- --dodo-ui-button-solid-warning-bg: var(--dodo-color-warning-500);
107
- --dodo-ui-button-solid-warning-hover-bg: var(--dodo-color-warning-600);
108
- --dodo-ui-button-solid-warning-active-bg: var(--dodo-color-warning-700);
109
- --dodo-ui-button-outline-danger: var(--dodo-color-danger-400);
110
- --dodo-ui-button-text-danger-bg: var(--dodo-color-danger-100);
111
- --dodo-ui-button-text-danger-hover-bg: var(--dodo-color-danger-200);
112
- --dodo-ui-button-text-danger-active-bg: var(--dodo-color-danger-300);
113
- --dodo-ui-button-solid-danger-bg: var(--dodo-color-danger-500);
114
- --dodo-ui-button-solid-danger-hover-bg: var(--dodo-color-danger-600);
115
- --dodo-ui-button-solid-danger-active-bg: var(--dodo-color-danger-700);
116
- --dodo-ui-button-outline-info: var(--dodo-color-info-400);
117
- --dodo-ui-button-text-info-bg: var(--dodo-color-info-100);
118
- --dodo-ui-button-text-info-hover-bg: var(--dodo-color-info-200);
119
- --dodo-ui-button-text-info-active-bg: var(--dodo-color-info-300);
120
- --dodo-ui-button-solid-info-bg: var(--dodo-color-info-500);
121
- --dodo-ui-button-solid-info-hover-bg: var(--dodo-color-info-600);
122
- --dodo-ui-button-solid-info-active-bg: var(--dodo-color-info-700);
81
+ --dodo-ui-Button-disabled-color: var(--dodo-color-default-400);
82
+ --dodo-ui-Button-disabled-bg: var(--dodo-color-default-200);
83
+ --dodo-ui-Button-outline-default: var(--dodo-color-default-400);
84
+ --dodo-ui-Button-text-default-bg: var(--dodo-color-default-100);
85
+ --dodo-ui-Button-text-default-hover-bg: var(--dodo-color-default-200);
86
+ --dodo-ui-Button-text-default-active-bg: var(--dodo-color-default-300);
87
+ --dodo-ui-Button-solid-default-bg: var(--dodo-color-default-500);
88
+ --dodo-ui-Button-solid-default-hover-bg: var(--dodo-color-default-600);
89
+ --dodo-ui-Button-solid-default-active-bg: var(--dodo-color-default-700);
90
+ --dodo-ui-Button-outline-primary: var(--dodo-color-primary-400);
91
+ --dodo-ui-Button-text-primary-bg: var(--dodo-color-primary-100);
92
+ --dodo-ui-Button-text-primary-hover-bg: var(--dodo-color-primary-200);
93
+ --dodo-ui-Button-text-primary-active-bg: var(--dodo-color-primary-300);
94
+ --dodo-ui-Button-solid-primary-bg: var(--dodo-color-primary-500);
95
+ --dodo-ui-Button-solid-primary-hover-bg: var(--dodo-color-primary-600);
96
+ --dodo-ui-Button-solid-primary-active-bg: var(--dodo-color-primary-700);
97
+ --dodo-ui-Button-outline-safe: var(--dodo-color-safe-400);
98
+ --dodo-ui-Button-text-safe-bg: var(--dodo-color-safe-100);
99
+ --dodo-ui-Button-text-safe-hover-bg: var(--dodo-color-safe-200);
100
+ --dodo-ui-Button-text-safe-active-bg: var(--dodo-color-safe-300);
101
+ --dodo-ui-Button-solid-safe-bg: var(--dodo-color-safe-500);
102
+ --dodo-ui-Button-solid-safe-hover-bg: var(--dodo-color-safe-600);
103
+ --dodo-ui-Button-solid-safe-active-bg: var(--dodo-color-safe-700);
104
+ --dodo-ui-Button-outline-warning: var(--dodo-color-warning-400);
105
+ --dodo-ui-Button-text-warning-bg: var(--dodo-color-warning-100);
106
+ --dodo-ui-Button-text-warning-hover-bg: var(--dodo-color-warning-200);
107
+ --dodo-ui-Button-text-warning-active-bg: var(--dodo-color-warning-300);
108
+ --dodo-ui-Button-solid-warning-bg: var(--dodo-color-warning-500);
109
+ --dodo-ui-Button-solid-warning-hover-bg: var(--dodo-color-warning-600);
110
+ --dodo-ui-Button-solid-warning-active-bg: var(--dodo-color-warning-700);
111
+ --dodo-ui-Button-outline-danger: var(--dodo-color-danger-400);
112
+ --dodo-ui-Button-text-danger-bg: var(--dodo-color-danger-100);
113
+ --dodo-ui-Button-text-danger-hover-bg: var(--dodo-color-danger-200);
114
+ --dodo-ui-Button-text-danger-active-bg: var(--dodo-color-danger-300);
115
+ --dodo-ui-Button-solid-danger-bg: var(--dodo-color-danger-500);
116
+ --dodo-ui-Button-solid-danger-hover-bg: var(--dodo-color-danger-600);
117
+ --dodo-ui-Button-solid-danger-active-bg: var(--dodo-color-danger-700);
118
+ --dodo-ui-Button-outline-info: var(--dodo-color-info-400);
119
+ --dodo-ui-Button-text-info-bg: var(--dodo-color-info-100);
120
+ --dodo-ui-Button-text-info-hover-bg: var(--dodo-color-info-200);
121
+ --dodo-ui-Button-text-info-active-bg: var(--dodo-color-info-300);
122
+ --dodo-ui-Button-solid-info-bg: var(--dodo-color-info-500);
123
+ --dodo-ui-Button-solid-info-hover-bg: var(--dodo-color-info-600);
124
+ --dodo-ui-Button-solid-info-active-bg: var(--dodo-color-info-700);
123
125
  }
124
126
 
125
127
  :global(.dodo-theme--dark) {
126
- --dodo-ui-button-disabled-bg: var(--dodo-color-default-100);
127
- --dodo-ui-button-disabled-color: var(--dodo-color-default-500);
128
- --dodo-ui-button-outline-default: var(--dodo-color-default-300);
129
- --dodo-ui-button-text-default-bg: var(--dodo-color-default-50);
130
- --dodo-ui-button-text-default-hover-bg: var(--dodo-color-default-100);
131
- --dodo-ui-button-text-default-active-bg: var(--dodo-color-default-200);
132
- --dodo-ui-button-solid-default-bg: var(--dodo-color-default-300);
133
- --dodo-ui-button-solid-default-hover-bg: var(--dodo-color-default-200);
134
- --dodo-ui-button-solid-default-active-bg: var(--dodo-color-default-100);
135
- --dodo-ui-button-outline-primary: var(--dodo-color-primary-300);
136
- --dodo-ui-button-text-primary-bg: var(--dodo-color-primary-50);
137
- --dodo-ui-button-text-primary-hover-bg: var(--dodo-color-primary-100);
138
- --dodo-ui-button-text-primary-active-bg: var(--dodo-color-primary-200);
139
- --dodo-ui-button-solid-primary-bg: var(--dodo-color-primary-300);
140
- --dodo-ui-button-solid-primary-hover-bg: var(--dodo-color-primary-200);
141
- --dodo-ui-button-solid-primary-active-bg: var(--dodo-color-primary-100);
142
- --dodo-ui-button-outline-safe: var(--dodo-color-safe-300);
143
- --dodo-ui-button-text-safe-bg: var(--dodo-color-safe-50);
144
- --dodo-ui-button-text-safe-hover-bg: var(--dodo-color-safe-100);
145
- --dodo-ui-button-text-safe-active-bg: var(--dodo-color-safe-200);
146
- --dodo-ui-button-solid-safe-bg: var(--dodo-color-safe-300);
147
- --dodo-ui-button-solid-safe-hover-bg: var(--dodo-color-safe-200);
148
- --dodo-ui-button-solid-safe-active-bg: var(--dodo-color-safe-100);
149
- --dodo-ui-button-outline-warning: var(--dodo-color-warning-300);
150
- --dodo-ui-button-text-warning-bg: var(--dodo-color-warning-50);
151
- --dodo-ui-button-text-warning-hover-bg: var(--dodo-color-warning-100);
152
- --dodo-ui-button-text-warning-active-bg: var(--dodo-color-warning-200);
153
- --dodo-ui-button-solid-warning-bg: var(--dodo-color-warning-300);
154
- --dodo-ui-button-solid-warning-hover-bg: var(--dodo-color-warning-200);
155
- --dodo-ui-button-solid-warning-active-bg: var(--dodo-color-warning-100);
156
- --dodo-ui-button-outline-danger: var(--dodo-color-danger-300);
157
- --dodo-ui-button-text-danger-bg: var(--dodo-color-danger-50);
158
- --dodo-ui-button-text-danger-hover-bg: var(--dodo-color-danger-100);
159
- --dodo-ui-button-text-danger-active-bg: var(--dodo-color-danger-200);
160
- --dodo-ui-button-solid-danger-bg: var(--dodo-color-danger-300);
161
- --dodo-ui-button-solid-danger-hover-bg: var(--dodo-color-danger-200);
162
- --dodo-ui-button-solid-danger-active-bg: var(--dodo-color-danger-100);
163
- --dodo-ui-button-outline-info: var(--dodo-color-info-300);
164
- --dodo-ui-button-text-info-bg: var(--dodo-color-info-50);
165
- --dodo-ui-button-text-info-hover-bg: var(--dodo-color-info-100);
166
- --dodo-ui-button-text-info-active-bg: var(--dodo-color-info-200);
167
- --dodo-ui-button-solid-info-bg: var(--dodo-color-info-300);
168
- --dodo-ui-button-solid-info-hover-bg: var(--dodo-color-info-200);
169
- --dodo-ui-button-solid-info-active-bg: var(--dodo-color-info-100);
128
+ --dodo-ui-Button-disabled-bg: var(--dodo-color-default-100);
129
+ --dodo-ui-Button-disabled-color: var(--dodo-color-default-500);
130
+ --dodo-ui-Button-outline-default: var(--dodo-color-default-300);
131
+ --dodo-ui-Button-text-default-bg: var(--dodo-color-default-50);
132
+ --dodo-ui-Button-text-default-hover-bg: var(--dodo-color-default-100);
133
+ --dodo-ui-Button-text-default-active-bg: var(--dodo-color-default-200);
134
+ --dodo-ui-Button-solid-default-bg: var(--dodo-color-default-300);
135
+ --dodo-ui-Button-solid-default-hover-bg: var(--dodo-color-default-200);
136
+ --dodo-ui-Button-solid-default-active-bg: var(--dodo-color-default-100);
137
+ --dodo-ui-Button-outline-primary: var(--dodo-color-primary-300);
138
+ --dodo-ui-Button-text-primary-bg: var(--dodo-color-primary-50);
139
+ --dodo-ui-Button-text-primary-hover-bg: var(--dodo-color-primary-100);
140
+ --dodo-ui-Button-text-primary-active-bg: var(--dodo-color-primary-200);
141
+ --dodo-ui-Button-solid-primary-bg: var(--dodo-color-primary-300);
142
+ --dodo-ui-Button-solid-primary-hover-bg: var(--dodo-color-primary-200);
143
+ --dodo-ui-Button-solid-primary-active-bg: var(--dodo-color-primary-100);
144
+ --dodo-ui-Button-outline-safe: var(--dodo-color-safe-300);
145
+ --dodo-ui-Button-text-safe-bg: var(--dodo-color-safe-50);
146
+ --dodo-ui-Button-text-safe-hover-bg: var(--dodo-color-safe-100);
147
+ --dodo-ui-Button-text-safe-active-bg: var(--dodo-color-safe-200);
148
+ --dodo-ui-Button-solid-safe-bg: var(--dodo-color-safe-300);
149
+ --dodo-ui-Button-solid-safe-hover-bg: var(--dodo-color-safe-200);
150
+ --dodo-ui-Button-solid-safe-active-bg: var(--dodo-color-safe-100);
151
+ --dodo-ui-Button-outline-warning: var(--dodo-color-warning-300);
152
+ --dodo-ui-Button-text-warning-bg: var(--dodo-color-warning-50);
153
+ --dodo-ui-Button-text-warning-hover-bg: var(--dodo-color-warning-100);
154
+ --dodo-ui-Button-text-warning-active-bg: var(--dodo-color-warning-200);
155
+ --dodo-ui-Button-solid-warning-bg: var(--dodo-color-warning-300);
156
+ --dodo-ui-Button-solid-warning-hover-bg: var(--dodo-color-warning-200);
157
+ --dodo-ui-Button-solid-warning-active-bg: var(--dodo-color-warning-100);
158
+ --dodo-ui-Button-outline-danger: var(--dodo-color-danger-300);
159
+ --dodo-ui-Button-text-danger-bg: var(--dodo-color-danger-50);
160
+ --dodo-ui-Button-text-danger-hover-bg: var(--dodo-color-danger-100);
161
+ --dodo-ui-Button-text-danger-active-bg: var(--dodo-color-danger-200);
162
+ --dodo-ui-Button-solid-danger-bg: var(--dodo-color-danger-300);
163
+ --dodo-ui-Button-solid-danger-hover-bg: var(--dodo-color-danger-200);
164
+ --dodo-ui-Button-solid-danger-active-bg: var(--dodo-color-danger-100);
165
+ --dodo-ui-Button-outline-info: var(--dodo-color-info-300);
166
+ --dodo-ui-Button-text-info-bg: var(--dodo-color-info-50);
167
+ --dodo-ui-Button-text-info-hover-bg: var(--dodo-color-info-100);
168
+ --dodo-ui-Button-text-info-active-bg: var(--dodo-color-info-200);
169
+ --dodo-ui-Button-solid-info-bg: var(--dodo-color-info-300);
170
+ --dodo-ui-Button-solid-info-hover-bg: var(--dodo-color-info-200);
171
+ --dodo-ui-Button-solid-info-active-bg: var(--dodo-color-info-100);
170
172
  }
171
173
 
172
- .dodo-ui-button {
174
+ .dodo-ui-Button {
173
175
  cursor: pointer;
174
176
  outline: none;
175
177
  transition: all 150ms;
@@ -179,224 +181,224 @@ export {};
179
181
  justify-content: center;
180
182
  align-items: center;
181
183
  font-family: inherit;
182
- font-weight: 500;
183
184
  background-color: transparent;
184
- border: 1px solid;
185
+ border-style: solid;
186
+ border-width: var(--dodo-ui-element-border-width);
185
187
  border-color: transparent;
186
188
  outline: 0;
187
189
  color: inherit;
188
190
  letter-spacing: 0.3px;
189
191
  }
190
- .dodo-ui-button.size--normal {
192
+ .dodo-ui-Button.size--normal {
191
193
  height: var(--dodo-ui-element-height-normal);
192
194
  font-size: 1rem;
193
195
  padding: 0 12px;
194
196
  min-width: 45px;
195
197
  }
196
- .dodo-ui-button.size--small {
198
+ .dodo-ui-Button.size--small {
197
199
  height: var(--dodo-ui-element-height-small);
198
200
  padding: 0 8px;
199
201
  font-size: 0.9rem;
200
202
  min-width: 35px;
201
203
  }
202
- .dodo-ui-button.size--large {
204
+ .dodo-ui-Button.size--large {
203
205
  height: var(--dodo-ui-element-height-large);
204
206
  font-size: 1.1rem;
205
207
  padding: 0 16px;
206
208
  min-width: 85px;
207
209
  }
208
- .dodo-ui-button.roundness--1 {
209
- border-radius: var(--dodo-ui-element-roundness-1);
210
+ .dodo-ui-Button.roundness--1x {
211
+ border-radius: var(--dodo-ui-element-roundness-1x);
210
212
  }
211
- .dodo-ui-button.roundness--2 {
212
- border-radius: var(--dodo-ui-element-roundness-2);
213
+ .dodo-ui-Button.roundness--2x {
214
+ border-radius: var(--dodo-ui-element-roundness-2x);
213
215
  }
214
- .dodo-ui-button.roundness--3 {
215
- border-radius: var(--dodo-ui-element-roundness-3);
216
+ .dodo-ui-Button.roundness--3x {
217
+ border-radius: var(--dodo-ui-element-roundness-3x);
216
218
  }
217
- .dodo-ui-button.roundness--4 {
218
- border-radius: var(--dodo-ui-element-roundness-4);
219
- }
220
- .dodo-ui-button.roundness--full {
219
+ .dodo-ui-Button.roundness--full {
221
220
  border-radius: 50%;
222
221
  }
223
- .dodo-ui-button.color--default.variant--text {
222
+ .dodo-ui-Button.color--default.variant--text {
224
223
  color: var(--dodo-color-default-800);
225
- background-color: var(--dodo-ui-button-text-default-bg);
224
+ background-color: var(--dodo-ui-Button-text-default-bg);
226
225
  }
227
- .dodo-ui-button.color--default.variant--text:hover {
228
- background-color: var(--dodo-ui-button-text-default-hover-bg);
226
+ .dodo-ui-Button.color--default.variant--text:hover {
227
+ background-color: var(--dodo-ui-Button-text-default-hover-bg);
229
228
  }
230
- .dodo-ui-button.color--default.variant--text:active {
231
- background-color: var(--dodo-ui-button-text-default-active-bg);
229
+ .dodo-ui-Button.color--default.variant--text:active {
230
+ background-color: var(--dodo-ui-Button-text-default-active-bg);
232
231
  }
233
- .dodo-ui-button.color--default.variant--text.outline {
234
- border-color: var(--dodo-ui-button-outline-default);
232
+ .dodo-ui-Button.color--default.variant--text.outline {
233
+ border-color: var(--dodo-ui-Button-outline-default);
235
234
  }
236
- .dodo-ui-button.color--default.variant--solid {
235
+ .dodo-ui-Button.color--default.variant--solid {
237
236
  color: var(--dodo-color-constant-white);
238
- background-color: var(--dodo-ui-button-solid-default-bg);
237
+ background-color: var(--dodo-ui-Button-solid-default-bg);
239
238
  }
240
- .dodo-ui-button.color--default.variant--solid:hover {
241
- background-color: var(--dodo-ui-button-solid-default-hover-bg);
239
+ .dodo-ui-Button.color--default.variant--solid:hover {
240
+ background-color: var(--dodo-ui-Button-solid-default-hover-bg);
242
241
  }
243
- .dodo-ui-button.color--default.variant--solid:active {
244
- background-color: var(--dodo-ui-button-solid-default-active-bg);
242
+ .dodo-ui-Button.color--default.variant--solid:active {
243
+ background-color: var(--dodo-ui-Button-solid-default-active-bg);
245
244
  }
246
- .dodo-ui-button.color--primary.variant--text {
245
+ .dodo-ui-Button.color--primary.variant--text {
247
246
  color: var(--dodo-color-primary-800);
248
- background-color: var(--dodo-ui-button-text-primary-bg);
247
+ background-color: var(--dodo-ui-Button-text-primary-bg);
249
248
  }
250
- .dodo-ui-button.color--primary.variant--text:hover {
251
- background-color: var(--dodo-ui-button-text-primary-hover-bg);
249
+ .dodo-ui-Button.color--primary.variant--text:hover {
250
+ background-color: var(--dodo-ui-Button-text-primary-hover-bg);
252
251
  }
253
- .dodo-ui-button.color--primary.variant--text:active {
254
- background-color: var(--dodo-ui-button-text-primary-active-bg);
252
+ .dodo-ui-Button.color--primary.variant--text:active {
253
+ background-color: var(--dodo-ui-Button-text-primary-active-bg);
255
254
  }
256
- .dodo-ui-button.color--primary.variant--text.outline {
257
- border-color: var(--dodo-ui-button-outline-primary);
255
+ .dodo-ui-Button.color--primary.variant--text.outline {
256
+ border-color: var(--dodo-ui-Button-outline-primary);
258
257
  }
259
- .dodo-ui-button.color--primary.variant--solid {
258
+ .dodo-ui-Button.color--primary.variant--solid {
260
259
  color: var(--dodo-color-constant-white);
261
- background-color: var(--dodo-ui-button-solid-primary-bg);
260
+ background-color: var(--dodo-ui-Button-solid-primary-bg);
262
261
  }
263
- .dodo-ui-button.color--primary.variant--solid:hover {
264
- background-color: var(--dodo-ui-button-solid-primary-hover-bg);
262
+ .dodo-ui-Button.color--primary.variant--solid:hover {
263
+ background-color: var(--dodo-ui-Button-solid-primary-hover-bg);
265
264
  }
266
- .dodo-ui-button.color--primary.variant--solid:active {
267
- background-color: var(--dodo-ui-button-solid-primary-active-bg);
265
+ .dodo-ui-Button.color--primary.variant--solid:active {
266
+ background-color: var(--dodo-ui-Button-solid-primary-active-bg);
268
267
  }
269
- .dodo-ui-button.color--safe.variant--text {
268
+ .dodo-ui-Button.color--safe.variant--text {
270
269
  color: var(--dodo-color-safe-800);
271
- background-color: var(--dodo-ui-button-text-safe-bg);
270
+ background-color: var(--dodo-ui-Button-text-safe-bg);
272
271
  }
273
- .dodo-ui-button.color--safe.variant--text:hover {
274
- background-color: var(--dodo-ui-button-text-safe-hover-bg);
272
+ .dodo-ui-Button.color--safe.variant--text:hover {
273
+ background-color: var(--dodo-ui-Button-text-safe-hover-bg);
275
274
  }
276
- .dodo-ui-button.color--safe.variant--text:active {
277
- background-color: var(--dodo-ui-button-text-safe-active-bg);
275
+ .dodo-ui-Button.color--safe.variant--text:active {
276
+ background-color: var(--dodo-ui-Button-text-safe-active-bg);
278
277
  }
279
- .dodo-ui-button.color--safe.variant--text.outline {
280
- border-color: var(--dodo-ui-button-outline-safe);
278
+ .dodo-ui-Button.color--safe.variant--text.outline {
279
+ border-color: var(--dodo-ui-Button-outline-safe);
281
280
  }
282
- .dodo-ui-button.color--safe.variant--solid {
281
+ .dodo-ui-Button.color--safe.variant--solid {
283
282
  color: var(--dodo-color-constant-white);
284
- background-color: var(--dodo-ui-button-solid-safe-bg);
283
+ background-color: var(--dodo-ui-Button-solid-safe-bg);
285
284
  }
286
- .dodo-ui-button.color--safe.variant--solid:hover {
287
- background-color: var(--dodo-ui-button-solid-safe-hover-bg);
285
+ .dodo-ui-Button.color--safe.variant--solid:hover {
286
+ background-color: var(--dodo-ui-Button-solid-safe-hover-bg);
288
287
  }
289
- .dodo-ui-button.color--safe.variant--solid:active {
290
- background-color: var(--dodo-ui-button-solid-safe-active-bg);
288
+ .dodo-ui-Button.color--safe.variant--solid:active {
289
+ background-color: var(--dodo-ui-Button-solid-safe-active-bg);
291
290
  }
292
- .dodo-ui-button.color--warning.variant--text {
291
+ .dodo-ui-Button.color--warning.variant--text {
293
292
  color: var(--dodo-color-warning-800);
294
- background-color: var(--dodo-ui-button-text-warning-bg);
293
+ background-color: var(--dodo-ui-Button-text-warning-bg);
295
294
  }
296
- .dodo-ui-button.color--warning.variant--text:hover {
297
- background-color: var(--dodo-ui-button-text-warning-hover-bg);
295
+ .dodo-ui-Button.color--warning.variant--text:hover {
296
+ background-color: var(--dodo-ui-Button-text-warning-hover-bg);
298
297
  }
299
- .dodo-ui-button.color--warning.variant--text:active {
300
- background-color: var(--dodo-ui-button-text-warning-active-bg);
298
+ .dodo-ui-Button.color--warning.variant--text:active {
299
+ background-color: var(--dodo-ui-Button-text-warning-active-bg);
301
300
  }
302
- .dodo-ui-button.color--warning.variant--text.outline {
303
- border-color: var(--dodo-ui-button-outline-warning);
301
+ .dodo-ui-Button.color--warning.variant--text.outline {
302
+ border-color: var(--dodo-ui-Button-outline-warning);
304
303
  }
305
- .dodo-ui-button.color--warning.variant--solid {
304
+ .dodo-ui-Button.color--warning.variant--solid {
306
305
  color: var(--dodo-color-constant-white);
307
- background-color: var(--dodo-ui-button-solid-warning-bg);
306
+ background-color: var(--dodo-ui-Button-solid-warning-bg);
308
307
  }
309
- .dodo-ui-button.color--warning.variant--solid:hover {
310
- background-color: var(--dodo-ui-button-solid-warning-hover-bg);
308
+ .dodo-ui-Button.color--warning.variant--solid:hover {
309
+ background-color: var(--dodo-ui-Button-solid-warning-hover-bg);
311
310
  }
312
- .dodo-ui-button.color--warning.variant--solid:active {
313
- background-color: var(--dodo-ui-button-solid-warning-active-bg);
311
+ .dodo-ui-Button.color--warning.variant--solid:active {
312
+ background-color: var(--dodo-ui-Button-solid-warning-active-bg);
314
313
  }
315
- .dodo-ui-button.color--danger.variant--text {
314
+ .dodo-ui-Button.color--danger.variant--text {
316
315
  color: var(--dodo-color-danger-800);
317
- background-color: var(--dodo-ui-button-text-danger-bg);
316
+ background-color: var(--dodo-ui-Button-text-danger-bg);
318
317
  }
319
- .dodo-ui-button.color--danger.variant--text:hover {
320
- background-color: var(--dodo-ui-button-text-danger-hover-bg);
318
+ .dodo-ui-Button.color--danger.variant--text:hover {
319
+ background-color: var(--dodo-ui-Button-text-danger-hover-bg);
321
320
  }
322
- .dodo-ui-button.color--danger.variant--text:active {
323
- background-color: var(--dodo-ui-button-text-danger-active-bg);
321
+ .dodo-ui-Button.color--danger.variant--text:active {
322
+ background-color: var(--dodo-ui-Button-text-danger-active-bg);
324
323
  }
325
- .dodo-ui-button.color--danger.variant--text.outline {
326
- border-color: var(--dodo-ui-button-outline-danger);
324
+ .dodo-ui-Button.color--danger.variant--text.outline {
325
+ border-color: var(--dodo-ui-Button-outline-danger);
327
326
  }
328
- .dodo-ui-button.color--danger.variant--solid {
327
+ .dodo-ui-Button.color--danger.variant--solid {
329
328
  color: var(--dodo-color-constant-white);
330
- background-color: var(--dodo-ui-button-solid-danger-bg);
329
+ background-color: var(--dodo-ui-Button-solid-danger-bg);
331
330
  }
332
- .dodo-ui-button.color--danger.variant--solid:hover {
333
- background-color: var(--dodo-ui-button-solid-danger-hover-bg);
331
+ .dodo-ui-Button.color--danger.variant--solid:hover {
332
+ background-color: var(--dodo-ui-Button-solid-danger-hover-bg);
334
333
  }
335
- .dodo-ui-button.color--danger.variant--solid:active {
336
- background-color: var(--dodo-ui-button-solid-danger-active-bg);
334
+ .dodo-ui-Button.color--danger.variant--solid:active {
335
+ background-color: var(--dodo-ui-Button-solid-danger-active-bg);
337
336
  }
338
- .dodo-ui-button.color--info.variant--text {
337
+ .dodo-ui-Button.color--info.variant--text {
339
338
  color: var(--dodo-color-info-800);
340
- background-color: var(--dodo-ui-button-text-info-bg);
339
+ background-color: var(--dodo-ui-Button-text-info-bg);
341
340
  }
342
- .dodo-ui-button.color--info.variant--text:hover {
343
- background-color: var(--dodo-ui-button-text-info-hover-bg);
341
+ .dodo-ui-Button.color--info.variant--text:hover {
342
+ background-color: var(--dodo-ui-Button-text-info-hover-bg);
344
343
  }
345
- .dodo-ui-button.color--info.variant--text:active {
346
- background-color: var(--dodo-ui-button-text-info-active-bg);
344
+ .dodo-ui-Button.color--info.variant--text:active {
345
+ background-color: var(--dodo-ui-Button-text-info-active-bg);
347
346
  }
348
- .dodo-ui-button.color--info.variant--text.outline {
349
- border-color: var(--dodo-ui-button-outline-info);
347
+ .dodo-ui-Button.color--info.variant--text.outline {
348
+ border-color: var(--dodo-ui-Button-outline-info);
350
349
  }
351
- .dodo-ui-button.color--info.variant--solid {
350
+ .dodo-ui-Button.color--info.variant--solid {
352
351
  color: var(--dodo-color-constant-white);
353
- background-color: var(--dodo-ui-button-solid-info-bg);
352
+ background-color: var(--dodo-ui-Button-solid-info-bg);
354
353
  }
355
- .dodo-ui-button.color--info.variant--solid:hover {
356
- background-color: var(--dodo-ui-button-solid-info-hover-bg);
354
+ .dodo-ui-Button.color--info.variant--solid:hover {
355
+ background-color: var(--dodo-ui-Button-solid-info-hover-bg);
357
356
  }
358
- .dodo-ui-button.color--info.variant--solid:active {
359
- background-color: var(--dodo-ui-button-solid-info-active-bg);
357
+ .dodo-ui-Button.color--info.variant--solid:active {
358
+ background-color: var(--dodo-ui-Button-solid-info-active-bg);
360
359
  }
361
- .dodo-ui-button[disabled] {
360
+ .dodo-ui-Button[disabled] {
362
361
  cursor: initial;
363
362
  }
364
- .dodo-ui-button[disabled].variant--text, .dodo-ui-button[disabled].variant--solid {
365
- background-color: var(--dodo-ui-button-disabled-bg);
366
- color: var(--dodo-ui-button-disabled-color);
363
+ .dodo-ui-Button[disabled].variant--text, .dodo-ui-Button[disabled].variant--solid {
364
+ background-color: var(--dodo-ui-Button-disabled-bg);
365
+ color: var(--dodo-ui-Button-disabled-color);
367
366
  }
368
- .dodo-ui-button[disabled].variant--text:hover, .dodo-ui-button[disabled].variant--solid:hover {
369
- background-color: var(--dodo-ui-button-disabled-bg);
370
- color: var(--dodo-ui-button-disabled-color);
367
+ .dodo-ui-Button[disabled].variant--text:hover, .dodo-ui-Button[disabled].variant--solid:hover {
368
+ background-color: var(--dodo-ui-Button-disabled-bg);
369
+ color: var(--dodo-ui-Button-disabled-color);
371
370
  }
372
- .dodo-ui-button[disabled].variant--text:active, .dodo-ui-button[disabled].variant--solid:active {
373
- background-color: var(--dodo-ui-button-disabled-bg);
374
- color: var(--dodo-ui-button-disabled-color);
371
+ .dodo-ui-Button[disabled].variant--text:active, .dodo-ui-Button[disabled].variant--solid:active {
372
+ background-color: var(--dodo-ui-Button-disabled-bg);
373
+ color: var(--dodo-ui-Button-disabled-color);
375
374
  }
376
- .dodo-ui-button[disabled].variant--text.outline, .dodo-ui-button[disabled].variant--solid.outline {
375
+ .dodo-ui-Button[disabled].variant--text.outline, .dodo-ui-Button[disabled].variant--solid.outline {
377
376
  border-color: transparent;
378
377
  }
379
- .dodo-ui-button.compact.size--normal, .dodo-ui-button.compact.size--small, .dodo-ui-button.compact.size--large {
378
+ .dodo-ui-Button.compact.size--normal, .dodo-ui-Button.compact.size--small, .dodo-ui-Button.compact.size--large {
380
379
  min-width: initial;
381
380
  padding: 0;
382
381
  }
383
- .dodo-ui-button.compact.size--normal {
382
+ .dodo-ui-Button.compact.size--normal {
384
383
  width: var(--dodo-ui-element-height-normal);
385
384
  }
386
- .dodo-ui-button.compact.size--small {
385
+ .dodo-ui-Button.compact.size--small {
387
386
  width: var(--dodo-ui-element-height-small);
388
387
  }
389
- .dodo-ui-button.compact.size--large {
388
+ .dodo-ui-Button.compact.size--large {
390
389
  width: var(--dodo-ui-element-height-large);
391
390
  }
392
- .dodo-ui-button .button-content--after, .dodo-ui-button .button-content--before {
391
+ .dodo-ui-Button.fullWidth {
392
+ width: 100%;
393
+ }
394
+ .dodo-ui-Button .content--after, .dodo-ui-Button .content--before {
393
395
  display: inline-flex;
394
396
  height: 100%;
395
397
  align-items: center;
396
398
  }
397
- .dodo-ui-button .button-content--before {
399
+ .dodo-ui-Button .content--before {
398
400
  margin-right: 6px;
399
401
  }
400
- .dodo-ui-button .button-content--after {
402
+ .dodo-ui-Button .content--after {
401
403
  margin-left: 6px;
402
404
  }</style>
@@ -4,6 +4,7 @@ export type ButtonLinkTarget = '_self' | '_blank' | '_parent' | '_top' | (string
4
4
  export type ButtonLinkReferrerpolicy = ReferrerPolicy | undefined | null;
5
5
  import type { ComponentRoundness, ComponentRoundnessFull, ComponentSize } from '../../../../types.js';
6
6
  import type { Snippet } from 'svelte';
7
+ import type { MouseEventHandler } from 'svelte/elements';
7
8
  interface ButtonProps {
8
9
  /** Button contents goes here*/
9
10
  children?: Snippet;
@@ -11,6 +12,8 @@ interface ButtonProps {
11
12
  type?: 'button' | 'submit';
12
13
  /** How large should the button be? */
13
14
  size?: ComponentSize;
15
+ /** Full width button? */
16
+ fullWidth?: boolean;
14
17
  /** What color to use? */
15
18
  color?: ButtonColor;
16
19
  /** How round should the border radius be? */
@@ -36,7 +39,7 @@ interface ButtonProps {
36
39
  /** Custom css class*/
37
40
  class?: string;
38
41
  /** The onclick event handler */
39
- onclick?: (e: MouseEvent) => void;
42
+ onclick?: MouseEventHandler<HTMLButtonElement>;
40
43
  /** Turn Button into link */
41
44
  href?: string;
42
45
  /** Link button: download */
@@ -0,0 +1,40 @@
1
+ <script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
2
+ import { fn } from '@storybook/test';
3
+ import Button from '../Button.svelte';
4
+ import { storyButtonArgTypes } from '../Button.stories.svelte';
5
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
6
+ const { Story } = defineMeta({
7
+ component: Button,
8
+ tags: ['autodocs'],
9
+ argTypes: storyButtonArgTypes,
10
+ args: {
11
+ onclick: fn(),
12
+ },
13
+ });
14
+ </script>
15
+
16
+ <Story
17
+ name="Click"
18
+ args={{
19
+ outline: false,
20
+ disabled: false,
21
+ compact: false,
22
+ onclick: (e: Event) => {
23
+ const target = e.target as HTMLButtonElement;
24
+
25
+ alert('Button Clicked');
26
+ console.log('Button Clicked', target);
27
+ },
28
+ }}
29
+ >
30
+ <Button
31
+ onclick={(e: Event) => {
32
+ const target = e.target as HTMLButtonElement;
33
+
34
+ alert('Button Clicked');
35
+ console.log('Button Clicked', target);
36
+ }}
37
+ >
38
+ Click me!
39
+ </Button>
40
+ </Story>