@getmicdrop/svelte-components 2.6.4 → 2.8.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 (165) hide show
  1. package/dist/__LIB_STORES__.js +30 -2
  2. package/dist/components/AboutShow/AboutShow.svelte +278 -0
  3. package/dist/components/AboutShow/AboutShow.svelte.d.ts +43 -0
  4. package/dist/components/AboutShow/AboutShow.svelte.d.ts.map +1 -0
  5. package/dist/components/Accordion/Accordion.svelte +44 -0
  6. package/dist/components/Accordion/Accordion.svelte.d.ts +42 -0
  7. package/dist/components/Accordion/Accordion.svelte.d.ts.map +1 -0
  8. package/dist/components/Accordion/AccordionItem.svelte +141 -0
  9. package/dist/components/Accordion/AccordionItem.svelte.d.ts +50 -0
  10. package/dist/components/Accordion/AccordionItem.svelte.d.ts.map +1 -0
  11. package/dist/components/Badges/Badge.svelte +268 -17
  12. package/dist/components/Badges/Badge.svelte.d.ts +18 -2
  13. package/dist/components/Badges/Badge.svelte.d.ts.map +1 -1
  14. package/dist/components/Breadcrumb/Breadcrumb.svelte +65 -36
  15. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts +16 -2
  16. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  17. package/dist/components/Button/Button.svelte +136 -3
  18. package/dist/components/Button/Button.svelte.d.ts +2 -0
  19. package/dist/components/Button/Button.svelte.d.ts.map +1 -1
  20. package/dist/components/Calendar/MiniMonthCalendar.svelte +1446 -0
  21. package/dist/components/Calendar/{Calendar.svelte.d.ts → MiniMonthCalendar.svelte.d.ts} +20 -21
  22. package/dist/components/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -0
  23. package/dist/components/Card.svelte +2 -2
  24. package/dist/components/Card.svelte.d.ts +2 -2
  25. package/dist/components/Card.svelte.d.ts.map +1 -1
  26. package/dist/components/Checkbox/Checkbox.svelte +90 -0
  27. package/dist/components/Checkbox/Checkbox.svelte.d.ts +64 -0
  28. package/dist/components/Checkbox/Checkbox.svelte.d.ts.map +1 -0
  29. package/dist/components/DarkModeToggle.svelte +41 -52
  30. package/dist/components/DarkModeToggle.svelte.d.ts +0 -2
  31. package/dist/components/DarkModeToggle.svelte.d.ts.map +1 -1
  32. package/dist/components/Drawer/Drawer.svelte +207 -0
  33. package/dist/components/Drawer/Drawer.svelte.d.ts +74 -0
  34. package/dist/components/Drawer/Drawer.svelte.d.ts.map +1 -0
  35. package/dist/components/Dropdown/Dropdown.svelte +193 -0
  36. package/dist/components/Dropdown/Dropdown.svelte.d.ts +50 -0
  37. package/dist/components/Dropdown/Dropdown.svelte.d.ts.map +1 -0
  38. package/dist/components/Dropdown/DropdownItem.svelte +111 -0
  39. package/dist/components/Dropdown/DropdownItem.svelte.d.ts +48 -0
  40. package/dist/components/Dropdown/DropdownItem.svelte.d.ts.map +1 -0
  41. package/dist/components/Dropdown/SelectDropdown.svelte +301 -0
  42. package/dist/components/Dropdown/SelectDropdown.svelte.d.ts +51 -0
  43. package/dist/components/Dropdown/SelectDropdown.svelte.d.ts.map +1 -0
  44. package/dist/components/EmptyState/EmptyState.svelte +80 -0
  45. package/dist/components/{Calendar/QuarterView.stories.svelte.d.ts → EmptyState/EmptyState.svelte.d.ts} +17 -21
  46. package/dist/components/EmptyState/EmptyState.svelte.d.ts.map +1 -0
  47. package/dist/components/ErrorDisplay.svelte.d.ts +2 -2
  48. package/dist/components/FAQs/FAQs.svelte +49 -0
  49. package/dist/components/{Calendar/QuarterView.svelte.d.ts → FAQs/FAQs.svelte.d.ts} +10 -10
  50. package/dist/components/FAQs/FAQs.svelte.d.ts.map +1 -0
  51. package/dist/components/Input/Input.svelte +107 -12
  52. package/dist/components/Input/Input.svelte.d.ts +28 -12
  53. package/dist/components/Input/Input.svelte.d.ts.map +1 -1
  54. package/dist/components/Input/MultiSelect.svelte +4 -5
  55. package/dist/components/Input/MultiSelect.svelte.d.ts +8 -8
  56. package/dist/components/Input/MultiSelect.svelte.d.ts.map +1 -1
  57. package/dist/components/Input/OTPInput.svelte +1 -1
  58. package/dist/components/Input/Search.svelte +173 -0
  59. package/dist/components/Input/Search.svelte.d.ts +68 -0
  60. package/dist/components/Input/Search.svelte.d.ts.map +1 -0
  61. package/dist/components/Input/Select.svelte +42 -12
  62. package/dist/components/Input/Select.svelte.d.ts +8 -8
  63. package/dist/components/Input/Select.svelte.d.ts.map +1 -1
  64. package/dist/components/Input/Textarea.svelte +160 -0
  65. package/dist/components/Input/Textarea.svelte.d.ts +69 -0
  66. package/dist/components/Input/Textarea.svelte.d.ts.map +1 -0
  67. package/dist/components/Label/Label.svelte +60 -0
  68. package/dist/components/Label/Label.svelte.d.ts +48 -0
  69. package/dist/components/Label/Label.svelte.d.ts.map +1 -0
  70. package/dist/components/Layout/Header.svelte +14 -4
  71. package/dist/components/Layout/PageLayout.svelte +64 -0
  72. package/dist/components/Layout/PageLayout.svelte.d.ts +58 -0
  73. package/dist/components/Layout/PageLayout.svelte.d.ts.map +1 -0
  74. package/dist/components/Modal/ConfirmationModal.svelte +69 -17
  75. package/dist/components/Modal/ConfirmationModal.svelte.d.ts +22 -0
  76. package/dist/components/Modal/ConfirmationModal.svelte.d.ts.map +1 -1
  77. package/dist/components/Modal/InputModal.svelte +180 -0
  78. package/dist/components/Modal/InputModal.svelte.d.ts +77 -0
  79. package/dist/components/Modal/InputModal.svelte.d.ts.map +1 -0
  80. package/dist/components/Modal/Modal.svelte +41 -9
  81. package/dist/components/Modal/Modal.svelte.d.ts +2 -0
  82. package/dist/components/Modal/Modal.svelte.d.ts.map +1 -1
  83. package/dist/components/Modal/StatusModal.svelte +221 -0
  84. package/dist/components/Modal/StatusModal.svelte.d.ts +59 -0
  85. package/dist/components/Modal/StatusModal.svelte.d.ts.map +1 -0
  86. package/dist/components/MonthSwitcher/MonthSwitcher.svelte +206 -0
  87. package/dist/components/MonthSwitcher/MonthSwitcher.svelte.d.ts +37 -0
  88. package/dist/components/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -0
  89. package/dist/components/OrderSummary/OrderSummary.svelte +553 -0
  90. package/dist/components/OrderSummary/OrderSummary.svelte.d.ts +65 -0
  91. package/dist/components/OrderSummary/OrderSummary.svelte.d.ts.map +1 -0
  92. package/dist/components/Pagination/Pagination.svelte +197 -0
  93. package/dist/components/Pagination/Pagination.svelte.d.ts +53 -0
  94. package/dist/components/Pagination/Pagination.svelte.d.ts.map +1 -0
  95. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +2 -2
  96. package/dist/components/PublicCard/PublicCard.svelte +267 -0
  97. package/dist/components/{pages/performers/AvailabilityCalendarModal.svelte.d.ts → PublicCard/PublicCard.svelte.d.ts} +12 -14
  98. package/dist/components/PublicCard/PublicCard.svelte.d.ts.map +1 -0
  99. package/dist/components/Radio/Radio.svelte +119 -0
  100. package/dist/components/Radio/Radio.svelte.d.ts +54 -0
  101. package/dist/components/Radio/Radio.svelte.d.ts.map +1 -0
  102. package/dist/components/ShowCard/ShowCard.svelte +240 -0
  103. package/dist/components/ShowCard/ShowCard.svelte.d.ts +39 -0
  104. package/dist/components/ShowCard/ShowCard.svelte.d.ts.map +1 -0
  105. package/dist/components/ShowTimeCard/ShowTimeCard.svelte +92 -0
  106. package/dist/components/ShowTimeCard/ShowTimeCard.svelte.d.ts +37 -0
  107. package/dist/components/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -0
  108. package/dist/components/Skeleton/Skeleton.svelte +68 -0
  109. package/dist/components/Skeleton/Skeleton.svelte.d.ts +37 -0
  110. package/dist/components/{Calendar/QuarterView.svelte.d.ts.map → Skeleton/Skeleton.svelte.d.ts.map} +1 -1
  111. package/dist/components/Spinner/Spinner.svelte +73 -17
  112. package/dist/components/Spinner/Spinner.svelte.d.ts +5 -3
  113. package/dist/components/Spinner/Spinner.svelte.d.ts.map +1 -1
  114. package/dist/components/SuperLogin/SuperLogin.svelte +1282 -0
  115. package/dist/components/SuperLogin/SuperLogin.svelte.d.ts +44 -0
  116. package/dist/components/SuperLogin/SuperLogin.svelte.d.ts.map +1 -0
  117. package/dist/components/SuperLogin/index.d.ts +2 -0
  118. package/dist/components/SuperLogin/index.d.ts.map +1 -0
  119. package/dist/components/SuperLogin/index.js +1 -0
  120. package/dist/components/Tabs/TabItem.svelte +39 -0
  121. package/dist/components/Tabs/TabItem.svelte.d.ts +52 -0
  122. package/dist/components/Tabs/TabItem.svelte.d.ts.map +1 -0
  123. package/dist/components/Tabs/Tabs.svelte +181 -0
  124. package/dist/components/Tabs/Tabs.svelte.d.ts +46 -0
  125. package/dist/components/Tabs/Tabs.svelte.d.ts.map +1 -0
  126. package/dist/components/Typography/Typography.svelte +50 -0
  127. package/dist/components/Typography/Typography.svelte.d.ts +48 -0
  128. package/dist/components/Typography/Typography.svelte.d.ts.map +1 -0
  129. package/dist/components/pages/performers/ShowDetails.svelte.d.ts +4 -4
  130. package/dist/components/pages/performers/ShowItemCard.svelte.d.ts +8 -8
  131. package/dist/components/pages/performers/SwitchOption.svelte.d.ts +2 -2
  132. package/dist/components/pages/performers/VenueInfo.svelte.d.ts +2 -2
  133. package/dist/components/pages/performers/VenueItemCard.svelte +2 -2
  134. package/dist/components/pages/performers/VenueItemCard.svelte.d.ts +4 -4
  135. package/dist/components/pages/profile/profile-form.svelte +1 -1
  136. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts +2 -2
  137. package/dist/components/pages/shows/TabNavigation.svelte +7 -8
  138. package/dist/constants/formOptions.d.ts +5 -2
  139. package/dist/constants/formOptions.d.ts.map +1 -1
  140. package/dist/constants/formOptions.js +2 -1
  141. package/dist/constants/validation.d.ts +55 -0
  142. package/dist/constants/validation.d.ts.map +1 -0
  143. package/dist/constants/validation.js +91 -0
  144. package/dist/constants/validation.spec.d.ts +2 -0
  145. package/dist/constants/validation.spec.d.ts.map +1 -0
  146. package/dist/constants/validation.spec.js +64 -0
  147. package/dist/index.d.ts +30 -4
  148. package/dist/index.js +37 -30
  149. package/dist/services/EventService.js +75 -75
  150. package/dist/services/EventService.spec.js +217 -217
  151. package/dist/services/ShowService.spec.js +342 -342
  152. package/package.json +160 -160
  153. package/dist/components/Calendar/Calendar.spec.d.ts +0 -2
  154. package/dist/components/Calendar/Calendar.spec.d.ts.map +0 -1
  155. package/dist/components/Calendar/Calendar.spec.js +0 -131
  156. package/dist/components/Calendar/Calendar.svelte +0 -1115
  157. package/dist/components/Calendar/Calendar.svelte.d.ts.map +0 -1
  158. package/dist/components/Calendar/QuarterView.spec.d.ts +0 -2
  159. package/dist/components/Calendar/QuarterView.spec.d.ts.map +0 -1
  160. package/dist/components/Calendar/QuarterView.spec.js +0 -394
  161. package/dist/components/Calendar/QuarterView.stories.svelte +0 -134
  162. package/dist/components/Calendar/QuarterView.stories.svelte.d.ts.map +0 -1
  163. package/dist/components/Calendar/QuarterView.svelte +0 -736
  164. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte +0 -632
  165. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte.d.ts.map +0 -1
