@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
@@ -12,10 +12,9 @@
12
12
  import { classNames } from "../../utils/utils.js";
13
13
 
14
14
  // New clean API
15
- export let variant = "blue-solid"; // blue-solid, blue-outline, gray-outline, red-solid, red-outline, red-text, gray-text, icon, toggle
15
+ export let variant = "blue-solid"; // blue-solid, blue-outline, gray-outline, red-solid, red-outline, red-text, gray-text
16
16
  export let size = ""; // full, full-md-auto, lg, md, sm, xs, nav, half
17
17
  export let minWidth = ""; // sm (100px), action (150px), modal (130px)
18
- export let shape = ""; // circle (for toggle pills)
19
18
  export let disabled = false;
20
19
  export let loading = false;
21
20
  export let success = false;
@@ -24,7 +23,7 @@
24
23
  export let beforeIcon = null;
25
24
  export let afterIcon = null;
26
25
  export let responsive = false; // Enable lift/press microinteraction
27
- export let active = false; // For nav items and toggle buttons - shows selected/current page state
26
+ export let active = false; // For nav items - shows selected/current page state
28
27
  export let href = null; // If provided, renders as <a> instead of <button>
29
28
  export let justify = ""; // between (for list-item style with icon on right)
30
29
 
@@ -33,22 +32,6 @@
33
32
 
34
33
  // Size classes
35
34
  $: sizeClass = (() => {
36
- // Icon variant uses different sizing
37
- if (variant === "icon") {
38
- switch (size) {
39
- case "lg":
40
- return "p-3 min-h-0";
41
- case "md":
42
- return "p-2.5 min-h-0";
43
- case "sm":
44
- return "p-2 min-h-0";
45
- case "xs":
46
- return "p-1.5 min-h-0";
47
- default:
48
- return "p-2 min-h-0"; // Default to sm for icon buttons
49
- }
50
- }
51
-
52
35
  switch (size) {
53
36
  case "full":
54
37
  return "w-full";
@@ -87,16 +70,6 @@
87
70
  }
88
71
  })();
89
72
 
90
- // Shape classes
91
- $: shapeClass = (() => {
92
- switch (shape) {
93
- case "circle":
94
- return "!rounded-full !w-8 !h-8 !min-h-[32px] !p-0";
95
- default:
96
- return "";
97
- }
98
- })();
99
-
100
73
  // Variant classes with consistent hover/active states
101
74
  $: variantClass = (() => {
102
75
  if (success) return "btn-success";
@@ -116,10 +89,6 @@
116
89
  return "btn-red-text";
117
90
  case "gray-text":
118
91
  return "btn-gray-text";
119
- case "icon":
120
- return "btn-icon";
121
- case "toggle":
122
- return "btn-toggle";
123
92
  default:
124
93
  return "btn-blue-solid";
125
94
  }
@@ -142,10 +111,6 @@
142
111
  return "text-red-600";
143
112
  case "gray-text":
144
113
  return "text-Text-Tartiary";
145
- case "icon":
146
- return ""; // Icon buttons inherit text color from className or use default gray
147
- case "toggle":
148
- return ""; // Handled by toggle variant states
149
114
  default:
150
115
  return "text-white";
151
116
  }
@@ -166,12 +131,11 @@
166
131
  href ? "no-underline hover:no-underline" : "",
167
132
  sizeClass,
168
133
  minWidthClass,
169
- shapeClass,
170
134
  variantClass,
171
135
  textClass,
172
136
  disabledClass,
173
137
  responsive && !disabled ? "btn-responsive" : "",
174
- active && (variant === "gray-text" || variant === "toggle") ? "btn-active" : "",
138
+ active ? "btn-active" : "",
175
139
  justifyClass,
176
140
  className
177
141
  );
@@ -284,7 +248,6 @@
284
248
  --tw-border-opacity: 1;
285
249
  border-color: rgb(29 78 216 / var(--tw-border-opacity, 1));
286
250
  background-color: transparent;
287
- color: #1d4ed8; /* blue-700 for light mode */
288
251
  }
289
252
  .btn-blue-outline:hover:not(:disabled) {
290
253
  --tw-bg-opacity: 1;
@@ -473,94 +436,6 @@
473
436
  background-color: #374151;
474
437
  }
475
438
 
