@getmicdrop/svelte-components 5.18.0 → 5.19.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 (476) hide show
  1. package/dist/calendar/AboutShow/AboutShow.svelte +191 -187
  2. package/dist/calendar/AboutShow/AboutShow.svelte.d.ts +2 -2
  3. package/dist/calendar/AboutShow/AboutShow.svelte.d.ts.map +1 -1
  4. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +801 -780
  5. package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts +4 -0
  6. package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
  7. package/dist/calendar/FAQs/FAQs.svelte +88 -77
  8. package/dist/calendar/FAQs/FAQs.svelte.d.ts +6 -4
  9. package/dist/calendar/FAQs/FAQs.svelte.d.ts.map +1 -1
  10. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +140 -125
  11. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts +2 -0
  12. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -1
  13. package/dist/calendar/OrderSummary/OrderSummary.spec.js +3 -3
  14. package/dist/calendar/OrderSummary/OrderSummary.svelte +461 -457
  15. package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts +4 -2
  16. package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts.map +1 -1
  17. package/dist/calendar/PublicCard/PublicCard.svelte +164 -155
  18. package/dist/calendar/PublicCard/PublicCard.svelte.d.ts +4 -0
  19. package/dist/calendar/PublicCard/PublicCard.svelte.d.ts.map +1 -1
  20. package/dist/calendar/ShowCard/ShowCard.svelte +180 -166
  21. package/dist/calendar/ShowCard/ShowCard.svelte.d.ts +4 -0
  22. package/dist/calendar/ShowCard/ShowCard.svelte.d.ts.map +1 -1
  23. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +80 -72
  24. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts +4 -0
  25. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -1
  26. package/dist/calendar/index.js +15 -15
  27. package/dist/components/Heading.spec.js +89 -89
  28. package/dist/components/Heading.svelte +60 -60
  29. package/dist/components/Layout/AppShell.svelte +104 -104
  30. package/dist/components/Layout/ContentSection.svelte +80 -80
  31. package/dist/components/Layout/Grid.svelte +101 -101
  32. package/dist/components/Layout/Heading.svelte +81 -81
  33. package/dist/components/Layout/PageContainer.svelte +69 -69
  34. package/dist/components/Layout/Responsive.svelte +75 -75
  35. package/dist/components/Layout/Section.svelte +80 -80
  36. package/dist/components/Layout/ShowOnDesktop.svelte +37 -37
  37. package/dist/components/Layout/ShowOnMobile.svelte +37 -37
  38. package/dist/components/Layout/Sidebar.svelte +108 -108
  39. package/dist/components/Layout/Stack.spec.js +1 -1
  40. package/dist/components/Layout/Stack.svelte +52 -52
  41. package/dist/components/Layout/Text.svelte +87 -87
  42. package/dist/components/Layout/TwoColumn.svelte +108 -108
  43. package/dist/components/Text.spec.js +89 -89
  44. package/dist/components/Text.svelte +53 -53
  45. package/dist/config.js +151 -151
  46. package/dist/config.spec.js +29 -29
  47. package/dist/constants/formOptions.js +48 -48
  48. package/dist/constants/validation.js +91 -91
  49. package/dist/constants/validation.spec.js +64 -64
  50. package/dist/datetime/README.md +323 -323
  51. package/dist/datetime/__tests__/format.test.js +1 -1
  52. package/dist/datetime/__tests__/parse.test.js +1 -1
  53. package/dist/datetime/__tests__/timezone.test.js +1 -1
  54. package/dist/datetime/parse.js +1 -1
  55. package/dist/forms/createFormStore.svelte.js +1 -0
  56. package/dist/forms/createFormStore.svelte.spec.js +1 -0
  57. package/dist/index.d.ts +1 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +66 -57
  60. package/dist/index.spec.js +369 -369
  61. package/dist/patterns/chat/ChatActivityNotice.spec.js +59 -59
  62. package/dist/patterns/chat/ChatActivityNotice.svelte +41 -41
  63. package/dist/patterns/chat/ChatBubble.spec.js +91 -91
  64. package/dist/patterns/chat/ChatBubble.svelte +103 -95
  65. package/dist/patterns/chat/ChatBubble.svelte.d.ts +6 -4
  66. package/dist/patterns/chat/ChatBubble.svelte.d.ts.map +1 -1
  67. package/dist/patterns/chat/ChatContainer.spec.js +30 -30
  68. package/dist/patterns/chat/ChatContainer.svelte +46 -46
  69. package/dist/patterns/chat/ChatDateDivider.spec.js +30 -30
  70. package/dist/patterns/chat/ChatDateDivider.svelte +27 -27
  71. package/dist/patterns/chat/ChatInvitationBubble.spec.js +46 -46
  72. package/dist/patterns/chat/ChatInvitationBubble.svelte +46 -37
  73. package/dist/patterns/chat/ChatInvitationBubble.svelte.d.ts +6 -3
  74. package/dist/patterns/chat/ChatInvitationBubble.svelte.d.ts.map +1 -1
  75. package/dist/patterns/chat/ChatInvitationNotice.spec.js +32 -32
  76. package/dist/patterns/chat/ChatInvitationNotice.svelte +36 -27
  77. package/dist/patterns/chat/ChatInvitationNotice.svelte.d.ts +6 -3
  78. package/dist/patterns/chat/ChatInvitationNotice.svelte.d.ts.map +1 -1
  79. package/dist/patterns/chat/ChatMessageGroup.spec.js +58 -58
  80. package/dist/patterns/chat/ChatMessageGroup.svelte +57 -57
  81. package/dist/patterns/chat/ChatSlotUpdate.spec.js +65 -65
  82. package/dist/patterns/chat/ChatSlotUpdate.svelte +46 -46
  83. package/dist/patterns/chat/ChatStatusBadge.spec.js +79 -79
  84. package/dist/patterns/chat/ChatStatusBadge.svelte +91 -91
  85. package/dist/patterns/chat/ChatStatusTransition.spec.js +81 -81
  86. package/dist/patterns/chat/ChatStatusTransition.svelte +64 -64
  87. package/dist/patterns/chat/ChatTextBubble.spec.js +35 -35
  88. package/dist/patterns/chat/ChatTextBubble.svelte +41 -41
  89. package/dist/patterns/chat/index.js +22 -22
  90. package/dist/patterns/data/DataGrid.svelte +45 -45
  91. package/dist/patterns/data/DataList.svelte +24 -24
  92. package/dist/patterns/data/DataTable.svelte +45 -45
  93. package/dist/patterns/data/index.js +4 -4
  94. package/dist/patterns/forms/FormActions.spec.js +95 -95
  95. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  96. package/dist/patterns/forms/FormActions.svelte +46 -46
  97. package/dist/patterns/forms/FormGrid.svelte +33 -33
  98. package/dist/patterns/forms/FormSection.svelte +32 -32
  99. package/dist/patterns/forms/FormValidationSummary.stories.svelte +97 -97
  100. package/dist/patterns/forms/FormValidationSummary.svelte +82 -74
  101. package/dist/patterns/forms/FormValidationSummary.svelte.d.ts +5 -3
  102. package/dist/patterns/forms/FormValidationSummary.svelte.d.ts.map +1 -1
  103. package/dist/patterns/forms/index.js +5 -5
  104. package/dist/patterns/index.js +21 -21
  105. package/dist/patterns/layout/Sidebar.svelte +39 -39
  106. package/dist/patterns/layout/SidebarTestWrapper.svelte +34 -34
  107. package/dist/patterns/layout/SidebarTestWrapper.svelte.d.ts +1 -1
  108. package/dist/patterns/layout/Stack.svelte +61 -61
  109. package/dist/patterns/layout/index.js +29 -29
  110. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  111. package/dist/patterns/navigation/BottomNav.svelte +82 -74
  112. package/dist/patterns/navigation/BottomNav.svelte.d.ts +10 -9
  113. package/dist/patterns/navigation/BottomNav.svelte.d.ts.map +1 -1
  114. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  115. package/dist/patterns/navigation/Header.svelte +263 -251
  116. package/dist/patterns/navigation/Header.svelte.d.ts +17 -9
  117. package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
  118. package/dist/patterns/navigation/index.js +3 -3
  119. package/dist/patterns/page/PageHeader.svelte +49 -49
  120. package/dist/patterns/page/PageLayout.svelte +40 -40
  121. package/dist/patterns/page/PageLoader.spec.js +57 -57
  122. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  123. package/dist/patterns/page/PageLoader.svelte +62 -53
  124. package/dist/patterns/page/PageLoader.svelte.d.ts +6 -3
  125. package/dist/patterns/page/PageLoader.svelte.d.ts.map +1 -1
  126. package/dist/patterns/page/SectionHeader.svelte +51 -51
  127. package/dist/patterns/page/index.js +5 -5
  128. package/dist/presets/badges.js +112 -112
  129. package/dist/presets/buttons.js +76 -76
  130. package/dist/presets/index.js +9 -9
  131. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  132. package/dist/primitives/Accordion/Accordion.svelte +62 -62
  133. package/dist/primitives/Accordion/AccordionItem.svelte +103 -95
  134. package/dist/primitives/Accordion/AccordionItem.svelte.d.ts +6 -4
  135. package/dist/primitives/Accordion/AccordionItem.svelte.d.ts.map +1 -1
  136. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte +107 -107
  137. package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte +28 -28
  138. package/dist/primitives/Alert/Alert.spec.js +173 -173
  139. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  140. package/dist/primitives/Alert/Alert.svelte +72 -64
  141. package/dist/primitives/Alert/Alert.svelte.d.ts +6 -4
  142. package/dist/primitives/Alert/Alert.svelte.d.ts.map +1 -1
  143. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  144. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  145. package/dist/primitives/AvatarButton/AvatarButton.svelte +57 -57
  146. package/dist/primitives/Badges/Badge.spec.js +144 -144
  147. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  148. package/dist/primitives/Badges/Badge.svelte +99 -99
  149. package/dist/primitives/BottomSheet/BottomSheet.spec.js +238 -238
  150. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  151. package/dist/primitives/BottomSheet/BottomSheet.svelte +115 -115
  152. package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte +20 -20
  153. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +123 -123
  154. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  155. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +107 -99
  156. package/dist/primitives/Breadcrumb/Breadcrumb.svelte.d.ts +13 -9
  157. package/dist/primitives/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  158. package/dist/primitives/Button/Button.spec.js +225 -225
  159. package/dist/primitives/Button/Button.stories.svelte +76 -76
  160. package/dist/primitives/Button/Button.svelte +278 -278
  161. package/dist/primitives/Button/ButtonGroup.spec.js +44 -44
  162. package/dist/primitives/Button/ButtonGroup.svelte +50 -50
  163. package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
  164. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  165. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  166. package/dist/primitives/Card.spec.js +49 -49
  167. package/dist/primitives/Card.stories.svelte +22 -22
  168. package/dist/primitives/Card.svelte +28 -28
  169. package/dist/primitives/CardAction/CardAction.svelte +68 -68
  170. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  171. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  172. package/dist/primitives/DarkModeToggle.spec.js +390 -390
  173. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  174. package/dist/primitives/DarkModeToggle.svelte +147 -136
  175. package/dist/primitives/DarkModeToggle.svelte.d.ts +9 -3
  176. package/dist/primitives/DarkModeToggle.svelte.d.ts.map +1 -1
  177. package/dist/primitives/Drawer/Drawer.stories.svelte +100 -100
  178. package/dist/primitives/Drawer/Drawer.svelte +224 -224
  179. package/dist/primitives/Drawer/DrawerTestWrapper.svelte +86 -86
  180. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  181. package/dist/primitives/Dropdown/Dropdown.svelte +179 -170
  182. package/dist/primitives/Dropdown/Dropdown.svelte.d.ts +7 -4
  183. package/dist/primitives/Dropdown/Dropdown.svelte.d.ts.map +1 -1
  184. package/dist/primitives/Dropdown/DropdownDivider.spec.js +30 -30
  185. package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
  186. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  187. package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte +43 -43
  188. package/dist/primitives/Helper/Helper.spec.js +57 -57
  189. package/dist/primitives/Helper/Helper.svelte +33 -33
  190. package/dist/primitives/Icons/ArrowLeft.svelte +21 -21
  191. package/dist/primitives/Icons/ArrowRight.svelte +21 -21
  192. package/dist/primitives/Icons/Availability.svelte +27 -27
  193. package/dist/primitives/Icons/Back.svelte +27 -27
  194. package/dist/primitives/Icons/CheckCircle.svelte +19 -19
  195. package/dist/primitives/Icons/CheckCircleOutline.svelte +28 -28
  196. package/dist/primitives/Icons/ChevronLeft.svelte +17 -17
  197. package/dist/primitives/Icons/ChevronRight.svelte +17 -17
  198. package/dist/primitives/Icons/Copy.svelte +28 -28
  199. package/dist/primitives/Icons/Cross.svelte +18 -18
  200. package/dist/primitives/Icons/DownArrow.svelte +21 -21
  201. package/dist/primitives/Icons/ErrorCircle.svelte +19 -19
  202. package/dist/primitives/Icons/FacebookIcon.svelte +15 -15
  203. package/dist/primitives/Icons/Home.svelte +28 -28
  204. package/dist/primitives/Icons/Icon.spec.js +175 -175
  205. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  206. package/dist/primitives/Icons/Icon.svelte +79 -79
  207. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  208. package/dist/primitives/Icons/ImageOutline.svelte +21 -21
  209. package/dist/primitives/Icons/Info.svelte +20 -20
  210. package/dist/primitives/Icons/InstagramIcon.svelte +21 -21
  211. package/dist/primitives/Icons/LogoInstagram.svelte +15 -15
  212. package/dist/primitives/Icons/Message.svelte +28 -28
  213. package/dist/primitives/Icons/MoonIcon.svelte +18 -18
  214. package/dist/primitives/Icons/More.svelte +34 -34
  215. package/dist/primitives/Icons/MoreHori.spec.js +67 -67
  216. package/dist/primitives/Icons/MoreHori.svelte +35 -35
  217. package/dist/primitives/Icons/Notification.svelte +27 -27
  218. package/dist/primitives/Icons/Payment.svelte +27 -27
  219. package/dist/primitives/Icons/Profile.svelte +34 -34
  220. package/dist/primitives/Icons/Reload.svelte +42 -42
  221. package/dist/primitives/Icons/Shows.svelte +34 -34
  222. package/dist/primitives/Icons/Signout.svelte +34 -34
  223. package/dist/primitives/Icons/SunIcon.svelte +21 -21
  224. package/dist/primitives/Icons/TiktokIcon.svelte +15 -15
  225. package/dist/primitives/Icons/TrashBinOutline.svelte +21 -21
  226. package/dist/primitives/Icons/TwitterIcon.svelte +15 -15
  227. package/dist/primitives/Icons/WarningIcon.spec.js +30 -30
  228. package/dist/primitives/Icons/WarningIcon.svelte +24 -24
  229. package/dist/primitives/Input/Input.spec.js +1237 -1237
  230. package/dist/primitives/Input/Input.stories.svelte +139 -139
  231. package/dist/primitives/Input/Input.svelte +444 -431
  232. package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
  233. package/dist/primitives/Input/Select.spec.js +632 -632
  234. package/dist/primitives/Input/Select.stories.svelte +112 -112
  235. package/dist/primitives/Input/Select.svelte +252 -252
  236. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  237. package/dist/primitives/Input/Textarea.svelte +105 -105
  238. package/dist/primitives/Label/Label.svelte +37 -37
  239. package/dist/primitives/LandingButton/LandingButton.spec.js +61 -61
  240. package/dist/primitives/LandingButton/LandingButton.svelte +92 -92
  241. package/dist/primitives/MenuItem/MenuItem.spec.js +130 -130
  242. package/dist/primitives/MenuItem/MenuItem.svelte +85 -85
  243. package/dist/primitives/Modal/Modal.spec.js +314 -314
  244. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  245. package/dist/primitives/Modal/Modal.svelte +181 -181
  246. package/dist/primitives/NavItem/NavItem.spec.js +97 -97
  247. package/dist/primitives/NavItem/NavItem.svelte +75 -75
  248. package/dist/primitives/NumberInput/NumberInput.svelte +113 -105
  249. package/dist/primitives/NumberInput/NumberInput.svelte.d.ts.map +1 -1
  250. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  251. package/dist/primitives/Pagination/Pagination.svelte +275 -261
  252. package/dist/primitives/Pagination/Pagination.svelte.d.ts +14 -6
  253. package/dist/primitives/Pagination/Pagination.svelte.d.ts.map +1 -1
  254. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  255. package/dist/primitives/Radio/Radio.svelte +67 -67
  256. package/dist/primitives/SearchResultItem/SearchResultItem.spec.js +78 -78
  257. package/dist/primitives/SearchResultItem/SearchResultItem.svelte +109 -109
  258. package/dist/primitives/SidebarToggle/SidebarToggle.spec.js +61 -61
  259. package/dist/primitives/SidebarToggle/SidebarToggle.svelte +55 -55
  260. package/dist/primitives/Skeleton/CardPlaceholder.svelte +96 -87
  261. package/dist/primitives/Skeleton/CardPlaceholder.svelte.d.ts +8 -5
  262. package/dist/primitives/Skeleton/CardPlaceholder.svelte.d.ts.map +1 -1
  263. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +68 -59
  264. package/dist/primitives/Skeleton/ImagePlaceholder.svelte.d.ts +8 -5
  265. package/dist/primitives/Skeleton/ImagePlaceholder.svelte.d.ts.map +1 -1
  266. package/dist/primitives/Skeleton/ListPlaceholder.svelte +85 -76
  267. package/dist/primitives/Skeleton/ListPlaceholder.svelte.d.ts +8 -5
  268. package/dist/primitives/Skeleton/ListPlaceholder.svelte.d.ts.map +1 -1
  269. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  270. package/dist/primitives/Skeleton/Skeleton.svelte +55 -46
  271. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts +7 -4
  272. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts.map +1 -1
  273. package/dist/primitives/Spinner/Spinner.spec.js +84 -84
  274. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  275. package/dist/primitives/Spinner/Spinner.svelte +52 -44
  276. package/dist/primitives/Spinner/Spinner.svelte.d.ts +6 -4
  277. package/dist/primitives/Spinner/Spinner.svelte.d.ts.map +1 -1
  278. package/dist/primitives/Tabs/TabItem.svelte +52 -52
  279. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  280. package/dist/primitives/Tabs/Tabs.svelte +137 -137
  281. package/dist/primitives/Toggle.spec.js +221 -221
  282. package/dist/primitives/Toggle.stories.svelte +92 -92
  283. package/dist/primitives/Toggle.svelte +141 -141
  284. package/dist/primitives/ToggleTestWrapper.svelte +30 -30
  285. package/dist/primitives/Tooltip/Tooltip.spec.js +126 -126
  286. package/dist/primitives/Tooltip/Tooltip.svelte +83 -83
  287. package/dist/primitives/Typography/Typography.svelte +53 -53
  288. package/dist/primitives/ValidationError.spec.js +103 -103
  289. package/dist/primitives/ValidationError.stories.svelte +112 -112
  290. package/dist/primitives/ValidationError.svelte +29 -29
  291. package/dist/primitives/index.js +113 -113
  292. package/dist/recipes/CropImage/CropImage.spec.js +208 -208
  293. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  294. package/dist/recipes/CropImage/CropImage.svelte +241 -241
  295. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  296. package/dist/recipes/ImageUploader/ImageUploader.svelte +994 -992
  297. package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts +1 -0
  298. package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts.map +1 -1
  299. package/dist/recipes/SuperLogin/SuperLogin.svelte +25 -23
  300. package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
  301. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  302. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +75 -66
  303. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts +7 -4
  304. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
  305. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  306. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +113 -113
  307. package/dist/recipes/feedback/ErrorDisplay.svelte +67 -67
  308. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
  309. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +176 -176
  310. package/dist/recipes/feedback/index.js +4 -4
  311. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  312. package/dist/recipes/fields/FormField.svelte +58 -58
  313. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  314. package/dist/recipes/fields/SelectField.svelte +82 -82
  315. package/dist/recipes/fields/TextareaField.svelte +101 -101
  316. package/dist/recipes/fields/ToggleField.svelte +60 -60
  317. package/dist/recipes/fields/index.js +7 -7
  318. package/dist/recipes/index.js +24 -24
  319. package/dist/recipes/inputs/MultiSelect.spec.js +263 -263
  320. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  321. package/dist/recipes/inputs/MultiSelect.svelte +291 -283
  322. package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
  323. package/dist/recipes/inputs/OTPInput.spec.js +251 -251
  324. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  325. package/dist/recipes/inputs/OTPInput.svelte +128 -117
  326. package/dist/recipes/inputs/OTPInput.svelte.d.ts +14 -12
  327. package/dist/recipes/inputs/OTPInput.svelte.d.ts.map +1 -1
  328. package/dist/recipes/inputs/PasswordInput.svelte +130 -121
  329. package/dist/recipes/inputs/PasswordInput.svelte.d.ts +7 -4
  330. package/dist/recipes/inputs/PasswordInput.svelte.d.ts.map +1 -1
  331. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +142 -131
  332. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +8 -3
  333. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -1
  334. package/dist/recipes/inputs/PhoneInput.svelte +254 -258
  335. package/dist/recipes/inputs/PhoneInput.svelte.d.ts +0 -2
  336. package/dist/recipes/inputs/PhoneInput.svelte.d.ts.map +1 -1
  337. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +170 -170
  338. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +349 -336
  339. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts +21 -16
  340. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
  341. package/dist/recipes/inputs/Search.svelte +110 -102
  342. package/dist/recipes/inputs/Search.svelte.d.ts +7 -5
  343. package/dist/recipes/inputs/Search.svelte.d.ts.map +1 -1
  344. package/dist/recipes/inputs/index.js +8 -8
  345. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte +240 -297
  346. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts +0 -2
  347. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts.map +1 -1
  348. package/dist/recipes/inputs/phoneInput/countryData.d.ts +0 -2
  349. package/dist/recipes/inputs/phoneInput/countryData.d.ts.map +1 -1
  350. package/dist/recipes/inputs/phoneInput/countryData.js +3 -3
  351. package/dist/recipes/modals/AlertModal.svelte +139 -130
  352. package/dist/recipes/modals/AlertModal.svelte.d.ts +4 -2
  353. package/dist/recipes/modals/AlertModal.svelte.d.ts.map +1 -1
  354. package/dist/recipes/modals/ConfirmationModal.spec.js +396 -396
  355. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  356. package/dist/recipes/modals/ConfirmationModal.svelte +169 -162
  357. package/dist/recipes/modals/ConfirmationModal.svelte.d.ts +2 -0
  358. package/dist/recipes/modals/ConfirmationModal.svelte.d.ts.map +1 -1
  359. package/dist/recipes/modals/InputModal.svelte +194 -182
  360. package/dist/recipes/modals/InputModal.svelte.d.ts +6 -4
  361. package/dist/recipes/modals/InputModal.svelte.d.ts.map +1 -1
  362. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  363. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  364. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  365. package/dist/recipes/modals/StatusModal.svelte +216 -206
  366. package/dist/recipes/modals/StatusModal.svelte.d.ts +4 -2
  367. package/dist/recipes/modals/StatusModal.svelte.d.ts.map +1 -1
  368. package/dist/recipes/modals/index.js +7 -7
  369. package/dist/schemas/common.js +1 -1
  370. package/dist/schemas/event.d.ts +4 -4
  371. package/dist/schemas/event.js +1 -1
  372. package/dist/schemas/order.d.ts +2 -2
  373. package/dist/schemas/order.js +1 -0
  374. package/dist/schemas/performer.js +1 -1
  375. package/dist/schemas/promo.d.ts +4 -4
  376. package/dist/schemas/promo.js +2 -2
  377. package/dist/schemas/ticket.js +1 -1
  378. package/dist/schemas/user.js +2 -1
  379. package/dist/services/event.service.d.ts +11 -0
  380. package/dist/services/event.service.d.ts.map +1 -0
  381. package/dist/services/event.service.js +64 -0
  382. package/dist/services/event.service.spec.d.ts +2 -0
  383. package/dist/services/event.service.spec.d.ts.map +1 -0
  384. package/dist/services/event.service.spec.js +168 -0
  385. package/dist/services/{ShowService.d.ts → show.service.d.ts} +47 -47
  386. package/dist/services/show.service.d.ts.map +1 -0
  387. package/dist/services/show.service.js +115 -0
  388. package/dist/services/show.service.spec.d.ts +2 -0
  389. package/dist/services/show.service.spec.d.ts.map +1 -0
  390. package/dist/services/show.service.spec.js +242 -0
  391. package/dist/stores/auth.d.ts +8 -8
  392. package/dist/stores/auth.svelte.spec.js +1 -1
  393. package/dist/stores/index.js +9 -9
  394. package/dist/stores/toaster.d.ts +3 -3
  395. package/dist/stores/toaster.js +13 -13
  396. package/dist/stores/toaster.spec.js +59 -59
  397. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  398. package/dist/stories/ButtonAuditReview.svelte +427 -427
  399. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  400. package/dist/stories/PatternsGallery.svelte +399 -399
  401. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  402. package/dist/stories/PrimitivesGallery.svelte +756 -756
  403. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  404. package/dist/stories/RecipesGallery.svelte +454 -454
  405. package/dist/stories/button-audit-manifest.json +11186 -11186
  406. package/dist/tailwind/preset.cjs +82 -82
  407. package/dist/telemetry.js +402 -402
  408. package/dist/telemetry.server.js +212 -212
  409. package/dist/telemetry.server.spec.js +437 -437
  410. package/dist/telemetry.spec.js +1173 -1173
  411. package/dist/tokens/tokens.css +87 -87
  412. package/dist/tokens/typography-base.css +163 -163
  413. package/dist/tokens/utilities.css +353 -353
  414. package/dist/utils/__tests__/auth.test.js +431 -431
  415. package/dist/utils/apiConfig.d.ts +29 -29
  416. package/dist/utils/apiConfig.js +117 -117
  417. package/dist/utils/apiConfig.spec.js +219 -219
  418. package/dist/utils/assets.d.ts +3 -0
  419. package/dist/utils/assets.d.ts.map +1 -0
  420. package/dist/utils/assets.js +3 -0
  421. package/dist/utils/auth.d.ts +46 -46
  422. package/dist/utils/auth.js +195 -195
  423. package/dist/utils/classNames.d.ts +10 -0
  424. package/dist/utils/classNames.d.ts.map +1 -0
  425. package/dist/utils/classNames.js +15 -0
  426. package/dist/utils/cookieHelpers.d.ts +40 -0
  427. package/dist/utils/cookieHelpers.d.ts.map +1 -0
  428. package/dist/utils/cookieHelpers.js +102 -0
  429. package/dist/utils/dateHelpers.d.ts +71 -0
  430. package/dist/utils/dateHelpers.d.ts.map +1 -0
  431. package/dist/utils/dateHelpers.js +253 -0
  432. package/dist/utils/eventFormatters.d.ts +9 -0
  433. package/dist/utils/eventFormatters.d.ts.map +1 -0
  434. package/dist/utils/eventFormatters.js +96 -0
  435. package/dist/utils/fetchHelpers.d.ts +17 -0
  436. package/dist/utils/fetchHelpers.d.ts.map +1 -0
  437. package/dist/utils/fetchHelpers.js +44 -0
  438. package/dist/utils/formatters.d.ts +62 -0
  439. package/dist/utils/formatters.d.ts.map +1 -1
  440. package/dist/utils/formatters.js +128 -0
  441. package/dist/utils/formatters.spec.js +128 -1
  442. package/dist/utils/greetings.js +187 -187
  443. package/dist/utils/greetings.spec.js +337 -337
  444. package/dist/utils/haptic.spec.js +1 -1
  445. package/dist/utils/imageValidation.js +121 -121
  446. package/dist/utils/imageValidation.spec.js +223 -223
  447. package/dist/utils/permissions.d.ts +9 -0
  448. package/dist/utils/permissions.d.ts.map +1 -0
  449. package/dist/utils/permissions.js +93 -0
  450. package/dist/utils/portal.d.ts +11 -11
  451. package/dist/utils/portal.js +25 -25
  452. package/dist/utils/portal.spec.js +143 -143
  453. package/dist/utils/stringHelpers.d.ts +17 -0
  454. package/dist/utils/stringHelpers.d.ts.map +1 -0
  455. package/dist/utils/stringHelpers.js +38 -0
  456. package/dist/utils/transitions.js +4 -4
  457. package/dist/utils/utils/utils.d.ts +2 -73
  458. package/dist/utils/utils/utils.d.ts.map +1 -1
  459. package/dist/utils/utils/utils.js +3 -3
  460. package/dist/utils/utils/utils.spec.js +698 -698
  461. package/dist/utils/utils.d.ts +41 -98
  462. package/dist/utils/utils.d.ts.map +1 -1
  463. package/dist/utils/utils.js +59 -693
  464. package/dist/utils/utils.spec.js +643 -643
  465. package/package.json +301 -297
  466. package/dist/services/EventService.d.ts +0 -5
  467. package/dist/services/EventService.d.ts.map +0 -1
  468. package/dist/services/EventService.js +0 -79
  469. package/dist/services/EventService.spec.d.ts +0 -2
  470. package/dist/services/EventService.spec.d.ts.map +0 -1
  471. package/dist/services/EventService.spec.js +0 -217
  472. package/dist/services/ShowService.d.ts.map +0 -1
  473. package/dist/services/ShowService.js +0 -144
  474. package/dist/services/ShowService.spec.d.ts +0 -2
  475. package/dist/services/ShowService.spec.d.ts.map +0 -1
  476. package/dist/services/ShowService.spec.js +0 -345
