@getmicdrop/svelte-components 2.6.4 → 2.8.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 (153) 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 +34 -8
  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/Tabs/TabItem.svelte +39 -0
  115. package/dist/components/Tabs/TabItem.svelte.d.ts +52 -0
  116. package/dist/components/Tabs/TabItem.svelte.d.ts.map +1 -0
  117. package/dist/components/Tabs/Tabs.svelte +181 -0
  118. package/dist/components/Tabs/Tabs.svelte.d.ts +46 -0
  119. package/dist/components/Tabs/Tabs.svelte.d.ts.map +1 -0
  120. package/dist/components/Typography/Typography.svelte +50 -0
  121. package/dist/components/Typography/Typography.svelte.d.ts +48 -0
  122. package/dist/components/Typography/Typography.svelte.d.ts.map +1 -0
  123. package/dist/components/pages/performers/ShowDetails.svelte.d.ts +4 -4
  124. package/dist/components/pages/performers/ShowItemCard.svelte.d.ts +8 -8
  125. package/dist/components/pages/performers/SwitchOption.svelte.d.ts +2 -2
  126. package/dist/components/pages/performers/VenueInfo.svelte.d.ts +2 -2
  127. package/dist/components/pages/performers/VenueItemCard.svelte +2 -2
  128. package/dist/components/pages/performers/VenueItemCard.svelte.d.ts +4 -4
  129. package/dist/components/pages/profile/profile-form.svelte +1 -1
  130. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts +2 -2
  131. package/dist/components/pages/shows/TabNavigation.svelte +7 -8
  132. package/dist/constants/formOptions.d.ts +5 -2
  133. package/dist/constants/formOptions.d.ts.map +1 -1
  134. package/dist/constants/formOptions.js +2 -1
  135. package/dist/index.d.ts +28 -4
  136. package/dist/index.js +33 -30
  137. package/dist/services/EventService.js +75 -75
  138. package/dist/services/EventService.spec.js +217 -217
  139. package/dist/services/ShowService.spec.js +342 -342
  140. package/package.json +160 -160
  141. package/dist/components/Calendar/Calendar.spec.d.ts +0 -2
  142. package/dist/components/Calendar/Calendar.spec.d.ts.map +0 -1
  143. package/dist/components/Calendar/Calendar.spec.js +0 -131
  144. package/dist/components/Calendar/Calendar.svelte +0 -1115
  145. package/dist/components/Calendar/Calendar.svelte.d.ts.map +0 -1
  146. package/dist/components/Calendar/QuarterView.spec.d.ts +0 -2
  147. package/dist/components/Calendar/QuarterView.spec.d.ts.map +0 -1
  148. package/dist/components/Calendar/QuarterView.spec.js +0 -394
  149. package/dist/components/Calendar/QuarterView.stories.svelte +0 -134
  150. package/dist/components/Calendar/QuarterView.stories.svelte.d.ts.map +0 -1
  151. package/dist/components/Calendar/QuarterView.svelte +0 -736
  152. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte +0 -632
  153. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte.d.ts.map +0 -1
@@ -6,11 +6,25 @@
6
6
 
7
7
  export let size = "medium";
8
8
  export let className = "";
9
- /** @type {string} Semantic variant (required) */
9
+ /** @type {string|number} Semantic variant or tier number (1-5) */
10
10
  export let variant = "neutral";
11
+ /** @type {string|null} Event display type: "square" or "circle" */
12
+ export let event = null;
13
+ /** @type {string|null} Custom text color (hex) */
14
+ export let textColor = null;
15
+ /** @type {string|null} Custom background color (hex or rgba) */
16
+ export let bgColor = null;
17
+ /** @type {boolean} Show status dot before text (uses variant color) */
18
+ export let showDot = false;
19
+ /** @type {boolean} Pill mode for counts/notifications (circular, minimal padding) */
20
+ export let pill = false;
21
+ /** @type {"rounded"|"pill"} Border radius style - rounded-rect or full pill */
22
+ export let shape = "rounded";
11
23
 