476
- /* ============================================
477
- ICON VARIANT
478
- Minimal icon-only buttons (info, close, delete)
479
- ============================================ */
480
- .btn-icon {
481
- border-color: transparent;
482
- background-color: transparent;
483
- --tw-shadow: 0 0 #0000;
484
- --tw-shadow-colored: 0 0 #0000;
485
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
486
- }
487
- .btn-icon:hover:not(:disabled) {
488
- background-color: hsl(var(--BG-Tertiary));
489
- }
490
- .btn-icon:active:not(:disabled) {
491
- background-color: hsl(var(--BG-Quaternary));
492
- }
493
-
494
- /* Dark mode overrides for icon button */
495
- :global(.dark) .btn-icon,
496
- :global(.performer-portal.dark) .btn-icon {
497
- background-color: transparent;
498
- }
499
- :global(.dark) .btn-icon:hover,
500
- :global(.performer-portal.dark) .btn-icon:hover {
501
- background-color: #1f2937;
502
- }
503
- :global(.dark) .btn-icon:active,
504
- :global(.performer-portal.dark) .btn-icon:active {
505
- background-color: #374151;
506
- }
507
-
508
- /* ============================================
509
- TOGGLE VARIANT
510
- For toggle pills (day-of-week selectors, etc.)
511
- ============================================ */
512
- .btn-toggle {
513
- border-width: 1px;
514
- border-color: hsl(var(--sidebar-border));
515
- background-color: hsl(var(--BG-Tertiary));
516
- color: hsl(var(--Text-Secondary));
517
- }
518
- .btn-toggle:hover:not(:disabled) {
519
- background-color: hsl(var(--BG-Quaternary));
520
- }
521
- .btn-toggle:active:not(:disabled) {
522
- background-color: hsl(var(--BG-Quaternary));
523
- }
524
-
525
- /* Active state for toggle buttons */
526
- .btn-toggle.btn-active {
527
- --tw-border-opacity: 1;
528
- border-color: rgb(2 132 254 / var(--tw-border-opacity, 1));
529
- --tw-bg-opacity: 1;
530
- background-color: rgb(2 132 254 / var(--tw-bg-opacity, 1));
531
- --tw-text-opacity: 1;
532
- color: rgb(255 255 255 / var(--tw-text-opacity, 1));
533
- }
534
- .btn-toggle.btn-active:hover:not(:disabled) {
535
- --tw-border-opacity: 1;
536
- border-color: rgb(30 64 175 / var(--tw-border-opacity, 1));
537
- --tw-bg-opacity: 1;
538
- background-color: rgb(30 64 175 / var(--tw-bg-opacity, 1));
539
- }
540
-
541
- /* Dark mode overrides for toggle button */
542
- :global(.dark) .btn-toggle,
543
- :global(.performer-portal.dark) .btn-toggle {
544
- background-color: #1f2937;
545
- color: #9ca3af;
546
- border-color: #374151;
547
- }
548
- :global(.dark) .btn-toggle:hover,
549
- :global(.performer-portal.dark) .btn-toggle:hover {
550
- background-color: #374151;
551
- }
552
- :global(.dark) .btn-toggle.btn-active,
553
- :global(.performer-portal.dark) .btn-toggle.btn-active {
554
- background-color: #3b82f6;
555
- color: white;
556
- border-color: #3b82f6;
557
- }
558
- :global(.dark) .btn-toggle.btn-active:hover,
559
- :global(.performer-portal.dark) .btn-toggle.btn-active:hover {
560
- background-color: #2563eb;
561
- border-color: #2563eb;
562
- }
563
-
564
439
  /* ============================================
565
440
  ACTIVE STATE (for nav items)
566
441
  Shows selected/current page state
@@ -730,14 +605,6 @@
730
605
  display: inline-flex;
731
606
  align-items: center;
732
607
  gap: 0.375rem; /* 6px - matches gap-1.5 */
733
- white-space: nowrap;
734
- }
735
-
736
- /* Default icon sizing for SVGs in buttons - !important to override inline Tailwind classes */
737
- .btn-content :global(svg) {
738
- width: 1rem !important; /* 16px - w-4 */
739
- height: 1rem !important; /* 16px - h-4 */
740
- flex-shrink: 0;
741
608
  }
742
609
 
