@getmicdrop/svelte-components 2.8.0 → 3.0.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 (104) hide show
  1. package/dist/components/Alert/Alert.svelte +24 -12
  2. package/dist/components/Alert/Alert.svelte.d.ts +15 -45
  3. package/dist/components/Alert/Alert.svelte.d.ts.map +1 -1
  4. package/dist/components/Badges/Badge.svelte +53 -37
  5. package/dist/components/Badges/Badge.svelte.d.ts +60 -48
  6. package/dist/components/Badges/Badge.svelte.d.ts.map +1 -1
  7. package/dist/components/BottomSheet/BottomSheet.svelte +37 -20
  8. package/dist/components/BottomSheet/BottomSheet.svelte.d.ts +45 -47
  9. package/dist/components/BottomSheet/BottomSheet.svelte.d.ts.map +1 -1
  10. package/dist/components/Breadcrumb/Breadcrumb.svelte +22 -16
  11. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts +50 -31
  12. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  13. package/dist/components/Button/Button.svelte +179 -134
  14. package/dist/components/Button/Button.svelte.d.ts +37 -78
  15. package/dist/components/Button/Button.svelte.d.ts.map +1 -1
  16. package/dist/components/Checkbox/Checkbox.svelte +71 -41
  17. package/dist/components/Checkbox/Checkbox.svelte.d.ts +34 -62
  18. package/dist/components/Checkbox/Checkbox.svelte.d.ts.map +1 -1
  19. package/dist/components/Drawer/Drawer.svelte +63 -46
  20. package/dist/components/Drawer/Drawer.svelte.d.ts +110 -54
  21. package/dist/components/Drawer/Drawer.svelte.d.ts.map +1 -1
  22. package/dist/components/Dropdown/Dropdown.svelte +203 -193
  23. package/dist/components/Dropdown/Dropdown.svelte.d.ts +44 -42
  24. package/dist/components/Dropdown/Dropdown.svelte.d.ts.map +1 -1
  25. package/dist/components/Dropdown/DropdownItem.svelte +124 -111
  26. package/dist/components/Dropdown/DropdownItem.svelte.d.ts +39 -43
  27. package/dist/components/Dropdown/DropdownItem.svelte.d.ts.map +1 -1
  28. package/dist/components/Dropdown/SelectDropdown.svelte +31 -25
  29. package/dist/components/Dropdown/SelectDropdown.svelte.d.ts +48 -29
  30. package/dist/components/Dropdown/SelectDropdown.svelte.d.ts.map +1 -1
  31. package/dist/components/Input/Input.svelte +141 -98
  32. package/dist/components/Input/Input.svelte.d.ts +94 -110
  33. package/dist/components/Input/Input.svelte.d.ts.map +1 -1
  34. package/dist/components/Input/MultiSelect.svelte +58 -39
  35. package/dist/components/Input/MultiSelect.svelte.d.ts +101 -40
  36. package/dist/components/Input/MultiSelect.svelte.d.ts.map +1 -1
  37. package/dist/components/Input/OTPInput.svelte +30 -17
  38. package/dist/components/Input/OTPInput.svelte.d.ts +45 -36
  39. package/dist/components/Input/OTPInput.svelte.d.ts.map +1 -1
  40. package/dist/components/Input/Search.svelte +196 -173
  41. package/dist/components/Input/Search.svelte.d.ts +36 -65
  42. package/dist/components/Input/Search.svelte.d.ts.map +1 -1
  43. package/dist/components/Input/Select.svelte +49 -35
  44. package/dist/components/Input/Select.svelte.d.ts +44 -46
  45. package/dist/components/Input/Select.svelte.d.ts.map +1 -1
  46. package/dist/components/Input/Textarea.svelte +187 -160
  47. package/dist/components/Input/Textarea.svelte.d.ts +56 -66
  48. package/dist/components/Input/Textarea.svelte.d.ts.map +1 -1
  49. package/dist/components/Modal/ConfirmationModal.svelte +103 -78
  50. package/dist/components/Modal/ConfirmationModal.svelte.d.ts +132 -47
  51. package/dist/components/Modal/ConfirmationModal.svelte.d.ts.map +1 -1
  52. package/dist/components/Modal/InputModal.svelte +157 -132
  53. package/dist/components/Modal/InputModal.svelte.d.ts +181 -48
  54. package/dist/components/Modal/InputModal.svelte.d.ts.map +1 -1
  55. package/dist/components/Modal/Modal.svelte +83 -45
  56. package/dist/components/Modal/Modal.svelte.d.ts +56 -41
  57. package/dist/components/Modal/Modal.svelte.d.ts.map +1 -1
  58. package/dist/components/Modal/ModalTestWrapper.svelte.d.ts +2 -2
  59. package/dist/components/Modal/StatusModal.svelte +149 -122
  60. package/dist/components/Modal/StatusModal.svelte.d.ts +126 -47
  61. package/dist/components/Modal/StatusModal.svelte.d.ts.map +1 -1
  62. package/dist/components/OrderSummary/OrderSummary.svelte +68 -59
  63. package/dist/components/OrderSummary/OrderSummary.svelte.d.ts +72 -60
  64. package/dist/components/OrderSummary/OrderSummary.svelte.d.ts.map +1 -1
  65. package/dist/components/Pagination/Pagination.svelte +49 -39
  66. package/dist/components/Pagination/Pagination.svelte.d.ts +89 -36
  67. package/dist/components/Pagination/Pagination.svelte.d.ts.map +1 -1
  68. package/dist/components/PublicCard/PublicCard.svelte +22 -12
  69. package/dist/components/PublicCard/PublicCard.svelte.d.ts +14 -32
  70. package/dist/components/PublicCard/PublicCard.svelte.d.ts.map +1 -1
  71. package/dist/components/Radio/Radio.svelte +35 -21
  72. package/dist/components/Radio/Radio.svelte.d.ts +22 -51
  73. package/dist/components/Radio/Radio.svelte.d.ts.map +1 -1
  74. package/dist/components/ShowCard/ShowCard.svelte +47 -40
  75. package/dist/components/ShowCard/ShowCard.svelte.d.ts +30 -36
  76. package/dist/components/ShowCard/ShowCard.svelte.d.ts.map +1 -1
  77. package/dist/components/ShowTimeCard/ShowTimeCard.svelte +23 -14
  78. package/dist/components/ShowTimeCard/ShowTimeCard.svelte.d.ts +20 -34
  79. package/dist/components/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -1
  80. package/dist/components/SuperLogin/SuperLogin.svelte +1282 -0
  81. package/dist/components/SuperLogin/SuperLogin.svelte.d.ts +44 -0
  82. package/dist/components/SuperLogin/SuperLogin.svelte.d.ts.map +1 -0
  83. package/dist/components/SuperLogin/index.d.ts +2 -0
  84. package/dist/components/SuperLogin/index.d.ts.map +1 -0
  85. package/dist/components/SuperLogin/index.js +1 -0
  86. package/dist/components/Toggle.spec.js +21 -52
  87. package/dist/components/Toggle.svelte +11 -9
  88. package/dist/components/Toggle.svelte.d.ts +17 -30
  89. package/dist/components/Toggle.svelte.d.ts.map +1 -1
  90. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte +45 -32
  91. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts +22 -36
  92. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts.map +1 -1
  93. package/dist/components/pages/shows/TabNavigation.svelte +16 -8
  94. package/dist/components/pages/shows/TabNavigation.svelte.d.ts +20 -30
  95. package/dist/components/pages/shows/TabNavigation.svelte.d.ts.map +1 -1
  96. package/dist/constants/validation.d.ts +55 -0
  97. package/dist/constants/validation.d.ts.map +1 -0
  98. package/dist/constants/validation.js +91 -0
  99. package/dist/constants/validation.spec.d.ts +2 -0
  100. package/dist/constants/validation.spec.d.ts.map +1 -0
  101. package/dist/constants/validation.spec.js +64 -0
  102. package/dist/index.d.ts +2 -0
  103. package/dist/index.js +4 -0
  104. package/package.json +1 -1