12
24
  $: sizeClass = (() => {
13
25
  switch (size) {
26
+ case "xs":
27
+ return "badge-xs";
14
28
  case "small":
15
29
  return "badge-sm";
16
30
  case "medium":
@@ -22,8 +36,26 @@
22
36
  }
23
37
  })();
24
38
 
39
+ $: shapeClass = pill ? "badge-pill" : (shape === "pill" ? "badge-shape-pill" : "badge-shape-rounded");
40
+
41
+ // Handle tier numbers (1-5) as variants
42
+ $: normalizedVariant = (() => {
43
+ if (typeof variant === "number" || !isNaN(Number(variant))) {
44
+ const tierNum = Number(variant);
45
+ switch (tierNum) {
46
+ case 1: return "tier-1";
47
+ case 2: return "tier-2";
48
+ case 3: return "tier-3";
49
+ case 4: return "tier-4";
50
+ case 5: return "tier-5";
51
+ default: return "neutral";
52
+ }
53
+ }
54
+ return String(variant).toLowerCase();
55
+ })();
56
+
25
57
  $: variantClass = (() => {
26
- switch (variant.toLowerCase()) {
58
+ switch (normalizedVariant) {
27
59
  // Role variants
28
60
  case "host":
29
61
  return "badge-host";
@@ -47,14 +79,60 @@
47
79
  case "warning":
48
80
  return "badge-warning";
49
81
  case "error":
82
+ case "danger":
50
83
  return "badge-error";
51
84
  case "info":
52
85
  return "badge-info";
86
+ // Search result type variants
87
+ case "event":
88
+ return "badge-event-type";
89
+ case "venue":
90
+ return "badge-venue";
91
+ case "user":
92
+ return "badge-user";
93
+ case "order":
94
+ return "badge-order";
95
+ case "performer":
96
+ return "badge-performer";
97
+ // Notification count
98
+ case "notification":
99
+ return "badge-notification";
100
+ // Tier variants (for lineup position badges)
101
+ case "tier-1":
102
+ return "badge-tier-1";
103
+ case "tier-2":
104
+ return "badge-tier-2";
105
+ case "tier-3":
106
+ return "badge-tier-3";
107
+ case "tier-4":
108
+ return "badge-tier-4";
109
+ case "tier-5":
110
+ return "badge-tier-5";
53
111
  case "neutral":
54
112
  default:
55
113
  return "badge-neutral";
56
114
  }
57
115
  })();
116
+
117
+ $: eventClass = (() => {
118
+ if (!event) return "";
119
+ switch (event) {
120
+ case "square":
121
+ return "badge-event-square";
122
+ case "circle":
123
+ return "badge-event-circle";
124
+ default:
125
+ return "";
126
+ }
127
+ })();
128
+
129
+ // Custom style for text/bg color overrides
130
+ $: customStyle = (() => {
131
+ const styles = [];
132
+ if (textColor) styles.push(`color: ${textColor}`);
133
+ if (bgColor) styles.push(`background-color: ${bgColor}`);
134
+ return styles.length > 0 ? styles.join("; ") : null;
135
+ })();
58
136
  </script>
59
137
 
60
138
  <!-- svelte-ignore a11y-click-events-have-key-events -->
@@ -64,55 +142,129 @@
64
142
  "badge",
65
143
  sizeClass,
66
144
  variantClass,
145
+ eventClass,
146
+ shapeClass,
67
147
  className
68
148
  )}
69
- on:click={(event) => dispatch("click", event)}
149
+ style={customStyle}
150
+ on:click={(e) => dispatch("click", e)}
70
151
  >
