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