@getmicdrop/svelte-components 5.6.0 → 5.6.1

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 (77) hide show
  1. package/dist/components/Layout/__tests__/AppShell.test.d.ts +2 -0
  2. package/dist/components/Layout/__tests__/AppShell.test.d.ts.map +1 -0
  3. package/dist/components/Layout/__tests__/AppShell.test.js +95 -0
  4. package/dist/components/Layout/__tests__/ContentSection.test.d.ts +2 -0
  5. package/dist/components/Layout/__tests__/ContentSection.test.d.ts.map +1 -0
  6. package/dist/components/Layout/__tests__/ContentSection.test.js +112 -0
  7. package/dist/components/Layout/__tests__/PageContainer.test.d.ts +2 -0
  8. package/dist/components/Layout/__tests__/PageContainer.test.d.ts.map +1 -0
  9. package/dist/components/Layout/__tests__/PageContainer.test.js +133 -0
  10. package/dist/components/Layout/__tests__/Responsive.test.d.ts +2 -0
  11. package/dist/components/Layout/__tests__/Responsive.test.d.ts.map +1 -0
  12. package/dist/components/Layout/__tests__/Responsive.test.js +123 -0
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.js +41 -40
  15. package/dist/patterns/navigation/BottomNav.svelte +18 -8
  16. package/dist/patterns/navigation/BottomNav.svelte.d.ts.map +1 -1
  17. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte +107 -107
  18. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte.d.ts +2 -2
  19. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte.d.ts.map +1 -1
  20. package/dist/primitives/Checkbox/Checkbox.svelte +3 -3
  21. package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -0
  22. package/dist/primitives/Dropdown/DropdownDivider.svelte.d.ts +7 -0
  23. package/dist/primitives/Dropdown/DropdownDivider.svelte.d.ts.map +1 -0
  24. package/dist/primitives/Helper/Helper.svelte +33 -0
  25. package/dist/primitives/Helper/Helper.svelte.d.ts +18 -0
  26. package/dist/primitives/Helper/Helper.svelte.d.ts.map +1 -0
  27. package/dist/primitives/Input/Input.svelte +416 -417
  28. package/dist/primitives/Input/Input.svelte.d.ts +2 -4
  29. package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
  30. package/dist/primitives/Modal/Modal.svelte +157 -158
  31. package/dist/primitives/Modal/Modal.svelte.d.ts +6 -8
  32. package/dist/primitives/Modal/Modal.svelte.d.ts.map +1 -1
  33. package/dist/primitives/NumberInput/NumberInput.svelte +105 -106
  34. package/dist/primitives/NumberInput/NumberInput.svelte.d.ts +0 -2
  35. package/dist/primitives/NumberInput/NumberInput.svelte.d.ts.map +1 -1
  36. package/dist/primitives/Toggle.svelte +70 -71
  37. package/dist/primitives/Toggle.svelte.d.ts +2 -4
  38. package/dist/primitives/Toggle.svelte.d.ts.map +1 -1
  39. package/dist/primitives/Tooltip/Tooltip.svelte +83 -0
  40. package/dist/primitives/Tooltip/Tooltip.svelte.d.ts +15 -0
  41. package/dist/primitives/Tooltip/Tooltip.svelte.d.ts.map +1 -0
  42. package/dist/primitives/index.d.ts +3 -0
  43. package/dist/primitives/index.js +7 -0
  44. package/dist/recipes/ImageUploader/ImageUploader.spec.js +6 -5
  45. package/dist/recipes/inputs/MultiSelect.svelte +277 -256
  46. package/dist/recipes/inputs/MultiSelect.svelte.d.ts +54 -21
  47. package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
  48. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +9 -4
  49. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +332 -327
  50. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts +12 -1
  51. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
  52. package/dist/stores/auth.js +8 -0
  53. package/dist/stores/auth.svelte.d.ts +39 -0
  54. package/dist/stores/auth.svelte.d.ts.map +1 -0
  55. package/dist/stores/auth.svelte.js +60 -0
  56. package/dist/stores/formDataStore.d.ts.map +1 -1
  57. package/dist/stores/formDataStore.js +8 -0
  58. package/dist/stores/formDataStore.svelte.d.ts +47 -0
  59. package/dist/stores/formDataStore.svelte.d.ts.map +1 -0
  60. package/dist/stores/formDataStore.svelte.js +84 -0
  61. package/dist/stores/formSave.d.ts.map +1 -1
  62. package/dist/stores/formSave.js +8 -0
  63. package/dist/stores/formSave.svelte.d.ts +33 -0
  64. package/dist/stores/formSave.svelte.d.ts.map +1 -0
  65. package/dist/stores/formSave.svelte.js +113 -0
  66. package/dist/stores/navigation.d.ts.map +1 -1
  67. package/dist/stores/navigation.js +8 -0
  68. package/dist/stores/navigation.svelte.d.ts +35 -0
  69. package/dist/stores/navigation.svelte.d.ts.map +1 -0
  70. package/dist/stores/navigation.svelte.js +69 -0
  71. package/dist/telemetry.server.spec.js +11 -8
  72. package/dist/telemetry.spec.js +75 -50
  73. package/dist/utils/imageValidation.spec.js +62 -59
  74. package/dist/utils/logger.d.ts +19 -0
  75. package/dist/utils/logger.d.ts.map +1 -0
  76. package/dist/utils/logger.js +47 -0
  77. package/package.json +296 -292