152
+ {#if showDot}
153
+ <span class="badge-dot"></span>
154
+ {/if}
155
+ <slot name="leftIcon" />
71
156
  <slot />
72
157
  </div>
73
158
 
74
159
  <!--
75
160
  Usage: <Badge variant="host">Host</Badge>
76
161
 
162
+ With icon: <Badge variant="success"><CheckIcon slot="leftIcon" />Verified</Badge>
163
+ With dot: <Badge variant="success" showDot>On Sale</Badge>
164
+
77
165
  Role variants: host, headliner, feature, special-guest, opener, guest, teacher, assistant
78
166
  Status variants: success, warning, error, info, neutral
167
+ Tier variants: 1, 2, 3, 4, 5 (pass as number or string)
168
+ Event types: event="square" or event="circle"
169
+ Sizes: xs, small, medium, large
170
+ Shape: shape="rounded" (default, rounded-rect) or shape="pill" (full pill)
171
+ Pill mode: pill={true} for notification counts (circular, minimal padding)
172
+ Custom colors: textColor="#hex" bgColor="rgba(...)"
79
173
  -->
80
174
 
81
175
  <style>
82
176
  /* Base badge styles */
83
177
  .badge {
84
178
  cursor: pointer;
85
- gap: 0.25rem;
179
+ gap: 0.375rem;
86
180
  display: inline-flex;
87
181
  align-items: center;
88
182
  }
89
183
 
184
+ /* Status dot */
185
+ .badge-dot {
186
+ width: 6px;
187
+ height: 6px;
188
+ border-radius: 9999px;
189
+ background-color: currentColor;
190
+ flex-shrink: 0;
191
+ }
192
+
90
193
  /* Size variants */
194
+ .badge-xs {
195
+ padding: 2px 6px;
196
+ font-size: 10px;
197
+ line-height: 12px;
198
+ font-weight: 500;
199
+ }
200
+
91
201
  .badge-sm {
92
- padding-left: 2px;
93
- padding-right: 2px;
94
- font-size: 7px;
95
- line-height: 7px;
96
- border-radius: 4px;
202
+ padding: 2px 8px;
203
+ font-size: 11px;
204
+ line-height: 14px;
97
205
  font-weight: 500;
98
206
  }
99
207
 
100
208
  .badge-md {
101
- padding: 2px 8.5px;
102
- font-size: 10px;
103
- line-height: 14px;
104
- border-radius: 6px;
209
+ padding: 4px 10px;
210
+ font-size: 12px;
211
+ line-height: 16px;
105
212
  font-weight: 600;
106
213
  }
107
214
 
108
215
  .badge-lg {
109
- padding: 6px 15.5px;
110
- font-size: 0.875rem;
111
- line-height: 14px;
112
- border-radius: 6px;
216
+ padding: 6px 14px;
217
+ font-size: 14px;
218
+ line-height: 18px;
113
219
  font-weight: 500;
114
220
  }
115
221
 
222
+ /* Shape variants - rounded-rect is default */
223
+ .badge-shape-rounded {
224
+ border-radius: 4px;
225
+ }
226
+
227
+ /* Full pill shape */
228
+ .badge-shape-pill {
229
+ border-radius: 9999px;
230
+ }
231
+
232
+ /* Pill mode for counts/notifications */
233
+ .badge-pill {
234
+ border-radius: 9999px;
235
+ min-width: 20px;
236
+ height: 20px;
237
+ padding: 0 6px;
238
+ font-size: 11px;
239
+ line-height: 20px;
240
+ font-weight: 600;
241
+ justify-content: center;
242
+ }
243
+
244
+ .badge-pill.badge-xs {
245
+ min-width: 16px;
246
+ height: 16px;
247
+ padding: 0 4px;
248
+ font-size: 10px;
249
+ line-height: 16px;
250
+ }
251
+
252
+ .badge-pill.badge-sm {
253
+ min-width: 18px;
254
+ height: 18px;
255
+ padding: 0 5px;
256
+ font-size: 10px;
257
+ line-height: 18px;
258
+ }
259
+
260
+ .badge-pill.badge-lg {
261
+ min-width: 24px;
262
+ height: 24px;
263
+ padding: 0 8px;
264
+ font-size: 12px;
265
+ line-height: 24px;
266
+ }
267
+
116
268
  /* Role variants */
117
269
  .badge-host {
118
270
  color: #dc2626;
@@ -179,4 +331,103 @@
179
331
  color: #4b5563;
180
332
  background-color: #f9fafb;
181
333
  }
334
+
335
+ /* Search result type variants */
336
+ .badge-event-type {
337
+ color: #1e40af;
338
+ background-color: #dbeafe;
339
+ }
340
+
341
+ .badge-venue {
342
+ color: #166534;
343
+ background-color: #dcfce7;
344
+ }
345
+
346
+ .badge-user {
347
+ color: #7e22ce;
348
+ background-color: #f3e8ff;
349
+ }
350
+
351
+ .badge-order {
352
+ color: #c2410c;
353
+ background-color: #ffedd5;
354
+ }
355
+
356
+ .badge-performer {
357
+ color: #be185d;
358
+ background-color: #fce7f3;
359
+ }
360
+
361
+ /* Notification count variant */
362
+ .badge-notification {
363
+ color: #ffffff;
364
+ background-color: #ef4444;
365
+ }
366
+
367
+ /* Tier variants (lineup position badges) - colors match local frontend implementation */
368
+ .badge-tier-1 {
369
+ color: rgba(108, 43, 217, 1);
370
+ background-color: rgba(108, 43, 217, 0.15);
371
+ }
372
+
373
+ .badge-tier-2 {
374
+ color: rgba(255, 146, 46, 1);
375
+ background-color: rgba(255, 146, 46, 0.15);
376
+ }
377
+
378
+ .badge-tier-3 {
379
+ color: rgba(2, 132, 254, 1);
380
+ background-color: rgba(2, 132, 254, 0.15);
381
+ }
382
+
383
+ .badge-tier-4 {
384
+ color: rgba(21, 160, 51, 1);
385
+ background-color: rgba(21, 160, 51, 0.15);
386
+ }
387
+
388
+ .badge-tier-5 {
389
+ color: rgba(255, 102, 102, 1);
390
+ background-color: rgba(255, 102, 102, 0.15);
391
+ }
392
+
393
+ /* Event display types */
394
+ .badge-event-square {
395
+ padding: 4px;
396
+ border-radius: 4px;
397
+ border: 0.8px solid rgba(2, 132, 254, 0.5);
398
+ box-shadow:
399
+ 0px 20px 6px 0px rgba(0, 0, 0, 0),
400
+ 0px 13px 5px 0px rgba(0, 0, 0, 0.02),
401
+ 0px 7px 4px 0px rgba(0, 0, 0, 0.08),
402
+ 0px 3px 3px 0px rgba(0, 0, 0, 0.14),
403
+ 0px 1px 2px 0px rgba(0, 0, 0, 0.16);
404
+ font-size: 14px;
405
+ font-weight: 400;
406
+ line-height: 14px;
407
+ }
408
+
409
+ .badge-event-circle {
410
+ padding: 4px;
411
+ border-radius: 9999px;
412
+ font-size: 14px;
413
+ font-weight: 600;
414
+ line-height: 14px;
415
+ }
416
+
417
+ @media only screen and (max-width: 640px) {
418
+ .badge-event-square {
419
+ padding: 2px;
420
+ font-size: 8px;
421
+ line-height: 10px;
422
+ font-weight: 200;
423
+ }
424
+
425
+ .badge-event-circle {
426
+ padding: 2px;
427
+ font-size: 8px;
428
+ gap: 0px;
429
+ font-weight: 500;
430
+ line-height: 8px;
431
+ }
432
+ }
182
433
  </style>
@@ -1,30 +1,46 @@
1
1
  export default Badge;
2
2
  type Badge = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
+ pill?: boolean | undefined;
3
4
  size?: string | undefined;
4
5
  className?: string | undefined;
5
- variant?: string | undefined;
6
+ variant?: string | number | undefined;
7
+ event?: string | null | undefined;
8
+ textColor?: string | null | undefined;
9
+ bgColor?: string | null | undefined;
10
+ showDot?: boolean | undefined;
11
+ shape?: "rounded" | "pill" | undefined;
6
12
  }, {
13
+ leftIcon: {};
7
14
  default: {};
8
15
  }>, {
9
16
  click: CustomEvent<any>;
10
17
  } & {
11
18
  [evt: string]: CustomEvent<any>;
12
19
  }, {
20
+ leftIcon: {};
13
21
  default: {};
14
22
  }> & {
15
23
  $$bindings?: string | undefined;
16
24
  };