@@ -1,80 +1,39 @@
1
- export default Button;
2
- type Button = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
- [x: string]: any;
4
- size?: string | undefined;
5
- className?: string | undefined;
6
- variant?: string | undefined;
7
- shape?: string | undefined;
8
- success?: boolean | undefined;
9
- minWidth?: string | undefined;
10
- disabled?: boolean | undefined;
11
- loading?: boolean | undefined;
12
- successText?: string | undefined;
13
- beforeIcon?: null | undefined;
14
- afterIcon?: null | undefined;
15
- responsive?: boolean | undefined;
16
- active?: boolean | undefined;
17
- href?: null | undefined;
18
- justify?: string | undefined;
19
- }, {
20
- default: {};
21
- }>, {
22
- click: PointerEvent;
23
- mouseover: MouseEvent;
24
- mouseenter: MouseEvent;
25
- mouseleave: MouseEvent;
26
- } & {
27
- [evt: string]: CustomEvent<any>;
28
- }, {
29
- default: {};
30
- }> & {
31
- $$bindings?: string | undefined;
32
- };
33
- declare const Button: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
34
- [x: string]: any;
35
- size?: string | undefined;
36
- className?: string | undefined;
37
- variant?: string | undefined;
38
- shape?: string | undefined;
39
- success?: boolean | undefined;
40
- minWidth?: string | undefined;
41
- disabled?: boolean | undefined;
42
- loading?: boolean | undefined;
43
- successText?: string | undefined;
44
- beforeIcon?: null | undefined;
45
- afterIcon?: null | undefined;
46
- responsive?: boolean | undefined;
47
- active?: boolean | undefined;
48
- href?: null | undefined;
49
- justify?: string | undefined;
50
- }, {
51
- default: {};
52
- }>, {
53
- click: PointerEvent;
54
- mouseover: MouseEvent;
55
- mouseenter: MouseEvent;
56
- mouseleave: MouseEvent;
57
- } & {
58
- [evt: string]: CustomEvent<any>;
59
- }, {
60
- default: {};
61
- }, {}, string>;
62
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
63
- default: any;
64
- } ? Props extends Record<string, never> ? any : {
65
- children?: any;
66
- } : {});
67
- 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> {
68
- new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
69
- $$bindings?: Bindings;
70
- } & Exports;
71
- (internal: unknown, props: Props & {
72
- $$events?: Events;
73
- $$slots?: Slots;
74
- }): Exports & {
75
- $set?: any;
76
- $on?: any;
77
- };
78
- z_$$bindings?: Bindings;
1
+ import type { Snippet } from 'svelte';
2
+ type Variant = 'blue-solid' | 'blue-outline' | 'gray-outline' | 'red-solid' | 'red-outline' | 'red-text' | 'gray-text' | 'icon' | 'toggle';
3
+ type Size = '' | 'full' | 'full-md-auto' | 'lg' | 'md' | 'sm' | 'xs' | 'nav' | 'half';
4
+ type MinWidth = '' | 'sm' | 'action' | 'modal' | 'modal-responsive';
5
+ type Shape = '' | 'circle';
6
+ type Justify = '' | 'between';
7
+ interface Props {
8
+ variant?: Variant;
9
+ size?: Size;
10
+ minWidth?: MinWidth;
11
+ shape?: Shape;
12
+ disabled?: boolean;
13
+ loading?: boolean;
14
+ success?: boolean;
15
+ successText?: string;
16
+ className?: string;
17
+ beforeIcon?: string | null;
18
+ afterIcon?: string | null;
19
+ responsive?: boolean;
20
+ active?: boolean;
21
+ href?: string | null;
22
+ justify?: Justify;
23
+ /** Click event callback */
24
+ onclick?: (e: MouseEvent) => void;
25
+ /** Mouseover event callback */
26
+ onmouseover?: (e: MouseEvent) => void;
27
+ /** Mouseenter event callback */
28
+ onmouseenter?: (e: MouseEvent) => void;
29
+ /** Mouseleave event callback */
30
+ onmouseleave?: (e: MouseEvent) => void;
31
+ /** Slot content */
32
+ children?: Snippet;
33
+ /** Rest props for additional attributes */
34
+ [key: string]: unknown;
79
35
  }
