@flightlesslabs/dodo-ui 0.14.0 → 0.16.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 (64) hide show
  1. package/dist/index.d.ts +13 -0
  2. package/dist/index.js +8 -0
  3. package/dist/stories/components/Form/Checkbox/Checkbox.stories.svelte +39 -0
  4. package/dist/stories/components/Form/Checkbox/Checkbox.stories.svelte.d.ts +21 -0
  5. package/dist/stories/components/Form/Checkbox/Checkbox.svelte +452 -0
  6. package/dist/stories/components/Form/Checkbox/Checkbox.svelte.d.ts +42 -0
  7. package/dist/stories/components/Form/Checkbox/Color/Color.stories.svelte +19 -0
  8. package/dist/stories/components/Form/Checkbox/Color/Color.stories.svelte.d.ts +26 -0
  9. package/dist/stories/components/Form/Checkbox/Customize/Customize.stories.svelte +27 -0
  10. package/dist/stories/components/Form/Checkbox/Customize/Customize.stories.svelte.d.ts +18 -0
  11. package/dist/stories/components/Form/Checkbox/Events/Events.stories.svelte +35 -0
  12. package/dist/stories/components/Form/Checkbox/Events/Events.stories.svelte.d.ts +18 -0
  13. package/dist/stories/components/Form/Checkbox/Roundness/Roundness.stories.svelte +22 -0
  14. package/dist/stories/components/Form/Checkbox/Roundness/Roundness.stories.svelte.d.ts +26 -0
  15. package/dist/stories/components/Form/Checkbox/Size/Size.stories.svelte +16 -0
  16. package/dist/stories/components/Form/Checkbox/Size/Size.stories.svelte.d.ts +26 -0
  17. package/dist/stories/components/Form/Checkbox/utils/scss/mixins.scss +80 -0
  18. package/dist/stories/components/Form/Radio/Color/Color.stories.svelte +19 -0
  19. package/dist/stories/components/Form/Radio/Color/Color.stories.svelte.d.ts +26 -0
  20. package/dist/stories/components/Form/Radio/Events/Events.stories.svelte +32 -0
  21. package/dist/stories/components/Form/Radio/Events/Events.stories.svelte.d.ts +18 -0
  22. package/dist/stories/components/Form/Radio/Radio.stories.svelte +39 -0
  23. package/dist/stories/components/Form/Radio/Radio.stories.svelte.d.ts +21 -0
  24. package/dist/stories/components/Form/Radio/Radio.svelte +413 -0
  25. package/dist/stories/components/Form/Radio/Radio.svelte.d.ts +36 -0
  26. package/dist/stories/components/Form/Radio/Roundness/Roundness.stories.svelte +22 -0
  27. package/dist/stories/components/Form/Radio/Roundness/Roundness.stories.svelte.d.ts +26 -0
  28. package/dist/stories/components/Form/Radio/Size/Size.stories.svelte +16 -0
  29. package/dist/stories/components/Form/Radio/Size/Size.stories.svelte.d.ts +26 -0
  30. package/dist/stories/components/Form/Radio/utils/scss/mixins.scss +85 -0
  31. package/dist/stories/components/Form/Toggle/Toggle.svelte +30 -40
  32. package/dist/stories/components/Form/Toggle/Toggle.svelte.d.ts +2 -0
  33. package/dist/stories/components/Form/Toggle/utils/scss/mixins.scss +1 -14
  34. package/dist/stories/components/Layout/Grid/Column/Column.stories.svelte +18 -0
  35. package/dist/stories/components/Layout/Grid/Column/Column.stories.svelte.d.ts +21 -0
  36. package/dist/stories/components/Layout/Grid/Column/Column.svelte +73 -0
  37. package/dist/stories/components/Layout/Grid/Column/Column.svelte.d.ts +24 -0
  38. package/dist/stories/components/Layout/Grid/Grid.stories.svelte +179 -0
  39. package/dist/stories/components/Layout/Grid/Grid.stories.svelte.d.ts +21 -0
  40. package/dist/stories/components/Layout/Grid/Grid.svelte +24 -0
  41. package/dist/stories/components/Layout/Grid/Grid.svelte.d.ts +16 -0
  42. package/dist/stories/components/Layout/Grid/Row/Row.stories.svelte +19 -0
  43. package/dist/stories/components/Layout/Grid/Row/Row.stories.svelte.d.ts +21 -0
  44. package/dist/stories/components/Layout/Grid/Row/Row.svelte +20 -0
  45. package/dist/stories/components/Layout/Grid/Row/Row.svelte.d.ts +12 -0
  46. package/dist/styles/global.css +0 -1
  47. package/dist/styles/scss/_breakpoints.scss +5 -0
  48. package/dist/styles/scss/index.scss +1 -0
  49. package/package.json +4 -3
  50. package/src/lib/index.ts +19 -0
  51. package/src/lib/stories/components/Form/Checkbox/Checkbox.svelte +323 -0
  52. package/src/lib/stories/components/Form/Checkbox/utils/scss/mixins.scss +80 -0
  53. package/src/lib/stories/components/Form/Radio/Radio.svelte +278 -0
  54. package/src/lib/stories/components/Form/Radio/utils/scss/mixins.scss +85 -0
  55. package/src/lib/stories/components/Form/Toggle/Toggle.svelte +31 -3
  56. package/src/lib/stories/components/Form/Toggle/utils/scss/mixins.scss +1 -14
  57. package/src/lib/stories/components/Layout/Grid/Column/Column.svelte +127 -0
  58. package/src/lib/stories/components/Layout/Grid/Grid.svelte +47 -0
  59. package/src/lib/stories/components/Layout/Grid/Row/Row.svelte +36 -0
  60. package/src/lib/styles/global.css +0 -1
  61. package/src/lib/styles/scss/_breakpoints.scss +5 -0
  62. package/src/lib/styles/scss/index.scss +1 -0
  63. package/dist/styles/_breakpoint.css +0 -10
  64. package/src/lib/styles/_breakpoint.css +0 -10