@@ -1,43 +1,42 @@
1
- export default Calendar;
2
- type Calendar = SvelteComponent<{
1
+ export default MiniMonthCalendar;
2
+ type MiniMonthCalendar = SvelteComponent<{
3
3
  variant?: string | undefined;
4
- view?: string | undefined;
5
- events?: any[] | undefined;
6
4
  selectedDates?: any[] | undefined;
7
- showMonths?: number | undefined;
8
- compact?: boolean | undefined;
9
- showNavigation?: boolean | undefined;
10
- showViewSwitcher?: boolean | undefined;
11
- readOnly?: boolean | undefined;
5
+ events?: any[] | undefined;
12
6
  saveStatus?: string | undefined;
13
7
  showLegend?: boolean | undefined;
8
+ showNavigation?: boolean | undefined;
9
+ showTodayButton?: boolean | undefined;
10
+ readOnly?: boolean | undefined;
11
+ showPartialPreview?: boolean | undefined;
12
+ disablePastNavigation?: boolean | undefined;
14
13
  }, {
15
14
  dateSelect: CustomEvent<any>;
16
- eventClick: CustomEvent<any>;
15
+ dayClick: CustomEvent<any>;
16
+ monthChange: CustomEvent<any>;
17
17
  } & {
18
18
  [evt: string]: CustomEvent<any>;
19
19
  }, {}> & {
20
20
  $$bindings?: string | undefined;
21
21
  };
22
- declare const Calendar: $$__sveltets_2_IsomorphicComponent<{
22
+ declare const MiniMonthCalendar: $$__sveltets_2_IsomorphicComponent<{
23
23
  variant?: string | undefined;
24
- view?: string | undefined;
25
- events?: any[] | undefined;
26
24
  selectedDates?: any[] | undefined;
27
- showMonths?: number | undefined;
28
- compact?: boolean | undefined;
29
- showNavigation?: boolean | undefined;
30
- showViewSwitcher?: boolean | undefined;
31
- readOnly?: boolean | undefined;
25
+ events?: any[] | undefined;
32
26
  saveStatus?: string | undefined;
33
27
  showLegend?: boolean | undefined;
28
+ showNavigation?: boolean | undefined;
29
+ showTodayButton?: boolean | undefined;
30
+ readOnly?: boolean | undefined;
31
+ showPartialPreview?: boolean | undefined;
32
+ disablePastNavigation?: boolean | undefined;
34
33
  }, {
35
34
  dateSelect: CustomEvent<any>;
36
- eventClick: CustomEvent<any>;
35
+ dayClick: CustomEvent<any>;
36
+ monthChange: CustomEvent<any>;
37
37
  } & {
38
38
  [evt: string]: CustomEvent<any>;
39
39
  }, {}, {}, string>;
40
- import { Calendar } from '@fullcalendar/core';
41
40
  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> {
42
41
  new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
43
42
  $$bindings?: Bindings;
@@ -51,4 +50,4 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
51
50
  };
52
51
  z_$$bindings?: Bindings;
53
52
  }
54
- //# sourceMappingURL=Calendar.svelte.d.ts.map
53
+ //# sourceMappingURL=MiniMonthCalendar.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniMonthCalendar.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Calendar/MiniMonthCalendar.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwxBA;;;;;;;;;;;;;;;;;mBAAwR;6CAT3O,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,9 +1,9 @@
1
1
  <script>
2
- export let className;
2
+ export let className = '';
3
3
  </script>
4
4
 
5
5
  <section
6
- class={`w-full bg-bg-primary p-3.5 sm:p-4 md:p-5 md:shadow md:rounded-lg ${className}`}
6
+ class={`w-full bg-bg-primary p-6 shadow rounded-[16px] ${className}`}
7
7
  >
8
8
  <slot />
9
9
  </section>
@@ -1,6 +1,6 @@
1
1
  export default Card;
2
2
  type Card = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
- className: any;
3
+ className?: string | undefined;
4
4
  }, {
5
5
  default: {};
6
6
  }>, {
@@ -11,7 +11,7 @@ type Card = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
11
11
  $$bindings?: string | undefined;
12
12
  };