36
+ declare const Button: import("svelte").Component<Props, {}, "">;
37
+ type Button = ReturnType<typeof Button>;
38
+ export default Button;
80
39
  //# sourceMappingURL=Button.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Button/Button.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuPA;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAAiS;sCAT3P,KAAK,EAAE,KAAK;;;;;6CALL,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ;IAC3L,cAAc,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,WAAW,OAAO,SAAS,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,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Button.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Button/Button.svelte.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIpC,KAAK,OAAO,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC3I,KAAK,IAAI,GAAG,EAAE,GAAG,MAAM,GAAG,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;AACtF,KAAK,QAAQ,GAAG,EAAE,GAAG,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG,kBAAkB,CAAC;AACpE,KAAK,KAAK,GAAG,EAAE,GAAG,QAAQ,CAAC;AAC3B,KAAK,OAAO,GAAG,EAAE,GAAG,SAAS,CAAC;AAE9B,UAAU,KAAK;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,+BAA+B;IAC/B,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,gCAAgC;IAChC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,gCAAgC;IAChC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,mBAAmB;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA0OH,QAAA,MAAM,MAAM,2CAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
@@ -1,43 +1,73 @@
1
- <script>
2
- import { createEventDispatcher } from "svelte";
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
3
 
4
- /** @type {boolean} Whether the checkbox is checked */
5
- export let checked = false;
6
- /** @type {string} The value attribute */
7
- export let value = "";
8
- /** @type {string} Name attribute for form submission */
9
- export let name = "";
10
- /** @type {boolean} Whether the checkbox is disabled */
11
- export let disabled = false;
12
- /** @type {string} Color variant */
13
- export let color = "primary";
14
- /** @type {string} Additional CSS classes */
15
- let className = "";
16
- export { className as class };
17
-
18
- const dispatch = createEventDispatcher();
19
-
20
- function handleChange(event) {
21
- checked = event.target.checked;
22
- dispatch("change", { checked, value });
4
+ interface Props {
5
+ /** Whether the checkbox is checked */
6
+ checked?: boolean;
7
+ /** The value attribute */
8
+ value?: string;
9
+ /** Name attribute for form submission */
10
+ name?: string;
11
+ /** Whether the checkbox is disabled */
12
+ disabled?: boolean;
13
+ /** Color variant */
14
+ color?: 'primary' | 'red' | 'green' | 'blue';
15
+ /** Additional CSS classes */
16
+ class?: string;
17
+ /** Change event callback */
18
+ onchange?: (data: { checked: boolean; value: string }) => void;
19
+ /** Click event callback */
20
+ onclick?: (e: MouseEvent) => void;
21
+ /** Focus event callback */
22
+ onfocus?: (e: FocusEvent) => void;
23
+ /** Blur event callback */
24
+ onblur?: (e: FocusEvent) => void;
25
+ /** Keydown event callback */
26
+ onkeydown?: (e: KeyboardEvent) => void;
27
+ /** Keyup event callback */
28
+ onkeyup?: (e: KeyboardEvent) => void;
29
+ /** Slot content */
30
+ children?: Snippet;
23
31
  }
24
32
 
33
+ let {
34
+ checked = $bindable(false),
35
+ value = '',
36
+ name = '',
37
+ disabled = false,
38
+ color = 'primary',
39
+ class: className = '',
40
+ onchange,
41
+ onclick,
42
+ onfocus,
43
+ onblur,
44
+ onkeydown,
45
+ onkeyup,
46
+ children
47
+ }: Props = $props();
48
+
25
49
  // Color classes matching flowbite-svelte
26
- const colorClasses = {
27
- primary: "text-primary-600 focus:ring-primary-500 dark:focus:ring-primary-600",
28
- red: "text-red-600 focus:ring-red-500 dark:focus:ring-red-600",
29
- green: "text-green-600 focus:ring-green-500 dark:focus:ring-green-600",
30
- blue: "text-blue-600 focus:ring-blue-500 dark:focus:ring-blue-600"
50
+ const colorClasses: Record<string, string> = {
51
+ primary: 'text-primary-600 focus:ring-primary-500 dark:focus:ring-primary-600',
52
+ red: 'text-red-600 focus:ring-red-500 dark:focus:ring-red-600',
53
+ green: 'text-green-600 focus:ring-green-500 dark:focus:ring-green-600',
54
+ blue: 'text-blue-600 focus:ring-blue-500 dark:focus:ring-blue-600'
31
55
  };
32
56
 
33
- $: inputClasses = [
34
- "w-4 h-4 rounded",
35
- "bg-gray-100 border-gray-300",
36
- "dark:bg-gray-700 dark:border-gray-600 dark:ring-offset-gray-800",
37
- "focus:ring-2",
57
+ let inputClasses = $derived([
58
+ 'w-4 h-4 rounded',
59
+ 'bg-gray-100 border-gray-300',
60
+ 'dark:bg-gray-700 dark:border-gray-600 dark:ring-offset-gray-800',
61
+ 'focus:ring-2',
38
62
  colorClasses[color] || colorClasses.primary,
39
- disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"
40
- ].join(" ");
63
+ disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'
64
+ ].join(' '));
65
+
66
+ function handleChange(event: Event) {
67
+ const target = event.target as HTMLInputElement;
68
+ checked = target.checked;
69
+ onchange?.({ checked, value });
70
+ }
41
71
  </script>
42
72
 
43
73
  <label class="checkbox {className}" class:checkbox--disabled={disabled}>
@@ -47,17 +77,17 @@
47
77
  {value}
48
78
  {disabled}
49
79
  bind:checked
50
- on:change={handleChange}
51
- on:click
52
- on:focus
53
- on:blur
54
- on:keydown
55
- on:keyup
80
+ onchange={handleChange}
81
+ onclick={onclick}
82
+ onfocus={onfocus}
83
+ onblur={onblur}
84
+ onkeydown={onkeydown}
85
+ onkeyup={onkeyup}
56
86
  class={inputClasses}
57
87
  />
58
- {#if $$slots.default}
88
+ {#if children}
59
89
  <span class="checkbox__label">
60
- <slot />
90
+ {@render children()}
61
91
  </span>
62
92
  {/if}
63
93
  </label>
@@ -1,64 +1,36 @@
1
- export default Checkbox;
2
- type Checkbox = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
- class?: string | undefined;
4
- color?: string | undefined;
5
- disabled?: boolean | undefined;
6
- checked?: boolean | undefined;
7
- value?: string | undefined;
8
- name?: string | undefined;
9
- }, {
10
- default: {};
11
- }>, {
12
- click: PointerEvent;
13
- focus: FocusEvent;
14
- blur: FocusEvent;
15
- keydown: KeyboardEvent;
16
- keyup: KeyboardEvent;
17
- change: CustomEvent<any>;
18
- } & {
19
- [evt: string]: CustomEvent<any>;
20
- }, {
21
- default: {};
22
- }> & {
23
- $$bindings?: string | undefined;
24
- };
25
- declare const Checkbox: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
26
- class?: string | undefined;
27
- color?: string | undefined;
28
- disabled?: boolean | undefined;
29
- checked?: boolean | undefined;
30
- value?: string | undefined;
31
- name?: string | undefined;
32
- }, {
33
- default: {};
34
- }>, {
35
- click: PointerEvent;
36
- focus: FocusEvent;
37
- blur: FocusEvent;
38
- keydown: KeyboardEvent;
39
- keyup: KeyboardEvent;
40
- change: CustomEvent<any>;
41
- } & {
42
- [evt: string]: CustomEvent<any>;
43
- }, {
44
- default: {};
45
- }, {}, string>;
46
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
47
- default: any;
48
- } ? Props extends Record<string, never> ? any : {
49
- children?: any;
50
- } : {});
51
- 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> {
52
- new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
53
- $$bindings?: Bindings;
54
- } & Exports;
55
- (internal: unknown, props: Props & {
56
- $$events?: Events;
57
- $$slots?: Slots;
58
- }): Exports & {
59
- $set?: any;
60
- $on?: any;
61
- };
62
- z_$$bindings?: Bindings;
1
+ import type { Snippet } from 'svelte';
2
+ interface Props {
3
+ /** Whether the checkbox is checked */
4
+ checked?: boolean;
5
+ /** The value attribute */
6
+ value?: string;
7
+ /** Name attribute for form submission */
8
+ name?: string;
9
+ /** Whether the checkbox is disabled */
10
+ disabled?: boolean;
11
+ /** Color variant */
12
+ color?: 'primary' | 'red' | 'green' | 'blue';
13
+ /** Additional CSS classes */
14
+ class?: string;
15
+ /** Change event callback */
16
+ onchange?: (data: {
17
+ checked: boolean;
18
+ value: string;
19
+ }) => void;
20
+ /** Click event callback */
21
+ onclick?: (e: MouseEvent) => void;
22
+ /** Focus event callback */
23
+ onfocus?: (e: FocusEvent) => void;
24
+ /** Blur event callback */
25
+ onblur?: (e: FocusEvent) => void;
26
+ /** Keydown event callback */
27
+ onkeydown?: (e: KeyboardEvent) => void;
28
+ /** Keyup event callback */
29
+ onkeyup?: (e: KeyboardEvent) => void;
30
+ /** Slot content */
31
+ children?: Snippet;
63
32
  }
