@getmicdrop/svelte-components 1.0.2 → 1.0.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 (517) hide show
  1. package/README.md +98 -98
  2. package/dist/components/Alert/Alert.spec.d.ts +2 -0
  3. package/dist/components/Alert/Alert.spec.d.ts.map +1 -0
  4. package/dist/components/Alert/Alert.spec.js +170 -0
  5. package/dist/components/Alert/Alert.svelte +54 -0
  6. package/dist/components/Alert/Alert.svelte.d.ts +40 -0
  7. package/dist/components/Alert/Alert.svelte.d.ts.map +1 -0
  8. package/dist/components/Alert/AlertAudit.stories.svelte +241 -0
  9. package/dist/components/Alert/AlertAudit.stories.svelte.d.ts +31 -0
  10. package/dist/components/Alert/AlertAudit.stories.svelte.d.ts.map +1 -0
  11. package/dist/components/Badges/Badge.spec.d.ts +2 -0
  12. package/dist/components/Badges/Badge.spec.d.ts.map +1 -0
  13. package/dist/components/Badges/Badge.spec.js +103 -0
  14. package/dist/components/Badges/Badge.stories.svelte +87 -0
  15. package/dist/components/Badges/Badge.stories.svelte.d.ts +47 -0
  16. package/dist/components/Badges/Badge.stories.svelte.d.ts.map +1 -0
  17. package/dist/components/Badges/Badge.svelte +182 -0
  18. package/dist/components/Badges/Badge.svelte.d.ts +38 -0
  19. package/dist/components/Badges/Badge.svelte.d.ts.map +1 -0
  20. package/dist/components/Badges/BadgeAudit.stories.svelte +238 -0
  21. package/dist/components/Badges/BadgeAudit.stories.svelte.d.ts +31 -0
  22. package/dist/components/Badges/BadgeAudit.stories.svelte.d.ts.map +1 -0
  23. package/dist/components/BottomSheet/BottomSheet.spec.d.ts +2 -0
  24. package/dist/components/BottomSheet/BottomSheet.spec.d.ts.map +1 -0
  25. package/dist/components/BottomSheet/BottomSheet.spec.js +127 -0
  26. package/dist/components/BottomSheet/BottomSheet.stories.svelte +91 -0
  27. package/dist/components/BottomSheet/BottomSheet.stories.svelte.d.ts +45 -0
  28. package/dist/components/BottomSheet/BottomSheet.stories.svelte.d.ts.map +1 -0
  29. package/dist/components/BottomSheet/BottomSheet.svelte +171 -0
  30. package/dist/components/BottomSheet/BottomSheet.svelte.d.ts +40 -0
  31. package/dist/components/BottomSheet/BottomSheet.svelte.d.ts.map +1 -0
  32. package/dist/components/Breadcrumb/Breadcrumb.spec.d.ts +2 -0
  33. package/dist/components/Breadcrumb/Breadcrumb.spec.d.ts.map +1 -0
  34. package/dist/components/Breadcrumb/Breadcrumb.spec.js +120 -0
  35. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte +24 -0
  36. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte.d.ts +36 -0
  37. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte.d.ts.map +1 -0
  38. package/dist/components/Breadcrumb/Breadcrumb.svelte +50 -0
  39. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts +30 -0
  40. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -0
  41. package/dist/components/Button/Button.spec.d.ts +2 -0
  42. package/dist/components/Button/Button.spec.d.ts.map +1 -0
  43. package/dist/components/Button/Button.spec.js +211 -0
  44. package/dist/components/Button/Button.stories.svelte +111 -0
  45. package/dist/components/Button/Button.stories.svelte.d.ts +59 -0
  46. package/dist/components/Button/Button.stories.svelte.d.ts.map +1 -0
  47. package/dist/components/Button/Button.svelte +642 -0
  48. package/dist/components/Button/Button.svelte.d.ts +68 -0
  49. package/dist/components/Button/Button.svelte.d.ts.map +1 -0
  50. package/dist/components/Button/ButtonAudit.stories.svelte +333 -0
  51. package/dist/components/Button/ButtonAudit.stories.svelte.d.ts +33 -0
  52. package/dist/components/Button/ButtonAudit.stories.svelte.d.ts.map +1 -0
  53. package/dist/components/Button/ButtonSaveDemo.spec.d.ts +2 -0
  54. package/dist/components/Button/ButtonSaveDemo.spec.d.ts.map +1 -0
  55. package/dist/components/Button/ButtonSaveDemo.spec.js +48 -0
  56. package/dist/components/Button/ButtonSaveDemo.svelte +24 -0
  57. package/dist/components/Button/ButtonSaveDemo.svelte.d.ts +26 -0
  58. package/dist/components/Button/ButtonSaveDemo.svelte.d.ts.map +1 -0
  59. package/dist/components/Calendar/Calendar.spec.d.ts +2 -0
  60. package/dist/components/Calendar/Calendar.spec.d.ts.map +1 -0
  61. package/dist/components/Calendar/Calendar.spec.js +131 -0
  62. package/dist/components/Calendar/Calendar.svelte +1115 -0
  63. package/dist/components/Calendar/Calendar.svelte.d.ts +52 -0
  64. package/dist/components/Calendar/Calendar.svelte.d.ts.map +1 -0
  65. package/dist/components/Calendar/QuarterView.spec.d.ts +2 -0
  66. package/dist/components/Calendar/QuarterView.spec.d.ts.map +1 -0
  67. package/dist/components/Calendar/QuarterView.spec.js +394 -0
  68. package/dist/components/Calendar/QuarterView.stories.svelte +134 -0
  69. package/dist/components/Calendar/QuarterView.stories.svelte.d.ts +40 -0
  70. package/dist/components/Calendar/QuarterView.stories.svelte.d.ts.map +1 -0
  71. package/dist/components/Calendar/QuarterView.svelte +736 -0
  72. package/dist/components/Calendar/QuarterView.svelte.d.ts +30 -0
  73. package/dist/components/Calendar/QuarterView.svelte.d.ts.map +1 -0
  74. package/dist/components/Card.spec.d.ts +2 -0
  75. package/dist/components/Card.spec.d.ts.map +1 -0
  76. package/dist/components/Card.spec.js +47 -0
  77. package/dist/components/Card.stories.svelte +26 -0
  78. package/dist/components/Card.stories.svelte.d.ts +36 -0
  79. package/dist/components/Card.stories.svelte.d.ts.map +1 -0
  80. package/dist/components/Card.svelte +9 -0
  81. package/dist/components/Card.svelte.d.ts +30 -0
  82. package/dist/components/Card.svelte.d.ts.map +1 -0
  83. package/dist/components/CardAudit.stories.svelte +175 -0
  84. package/dist/components/CardAudit.stories.svelte.d.ts +31 -0
  85. package/dist/components/CardAudit.stories.svelte.d.ts.map +1 -0
  86. package/dist/components/CropImage/CropImage.spec.d.ts +2 -0
  87. package/dist/components/CropImage/CropImage.spec.d.ts.map +1 -0
  88. package/dist/components/CropImage/CropImage.spec.js +216 -0
  89. package/dist/components/CropImage/CropImage.stories.svelte +133 -0
  90. package/dist/components/CropImage/CropImage.stories.svelte.d.ts +40 -0
  91. package/dist/components/CropImage/CropImage.stories.svelte.d.ts.map +1 -0
  92. package/dist/components/CropImage/CropImage.svelte +311 -0
  93. package/dist/components/CropImage/CropImage.svelte.d.ts +34 -0
  94. package/dist/components/CropImage/CropImage.svelte.d.ts.map +1 -0
  95. package/dist/components/DarkModeToggle.spec.d.ts +2 -0
  96. package/dist/components/DarkModeToggle.spec.d.ts.map +1 -0
  97. package/dist/components/DarkModeToggle.spec.js +357 -0
  98. package/dist/components/DarkModeToggle.stories.svelte +55 -0
  99. package/dist/components/DarkModeToggle.stories.svelte.d.ts +32 -0
  100. package/dist/components/DarkModeToggle.stories.svelte.d.ts.map +1 -0
  101. package/dist/components/DarkModeToggle.svelte +245 -0
  102. package/dist/components/DarkModeToggle.svelte.d.ts +26 -0
  103. package/dist/components/DarkModeToggle.svelte.d.ts.map +1 -0
  104. package/dist/components/ErrorDisplay.spec.d.ts +2 -0
  105. package/dist/components/ErrorDisplay.spec.d.ts.map +1 -0
  106. package/dist/components/ErrorDisplay.spec.js +69 -0
  107. package/dist/components/ErrorDisplay.stories.svelte +115 -0
  108. package/dist/components/ErrorDisplay.stories.svelte.d.ts +62 -0
  109. package/dist/components/ErrorDisplay.stories.svelte.d.ts.map +1 -0
  110. package/dist/components/ErrorDisplay.svelte +58 -0
  111. package/dist/components/ErrorDisplay.svelte.d.ts +36 -0
  112. package/dist/components/ErrorDisplay.svelte.d.ts.map +1 -0
  113. package/dist/components/FormActions.spec.d.ts +2 -0
  114. package/dist/components/FormActions.spec.d.ts.map +1 -0
  115. package/dist/components/FormActions.spec.js +88 -0
  116. package/dist/components/FormActions.stories.svelte +98 -0
  117. package/dist/components/FormActions.stories.svelte.d.ts +57 -0
  118. package/dist/components/FormActions.stories.svelte.d.ts.map +1 -0
  119. package/dist/components/FormActions.svelte +67 -0
  120. package/dist/components/FormActions.svelte.d.ts +48 -0
  121. package/dist/components/FormActions.svelte.d.ts.map +1 -0
  122. package/dist/components/FormValidationSummary.spec.d.ts +2 -0
  123. package/dist/components/FormValidationSummary.spec.d.ts.map +1 -0
  124. package/dist/components/FormValidationSummary.spec.js +203 -0
  125. package/dist/components/FormValidationSummary.stories.svelte +95 -0
  126. package/dist/components/FormValidationSummary.stories.svelte.d.ts +32 -0
  127. package/dist/components/FormValidationSummary.stories.svelte.d.ts.map +1 -0
  128. package/dist/components/FormValidationSummary.svelte +83 -0
  129. package/dist/components/FormValidationSummary.svelte.d.ts +32 -0
  130. package/dist/components/FormValidationSummary.svelte.d.ts.map +1 -0
  131. package/dist/components/Icons/ArrowLeft.svelte +21 -0
  132. package/dist/components/Icons/ArrowLeft.svelte.d.ts +28 -0
  133. package/dist/components/Icons/ArrowLeft.svelte.d.ts.map +1 -0
  134. package/dist/components/Icons/ArrowRight.svelte +21 -0
  135. package/dist/components/Icons/ArrowRight.svelte.d.ts +28 -0
  136. package/dist/components/Icons/ArrowRight.svelte.d.ts.map +1 -0
  137. package/dist/components/Icons/Availability.svelte +28 -0
  138. package/dist/components/Icons/Availability.svelte.d.ts +28 -0
  139. package/dist/components/Icons/Availability.svelte.d.ts.map +1 -0
  140. package/dist/components/Icons/Back.svelte +28 -0
  141. package/dist/components/Icons/Back.svelte.d.ts +28 -0
  142. package/dist/components/Icons/Back.svelte.d.ts.map +1 -0
  143. package/dist/components/Icons/CheckCircle.svelte +20 -0
  144. package/dist/components/Icons/CheckCircle.svelte.d.ts +28 -0
  145. package/dist/components/Icons/CheckCircle.svelte.d.ts.map +1 -0
  146. package/dist/components/Icons/CheckCircleOutline.svelte +28 -0
  147. package/dist/components/Icons/CheckCircleOutline.svelte.d.ts +28 -0
  148. package/dist/components/Icons/CheckCircleOutline.svelte.d.ts.map +1 -0
  149. package/dist/components/Icons/ChevronLeft.svelte +18 -0
  150. package/dist/components/Icons/ChevronLeft.svelte.d.ts +28 -0
  151. package/dist/components/Icons/ChevronLeft.svelte.d.ts.map +1 -0
  152. package/dist/components/Icons/ChevronRight.svelte +18 -0
  153. package/dist/components/Icons/ChevronRight.svelte.d.ts +28 -0
  154. package/dist/components/Icons/ChevronRight.svelte.d.ts.map +1 -0
  155. package/dist/components/Icons/Copy.svelte +28 -0
  156. package/dist/components/Icons/Copy.svelte.d.ts +28 -0
  157. package/dist/components/Icons/Copy.svelte.d.ts.map +1 -0
  158. package/dist/components/Icons/Cross.svelte +18 -0
  159. package/dist/components/Icons/Cross.svelte.d.ts +28 -0
  160. package/dist/components/Icons/Cross.svelte.d.ts.map +1 -0
  161. package/dist/components/Icons/DownArrow.svelte +21 -0
  162. package/dist/components/Icons/DownArrow.svelte.d.ts +28 -0
  163. package/dist/components/Icons/DownArrow.svelte.d.ts.map +1 -0
  164. package/dist/components/Icons/ErrorCircle.svelte +20 -0
  165. package/dist/components/Icons/ErrorCircle.svelte.d.ts +28 -0
  166. package/dist/components/Icons/ErrorCircle.svelte.d.ts.map +1 -0
  167. package/dist/components/Icons/FacebookIcon.svelte +14 -0
  168. package/dist/components/Icons/FacebookIcon.svelte.d.ts +28 -0
  169. package/dist/components/Icons/FacebookIcon.svelte.d.ts.map +1 -0
  170. package/dist/components/Icons/Home.svelte +29 -0
  171. package/dist/components/Icons/Home.svelte.d.ts +28 -0
  172. package/dist/components/Icons/Home.svelte.d.ts.map +1 -0
  173. package/dist/components/Icons/Icon.spec.d.ts +2 -0
  174. package/dist/components/Icons/Icon.spec.d.ts.map +1 -0
  175. package/dist/components/Icons/Icon.spec.js +175 -0
  176. package/dist/components/Icons/Icon.stories.svelte +101 -0
  177. package/dist/components/Icons/Icon.stories.svelte.d.ts +44 -0
  178. package/dist/components/Icons/Icon.stories.svelte.d.ts.map +1 -0
  179. package/dist/components/Icons/Icon.svelte +66 -0
  180. package/dist/components/Icons/Icon.svelte.d.ts +30 -0
  181. package/dist/components/Icons/Icon.svelte.d.ts.map +1 -0
  182. package/dist/components/Icons/IconGallery.stories.svelte +233 -0
  183. package/dist/components/Icons/IconGallery.stories.svelte.d.ts +30 -0
  184. package/dist/components/Icons/IconGallery.stories.svelte.d.ts.map +1 -0
  185. package/dist/components/Icons/Info.svelte +20 -0
  186. package/dist/components/Icons/Info.svelte.d.ts +28 -0
  187. package/dist/components/Icons/Info.svelte.d.ts.map +1 -0
  188. package/dist/components/Icons/InstagramIcon.svelte +20 -0
  189. package/dist/components/Icons/InstagramIcon.svelte.d.ts +28 -0
  190. package/dist/components/Icons/InstagramIcon.svelte.d.ts.map +1 -0
  191. package/dist/components/Icons/Message.svelte +28 -0
  192. package/dist/components/Icons/Message.svelte.d.ts +28 -0
  193. package/dist/components/Icons/Message.svelte.d.ts.map +1 -0
  194. package/dist/components/Icons/MoonIcon.svelte +17 -0
  195. package/dist/components/Icons/MoonIcon.svelte.d.ts +28 -0
  196. package/dist/components/Icons/MoonIcon.svelte.d.ts.map +1 -0
  197. package/dist/components/Icons/More.svelte +35 -0
  198. package/dist/components/Icons/More.svelte.d.ts +28 -0
  199. package/dist/components/Icons/More.svelte.d.ts.map +1 -0
  200. package/dist/components/Icons/MoreHori.spec.d.ts +2 -0
  201. package/dist/components/Icons/MoreHori.spec.d.ts.map +1 -0
  202. package/dist/components/Icons/MoreHori.spec.js +67 -0
  203. package/dist/components/Icons/MoreHori.svelte +35 -0
  204. package/dist/components/Icons/MoreHori.svelte.d.ts +28 -0
  205. package/dist/components/Icons/MoreHori.svelte.d.ts.map +1 -0
  206. package/dist/components/Icons/Notification.svelte +28 -0
  207. package/dist/components/Icons/Notification.svelte.d.ts +28 -0
  208. package/dist/components/Icons/Notification.svelte.d.ts.map +1 -0
  209. package/dist/components/Icons/Payment.svelte +28 -0
  210. package/dist/components/Icons/Payment.svelte.d.ts +28 -0
  211. package/dist/components/Icons/Payment.svelte.d.ts.map +1 -0
  212. package/dist/components/Icons/Profile.svelte +35 -0
  213. package/dist/components/Icons/Profile.svelte.d.ts +28 -0
  214. package/dist/components/Icons/Profile.svelte.d.ts.map +1 -0
  215. package/dist/components/Icons/Reload.svelte +42 -0
  216. package/dist/components/Icons/Reload.svelte.d.ts +28 -0
  217. package/dist/components/Icons/Reload.svelte.d.ts.map +1 -0
  218. package/dist/components/Icons/Shows.svelte +35 -0
  219. package/dist/components/Icons/Shows.svelte.d.ts +28 -0
  220. package/dist/components/Icons/Shows.svelte.d.ts.map +1 -0
  221. package/dist/components/Icons/Signout.svelte +35 -0
  222. package/dist/components/Icons/Signout.svelte.d.ts +28 -0
  223. package/dist/components/Icons/Signout.svelte.d.ts.map +1 -0
  224. package/dist/components/Icons/SunIcon.svelte +20 -0
  225. package/dist/components/Icons/SunIcon.svelte.d.ts +28 -0
  226. package/dist/components/Icons/SunIcon.svelte.d.ts.map +1 -0
  227. package/dist/components/Icons/TiktokIcon.svelte +14 -0
  228. package/dist/components/Icons/TiktokIcon.svelte.d.ts +28 -0
  229. package/dist/components/Icons/TiktokIcon.svelte.d.ts.map +1 -0
  230. package/dist/components/Icons/TwitterIcon.svelte +14 -0
  231. package/dist/components/Icons/TwitterIcon.svelte.d.ts +28 -0
  232. package/dist/components/Icons/TwitterIcon.svelte.d.ts.map +1 -0
  233. package/dist/components/Icons/WarningIcon.spec.d.ts +2 -0
  234. package/dist/components/Icons/WarningIcon.spec.d.ts.map +1 -0
  235. package/dist/components/Icons/WarningIcon.spec.js +30 -0
  236. package/dist/components/Icons/WarningIcon.svelte +24 -0
  237. package/dist/components/Icons/WarningIcon.svelte.d.ts +26 -0
  238. package/dist/components/Icons/WarningIcon.svelte.d.ts.map +1 -0
  239. package/dist/components/Input/Input.spec.d.ts +2 -0
  240. package/dist/components/Input/Input.spec.d.ts.map +1 -0
  241. package/dist/components/Input/Input.spec.js +573 -0
  242. package/dist/components/Input/Input.stories.svelte +140 -0
  243. package/dist/components/Input/Input.stories.svelte.d.ts +80 -0
  244. package/dist/components/Input/Input.stories.svelte.d.ts.map +1 -0
  245. package/dist/components/Input/Input.svelte +721 -0
  246. package/dist/components/Input/Input.svelte.d.ts +96 -0
  247. package/dist/components/Input/Input.svelte.d.ts.map +1 -0
  248. package/dist/components/Input/InputAudit.stories.svelte +483 -0
  249. package/dist/components/Input/InputAudit.stories.svelte.d.ts +31 -0
  250. package/dist/components/Input/InputAudit.stories.svelte.d.ts.map +1 -0
  251. package/dist/components/Input/MultiSelect.spec.d.ts +2 -0
  252. package/dist/components/Input/MultiSelect.spec.d.ts.map +1 -0
  253. package/dist/components/Input/MultiSelect.spec.js +257 -0
  254. package/dist/components/Input/MultiSelect.stories.svelte +138 -0
  255. package/dist/components/Input/MultiSelect.stories.svelte.d.ts +32 -0
  256. package/dist/components/Input/MultiSelect.stories.svelte.d.ts.map +1 -0
  257. package/dist/components/Input/MultiSelect.svelte +557 -0
  258. package/dist/components/Input/MultiSelect.svelte.d.ts +50 -0
  259. package/dist/components/Input/MultiSelect.svelte.d.ts.map +1 -0
  260. package/dist/components/Input/OTPInput.spec.d.ts +2 -0
  261. package/dist/components/Input/OTPInput.spec.d.ts.map +1 -0
  262. package/dist/components/Input/OTPInput.spec.js +238 -0
  263. package/dist/components/Input/OTPInput.stories.svelte +167 -0
  264. package/dist/components/Input/OTPInput.stories.svelte.d.ts +48 -0
  265. package/dist/components/Input/OTPInput.stories.svelte.d.ts.map +1 -0
  266. package/dist/components/Input/OTPInput.svelte +117 -0
  267. package/dist/components/Input/OTPInput.svelte.d.ts +42 -0
  268. package/dist/components/Input/OTPInput.svelte.d.ts.map +1 -0
  269. package/dist/components/Input/Select.spec.d.ts +2 -0
  270. package/dist/components/Input/Select.spec.d.ts.map +1 -0
  271. package/dist/components/Input/Select.spec.js +218 -0
  272. package/dist/components/Input/Select.svelte +385 -0
  273. package/dist/components/Input/Select.svelte.d.ts +48 -0
  274. package/dist/components/Input/Select.svelte.d.ts.map +1 -0
  275. package/dist/components/Input/SelectAudit.stories.svelte +364 -0
  276. package/dist/components/Input/SelectAudit.stories.svelte.d.ts +31 -0
  277. package/dist/components/Input/SelectAudit.stories.svelte.d.ts.map +1 -0
  278. package/dist/components/Layout/BottomNav.spec.d.ts +2 -0
  279. package/dist/components/Layout/BottomNav.spec.d.ts.map +1 -0
  280. package/dist/components/Layout/BottomNav.spec.js +130 -0
  281. package/dist/components/Layout/BottomNav.stories.svelte +115 -0
  282. package/dist/components/Layout/BottomNav.stories.svelte.d.ts +32 -0
  283. package/dist/components/Layout/BottomNav.stories.svelte.d.ts.map +1 -0
  284. package/dist/components/Layout/BottomNav.svelte +120 -0
  285. package/dist/components/Layout/BottomNav.svelte.d.ts +26 -0
  286. package/dist/components/Layout/BottomNav.svelte.d.ts.map +1 -0
  287. package/dist/components/Layout/Header.spec.d.ts +2 -0
  288. package/dist/components/Layout/Header.spec.d.ts.map +1 -0
  289. package/dist/components/Layout/Header.spec.js +203 -0
  290. package/dist/components/Layout/Header.stories.svelte +78 -0
  291. package/dist/components/Layout/Header.stories.svelte.d.ts +47 -0
  292. package/dist/components/Layout/Header.stories.svelte.d.ts.map +1 -0
  293. package/dist/components/Layout/Header.svelte +528 -0
  294. package/dist/components/Layout/Header.svelte.d.ts +42 -0
  295. package/dist/components/Layout/Header.svelte.d.ts.map +1 -0
  296. package/dist/components/Modal/ConfirmationModal.spec.d.ts +2 -0
  297. package/dist/components/Modal/ConfirmationModal.spec.d.ts.map +1 -0
  298. package/dist/components/Modal/ConfirmationModal.spec.js +191 -0
  299. package/dist/components/Modal/ConfirmationModal.stories.svelte +124 -0
  300. package/dist/components/Modal/ConfirmationModal.stories.svelte.d.ts +45 -0
  301. package/dist/components/Modal/ConfirmationModal.stories.svelte.d.ts.map +1 -0
  302. package/dist/components/Modal/ConfirmationModal.svelte +105 -0
  303. package/dist/components/Modal/ConfirmationModal.svelte.d.ts +38 -0
  304. package/dist/components/Modal/ConfirmationModal.svelte.d.ts.map +1 -0
  305. package/dist/components/Modal/Modal.spec.d.ts +2 -0
  306. package/dist/components/Modal/Modal.spec.d.ts.map +1 -0
  307. package/dist/components/Modal/Modal.spec.js +95 -0
  308. package/dist/components/Modal/Modal.stories.svelte +83 -0
  309. package/dist/components/Modal/Modal.stories.svelte.d.ts +31 -0
  310. package/dist/components/Modal/Modal.stories.svelte.d.ts.map +1 -0
  311. package/dist/components/Modal/Modal.svelte +234 -0
  312. package/dist/components/Modal/Modal.svelte.d.ts +46 -0
  313. package/dist/components/Modal/Modal.svelte.d.ts.map +1 -0
  314. package/dist/components/Modal/ModalAudit.stories.svelte +329 -0
  315. package/dist/components/Modal/ModalAudit.stories.svelte.d.ts +31 -0
  316. package/dist/components/Modal/ModalAudit.stories.svelte.d.ts.map +1 -0
  317. package/dist/components/Modal/ModalStateManager.spec.d.ts +2 -0
  318. package/dist/components/Modal/ModalStateManager.spec.d.ts.map +1 -0
  319. package/dist/components/Modal/ModalStateManager.spec.js +100 -0
  320. package/dist/components/Modal/ModalStateManager.svelte +67 -0
  321. package/dist/components/Modal/ModalStateManager.svelte.d.ts +48 -0
  322. package/dist/components/Modal/ModalStateManager.svelte.d.ts.map +1 -0
  323. package/dist/components/Modal/ModalTestWrapper.svelte +21 -0
  324. package/dist/components/Modal/ModalTestWrapper.svelte.d.ts +36 -0
  325. package/dist/components/Modal/ModalTestWrapper.svelte.d.ts.map +1 -0
  326. package/dist/components/PageLoader.spec.d.ts +2 -0
  327. package/dist/components/PageLoader.spec.d.ts.map +1 -0
  328. package/dist/components/PageLoader.spec.js +54 -0
  329. package/dist/components/PageLoader.stories.svelte +145 -0
  330. package/dist/components/PageLoader.stories.svelte.d.ts +53 -0
  331. package/dist/components/PageLoader.stories.svelte.d.ts.map +1 -0
  332. package/dist/components/PageLoader.svelte +52 -0
  333. package/dist/components/PageLoader.svelte.d.ts +42 -0
  334. package/dist/components/PageLoader.svelte.d.ts.map +1 -0
  335. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.d.ts +2 -0
  336. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.d.ts.map +1 -0
  337. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +173 -0
  338. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +101 -0
  339. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +36 -0
  340. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -0
  341. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.spec.d.ts +2 -0
  342. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.spec.d.ts.map +1 -0
  343. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.spec.js +300 -0
  344. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +168 -0
  345. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts +60 -0
  346. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts.map +1 -0
  347. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte +431 -0
  348. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts +29 -0
  349. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -0
  350. package/dist/components/Spinner/Spinner.spec.d.ts +2 -0
  351. package/dist/components/Spinner/Spinner.spec.d.ts.map +1 -0
  352. package/dist/components/Spinner/Spinner.spec.js +75 -0
  353. package/dist/components/Spinner/Spinner.stories.svelte +30 -0
  354. package/dist/components/Spinner/Spinner.stories.svelte.d.ts +31 -0
  355. package/dist/components/Spinner/Spinner.stories.svelte.d.ts.map +1 -0
  356. package/dist/components/Spinner/Spinner.svelte +19 -0
  357. package/dist/components/Spinner/Spinner.svelte.d.ts +26 -0
  358. package/dist/components/Spinner/Spinner.svelte.d.ts.map +1 -0
  359. package/dist/components/StatusIndicator/StatusIndicator.spec.d.ts +2 -0
  360. package/dist/components/StatusIndicator/StatusIndicator.spec.d.ts.map +1 -0
  361. package/dist/components/StatusIndicator/StatusIndicator.spec.js +129 -0
  362. package/dist/components/StatusIndicator/StatusIndicator.svelte +206 -0
  363. package/dist/components/StatusIndicator/StatusIndicator.svelte.d.ts +28 -0
  364. package/dist/components/StatusIndicator/StatusIndicator.svelte.d.ts.map +1 -0
  365. package/dist/components/Toaster/Toaster.stories.svelte +61 -0
  366. package/dist/components/Toaster/Toaster.stories.svelte.d.ts +29 -0
  367. package/dist/components/Toaster/Toaster.stories.svelte.d.ts.map +1 -0
  368. package/dist/components/Toggle.spec.d.ts +2 -0
  369. package/dist/components/Toggle.spec.d.ts.map +1 -0
  370. package/dist/components/Toggle.spec.js +158 -0
  371. package/dist/components/Toggle.stories.svelte +93 -0
  372. package/dist/components/Toggle.stories.svelte.d.ts +41 -0
  373. package/dist/components/Toggle.stories.svelte.d.ts.map +1 -0
  374. package/dist/components/Toggle.svelte +79 -0
  375. package/dist/components/Toggle.svelte.d.ts +32 -0
  376. package/dist/components/Toggle.svelte.d.ts.map +1 -0
  377. package/dist/components/ValidationError.spec.d.ts +2 -0
  378. package/dist/components/ValidationError.spec.d.ts.map +1 -0
  379. package/dist/components/ValidationError.spec.js +79 -0
  380. package/dist/components/ValidationError.stories.svelte +88 -0
  381. package/dist/components/ValidationError.stories.svelte.d.ts +41 -0
  382. package/dist/components/ValidationError.stories.svelte.d.ts.map +1 -0
  383. package/dist/components/ValidationError.svelte +19 -0
  384. package/dist/components/ValidationError.svelte.d.ts +28 -0
  385. package/dist/components/ValidationError.svelte.d.ts.map +1 -0
  386. package/dist/components/pages/performers/AvailabilityCalendarModal.spec.d.ts +2 -0
  387. package/dist/components/pages/performers/AvailabilityCalendarModal.spec.d.ts.map +1 -0
  388. package/dist/components/pages/performers/AvailabilityCalendarModal.spec.js +606 -0
  389. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte +632 -0
  390. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte.d.ts +36 -0
  391. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte.d.ts.map +1 -0
  392. package/dist/components/pages/performers/ModalShowInfo.spec.d.ts +2 -0
  393. package/dist/components/pages/performers/ModalShowInfo.spec.d.ts.map +1 -0
  394. package/dist/components/pages/performers/ModalShowInfo.spec.js +124 -0
  395. package/dist/components/pages/performers/ModalShowInfo.svelte +88 -0
  396. package/dist/components/pages/performers/ModalShowInfo.svelte.d.ts +34 -0
  397. package/dist/components/pages/performers/ModalShowInfo.svelte.d.ts.map +1 -0
  398. package/dist/components/pages/performers/PageBackButton.spec.d.ts +2 -0
  399. package/dist/components/pages/performers/PageBackButton.spec.d.ts.map +1 -0
  400. package/dist/components/pages/performers/PageBackButton.spec.js +89 -0
  401. package/dist/components/pages/performers/PageBackButton.stories.svelte +72 -0
  402. package/dist/components/pages/performers/PageBackButton.stories.svelte.d.ts +36 -0
  403. package/dist/components/pages/performers/PageBackButton.stories.svelte.d.ts.map +1 -0
  404. package/dist/components/pages/performers/PageBackButton.svelte +13 -0
  405. package/dist/components/pages/performers/PageBackButton.svelte.d.ts +26 -0
  406. package/dist/components/pages/performers/PageBackButton.svelte.d.ts.map +1 -0
  407. package/dist/components/pages/performers/SectionHeader.spec.d.ts +2 -0
  408. package/dist/components/pages/performers/SectionHeader.spec.d.ts.map +1 -0
  409. package/dist/components/pages/performers/SectionHeader.spec.js +75 -0
  410. package/dist/components/pages/performers/SectionHeader.stories.svelte +100 -0
  411. package/dist/components/pages/performers/SectionHeader.stories.svelte.d.ts +41 -0
  412. package/dist/components/pages/performers/SectionHeader.stories.svelte.d.ts.map +1 -0
  413. package/dist/components/pages/performers/SectionHeader.svelte +9 -0
  414. package/dist/components/pages/performers/SectionHeader.svelte.d.ts +28 -0
  415. package/dist/components/pages/performers/SectionHeader.svelte.d.ts.map +1 -0
  416. package/dist/components/pages/performers/ShowDetails.spec.d.ts +2 -0
  417. package/dist/components/pages/performers/ShowDetails.spec.d.ts.map +1 -0
  418. package/dist/components/pages/performers/ShowDetails.spec.js +166 -0
  419. package/dist/components/pages/performers/ShowDetails.stories.svelte +140 -0
  420. package/dist/components/pages/performers/ShowDetails.stories.svelte.d.ts +37 -0
  421. package/dist/components/pages/performers/ShowDetails.stories.svelte.d.ts.map +1 -0
  422. package/dist/components/pages/performers/ShowDetails.svelte +73 -0
  423. package/dist/components/pages/performers/ShowDetails.svelte.d.ts +44 -0
  424. package/dist/components/pages/performers/ShowDetails.svelte.d.ts.map +1 -0
  425. package/dist/components/pages/performers/ShowItemCard.spec.d.ts +2 -0
  426. package/dist/components/pages/performers/ShowItemCard.spec.d.ts.map +1 -0
  427. package/dist/components/pages/performers/ShowItemCard.spec.js +793 -0
  428. package/dist/components/pages/performers/ShowItemCard.stories.svelte +250 -0
  429. package/dist/components/pages/performers/ShowItemCard.stories.svelte.d.ts +43 -0
  430. package/dist/components/pages/performers/ShowItemCard.stories.svelte.d.ts.map +1 -0
  431. package/dist/components/pages/performers/ShowItemCard.svelte +886 -0
  432. package/dist/components/pages/performers/ShowItemCard.svelte.d.ts +54 -0
  433. package/dist/components/pages/performers/ShowItemCard.svelte.d.ts.map +1 -0
  434. package/dist/components/pages/performers/SwitchOption.spec.d.ts +2 -0
  435. package/dist/components/pages/performers/SwitchOption.spec.d.ts.map +1 -0
  436. package/dist/components/pages/performers/SwitchOption.spec.js +127 -0
  437. package/dist/components/pages/performers/SwitchOption.stories.svelte +211 -0
  438. package/dist/components/pages/performers/SwitchOption.stories.svelte.d.ts +40 -0
  439. package/dist/components/pages/performers/SwitchOption.stories.svelte.d.ts.map +1 -0
  440. package/dist/components/pages/performers/SwitchOption.svelte +24 -0
  441. package/dist/components/pages/performers/SwitchOption.svelte.d.ts +30 -0
  442. package/dist/components/pages/performers/SwitchOption.svelte.d.ts.map +1 -0
  443. package/dist/components/pages/performers/VenueInfo.spec.d.ts +2 -0
  444. package/dist/components/pages/performers/VenueInfo.spec.d.ts.map +1 -0
  445. package/dist/components/pages/performers/VenueInfo.spec.js +167 -0
  446. package/dist/components/pages/performers/VenueInfo.svelte +90 -0
  447. package/dist/components/pages/performers/VenueInfo.svelte.d.ts +32 -0
  448. package/dist/components/pages/performers/VenueInfo.svelte.d.ts.map +1 -0
  449. package/dist/components/pages/performers/VenueItemCard.spec.d.ts +2 -0
  450. package/dist/components/pages/performers/VenueItemCard.spec.d.ts.map +1 -0
  451. package/dist/components/pages/performers/VenueItemCard.spec.js +763 -0
  452. package/dist/components/pages/performers/VenueItemCard.stories.svelte +301 -0
  453. package/dist/components/pages/performers/VenueItemCard.stories.svelte.d.ts +37 -0
  454. package/dist/components/pages/performers/VenueItemCard.stories.svelte.d.ts.map +1 -0
  455. package/dist/components/pages/performers/VenueItemCard.svelte +192 -0
  456. package/dist/components/pages/performers/VenueItemCard.svelte.d.ts +66 -0
  457. package/dist/components/pages/performers/VenueItemCard.svelte.d.ts.map +1 -0
  458. package/dist/components/pages/profile/profile-form.spec.d.ts +2 -0
  459. package/dist/components/pages/profile/profile-form.spec.d.ts.map +1 -0
  460. package/dist/components/pages/profile/profile-form.spec.js +9 -0
  461. package/dist/components/pages/profile/profile-form.stories.svelte +279 -0
  462. package/dist/components/pages/profile/profile-form.stories.svelte.d.ts +48 -0
  463. package/dist/components/pages/profile/profile-form.stories.svelte.d.ts.map +1 -0
  464. package/dist/components/pages/profile/profile-form.svelte +445 -0
  465. package/dist/components/pages/profile/profile-form.svelte.d.ts +36 -0
  466. package/dist/components/pages/profile/profile-form.svelte.d.ts.map +1 -0
  467. package/dist/components/pages/profile/profile-photos.stories.svelte +69 -0
  468. package/dist/components/pages/profile/profile-photos.stories.svelte.d.ts +31 -0
  469. package/dist/components/pages/profile/profile-photos.stories.svelte.d.ts.map +1 -0
  470. package/dist/components/pages/profile/profile-photos.svelte +26 -0
  471. package/dist/components/pages/profile/profile-photos.svelte.d.ts +26 -0
  472. package/dist/components/pages/profile/profile-photos.svelte.d.ts.map +1 -0
  473. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte +166 -0
  474. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte.d.ts +49 -0
  475. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte.d.ts.map +1 -0
  476. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte +241 -0
  477. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts +38 -0
  478. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts.map +1 -0
  479. package/dist/components/pages/shows/ShowList.spec.d.ts +2 -0
  480. package/dist/components/pages/shows/ShowList.spec.d.ts.map +1 -0
  481. package/dist/components/pages/shows/ShowList.spec.js +33 -0
  482. package/dist/components/pages/shows/ShowList.stories.svelte +258 -0
  483. package/dist/components/pages/shows/ShowList.stories.svelte.d.ts +41 -0
  484. package/dist/components/pages/shows/ShowList.stories.svelte.d.ts.map +1 -0
  485. package/dist/components/pages/shows/ShowList.svelte +12 -0
  486. package/dist/components/pages/shows/ShowList.svelte.d.ts +28 -0
  487. package/dist/components/pages/shows/ShowList.svelte.d.ts.map +1 -0
  488. package/dist/components/pages/shows/TabContent.spec.d.ts +2 -0
  489. package/dist/components/pages/shows/TabContent.spec.d.ts.map +1 -0
  490. package/dist/components/pages/shows/TabContent.spec.js +90 -0
  491. package/dist/components/pages/shows/TabContent.stories.svelte +254 -0
  492. package/dist/components/pages/shows/TabContent.stories.svelte.d.ts +45 -0
  493. package/dist/components/pages/shows/TabContent.stories.svelte.d.ts.map +1 -0
  494. package/dist/components/pages/shows/TabContent.svelte +94 -0
  495. package/dist/components/pages/shows/TabContent.svelte.d.ts +32 -0
  496. package/dist/components/pages/shows/TabContent.svelte.d.ts.map +1 -0
  497. package/dist/components/pages/shows/TabNavigation.spec.d.ts +2 -0
  498. package/dist/components/pages/shows/TabNavigation.spec.d.ts.map +1 -0
  499. package/dist/components/pages/shows/TabNavigation.spec.js +143 -0
  500. package/dist/components/pages/shows/TabNavigation.stories.svelte +177 -0
  501. package/dist/components/pages/shows/TabNavigation.stories.svelte.d.ts +41 -0
  502. package/dist/components/pages/shows/TabNavigation.stories.svelte.d.ts.map +1 -0
  503. package/dist/components/pages/shows/TabNavigation.svelte +64 -0
  504. package/dist/components/pages/shows/TabNavigation.svelte.d.ts +32 -0
  505. package/dist/components/pages/shows/TabNavigation.svelte.d.ts.map +1 -0
  506. package/dist/config.js +5 -5
  507. package/dist/config.spec.js +29 -29
  508. package/dist/constants/formOptions.js +25 -25
  509. package/dist/constants/formOptions.spec.js +88 -88
  510. package/dist/index.d.ts +80 -0
  511. package/dist/index.d.ts.map +1 -0
  512. package/dist/index.js +111 -0
  513. package/dist/telemetry.js +357 -357
  514. package/dist/telemetry.server.js +211 -211
  515. package/dist/telemetry.server.spec.js +434 -434
  516. package/dist/telemetry.spec.js +660 -660
  517. package/package.json +155 -152