13
13
  declare const Card: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
14
- className: any;
14
+ className?: string | undefined;
15
15
  }, {
16
16
  default: {};
17
17
  }>, {
@@ -1 +1 @@
1
- {"version":3,"file":"Card.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/components/Card.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;AA2BA;;;;;;;;eAAsH;sCAThF,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":"Card.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/components/Card.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;AA2BA;;;;;;;;eAAqI;sCAT/F,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"}
@@ -0,0 +1,90 @@
1
+ <script>
2
+ import { createEventDispatcher } from "svelte";
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 });
23
+ }
24
+
25
+ // 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"
31
+ };
32
+
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",
38
+ colorClasses[color] || colorClasses.primary,
39
+ disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"
40
+ ].join(" ");
41
+ </script>
42
+
43
+ <label class="checkbox {className}" class:checkbox--disabled={disabled}>
44
+ <input
45
+ type="checkbox"
46
+ {name}
47
+ {value}
48
+ {disabled}
49
+ bind:checked
50
+ on:change={handleChange}
51
+ on:click
52
+ on:focus
53
+ on:blur
54
+ on:keydown
55
+ on:keyup
56
+ class={inputClasses}
57
+ />
58
+ {#if $$slots.default}
59
+ <span class="checkbox__label">
60
+ <slot />
61
+ </span>
62
+ {/if}
63
+ </label>
64
+
65
+ <style>
66
+ .checkbox {
67
+ display: inline-flex;
68
+ align-items: center;
69
+ gap: 0.5rem;
70
+ cursor: pointer;
71
+ -webkit-user-select: none;
72
+ -moz-user-select: none;
73
+ user-select: none;
74
+ }
75
+
76
+ .checkbox--disabled {
77
+ cursor: not-allowed;
78
+ }
79
+
80
+ .checkbox__label {
81
+ font-size: 0.875rem;
82
+ line-height: 1.5;
83
+ color: var(--text-primary, #1f2937);
84
+ }
85
+
86
+ :global(.dark) .checkbox__label,
87
+ :global(.micdrop.dark) .checkbox__label {
88
+ color: #f3f4f6;
89
+ }
90
+ </style>
@@ -0,0 +1,64 @@
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;
63
+ }
64
+ //# sourceMappingURL=Checkbox.svelte.d.ts.map
@@ -0,0 +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,79 +1,81 @@
1
1
  <script>
2
- import { onMount } from 'svelte';
3
- import SunIcon from './Icons/SunIcon.svelte';
4
- import MoonIcon from './Icons/MoonIcon.svelte';
2
+ import { onMount } from "svelte";
3
+ import SunIcon from "./Icons/SunIcon.svelte";
4
+ import MoonIcon from "./Icons/MoonIcon.svelte";
5
5
 
6
6
  // Optional props for layout control
7
- export let isExpanded = false;
8
- export let containerSelector = '.performer-portal'; // Can be '.micdrop', '.performer-portal', etc.
7
+ // export let isExpanded = false; // Deprecated
8
+ export let containerSelector = ".performer-portal"; // Can be '.micdrop', '.performer-portal', etc.
9
9
 
10
10
  // Theme mode: 'auto' | 'light' | 'dark'
11
- let themeMode = 'auto';
11
+ let themeMode = "auto";
12
12
  let isDark = false; // Current display state (for applying classes)
13
13
 
14
+ /** @param {boolean} enable */
14
15
  function setMicdropDarkClass(enable) {
15
16
  // Support both performers portal and micdrop frontend
16
17
  const container = document.querySelector(containerSelector);
17
18
  if (enable) {
18
- if (container) container.classList.add('dark');
19
- document.documentElement.classList.add('dark');
19
+ if (container) container.classList.add("dark");
20
+ document.documentElement.classList.add("dark");
20
21
  } else {
21
- if (container) container.classList.remove('dark');
22
- document.documentElement.classList.remove('dark');
22
+ if (container) container.classList.remove("dark");
23
+ document.documentElement.classList.remove("dark");
23
24
  }
24
25
  }
25
26
 
26
27
  function getSystemPreference() {
27
- return window.matchMedia('(prefers-color-scheme: dark)').matches;
28
+ return window.matchMedia("(prefers-color-scheme: dark)").matches;
28
29
  }
29
30
 
30
31
  function applyTheme() {
31
- if (themeMode === 'auto') {
32
+ if (themeMode === "auto") {
32
33
  isDark = getSystemPreference();
33
34
  } else {
34
- isDark = themeMode === 'dark';
35
+ isDark = themeMode === "dark";
35
36
  }
36
37
  setMicdropDarkClass(isDark);
37
38
  }
38
39
 
39
40
  onMount(() => {
40
41
  // Check localStorage for saved theme
41
- const savedTheme = localStorage.getItem('theme');
42
+ const savedTheme = localStorage.getItem("theme");
42
43
 
43
- if (savedTheme === 'dark' || savedTheme === 'light') {
44
+ if (savedTheme === "dark" || savedTheme === "light") {
44
45
  themeMode = savedTheme;
45
46
  } else {
46
47
  // No saved preference or 'auto' = auto mode
47
- themeMode = 'auto';
48
+ themeMode = "auto";
48
49
  }
49
50
 
50
51
  applyTheme();
51
52
 
52
53
  // Listen for system preference changes (only matters in auto mode)
53
- const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
54
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
54
55
  const handleChange = () => {
55
- if (themeMode === 'auto') {
56
+ if (themeMode === "auto") {
56
57
  applyTheme();
57
58
  }
58
59
  };
59
- mediaQuery.addEventListener('change', handleChange);
60
+ mediaQuery.addEventListener("change", handleChange);
60
61
 
61
62
  return () => {
62
- mediaQuery.removeEventListener('change', handleChange);
63
+ mediaQuery.removeEventListener("change", handleChange);
63
64
  };
64
65
  });
65
66
 
67
+ /** @param {MouseEvent} event */
66
68
  function toggleTheme(event) {
67
69
  // Cycle: auto -> light -> dark -> auto
68
- if (themeMode === 'auto') {
69
- themeMode = 'light';
70
- localStorage.setItem('theme', 'light');
71
- } else if (themeMode === 'light') {
72
- themeMode = 'dark';
73
- localStorage.setItem('theme', 'dark');
70
+ if (themeMode === "auto") {
71
+ themeMode = "light";
72
+ localStorage.setItem("theme", "light");
73
+ } else if (themeMode === "light") {
74
+ themeMode = "dark";
75
+ localStorage.setItem("theme", "dark");
74
76
  } else {
75
- themeMode = 'auto';
76
- localStorage.removeItem('theme');
77
+ themeMode = "auto";
78
+ localStorage.removeItem("theme");
77
79
  }
78
80
 
79
81
  applyTheme();
@@ -85,22 +87,15 @@
85
87
  }
86
88
 
87
89
  // Tooltip text based on current mode
88
- $: titleText = themeMode === 'auto'
89
- ? 'Auto theme (following device) - click for light mode'
90
- : themeMode === 'light'
91
- ? 'Light mode - click for dark mode'
92
- : 'Dark mode - click for auto';
90
+ $: titleText =
91
+ themeMode === "auto"
92
+ ? "Auto theme (following device) - click for light mode"
93
+ : themeMode === "light"
94
+ ? "Light mode - click for dark mode"
95
+ : "Dark mode - click for auto";
93
96
  </script>
94
97
 
95
- <div
96
- class="transition-all flex items-center justify-center"
97
- class:w-full={isExpanded || !isExpanded}
98
- class:flex-row={isExpanded}
99
- class:flex-col={!isExpanded}
100
- class:py-4={isExpanded || !isExpanded}
101
- class:gap-3={isExpanded}
102
- class:gap-4={!isExpanded}
103
- >
98
+ <div class="transition-all flex items-center justify-center w-full py-4">
104
99
  <button
105
100
  on:click={toggleTheme}
106
101
  on:touchend={(e) => e.currentTarget.blur()}
@@ -109,17 +104,17 @@
109
104
  title={titleText}
110
105
  >
111
106
  <!-- Sun icon - shown when mode is 'light' -->
112
- <span class="theme-icon sun-icon" class:hidden={themeMode !== 'light'}>
107
+ <span class="theme-icon sun-icon" class:hidden={themeMode !== "light"}>
113
108
  <SunIcon size="20" color="currentColor" />
114
109
  </span>
115
110
 
116
111
  <!-- Moon icon - shown when mode is 'dark' -->
117
- <span class="theme-icon moon-icon" class:hidden={themeMode !== 'dark'}>
112
+ <span class="theme-icon moon-icon" class:hidden={themeMode !== "dark"}>
118
113
  <MoonIcon size="20" color="currentColor" />
119
114
  </span>
120
115
 
121
116
  <!-- Auto icon container - shown when mode is 'auto' -->
122
- {#if themeMode === 'auto'}
117
+ {#if themeMode === "auto"}
123
118
  <div class="auto-icon-container">
124
119
  <!-- Light half (top-left) with sun -->
125
120
  <div class="auto-half auto-light-half">
@@ -133,12 +128,6 @@
133
128
  {/if}
134
129
  </button>
135
130
 
136
- <!-- Label shown when expanded -->
137
- {#if isExpanded}
138
- <span class="text-xs text-gray-500 dark:text-gray-400 whitespace-nowrap">
139
- {themeMode === 'auto' ? 'Auto' : themeMode === 'light' ? 'Light' : 'Dark'}
140
- </span>
141
- {/if}
142
131
  </div>
143
132
 
144
133
  <style>
@@ -194,7 +183,7 @@
194
183
  .theme-toggle-btn:hover {
195
184
  transform: translateY(-2px);
196
185
  box-shadow: 0 4px 12px -2px rgba(0, 0, 0, 0.1);
197
- border-color: #0284FE;
186
+ border-color: #0284fe;
198
187
  }
199
188
 
200
189
  :global(.dark) .theme-toggle-btn:hover {
@@ -1,6 +1,5 @@
1
1
  export default DarkModeToggle;
2
2
  type DarkModeToggle = SvelteComponent<{
3
- isExpanded?: boolean | undefined;
4
3
  containerSelector?: string | undefined;
5
4
  }, {
6
5
  [evt: string]: CustomEvent<any>;
@@ -8,7 +7,6 @@ type DarkModeToggle = SvelteComponent<{
8
7
  $$bindings?: string | undefined;
9
8
  };
10
9
  declare const DarkModeToggle: $$__sveltets_2_IsomorphicComponent<{
11
- isExpanded?: boolean | undefined;
12
10
  containerSelector?: string | undefined;
13
11
  }, {
14
12
  [evt: string]: CustomEvent<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"DarkModeToggle.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/components/DarkModeToggle.svelte.js"],"names":[],"mappings":";;;;;;;;;AAqJA;;;;;mBAA8J;6CATjH,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":"DarkModeToggle.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/components/DarkModeToggle.svelte.js"],"names":[],"mappings":";;;;;;;;AAkJA;;;;mBAAiJ;6CATpG,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"}
@@ -0,0 +1,207 @@
1
+ <script>
2
+ import { createEventDispatcher, onDestroy } from "svelte";
3
+ import { fly, fade } from "svelte/transition";
4
+ import { cubicOut } from "svelte/easing";
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();
30
+
31
+ // Support both show and hidden props (flowbite uses hidden)
32
+ $: isVisible = show || !hidden;
33
+
34
+ function close() {
35
+ hidden = true;
36
+ show = false;
37
+ dispatch("close");
38
+ }
39
+
40
+ function handleBackdropClick(e) {
41
+ if (closeOnBackdropClick && e.target === e.currentTarget) {
42
+ close();
43
+ }
44
+ }
45
+
46
+ function handleKeydown(e) {
47
+ if (closeOnEscape && e.key === "Escape" && isVisible) {
48
+ close();
49
+ }
50
+ }
51
+
52
+ // Calculate transition params based on placement (use custom if provided)
53
+ $: computedTransitionParams = transitionParams || (() => {
54
+ switch (placement) {
55
+ case "left":
56
+ return { x: -320, duration, easing: cubicOut };
57
+ case "right":
58
+ return { x: 320, duration, easing: cubicOut };
59
+ case "top":
60
+ return { y: -320, duration, easing: cubicOut };
61
+ case "bottom":
62
+ return { y: 320, duration, easing: cubicOut };
63
+ default:
64
+ return { x: -320, duration, easing: cubicOut };
65
+ }
66
+ })();
67
+
68
+ // 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 = "";
74
+ }
75
+ }
76
+
77
+ onDestroy(() => {
78
+ if (typeof document !== "undefined") {
79
+ document.body.style.overflow = "";
80
+ }
81
+ });
82
+ </script>
83
+
84
+ <svelte:window on:keydown={handleKeydown} />
85
+
86
+ {#if isVisible}
87
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
88
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
89
+ <div
90
+ class="drawer-backdrop"
91
+ on:click={handleBackdropClick}
92
+ transition:fade={{ duration: 150 }}
93
+ >
94
+ <div
95
+ {id}
96
+ class="drawer drawer--{placement}"
97
+ style="--drawer-width: {width}; --drawer-height: {height};"
98
+ on:click|stopPropagation
99
+ transition:fly={computedTransitionParams}
100
+ >
101
+ <!-- Optional header with title -->
102
+ {#if title || $$slots.header}
103
+ <div class="drawer__header">
104
+ {#if $$slots.header}
105
+ <slot name="header" />
106
+ {:else}
107
+ <h3 class="drawer__title">{title}</h3>
108
+ {/if}
109
+ </div>
110
+ {/if}
111
+
112
+ <!-- Content slot -->
113
+ <div class="drawer__content">
114
+ <slot />
115
+ </div>
116
+
117
+ <!-- Actions slot (optional) -->
118
+ {#if $$slots.actions}
119
+ <div class="drawer__actions">
120
+ <slot name="actions" />
121
+ </div>
122
+ {/if}
123
+ </div>
124
+ </div>
125
+ {/if}
126
+
127
+ <style>
128
+ .drawer-backdrop {
129
+ position: fixed;
130
+ inset: 0;
131
+ background-color: rgba(0, 0, 0, 0.5);
132
+ z-index: var(--z-modal, 50);
133
+ display: flex;
134
+ touch-action: none;
135
+ }
136
+
137
+ .drawer {
138
+ position: absolute;
139
+ background-color: hsl(var(--BG-Primary, 0 0% 100%));
140
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
141
+ display: flex;
142
+ flex-direction: column;
143
+ overflow: hidden;
144
+ }
145
+
146
+ /* Placement variants */
147
+ .drawer--left {
148
+ left: 0;
149
+ top: 0;
150
+ bottom: 0;
151
+ width: var(--drawer-width, 320px);
152
+ max-width: 100vw;
153
+ }
154
+
155
+ .drawer--right {
156
+ right: 0;
157
+ top: 0;
158
+ bottom: 0;
159
+ width: var(--drawer-width, 320px);
160
+ max-width: 100vw;
161
+ }
162
+
163
+ .drawer--top {
164
+ top: 0;
165
+ left: 0;
166
+ right: 0;
167
+ height: var(--drawer-height, auto);
168
+ max-height: 100vh;
169
+ }
170
+
171
+ .drawer--bottom {
172
+ bottom: 0;
173
+ left: 0;
174
+ right: 0;
175
+ height: var(--drawer-height, auto);
176
+ max-height: 100vh;
177
+ }
178
+
179
+ .drawer__header {
180
+ padding: 1rem 1.5rem;
181
+ border-bottom: 1px solid hsl(var(--Stroke-Primary, 220 13% 85%));
182
+ flex-shrink: 0;
183
+ }
184
+
185
+ .drawer__title {
186
+ font-size: 1.125rem;
187
+ font-weight: 600;
188
+ color: hsl(var(--Text-Primary, 220 13% 13%));
189
+ margin: 0;
190
+ }
191
+
192
+ .drawer__content {
193
+ flex: 1;
194
+ overflow-y: auto;
195
+ overscroll-behavior: contain;
196
+ -webkit-overflow-scrolling: touch;
197
+ }
198
+
199
+ .drawer__actions {
200
+ padding: 1rem 1.5rem;
201
+ border-top: 1px solid hsl(var(--Stroke-Primary, 220 13% 85%));
202
+ flex-shrink: 0;
203
+ display: flex;
204
+ flex-direction: column;
205
+ gap: 0.75rem;
206
+ }
207
+ </style>