33
+ declare const Checkbox: import("svelte").Component<Props, {}, "checked">;
34
+ type Checkbox = ReturnType<typeof Checkbox>;
35
+ export default Checkbox;
64
36
  //# sourceMappingURL=Checkbox.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Checkbox/Checkbox.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgFA;;;;;;;;;;;;;;;;;;;;eAAiL;sCAT3I,KAAK,EAAE,KAAK;;;;;6CALL,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ;IAC3L,cAAc,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,WAAW,OAAO,SAAS,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,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Checkbox.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Checkbox/Checkbox.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGpC,UAAU,KAAK;IACb,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAC7C,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/D,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,0BAA0B;IAC1B,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACjC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACvC,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACrC,mBAAmB;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA0DH,QAAA,MAAM,QAAQ,kDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
@@ -1,40 +1,53 @@
1
1
  <script>
2
- import { createEventDispatcher, onDestroy } from "svelte";
2
+ import { onDestroy } from "svelte";
3
3
  import { fly, fade } from "svelte/transition";
4
4
  import { cubicOut } from "svelte/easing";
5
5
 
6
- /** @type {boolean} Whether the drawer is visible */
7
- export let show = false;
8
- /** @type {boolean} Flowbite-style hidden prop (inverse of show) */
9
- export let hidden = true;
10
- /** @type {string} Optional title for the drawer header */
11
- export let title = "";
12
- /** @type {'left' | 'right' | 'top' | 'bottom'} Which side the drawer slides from */
13
- export let placement = "left";
14
- /** @type {string} Width of the drawer (for left/right placement) */
15
- export let width = "320px";
16
- /** @type {string} Height of the drawer (for top/bottom placement) */
17
- export let height = "auto";
18
- /** @type {number} Transition duration in ms */
19
- export let duration = 200;
20
- /** @type {boolean} Whether clicking the backdrop closes the drawer */
21
- export let closeOnBackdropClick = true;
22
- /** @type {boolean} Whether pressing Escape closes the drawer */
23
- export let closeOnEscape = true;
24
- /** @type {string} Optional id for the drawer element */
25
- export let id = "";
26
- /** @type {object|undefined} Custom transition params (flowbite API) */
27
- export let transitionParams = undefined;
28
-
29
- const dispatch = createEventDispatcher();
6
+ /**
7
+ * @typedef {Object} Props
8
+ * @property {boolean} [show] - Whether the drawer is visible
9
+ * @property {boolean} [hidden] - Flowbite-style hidden prop (inverse of show)
10
+ * @property {string} [title] - Optional title for the drawer header
11
+ * @property {'left'|'right'|'top'|'bottom'} [placement] - Which side the drawer slides from
12
+ * @property {string} [width] - Width of the drawer (for left/right placement)
13
+ * @property {string} [height] - Height of the drawer (for top/bottom placement)
14
+ * @property {number} [duration] - Transition duration in ms
15
+ * @property {boolean} [closeOnBackdropClick] - Whether clicking the backdrop closes the drawer
16
+ * @property {boolean} [closeOnEscape] - Whether pressing Escape closes the drawer
17
+ * @property {string} [id] - Optional id for the drawer element
18
+ * @property {object} [transitionParams] - Custom transition params (flowbite API)
19
+ * @property {Function} [onclose] - Callback when drawer closes
20
+ * @property {import('svelte').Snippet} [header] - Snippet for header content
21
+ * @property {import('svelte').Snippet} [actions] - Snippet for actions content
22
+ * @property {import('svelte').Snippet} [children] - Default slot content
23
+ */
24
+
25
+ /** @type {Props} */
26
+ let {
27
+ show = $bindable(false),
28
+ hidden = $bindable(true),
29
+ title = "",
30
+ placement = "left",
31
+ width = "320px",
32
+ height = "auto",
33
+ duration = 200,
34
+ closeOnBackdropClick = true,
35
+ closeOnEscape = true,
36
+ id = "",
37
+ transitionParams = undefined,
38
+ onclose,
39
+ header,
40
+ actions,
41
+ children
42
+ } = $props();
30
43
 