@@ -2,7 +2,7 @@
2
2
  </script>
3
3
 
4
4
  <script lang="ts">"use strict";
5
- let { children, size = 'normal', color = 'primary', roundness = 3, name, id, title, class: className = '', disabled = false, checked = $bindable(), ref = $bindable(), onchange, } = $props();
5
+ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, title, class: className = '', disabled = false, checked = $bindable(), ref = $bindable(), onchange, value, } = $props();
6
6
  </script>
7
7
 
8
8
  <label
@@ -16,7 +16,17 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
16
16
  ].join(' ')}
17
17
  for={id}
18
18
  >
19
- <input type="checkbox" {name} {id} {title} {disabled} {onchange} bind:this={ref} bind:checked />
19
+ <input
20
+ type="checkbox"
21
+ {name}
22
+ {id}
23
+ {title}
24
+ {disabled}
25
+ {onchange}
26
+ bind:this={ref}
27
+ bind:checked
28
+ {value}
29
+ />
20
30
  <div class="Toggle">
21
31
  <span class="ToggleHandle"></span>
22
32
  </div>
@@ -31,6 +41,8 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
31
41
  <style>:global(:root) {
32
42
  --dodo-ui-Toggle-disabled-color: var(--dodo-color-neutral-400);
33
43
  --dodo-ui-Toggle-disabled-bg: var(--dodo-color-neutral-200);
44
+ --dodo-ui-Toggle-border-disabled-color: var(--dodo-color-neutral-300);
45
+ --dodo-ui-Toggle-border-color: var(--dodo-color-neutral-400);
34
46
  --dodo-ui-ToggleHandle-bg: var(--dodo-color-neutral-500);
35
47
  --dodo-ui-ToggleHandle-disabled-bg: var(--dodo-color-neutral-400);
36
48
  --dodo-ui-Toggle-neutral-bg: var(--dodo-color-neutral-200);
@@ -74,6 +86,8 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
74
86
  :global(.dodo-theme--dark) {
75
87
  --dodo-ui-Toggle-disabled-bg: var(--dodo-color-neutral-100);
76
88
  --dodo-ui-Toggle-disabled-color: var(--dodo-color-neutral-500);
89
+ --dodo-ui-Toggle-border-disabled-color: var(--dodo-color-neutral-400);
90
+ --dodo-ui-Toggle-border-color: var(--dodo-color-neutral-500);
77
91
  --dodo-ui-ToggleHandle-bg: var(--dodo-color-neutral-300);
78
92
  --dodo-ui-ToggleHandle-disabled-bg: var(--dodo-color-neutral-200);
79
93
  --dodo-ui-Toggle-neutral-bg: var(--dodo-color-neutral-800);
@@ -120,11 +134,16 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
120
134
  display: inline-flex;
121
135
  padding: 0;
122
136
  margin: 0;
137
+ position: relative;
123
138
  }
124
139
  .dodo-ui-Toggle input {
125
140
  opacity: 0;
126
141
  width: 0;
127
142
  height: 0;
143
+ position: absolute;
144
+ }
145
+ .dodo-ui-Toggle input:focus-visible + .Toggle {
146
+ outline: 1px solid;
128
147
  }
129
148
  .dodo-ui-Toggle input:checked + .Toggle .ToggleHandle {
130
149
  transform: translateX(var(--ToggleHandle-offset));
@@ -141,13 +160,13 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
141
160
  align-items: center;
142
161
  font-family: inherit;
143
162
  border-style: solid;
144
- border-width: var(--dodo-ui-element-border-width);
145
- border-color: transparent;
146
163
  outline: 0;
147
164
  letter-spacing: 0.3px;
148
165
  padding: 0 var(--dodo-ui-space-small);
149
166
  border-radius: inherit;
150
167
  position: relative;
168
+ border-width: calc(var(--dodo-ui-element-border-width) * 2);
169
+ border-color: var(--dodo-ui-Toggle-border-color);
151
170
  }
152
171
  .dodo-ui-Toggle .ToggleMessage {
153
172
  display: flex;
@@ -206,6 +225,7 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
206
225
  }
207
226
  .dodo-ui-Toggle.color--neutral input:checked:not([disabled]) + .Toggle {
208
227
  background-color: var(--dodo-ui-Toggle-neutral-checked-bg);
228
+ border-color: transparent;
209
229
  }
210
230
  .dodo-ui-Toggle.color--neutral:hover .Toggle {
211
231
  background-color: var(--dodo-ui-Toggle-neutral-hover-bg);
@@ -219,17 +239,12 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
219
239
  .dodo-ui-Toggle.color--neutral:active input:checked:not([disabled]) + .Toggle {
220
240
  background-color: var(--dodo-ui-Toggle-neutral-checked-active-bg);
221
241
  }
222
- .dodo-ui-Toggle.color--neutral input:not([disabled]):focus-visible + .Toggle {
223
- background-color: var(--dodo-ui-Toggle-neutral-active-bg);
224
- }
225
- .dodo-ui-Toggle.color--neutral input:not([disabled]):focus-visible:checked + .Toggle {
226
- background-color: var(--dodo-ui-Toggle-neutral-checked-active-bg);
227
- }
228
242
  .dodo-ui-Toggle.color--primary .Toggle {
229
243
  background-color: var(--dodo-ui-Toggle-primary-bg);
230
244
  }
231
245
  .dodo-ui-Toggle.color--primary input:checked:not([disabled]) + .Toggle {
232
246
  background-color: var(--dodo-ui-Toggle-primary-checked-bg);
247
+ border-color: transparent;
233
248
  }
234
249
  .dodo-ui-Toggle.color--primary:hover .Toggle {
235
250
  background-color: var(--dodo-ui-Toggle-primary-hover-bg);
@@ -243,17 +258,12 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
243
258
  .dodo-ui-Toggle.color--primary:active input:checked:not([disabled]) + .Toggle {
244
259
  background-color: var(--dodo-ui-Toggle-primary-checked-active-bg);
245
260
  }
246
- .dodo-ui-Toggle.color--primary input:not([disabled]):focus-visible + .Toggle {
247
- background-color: var(--dodo-ui-Toggle-primary-active-bg);
248
- }
249
- .dodo-ui-Toggle.color--primary input:not([disabled]):focus-visible:checked + .Toggle {
250
- background-color: var(--dodo-ui-Toggle-primary-checked-active-bg);
251
- }
252
261
  .dodo-ui-Toggle.color--secondary .Toggle {
253
262
  background-color: var(--dodo-ui-Toggle-secondary-bg);
254
263
  }
255
264
  .dodo-ui-Toggle.color--secondary input:checked:not([disabled]) + .Toggle {
256
265
  background-color: var(--dodo-ui-Toggle-secondary-checked-bg);
266
+ border-color: transparent;
257
267
  }
258
268
  .dodo-ui-Toggle.color--secondary:hover .Toggle {
259
269
  background-color: var(--dodo-ui-Toggle-secondary-hover-bg);
@@ -267,17 +277,12 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
267
277
  .dodo-ui-Toggle.color--secondary:active input:checked:not([disabled]) + .Toggle {
268
278
  background-color: var(--dodo-ui-Toggle-secondary-checked-active-bg);
269
279
  }
270
- .dodo-ui-Toggle.color--secondary input:not([disabled]):focus-visible + .Toggle {
271
- background-color: var(--dodo-ui-Toggle-secondary-active-bg);
272
- }
273
- .dodo-ui-Toggle.color--secondary input:not([disabled]):focus-visible:checked + .Toggle {
274
- background-color: var(--dodo-ui-Toggle-secondary-checked-active-bg);
275
- }
276
280
  .dodo-ui-Toggle.color--safe .Toggle {
277
281
  background-color: var(--dodo-ui-Toggle-safe-bg);
278
282
  }
279
283
  .dodo-ui-Toggle.color--safe input:checked:not([disabled]) + .Toggle {
280
284
  background-color: var(--dodo-ui-Toggle-safe-checked-bg);
285
+ border-color: transparent;
281
286
  }
282
287
  .dodo-ui-Toggle.color--safe:hover .Toggle {
283
288
  background-color: var(--dodo-ui-Toggle-safe-hover-bg);
@@ -291,17 +296,12 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
291
296
  .dodo-ui-Toggle.color--safe:active input:checked:not([disabled]) + .Toggle {
292
297
  background-color: var(--dodo-ui-Toggle-safe-checked-active-bg);
293
298
  }
294
- .dodo-ui-Toggle.color--safe input:not([disabled]):focus-visible + .Toggle {
295
- background-color: var(--dodo-ui-Toggle-safe-active-bg);
296
- }
297
- .dodo-ui-Toggle.color--safe input:not([disabled]):focus-visible:checked + .Toggle {
298
- background-color: var(--dodo-ui-Toggle-safe-checked-active-bg);
299
- }
300
299
  .dodo-ui-Toggle.color--warning .Toggle {
301
300
  background-color: var(--dodo-ui-Toggle-warning-bg);
302
301
  }
303
302
  .dodo-ui-Toggle.color--warning input:checked:not([disabled]) + .Toggle {
304
303
  background-color: var(--dodo-ui-Toggle-warning-checked-bg);
304
+ border-color: transparent;
305
305
  }
306
306
  .dodo-ui-Toggle.color--warning:hover .Toggle {
307
307
  background-color: var(--dodo-ui-Toggle-warning-hover-bg);
@@ -315,17 +315,12 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
315
315
  .dodo-ui-Toggle.color--warning:active input:checked:not([disabled]) + .Toggle {
316
316
  background-color: var(--dodo-ui-Toggle-warning-checked-active-bg);
317
317
  }
318
- .dodo-ui-Toggle.color--warning input:not([disabled]):focus-visible + .Toggle {
319
- background-color: var(--dodo-ui-Toggle-warning-active-bg);
320
- }
321
- .dodo-ui-Toggle.color--warning input:not([disabled]):focus-visible:checked + .Toggle {
322
- background-color: var(--dodo-ui-Toggle-warning-checked-active-bg);
323
- }
324
318
  .dodo-ui-Toggle.color--danger .Toggle {
325
319
  background-color: var(--dodo-ui-Toggle-danger-bg);
326
320
  }
327
321
  .dodo-ui-Toggle.color--danger input:checked:not([disabled]) + .Toggle {
328
322
  background-color: var(--dodo-ui-Toggle-danger-checked-bg);
323
+ border-color: transparent;
329
324
  }
330
325
  .dodo-ui-Toggle.color--danger:hover .Toggle {
331
326
  background-color: var(--dodo-ui-Toggle-danger-hover-bg);
@@ -339,18 +334,13 @@ let { children, size = 'normal', color = 'primary', roundness = 3, name, id, tit
339
334
  .dodo-ui-Toggle.color--danger:active input:checked:not([disabled]) + .Toggle {
340
335
  background-color: var(--dodo-ui-Toggle-danger-checked-active-bg);
341
336
  }
342
- .dodo-ui-Toggle.color--danger input:not([disabled]):focus-visible + .Toggle {
343
- background-color: var(--dodo-ui-Toggle-danger-active-bg);
344
- }
345
- .dodo-ui-Toggle.color--danger input:not([disabled]):focus-visible:checked + .Toggle {
346
- background-color: var(--dodo-ui-Toggle-danger-checked-active-bg);
347
- }
348
337
  .dodo-ui-Toggle.disabled {
349
338
  cursor: initial;
350
339
  color: var(--dodo-ui-Toggle-disabled-color);
351
340
  }
352
341
  .dodo-ui-Toggle.disabled .Toggle {
353
342
  background-color: var(--dodo-ui-Toggle-disabled-bg);
343
+ border-color: var(--dodo-ui-Toggle-border-disabled-color);
354
344
  }
355
345
  .dodo-ui-Toggle.disabled .ToggleHandle {
356
346
  background-color: var(--dodo-ui-ToggleHandle-disabled-bg);
@@ -18,6 +18,8 @@ export interface ToggleProps {
18
18
  disabled?: boolean;
19
19
  /** Name */
20
20
  name?: string;
21
+ /** value */
22
+ value?: string;
21
23
  /** Id */
22
24
  id?: string;
23
25
  /** Title (for tooltip) */
@@ -37,6 +37,7 @@
37
37
  input:checked:not([disabled]) {
38
38
  & + .Toggle {
39
39
  background-color: var(--dodo-ui-Toggle-#{$theme}-checked-bg);
40
+ border-color: transparent;
40
41
  }
41
42
  }
42
43
 
@@ -63,19 +64,5 @@
63
64
  }
64
65
  }
65
66
  }
66
-
67
- input:not([disabled]) {
68
- &:focus-visible {
69
- & + .Toggle {
70
- background-color: var(--dodo-ui-Toggle-#{$theme}-active-bg);
71
- }
72
-
73
- &:checked {
74
- & + .Toggle {
75
- background-color: var(--dodo-ui-Toggle-#{$theme}-checked-active-bg);
76
- }
77
- }
78
- }
79
- }
80
67
  }
81
68
  }
@@ -0,0 +1,18 @@
1
+ <script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
2
+ import Column, { GridColumnSizeArray } from './Column.svelte';
3
+ export const storyGridColumnArgTypes = {
4
+ size: {
5
+ control: { type: 'select' },
6
+ options: GridColumnSizeArray,
7
+ },
8
+ };
9
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
10
+ const { Story } = defineMeta({
11
+ component: Column,
12
+ tags: ['autodocs'],
13
+ argTypes: storyGridColumnArgTypes,
14
+ });
15
+ </script>
16
+
17
+ <!-- Default Grid Column -->
18
+ <Story name="Default">Hola!</Story>
@@ -0,0 +1,21 @@
1
+ import Column from './Column.svelte';
2
+ import type { StoryBookArgTypes } from '../../../../../storybook-types.js';
3
+ export declare const storyGridColumnArgTypes: StoryBookArgTypes;
4
+ 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> {
5
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
6
+ $$bindings?: Bindings;
7
+ } & Exports;
8
+ (internal: unknown, props: {
9
+ $$events?: Events;
10
+ $$slots?: Slots;
11
+ }): Exports & {
12
+ $set?: any;
13
+ $on?: any;
14
+ };
15
+ z_$$bindings?: Bindings;
16
+ }
17
+ declare const Column: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
18
+ [evt: string]: CustomEvent<any>;
19
+ }, {}, {}, string>;
20
+ type Column = InstanceType<typeof Column>;
21
+ export default Column;
@@ -0,0 +1,73 @@
1
+ <script lang="ts" module>import {} from 'svelte';
2
+ export const GridColumnSizeArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
3
+ </script>
4
+
5
+ <script lang="ts">"use strict";
6
+ let { children, class: className = '', ref = $bindable(), sm = 12, md, lg, xl, xl2, } = $props();
7
+ const breakpoints = [
8
+ { name: 'sm', value: sm },
9
+ { name: 'md', value: md },
10
+ { name: 'lg', value: lg },
11
+ { name: 'xl', value: xl },
12
+ { name: 'xl2', value: xl2 },
13
+ ];
14
+ function getBreakpointClasses() {
15
+ let classNameBreakpoints = [];
16
+ for (let index = 0; index < breakpoints.length; index++) {
17
+ const element = breakpoints[index];
18
+ if (!element.value) {
19
+ continue;
20
+ }
21
+ classNameBreakpoints.push(`breakpoint--${element.name}`);
22
+ }
23
+ return classNameBreakpoints;
24
+ }
25
+ function getBreakpointCssVariables() {
26
+ let cssVariablesBreakpoints = [];
27
+ for (let index = 0; index < breakpoints.length; index++) {
28
+ const element = breakpoints[index];
29
+ if (!element.value) {
30
+ continue;
31
+ }
32
+ cssVariablesBreakpoints.push(`--GridColumnBreakpoint-${element.name}: ${element.value}`);
33
+ }
34
+ return cssVariablesBreakpoints.join(';');
35
+ }
36
+ </script>
37
+
38
+ <div
39
+ class={['dodo-ui-GridColumn', ...getBreakpointClasses(), className].join(' ')}
40
+ style={getBreakpointCssVariables()}
41
+ bind:this={ref}
42
+ >
43
+ {#if children}
44
+ {@render children()}
45
+ {/if}
46
+ </div>
47
+
48
+ <style>.dodo-ui-GridColumn {
49
+ min-width: 0;
50
+ }
51
+ .dodo-ui-GridColumn.breakpoint--sm {
52
+ grid-column: span var(--GridColumnBreakpoint-sm);
53
+ }
54
+ @media (min-width: 48rem) {
55
+ .dodo-ui-GridColumn.breakpoint--md {
56
+ grid-column: span var(--GridColumnBreakpoint-md);
57
+ }
58
+ }
59
+ @media (min-width: 64rem) {
60
+ .dodo-ui-GridColumn.breakpoint--lg {
61
+ grid-column: span var(--GridColumnBreakpoint-lg);
62
+ }
63
+ }
64
+ @media (min-width: 80rem) {
65
+ .dodo-ui-GridColumn.breakpoint--xl {
66
+ grid-column: span var(--GridColumnBreakpoint-xl);
67
+ }
68
+ }
69
+ @media (min-width: 96rem) {
70
+ .dodo-ui-GridColumn.breakpoint--xl2 {
71
+ grid-column: span var(--GridColumnBreakpoint-xl2);
72
+ }
73
+ }</style>
@@ -0,0 +1,24 @@
1
+ import { type Snippet } from 'svelte';
2
+ export type GridColumnSize = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
3
+ export declare const GridColumnSizeArray: GridColumnSize[];
4
+ export interface GridColumnProps {
5
+ /** GridColumn contents goes here */
6
+ children?: Snippet;
7
+ /** GridColumn ref */
8
+ ref?: HTMLDivElement;
9
+ /** Custom css class */
10
+ class?: string;
11
+ /** Breakpoint: sm */
12
+ sm?: GridColumnSize;
13
+ /** Breakpoint: md */
14
+ md?: GridColumnSize;
15
+ /** Breakpoint: lg */
16
+ lg?: GridColumnSize;
17
+ /** Breakpoint: xl */
18
+ xl?: GridColumnSize;
19
+ /** Breakpoint: 2 xl */
20
+ xl2?: GridColumnSize;
21
+ }
22
+ declare const Column: import("svelte").Component<GridColumnProps, {}, "ref">;
23
+ type Column = ReturnType<typeof Column>;
24
+ export default Column;
@@ -0,0 +1,179 @@
1
+ <script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
2
+ import Grid from './Grid.svelte';
3
+ import Row from './Row/Row.svelte';
4
+ import Column from './Column/Column.svelte';
5
+ import Paper from '../Paper/Paper.svelte';
6
+ export const storyGridArgTypes = {};
7
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
+ const { Story } = defineMeta({
9
+ component: Grid,
10
+ tags: ['autodocs'],
11
+ argTypes: storyGridArgTypes,
12
+ });
13
+ </script>
14
+
15
+ <!-- Default Grid -->
16
+ <Story name="Default" asChild>
17
+ <Grid>
18
+ <Column>Hola!</Column>
19
+ <Column>Hola!</Column>
20
+ <Column>Hola!</Column>
21
+ </Grid>
22
+ </Story>
23
+
24
+ <Story name="Example Column" asChild>
25
+ <Grid>
26
+ <Column sm={10}>
27
+ <Paper color="primary"><p>10</p></Paper>
28
+ </Column>
29
+ <Column sm={2}><Paper color="primary"><p>2</p></Paper></Column>
30
+ <Column sm={4}><Paper color="primary"><p>4</p></Paper></Column>
31
+ </Grid>
32
+ </Story>
33
+
34
+ <!-- the Row helps to furher separate Columns -->
35
+ <Story name="Example Row" asChild>
36
+ <Grid>
37
+ <Row>
38
+ <Column sm={10}>
39
+ <Paper color="primary"><p>10</p></Paper>
40
+ </Column>
41
+ <Column sm={2}><Paper color="primary"><p>2</p></Paper></Column>
42
+ <Column sm={4}><Paper color="primary"><p>4</p></Paper></Column>
43
+ </Row>
44
+ <Row>
45
+ <Column sm={10}>
46
+ <Paper color="primary"><p>10</p></Paper>
47
+ </Column>
48
+ <Column sm={2}><Paper color="primary"><p>2</p></Paper></Column>
49
+ <Column sm={4}><Paper color="primary"><p>4</p></Paper></Column>
50
+ </Row>
51
+ </Grid>
52
+ </Story>
53
+
54
+ <Story name="Nested" asChild>
55
+ <Grid>
56
+ <Column sm={6}>
57
+ <Paper color="primary"><p>6</p></Paper>
58
+ </Column>
59
+ <Column sm={6}>
60
+ <Grid>
61
+ <Column sm={8}>
62
+ <Paper color="safe"><p>8</p></Paper>
63
+ </Column>
64
+ <Column sm={4}>
65
+ <Paper color="safe"><p>4</p></Paper>
66
+ </Column>
67
+ <Column sm={12}>
68
+ <Paper color="safe"><p>12</p></Paper>
69
+ </Column>
70
+ </Grid>
71
+ </Column>
72
+ </Grid>
73
+ </Story>
74
+
75
+ <!-- Resize the screen to see the effect -->
76
+ <Story name="Responsive" asChild>
77
+ <Grid spacing={2}>
78
+ <Row>
79
+ <Column md={8}>
80
+ <Paper color="primary"><p>md:8</p></Paper>
81
+ </Column>
82
+ <Column md={4}><Paper color="primary"><p>md:4</p></Paper></Column>
83
+ </Row>
84
+ <Row>
85
+ <Column sm={4}>
86
+ <Paper color="primary"><p>sm:4</p></Paper>
87
+ </Column>
88
+ <Column><Paper color="primary"><p>sm:12</p></Paper></Column>
89
+ </Row>
90
+ <Row>
91
+ <Column lg={2}>
92
+ <Paper color="primary"><p>lg:2</p></Paper>
93
+ </Column>
94
+ <Column lg={10}>
95
+ <Paper color="primary"><p>lg:10</p></Paper>
96
+ </Column>
97
+ </Row>
98
+ <Row>
99
+ <Column xl={2}>
100
+ <Paper color="primary"><p>xl:2</p></Paper>
101
+ </Column>
102
+ <Column xl={10}>
103
+ <Paper color="primary"><p>xl:10</p></Paper>
104
+ </Column>
105
+ </Row>
106
+ <Row>
107
+ <Column xl2={2}>
108
+ <Paper color="primary"><p>xl2:2</p></Paper>
109
+ </Column>
110
+ <Column xl2={10}>
111
+ <Paper color="primary"><p>xl2:10</p></Paper>
112
+ </Column>
113
+ </Row>
114
+ </Grid>
115
+ </Story>
116
+
117
+ <Story name="Spacing" asChild>
118
+ <Grid spacing={2}>
119
+ <Row>
120
+ <Column sm={4}>
121
+ <Paper color="primary"><p>4</p></Paper>
122
+ </Column>
123
+ <Column sm={4}><Paper color="primary"><p>4</p></Paper></Column>
124
+ <Column sm={4}><Paper color="primary"><p>4</p></Paper></Column>
125
+ </Row>
126
+ <Row>
127
+ <Column sm={4}>
128
+ <Paper color="primary"><p>4</p></Paper>
129
+ </Column>
130
+ <Column><Paper color="primary"><p>12</p></Paper></Column>
131
+ </Row>
132
+ <Row>
133
+ <Column sm={2}>
134
+ <Paper color="primary"><p>2</p></Paper>
135
+ </Column>
136
+ <Column sm={3}>
137
+ <Paper color="primary"><p>3</p></Paper>
138
+ </Column>
139
+ <Column sm={4}>
140
+ <Paper color="primary"><p>4</p></Paper>
141
+ </Column>
142
+ <Column>
143
+ <Paper color="primary"><p>12</p></Paper>
144
+ </Column>
145
+ </Row>
146
+ </Grid>
147
+ </Story>
148
+
149
+ <Story name="RowSpacing" asChild>
150
+ <Grid rowSpacing={4}>
151
+ <Row>
152
+ <Column sm={4}>
153
+ <Paper color="primary"><p>4</p></Paper>
154
+ </Column>
155
+ <Column sm={4}><Paper color="primary"><p>4</p></Paper></Column>
156
+ <Column sm={4}><Paper color="primary"><p>4</p></Paper></Column>
157
+ </Row>
158
+ <Row>
159
+ <Column sm={4}>
160
+ <Paper color="primary"><p>4</p></Paper>
161
+ </Column>
162
+ <Column><Paper color="primary"><p>12</p></Paper></Column>
163
+ </Row>
164
+ <Row>
165
+ <Column sm={2}>
166
+ <Paper color="primary"><p>2</p></Paper>
167
+ </Column>
168
+ <Column sm={3}>
169
+ <Paper color="primary"><p>3</p></Paper>
170
+ </Column>
171
+ <Column sm={4}>
172
+ <Paper color="primary"><p>4</p></Paper>
173
+ </Column>
174
+ <Column>
175
+ <Paper color="primary"><p>12</p></Paper>
176
+ </Column>
177
+ </Row>
178
+ </Grid>
179
+ </Story>
@@ -0,0 +1,21 @@
1
+ import Grid from './Grid.svelte';
2
+ import type { StoryBookArgTypes } from '../../../../storybook-types.js';
3
+ export declare const storyGridArgTypes: StoryBookArgTypes;
4
+ 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> {
5
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
6
+ $$bindings?: Bindings;
7
+ } & Exports;
8
+ (internal: unknown, props: {
9
+ $$events?: Events;
10
+ $$slots?: Slots;
11
+ }): Exports & {
12
+ $set?: any;
13
+ $on?: any;
14
+ };
15
+ z_$$bindings?: Bindings;
16
+ }
17
+ declare const Grid: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
18
+ [evt: string]: CustomEvent<any>;
19
+ }, {}, {}, string>;
20
+ type Grid = InstanceType<typeof Grid>;
21
+ export default Grid;
@@ -0,0 +1,24 @@
1
+ <script lang="ts" module>import {} from 'svelte';
2
+ </script>
3
+
4
+ <script lang="ts">"use strict";
5
+ let { children, class: className = '', ref = $bindable(), spacing = 1, rowSpacing, } = $props();
6
+ const rowSpacingModified = rowSpacing || rowSpacing === 0 ? rowSpacing : spacing;
7
+ </script>
8
+
9
+ <div
10
+ class={['dodo-ui-Grid', className].join(' ')}
11
+ bind:this={ref}
12
+ style={`--GridSpacing: ${spacing}; --GridRowSpacing: ${rowSpacingModified};`}
13
+ >
14
+ {#if children}
15
+ {@render children()}
16
+ {/if}
17
+ </div>
18
+
19
+ <style>.dodo-ui-Grid {
20
+ display: grid;
21
+ grid-template-columns: repeat(12, 1fr);
22
+ gap: calc(var(--GridRowSpacing) * var(--dodo-ui-space));
23
+ grid-auto-flow: row;
24
+ }</style>
@@ -0,0 +1,16 @@
1
+ import { type Snippet } from 'svelte';
2
+ export interface GridProps {
3
+ /** Grid contents goes here */
4
+ children?: Snippet;
5
+ /** Grid ref */
6
+ ref?: HTMLDivElement;
7
+ /** Custom css class */
8
+ class?: string;
9
+ /** Grid spacing, affects Coulumns */
10
+ spacing?: number;
11
+ /** Optional Row spacing, default is 0 */
12
+ rowSpacing?: number;
13
+ }
14
+ declare const Grid: import("svelte").Component<GridProps, {}, "ref">;
15
+ type Grid = ReturnType<typeof Grid>;
16
+ export default Grid;
@@ -0,0 +1,19 @@
1
+ <script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
2
+ import Row from './Row.svelte';
3
+ import Column from '../Column/Column.svelte';
4
+ export const storyGridRowArgTypes = {};
5
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
6
+ const { Story } = defineMeta({
7
+ component: Row,
8
+ tags: ['autodocs'],
9
+ argTypes: storyGridRowArgTypes,
10
+ });
11
+ </script>
12
+
13
+ <!-- Default Grid Row -->
14
+ <Story name="Default" asChild>
15
+ <Row>
16
+ <Column>Hola!</Column>
17
+ <Column>Hola!</Column>
18
+ </Row>
19
+ </Story>
@@ -0,0 +1,21 @@
1
+ import Row from './Row.svelte';
2
+ import type { StoryBookArgTypes } from '../../../../../storybook-types.js';
3
+ export declare const storyGridRowArgTypes: StoryBookArgTypes;
4
+ 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> {
5
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
6
+ $$bindings?: Bindings;
7
+ } & Exports;
8
+ (internal: unknown, props: {
9
+ $$events?: Events;
10
+ $$slots?: Slots;
11
+ }): Exports & {
12
+ $set?: any;
13
+ $on?: any;
14
+ };
15
+ z_$$bindings?: Bindings;
16
+ }
17
+ declare const Row: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
18
+ [evt: string]: CustomEvent<any>;
19
+ }, {}, {}, string>;
20
+ type Row = InstanceType<typeof Row>;
21
+ export default Row;