17
25
  declare const Badge: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
26
+ pill?: boolean | undefined;
18
27
  size?: string | undefined;
19
28
  className?: string | undefined;
20
- variant?: string | undefined;
29
+ variant?: string | number | undefined;
30
+ event?: string | null | undefined;
31
+ textColor?: string | null | undefined;
32
+ bgColor?: string | null | undefined;
33
+ showDot?: boolean | undefined;
34
+ shape?: "rounded" | "pill" | undefined;
21
35
  }, {
36
+ leftIcon: {};
22
37
  default: {};
23
38
  }>, {
24
39
  click: CustomEvent<any>;
25
40
  } & {
26
41
  [evt: string]: CustomEvent<any>;
27
42
  }, {
43
+ leftIcon: {};
28
44
  default: {};
29
45
  }, {}, string>;
30
46
  type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Badges/Badge.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAiGA;;;;;;;;;;;;eAAuJ;sCATjH,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":"Badge.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Badges/Badge.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA2LA;;;;;;;;;;;;;;;;;;;;eAA8M;sCATxK,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,8 +1,18 @@
1
1
  <script>
2
2
  import { createEventDispatcher } from "svelte";
3
- import BreadcrumbArrow from "../../assets/svg/arrow-up.svg";
3
+ import ArrowRight from "../Icons/ArrowRight.svelte";
4
+ import Home from "../Icons/Home.svelte";
4
5
 