@@ -0,0 +1,886 @@
1
+ <script>
2
+ import { goto } from "$app/navigation";
3
+ import Icon from "../../Icons/Icon.svelte";
4
+ import Input from "../../Input/Input.svelte";
5
+ import Modal from "../../Modal/Modal.svelte";
6
+ import { showToast } from "../../../../stores/toaster";
7
+ import { microphonePlaceholder, getUserDetails } from "../../../../utils/utils";
8
+ import {
9
+ formatHour,
10
+ formattedDate,
11
+ formattedFullDate,
12
+ timeAgo,
13
+ } from "../../../../utils/utils/utils";
14
+ import {
15
+ acceptInvite,
16
+ declineInvite,
17
+ cancelInvite,
18
+ sendVenueMessage,
19
+ getEventUrl,
20
+ } from "../../../../services/ShowService";
21
+ import { Dropdown, DropdownItem } from "flowbite-svelte";
22
+ import { DotsHorizontalOutline, FileCopyOutline } from "flowbite-svelte-icons";
23
+ import { onMount } from "svelte";
24
+ import { slide } from "svelte/transition";
25
+ import { cubicOut } from "svelte/easing";
26
+ import Button from "../../Button/Button.svelte";
27
+ import Badge from "../../Badges/Badge.svelte";
28
+ import ShowDetails from "./ShowDetails.svelte";
29
+ import StatusIndicator from "../../StatusIndicator/StatusIndicator.svelte";
30
+ import ModalShowInfo from "./ModalShowInfo.svelte";
31
+
32
+ // Convert role name to Badge variant format
33
+ function getRoleVariant(role) {
34
+ // Handle "Special Guest" -> "special-guest"
35
+ return role.toLowerCase().replace(/\s+/g, "-");
36
+ }
37
+ export let venueId;
38
+ export let title;
39
+ export let role;
40
+ export let startDateTime;
41
+ export let doorsOpenTime;
42
+ export let spotDuration;
43
+ export let venueName;
44
+ export let location;
45
+ export let status;
46
+ export let details;
47
+ export let id;
48
+ export let invitationAccepted = false;
49
+ export let hasAvailability = false;
50
+ export let lastUpdated;
51
+ export let image;
52
+
53
+ let showDetails = false;
54
+ let showCancelBookingModal = false;
55
+ let showAcceptInvitation = false;
56
+ let showDeclineInvitation = false;
57
+ let showSendMessageModal = false;
58
+ let showLeaveVenue = false;
59
+ let note = "";
60
+ let message = "";
61
+ let modalIsProcessing = false;
62
+ let isModalSuccess = false;
63
+ let isModalError = false;
64
+ let lastAction = null; // Store last action for retry
65
+ let lastActionId = null;
66
+
67
+ // Copy ticket link button states
68
+ let isCopying = false;
69
+ let isCopied = false;
70
+
71
+ const showDate = startDateTime ? formattedDate(startDateTime) : null;
72
+ const showFullDate = startDateTime ? formattedFullDate(startDateTime) : null;
73
+ const formattedStartTime = startDateTime ? formatHour(startDateTime) : null;
74
+ const formattedDoorsOpenTime = doorsOpenTime ? formatHour(doorsOpenTime) : null;
75
+
76
+ const toggleModal = (modalName, value) => {
77
+ if (modalName === "accept") showAcceptInvitation = value;
78
+ if (modalName === "decline") showDeclineInvitation = value;
79
+ if (modalName === "cancelation") showCancelBookingModal = value;
80
+ if (modalName === "message") {
81
+ showSendMessageModal = value;
82
+ message = "";
83
+ }
84
+ if (modalName === "leave") showLeaveVenue = value;
85
+ modalIsProcessing = false;
86
+ isModalSuccess = false;
87
+ isModalError = false;
88
+ lastAction = null;
89
+ lastActionId = null;
90
+ // Clear the note field when any modal closes
91
+ if (!value) {
92
+ note = "";
93
+ }
94
+ };
95
+
96
+ // Minimum time to show spinner for good UX feedback (per Nielsen Norman Group research)
97
+ const MIN_LOADING_TIME = 1000; // 1 second
98
+
99
+ const handleModalAction = async (action, inviteID) => {
100
+ modalIsProcessing = true;
101
+ isModalError = false;
102
+ isModalSuccess = false;
103
+ lastAction = action;
104
+ lastActionId = inviteID;
105
+
106
+ const startTime = Date.now();
107
+ let response = null;
108
+
109
+ try {
110
+ switch (action) {
111
+ case "accept":
112
+ response = await acceptInvite(inviteID, note);
113
+ break;
114
+ case "sendMessage":
115
+ response = await sendVenueMessage(inviteID, message);
116
+ break;
117
+ case "reject":
118
+ case "decline":
119
+ response = await declineInvite(inviteID, note);
120
+ break;
121
+ case "cancel":
122
+ response = await cancelInvite(inviteID, note);
123
+ break;
124
+ default:
125
+ response = { ok: false };
126
+ }
127
+ } catch (err) {
128
+ console.error("Modal action error:", err);
129
+ response = { ok: false };
130
+ }
131
+
132
+ // Ensure minimum loading time for smooth UX
133
+ const elapsed = Date.now() - startTime;
134
+ if (elapsed < MIN_LOADING_TIME) {
135
+ await new Promise(resolve => setTimeout(resolve, MIN_LOADING_TIME - elapsed));
136
+ }
137
+
138
+ modalIsProcessing = false;
139
+ if (response.ok) {
140
+ isModalSuccess = true;
141
+ } else {
142
+ isModalError = true;
143
+ }
144
+ };
145
+
146
+ const handleRetry = () => {
147
+ if (lastAction && lastActionId) {
148
+ handleModalAction(lastAction, lastActionId);
149
+ }
150
+ };
151
+
152
+ const handleLeaveVenue = () => {
153
+ toggleModal("leave", false);
154
+ showToast(`You have left ${title} venue.`, "success");
155
+ };
156
+
157
+ const copyTicketLink = async () => {
158
+ if (isCopying || isCopied) return;
159
+
160
+ isCopying = true;
161
+ const ticketLink = getEventUrl(venueId);
162
+
163
+ // Helper function for fallback copy method
164
+ const fallbackCopy = (text) => {
165
+ const textarea = document.createElement('textarea');
166
+ textarea.value = text;
167
+ textarea.style.position = 'fixed';
168
+ textarea.style.left = '0';
169
+ textarea.style.top = '0';
170
+ textarea.style.width = '1px';
171
+ textarea.style.height = '1px';
172
+ textarea.style.padding = '0';
173
+ textarea.style.border = 'none';
174
+ textarea.style.outline = 'none';
175
+ textarea.style.boxShadow = 'none';
176
+ textarea.style.background = 'transparent';
177
+ textarea.style.opacity = '0';
178
+ textarea.setAttribute('readonly', '');
179
+ document.body.appendChild(textarea);
180
+ textarea.setSelectionRange(0, text.length);
181
+ try {
182
+ document.execCommand('copy');
183
+ return true;
184
+ } catch (e) {
185
+ return false;
186
+ } finally {
187
+ document.body.removeChild(textarea);
188
+ }
189
+ };
190
+
191
+ try {
192
+ // Try modern clipboard API first
193
+ if (navigator.clipboard && navigator.clipboard.writeText) {
194
+ await navigator.clipboard.writeText(ticketLink);
195
+ } else {
196
+ // Fallback for older browsers / mobile
197
+ const success = fallbackCopy(ticketLink);
198
+ if (!success) throw new Error('Fallback copy failed');
199
+ }
200
+
201
+ // Brief delay to show spinner before success state
202
+ await new Promise(resolve => setTimeout(resolve, 300));
203
+ isCopying = false;
204
+ isCopied = true;
205
+
206
+ // Reset after 2 seconds
207
+ setTimeout(() => {
208
+ isCopied = false;
209
+ }, 2000);
210
+ } catch (error) {
211
+ // Try fallback if modern API fails
212
+ const fallbackSuccess = fallbackCopy(ticketLink);
213
+ if (fallbackSuccess) {
214
+ await new Promise(resolve => setTimeout(resolve, 300));
215
+ isCopying = false;
216
+ isCopied = true;
217
+ setTimeout(() => {
218
+ isCopied = false;
219
+ }, 2000);
220
+ } else {
221
+ isCopying = false;
222
+ showToast("Failed to copy ticket link.", "error");
223
+ console.error("Clipboard error:", error);
224
+ }
225
+ }
226
+ };
227
+
228
+ const visitEventPage = () => {
229
+ window.open(getEventUrl(venueId), "_blank");
230
+ };
231
+
232
+ function navigateToUpdateAvailability() {
233
+ goto(`/availability/${venueId}`);
234
+ }
235
+ $: performerFullName = "";
236
+ onMount(() => {
237
+ // Get user details from token
238
+ const userDetails = getUserDetails();
239
+ if (userDetails) {
240
+ performerFullName = userDetails.full_name || "";
241
+ }
242
+ });
243
+ </script>
244
+
245
+ <div
246
+ class="w-full flex flex-col bg-bg-secondary border border-stroke-secondary p-3 sm:p-4 rounded-lg"
247
+ >
248
+ <div class="flex flex-row items-start gap-3 sm:gap-4">
249
+ <div class="w-[72px] flex flex-col items-center justify-center">
250
+ <img
251
+ src={image && image.startsWith("http")
252
+ ? image
253
+ : image
254
+ ? `https://moxy.sfo3.digitaloceanspaces.com${image}`
255
+ : microphonePlaceholder}
256
+ alt={title}
257
+ class="w-[72px] h-[72px] object-contain rounded-lg"
258
+ />
259
+ </div>
260
+ <div class="flex-1">
261
+ <h4 class="text-Text-Primary font-medium flex items-center gap-2">
262
+ {title}
263
+ </h4>
264
+ <h5 class="text-sm font-medium text-Text-Primary">
265
+ {#if showDate && formattedStartTime}
266
+ {showDate} • {formattedStartTime}
267
+ {:else}
268
+ No date yet
269
+ {/if}
270
+ </h5>
271
+ <p class="text-Text-Tartiary font-medium text-sm">
272
+ {venueName}
273
+ </p>
274
+ </div>
275
+ </div>
276
+
277
+ {#if status !== "upcoming" || (status === "upcoming" && !hasAvailability && !invitationAccepted)}
278
+ {#if status === "upcoming" && !hasAvailability && !invitationAccepted}
279
+ <!-- Upcoming show: Row 1 = Copy ticket link + Visit event page, Row 2 = Message + View details -->
280
+ <div class="flex flex-col gap-3 sm:gap-4 mt-4">
281
+ <div class="flex gap-3 sm:gap-4">
282
+ <Button
283
+ variant="gray-outline"
284
+ size="full"
285
+ loading={isCopying}
286
+ success={isCopied}
287
+ successText="Copied"
288
+ on:click={copyTicketLink}
289
+ >
290
+ <FileCopyOutline size="sm" /> Copy ticket link
291
+ </Button>
292
+ <Button variant="blue-solid" size="full" on:click={visitEventPage}>
293
+ Visit event page
294
+ </Button>
295
+ </div>
296
+ <div class="flex gap-3 sm:gap-4">
297
+ <Button
298
+ variant="blue-outline"
299
+ size="full"
300
+ on:click={() => toggleModal("message", true)}
301
+ >
302
+ <Icon name="Message" size={18} /> Message
303
+ </Button>
304
+ <Button
305
+ variant="blue-outline"
306
+ size="full"
307
+ on:click={(e) => {
308
+ showDetails = !showDetails;
309
+ e.currentTarget.blur();
310
+ }}
311
+ >
312
+ {#if showDetails}
313
+ Close details
314
+ <span class="transform rotate-180">
315
+ <Icon name="DownArrow" size={18} />
316
+ </span>
317
+ {:else}
318
+ View details
319
+ <span>
320
+ <Icon name="DownArrow" size={18} />
321
+ </span>
322
+ {/if}
323
+ </Button>
324
+ </div>
325
+ </div>
326
+ {:else}
327
+ <!-- Other statuses: View details + Message -->
328
+ <div class="flex gap-3 sm:gap-4 mt-4">
329
+ <Button
330
+ variant="blue-outline"
331
+ size="full"
332
+ on:click={(e) => {
333
+ showDetails = !showDetails;
334
+ e.currentTarget.blur();
335
+ }}
336
+ >
337
+ {#if showDetails}
338
+ Close details
339
+ <span class="transform rotate-180">
340
+ <Icon name="DownArrow" size={18} />
341
+ </span>
342
+ {:else}
343
+ View details
344
+ <span>
345
+ <Icon name="DownArrow" size={18} />
346
+ </span>
347
+ {/if}
348
+ </Button>
349
+ {#if status !== "declined" && status !== "past"}
350
+ <Button
351
+ variant="blue-outline"
352
+ size="full"
353
+ on:click={() => toggleModal("message", true)}
354
+ >
355
+ <Icon name="Message" size={18} /> Message
356
+ </Button>
357
+ {/if}
358
+ </div>
359
+ {/if}
360
+ {/if}
361
+
362
+ {#if showDetails}
363
+ <div class="mt-4" transition:slide={{ duration: 300, easing: cubicOut }}>
364
+ <ShowDetails
365
+ {...details}
366
+ {formattedDoorsOpenTime}
367
+ {showFullDate}
368
+ {formattedStartTime}
369
+ {status}
370
+ {role}
371
+ onToggleModal={toggleModal}
372
+ />
373
+ </div>
374
+ {/if}
375
+
376
+ {#if status !== "declined" && status !== "past"}
377
+ <div class="mt-3 sm:mt-4">
378
+ <div class="flex gap-3 sm:gap-4">
379
+ {#if status === "invitations"}
380
+ <Button
381
+ variant="red-solid"
382
+ size="full"
383
+ on:click={() => toggleModal("decline", true)}
384
+ >
385
+ <Icon name="ErrorCircle" size={16} /> Decline
386
+ </Button>
387
+ <Button responsive size="full" on:click={() => toggleModal("accept", true)}>
388
+ <Icon name="CheckCircle" size={16} /> Confirm
389
+ </Button>
390
+ {/if}
391
+ </div>
392
+
393
+ {#if status === "upcoming" && (hasAvailability || invitationAccepted)}
394
+ {#if invitationAccepted && !hasAvailability}
395
+ <div class="flex flex-row gap-2">
396
+ <div
397
+ class="flex-1 bg-red-50 text-sm text-red-700 font-semibold rounded-lg flex flex-col justify-center p-2"
398
+ >
399
+ Please update your availability.
400
+ </div>
401
+ <Button variant="red-solid">Set up</Button>
402
+
403
+ <DotsHorizontalOutline
404
+ data-testid="dropdown-menu"
405
+ triggeredBy=".more-menu"
406
+ class="more-menu text-primary-700 border border-primary-700 rounded-lg h-auto w-9 px-1.5 hover:bg-primary-50 cursor-pointer transition-colors"
407
+ />
408
+
409
+ <Dropdown
410
+ class="shadow-none min-w-[200px]"
411
+ triggeredBy=".more-menu"
412
+ >
413
+ <DropdownItem
414
+ class="text-red-600"
415
+ on:click={() => toggleModal("leave", true)}
416
+ >
417
+ Leave this venue
418
+ </DropdownItem>
419
+ </Dropdown>
420
+ </div>
421
+ {:else}
422
+ <div class="flex flex-row gap-2">
423
+ <div
424
+ class="flex-1 text-sm text-Text-Tartiary rounded-lg flex flex-col justify-center p-2"
425
+ >
426
+ Last updated: {timeAgo(lastUpdated)}
427
+ </div>
428
+ <Button
429
+ variant="gray-outline"
430
+ on:click={() => navigateToUpdateAvailability()}>Update</Button
431
+ >
432
+
433
+ <DotsHorizontalOutline
434
+ data-testid="dropdown-menu"
435
+ triggeredBy=".more-menu"
436
+ class="more-menu text-primary-700 border border-primary-700 rounded-lg h-auto w-9 px-1.5 hover:bg-primary-50 cursor-pointer transition-colors"
437
+ />
438
+
439
+ <Dropdown
440
+ class="shadow-none min-w-[200px]"
441
+ triggeredBy=".more-menu"
442
+ >
443
+ <DropdownItem
444
+ class="text-red-600"
445
+ on:click={() => toggleModal("leave", true)}
446
+ >
447
+ Leave this venue
448
+ </DropdownItem>
449
+ </Dropdown>
450
+ </div>
451
+ {/if}
452
+ {/if}
453
+ </div>
454
+ {/if}
455
+
456
+ <!-- Show Accepted Invitation Modal -->
457
+ <Modal
458
+ bind:show={showAcceptInvitation}
459
+ isProcessing={modalIsProcessing}
460
+ isSuccess={isModalSuccess}
461
+ >
462
+ <h2 slot="header" class="text-xl font-medium text-Text-Primary">
463
+ {#if !modalIsProcessing && !isModalSuccess && !isModalError}
464
+ Confirm booking
465
+ {:else if isModalSuccess}
466
+ Booking confirmed
467
+ {:else if isModalError}
468
+ Something went wrong
469
+ {/if}
470
+ </h2>
471
+ <div slot="body">
472
+ {#if modalIsProcessing || isModalSuccess || isModalError}
473
+ <div class="modal-status-container">
474
+ <StatusIndicator status={modalIsProcessing ? "loading" : isModalSuccess ? "success" : "error"} />
475
+ </div>
476
+ {:else}
477
+ <ModalShowInfo
478
+ {image}
479
+ {title}
480
+ {showDate}
481
+ {formattedStartTime}
482
+ {venueName}
483
+ />
484
+ <p class="text-sm font-medium text-Text-Tartiary mt-2">
485
+ Any additional notes? (Optional)
486
+ </p>
487
+ <Input
488
+ type="textarea"
489
+ id="notes"
490
+ bind:value={note}
491
+ placeholder="Type your message"
492
+ textareaSize="lg"
493
+ className="mt-1"
494
+ />
495
+ {/if}
496
+ </div>
497
+ <div slot="footer" class="w-full">
498
+ {#if !modalIsProcessing}
499
+ <div class="w-full flex items-center justify-between md:justify-end gap-4 mt-5">
500
+ {#if isModalSuccess}
501
+ <Button responsive size="full" on:click={() => window.location.reload()}>
502
+ OK
503
+ </Button>
504
+ {:else if isModalError}
505
+ <Button
506
+ variant="gray-outline"
507
+ size="half"
508
+ minWidth="modal-responsive"
509
+ on:click={() => toggleModal("accept", false)}
510
+ >
511
+ Cancel
512
+ </Button>
513
+ <Button responsive size="half" minWidth="modal-responsive" on:click={handleRetry}>
514
+ Try again
515
+ </Button>
516
+ {:else}
517
+ <Button
518
+ variant="gray-outline"
519
+ size="half"
520
+ minWidth="modal-responsive"
521
+ on:click={(e) => {
522
+ e.stopPropagation();
523
+ toggleModal("accept", false);
524
+ }}
525
+ >
526
+ Cancel
527
+ </Button>
528
+ <Button
529
+ responsive
530
+ size="half"
531
+ minWidth="modal-responsive"
532
+ on:click={() => handleModalAction("accept", id)}
533
+ >
534
+ <Icon name="CheckCircle" size={16} /> Confirm
535
+ </Button>
536
+ {/if}
537
+ </div>
538
+ {/if}
539
+ </div>
540
+ </Modal>
541
+
542
+ <!-- Show Decline Invitation Modal -->
543
+ <Modal
544
+ bind:show={showDeclineInvitation}
545
+ isProcessing={modalIsProcessing}
546
+ isSuccess={isModalSuccess}
547
+ >
548
+ <h2 slot="header" class="text-xl font-medium text-Text-Primary">
549
+ {#if !modalIsProcessing && !isModalSuccess && !isModalError}
550
+ Decline booking
551
+ {:else if isModalSuccess}
552
+ Booking declined
553
+ {:else if isModalError}
554
+ Something went wrong
555
+ {/if}
556
+ </h2>
557
+ <div slot="body">
558
+ {#if modalIsProcessing || isModalSuccess || isModalError}
559
+ <div class="modal-status-container">
560
+ <StatusIndicator status={modalIsProcessing ? "loading" : isModalSuccess ? "success" : "error"} />
561
+ </div>
562
+ {:else}
563
+ <ModalShowInfo
564
+ {image}
565
+ {title}
566
+ {showDate}
567
+ {formattedStartTime}
568
+ {venueName}
569
+ />
570
+ <p class="text-sm font-medium text-Text-Tartiary mt-2">
571
+ Any additional notes? (Optional)
572
+ </p>
573
+ <Input
574
+ type="textarea"
575
+ id="notes"
576
+ bind:value={note}
577
+ placeholder="Type your message"
578
+ textareaSize="lg"
579
+ className="mt-1"
580
+ />
581
+ {/if}
582
+ </div>
583
+ <div slot="footer" class="w-full">
584
+ {#if !modalIsProcessing}
585
+ <div class="w-full flex items-center justify-between md:justify-end gap-4 mt-5">
586
+ {#if isModalSuccess}
587
+ <Button responsive size="full" on:click={() => window.location.reload()}>
588
+ OK
589
+ </Button>
590
+ {:else if isModalError}
591
+ <Button
592
+ variant="gray-outline"
593
+ size="half"
594
+ minWidth="modal-responsive"
595
+ on:click={() => toggleModal("decline", false)}
596
+ >
597
+ Cancel
598
+ </Button>
599
+ <Button responsive size="half" minWidth="modal-responsive" on:click={handleRetry}>
600
+ Try again
601
+ </Button>
602
+ {:else}
603
+ <Button
604
+ variant="gray-outline"
605
+ size="half"
606
+ minWidth="modal-responsive"
607
+ on:click={(e) => {
608
+ e.stopPropagation();
609
+ toggleModal("decline", false);
610
+ }}
611
+ >
612
+ Cancel
613
+ </Button>
614
+ <Button
615
+ variant="red-solid"
616
+ size="half"
617
+ minWidth="modal-responsive"
618
+ on:click={() => handleModalAction("decline", id)}
619
+ >
620
+ Decline
621
+ </Button>
622
+ {/if}
623
+ </div>
624
+ {/if}
625
+ </div>
626
+ </Modal>
627
+
628
+ <!-- Send Message Modal -->
629
+ <Modal
630
+ bind:show={showSendMessageModal}
631
+ isProcessing={modalIsProcessing}
632
+ isSuccess={isModalSuccess}
633
+ >
634
+ <h2 slot="header" class="text-xl font-medium text-Text-Primary">
635
+ {#if !modalIsProcessing && !isModalSuccess && !isModalError}
636
+ New message
637
+ {:else if isModalSuccess}
638
+ Message sent
639
+ {:else if isModalError}
640
+ Something went wrong
641
+ {/if}
642
+ </h2>
643
+ <div slot="body">
644
+ {#if modalIsProcessing || isModalSuccess || isModalError}
645
+ <div class="modal-status-container">
646
+ <StatusIndicator status={modalIsProcessing ? "loading" : isModalSuccess ? "success" : "error"} />
647
+ </div>
648
+ {:else}
649
+ <ModalShowInfo
650
+ {image}
651
+ {title}
652
+ {showDate}
653
+ {formattedStartTime}
654
+ {venueName}
655
+ />
656
+ <Input
657
+ type="textarea"
658
+ id="message"
659
+ bind:value={message}
660
+ placeholder="Type your message"
661
+ textareaSize="lg"
662
+ className="mt-2"
663
+ />
664
+ {/if}
665
+ </div>
666
+ <div slot="footer" class="w-full">
667
+ {#if !modalIsProcessing}
668
+ <div class="w-full flex items-center justify-between md:justify-end gap-4 mt-5">
669
+ {#if isModalSuccess}
670
+ <Button responsive size="full" on:click={() => toggleModal("message", false)}>
671
+ OK
672
+ </Button>
673
+ {:else if isModalError}
674
+ <Button
675
+ variant="gray-outline"
676
+ size="half"
677
+ minWidth="modal-responsive"
678
+ on:click={() => toggleModal("message", false)}
679
+ >
680
+ Cancel
681
+ </Button>
682
+ <Button responsive size="half" minWidth="modal-responsive" on:click={handleRetry}>
683
+ Try again
684
+ </Button>
685
+ {:else}
686
+ <Button
687
+ variant="gray-outline"
688
+ size="half"
689
+ minWidth="modal-responsive"
690
+ on:click={(e) => {
691
+ e.stopPropagation();
692
+ toggleModal("message", false);
693
+ }}
694
+ >
695
+ Cancel
696
+ </Button>
697
+ <Button
698
+ responsive
699
+ size="half"
700
+ minWidth="modal-responsive"
701
+ on:click={() => handleModalAction("sendMessage", id)}
702
+ >
703
+ <Icon name="Message" size={18} /> Send
704
+ </Button>
705
+ {/if}
706
+ </div>
707
+ {/if}
708
+ </div>
709
+ </Modal>
710
+
711
+ <!-- Show Cancel Booking Modal -->
712
+ <Modal
713
+ bind:show={showCancelBookingModal}
714
+ isProcessing={modalIsProcessing}
715
+ isSuccess={isModalSuccess}
716
+ >
717
+ <h2 slot="header" class="text-xl font-medium text-Text-Primary">
718
+ {#if !modalIsProcessing && !isModalSuccess && !isModalError}
719
+ Cancel booking
720
+ {:else if isModalSuccess}
721
+ Booking canceled
722
+ {:else if isModalError}
723
+ Something went wrong
724
+ {/if}
725
+ </h2>
726
+ <div slot="body">
727
+ {#if modalIsProcessing || isModalSuccess || isModalError}
728
+ <div class="modal-status-container">
729
+ <StatusIndicator status={modalIsProcessing ? "loading" : isModalSuccess ? "success" : "error"} />
730
+ </div>
731
+ {:else}
732
+ <ModalShowInfo
733
+ {image}
734
+ {title}
735
+ {showDate}
736
+ {formattedStartTime}
737
+ {venueName}
738
+ />
739
+ <p class="text-sm font-medium text-Text-Tartiary mt-2">
740
+ Any additional notes? (Optional)
741
+ </p>
742
+ <Input
743
+ type="textarea"
744
+ id="notes"
745
+ bind:value={note}
746
+ placeholder="Type your message"
747
+ textareaSize="lg"
748
+ className="mt-1"
749
+ />
750
+ {/if}
751
+ </div>
752
+ <div slot="footer" class="w-full">
753
+ {#if !modalIsProcessing}
754
+ <div class="w-full flex items-center justify-between md:justify-end gap-4 mt-5">
755
+ {#if isModalSuccess}
756
+ <Button responsive size="full" on:click={() => window.location.reload()}>
757
+ OK
758
+ </Button>
759
+ {:else if isModalError}
760
+ <Button
761
+ variant="gray-outline"
762
+ size="half"
763
+ minWidth="modal-responsive"
764
+ on:click={() => toggleModal("cancelation", false)}
765
+ >
766
+ Cancel
767
+ </Button>
768
+ <Button responsive size="half" minWidth="modal-responsive" on:click={handleRetry}>
769
+ Try again
770
+ </Button>
771
+ {:else}
772
+ <Button
773
+ variant="gray-outline"
774
+ size="half"
775
+ minWidth="modal-responsive"
776
+ on:click={(e) => {
777
+ e.stopPropagation();
778
+ toggleModal("cancelation", false);
779
+ }}
780
+ >
781
+ Close
782
+ </Button>
783
+ <Button
784
+ variant="red-solid"
785
+ size="half"
786
+ minWidth="modal-responsive"
787
+ on:click={() => handleModalAction("cancel", id)}
788
+ >
789
+ Yes, cancel
790
+ </Button>
791
+ {/if}
792
+ </div>
793
+ {/if}
794
+ </div>
795
+ </Modal>
796
+
797
+ <!-- Leave the Venue Modal -->
798
+ <Modal
799
+ bind:show={showLeaveVenue}
800
+ isProcessing={modalIsProcessing}
801
+ isSuccess={isModalSuccess}
802
+ >
803
+ <h2 slot="header" class="text-xl font-medium text-Text-Primary">
804
+ {#if !modalIsProcessing && !isModalSuccess && !isModalError}
805
+ Are you sure you want to leave this venue?
806
+ {:else if isModalSuccess}
807
+ Left venue
808
+ {:else if isModalError}
809
+ Something went wrong
810
+ {/if}
811
+ </h2>
812
+ <div slot="body">
813
+ {#if modalIsProcessing || isModalSuccess || isModalError}
814
+ <div class="modal-status-container">
815
+ <StatusIndicator status={modalIsProcessing ? "loading" : isModalSuccess ? "success" : "error"} />
816
+ </div>
817
+ {:else}
818
+ <p class="text-sm font-medium text-Text-Tartiary mt-4">
819
+ You will no longer receive availability update requests. If you'd like
820
+ to include a note, leave it here.
821
+ </p>
822
+ <Input
823
+ type="textarea"
824
+ id="notes"
825
+ placeholder="Enter your note here"
826
+ bind:value={note}
827
+ textareaSize="lg"
828
+ className="mt-1"
829
+ />
830
+ {/if}
831
+ </div>
832
+ <div slot="footer" class="w-full">
833
+ {#if !modalIsProcessing}
834
+ <div class="w-full flex items-center justify-between md:justify-end gap-4 mt-5">
835
+ {#if isModalSuccess}
836
+ <Button responsive size="full" on:click={() => window.location.reload()}>
837
+ OK
838
+ </Button>
839
+ {:else if isModalError}
840
+ <Button
841
+ variant="gray-outline"
842
+ size="half"
843
+ minWidth="modal-responsive"
844
+ on:click={() => toggleModal("leave", false)}
845
+ >
846
+ Cancel
847
+ </Button>
848
+ <Button responsive size="half" minWidth="modal-responsive" on:click={handleRetry}>
849
+ Try again
850
+ </Button>
851
+ {:else}
852
+ <Button
853
+ variant="gray-outline"
854
+ size="half"
855
+ minWidth="modal-responsive"
856
+ on:click={(e) => {
857
+ e.stopPropagation();
858
+ toggleModal("leave", false);
859
+ }}
860
+ >
861
+ Cancel
862
+ </Button>
863
+ <Button
864
+ variant="red-outline"
865
+ size="half"
866
+ minWidth="modal-responsive"
867
+ on:click={handleLeaveVenue}
868
+ >
869
+ Leave
870
+ </Button>
871
+ {/if}
872
+ </div>
873
+ {/if}
874
+ </div>
875
+ </Modal>
876
+ </div>
877
+
878
+ <style>
879
+ .modal-status-container {
880
+ display: flex;
881
+ justify-content: center;
882
+ align-items: center;
883
+ min-height: 180px;
884
+ padding: 2rem 0;
885
+ }
886
+ </style>