@@ -1,693 +1,59 @@
1
- import { twMerge } from "tailwind-merge";
2
- import clsx from "clsx";
3
- import EventIcon from "../assets/svg/role/event.svg";
4
- import BookingIcon from "../assets/svg/role/booking.svg";
5
- import EmailIcon from "../assets/svg/role/emails.svg";
6
- import VenueIcon from "../assets/svg/role/venue.svg";
7
- import PayoutIcon from "../assets/svg/role/payout.svg";
8
- import MarketingIcon from "../assets/svg/role/marketing.svg";
9
- import OrdersIcon from "../assets/svg/role/orders.svg";
10
- import OrganisationIcon from "../assets/svg/role/organisation.svg";
11
- import ReportingIcon from "../assets/svg/role/reporting.svg";
12
- import microphonePlaceholder from "../assets/images/microphone.png";
13
-
14
- export function classNames(...classes) {
15
- return classes.filter(Boolean).join(" ");
16
- }
17
-
18
- export function truncateTitle(title, maxLength) {
19
- if (title.length > maxLength) {
20
- return title.slice(0, maxLength) + "...";
21
- }
22
- return title;
23
- }
24
-
25
- export function convertToCustomDateFormat(isoString) {
26
- const date = new Date(isoString);
27
-
28
- const year = date.getUTCFullYear();
29
- const month = date.getUTCMonth();
30
- const day = date.getUTCDate();
31
-
32
- const customDate = new Date(year, month, day);
33
-
34
- return customDate;
35
- }
36
-
37
- export function cn(...inputs) {
38
- return twMerge(clsx(inputs));
39
- }
40
-
41
- export function getDays(params) {
42
- if (params === "weeks") {
43
- return [
44
- { value: "monday", label: "Monday" },
45
- { value: "tuesday", label: "Tuesday" },
46
- { value: "wednesday", label: "Wednesday" },
47
- { value: "thursday", label: "Thursday" },
48
- { value: "friday", label: "Friday" },
49
- ];
50
- } else {
51
- return Array.from({ length: 31 }, (_, i) => {
52
- const day = i + 1;
53
- const suffix =
54
- day % 10 === 1 && day !== 11
55
- ? "st"
56
- : day % 10 === 2 && day !== 12
57
- ? "nd"
58
- : day % 10 === 3 && day !== 13
59
- ? "rd"
60
- : "th";
61
- return {
62
- value: day.toString(),
63
- label: day + suffix,
64
- };
65
- });
66
- }
67
- }
68
-
69
- // Function to get days number options based on selected time unit
70
- export function getDaysNumberOptions(timeUnit) {
71
- if (timeUnit === "months") {
72
- return Array.from({ length: 12 }, (_, i) => ({
73
- value: (i + 1).toString(),
74
- label: (i + 1).toString(),
75
- }));
76
- } else if (timeUnit === "weeks") {
77
- return Array.from({ length: 10 }, (_, i) => ({
78
- value: (i + 1).toString(),
79
- label: (i + 1).toString(),
80
- }));
81
- } else {
82
- return Array.from({ length: 31 }, (_, i) => ({
83
- value: (i + 1).toString(),
84
- label: (i + 1).toString(),
85
- }));
86
- }
87
- }
88
-
89
- export const ROLE_PERMISSION_LIST = [
90
- {
91
- icon: EventIcon,
92
- title: "Event creation",
93
- description:
94
- "Allow users to enter event info, create tickets & customize order forms",
95
- checkbox: [
96
- "Create Events",
97
- "Edit Event Details",
98
- "Manage event status",
99
- "Manage tickets",
100
- "Manage Collections",
101
- ],
102
- },
103
- {
104
- icon: BookingIcon,
105
- title: "Booking",
106
- description:
107
- "Allow users to manage performers, their invitations and statuses",
108
- checkbox: [
109
- "Access the roster page and view performer profiles",
110
- "Edit performer profiles",
111
- "Send booking invitations",
112
- "Manually confirm/decline performers to spots",
113
- "Send avails requests",
114
- ],
115
- },
116
- {
117
- icon: VenueIcon,
118
- title: "Venue creation",
119
- description: "Allow users to create new venues",
120
- checkbox: ["Add/edit/delete venues"],
121
- },
122
- {
123
- icon: MarketingIcon,
124
- title: "Marketing",
125
- description:
126
- "Sell more tickets by creating campaigns, tracking engagements, etc.",
127
- checkbox: [
128
- "Access social media posts",
129
- "Manage tracking links",
130
- "Manage promo codes",
131
- ],
132
- },
133
- {
134
- icon: OrdersIcon,
135
- title: "Orders & attendees",
136
- description:
137
- "Allow users to view, update & refund orders, manage attendee guest or waitlists & release tickets",
138
- checkbox: [
139
- "Add attendees",
140
- "Manage orders, refunds, transfers and attendees",
141
- "View list of attendees",
142
- "Check in attendees",
143
- "Resend confirmation emails",
144
- "Override ticket restrictions",
145
- "Sell tickets at the door",
146
- "Revoke and reissue barcodes",
147
- ],
148
- },
149
- {
150
- icon: OrganisationIcon,
151
- title: "Organization",
152
- description:
153
- "Keep your users organized with assigned permissions per user, enable access to APIs & extensions",
154
- checkbox: [
155
- "Manage organization members & permissions",
156
- "Edit organization infomation",
157
- ],
158
- },
159
- {
160
- icon: EmailIcon,
161
- title: "Contacts",
162
- description:
163
- "Keep our users in the loop, select which emails you would like them to receive",
164
- checkbox: ["Email attendees", "Email/SMS performers"],
165
- },
166
- {
167
- icon: ReportingIcon,
168
- title: "Reporting",
169
- description:
170
- "Allow users to access, filter & export data across your organization",
171
- checkbox: ["Access reports pages"],
172
- },
173
- {
174
- icon: PayoutIcon,
175
- title: "Payouts & billing",
176
- description:
177
- "Users can configure payout methods, manage event payment options & track financials with reporting",
178
- checkbox: ["Manage financial accounts (Stripe)"],
179
- },
180
- ];
181
-
182
- /**
183
- * Parse a location string into street address and city/state/zip components
184
- * @param {string} locationString - Full location string (e.g., "3400 Warner Blvd, Burbank, CA 91505")
185
- * @returns {{street: string, cityStateZip: string}} Parsed location object
186
- */
187
- export function parseLocation(locationString) {
188
- if (!locationString) return { street: '', cityStateZip: '' };
189
-
190
- // Split by comma to separate components
191
- const parts = locationString.split(',').map(part => part.trim());
192
-
193
- if (parts.length >= 3) {
194
- // Format: "3400 Warner Blvd, Burbank, CA 91505"
195
- const street = parts[0];
196
- const cityStateZip = parts.slice(1).join(', ');
197
- return { street, cityStateZip };
198
- } else if (parts.length === 2) {
199
- // Format: "Street, City State Zip"
200
- return { street: parts[0], cityStateZip: parts[1] };
201
- } else {
202
- // Single part or unexpected format
203
- return { street: locationString, cityStateZip: '' };
204
- }
205
- }
206
-
207
- /**
208
- * Set authentication cookies with proper domain and security settings
209
- * @param {string} token - Authentication token
210
- * @param {Object} userDetails - User details object
211
- * @param {boolean} rememberMe - Whether to persist cookies (default true)
212
- * @param {string} refreshToken - Refresh token for token renewal
213
- */
214
- export function setAuthCookies(token, userDetails, rememberMe = true, refreshToken = null) {
215
- const isProd = window.location.hostname.includes("get-micdrop.com");
216
- const domainAttr = isProd ? "domain=.get-micdrop.com;" : "";
217
- const secureAttr = window.location.protocol === "https:" ? "secure;" : "";
218
- const maxAge = rememberMe ? "max-age=2592000;" : ""; // 30 days or session
219
-
220
- document.cookie = `performer_token=${token}; path=/; ${maxAge} ${domainAttr} ${secureAttr} samesite=lax`;
221
- document.cookie = `userDetails=${encodeURIComponent(
222
- JSON.stringify(userDetails),
223
- )}; path=/; ${maxAge} ${domainAttr} ${secureAttr} samesite=lax`;
224
-
225
- // Set refresh token if provided
226
- if (refreshToken) {
227
- document.cookie = `performer_refresh_token=${refreshToken}; path=/; ${maxAge} ${domainAttr} ${secureAttr} samesite=lax`;
228
- }
229
- }
230
-
231
- /**
232
- * Clear authentication cookies
233
- */
234
- export function clearAuthCookies() {
235
- const isProd = window.location.hostname.includes("get-micdrop.com");
236
- const domainAttr = isProd ? "domain=.get-micdrop.com;" : "";
237
-
238
- document.cookie = `userDetails=; path=/; max-age=0; ${domainAttr}`;
239
- document.cookie = `performer_token=; path=/; max-age=0; ${domainAttr}`;
240
- document.cookie = `performer_refresh_token=; path=/; max-age=0; ${domainAttr}`;
241
- }
242
-
243
- // Export microphone placeholder for universal event image fallback
244
- export { microphonePlaceholder };
245
-
246
- // ============================================
247
- // COOKIE UTILITIES
248
- // ============================================
249
-
250
- /**
251
- * Parse all cookies into an object
252
- * @returns {Record<string, string>} Cookie key-value pairs
253
- */
254
- export function parseCookies() {
255
- if (typeof document === "undefined") return {};
256
- return document.cookie.split("; ").reduce((acc, cookie) => {
257
- if (!cookie) return acc;
258
- const [name, ...valueParts] = cookie.split("=");
259
- acc[name] = decodeURIComponent(valueParts.join("="));
260
- return acc;
261
- }, {});
262
- }
263
-
264
- /**
265
- * Get a specific cookie value
266
- * @param {string} name - Cookie name
267
- * @returns {string|null} Cookie value or null
268
- */
269
- export function getCookie(name) {
270
- const cookies = parseCookies();
271
- return cookies[name] || null;
272
- }
273
-
274
- /**
275
- * Set a cookie with options
276
- * @param {string} name - Cookie name
277
- * @param {string} value - Cookie value
278
- * @param {Object} options - Cookie options
279
- */
280
- export function setCookie(name, value, options = {}) {
281
- const isProd = typeof window !== "undefined" && window.location.hostname.includes("get-micdrop.com");
282
- const domainAttr = isProd ? "domain=.get-micdrop.com;" : "";
283
- const secureAttr = typeof window !== "undefined" && window.location.protocol === "https:" ? "secure;" : "";
284
- const maxAge = options.maxAge ? `max-age=${options.maxAge};` : "";
285
- const path = options.path || "/";
286
-
287
- document.cookie = `${name}=${encodeURIComponent(value)}; path=${path}; ${maxAge} ${domainAttr} ${secureAttr} samesite=lax`;
288
- }
289
-
290
- /**
291
- * Get the performer token from cookies
292
- * @returns {string|null} Token or null
293
- */
294
- export function getPerformerToken() {
295
- return getCookie("performer_token");
296
- }
297
-
298
- /**
299
- * Get user details from cookies
300
- * @returns {Object|null} User details or null
301
- */
302
- export function getUserDetails() {
303
- const details = getCookie("userDetails");
304
- if (!details) return null;
305
- try {
306
- return JSON.parse(details);
307
- } catch {
308
- return null;
309
- }
310
- }
311
-
312
- /**
313
- * Get suppressed alerts from cookies
314
- * @returns {string[]} Array of suppressed alert IDs
315
- */
316
- export function getSuppressedAlerts() {
317
- const alerts = getCookie("suppressedAlerts");
318
- if (!alerts) return [];
319
- try {
320
- return JSON.parse(alerts);
321
- } catch {
322
- return [];
323
- }
324
- }
325
-
326
- /**
327
- * Save suppressed alerts to cookies
328
- * @param {string[]} alertIds - Array of alert IDs to suppress
329
- */
330
- export function saveSuppressedAlerts(alertIds) {
331
- setCookie("suppressedAlerts", JSON.stringify(alertIds), { maxAge: 31536000 }); // 1 year
332
- }
333
-
334
- // ============================================
335
- // DATA FETCHING UTILITIES
336
- // ============================================
337
-
338
- /**
339
- * Fetch data from an API endpoint with error handling
340
- * @param {string} endpoint - API endpoint
341
- * @param {Object} options - Fetch options
342
- * @returns {Promise<{data: any, error: string|null}>}
343
- */
344
- export async function fetchData(endpoint, options = {}) {
345
- try {
346
- const res = await fetch(endpoint, {
347
- headers: { "Content-Type": "application/json", ...options.headers },
348
- ...options,
349
- });
350
-
351
- if (!res.ok) {
352
- const errorText = await res.text().catch(() => "Unknown error");
353
- throw new Error(errorText || `Request failed with status ${res.status}`);
354
- }
355
-
356
- const data = await res.json();
357
- return { data, error: null };
358
- } catch (err) {
359
- return { data: null, error: err.message };
360
- }
361
- }
362
-
363
- /**
364
- * Post data to an API endpoint
365
- * @param {string} endpoint - API endpoint
366
- * @param {Object} data - Data to post
367
- * @returns {Promise<{data: any, error: string|null, ok: boolean}>}
368
- */
369
- export async function postData(endpoint, data) {
370
- try {
371
- const res = await fetch(endpoint, {
372
- method: "POST",
373
- headers: { "Content-Type": "application/json" },
374
- body: JSON.stringify(data),
375
- });
376
-
377
- const responseData = await res.json().catch(() => ({}));
378
-
379
- return {
380
- data: responseData,
381
- error: res.ok ? null : (responseData.message || "Request failed"),
382
- ok: res.ok
383
- };
384
- } catch (err) {
385
- return { data: null, error: err.message, ok: false };
386
- }
387
- }
388
-
389
- // ============================================
390
- // DATE/TIME FORMATTING UTILITIES
391
- // (Merged from utils/utils/utils.js)
392
- // ============================================
393
-
394
- export function convertToDate(value) {
395
- return value ? new Date(value).toDateString() : null;
396
- }
397
-
398
- export function convertToCustomDateTimeFormat(isoDateString) {
399
- const date = new Date(isoDateString);
400
- return new Date(
401
- Date.UTC(
402
- date.getUTCFullYear(),
403
- date.getUTCMonth(),
404
- date.getUTCDate(),
405
- date.getUTCHours(),
406
- date.getUTCMinutes()
407
- )
408
- );
409
- }
410
-
411
- export function formatHour(dateString) {
412
- const date = new Date(dateString);
413
- const hour = date.getUTCHours();
414
- const minutes = date.getUTCMinutes();
415
- const suffix = hour >= 12 ? "PM" : "AM";
416
- const displayHour = hour % 12 || 12;
417
-
418
- // Ensure minutes are always two digits
419
- const displayMinutes = minutes < 10 ? "0" + minutes : minutes;
420
-
421
- return `${displayHour}:${displayMinutes} ${suffix}`;
422
- }
423
-
424
- export function formattedDate(date) {
425
- const options = {
426
- weekday: "short", // 'Thu'
427
- month: "short", // 'Oct'
428
- day: "2-digit", // '24'
429
- };
430
-
431
- return new Date(date).toLocaleDateString("en-US", options);
432
- }
433
-
434
- // Helper function to get the ordinal suffix (st, nd, rd, th)
435
- function getOrdinalSuffix(day) {
436
- if (day >= 11 && day <= 13) return "th"; // Special case for 11th, 12th, and 13th
437
- switch (day % 10) {
438
- case 1:
439
- return "st";
440
- case 2:
441
- return "nd";
442
- case 3:
443
- return "rd";
444
- default:
445
- return "th";
446
- }
447
- }
448
-
449
- export function formattedFullDate(date) {
450
- const options = {
451
- weekday: "long", // 'Thursday'
452
- month: "long", // 'October'
453
- day: "numeric", // '24'
454
- year: "numeric", // '2024'
455
- };
456
-
457
- const formattedDate = new Date(date).toLocaleDateString("en-US", options);
458
-
459
- // Get the day of the month to append the ordinal suffix
460
- const day = new Date(date).getDate();
461
- const ordinalSuffix = getOrdinalSuffix(day);
462
-
463
- // Replace the day number with the day + ordinal suffix
464
- const fullDate = formattedDate.replace(/\d+/, day + ordinalSuffix);
465
- return fullDate;
466
- }
467
-
468
- export const formatDateTime = (dateTimeString, timeZone = "UTC") => {
469
- const options = {
470
- weekday: "short", // Mon, Tue, etc.
471
- year: "numeric", // 2024
472
- month: "short", // Dec
473
- day: "numeric", // 12
474
- hour: "numeric", // 11
475
- minute: "numeric", // 00
476
- hour12: true, // 11:00 PM format
477
- timeZone: timeZone, // Account for the timezone, defaults to 'UTC'
478
- };
479
-
480
- const date = new Date(dateTimeString);
481
-
482
- return new Intl.DateTimeFormat("en-US", options).format(date);
483
- };
484
-
485
- export const formatTimeline = (startDateTime) => {
486
- const formatHourInternal = (date) => {
487
- let hours = date.getUTCHours();
488
- const minutes = date.getUTCMinutes();
489
- const suffix = hours >= 12 ? "PM" : "AM";
490
- hours = hours % 12 || 12;
491
-
492
- return `${hours}:${minutes < 10 ? "0" + minutes : minutes} ${suffix}`;
493
- };
494
-
495
- const start = formatHourInternal(new Date(startDateTime));
496
- return `${start}`;
497
- };
498
-
499
- export function formatTimeRange(startDate, endDate) {
500
- const start = new Date(startDate);
501
- const end = new Date(endDate);
502
-
503
- function formatTime(date) {
504
- let hours = date.getUTCHours();
505
- const minutes = date.getUTCMinutes();
506
- const ampm = hours >= 12 ? "PM" : "AM";
507
- hours = hours % 12;
508
- hours = hours ? hours : 12;
509
- const minutesStr = minutes < 10 ? "0" + minutes : minutes;
510
- return hours + ":" + minutesStr + " " + ampm;
511
- }
512
- const startTime = formatTime(start);
513
- const endTime = formatTime(end);
514
- return `${startTime} - ${endTime}`;
515
- }
516
-
517
- export function getDateRange(startDate, endDate) {
518
- const start = new Date(startDate);
519
- const end = new Date(endDate);
520
-
521
- const dateArray = [];
522
- const currentDate = new Date(start);
523
-
524
- while (currentDate <= end) {
525
- dateArray.push(
526
- `${currentDate.getUTCFullYear()}-${currentDate.getUTCMonth() + 1
527
- }-${currentDate.getUTCDate()}`
528
- );
529
- currentDate.setUTCDate(currentDate.getUTCDate() + 1); // Move to the next day
530
- }
531
-
532
- return dateArray;
533
- }
534
-
535
- export const getDay = (dateString) => {
536
- const days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
537
- const date = new Date(dateString);
538
- return days[date.getUTCDay()];
539
- };
540
-
541
- export const getMonth = (dateString) => {
542
- const months = [
543
- "Jan",
544
- "Feb",
545
- "Mar",
546
- "Apr",
547
- "May",
548
- "Jun",
549
- "Jul",
550
- "Aug",
551
- "Sep",
552
- "Oct",
553
- "Nov",
554
- "Dec",
555
- ];
556
- const date = new Date(dateString);
557
- return months[date.getUTCMonth()];
558
- };
559
-
560
- export const getDateOfMonth = (dateString) => {
561
- const date = new Date(dateString);
562
- return date.getUTCDate();
563
- };
564
-
565
- // ============================================
566
- // EVENT FORMATTING UTILITIES
567
- // ============================================
568
-
569
- // Map roleOnStage numeric value to role name string
570
- // These correspond to the lineup position roles in the operator panel
571
- const ROLE_ON_STAGE_MAP = {
572
- 0: "Performer",
573
- 1: "Host",
574
- 2: "Headliner",
575
- 3: "Feature",
576
- 4: "Special Guest",
577
- 5: "Opener",
578
- 6: "Guest",
579
- 7: "Teacher",
580
- 8: "Assistant",
581
- };
582
-
583
- export const getRoleFromRoleOnStage = (roleOnStage) => {
584
- return ROLE_ON_STAGE_MAP[roleOnStage] || "Performer";
585
- };
586
-
587
- // Format Event as Show for Listing data
588
- export const formatEvent = (event) => {
589
- // Get venue stage name (the physical stage at the venue, e.g., "Main Room", "Showroom")
590
- // Not to be confused with performer's stage name (their performance alias)
591
- const venueStageName = event.Event.stage?.name || event.Event.stage?.googleName || event.Event.googleName || "";
592
-
593
- // Handle potentially undefined venue address
594
- const venueAddress = event.Event.venue.address || "";
595
-
596
- // Map roleOnStage number to role name string
597
- const role = getRoleFromRoleOnStage(event.roleOnStage);
598
-
599
- // Get custom booking notification message from venue (set in venue edit page)
600
- const bookingMessage = event.Event.venue.booking_notification || "No additional details available.";
601
-
602
- return {
603
- eventId: event.Event.ID,
604
- venueId: event.Event.venue.ID,
605
- title: event.Event.title,
606
- role: role,
607
- startDateTime: event.Event.startDateTime,
608
- acceptedState: event.acceptedState,
609
- doorsOpenTime: event.Event.doorsOpenTime,
610
- spotDuration: `${event.setLength} min spot`,
611
- venueName: event.Event.venue.name,
612
- location: venueAddress,
613
- id: event.invitationId,
614
- image: event.Event.image,
615
- details: {
616
- venue: event.Event.venue.name,
617
- stageName: venueStageName,
618
- address: venueAddress,
619
- setLength: `${event.setLength} min`,
620
- eventDetails: bookingMessage,
621
- },
622
- lastUpdated: event.UpdatedAt,
623
- };
624
- };
625
-
626
- export const formatRosterEventPerformerInvite = (event) => {
627
- return {
628
- venueId: event.venueId,
629
- role: event.role || "Performer",
630
- acceptedState: event.acceptedState,
631
- name: event.Venue.name,
632
- shortVenue: `${event.Venue.firstName} ${event.Venue.lastName} - ${event.Venue.role}`,
633
- location: `${event.Venue.address}`,
634
- id: event.invitationId,
635
- lastUpdated: event.UpdatedAt,
636
- image: event.Venue.image,
637
- hasAvailability: true,
638
- invitationAccepted: event.acceptedState === 2,
639
- };
640
- };
641
-
642
- export const formatVenue = (event) => {
643
- return {
644
- venueId: event.Event.venueId,
645
- name: event.Event.venue.name,
646
- image: event.Event.venue.squareImageUrl || event.Event.venue.image,
647
- location: `${event.Event.venue.address}`,
648
- start: event.Event.startDateTime,
649
- end: event.Event.endDateTime,
650
- doorOpen: event.Event.doorsOpenTime,
651
- email: event.Event.venue.email,
652
- phone: event.Event.venue.phone,
653
- description: event.Event.venue.description,
654
- instagram: event.Event.venue.instagram,
655
- facebook: event.Event.venue.facebook,
656
- twitter: event.Event.venue.twitter,
657
- lastUpdated: event.UpdatedAt,
658
- timeRange: formatTimeRange(event.Event.startDateTime, event.Event.endDateTime),
659
- dateRange: getDateRange(event.Event.startDateTime, event.Event.endDateTime),
660
- };
661
- };
662
-
663
- // ============================================
664
- // STRING UTILITIES
665
- // ============================================
666
-
667
- export function capitalize(word) {
668
- return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
669
- }
670
-
671
- export function timeAgo(date) {
672
- const now = new Date();
673
- const seconds = Math.floor((now - new Date(date)) / 1000);
674
- const minutes = Math.floor(seconds / 60);
675
- const hours = Math.floor(minutes / 60);
676
- const days = Math.floor(hours / 24);
677
- const months = Math.floor(days / 30);
678
- const years = Math.floor(months / 12);
679
-
680
- if (seconds < 60) {
681
- return `${seconds} second${seconds !== 1 ? "s" : ""} ago`;
682
- } else if (minutes < 60) {
683
- return `${minutes} minute${minutes !== 1 ? "s" : ""} ago`;
684
- } else if (hours < 24) {
685
- return `${hours} hour${hours !== 1 ? "s" : ""} ago`;
686
- } else if (days < 30) {
687
- return `${days} day${days !== 1 ? "s" : ""} ago`;
688
- } else if (months < 12) {
689
- return `${months} month${months !== 1 ? "s" : ""} ago`;
690
- } else {
691
- return `${years} year${years !== 1 ? "s" : ""} ago`;
692
- }
693
- }
1
+ // ============================================
2
+ // BARREL RE-EXPORTS
3
+ // ============================================
4
+ // This file is kept for backward compatibility.
5
+ // All functions have been decomposed into purpose-specific modules:
6
+ //
7
+ // classNames.ts - classNames, cn
8
+ // stringHelpers.ts - truncateTitle, capitalize, parseLocation
9
+ // dateHelpers.ts - date/time formatting, getDays, getDaysNumberOptions
10
+ // cookieHelpers.ts - cookie CRUD, auth cookies, performer token
11
+ // fetchHelpers.ts - fetchData, postData
12
+ // eventFormatters.ts - formatEvent, formatVenue, formatRosterEventPerformerInvite, getRoleFromRoleOnStage
13
+ // permissions.ts - ROLE_PERMISSION_LIST
14
+ // formatters.ts - roundCurrency, formatCreditCardNumber, formatPhoneNumber
15
+ // assets.ts - microphonePlaceholder
16
+ //
17
+ // Prefer importing directly from the specific module.
18
+ // ============================================
19
+
20
+ export { classNames, cn } from "./classNames";
21
+ export { truncateTitle, capitalize, parseLocation } from "./stringHelpers";
22
+ export {
23
+ convertToDate,
24
+ convertToCustomDateFormat,
25
+ convertToCustomDateTimeFormat,
26
+ formatHour,
27
+ formattedDate,
28
+ formattedFullDate,
29
+ formatDateTime,
30
+ formatTimeline,
31
+ formatTimeRange,
32
+ getDateRange,
33
+ getDay,
34
+ getMonth,
35
+ getDateOfMonth,
36
+ timeAgo,
37
+ getDays,
38
+ getDaysNumberOptions,
39
+ } from "./dateHelpers";
40
+ export {
41
+ parseCookies,
42
+ getCookie,
43
+ setCookie,
44
+ getPerformerToken,
45
+ getUserDetails,
46
+ getSuppressedAlerts,
47
+ saveSuppressedAlerts,
48
+ setAuthCookies,
49
+ clearAuthCookies,
50
+ } from "./cookieHelpers";
51
+ export { fetchData, postData } from "./fetchHelpers";
52
+ export {
53
+ getRoleFromRoleOnStage,
54
+ formatEvent,
55
+ formatRosterEventPerformerInvite,
56
+ formatVenue,
57
+ } from "./eventFormatters";
58
+ export { ROLE_PERMISSION_LIST } from "./permissions";
59
+ export { microphonePlaceholder } from "./assets";