@@ -1,107 +1,107 @@
1
- <script lang="ts">
2
- /**
3
- * Test wrapper for AccordionItem
4
- * Provides the necessary accordion context that AccordionItem expects
5
- */
6
- import type { Snippet } from 'svelte';
7
- import { setContext } from 'svelte';
8
- import { writable } from 'svelte/store';
9
- import AccordionItem from './AccordionItem.svelte';
10
-
11
- interface Props {
12
- /** Allow multiple items open at once */
13
- multiple?: boolean;
14
- /** Remove outer border/radius (Flowbite flush variant) */
15
- flush?: boolean;
16
- /** Initial open state of the item */
17
- open?: boolean;
18
- /** Show bottom border */
19
- border?: boolean;
20
- /** Additional classes when open */
21
- borderOpenClass?: string;
22
- /** Custom class for the item */
23
- class?: string;
24
- /** Header snippet */
25
- header?: Snippet;
26
- /** Children snippet */
27
- children?: Snippet;
28
- /** Expose the openItems store for testing */
29
- openItems?: any;
30
- /** Expose the toggle function for testing */
31
- toggleFn?: any;
32
- /** Data attributes for testing */
33
- 'data-testid'?: string;
34
- 'data-custom'?: string;
35
- [key: string]: unknown;
36
- }
37
-
38
- let {
39
- multiple = false,
40
- flush = false,
41
- open = false,
42
- border = true,
43
- borderOpenClass = '',
44
- class: className = '',
45
- header,
46
- children,
47
- openItems: exposedOpenItems = $bindable(null),
48
- toggleFn: exposedToggleFn = $bindable(null),
49
- 'data-testid': dataTestId,
50
- 'data-custom': dataCustom,
51
- ...restProps
52
- }: Props = $props();
53
-
54
- // Create the accordion context
55
- const openItems = writable(new Set<string>());
56
-
57
- // Expose openItems to parent for testing
58
- exposedOpenItems = openItems;
59
-
60
- const toggle = (id: string) => {
61
- openItems.update((items) => {
62
- if (items.has(id)) {
63
- items.delete(id);
64
- } else {
65
- if (!multiple) {
66
- items.clear();
67
- }
68
- items.add(id);
69
- }
70
- return new Set(items);
71
- });
72
- };
73
-
74
- // Expose toggle function to parent for testing
75
- exposedToggleFn = toggle;
76
-
77
- setContext("accordion", {
78
- openItems,
79
- toggle,
80
- get flush() { return flush; }
81
- });
82
- </script>
83
-
84
- <AccordionItem
85
- {open}
86
- {border}
87
- {borderOpenClass}
88
- class={className}
89
- data-testid={dataTestId}
90
- data-custom={dataCustom}
91
- {...restProps}
92
- >
93
- {#snippet header()}
94
- {#if header}
95
- {@render header()}
96
- {:else}
97
- Test Header
98
- {/if}
99
- {/snippet}
100
- {#snippet children()}
101
- {#if children}
102
- {@render children()}
103
- {:else}
104
- Test Content
105
- {/if}
106
- {/snippet}
107
- </AccordionItem>
1
+ <script lang="ts">
2
+ /**
3
+ * Test wrapper for AccordionItem
4
+ * Provides the necessary accordion context that AccordionItem expects
5
+ */
6
+ import type { Snippet } from 'svelte';
7
+ import { setContext } from 'svelte';
8
+ import { writable } from 'svelte/store';
9
+ import AccordionItem from './AccordionItem.svelte';
10
+
11
+ interface Props {
12
+ /** Allow multiple items open at once */
13
+ multiple?: boolean;
14
+ /** Remove outer border/radius (Flowbite flush variant) */
15
+ flush?: boolean;
16
+ /** Initial open state of the item */
17
+ open?: boolean;
18
+ /** Show bottom border */
19
+ border?: boolean;
20
+ /** Additional classes when open */
21
+ borderOpenClass?: string;
22
+ /** Custom class for the item */
23
+ class?: string;
24
+ /** Header snippet */
25
+ header?: Snippet;
26
+ /** Children snippet */
27
+ children?: Snippet;
28
+ /** Expose the openItems store for testing */
29
+ openItems?: import('svelte/store').Writable<Set<string>> | null;
30
+ /** Expose the toggle function for testing */
31
+ toggleFn?: ((id: string) => void) | null;
32
+ /** Data attributes for testing */
33
+ 'data-testid'?: string;
34
+ 'data-custom'?: string;
35
+ [key: string]: unknown;
36
+ }
37
+
38
+ let {
39
+ multiple = false,
40
+ flush = false,
41
+ open = false,
42
+ border = true,
43
+ borderOpenClass = '',
44
+ class: className = '',
45
+ header,
46
+ children,
47
+ openItems: exposedOpenItems = $bindable(null),
48
+ toggleFn: exposedToggleFn = $bindable(null),
49
+ 'data-testid': dataTestId,
50
+ 'data-custom': dataCustom,
51
+ ...restProps
52
+ }: Props = $props();
53
+
54
+ // Create the accordion context
55
+ const openItems = writable(new Set<string>());
56
+
57
+ // Expose openItems to parent for testing
58
+ exposedOpenItems = openItems;
59
+
60
+ const toggle = (id: string) => {
61
+ openItems.update((items) => {
62
+ if (items.has(id)) {
63
+ items.delete(id);
64
+ } else {
65
+ if (!multiple) {
66
+ items.clear();
67
+ }
68
+ items.add(id);
69
+ }
70
+ return new Set(items);
71
+ });
72
+ };
73
+
74
+ // Expose toggle function to parent for testing
75
+ exposedToggleFn = toggle;
76
+
77
+ setContext("accordion", {
78
+ openItems,
79
+ toggle,
80
+ get flush() { return flush; }
81
+ });
82
+ </script>
83
+
84
+ <AccordionItem
85
+ {open}
86
+ {border}
87
+ {borderOpenClass}
88
+ class={className}
89
+ data-testid={dataTestId}
90
+ data-custom={dataCustom}
91
+ {...restProps}
92
+ >
93
+ {#snippet header()}
94
+ {#if header}
95
+ {@render header()}
96
+ {:else}
97
+ Test Header
98
+ {/if}
99
+ {/snippet}
100
+ {#snippet children()}
101
+ {#if children}
102
+ {@render children()}
103
+ {:else}
104
+ Test Content
105
+ {/if}
106
+ {/snippet}
107
+ </AccordionItem>
@@ -21,9 +21,9 @@ interface Props {
21
21
  /** Children snippet */
22
22
  children?: Snippet;
23
23
  /** Expose the openItems store for testing */
24
- openItems?: any;
24
+ openItems?: import('svelte/store').Writable<Set<string>> | null;
25
25
  /** Expose the toggle function for testing */
26
- toggleFn?: any;
26
+ toggleFn?: ((id: string) => void) | null;
27
27
  /** Data attributes for testing */
28
28
  'data-testid'?: string;
29
29
  'data-custom'?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionItemWrapper.test.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Accordion/AccordionItemWrapper.test.svelte.ts"],"names":[],"mappings":"AAGA;;;KAGK;AACL,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAMpC,UAAU,KAAK;IACb,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yBAAyB;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAsEH,QAAA,MAAM,oBAAoB,iEAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"AccordionItemWrapper.test.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Accordion/AccordionItemWrapper.test.svelte.ts"],"names":[],"mappings":"AAGA;;;KAGK;AACL,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAMpC,UAAU,KAAK;IACb,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yBAAyB;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAChE,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACzC,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAsEH,QAAA,MAAM,oBAAoB,iEAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
@@ -35,9 +35,9 @@
35
35
  ...restProps
36
36
  }: Props = $props();
37
37
 
38
- function handleChange(event: Event) {
39
- const target = event.target as HTMLInputElement;
40
- checked = target.checked;
38
+ function handleChange() {
39
+ // Note: checked is already updated by bind:checked before this handler runs
40
+ // We just need to call the onchange callback with the current values
41
41
  onchange?.({ checked, value });
42
42
  }
43
43
 
@@ -0,0 +1,9 @@
1
+ <script lang="ts">
2
+ interface Props {
3
+ class?: string;
4
+ }
5
+
6
+ let { class: className = '' }: Props = $props();
7
+ </script>
8
+
9
+ <li class="my-1 border-t border-gray-200 dark:border-gray-600 {className}" role="separator" aria-hidden="true"></li>
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ class?: string;
3
+ }
4
+ declare const DropdownDivider: import("svelte").Component<Props, {}, "">;
5
+ type DropdownDivider = ReturnType<typeof DropdownDivider>;
6
+ export default DropdownDivider;
7
+ //# sourceMappingURL=DropdownDivider.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownDivider.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Dropdown/DropdownDivider.svelte.ts"],"names":[],"mappings":"AAGE,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWH,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ /**
3
+ * Helper Component - Form helper/hint text
4
+ *
5
+ * Displays helper text below form inputs with color variants
6
+ */
7
+ import type { Snippet } from 'svelte';
8
+
9
+ interface Props {
10
+ /** Color variant */
11
+ color?: 'default' | 'red' | 'green';
12
+ /** Additional CSS classes */
13
+ class?: string;
14
+ /** Child content */
15
+ children?: Snippet;
16
+ }
17
+
18
+ let {
19
+ color = 'default',
20
+ class: className = '',
21
+ children
22
+ }: Props = $props();
23
+
24
+ const colorClasses: Record<string, string> = {
25
+ default: 'text-gray-500 dark:text-gray-400',
26
+ red: 'text-red-600 dark:text-red-500',
27
+ green: 'text-green-600 dark:text-green-500'
28
+ };
29
+ </script>
30
+
31
+ <p class="mt-1 text-sm {colorClasses[color]} {className}">
32
+ {#if children}{@render children()}{/if}
33
+ </p>
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Helper Component - Form helper/hint text
3
+ *
4
+ * Displays helper text below form inputs with color variants
5
+ */
6
+ import type { Snippet } from 'svelte';
7
+ interface Props {
8
+ /** Color variant */
9
+ color?: 'default' | 'red' | 'green';
10
+ /** Additional CSS classes */
11
+ class?: string;
12
+ /** Child content */
13
+ children?: Snippet;
14
+ }
15
+ declare const Helper: import("svelte").Component<Props, {}, "">;
16
+ type Helper = ReturnType<typeof Helper>;
17
+ export default Helper;
18
+ //# sourceMappingURL=Helper.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Helper.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Helper/Helper.svelte.ts"],"names":[],"mappings":"AAGA;;;;KAIK;AACL,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGpC,UAAU,KAAK;IACb,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;IACpC,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAyBH,QAAA,MAAM,MAAM,2CAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}