@mozaic-ds/web-components 1.0.0-beta.4 → 1.0.0-beta.6

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 (189) hide show
  1. package/dist/Cross20.js +2 -0
  2. package/dist/Cross20.js.map +1 -0
  3. package/dist/Cross24.js +1 -1
  4. package/dist/CrossCircleFilled24.js +1 -1
  5. package/dist/attributes.js +1 -1
  6. package/dist/bundle.d.ts +43 -0
  7. package/dist/bundle.d.ts.map +1 -0
  8. package/dist/bundle.js +4 -2
  9. package/dist/components/avatar/Avatar.js +7 -0
  10. package/dist/components/avatar/Avatar.js.map +1 -0
  11. package/dist/components/avatar/Avatar.stories.d.ts +9 -0
  12. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -0
  13. package/dist/components/avatar/Avatar.stories.js +67 -0
  14. package/dist/components/avatar/Avatar.svelte +63 -0
  15. package/dist/components/avatar/Avatar.svelte.d.ts +37 -0
  16. package/dist/components/avatar/Avatar.svelte.d.ts.map +1 -0
  17. package/dist/components/breadcrumb/Breadcrumb.js +9 -6
  18. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  19. package/dist/components/breadcrumb/Breadcrumb.stories.d.ts +6 -5
  20. package/dist/components/breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  21. package/dist/components/breadcrumb/Breadcrumb.stories.js +55 -58
  22. package/dist/components/breadcrumb/Breadcrumb.svelte +45 -29
  23. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts +24 -7
  24. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  25. package/dist/components/button/Button.js +6 -3
  26. package/dist/components/button/Button.js.map +1 -1
  27. package/dist/components/button/Button.stories.d.ts.map +1 -1
  28. package/dist/components/button/Button.stories.js +1 -0
  29. package/dist/components/button/Button.svelte +105 -102
  30. package/dist/components/callout/Callout.js +10 -0
  31. package/dist/components/callout/Callout.js.map +1 -0
  32. package/dist/components/callout/Callout.stories.d.ts +18 -0
  33. package/dist/components/callout/Callout.stories.d.ts.map +1 -0
  34. package/dist/components/callout/Callout.stories.js +122 -0
  35. package/dist/components/callout/Callout.svelte +112 -0
  36. package/dist/components/callout/Callout.svelte.d.ts +49 -0
  37. package/dist/components/callout/Callout.svelte.d.ts.map +1 -0
  38. package/dist/components/checkbox/Checkbox.js +6 -3
  39. package/dist/components/checkbox/Checkbox.js.map +1 -1
  40. package/dist/components/checkbox/Checkbox.svelte +39 -33
  41. package/dist/components/checkboxgroup/CheckboxGroup.js +7 -4
  42. package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
  43. package/dist/components/checkboxgroup/CheckboxGroup.svelte +39 -33
  44. package/dist/components/circularprogressbar/CircularProgressbar.js +7 -4
  45. package/dist/components/circularprogressbar/CircularProgressbar.js.map +1 -1
  46. package/dist/components/circularprogressbar/CircularProgressbar.svelte +17 -14
  47. package/dist/components/datepicker/Datepicker.js +6 -3
  48. package/dist/components/datepicker/Datepicker.js.map +1 -1
  49. package/dist/components/datepicker/Datepicker.svelte +50 -47
  50. package/dist/components/drawer/Drawer.js +15 -12
  51. package/dist/components/drawer/Drawer.js.map +1 -1
  52. package/dist/components/drawer/Drawer.svelte +113 -110
  53. package/dist/components/field/Field.js +6 -3
  54. package/dist/components/field/Field.js.map +1 -1
  55. package/dist/components/field/Field.svelte +18 -15
  56. package/dist/components/flag/Flag.js +5 -2
  57. package/dist/components/flag/Flag.js.map +1 -1
  58. package/dist/components/flag/Flag.svelte +15 -12
  59. package/dist/components/iconbutton/IconButton.js +5 -2
  60. package/dist/components/iconbutton/IconButton.js.map +1 -1
  61. package/dist/components/iconbutton/IconButton.svelte +105 -102
  62. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +5 -2
  63. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js.map +1 -1
  64. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte +7 -3
  65. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +5 -3
  66. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js.map +1 -1
  67. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte +24 -12
  68. package/dist/components/link/Link.js +5 -2
  69. package/dist/components/link/Link.js.map +1 -1
  70. package/dist/components/link/Link.svelte +12 -9
  71. package/dist/components/loader/Loader.js +10 -7
  72. package/dist/components/loader/Loader.js.map +1 -1
  73. package/dist/components/loader/Loader.svelte +7 -4
  74. package/dist/components/modal/Modal.js +17 -14
  75. package/dist/components/modal/Modal.js.map +1 -1
  76. package/dist/components/modal/Modal.stories.d.ts.map +1 -1
  77. package/dist/components/modal/Modal.stories.js +1 -0
  78. package/dist/components/modal/Modal.svelte +115 -111
  79. package/dist/components/numberbadge/NumberBadge.js +5 -2
  80. package/dist/components/numberbadge/NumberBadge.js.map +1 -1
  81. package/dist/components/numberbadge/NumberBadge.svelte +15 -12
  82. package/dist/components/overlay/Overlay.js +5 -2
  83. package/dist/components/overlay/Overlay.js.map +1 -1
  84. package/dist/components/overlay/Overlay.svelte +5 -2
  85. package/dist/components/overlayloader/OverlayLoader.js +7 -4
  86. package/dist/components/overlayloader/OverlayLoader.js.map +1 -1
  87. package/dist/components/overlayloader/OverlayLoader.svelte +9 -6
  88. package/dist/components/pagination/Pagination.js +11 -8
  89. package/dist/components/pagination/Pagination.js.map +1 -1
  90. package/dist/components/pagination/Pagination.svelte +23 -20
  91. package/dist/components/passwordinput/PasswordInput.js +8 -5
  92. package/dist/components/passwordinput/PasswordInput.js.map +1 -1
  93. package/dist/components/passwordinput/PasswordInput.svelte +32 -29
  94. package/dist/components/pincode/Pincode.js +7 -4
  95. package/dist/components/pincode/Pincode.js.map +1 -1
  96. package/dist/components/pincode/Pincode.svelte +19 -16
  97. package/dist/components/quantityselector/QuantitySelector.js +6 -3
  98. package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
  99. package/dist/components/quantityselector/QuantitySelector.svelte +28 -25
  100. package/dist/components/radio/Radio.js +5 -2
  101. package/dist/components/radio/Radio.js.map +1 -1
  102. package/dist/components/radio/Radio.svelte +19 -16
  103. package/dist/components/radiogroup/RadioGroup.js +7 -4
  104. package/dist/components/radiogroup/RadioGroup.js.map +1 -1
  105. package/dist/components/radiogroup/RadioGroup.svelte +34 -31
  106. package/dist/components/select/Select.js +6 -3
  107. package/dist/components/select/Select.js.map +1 -1
  108. package/dist/components/select/Select.svelte +23 -20
  109. package/dist/components/statusbadge/StatusBadge.js +5 -2
  110. package/dist/components/statusbadge/StatusBadge.js.map +1 -1
  111. package/dist/components/statusbadge/StatusBadge.svelte +23 -20
  112. package/dist/components/statusdot/StatusDot.js +5 -2
  113. package/dist/components/statusdot/StatusDot.js.map +1 -1
  114. package/dist/components/statusdot/StatusDot.stories.d.ts +10 -13
  115. package/dist/components/statusdot/StatusDot.stories.d.ts.map +1 -1
  116. package/dist/components/statusdot/StatusDot.stories.js +49 -43
  117. package/dist/components/statusdot/StatusDot.svelte +22 -12
  118. package/dist/components/statusdot/StatusDot.svelte.d.ts +11 -3
  119. package/dist/components/statusdot/StatusDot.svelte.d.ts.map +1 -1
  120. package/dist/components/statusdot/StatusDot.types.d.ts +1 -1
  121. package/dist/components/statusdot/StatusDot.types.d.ts.map +1 -1
  122. package/dist/components/statusnotification/StatusNotification.js +6 -2
  123. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  124. package/dist/components/statusnotification/StatusNotification.svelte +364 -49
  125. package/dist/components/statusnotification/StatusNotification.svelte.d.ts.map +1 -1
  126. package/dist/components/tabs/Tab.js +5 -2
  127. package/dist/components/tabs/Tab.js.map +1 -1
  128. package/dist/components/tabs/Tab.svelte +14 -11
  129. package/dist/components/tabs/Tabs.js +5 -2
  130. package/dist/components/tabs/Tabs.js.map +1 -1
  131. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  132. package/dist/components/tabs/Tabs.stories.js +1 -0
  133. package/dist/components/tabs/Tabs.svelte +22 -19
  134. package/dist/components/tags/Tag.js +5 -2
  135. package/dist/components/tags/Tag.js.map +1 -1
  136. package/dist/components/tags/Tag.svelte +38 -35
  137. package/dist/components/tags/TagContextualised.js +5 -2
  138. package/dist/components/tags/TagContextualised.js.map +1 -1
  139. package/dist/components/tags/TagContextualised.svelte +38 -35
  140. package/dist/components/tags/TagInteractive.js +5 -2
  141. package/dist/components/tags/TagInteractive.js.map +1 -1
  142. package/dist/components/tags/TagInteractive.svelte +38 -35
  143. package/dist/components/tags/TagRemovable.js +5 -2
  144. package/dist/components/tags/TagRemovable.js.map +1 -1
  145. package/dist/components/tags/TagRemovable.svelte +38 -35
  146. package/dist/components/tags/TagSelectable.js +5 -2
  147. package/dist/components/tags/TagSelectable.js.map +1 -1
  148. package/dist/components/tags/TagSelectable.svelte +38 -35
  149. package/dist/components/textarea/Textarea.js +6 -3
  150. package/dist/components/textarea/Textarea.js.map +1 -1
  151. package/dist/components/textarea/Textarea.svelte +35 -32
  152. package/dist/components/textinput/Textinput.js +8 -5
  153. package/dist/components/textinput/Textinput.js.map +1 -1
  154. package/dist/components/textinput/Textinput.svelte +32 -29
  155. package/dist/components/toaster/Toaster.js +13 -0
  156. package/dist/components/toaster/Toaster.js.map +1 -0
  157. package/dist/components/toaster/Toaster.stories.d.ts +20 -0
  158. package/dist/components/toaster/Toaster.stories.d.ts.map +1 -0
  159. package/dist/components/toaster/Toaster.stories.js +156 -0
  160. package/dist/components/toaster/Toaster.svelte +640 -0
  161. package/dist/components/toaster/Toaster.svelte.d.ts +54 -0
  162. package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -0
  163. package/dist/components/toggle/Toggle.js +5 -2
  164. package/dist/components/toggle/Toggle.js.map +1 -1
  165. package/dist/components/toggle/Toggle.svelte +24 -21
  166. package/dist/components/togglegroup/ToggleGroup.js +6 -3
  167. package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
  168. package/dist/components/togglegroup/ToggleGroup.svelte +39 -36
  169. package/dist/components/tooltip/Tooltip.js +7 -4
  170. package/dist/components/tooltip/Tooltip.js.map +1 -1
  171. package/dist/components/tooltip/Tooltip.svelte +11 -8
  172. package/dist/custom-element.js +3 -3
  173. package/dist/custom-element.js.map +1 -1
  174. package/dist/each.js +1 -1
  175. package/dist/each.js.map +1 -1
  176. package/dist/if.js +1 -1
  177. package/dist/if.js.map +1 -1
  178. package/dist/index-client.js +2 -0
  179. package/dist/index-client.js.map +1 -0
  180. package/dist/input.js +1 -1
  181. package/dist/input.js.map +1 -1
  182. package/dist/legacy.js +1 -1
  183. package/dist/main.d.ts +7 -4
  184. package/dist/main.d.ts.map +1 -1
  185. package/dist/main.js +7 -4
  186. package/dist/slot.js +1 -1
  187. package/dist/snippet.js +1 -1
  188. package/package.json +9 -11
  189. package/dist/icons-storybook.js +0 -88