6
+ /** @type {Array<{name: string, href: string}>} */
5
7
  export let data = [];
8
+ /** @type {string} Additional CSS classes */
9
+ export let className = "";
10
+ /** @type {boolean} Show built-in home icon for first item */
11
+ export let showHomeIcon = true;
12
+ /** @type {string} Page title displayed below breadcrumb */
13
+ export let title = "";
14
+ /** @type {string} Subtitle displayed below title */
15
+ export let subtitle = "";
6
16
 
7
17
  const dispatch = createEventDispatcher();
8
18
 
@@ -11,40 +21,59 @@
11
21
  }
12
22
  </script>
13
23
 
14
- {#if data.length > 0}
15
- <nav class="inline-flex text-sm leading-[14px] font-medium">
16
- {#each data as crumb, index}
17
- <div class="flex items-center">
18
- {#if index > 0}
19
- <img
20
- src={BreadcrumbArrow}
21
- alt=""
22
- class="w-2.5 sm:w-3 h-2.5 sm:h-3 mx-2 sm:mx-2.5"
23
- />
24
- {/if}
25
- {#if index === 0}
26
- <img
27
- src={crumb.icon}
28
- alt=""
29
- class="w-3 sm:w-4 h-3 sm:h-4 mx-2 sm:mx-2.5"
30
- />
31
- {/if}
32
- {#if index === data.length - 1}
33
- <span class="text-Text-Tartiary cursor-default">{crumb.name}</span>
34
- {:else}
35
- <!-- svelte-ignore a11y-click-events-have-key-events -->
36
- <!-- svelte-ignore a11y-no-static-element-interactions -->
37
- <span class="text-Text-Secondary no-underline cursor-pointer">
38
- <a
39
- href={crumb.href}
40
- on:click={() => handleClick(crumb)}
41
- class="hover:no-underline"
24
+ <div class="flex flex-col gap-4">
25
+ {#if data.length > 0}
26
+ <nav class="inline-flex lg:ml-6 text-sm leading-[14px] font-medium flex-wrap gap-1 {className}">
27
+ {#each data as crumb, index}
28
+ <div class="flex items-center gap-2">
29
+ {#if index > 0}
30
+ <div class="pl-1 text-text-secondary">
31
+ <ArrowRight size="12" />
32
+ </div>
33
+ {/if}
34
+ {#if index === 0 && showHomeIcon}
35
+ <span class="text-text-primary">
36
+ <Home size="12" />
37
+ </span>
38
+ {/if}
39
+ {#if index === data.length - 1}
40
+ <span
41
+ class="text-text-primary cursor-default max-w-[200px] overflow-hidden text-ellipsis whitespace-nowrap"
42
+ title={crumb.name}
42
43
  >
43
44
  {crumb.name}
44
- </a>
45
- </span>
46
- {/if}
47
- </div>
48
- {/each}
49
- </nav>
50
- {/if}
45
+ </span>
46
+ {:else}
47
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
48
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
49
+ <span
50
+ class="text-text-secondary no-underline cursor-pointer max-w-[200px] overflow-hidden text-ellipsis whitespace-nowrap"
51
+ title={crumb.name}
52
+ >
53
+ <a
54
+ href={crumb.href}
55
+ on:click={() => handleClick(crumb)}
56
+ class="hover:no-underline"
57
+ >
58
+ {crumb.name}
59
+ </a>
60
+ </span>
61
+ {/if}
62
+ </div>
63
+ {/each}
64
+ </nav>
65
+ {/if}
66
+
67
+ {#if title || subtitle}
68
+ <div class="pl-1 mb-4 md:pl-6 flex flex-col gap-1">
69
+ {#if title}
70
+ <h1 class="text-[32px] font-semibold text-text-primary text-start">
71
+ {title}
72
+ </h1>
73
+ {/if}
74
+ {#if subtitle}
75
+ <p class="text-sm text-text-secondary">{subtitle}</p>
76
+ {/if}
77
+ </div>
78
+ {/if}
79
+ </div>
@@ -1,6 +1,13 @@
1
1
  export default Breadcrumb;
2
2
  type Breadcrumb = SvelteComponent<{
3
- data?: any[] | undefined;
3
+ title?: string | undefined;
4
+ className?: string | undefined;
5
+ data?: {
6
+ name: string;
7
+ href: string;
8
+ }[] | undefined;
9
+ showHomeIcon?: boolean | undefined;
10
+ subtitle?: string | undefined;
4
11
  }, {
5
12
  click: CustomEvent<any>;
6
13
  } & {
@@ -9,7 +16,14 @@ type Breadcrumb = SvelteComponent<{
9
16
  $$bindings?: string | undefined;
10
17
  };
11
18
  declare const Breadcrumb: $$__sveltets_2_IsomorphicComponent<{
12
- data?: any[] | undefined;
19
+ title?: string | undefined;
20
+ className?: string | undefined;
21
+ data?: {
22
+ name: string;
23
+ href: string;
24
+ }[] | undefined;
25
+ showHomeIcon?: boolean | undefined;
26
+ subtitle?: string | undefined;
13
27
  }, {
14
28
  click: CustomEvent<any>;
15
29
  } & {
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Breadcrumb/Breadcrumb.svelte.js"],"names":[],"mappings":";;;;;;;;;;AAwDA;;;;;;mBAAgI;6CATnF,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":"Breadcrumb.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Breadcrumb/Breadcrumb.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA6FA;;;;cAdwB,MAAM;cAAQ,MAAM;;;;;;;;mBAckI;6CATjI,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"}