@getmicdrop/svelte-components 2.6.0 → 2.6.3

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 (152) hide show
  1. package/dist/__LIB_STORES__.js +2 -30
  2. package/dist/components/Badges/Badge.svelte +17 -268
  3. package/dist/components/Badges/Badge.svelte.d.ts +2 -18
  4. package/dist/components/Badges/Badge.svelte.d.ts.map +1 -1
  5. package/dist/components/Breadcrumb/Breadcrumb.svelte +36 -65
  6. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts +2 -16
  7. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  8. package/dist/components/Button/Button.svelte +3 -136
  9. package/dist/components/Button/Button.svelte.d.ts +0 -2
  10. package/dist/components/Button/Button.svelte.d.ts.map +1 -1
  11. package/dist/components/Calendar/Calendar.spec.d.ts +2 -0
  12. package/dist/components/Calendar/Calendar.spec.d.ts.map +1 -0
  13. package/dist/components/Calendar/Calendar.spec.js +131 -0
  14. package/dist/components/Calendar/Calendar.svelte +1115 -0
  15. package/dist/components/Calendar/{MiniMonthCalendar.svelte.d.ts → Calendar.svelte.d.ts} +21 -20
  16. package/dist/components/Calendar/Calendar.svelte.d.ts.map +1 -0
  17. package/dist/components/Calendar/QuarterView.spec.d.ts +2 -0
  18. package/dist/components/Calendar/QuarterView.spec.d.ts.map +1 -0
  19. package/dist/components/Calendar/QuarterView.spec.js +394 -0
  20. package/dist/components/Calendar/QuarterView.stories.svelte +134 -0
  21. package/dist/components/{ShowTimeCard/ShowTimeCard.svelte.d.ts → Calendar/QuarterView.stories.svelte.d.ts} +21 -17
  22. package/dist/components/Calendar/QuarterView.stories.svelte.d.ts.map +1 -0
  23. package/dist/components/Calendar/QuarterView.svelte +736 -0
  24. package/dist/components/{FAQs/FAQs.svelte.d.ts → Calendar/QuarterView.svelte.d.ts} +10 -10
  25. package/dist/components/{Skeleton/Skeleton.svelte.d.ts.map → Calendar/QuarterView.svelte.d.ts.map} +1 -1
  26. package/dist/components/Card.svelte +2 -2
  27. package/dist/components/Card.svelte.d.ts +2 -2
  28. package/dist/components/Card.svelte.d.ts.map +1 -1
  29. package/dist/components/DarkModeToggle.svelte +0 -2
  30. package/dist/components/DarkModeToggle.svelte.d.ts.map +1 -1
  31. package/dist/components/ErrorDisplay.svelte.d.ts +2 -2
  32. package/dist/components/Input/Input.svelte +12 -105
  33. package/dist/components/Input/Input.svelte.d.ts +12 -28
  34. package/dist/components/Input/Input.svelte.d.ts.map +1 -1
  35. package/dist/components/Input/MultiSelect.svelte +5 -4
  36. package/dist/components/Input/MultiSelect.svelte.d.ts +8 -8
  37. package/dist/components/Input/MultiSelect.svelte.d.ts.map +1 -1
  38. package/dist/components/Input/OTPInput.svelte +1 -1
  39. package/dist/components/Input/Select.svelte +5 -4
  40. package/dist/components/Input/Select.svelte.d.ts +8 -8
  41. package/dist/components/Input/Select.svelte.d.ts.map +1 -1
  42. package/dist/components/Layout/Header.svelte +4 -14
  43. package/dist/components/Modal/ConfirmationModal.svelte +17 -69
  44. package/dist/components/Modal/ConfirmationModal.svelte.d.ts +0 -22
  45. package/dist/components/Modal/ConfirmationModal.svelte.d.ts.map +1 -1
  46. package/dist/components/Modal/Modal.svelte +8 -34
  47. package/dist/components/Modal/Modal.svelte.d.ts +0 -2
  48. package/dist/components/Modal/Modal.svelte.d.ts.map +1 -1
  49. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +2 -2
  50. package/dist/components/Spinner/Spinner.svelte +17 -73
  51. package/dist/components/Spinner/Spinner.svelte.d.ts +3 -5
  52. package/dist/components/Spinner/Spinner.svelte.d.ts.map +1 -1
  53. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte +632 -0
  54. package/dist/components/{PublicCard/PublicCard.svelte.d.ts → pages/performers/AvailabilityCalendarModal.svelte.d.ts} +14 -12
  55. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte.d.ts.map +1 -0
  56. package/dist/components/pages/performers/ShowDetails.svelte.d.ts +4 -4
  57. package/dist/components/pages/performers/ShowItemCard.svelte.d.ts +8 -8
  58. package/dist/components/pages/performers/SwitchOption.svelte.d.ts +2 -2
  59. package/dist/components/pages/performers/VenueInfo.svelte.d.ts +2 -2
  60. package/dist/components/pages/performers/VenueItemCard.svelte +2 -2
  61. package/dist/components/pages/performers/VenueItemCard.svelte.d.ts +4 -4
  62. package/dist/components/pages/profile/profile-form.svelte +1 -1
  63. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts +2 -2
  64. package/dist/components/pages/shows/TabNavigation.svelte +8 -7
  65. package/dist/constants/formOptions.d.ts +2 -5
  66. package/dist/constants/formOptions.d.ts.map +1 -1
  67. package/dist/constants/formOptions.js +1 -2
  68. package/dist/index.d.ts +4 -28
  69. package/dist/index.js +29 -33
  70. package/dist/services/EventService.js +75 -75
  71. package/dist/services/EventService.spec.js +217 -217
  72. package/dist/services/ShowService.spec.js +342 -342
  73. package/package.json +160 -160
  74. package/dist/components/AboutShow/AboutShow.svelte +0 -278
  75. package/dist/components/AboutShow/AboutShow.svelte.d.ts +0 -43
  76. package/dist/components/AboutShow/AboutShow.svelte.d.ts.map +0 -1
  77. package/dist/components/Accordion/Accordion.svelte +0 -44
  78. package/dist/components/Accordion/Accordion.svelte.d.ts +0 -42
  79. package/dist/components/Accordion/Accordion.svelte.d.ts.map +0 -1
  80. package/dist/components/Accordion/AccordionItem.svelte +0 -141
  81. package/dist/components/Accordion/AccordionItem.svelte.d.ts +0 -50
  82. package/dist/components/Accordion/AccordionItem.svelte.d.ts.map +0 -1
  83. package/dist/components/Calendar/MiniMonthCalendar.svelte +0 -1446
  84. package/dist/components/Calendar/MiniMonthCalendar.svelte.d.ts.map +0 -1
  85. package/dist/components/Checkbox/Checkbox.svelte +0 -90
  86. package/dist/components/Checkbox/Checkbox.svelte.d.ts +0 -64
  87. package/dist/components/Checkbox/Checkbox.svelte.d.ts.map +0 -1
  88. package/dist/components/Drawer/Drawer.svelte +0 -207
  89. package/dist/components/Drawer/Drawer.svelte.d.ts +0 -74
  90. package/dist/components/Drawer/Drawer.svelte.d.ts.map +0 -1
  91. package/dist/components/Dropdown/Dropdown.svelte +0 -193
  92. package/dist/components/Dropdown/Dropdown.svelte.d.ts +0 -50
  93. package/dist/components/Dropdown/Dropdown.svelte.d.ts.map +0 -1
  94. package/dist/components/Dropdown/DropdownItem.svelte +0 -111
  95. package/dist/components/Dropdown/DropdownItem.svelte.d.ts +0 -48
  96. package/dist/components/Dropdown/DropdownItem.svelte.d.ts.map +0 -1
  97. package/dist/components/Dropdown/SelectDropdown.svelte +0 -301
  98. package/dist/components/Dropdown/SelectDropdown.svelte.d.ts +0 -51
  99. package/dist/components/Dropdown/SelectDropdown.svelte.d.ts.map +0 -1
  100. package/dist/components/EmptyState/EmptyState.svelte +0 -80
  101. package/dist/components/EmptyState/EmptyState.svelte.d.ts +0 -37
  102. package/dist/components/EmptyState/EmptyState.svelte.d.ts.map +0 -1
  103. package/dist/components/FAQs/FAQs.svelte +0 -49
  104. package/dist/components/FAQs/FAQs.svelte.d.ts.map +0 -1
  105. package/dist/components/Input/Search.svelte +0 -173
  106. package/dist/components/Input/Search.svelte.d.ts +0 -68
  107. package/dist/components/Input/Search.svelte.d.ts.map +0 -1
  108. package/dist/components/Input/Textarea.svelte +0 -160
  109. package/dist/components/Input/Textarea.svelte.d.ts +0 -69
  110. package/dist/components/Input/Textarea.svelte.d.ts.map +0 -1
  111. package/dist/components/Label/Label.svelte +0 -60
  112. package/dist/components/Label/Label.svelte.d.ts +0 -48
  113. package/dist/components/Label/Label.svelte.d.ts.map +0 -1
  114. package/dist/components/Layout/PageLayout.svelte +0 -64
  115. package/dist/components/Layout/PageLayout.svelte.d.ts +0 -58
  116. package/dist/components/Layout/PageLayout.svelte.d.ts.map +0 -1
  117. package/dist/components/Modal/InputModal.svelte +0 -180
  118. package/dist/components/Modal/InputModal.svelte.d.ts +0 -77
  119. package/dist/components/Modal/InputModal.svelte.d.ts.map +0 -1
  120. package/dist/components/Modal/StatusModal.svelte +0 -221
  121. package/dist/components/Modal/StatusModal.svelte.d.ts +0 -59
  122. package/dist/components/Modal/StatusModal.svelte.d.ts.map +0 -1
  123. package/dist/components/MonthSwitcher/MonthSwitcher.svelte +0 -206
  124. package/dist/components/MonthSwitcher/MonthSwitcher.svelte.d.ts +0 -37
  125. package/dist/components/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +0 -1
  126. package/dist/components/OrderSummary/OrderSummary.svelte +0 -553
  127. package/dist/components/OrderSummary/OrderSummary.svelte.d.ts +0 -65
  128. package/dist/components/OrderSummary/OrderSummary.svelte.d.ts.map +0 -1
  129. package/dist/components/Pagination/Pagination.svelte +0 -197
  130. package/dist/components/Pagination/Pagination.svelte.d.ts +0 -53
  131. package/dist/components/Pagination/Pagination.svelte.d.ts.map +0 -1
  132. package/dist/components/PublicCard/PublicCard.svelte +0 -267
  133. package/dist/components/PublicCard/PublicCard.svelte.d.ts.map +0 -1
  134. package/dist/components/Radio/Radio.svelte +0 -119
  135. package/dist/components/Radio/Radio.svelte.d.ts +0 -54
  136. package/dist/components/Radio/Radio.svelte.d.ts.map +0 -1
  137. package/dist/components/ShowCard/ShowCard.svelte +0 -240
  138. package/dist/components/ShowCard/ShowCard.svelte.d.ts +0 -39
  139. package/dist/components/ShowCard/ShowCard.svelte.d.ts.map +0 -1
  140. package/dist/components/ShowTimeCard/ShowTimeCard.svelte +0 -92
  141. package/dist/components/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +0 -1
  142. package/dist/components/Skeleton/Skeleton.svelte +0 -68
  143. package/dist/components/Skeleton/Skeleton.svelte.d.ts +0 -37
  144. package/dist/components/Tabs/TabItem.svelte +0 -39
  145. package/dist/components/Tabs/TabItem.svelte.d.ts +0 -52
  146. package/dist/components/Tabs/TabItem.svelte.d.ts.map +0 -1
  147. package/dist/components/Tabs/Tabs.svelte +0 -181
  148. package/dist/components/Tabs/Tabs.svelte.d.ts +0 -46
  149. package/dist/components/Tabs/Tabs.svelte.d.ts.map +0 -1
  150. package/dist/components/Typography/Typography.svelte +0 -50
  151. package/dist/components/Typography/Typography.svelte.d.ts +0 -48
  152. package/dist/components/Typography/Typography.svelte.d.ts.map +0 -1