743
610
  @media (min-width: 640px) {
@@ -4,7 +4,6 @@ type Button = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
4
4
  size?: string | undefined;
5
5
  className?: string | undefined;
6
6
  variant?: string | undefined;
7
- shape?: string | undefined;
8
7
  success?: boolean | undefined;
9
8
  minWidth?: string | undefined;
10
9
  disabled?: boolean | undefined;
@@ -35,7 +34,6 @@ declare const Button: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWit
35
34
  size?: string | undefined;
36
35
  className?: string | undefined;
37
36
  variant?: string | undefined;
38
- shape?: string | undefined;
39
37
  success?: boolean | undefined;
40
38
  minWidth?: string | undefined;
41
39
  disabled?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Button/Button.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuPA;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAAiS;sCAT3P,KAAK,EAAE,KAAK;;;;;6CALL,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ;IAC3L,cAAc,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,WAAW,OAAO,SAAS,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Button.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Button/Button.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmNA;;;;;;;;;;;;;;;;;;;;;;;;;;;eAAyR;sCATnP,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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Calendar.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Calendar/Calendar.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,131 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { render, screen } from '@testing-library/svelte';
3
+
4
+ // Mock FullCalendar since it's complex and requires DOM
5
+ vi.mock('@fullcalendar/core', () => ({
6
+ Calendar: vi.fn().mockImplementation(() => ({
7
+ render: vi.fn(),
8
+ destroy: vi.fn(),
9
+ next: vi.fn(),
10
+ prev: vi.fn(),
11
+ today: vi.fn(),
12
+ getDate: vi.fn(() => new Date()),
13
+ changeView: vi.fn(),
14
+ })),
15
+ }));
16
+
17
+ vi.mock('@fullcalendar/daygrid', () => ({
18
+ default: {},
19
+ }));
20
+
21
+ vi.mock('@fullcalendar/interaction', () => ({
22
+ default: {},
23
+ }));
24
+
25
+ vi.mock('$app/environment', () => ({
26
+ browser: true,
27
+ }));
28
+
29
+ // Import after mocks
30
+ import Calendar from './Calendar.svelte';
31
+
32
+ describe('Calendar', () => {
33
+ describe('basic rendering', () => {
34
+ it('renders calendar container', () => {
35
+ const { container } = render(Calendar);
36
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
37
+ });
38
+
39
+ it('renders with default variant availability', () => {
40
+ const { container } = render(Calendar);
41
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
42
+ });
43
+ });
44
+
45
+ describe('props', () => {
46
+ it('accepts variant prop', () => {
47
+ const { container } = render(Calendar, { variant: 'scheduler' });
48
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
49
+ });
50
+
51
+ it('accepts view prop', () => {
52
+ const { container } = render(Calendar, { view: 'dayGridMonth' });
53
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
54
+ });
55
+
56
+ it('accepts events prop', () => {
57
+ const events = [
58
+ { title: 'Event 1', start: '2025-01-01' },
59
+ { title: 'Event 2', start: '2025-01-02' },
60
+ ];
61
+ const { container } = render(Calendar, { events });
62
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
63
+ });
64
+
65
+ it('accepts selectedDates prop', () => {
66
+ const selectedDates = ['2025-01-01', '2025-01-02'];
67
+ const { container } = render(Calendar, { selectedDates });
68
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
69
+ });
70
+
71
+ it('accepts compact prop', () => {
72
+ const { container } = render(Calendar, { compact: true });
73
+ // Component renders with compact mode - verify container exists
74
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
75
+ });
76
+
77
+ it('accepts readOnly prop', () => {
78
+ const { container } = render(Calendar, { readOnly: true });
79
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
80
+ });
81
+
82
+ it('accepts showNavigation prop', () => {
83
+ const { container } = render(Calendar, { showNavigation: false });
84
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
85
+ });
86
+
87
+ it('accepts showLegend prop', () => {
88
+ const { container } = render(Calendar, { showLegend: false });
89
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
90
+ });
91
+ });
92
+
93
+ describe('variant styles', () => {
94
+ it('renders availability variant', () => {
95
+ const { container } = render(Calendar, { variant: 'availability' });
96
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
97
+ });
98
+
99
+ it('renders scheduler variant', () => {
100
+ const { container } = render(Calendar, { variant: 'scheduler' });
101
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
102
+ });
103
+
104
+ it('renders display variant', () => {
105
+ const { container } = render(Calendar, { variant: 'display' });
106
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
107
+ });
108
+
109
+ it('renders public variant', () => {
110
+ const { container } = render(Calendar, { variant: 'public' });
111
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
112
+ });
113
+ });
114
+
115
+ describe('saveStatus states', () => {
116
+ it('handles saving status', () => {
117
+ const { container } = render(Calendar, { saveStatus: 'saving' });
118
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
119
+ });
120
+
121
+ it('handles saved status', () => {
122
+ const { container } = render(Calendar, { saveStatus: 'saved' });
123
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
124
+ });
125
+
126
+ it('handles empty status', () => {
127
+ const { container } = render(Calendar, { saveStatus: '' });
128
+ expect(container.querySelector('.calendar-wrapper')).toBeTruthy();
129
+ });
130
+ });
131
+ });