31
44
  // Support both show and hidden props (flowbite uses hidden)
32
- $: isVisible = show || !hidden;
45
+ let isVisible = $derived(show || !hidden);
33
46
 
34
47
  function close() {
35
48
  hidden = true;
36
49
  show = false;
37
- dispatch("close");
50
+ onclose?.();
38
51
  }
39
52
 
40
53
  function handleBackdropClick(e) {
@@ -50,7 +63,7 @@
50
63
  }
51
64
 
52
65
  // Calculate transition params based on placement (use custom if provided)
53
- $: computedTransitionParams = transitionParams || (() => {
66
+ let computedTransitionParams = $derived(transitionParams || (() => {
54
67
  switch (placement) {
55
68
  case "left":
56
69
  return { x: -320, duration, easing: cubicOut };
@@ -63,16 +76,18 @@
63
76
  default:
64
77
  return { x: -320, duration, easing: cubicOut };
65
78
  }
66
- })();
79
+ })());
67
80
 
68
81
  // Lock body scroll when drawer is open
69
- $: if (typeof document !== "undefined") {
70
- if (isVisible) {
71
- document.body.style.overflow = "hidden";
72
- } else {
73
- document.body.style.overflow = "";
82
+ $effect(() => {
83
+ if (typeof document !== "undefined") {
84
+ if (isVisible) {
85
+ document.body.style.overflow = "hidden";
86
+ } else {
87
+ document.body.style.overflow = "";
88
+ }
74
89
  }
75
- }
90
+ });
76
91
 
77
92
  onDestroy(() => {
78
93
  if (typeof document !== "undefined") {
@@ -81,28 +96,28 @@
81
96
  });
82
97
  </script>
83
98
 
84
- <svelte:window on:keydown={handleKeydown} />
99
+ <svelte:window onkeydown={handleKeydown} />
85
100
 
86
101
  {#if isVisible}
87
- <!-- svelte-ignore a11y-click-events-have-key-events -->
88
- <!-- svelte-ignore a11y-no-static-element-interactions -->
102
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
103
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
89
104
  <div
90
105
  class="drawer-backdrop"
91
- on:click={handleBackdropClick}
106
+ onclick={handleBackdropClick}
92
107
  transition:fade={{ duration: 150 }}
93
108
  >
94
109
  <div
95
110
  {id}
96
111
  class="drawer drawer--{placement}"
97
112
  style="--drawer-width: {width}; --drawer-height: {height};"
98
- on:click|stopPropagation
113
+ onclick={(e) => e.stopPropagation()}
99
114
  transition:fly={computedTransitionParams}
100
115
  >
101
116
  <!-- Optional header with title -->
102
- {#if title || $$slots.header}
117
+ {#if title || header}
103
118
  <div class="drawer__header">
104
- {#if $$slots.header}
105
- <slot name="header" />
119
+ {#if header}
120
+ {@render header()}
106
121
  {:else}
107
122
  <h3 class="drawer__title">{title}</h3>
108
123
  {/if}
@@ -111,13 +126,15 @@
111
126
 
112
127
  <!-- Content slot -->
113
128
  <div class="drawer__content">
114
- <slot />
129
+ {#if children}
130
+ {@render children()}
131
+ {/if}
115
132
  </div>
116
133
 
117
134
  <!-- Actions slot (optional) -->
118
- {#if $$slots.actions}
135
+ {#if actions}
119
136
  <div class="drawer__actions">
120
- <slot name="actions" />
137
+ {@render actions()}
121
138
  </div>
122
139
  {/if}
123
140
  </div>