@@ -0,0 +1,640 @@
1
+ <svelte:options customElement={{ tag: 'm-toaster' }} />
2
+
3
+ <script lang="ts">
4
+ import { onMount, onDestroy } from 'svelte';
5
+ import InfoCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/InfoCircleFilled32/InfoCircleFilled32.svelte';
6
+ import WarningCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/WarningCircleFilled32/WarningCircleFilled32.svelte';
7
+ import CrossCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/CrossCircleFilled32/CrossCircleFilled32.svelte';
8
+ import CheckCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/CheckCircleFilled32/CheckCircleFilled32.svelte';
9
+ import Cross20 from '@mozaic-ds/icons-svelte/svelte/Cross20/Cross20.svelte';
10
+ /**
11
+ * A toaster is a temporary notification that appears briefly on the screen to provide feedback or updates without interrupting the user’s workflow. It is commonly used for success messages, warnings, errors, or informational updates. Toasters can disappear automatically after a few seconds, be dismissed manually via a close button, or be removed when the user performs a relevant action. They typically include an icon, a short message, and an optional close button for better usability.
12
+ */
13
+ interface Props {
14
+ /**
15
+ * If `true`, display the Toaster.
16
+ */
17
+ open?: boolean;
18
+ /**
19
+ * Position of the toaster.
20
+ */
21
+ position?: 'top' | 'bottom' | 'top-center' | 'bottom-center';
22
+ /**
23
+ * Description of the toaster.
24
+ */
25
+ description: string;
26
+ /**
27
+ * Allows to define the toaster style.
28
+ */
29
+ status?: 'info' | 'success' | 'warning' | 'error';
30
+ /**
31
+ * If `true`, display the close button.
32
+ */
33
+ closable?: boolean;
34
+ /**
35
+ * If `true`, display the progress bar of the duration.
36
+ */
37
+ progress?: boolean;
38
+ /**
39
+ * Duration of the toaster
40
+ */
41
+ timeout?: number;
42
+ }
43
+
44
+ let {
45
+ open,
46
+ position = 'top',
47
+ description,
48
+ status = 'info',
49
+ closable = true,
50
+ progress,
51
+ timeout,
52
+ }: Props = $props();
53
+
54
+ const iconMap = [
55
+ { status: 'info', component: InfoCircleFilled32 },
56
+ { status: 'success', component: CheckCircleFilled32 },
57
+ { status: 'warning', component: WarningCircleFilled32 },
58
+ { status: 'error', component: CrossCircleFilled32 },
59
+ ];
60
+
61
+ function getSelected(status: string) {
62
+ return iconMap.find((icon) => icon.status === status) || iconMap[0];
63
+ }
64
+
65
+ let selected = $state(getSelected(status));
66
+
67
+ let progressValue = $state(0);
68
+ let intervalId: ReturnType<typeof setInterval> | null = null;
69
+ let timeoutId: ReturnType<typeof setTimeout> | null = null;
70
+
71
+ const onClose = () => {
72
+ open = false;
73
+
74
+ const event = new CustomEvent('update:open', {
75
+ detail: open,
76
+ bubbles: true,
77
+ composed: true,
78
+ });
79
+ // @ts-ignore: `this` is the custom element instance
80
+ this.dispatchEvent(event);
81
+ };
82
+
83
+ onMount(() => {
84
+ if (timeout) {
85
+ if (progress) {
86
+ const intervalDuration = 100;
87
+ const steps = timeout / intervalDuration;
88
+ const increment = 100 / steps;
89
+
90
+ intervalId = setInterval(() => {
91
+ progressValue += increment;
92
+ if (progressValue >= 100) {
93
+ progressValue = 100;
94
+ clearInterval(intervalId!);
95
+ onClose();
96
+ }
97
+ }, intervalDuration);
98
+ } else {
99
+ timeoutId = setTimeout(() => {
100
+ onClose();
101
+ }, timeout);
102
+ }
103
+ }
104
+ });
105
+
106
+ onDestroy(() => {
107
+ if (intervalId) clearInterval(intervalId);
108
+ if (timeoutId) clearTimeout(timeoutId);
109
+ });
110
+ </script>
111
+
112
+ <section
113
+ class={["mc-toaster", open && 'is-open', `mc-toaster--${status}`, `mc-toaster--${position}`]}
114
+ role="status"
115
+ tabindex="-1"
116
+ aria-hidden={!open}
117
+ >
118
+ <span class="mc-toaster__icon" aria-hidden="true">
119
+ <selected.component/>
120
+ </span>
121
+
122
+ <div class="mc-toaster__content">
123
+ <p class="mc-toaster__message">{description}</p>
124
+
125
+ <div class="mc-toaster__action">
126
+ <slot name="action" />
127
+ </div>
128
+ </div>
129
+
130
+ {#if closable}
131
+ <button class="mc-toaster__close mc-button mc-button--icon-button mc-button--inverse mc-button--s mc-button--ghost"
132
+ type="button"
133
+ aria-label="Close"
134
+ onclick={onClose}
135
+ >
136
+ <Cross20 class="mc-button__icon" slot="icon" aria-hidden="true" />
137
+ </button>
138
+ {/if}
139
+
140
+ {#if progress}
141
+ <div
142
+ class="mc-toaster__indicator mc-linear-progressbar-buffer mc-linear-progressbar-buffer--m"
143
+ >
144
+ <div
145
+ class="mc-linear-progressbar-buffer__indicator"
146
+ role="progressbar"
147
+ style={`--progress-value: ${progressValue};`}
148
+ aria-valuenow={progressValue}
149
+ aria-valuemin="0"
150
+ aria-valuemax="100"
151
+ ></div>
152
+ </div>
153
+ {/if}
154
+ </section>
155
+
156
+ <style>/**
157
+ * Do not edit directly, this file was auto-generated.
158
+ */
159
+ /**
160
+ * Do not edit directly, this file was auto-generated.
161
+ */
162
+ .mc-button {
163
+ color: #ffffff;
164
+ background-color: #464e63;
165
+ font-weight: 600;
166
+ padding: 0 calc(1rem - 0.125rem);
167
+ min-height: 3rem;
168
+ min-width: 3rem;
169
+ display: inline-flex;
170
+ justify-content: center;
171
+ vertical-align: middle;
172
+ text-align: center;
173
+ border: 2px solid transparent;
174
+ border-radius: 0.25rem;
175
+ transition: all ease 200ms;
176
+ transition: box-shadow 200ms ease;
177
+ align-items: center;
178
+ box-sizing: border-box;
179
+ font-family: inherit;
180
+ fill: currentcolor;
181
+ gap: 0.25rem;
182
+ cursor: pointer;
183
+ }
184
+ .mc-button:hover {
185
+ background-color: #343b4c;
186
+ }
187
+ .mc-button:active {
188
+ background-color: #242938;
189
+ }
190
+ .mc-button:disabled {
191
+ background-color: #d9d9d9;
192
+ border-color: transparent;
193
+ color: #737373;
194
+ cursor: not-allowed;
195
+ }
196
+ .mc-button .mc-button__label {
197
+ font-size: 1rem;
198
+ }
199
+ .mc-button__label {
200
+ font-size: 1rem;
201
+ }
202
+ .mc-button__icon {
203
+ flex-shrink: 0;
204
+ width: 1.5rem;
205
+ height: 1.5rem;
206
+ }
207
+ .mc-button:disabled {
208
+ background-color: #d9d9d9;
209
+ border-color: transparent;
210
+ color: #737373;
211
+ cursor: not-allowed;
212
+ }
213
+ .mc-button:focus-visible {
214
+ box-shadow: 0 0 0 0.125rem var(--focus-color-mid, #ffffff), 0 0 0 0.25rem var(--focus-color-outer, #000000);
215
+ outline: 0.125rem solid transparent;
216
+ outline-offset: 0.125rem;
217
+ }
218
+ .mc-button--s {
219
+ padding: 0 calc(0.75rem - 0.125rem);
220
+ min-height: 2rem;
221
+ min-width: 2rem;
222
+ }
223
+ .mc-button--s .mc-button__label {
224
+ font-size: 0.875rem;
225
+ }
226
+ .mc-button--s .mc-button__icon {
227
+ width: 1.25rem;
228
+ height: 1.25rem;
229
+ }
230
+ .mc-button--s .mc-button__icon:only-child {
231
+ width: 1.25rem;
232
+ height: 1.25rem;
233
+ }
234
+ .mc-button--m {
235
+ padding: 0 calc(1rem - 0.125rem);
236
+ min-height: 3rem;
237
+ min-width: 3rem;
238
+ }
239
+ .mc-button--m .mc-button__label {
240
+ font-size: 1rem;
241
+ }
242
+ .mc-button--m .mc-button__icon {
243
+ width: 1.5rem;
244
+ height: 1.5rem;
245
+ }
246
+ .mc-button--m .mc-button__icon:only-child {
247
+ width: 1.5rem;
248
+ height: 1.5rem;
249
+ }
250
+ .mc-button--l {
251
+ padding: 0 calc(1.25rem - 0.125rem);
252
+ min-height: 4rem;
253
+ min-width: 4rem;
254
+ }
255
+ .mc-button--l .mc-button__label {
256
+ font-size: 1.125rem;
257
+ }
258
+ .mc-button--l .mc-button__icon {
259
+ width: 2rem;
260
+ height: 2rem;
261
+ }
262
+ .mc-button--l .mc-button__icon:only-child {
263
+ width: 2rem;
264
+ height: 2rem;
265
+ }
266
+ .mc-button--icon-only {
267
+ padding: 0.25rem;
268
+ }
269
+ .mc-button--outlined {
270
+ color: #242938;
271
+ border-color: #8891aa;
272
+ background-color: #ffffff;
273
+ }
274
+ .mc-button--outlined:hover {
275
+ background-color: #eff1f6;
276
+ }
277
+ .mc-button--outlined:active {
278
+ background-color: #c9d0de;
279
+ }
280
+ .mc-button--outlined:disabled {
281
+ background-color: #d9d9d9;
282
+ border-color: transparent;
283
+ color: #737373;
284
+ cursor: not-allowed;
285
+ }
286
+ .mc-button--ghost {
287
+ color: #242938;
288
+ background-color: rgba(255, 255, 255, 0.01);
289
+ }
290
+ .mc-button--ghost:hover {
291
+ background-color: rgba(70, 78, 99, 0.1);
292
+ }
293
+ .mc-button--ghost:active {
294
+ background-color: rgba(70, 78, 99, 0.2);
295
+ }
296
+ .mc-button--ghost:disabled {
297
+ background-color: #d9d9d9;
298
+ border-color: transparent;
299
+ color: #737373;
300
+ cursor: not-allowed;
301
+ }
302
+ .mc-button--accent {
303
+ color: #ffffff;
304
+ background-color: #117f03;
305
+ }
306
+ .mc-button--accent:hover {
307
+ background-color: #006902;
308
+ }
309
+ .mc-button--accent:active {
310
+ background-color: #035010;
311
+ }
312
+ .mc-button--accent:disabled {
313
+ background-color: #d9d9d9;
314
+ border-color: transparent;
315
+ color: #737373;
316
+ cursor: not-allowed;
317
+ }
318
+ .mc-button--danger {
319
+ color: #ffffff;
320
+ background-color: #c61112;
321
+ }
322
+ .mc-button--danger:hover {
323
+ background-color: #8c0003;
324
+ }
325
+ .mc-button--danger:active {
326
+ background-color: #530000;
327
+ }
328
+ .mc-button--danger:disabled {
329
+ background-color: #d9d9d9;
330
+ border-color: transparent;
331
+ color: #737373;
332
+ cursor: not-allowed;
333
+ }
334
+ .mc-button--inverse {
335
+ --focus-color-mid: #000000;
336
+ --focus-color-outer: #ffffff;
337
+ color: #242938;
338
+ background-color: #ffffff;
339
+ }
340
+ .mc-button--inverse:hover {
341
+ background-color: #e6e6e6;
342
+ }
343
+ .mc-button--inverse:active {
344
+ background-color: #cccccc;
345
+ }
346
+ .mc-button--inverse:disabled {
347
+ background-color: #d9d9d9;
348
+ border-color: transparent;
349
+ color: #737373;
350
+ cursor: not-allowed;
351
+ }
352
+ .mc-button--icon-button {
353
+ border-radius: 100%;
354
+ padding: 0;
355
+ }
356
+ .mc-button--loading .mc-button__loader {
357
+ position: absolute;
358
+ color: currentcolor;
359
+ }
360
+ .mc-button--loading .mc-button__label,
361
+ .mc-button--loading .mc-button__icon {
362
+ visibility: hidden;
363
+ }
364
+ .mc-button--outlined.mc-button--standard {
365
+ color: #242938;
366
+ border-color: #8891aa;
367
+ background-color: #ffffff;
368
+ }
369
+ .mc-button--outlined.mc-button--standard:hover {
370
+ background-color: #eff1f6;
371
+ }
372
+ .mc-button--outlined.mc-button--standard:active {
373
+ background-color: #c9d0de;
374
+ }
375
+ .mc-button--outlined.mc-button--standard:disabled {
376
+ background-color: #d9d9d9;
377
+ border-color: transparent;
378
+ color: #737373;
379
+ cursor: not-allowed;
380
+ }
381
+ .mc-button--outlined.mc-button--accent {
382
+ color: #117f03;
383
+ border-color: #78be20;
384
+ background-color: #ffffff;
385
+ }
386
+ .mc-button--outlined.mc-button--accent:hover {
387
+ background-color: #ebf5de;
388
+ }
389
+ .mc-button--outlined.mc-button--accent:active {
390
+ background-color: #c5e39e;
391
+ }
392
+ .mc-button--outlined.mc-button--accent:disabled {
393
+ background-color: #d9d9d9;
394
+ border-color: transparent;
395
+ color: #737373;
396
+ cursor: not-allowed;
397
+ }
398
+ .mc-button--outlined.mc-button--danger {
399
+ color: #c61112;
400
+ border-color: #ef5f5c;
401
+ background-color: #ffffff;
402
+ }
403
+ .mc-button--outlined.mc-button--danger:hover {
404
+ background-color: #fdeaea;
405
+ }
406
+ .mc-button--outlined.mc-button--danger:active {
407
+ background-color: #f8bcbb;
408
+ }
409
+ .mc-button--outlined.mc-button--danger:disabled {
410
+ background-color: #d9d9d9;
411
+ border-color: transparent;
412
+ color: #737373;
413
+ cursor: not-allowed;
414
+ }
415
+ .mc-button--outlined.mc-button--inverse {
416
+ color: #ffffff;
417
+ border-color: #ffffff;
418
+ background-color: rgba(255, 255, 255, 0.01);
419
+ }
420
+ .mc-button--outlined.mc-button--inverse:hover {
421
+ background-color: rgba(255, 255, 255, 0.1);
422
+ }
423
+ .mc-button--outlined.mc-button--inverse:active {
424
+ background-color: rgba(255, 255, 255, 0.2);
425
+ }
426
+ .mc-button--outlined.mc-button--inverse:disabled {
427
+ background-color: #d9d9d9;
428
+ border-color: transparent;
429
+ color: #737373;
430
+ cursor: not-allowed;
431
+ }
432
+ .mc-button--ghost.mc-button--standard {
433
+ color: #242938;
434
+ background-color: rgba(255, 255, 255, 0.01);
435
+ }
436
+ .mc-button--ghost.mc-button--standard:hover {
437
+ background-color: rgba(70, 78, 99, 0.1);
438
+ }
439
+ .mc-button--ghost.mc-button--standard:active {
440
+ background-color: rgba(70, 78, 99, 0.2);
441
+ }
442
+ .mc-button--ghost.mc-button--standard:disabled {
443
+ background-color: #d9d9d9;
444
+ border-color: transparent;
445
+ color: #737373;
446
+ cursor: not-allowed;
447
+ }
448
+ .mc-button--ghost.mc-button--accent {
449
+ color: #117f03;
450
+ background-color: rgba(255, 255, 255, 0.01);
451
+ }
452
+ .mc-button--ghost.mc-button--accent:hover {
453
+ background-color: rgba(17, 127, 3, 0.1);
454
+ }
455
+ .mc-button--ghost.mc-button--accent:active {
456
+ background-color: rgba(17, 127, 3, 0.2);
457
+ }
458
+ .mc-button--ghost.mc-button--accent:disabled {
459
+ background-color: #d9d9d9;
460
+ border-color: transparent;
461
+ color: #737373;
462
+ cursor: not-allowed;
463
+ }
464
+ .mc-button--ghost.mc-button--danger {
465
+ color: #c61112;
466
+ background-color: rgba(255, 255, 255, 0.01);
467
+ }
468
+ .mc-button--ghost.mc-button--danger:hover {
469
+ background-color: rgba(198, 17, 18, 0.1);
470
+ }
471
+ .mc-button--ghost.mc-button--danger:active {
472
+ background-color: rgba(198, 17, 18, 0.2);
473
+ }
474
+ .mc-button--ghost.mc-button--danger:disabled {
475
+ background-color: #d9d9d9;
476
+ border-color: transparent;
477
+ color: #737373;
478
+ cursor: not-allowed;
479
+ }
480
+ .mc-button--ghost.mc-button--inverse {
481
+ color: #ffffff;
482
+ background-color: rgba(255, 255, 255, 0.01);
483
+ }
484
+ .mc-button--ghost.mc-button--inverse:hover {
485
+ background-color: rgba(255, 255, 255, 0.1);
486
+ }
487
+ .mc-button--ghost.mc-button--inverse:active {
488
+ background-color: rgba(255, 255, 255, 0.2);
489
+ }
490
+ .mc-button--ghost.mc-button--inverse:disabled {
491
+ background-color: #d9d9d9;
492
+ border-color: transparent;
493
+ color: #737373;
494
+ cursor: not-allowed;
495
+ }
496
+
497
+ .mc-linear-progressbar-buffer {
498
+ --progress-value: 40;
499
+ background-color: #c9d0de;
500
+ height: 0.25rem;
501
+ position: relative;
502
+ min-width: 6rem;
503
+ border-radius: 1rem;
504
+ }
505
+ .mc-linear-progressbar-buffer__indicator {
506
+ background-color: #464e63;
507
+ height: 100%;
508
+ transition: width 0.4s ease;
509
+ overflow: hidden;
510
+ border-radius: 1rem;
511
+ box-sizing: border-box;
512
+ width: calc(var(--progress-value) * 1%);
513
+ }
514
+ .mc-linear-progressbar-buffer--s {
515
+ height: 0.125rem;
516
+ }
517
+ .mc-linear-progressbar-buffer--l {
518
+ height: 0.5rem;
519
+ }
520
+
521
+ /* create columns */
522
+ /* create columns */
523
+ /* create custom named columns with custom content */
524
+ .mc-toaster {
525
+ border-radius: 0.5rem;
526
+ display: flex;
527
+ flex-flow: row wrap;
528
+ align-items: flex-start;
529
+ background: #002a41;
530
+ min-height: 3.5rem;
531
+ min-width: 18rem;
532
+ position: absolute;
533
+ top: 1.5rem;
534
+ right: 1.5rem;
535
+ margin-left: 1.5rem;
536
+ box-sizing: border-box;
537
+ color: #ffffff;
538
+ z-index: var(--toaster-z-index, 4);
539
+ opacity: 0;
540
+ visibility: hidden;
541
+ transform: translateX(25%);
542
+ transition: visibility 0s linear 0.4s, transform 0.4s ease-in-out, opacity 0.4s ease-in-out;
543
+ }
544
+ .mc-toaster.is-open {
545
+ opacity: 1;
546
+ visibility: visible;
547
+ transform: translateX(0);
548
+ }
549
+ .mc-toaster__icon {
550
+ width: 2rem;
551
+ height: 2rem;
552
+ margin: 0.75rem;
553
+ fill: #3facd7;
554
+ }
555
+ .mc-toaster__content {
556
+ flex: 1 1 0;
557
+ flex-direction: column;
558
+ align-self: stretch;
559
+ display: flex;
560
+ align-items: flex-start;
561
+ gap: 1rem;
562
+ padding: 0.75rem 1rem 0.75rem 0;
563
+ }
564
+ @media (width >= 680px) {
565
+ .mc-toaster__content {
566
+ flex-direction: row;
567
+ align-items: center;
568
+ }
569
+ }
570
+ .mc-toaster__message {
571
+ flex: 1 1 0;
572
+ margin: 0;
573
+ font-size: 1rem;
574
+ line-height: 1.3;
575
+ }
576
+ .mc-toaster--information {
577
+ background: #002a41;
578
+ }
579
+ .mc-toaster--information .mc-toaster__icon {
580
+ fill: #3facd7;
581
+ }
582
+ .mc-toaster--information .mc-toaster__indicator {
583
+ --progressbar-color-indicator: #3facd7;
584
+ }
585
+ .mc-toaster--success {
586
+ background: #023618;
587
+ }
588
+ .mc-toaster--success .mc-toaster__icon {
589
+ fill: #78be20;
590
+ }
591
+ .mc-toaster--success .mc-toaster__indicator {
592
+ --progressbar-color-indicator: #78be20;
593
+ }
594
+ .mc-toaster--warning {
595
+ background: #360e00;
596
+ }
597
+ .mc-toaster--warning .mc-toaster__icon {
598
+ fill: #ef934a;
599
+ }
600
+ .mc-toaster--warning .mc-toaster__indicator {
601
+ --progressbar-color-indicator: #ef934a;
602
+ }
603
+ .mc-toaster--error {
604
+ background: #2d0000;
605
+ }
606
+ .mc-toaster--error .mc-toaster__icon {
607
+ fill: #ef5f5c;
608
+ }
609
+ .mc-toaster--error .mc-toaster__indicator {
610
+ --progressbar-color-indicator: #ef5f5c;
611
+ }
612
+ .mc-toaster--bottom {
613
+ top: inherit;
614
+ bottom: 1.5rem;
615
+ right: 1.5rem;
616
+ }
617
+ .mc-toaster--top-center {
618
+ top: 1.5rem;
619
+ right: 50%;
620
+ transform: translateX(50%) !important;
621
+ }
622
+ .mc-toaster--bottom-center {
623
+ top: inherit;
624
+ bottom: 1.5rem;
625
+ right: 50%;
626
+ transform: translateX(50%) !important;
627
+ }
628
+ .mc-toaster__indicator {
629
+ width: 100%;
630
+ margin: 0.5rem;
631
+ --progressbar-color-indicator: #3facd7;
632
+ --progressbar-color-background: #ffffff;
633
+ }
634
+ .mc-toaster__close {
635
+ margin: 0.25rem;
636
+ }
637
+
638
+ .mc-toaster__action:empty {
639
+ display: none;
640
+ }</style>
@@ -0,0 +1,54 @@
1
+ /**
2
+ * A toaster is a temporary notification that appears briefly on the screen to provide feedback or updates without interrupting the user’s workflow. It is commonly used for success messages, warnings, errors, or informational updates. Toasters can disappear automatically after a few seconds, be dismissed manually via a close button, or be removed when the user performs a relevant action. They typically include an icon, a short message, and an optional close button for better usability.
3
+ */
4
+ interface Props {
5
+ /**
6
+ * If `true`, display the Toaster.
7
+ */
8
+ open?: boolean;
9
+ /**
10
+ * Position of the toaster.
11
+ */
12
+ position?: 'top' | 'bottom' | 'top-center' | 'bottom-center';
13
+ /**
14
+ * Description of the toaster.
15
+ */
16
+ description: string;
17
+ /**
18
+ * Allows to define the toaster style.
19
+ */
20
+ status?: 'info' | 'success' | 'warning' | 'error';
21
+ /**
22
+ * If `true`, display the close button.
23
+ */
24
+ closable?: boolean;
25
+ /**
26
+ * If `true`, display the progress bar of the duration.
27
+ */
28
+ progress?: boolean;
29
+ /**
30
+ * Duration of the toaster
31
+ */
32
+ timeout?: number;
33
+ }
34
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
35
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
36
+ $$bindings?: Bindings;
37
+ } & Exports;
38
+ (internal: unknown, props: Props & {
39
+ $$events?: Events;
40
+ $$slots?: Slots;
41
+ }): Exports & {
42
+ $set?: any;
43
+ $on?: any;
44
+ };
45
+ z_$$bindings?: Bindings;
46
+ }
47
+ declare const Toaster: $$__sveltets_2_IsomorphicComponent<Props, {
48
+ [evt: string]: CustomEvent<any>;
49
+ }, {
50
+ action: {};
51
+ }, {}, "">;
52
+ type Toaster = InstanceType<typeof Toaster>;
53
+ export default Toaster;
54
+ //# sourceMappingURL=Toaster.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toaster.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/toaster/Toaster.svelte.ts"],"names":[],"mappings":"AAUE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,GAAG,eAAe,CAAC;IAC7D;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAClD;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8GH,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAUD,QAAA,MAAM,OAAO;;;;UAAqF,CAAC;AACjF,KAAK,OAAO,GAAG,YAAY,CAAC,OAAO,OAAO,CAAC,CAAC;AAC9C,eAAe,OAAO,CAAC"}