@@ -1,111 +0,0 @@
1
- <script>
2
- import { getContext, createEventDispatcher } from "svelte";
3
-
4
- /** @type {string|undefined} Optional href to make the item a link */
5
- export let href = undefined;
6
- /** @type {boolean} Whether the item is disabled */
7
- export let disabled = false;
8
- /** @type {string} Additional CSS classes */
9
- let className = "";
10
- export { className as class };
11
-
12
- const dispatch = createEventDispatcher();
13
- const context = getContext("dropdown");
14
-
15
- $: isActive = context?.activeUrl && href && context.activeUrl === href;
16
-
17
- function handleClick(event) {
18
- if (disabled) {
19
- event.preventDefault();
20
- return;
21
- }
22
- dispatch("click", event);
23
- // Close dropdown after click (unless it's a link that will navigate)
24
- if (!href && context?.close) {
25
- context.close();
26
- }
27
- }
28
-
29
- function handleKeydown(event) {
30
- if (event.key === "Enter" || event.key === " ") {
31
- handleClick(event);
32
- }
33
- }
34
- </script>
35
-
36
- {#if href}
37
- <a
38
- {href}
39
- class="dropdown-item {className}"
40
- class:dropdown-item--active={isActive}
41
- class:dropdown-item--disabled={disabled}
42
- role="menuitem"
43
- tabindex={disabled ? -1 : 0}
44
- on:click={handleClick}
45
- on:keydown={handleKeydown}
46
- >
47
- <slot />
48
- </a>
49
- {:else}
50
- <button
51
- type="button"
52
- class="dropdown-item {className}"
53
- class:dropdown-item--disabled={disabled}
54
- role="menuitem"
55
- tabindex={disabled ? -1 : 0}
56
- {disabled}
57
- on:click={handleClick}
58
- on:keydown={handleKeydown}
59
- >
60
- <slot />
61
- </button>
62
- {/if}
63
-
64
- <style>
65
- .dropdown-item {
66
- display: flex;
67
- align-items: center;
68
- width: 100%;
69
- padding: 0.5rem 1rem;
70
- font-size: 0.875rem;
71
- color: hsl(var(--Text-Primary, 220 13% 13%));
72
- background: transparent;
73
- border: none;
74
- text-align: left;
75
- cursor: pointer;
76
- text-decoration: none;
77
- transition: background-color 0.15s ease;
78
- }
79
-
80
- .dropdown-item:hover:not(.dropdown-item--disabled) {
81
- background-color: hsl(var(--BG-Secondary, 220 14% 96%));
82
- }
83
-
84
- .dropdown-item:focus {
85
- outline: none;
86
- background-color: hsl(var(--BG-Secondary, 220 14% 96%));
87
- }
88
-
89
- .dropdown-item--active {
90
- background-color: hsl(var(--Brand-Primary, 221 83% 53%) / 0.1);
91
- color: hsl(var(--Brand-Primary, 221 83% 53%));
92
- }
93
-
94
- .dropdown-item--disabled {
95
- opacity: 0.5;
96
- cursor: not-allowed;
97
- }
98
-
99
- /* Dark mode */
100
- :global(.dark) .dropdown-item {
101
- color: hsl(var(--Text-Primary, 0 0% 95%));
102
- }
103
-
104
- :global(.dark) .dropdown-item:hover:not(.dropdown-item--disabled) {
105
- background-color: hsl(var(--BG-Secondary, 220 13% 20%));
106
- }
107
-
108
- :global(.dark) .dropdown-item:focus {
109
- background-color: hsl(var(--BG-Secondary, 220 13% 20%));
110
- }
111
- </style>
@@ -1,48 +0,0 @@
1
- export default DropdownItem;
2
- type DropdownItem = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
- class?: string | undefined;
4
- disabled?: boolean | undefined;
5
- href?: string | undefined;
6
- }, {
7
- default: {};
8
- }>, {
9
- click: CustomEvent<any>;
10
- } & {
11
- [evt: string]: CustomEvent<any>;
12
- }, {
13
- default: {};
14
- }> & {
15
- $$bindings?: string | undefined;
16
- };
17
- declare const DropdownItem: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
18
- class?: string | undefined;
19
- disabled?: boolean | undefined;
20
- href?: string | undefined;
21
- }, {
22
- default: {};
23
- }>, {
24
- click: CustomEvent<any>;
25
- } & {
26
- [evt: string]: CustomEvent<any>;
27
- }, {
28
- default: {};
29
- }, {}, string>;
30
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
31
- default: any;
32
- } ? Props extends Record<string, never> ? any : {
33
- children?: any;
34
- } : {});
35
- 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> {
36
- new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
37
- $$bindings?: Bindings;
38
- } & Exports;
39
- (internal: unknown, props: Props & {
40
- $$events?: Events;
41
- $$slots?: Slots;
42
- }): Exports & {
43
- $set?: any;
44
- $on?: any;
45
- };
46
- z_$$bindings?: Bindings;
47
- }
48
- //# sourceMappingURL=DropdownItem.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DropdownItem.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Dropdown/DropdownItem.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAuEA;;;WAjBW,MAAM,GAAC,SAAS;;;;;;;;;eAiBgI;sCATrH,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,301 +0,0 @@
1
- <script>
2
- /**
3
- * SelectDropdown - A self-contained dropdown with trigger button and option selection.
4
- * Includes full keyboard navigation (Arrow keys, Home, End, Escape).
5
- *
6
- * @example
7
- * <SelectDropdown
8
- * options={[{ label: 'Option 1', value: 'opt1' }, { label: 'Option 2', value: 'opt2' }]}
9
- * bind:selected
10
- * placeholder="Select an option"
11
- * on:select={(e) => console.log(e.detail)}
12
- * />
13
- */
14
- import { createEventDispatcher, onMount, onDestroy, tick } from "svelte";
15
-
16
- /** @type {Array<{label: string, value: string}>} Options to display */
17
- export let options = [];
18
- /** @type {{label: string, value: string}|null} Currently selected option */
19
- export let selected = null;
20
- /** @type {string} Placeholder text when no option is selected */
21
- export let placeholder = "Select";
22
- /** @type {string} Additional CSS classes for the container */
23
- let className = "";
24
- export { className as class };
25
- /** @type {boolean} Whether the dropdown is disabled */
26
- export let disabled = false;
27
-
28
- const dispatch = createEventDispatcher();
29
-
30
- let isOpen = false;
31
- let triggerRef;
32
- let menuRef;
33
- let focusedIndex = -1;
34
- let optionElements = [];
35
-
36
- async function toggleDropdown() {
37
- if (disabled) return;
38
- isOpen = !isOpen;
39
- if (isOpen) {
40
- focusedIndex = -1;
41
- await tick();
42
- updateOptionElements();
43
- }
44
- }
45
-
46
- function updateOptionElements() {
47
- if (menuRef) {
48
- optionElements = Array.from(menuRef.querySelectorAll('[role="option"]'));
49
- }
50
- }
51
-
52
- function focusOption(index) {
53
- if (optionElements.length === 0) return;
54
- if (index < 0) index = optionElements.length - 1;
55
- if (index >= optionElements.length) index = 0;
56
- focusedIndex = index;
57
- optionElements[focusedIndex]?.focus();
58
- }
59
-
60
- function selectOption(option) {
61
- selected = option;
62
- dispatch("select", option);
63
- isOpen = false;
64
- triggerRef?.focus();
65
- }
66
-
67
- function handleClickOutside(event) {
68
- if (
69
- triggerRef &&
70
- !triggerRef.contains(event.target) &&
71
- menuRef &&
72
- !menuRef.contains(event.target)
73
- ) {
74
- isOpen = false;
75
- }
76
- }
77
-
78
- function handleKeyDown(event) {
79
- if (!isOpen) return;
80
-
81
- // Only handle if event originated from within this dropdown
82
- if (!menuRef?.contains(event.target) && !triggerRef?.contains(event.target)) {
83
- return;
84
- }
85
-
86
- switch (event.key) {
87
- case "Escape":
88
- isOpen = false;
89
- triggerRef?.focus();
90
- event.preventDefault();
91
- break;
92
- case "ArrowDown":
93
- focusOption(focusedIndex + 1);
94
- event.preventDefault();
95
- break;
96
- case "ArrowUp":
97
- focusOption(focusedIndex - 1);
98
- event.preventDefault();
99
- break;
100
- case "Home":
101
- focusOption(0);
102
- event.preventDefault();
103
- break;
104
- case "End":
105
- focusOption(optionElements.length - 1);
106
- event.preventDefault();
107
- break;
108
- case "Tab":
109
- isOpen = false;
110
- break;
111
- }
112
- }
113
-
114
- onMount(() => {
115
- if (typeof window !== "undefined") {
116
- window.addEventListener("click", handleClickOutside);
117
- window.addEventListener("keydown", handleKeyDown);
118
- }
119
- });
120
-
121
- onDestroy(() => {
122
- if (typeof window !== "undefined") {
123
- window.removeEventListener("click", handleClickOutside);
124
- window.removeEventListener("keydown", handleKeyDown);
125
- }
126
- });
127
- </script>
128
-
129
- <div class="select-dropdown {className}">
130
- <button
131
- bind:this={triggerRef}
132
- type="button"
133
- class="select-dropdown__trigger"
134
- class:select-dropdown__trigger--disabled={disabled}
135
- on:click|preventDefault={toggleDropdown}
136
- aria-haspopup="listbox"
137
- aria-expanded={isOpen}
138
- aria-label={placeholder}
139
- {disabled}
140
- >
141
- <span class="select-dropdown__value">
142
- {selected?.label || placeholder}
143
- </span>
144
- <svg
145
- class="select-dropdown__icon"
146
- class:select-dropdown__icon--open={isOpen}
147
- fill="none"
148
- stroke="currentColor"
149
- viewBox="0 0 24 24"
150
- xmlns="http://www.w3.org/2000/svg"
151
- >
152
- <path
153
- stroke-linecap="round"
154
- stroke-linejoin="round"
155
- stroke-width="2"
156
- d="M19 9l-7 7-7-7"
157
- />
158
- </svg>
159
- </button>
160
-
161
- {#if isOpen}
162
- <div
163
- bind:this={menuRef}
164
- class="select-dropdown__menu"
165
- role="listbox"
166
- aria-label={placeholder}
167
- >
168
- {#each options as option}
169
- <button
170
- type="button"
171
- class="select-dropdown__option"
172
- class:select-dropdown__option--selected={selected?.value === option.value}
173
- on:click|preventDefault={() => selectOption(option)}
174
- role="option"
175
- aria-selected={selected?.value === option.value}
176
- >
177
- {option.label}
178
- </button>
179
- {/each}
180
- </div>
181
- {/if}
182
- </div>
183
-
184
- <style>
185
- .select-dropdown {
186
- position: relative;
187
- display: inline-block;
188
- font-size: 0.75rem;
189
- }
190
-
191
- .select-dropdown__trigger {
192
- display: flex;
193
- align-items: center;
194
- padding: 0.5rem 1rem;
195
- text-align: left;
196
- background-color: hsl(var(--BG-Primary, 0 0% 100%));
197
- color: hsl(var(--Text-Primary, 220 13% 13%));
198
- border: 1px solid hsl(var(--Stroke-Primary, 220 13% 85%));
199
- border-radius: 0.375rem;
200
- box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
201
- cursor: pointer;
202
- transition: border-color 0.15s ease, box-shadow 0.15s ease;
203
- }
204
-
205
- .select-dropdown__trigger:hover:not(:disabled) {
206
- border-color: hsl(var(--Stroke-Secondary, 220 13% 75%));
207
- }
208
-
209
- .select-dropdown__trigger:focus {
210
- outline: none;
211
- border-color: hsl(var(--Brand-Primary, 221 83% 53%));
212
- box-shadow: 0 0 0 2px hsl(var(--Brand-Primary, 221 83% 53%) / 0.2);
213
- }
214
-
215
- .select-dropdown__trigger--disabled {
216
- opacity: 0.5;
217
- cursor: not-allowed;
218
- }
219
-
220
- .select-dropdown__value {
221
- flex: 1;
222
- }
223
-
224
- .select-dropdown__icon {
225
- width: 1rem;
226
- height: 1rem;
227
- margin-left: 0.5rem;
228
- transition: transform 0.15s ease;
229
- }
230
-
231
- .select-dropdown__icon--open {
232
- transform: rotate(180deg);
233
- }
234
-
235
- .select-dropdown__menu {
236
- position: absolute;
237
- top: 100%;
238
- left: 0;
239
- z-index: 50;
240
- display: flex;
241
- flex-direction: column;
242
- min-width: 100%;
243
- margin-top: 0.25rem;
244
- background-color: hsl(var(--BG-Primary, 0 0% 100%));
245
- border: 1px solid hsl(var(--Stroke-Primary, 220 13% 85%));
246
- border-radius: 0.375rem;
247
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
248
- max-height: 200px;
249
- overflow-y: auto;
250
- }
251
-
252
- .select-dropdown__menu::-webkit-scrollbar {
253
- display: none;
254
- }
255
-
256
- .select-dropdown__option {
257
- width: 100%;
258
- padding: 0.5rem 1rem;
259
- text-align: left;
260
- background: transparent;
261
- border: none;
262
- color: hsl(var(--Text-Primary, 220 13% 13%));
263
- cursor: pointer;
264
- transition: background-color 0.15s ease;
265
- }
266
-
267
- .select-dropdown__option:hover {
268
- background-color: hsl(var(--BG-Secondary, 220 14% 96%));
269
- }
270
-
271
- .select-dropdown__option:focus {
272
- outline: none;
273
- background-color: hsl(var(--BG-Secondary, 220 14% 96%));
274
- }
275
-
276
- .select-dropdown__option--selected {
277
- background-color: hsl(var(--Brand-Primary, 221 83% 53%) / 0.1);
278
- color: hsl(var(--Brand-Primary, 221 83% 53%));
279
- }
280
-
281
- /* Dark mode */
282
- :global(.dark) .select-dropdown__trigger {
283
- background-color: hsl(var(--BG-Primary, 220 13% 15%));
284
- color: hsl(var(--Text-Primary, 0 0% 95%));
285
- border-color: hsl(var(--Stroke-Primary, 220 13% 30%));
286
- }
287
-
288
- :global(.dark) .select-dropdown__menu {
289
- background-color: hsl(var(--BG-Primary, 220 13% 15%));
290
- border-color: hsl(var(--Stroke-Primary, 220 13% 30%));
291
- }
292
-
293
- :global(.dark) .select-dropdown__option {
294
- color: hsl(var(--Text-Primary, 0 0% 95%));
295
- }
296
-
297
- :global(.dark) .select-dropdown__option:hover,
298
- :global(.dark) .select-dropdown__option:focus {
299
- background-color: hsl(var(--BG-Secondary, 220 13% 20%));
300
- }
301
- </style>
@@ -1,51 +0,0 @@
1
- export default SelectDropdown;
2
- type SelectDropdown = SvelteComponent<{
3
- class?: string | undefined;
4
- disabled?: boolean | undefined;
5
- options?: {
6
- label: string;
7
- value: string;
8
- }[] | undefined;
9
- selected?: {
10
- label: string;
11
- value: string;
12
- } | null | undefined;
13
- placeholder?: string | undefined;
14
- }, {
15
- select: CustomEvent<any>;
16
- } & {
17
- [evt: string]: CustomEvent<any>;
18
- }, {}> & {
19
- $$bindings?: string | undefined;
20
- };
21
- declare const SelectDropdown: $$__sveltets_2_IsomorphicComponent<{
22
- class?: string | undefined;
23
- disabled?: boolean | undefined;
24
- options?: {
25
- label: string;
26
- value: string;
27
- }[] | undefined;
28
- selected?: {
29
- label: string;
30
- value: string;
31
- } | null | undefined;
32
- placeholder?: string | undefined;
33
- }, {
34
- select: CustomEvent<any>;
35
- } & {
36
- [evt: string]: CustomEvent<any>;
37
- }, {}, {}, string>;
38
- 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> {
39
- new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
40
- $$bindings?: Bindings;
41
- } & Exports;
42
- (internal: unknown, props: Props & {
43
- $$events?: Events;
44
- $$slots?: Slots;
45
- }): Exports & {
46
- $set?: any;
47
- $on?: any;
48
- };
49
- z_$$bindings?: Bindings;
50
- }
51
- //# sourceMappingURL=SelectDropdown.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectDropdown.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Dropdown/SelectDropdown.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AA6KA;;;;eAdyB,MAAM;eAAS,MAAM;;;eAC3B,MAAM;eAAS,MAAM;;;;;;;mBAa2I;6CATtI,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,80 +0,0 @@
1
- <script>
2
- /**
3
- * EmptyState - Display an empty state message with optional icon
4
- *
5
- * @example
6
- * <EmptyState message="No results found" />
7
- * <EmptyState message="No events" subtext="Create your first event to get started" />
8
- */
9
-
10
- /** @type {string} Main message to display */
11
- export let message = 'No results found';
12
- /** @type {string} Secondary descriptive text */
13
- export let subtext = '';
14
- /** @type {any} Icon component or image path */
15
- export let icon = null;
16
- /** @type {'component' | 'image'} Type of icon provided */
17
- export let iconType = 'component';
18
- /** @type {string} Size classes for the icon */
19
- export let iconSize = 'w-20 h-20';
20
- /** @type {string} Additional CSS classes */
21
- let className = '';
22
- export { className as class };
23
- </script>
24
-
25
- <div class="empty-state {className}">
26
- {#if icon}
27
- {#if iconType === 'component'}
28
- <svelte:component this={icon} class="empty-state__icon {iconSize}" />
29
- {:else if iconType === 'image'}
30
- <img src={icon} alt="" class="empty-state__icon {iconSize}" />
31
- {/if}
32
- {/if}
33
-
34
- <h3 class="empty-state__message">{message}</h3>
35
- {#if subtext}
36
- <p class="empty-state__subtext">{subtext}</p>
37
- {/if}
38
- </div>
39
-
40
- <style>
41
- .empty-state {
42
- display: flex;
43
- flex-direction: column;
44
- align-items: center;
45
- justify-content: center;
46
- padding: 2.5rem 1.5rem;
47
- text-align: center;
48
- }
49
-
50
- .empty-state__icon {
51
- margin-bottom: 0.75rem;
52
- color: hsl(var(--Text-Tertiary, 220 9% 46%));
53
- }
54
-
55
- .empty-state__message {
56
- font-size: 1.125rem;
57
- font-weight: 600;
58
- color: hsl(var(--Text-Primary, 220 13% 18%));
59
- margin: 0;
60
- }
61
-
62
- .empty-state__subtext {
63
- font-size: 0.875rem;
64
- color: hsl(var(--Text-Secondary, 220 9% 46%));
65
- margin: 0.25rem 0 0;
66
- }
67
-
68
- /* Dark mode */
69
- :global(.dark) .empty-state__icon {
70
- color: hsl(var(--Text-Tertiary, 220 9% 60%));
71
- }
72
-
73
- :global(.dark) .empty-state__message {
74
- color: hsl(var(--Text-Primary, 0 0% 95%));
75
- }
76
-
77
- :global(.dark) .empty-state__subtext {
78
- color: hsl(var(--Text-Secondary, 220 9% 70%));
79
- }
80
- </style>
@@ -1,37 +0,0 @@
1
- export default EmptyState;
2
- type EmptyState = SvelteComponent<{
3
- class?: string | undefined;
4
- message?: string | undefined;
5
- icon?: any;
6
- subtext?: string | undefined;
7
- iconType?: "image" | "component" | undefined;
8
- iconSize?: string | undefined;
9
- }, {
10
- [evt: string]: CustomEvent<any>;
11
- }, {}> & {
12
- $$bindings?: string | undefined;
13
- };
14
- declare const EmptyState: $$__sveltets_2_IsomorphicComponent<{
15
- class?: string | undefined;
16
- message?: string | undefined;
17
- icon?: any;
18
- subtext?: string | undefined;
19
- iconType?: "image" | "component" | undefined;
20
- iconSize?: string | undefined;
21
- }, {
22
- [evt: string]: CustomEvent<any>;
23
- }, {}, {}, string>;
24
- 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> {
25
- new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
26
- $$bindings?: Bindings;
27
- } & Exports;
28
- (internal: unknown, props: Props & {
29
- $$events?: Events;
30
- $$slots?: Slots;
31
- }): Exports & {
32
- $set?: any;
33
- $on?: any;
34
- };
35
- z_$$bindings?: Bindings;
36
- }
37
- //# sourceMappingURL=EmptyState.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmptyState.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/EmptyState/EmptyState.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;AA6DA;;;WAbW,GAAG;;;;;;mBAaoK;6CATrI,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,49 +0,0 @@
1
- <script>
2
- export let faqs = [];
3
- export let title = "FAQs";
4
- export let showTitle = true;
5
-
6
- $: items = faqs.map(f =>
7
- typeof f === 'string' ? { question: '', answer: f } : f
8
- );
9
- </script>
10
-
11
- <div class="flex flex-col gap-3">
12
- {#if showTitle}
13
- <h2 class="section-title font-medium text-xl">{title}</h2>
14
- {/if}
15
-
16
- {#if items.length}
17
- <div class="space-y-4">
18
- {#each items as { question, answer }}
19
- <div>
20
- {#if question}
21
- <p class="question-text text-[15px] font-medium mb-1">{question}</p>
22
- {/if}
23
- <p class="answer-text text-[15px] leading-relaxed">{answer}</p>
24
- </div>
25
- {/each}
26
- </div>
27
- {:else}
28
- <p class="empty-text text-sm">No FAQs available.</p>
29
- {/if}
30
- </div>
31
-
32
- <style>
33
- /* Theme-responsive colors using CSS variables */
34
- .section-title {
35
- color: hsl(var(--Text-Primary));
36
- }
37
-
38
- .question-text {
39
- color: hsl(var(--Text-Primary));
40
- }
41
-
42
- .answer-text {
43
- color: hsl(var(--Text-Secondary));
44
- }
45
-
46
- .empty-text {
47
- color: hsl(var(--Text-Tartiary));
48
- }
49
- </style>
@@ -1 +0,0 @@
1
- {"version":3,"file":"FAQs.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/FAQs/FAQs.svelte.js"],"names":[],"mappings":";;;;;;;;;;AA+CA;;;;;;mBAA8I;6CATjG,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"}