@getmicdrop/svelte-components 1.0.1 → 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 (508) hide show
  1. package/dist/components/Alert/Alert.spec.d.ts +2 -0
  2. package/dist/components/Alert/Alert.spec.d.ts.map +1 -0
  3. package/dist/components/Alert/Alert.spec.js +170 -0
  4. package/dist/components/Alert/Alert.svelte +54 -0
  5. package/dist/components/Alert/Alert.svelte.d.ts +40 -0
  6. package/dist/components/Alert/Alert.svelte.d.ts.map +1 -0
  7. package/dist/components/Alert/AlertAudit.stories.svelte +241 -0
  8. package/dist/components/Alert/AlertAudit.stories.svelte.d.ts +31 -0
  9. package/dist/components/Alert/AlertAudit.stories.svelte.d.ts.map +1 -0
  10. package/dist/components/Badges/Badge.spec.d.ts +2 -0
  11. package/dist/components/Badges/Badge.spec.d.ts.map +1 -0
  12. package/dist/components/Badges/Badge.spec.js +103 -0
  13. package/dist/components/Badges/Badge.stories.svelte +87 -0
  14. package/dist/components/Badges/Badge.stories.svelte.d.ts +47 -0
  15. package/dist/components/Badges/Badge.stories.svelte.d.ts.map +1 -0
  16. package/dist/components/Badges/Badge.svelte +182 -0
  17. package/dist/components/Badges/Badge.svelte.d.ts +38 -0
  18. package/dist/components/Badges/Badge.svelte.d.ts.map +1 -0
  19. package/dist/components/Badges/BadgeAudit.stories.svelte +238 -0
  20. package/dist/components/Badges/BadgeAudit.stories.svelte.d.ts +31 -0
  21. package/dist/components/Badges/BadgeAudit.stories.svelte.d.ts.map +1 -0
  22. package/dist/components/BottomSheet/BottomSheet.spec.d.ts +2 -0
  23. package/dist/components/BottomSheet/BottomSheet.spec.d.ts.map +1 -0
  24. package/dist/components/BottomSheet/BottomSheet.spec.js +127 -0
  25. package/dist/components/BottomSheet/BottomSheet.stories.svelte +91 -0
  26. package/dist/components/BottomSheet/BottomSheet.stories.svelte.d.ts +45 -0
  27. package/dist/components/BottomSheet/BottomSheet.stories.svelte.d.ts.map +1 -0
  28. package/dist/components/BottomSheet/BottomSheet.svelte +171 -0
  29. package/dist/components/BottomSheet/BottomSheet.svelte.d.ts +40 -0
  30. package/dist/components/BottomSheet/BottomSheet.svelte.d.ts.map +1 -0
  31. package/dist/components/Breadcrumb/Breadcrumb.spec.d.ts +2 -0
  32. package/dist/components/Breadcrumb/Breadcrumb.spec.d.ts.map +1 -0
  33. package/dist/components/Breadcrumb/Breadcrumb.spec.js +120 -0
  34. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte +24 -0
  35. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte.d.ts +36 -0
  36. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte.d.ts.map +1 -0
  37. package/dist/components/Breadcrumb/Breadcrumb.svelte +50 -0
  38. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts +30 -0
  39. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -0
  40. package/dist/components/Button/Button.spec.d.ts +2 -0
  41. package/dist/components/Button/Button.spec.d.ts.map +1 -0
  42. package/dist/components/Button/Button.spec.js +211 -0
  43. package/dist/components/Button/Button.stories.svelte +111 -0
  44. package/dist/components/Button/Button.stories.svelte.d.ts +59 -0
  45. package/dist/components/Button/Button.stories.svelte.d.ts.map +1 -0
  46. package/dist/components/Button/Button.svelte +642 -0
  47. package/dist/components/Button/Button.svelte.d.ts +68 -0
  48. package/dist/components/Button/Button.svelte.d.ts.map +1 -0
  49. package/dist/components/Button/ButtonAudit.stories.svelte +333 -0
  50. package/dist/components/Button/ButtonAudit.stories.svelte.d.ts +33 -0
  51. package/dist/components/Button/ButtonAudit.stories.svelte.d.ts.map +1 -0
  52. package/dist/components/Button/ButtonSaveDemo.spec.d.ts +2 -0
  53. package/dist/components/Button/ButtonSaveDemo.spec.d.ts.map +1 -0
  54. package/dist/components/Button/ButtonSaveDemo.spec.js +48 -0
  55. package/dist/components/Button/ButtonSaveDemo.svelte +24 -0
  56. package/dist/components/Button/ButtonSaveDemo.svelte.d.ts +26 -0
  57. package/dist/components/Button/ButtonSaveDemo.svelte.d.ts.map +1 -0
  58. package/dist/components/Calendar/Calendar.spec.d.ts +2 -0
  59. package/dist/components/Calendar/Calendar.spec.d.ts.map +1 -0
  60. package/dist/components/Calendar/Calendar.spec.js +131 -0
  61. package/dist/components/Calendar/Calendar.svelte +1115 -0
  62. package/dist/components/Calendar/Calendar.svelte.d.ts +52 -0
  63. package/dist/components/Calendar/Calendar.svelte.d.ts.map +1 -0
  64. package/dist/components/Calendar/QuarterView.spec.d.ts +2 -0
  65. package/dist/components/Calendar/QuarterView.spec.d.ts.map +1 -0
  66. package/dist/components/Calendar/QuarterView.spec.js +394 -0
  67. package/dist/components/Calendar/QuarterView.stories.svelte +134 -0
  68. package/dist/components/Calendar/QuarterView.stories.svelte.d.ts +40 -0
  69. package/dist/components/Calendar/QuarterView.stories.svelte.d.ts.map +1 -0
  70. package/dist/components/Calendar/QuarterView.svelte +736 -0
  71. package/dist/components/Calendar/QuarterView.svelte.d.ts +30 -0
  72. package/dist/components/Calendar/QuarterView.svelte.d.ts.map +1 -0
  73. package/dist/components/Card.spec.d.ts +2 -0
  74. package/dist/components/Card.spec.d.ts.map +1 -0
  75. package/dist/components/Card.spec.js +47 -0
  76. package/dist/components/Card.stories.svelte +26 -0
  77. package/dist/components/Card.stories.svelte.d.ts +36 -0
  78. package/dist/components/Card.stories.svelte.d.ts.map +1 -0
  79. package/dist/components/Card.svelte +9 -0
  80. package/dist/components/Card.svelte.d.ts +30 -0
  81. package/dist/components/Card.svelte.d.ts.map +1 -0
  82. package/dist/components/CardAudit.stories.svelte +175 -0
  83. package/dist/components/CardAudit.stories.svelte.d.ts +31 -0
  84. package/dist/components/CardAudit.stories.svelte.d.ts.map +1 -0
  85. package/dist/components/CropImage/CropImage.spec.d.ts +2 -0
  86. package/dist/components/CropImage/CropImage.spec.d.ts.map +1 -0
  87. package/dist/components/CropImage/CropImage.spec.js +216 -0
  88. package/dist/components/CropImage/CropImage.stories.svelte +133 -0
  89. package/dist/components/CropImage/CropImage.stories.svelte.d.ts +40 -0
  90. package/dist/components/CropImage/CropImage.stories.svelte.d.ts.map +1 -0
  91. package/dist/components/CropImage/CropImage.svelte +311 -0
  92. package/dist/components/CropImage/CropImage.svelte.d.ts +34 -0
  93. package/dist/components/CropImage/CropImage.svelte.d.ts.map +1 -0
  94. package/dist/components/DarkModeToggle.spec.d.ts +2 -0
  95. package/dist/components/DarkModeToggle.spec.d.ts.map +1 -0
  96. package/dist/components/DarkModeToggle.spec.js +357 -0
  97. package/dist/components/DarkModeToggle.stories.svelte +55 -0
  98. package/dist/components/DarkModeToggle.stories.svelte.d.ts +32 -0
  99. package/dist/components/DarkModeToggle.stories.svelte.d.ts.map +1 -0
  100. package/dist/components/DarkModeToggle.svelte +245 -0
  101. package/dist/components/DarkModeToggle.svelte.d.ts +26 -0
  102. package/dist/components/DarkModeToggle.svelte.d.ts.map +1 -0
  103. package/dist/components/ErrorDisplay.spec.d.ts +2 -0
  104. package/dist/components/ErrorDisplay.spec.d.ts.map +1 -0
  105. package/dist/components/ErrorDisplay.spec.js +69 -0
  106. package/dist/components/ErrorDisplay.stories.svelte +115 -0
  107. package/dist/components/ErrorDisplay.stories.svelte.d.ts +62 -0
  108. package/dist/components/ErrorDisplay.stories.svelte.d.ts.map +1 -0
  109. package/dist/components/ErrorDisplay.svelte +58 -0
  110. package/dist/components/ErrorDisplay.svelte.d.ts +36 -0
  111. package/dist/components/ErrorDisplay.svelte.d.ts.map +1 -0
  112. package/dist/components/FormActions.spec.d.ts +2 -0
  113. package/dist/components/FormActions.spec.d.ts.map +1 -0
  114. package/dist/components/FormActions.spec.js +88 -0
  115. package/dist/components/FormActions.stories.svelte +98 -0
  116. package/dist/components/FormActions.stories.svelte.d.ts +57 -0
  117. package/dist/components/FormActions.stories.svelte.d.ts.map +1 -0
  118. package/dist/components/FormActions.svelte +67 -0
  119. package/dist/components/FormActions.svelte.d.ts +48 -0
  120. package/dist/components/FormActions.svelte.d.ts.map +1 -0
  121. package/dist/components/FormValidationSummary.spec.d.ts +2 -0
  122. package/dist/components/FormValidationSummary.spec.d.ts.map +1 -0
  123. package/dist/components/FormValidationSummary.spec.js +203 -0
  124. package/dist/components/FormValidationSummary.stories.svelte +95 -0
  125. package/dist/components/FormValidationSummary.stories.svelte.d.ts +32 -0
  126. package/dist/components/FormValidationSummary.stories.svelte.d.ts.map +1 -0
  127. package/dist/components/FormValidationSummary.svelte +83 -0
  128. package/dist/components/FormValidationSummary.svelte.d.ts +32 -0
  129. package/dist/components/FormValidationSummary.svelte.d.ts.map +1 -0
  130. package/dist/components/Icons/ArrowLeft.svelte +21 -0
  131. package/dist/components/Icons/ArrowLeft.svelte.d.ts +28 -0
  132. package/dist/components/Icons/ArrowLeft.svelte.d.ts.map +1 -0
  133. package/dist/components/Icons/ArrowRight.svelte +21 -0
  134. package/dist/components/Icons/ArrowRight.svelte.d.ts +28 -0
  135. package/dist/components/Icons/ArrowRight.svelte.d.ts.map +1 -0
  136. package/dist/components/Icons/Availability.svelte +28 -0
  137. package/dist/components/Icons/Availability.svelte.d.ts +28 -0
  138. package/dist/components/Icons/Availability.svelte.d.ts.map +1 -0
  139. package/dist/components/Icons/Back.svelte +28 -0
  140. package/dist/components/Icons/Back.svelte.d.ts +28 -0
  141. package/dist/components/Icons/Back.svelte.d.ts.map +1 -0
  142. package/dist/components/Icons/CheckCircle.svelte +20 -0
  143. package/dist/components/Icons/CheckCircle.svelte.d.ts +28 -0
  144. package/dist/components/Icons/CheckCircle.svelte.d.ts.map +1 -0
  145. package/dist/components/Icons/CheckCircleOutline.svelte +28 -0
  146. package/dist/components/Icons/CheckCircleOutline.svelte.d.ts +28 -0
  147. package/dist/components/Icons/CheckCircleOutline.svelte.d.ts.map +1 -0
  148. package/dist/components/Icons/ChevronLeft.svelte +18 -0
  149. package/dist/components/Icons/ChevronLeft.svelte.d.ts +28 -0
  150. package/dist/components/Icons/ChevronLeft.svelte.d.ts.map +1 -0
  151. package/dist/components/Icons/ChevronRight.svelte +18 -0
  152. package/dist/components/Icons/ChevronRight.svelte.d.ts +28 -0
  153. package/dist/components/Icons/ChevronRight.svelte.d.ts.map +1 -0
  154. package/dist/components/Icons/Copy.svelte +28 -0
  155. package/dist/components/Icons/Copy.svelte.d.ts +28 -0
  156. package/dist/components/Icons/Copy.svelte.d.ts.map +1 -0
  157. package/dist/components/Icons/Cross.svelte +18 -0
  158. package/dist/components/Icons/Cross.svelte.d.ts +28 -0
  159. package/dist/components/Icons/Cross.svelte.d.ts.map +1 -0
  160. package/dist/components/Icons/DownArrow.svelte +21 -0
  161. package/dist/components/Icons/DownArrow.svelte.d.ts +28 -0
  162. package/dist/components/Icons/DownArrow.svelte.d.ts.map +1 -0
  163. package/dist/components/Icons/ErrorCircle.svelte +20 -0
  164. package/dist/components/Icons/ErrorCircle.svelte.d.ts +28 -0
  165. package/dist/components/Icons/ErrorCircle.svelte.d.ts.map +1 -0
  166. package/dist/components/Icons/FacebookIcon.svelte +14 -0
  167. package/dist/components/Icons/FacebookIcon.svelte.d.ts +28 -0
  168. package/dist/components/Icons/FacebookIcon.svelte.d.ts.map +1 -0
  169. package/dist/components/Icons/Home.svelte +29 -0
  170. package/dist/components/Icons/Home.svelte.d.ts +28 -0
  171. package/dist/components/Icons/Home.svelte.d.ts.map +1 -0
  172. package/dist/components/Icons/Icon.spec.d.ts +2 -0
  173. package/dist/components/Icons/Icon.spec.d.ts.map +1 -0
  174. package/dist/components/Icons/Icon.spec.js +175 -0
  175. package/dist/components/Icons/Icon.stories.svelte +101 -0
  176. package/dist/components/Icons/Icon.stories.svelte.d.ts +44 -0
  177. package/dist/components/Icons/Icon.stories.svelte.d.ts.map +1 -0
  178. package/dist/components/Icons/Icon.svelte +66 -0
  179. package/dist/components/Icons/Icon.svelte.d.ts +30 -0
  180. package/dist/components/Icons/Icon.svelte.d.ts.map +1 -0
  181. package/dist/components/Icons/IconGallery.stories.svelte +233 -0
  182. package/dist/components/Icons/IconGallery.stories.svelte.d.ts +30 -0
  183. package/dist/components/Icons/IconGallery.stories.svelte.d.ts.map +1 -0
  184. package/dist/components/Icons/Info.svelte +20 -0
  185. package/dist/components/Icons/Info.svelte.d.ts +28 -0
  186. package/dist/components/Icons/Info.svelte.d.ts.map +1 -0
  187. package/dist/components/Icons/InstagramIcon.svelte +20 -0
  188. package/dist/components/Icons/InstagramIcon.svelte.d.ts +28 -0
  189. package/dist/components/Icons/InstagramIcon.svelte.d.ts.map +1 -0
  190. package/dist/components/Icons/Message.svelte +28 -0
  191. package/dist/components/Icons/Message.svelte.d.ts +28 -0
  192. package/dist/components/Icons/Message.svelte.d.ts.map +1 -0
  193. package/dist/components/Icons/MoonIcon.svelte +17 -0
  194. package/dist/components/Icons/MoonIcon.svelte.d.ts +28 -0
  195. package/dist/components/Icons/MoonIcon.svelte.d.ts.map +1 -0
  196. package/dist/components/Icons/More.svelte +35 -0
  197. package/dist/components/Icons/More.svelte.d.ts +28 -0
  198. package/dist/components/Icons/More.svelte.d.ts.map +1 -0
  199. package/dist/components/Icons/MoreHori.spec.d.ts +2 -0
  200. package/dist/components/Icons/MoreHori.spec.d.ts.map +1 -0
  201. package/dist/components/Icons/MoreHori.spec.js +67 -0
  202. package/dist/components/Icons/MoreHori.svelte +35 -0
  203. package/dist/components/Icons/MoreHori.svelte.d.ts +28 -0
  204. package/dist/components/Icons/MoreHori.svelte.d.ts.map +1 -0
  205. package/dist/components/Icons/Notification.svelte +28 -0
  206. package/dist/components/Icons/Notification.svelte.d.ts +28 -0
  207. package/dist/components/Icons/Notification.svelte.d.ts.map +1 -0
  208. package/dist/components/Icons/Payment.svelte +28 -0
  209. package/dist/components/Icons/Payment.svelte.d.ts +28 -0
  210. package/dist/components/Icons/Payment.svelte.d.ts.map +1 -0
  211. package/dist/components/Icons/Profile.svelte +35 -0
  212. package/dist/components/Icons/Profile.svelte.d.ts +28 -0
  213. package/dist/components/Icons/Profile.svelte.d.ts.map +1 -0
  214. package/dist/components/Icons/Reload.svelte +42 -0
  215. package/dist/components/Icons/Reload.svelte.d.ts +28 -0
  216. package/dist/components/Icons/Reload.svelte.d.ts.map +1 -0
  217. package/dist/components/Icons/Shows.svelte +35 -0
  218. package/dist/components/Icons/Shows.svelte.d.ts +28 -0
  219. package/dist/components/Icons/Shows.svelte.d.ts.map +1 -0
  220. package/dist/components/Icons/Signout.svelte +35 -0
  221. package/dist/components/Icons/Signout.svelte.d.ts +28 -0
  222. package/dist/components/Icons/Signout.svelte.d.ts.map +1 -0
  223. package/dist/components/Icons/SunIcon.svelte +20 -0
  224. package/dist/components/Icons/SunIcon.svelte.d.ts +28 -0
  225. package/dist/components/Icons/SunIcon.svelte.d.ts.map +1 -0
  226. package/dist/components/Icons/TiktokIcon.svelte +14 -0
  227. package/dist/components/Icons/TiktokIcon.svelte.d.ts +28 -0
  228. package/dist/components/Icons/TiktokIcon.svelte.d.ts.map +1 -0
  229. package/dist/components/Icons/TwitterIcon.svelte +14 -0
  230. package/dist/components/Icons/TwitterIcon.svelte.d.ts +28 -0
  231. package/dist/components/Icons/TwitterIcon.svelte.d.ts.map +1 -0
  232. package/dist/components/Icons/WarningIcon.spec.d.ts +2 -0
  233. package/dist/components/Icons/WarningIcon.spec.d.ts.map +1 -0
  234. package/dist/components/Icons/WarningIcon.spec.js +30 -0
  235. package/dist/components/Icons/WarningIcon.svelte +24 -0
  236. package/dist/components/Icons/WarningIcon.svelte.d.ts +26 -0
  237. package/dist/components/Icons/WarningIcon.svelte.d.ts.map +1 -0
  238. package/dist/components/Input/Input.spec.d.ts +2 -0
  239. package/dist/components/Input/Input.spec.d.ts.map +1 -0
  240. package/dist/components/Input/Input.spec.js +573 -0
  241. package/dist/components/Input/Input.stories.svelte +140 -0
  242. package/dist/components/Input/Input.stories.svelte.d.ts +80 -0
  243. package/dist/components/Input/Input.stories.svelte.d.ts.map +1 -0
  244. package/dist/components/Input/Input.svelte +721 -0
  245. package/dist/components/Input/Input.svelte.d.ts +96 -0
  246. package/dist/components/Input/Input.svelte.d.ts.map +1 -0
  247. package/dist/components/Input/InputAudit.stories.svelte +483 -0
  248. package/dist/components/Input/InputAudit.stories.svelte.d.ts +31 -0
  249. package/dist/components/Input/InputAudit.stories.svelte.d.ts.map +1 -0
  250. package/dist/components/Input/MultiSelect.spec.d.ts +2 -0
  251. package/dist/components/Input/MultiSelect.spec.d.ts.map +1 -0
  252. package/dist/components/Input/MultiSelect.spec.js +257 -0
  253. package/dist/components/Input/MultiSelect.stories.svelte +138 -0
  254. package/dist/components/Input/MultiSelect.stories.svelte.d.ts +32 -0
  255. package/dist/components/Input/MultiSelect.stories.svelte.d.ts.map +1 -0
  256. package/dist/components/Input/MultiSelect.svelte +557 -0
  257. package/dist/components/Input/MultiSelect.svelte.d.ts +50 -0
  258. package/dist/components/Input/MultiSelect.svelte.d.ts.map +1 -0
  259. package/dist/components/Input/OTPInput.spec.d.ts +2 -0
  260. package/dist/components/Input/OTPInput.spec.d.ts.map +1 -0
  261. package/dist/components/Input/OTPInput.spec.js +238 -0
  262. package/dist/components/Input/OTPInput.stories.svelte +167 -0
  263. package/dist/components/Input/OTPInput.stories.svelte.d.ts +48 -0
  264. package/dist/components/Input/OTPInput.stories.svelte.d.ts.map +1 -0
  265. package/dist/components/Input/OTPInput.svelte +117 -0
  266. package/dist/components/Input/OTPInput.svelte.d.ts +42 -0
  267. package/dist/components/Input/OTPInput.svelte.d.ts.map +1 -0
  268. package/dist/components/Input/Select.spec.d.ts +2 -0
  269. package/dist/components/Input/Select.spec.d.ts.map +1 -0
  270. package/dist/components/Input/Select.spec.js +218 -0
  271. package/dist/components/Input/Select.svelte +385 -0
  272. package/dist/components/Input/Select.svelte.d.ts +48 -0
  273. package/dist/components/Input/Select.svelte.d.ts.map +1 -0
  274. package/dist/components/Input/SelectAudit.stories.svelte +364 -0
  275. package/dist/components/Input/SelectAudit.stories.svelte.d.ts +31 -0
  276. package/dist/components/Input/SelectAudit.stories.svelte.d.ts.map +1 -0
  277. package/dist/components/Layout/BottomNav.spec.d.ts +2 -0
  278. package/dist/components/Layout/BottomNav.spec.d.ts.map +1 -0
  279. package/dist/components/Layout/BottomNav.spec.js +130 -0
  280. package/dist/components/Layout/BottomNav.stories.svelte +115 -0
  281. package/dist/components/Layout/BottomNav.stories.svelte.d.ts +32 -0
  282. package/dist/components/Layout/BottomNav.stories.svelte.d.ts.map +1 -0
  283. package/dist/components/Layout/BottomNav.svelte +120 -0
  284. package/dist/components/Layout/BottomNav.svelte.d.ts +26 -0
  285. package/dist/components/Layout/BottomNav.svelte.d.ts.map +1 -0
  286. package/dist/components/Layout/Header.spec.d.ts +2 -0
  287. package/dist/components/Layout/Header.spec.d.ts.map +1 -0
  288. package/dist/components/Layout/Header.spec.js +203 -0
  289. package/dist/components/Layout/Header.stories.svelte +78 -0
  290. package/dist/components/Layout/Header.stories.svelte.d.ts +47 -0
  291. package/dist/components/Layout/Header.stories.svelte.d.ts.map +1 -0
  292. package/dist/components/Layout/Header.svelte +528 -0
  293. package/dist/components/Layout/Header.svelte.d.ts +42 -0
  294. package/dist/components/Layout/Header.svelte.d.ts.map +1 -0
  295. package/dist/components/Modal/ConfirmationModal.spec.d.ts +2 -0
  296. package/dist/components/Modal/ConfirmationModal.spec.d.ts.map +1 -0
  297. package/dist/components/Modal/ConfirmationModal.spec.js +191 -0
  298. package/dist/components/Modal/ConfirmationModal.stories.svelte +124 -0
  299. package/dist/components/Modal/ConfirmationModal.stories.svelte.d.ts +45 -0
  300. package/dist/components/Modal/ConfirmationModal.stories.svelte.d.ts.map +1 -0
  301. package/dist/components/Modal/ConfirmationModal.svelte +105 -0
  302. package/dist/components/Modal/ConfirmationModal.svelte.d.ts +38 -0
  303. package/dist/components/Modal/ConfirmationModal.svelte.d.ts.map +1 -0
  304. package/dist/components/Modal/Modal.spec.d.ts +2 -0
  305. package/dist/components/Modal/Modal.spec.d.ts.map +1 -0
  306. package/dist/components/Modal/Modal.spec.js +95 -0
  307. package/dist/components/Modal/Modal.stories.svelte +83 -0
  308. package/dist/components/Modal/Modal.stories.svelte.d.ts +31 -0
  309. package/dist/components/Modal/Modal.stories.svelte.d.ts.map +1 -0
  310. package/dist/components/Modal/Modal.svelte +234 -0
  311. package/dist/components/Modal/Modal.svelte.d.ts +46 -0
  312. package/dist/components/Modal/Modal.svelte.d.ts.map +1 -0
  313. package/dist/components/Modal/ModalAudit.stories.svelte +329 -0
  314. package/dist/components/Modal/ModalAudit.stories.svelte.d.ts +31 -0
  315. package/dist/components/Modal/ModalAudit.stories.svelte.d.ts.map +1 -0
  316. package/dist/components/Modal/ModalStateManager.spec.d.ts +2 -0
  317. package/dist/components/Modal/ModalStateManager.spec.d.ts.map +1 -0
  318. package/dist/components/Modal/ModalStateManager.spec.js +100 -0
  319. package/dist/components/Modal/ModalStateManager.svelte +67 -0
  320. package/dist/components/Modal/ModalStateManager.svelte.d.ts +48 -0
  321. package/dist/components/Modal/ModalStateManager.svelte.d.ts.map +1 -0
  322. package/dist/components/Modal/ModalTestWrapper.svelte +21 -0
  323. package/dist/components/Modal/ModalTestWrapper.svelte.d.ts +36 -0
  324. package/dist/components/Modal/ModalTestWrapper.svelte.d.ts.map +1 -0
  325. package/dist/components/PageLoader.spec.d.ts +2 -0
  326. package/dist/components/PageLoader.spec.d.ts.map +1 -0
  327. package/dist/components/PageLoader.spec.js +54 -0
  328. package/dist/components/PageLoader.stories.svelte +145 -0
  329. package/dist/components/PageLoader.stories.svelte.d.ts +53 -0
  330. package/dist/components/PageLoader.stories.svelte.d.ts.map +1 -0
  331. package/dist/components/PageLoader.svelte +52 -0
  332. package/dist/components/PageLoader.svelte.d.ts +42 -0
  333. package/dist/components/PageLoader.svelte.d.ts.map +1 -0
  334. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.d.ts +2 -0
  335. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.d.ts.map +1 -0
  336. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +173 -0
  337. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +101 -0
  338. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +36 -0
  339. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -0
  340. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.spec.d.ts +2 -0
  341. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.spec.d.ts.map +1 -0
  342. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.spec.js +300 -0
  343. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +168 -0
  344. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts +60 -0
  345. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts.map +1 -0
  346. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte +431 -0
  347. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts +29 -0
  348. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -0
  349. package/dist/components/Spinner/Spinner.spec.d.ts +2 -0
  350. package/dist/components/Spinner/Spinner.spec.d.ts.map +1 -0
  351. package/dist/components/Spinner/Spinner.spec.js +75 -0
  352. package/dist/components/Spinner/Spinner.stories.svelte +30 -0
  353. package/dist/components/Spinner/Spinner.stories.svelte.d.ts +31 -0
  354. package/dist/components/Spinner/Spinner.stories.svelte.d.ts.map +1 -0
  355. package/dist/components/Spinner/Spinner.svelte +19 -0
  356. package/dist/components/Spinner/Spinner.svelte.d.ts +26 -0
  357. package/dist/components/Spinner/Spinner.svelte.d.ts.map +1 -0
  358. package/dist/components/StatusIndicator/StatusIndicator.spec.d.ts +2 -0
  359. package/dist/components/StatusIndicator/StatusIndicator.spec.d.ts.map +1 -0
  360. package/dist/components/StatusIndicator/StatusIndicator.spec.js +129 -0
  361. package/dist/components/StatusIndicator/StatusIndicator.svelte +206 -0
  362. package/dist/components/StatusIndicator/StatusIndicator.svelte.d.ts +28 -0
  363. package/dist/components/StatusIndicator/StatusIndicator.svelte.d.ts.map +1 -0
  364. package/dist/components/Toaster/Toaster.stories.svelte +61 -0
  365. package/dist/components/Toaster/Toaster.stories.svelte.d.ts +29 -0
  366. package/dist/components/Toaster/Toaster.stories.svelte.d.ts.map +1 -0
  367. package/dist/components/Toggle.spec.d.ts +2 -0
  368. package/dist/components/Toggle.spec.d.ts.map +1 -0
  369. package/dist/components/Toggle.spec.js +158 -0
  370. package/dist/components/Toggle.stories.svelte +93 -0
  371. package/dist/components/Toggle.stories.svelte.d.ts +41 -0
  372. package/dist/components/Toggle.stories.svelte.d.ts.map +1 -0
  373. package/dist/components/Toggle.svelte +79 -0
  374. package/dist/components/Toggle.svelte.d.ts +32 -0
  375. package/dist/components/Toggle.svelte.d.ts.map +1 -0
  376. package/dist/components/ValidationError.spec.d.ts +2 -0
  377. package/dist/components/ValidationError.spec.d.ts.map +1 -0
  378. package/dist/components/ValidationError.spec.js +79 -0
  379. package/dist/components/ValidationError.stories.svelte +88 -0
  380. package/dist/components/ValidationError.stories.svelte.d.ts +41 -0
  381. package/dist/components/ValidationError.stories.svelte.d.ts.map +1 -0
  382. package/dist/components/ValidationError.svelte +19 -0
  383. package/dist/components/ValidationError.svelte.d.ts +28 -0
  384. package/dist/components/ValidationError.svelte.d.ts.map +1 -0
  385. package/dist/components/pages/performers/AvailabilityCalendarModal.spec.d.ts +2 -0
  386. package/dist/components/pages/performers/AvailabilityCalendarModal.spec.d.ts.map +1 -0
  387. package/dist/components/pages/performers/AvailabilityCalendarModal.spec.js +606 -0
  388. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte +632 -0
  389. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte.d.ts +36 -0
  390. package/dist/components/pages/performers/AvailabilityCalendarModal.svelte.d.ts.map +1 -0
  391. package/dist/components/pages/performers/ModalShowInfo.spec.d.ts +2 -0
  392. package/dist/components/pages/performers/ModalShowInfo.spec.d.ts.map +1 -0
  393. package/dist/components/pages/performers/ModalShowInfo.spec.js +124 -0
  394. package/dist/components/pages/performers/ModalShowInfo.svelte +88 -0
  395. package/dist/components/pages/performers/ModalShowInfo.svelte.d.ts +34 -0
  396. package/dist/components/pages/performers/ModalShowInfo.svelte.d.ts.map +1 -0
  397. package/dist/components/pages/performers/PageBackButton.spec.d.ts +2 -0
  398. package/dist/components/pages/performers/PageBackButton.spec.d.ts.map +1 -0
  399. package/dist/components/pages/performers/PageBackButton.spec.js +89 -0
  400. package/dist/components/pages/performers/PageBackButton.stories.svelte +72 -0
  401. package/dist/components/pages/performers/PageBackButton.stories.svelte.d.ts +36 -0
  402. package/dist/components/pages/performers/PageBackButton.stories.svelte.d.ts.map +1 -0
  403. package/dist/components/pages/performers/PageBackButton.svelte +13 -0
  404. package/dist/components/pages/performers/PageBackButton.svelte.d.ts +26 -0
  405. package/dist/components/pages/performers/PageBackButton.svelte.d.ts.map +1 -0
  406. package/dist/components/pages/performers/SectionHeader.spec.d.ts +2 -0
  407. package/dist/components/pages/performers/SectionHeader.spec.d.ts.map +1 -0
  408. package/dist/components/pages/performers/SectionHeader.spec.js +75 -0
  409. package/dist/components/pages/performers/SectionHeader.stories.svelte +100 -0
  410. package/dist/components/pages/performers/SectionHeader.stories.svelte.d.ts +41 -0
  411. package/dist/components/pages/performers/SectionHeader.stories.svelte.d.ts.map +1 -0
  412. package/dist/components/pages/performers/SectionHeader.svelte +9 -0
  413. package/dist/components/pages/performers/SectionHeader.svelte.d.ts +28 -0
  414. package/dist/components/pages/performers/SectionHeader.svelte.d.ts.map +1 -0
  415. package/dist/components/pages/performers/ShowDetails.spec.d.ts +2 -0
  416. package/dist/components/pages/performers/ShowDetails.spec.d.ts.map +1 -0
  417. package/dist/components/pages/performers/ShowDetails.spec.js +166 -0
  418. package/dist/components/pages/performers/ShowDetails.stories.svelte +140 -0
  419. package/dist/components/pages/performers/ShowDetails.stories.svelte.d.ts +37 -0
  420. package/dist/components/pages/performers/ShowDetails.stories.svelte.d.ts.map +1 -0
  421. package/dist/components/pages/performers/ShowDetails.svelte +73 -0
  422. package/dist/components/pages/performers/ShowDetails.svelte.d.ts +44 -0
  423. package/dist/components/pages/performers/ShowDetails.svelte.d.ts.map +1 -0
  424. package/dist/components/pages/performers/ShowItemCard.spec.d.ts +2 -0
  425. package/dist/components/pages/performers/ShowItemCard.spec.d.ts.map +1 -0
  426. package/dist/components/pages/performers/ShowItemCard.spec.js +793 -0
  427. package/dist/components/pages/performers/ShowItemCard.stories.svelte +250 -0
  428. package/dist/components/pages/performers/ShowItemCard.stories.svelte.d.ts +43 -0
  429. package/dist/components/pages/performers/ShowItemCard.stories.svelte.d.ts.map +1 -0
  430. package/dist/components/pages/performers/ShowItemCard.svelte +886 -0
  431. package/dist/components/pages/performers/ShowItemCard.svelte.d.ts +54 -0
  432. package/dist/components/pages/performers/ShowItemCard.svelte.d.ts.map +1 -0
  433. package/dist/components/pages/performers/SwitchOption.spec.d.ts +2 -0
  434. package/dist/components/pages/performers/SwitchOption.spec.d.ts.map +1 -0
  435. package/dist/components/pages/performers/SwitchOption.spec.js +127 -0
  436. package/dist/components/pages/performers/SwitchOption.stories.svelte +211 -0
  437. package/dist/components/pages/performers/SwitchOption.stories.svelte.d.ts +40 -0
  438. package/dist/components/pages/performers/SwitchOption.stories.svelte.d.ts.map +1 -0
  439. package/dist/components/pages/performers/SwitchOption.svelte +24 -0
  440. package/dist/components/pages/performers/SwitchOption.svelte.d.ts +30 -0
  441. package/dist/components/pages/performers/SwitchOption.svelte.d.ts.map +1 -0
  442. package/dist/components/pages/performers/VenueInfo.spec.d.ts +2 -0
  443. package/dist/components/pages/performers/VenueInfo.spec.d.ts.map +1 -0
  444. package/dist/components/pages/performers/VenueInfo.spec.js +167 -0
  445. package/dist/components/pages/performers/VenueInfo.svelte +90 -0
  446. package/dist/components/pages/performers/VenueInfo.svelte.d.ts +32 -0
  447. package/dist/components/pages/performers/VenueInfo.svelte.d.ts.map +1 -0
  448. package/dist/components/pages/performers/VenueItemCard.spec.d.ts +2 -0
  449. package/dist/components/pages/performers/VenueItemCard.spec.d.ts.map +1 -0
  450. package/dist/components/pages/performers/VenueItemCard.spec.js +763 -0
  451. package/dist/components/pages/performers/VenueItemCard.stories.svelte +301 -0
  452. package/dist/components/pages/performers/VenueItemCard.stories.svelte.d.ts +37 -0
  453. package/dist/components/pages/performers/VenueItemCard.stories.svelte.d.ts.map +1 -0
  454. package/dist/components/pages/performers/VenueItemCard.svelte +192 -0
  455. package/dist/components/pages/performers/VenueItemCard.svelte.d.ts +66 -0
  456. package/dist/components/pages/performers/VenueItemCard.svelte.d.ts.map +1 -0
  457. package/dist/components/pages/profile/profile-form.spec.d.ts +2 -0
  458. package/dist/components/pages/profile/profile-form.spec.d.ts.map +1 -0
  459. package/dist/components/pages/profile/profile-form.spec.js +9 -0
  460. package/dist/components/pages/profile/profile-form.stories.svelte +279 -0
  461. package/dist/components/pages/profile/profile-form.stories.svelte.d.ts +48 -0
  462. package/dist/components/pages/profile/profile-form.stories.svelte.d.ts.map +1 -0
  463. package/dist/components/pages/profile/profile-form.svelte +445 -0
  464. package/dist/components/pages/profile/profile-form.svelte.d.ts +36 -0
  465. package/dist/components/pages/profile/profile-form.svelte.d.ts.map +1 -0
  466. package/dist/components/pages/profile/profile-photos.stories.svelte +69 -0
  467. package/dist/components/pages/profile/profile-photos.stories.svelte.d.ts +31 -0
  468. package/dist/components/pages/profile/profile-photos.stories.svelte.d.ts.map +1 -0
  469. package/dist/components/pages/profile/profile-photos.svelte +26 -0
  470. package/dist/components/pages/profile/profile-photos.svelte.d.ts +26 -0
  471. package/dist/components/pages/profile/profile-photos.svelte.d.ts.map +1 -0
  472. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte +166 -0
  473. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte.d.ts +49 -0
  474. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte.d.ts.map +1 -0
  475. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte +241 -0
  476. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts +38 -0
  477. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts.map +1 -0
  478. package/dist/components/pages/shows/ShowList.spec.d.ts +2 -0
  479. package/dist/components/pages/shows/ShowList.spec.d.ts.map +1 -0
  480. package/dist/components/pages/shows/ShowList.spec.js +33 -0
  481. package/dist/components/pages/shows/ShowList.stories.svelte +258 -0
  482. package/dist/components/pages/shows/ShowList.stories.svelte.d.ts +41 -0
  483. package/dist/components/pages/shows/ShowList.stories.svelte.d.ts.map +1 -0
  484. package/dist/components/pages/shows/ShowList.svelte +12 -0
  485. package/dist/components/pages/shows/ShowList.svelte.d.ts +28 -0
  486. package/dist/components/pages/shows/ShowList.svelte.d.ts.map +1 -0
  487. package/dist/components/pages/shows/TabContent.spec.d.ts +2 -0
  488. package/dist/components/pages/shows/TabContent.spec.d.ts.map +1 -0
  489. package/dist/components/pages/shows/TabContent.spec.js +90 -0
  490. package/dist/components/pages/shows/TabContent.stories.svelte +254 -0
  491. package/dist/components/pages/shows/TabContent.stories.svelte.d.ts +45 -0
  492. package/dist/components/pages/shows/TabContent.stories.svelte.d.ts.map +1 -0
  493. package/dist/components/pages/shows/TabContent.svelte +94 -0
  494. package/dist/components/pages/shows/TabContent.svelte.d.ts +32 -0
  495. package/dist/components/pages/shows/TabContent.svelte.d.ts.map +1 -0
  496. package/dist/components/pages/shows/TabNavigation.spec.d.ts +2 -0
  497. package/dist/components/pages/shows/TabNavigation.spec.d.ts.map +1 -0
  498. package/dist/components/pages/shows/TabNavigation.spec.js +143 -0
  499. package/dist/components/pages/shows/TabNavigation.stories.svelte +177 -0
  500. package/dist/components/pages/shows/TabNavigation.stories.svelte.d.ts +41 -0
  501. package/dist/components/pages/shows/TabNavigation.stories.svelte.d.ts.map +1 -0
  502. package/dist/components/pages/shows/TabNavigation.svelte +64 -0
  503. package/dist/components/pages/shows/TabNavigation.svelte.d.ts +32 -0
  504. package/dist/components/pages/shows/TabNavigation.svelte.d.ts.map +1 -0
  505. package/dist/index.d.ts +80 -0
  506. package/dist/index.d.ts.map +1 -0
  507. package/dist/index.js +111 -0
  508. package/package.json +5 -2
@@ -0,0 +1,191 @@
1
+ import { render, screen, fireEvent, waitFor } from "@testing-library/svelte";
2
+ import userEvent from "@testing-library/user-event";
3
+ import { expect, describe, test, vi } from "vitest";
4
+ import ConfirmationModal from "./ConfirmationModal.svelte";
5
+
6
+ const defaultActions = [
7
+ { label: "Cancel", onClick: vi.fn(), variant: "gray-outline" },
8
+ { label: "Confirm", onClick: vi.fn(), variant: "blue-solid" },
9
+ ];
10
+
11
+ function setupTest(args = {}) {
12
+ const user = userEvent.setup();
13
+ const { component } = render(ConfirmationModal, {
14
+ props: {
15
+ show: true,
16
+ title: "Test Modal",
17
+ description: "This is a test description",
18
+ actions: defaultActions.map((a) => ({ ...a, onClick: vi.fn() })),
19
+ ...args,
20
+ },
21
+ });
22
+ return { user, component };
23
+ }
24
+
25
+ describe("ConfirmationModal Component Tests", () => {
26
+ // Note: Modal renders both mobile sheet and desktop centered versions
27
+ // CSS hides one based on viewport, but in tests both are in DOM
28
+ // Use getAllByText/queryAllByText and check length or first element
29
+
30
+ test("Does not render when show is false", () => {
31
+ render(ConfirmationModal, { props: { show: false } });
32
+ expect(screen.queryByText("Test Modal")).not.toBeInTheDocument();
33
+ });
34
+
35
+ test("Renders when show is true", () => {
36
+ setupTest();
37
+ // Modal renders both mobile and desktop versions
38
+ expect(screen.getAllByText("Test Modal").length).toBeGreaterThan(0);
39
+ });
40
+
41
+ test("Displays title", () => {
42
+ setupTest({ title: "Confirm Delete" });
43
+ expect(screen.getAllByText("Confirm Delete").length).toBeGreaterThan(0);
44
+ });
45
+
46
+ test("Displays description", () => {
47
+ setupTest({ description: "Are you sure you want to proceed?" });
48
+ expect(
49
+ screen.getAllByText("Are you sure you want to proceed?").length
50
+ ).toBeGreaterThan(0);
51
+ });
52
+
53
+ test("Displays warning text when provided", () => {
54
+ setupTest({ warningText: "This action cannot be undone" });
55
+ expect(
56
+ screen.getAllByText("This action cannot be undone").length
57
+ ).toBeGreaterThan(0);
58
+ });
59
+
60
+ test("Warning text has danger styling", () => {
61
+ setupTest({ warningText: "Warning!" });
62
+ const warning = screen.getAllByText("Warning!")[0];
63
+ expect(warning).toHaveClass("text-accent-Danger");
64
+ expect(warning).toHaveClass("font-bold");
65
+ });
66
+
67
+ test("Renders action buttons", () => {
68
+ const actions = [
69
+ { label: "No", onClick: vi.fn() },
70
+ { label: "Yes", onClick: vi.fn() },
71
+ ];
72
+ setupTest({ actions });
73
+ expect(screen.getAllByText("No").length).toBeGreaterThan(0);
74
+ expect(screen.getAllByText("Yes").length).toBeGreaterThan(0);
75
+ });
76
+
77
+ test("Calls action onClick when button clicked", async () => {
78
+ const cancelFn = vi.fn();
79
+ const confirmFn = vi.fn();
80
+ const actions = [
81
+ { label: "Cancel", onClick: cancelFn },
82
+ { label: "Confirm", onClick: confirmFn },
83
+ ];
84
+ const { user } = setupTest({ actions });
85
+
86
+ // Click the first Confirm button (both mobile and desktop versions exist)
87
+ await user.click(screen.getAllByText("Confirm")[0]);
88
+ expect(confirmFn).toHaveBeenCalled();
89
+ });
90
+
91
+ test("Dispatches event with action label", async () => {
92
+ const confirmFn = vi.fn();
93
+ const actions = [{ label: "Delete", onClick: confirmFn }];
94
+ const { user, component } = setupTest({ actions });
95
+
96
+ const deleteSpy = vi.fn();
97
+ component.$on("delete", deleteSpy);
98
+
99
+ await user.click(screen.getAllByText("Delete")[0]);
100
+ expect(deleteSpy).toHaveBeenCalled();
101
+ });
102
+
103
+ test("Shows close button when closeBtn is true", () => {
104
+ setupTest({ closeBtn: true });
105
+ const closeImg = document.querySelector('img[alt="Close Icon"]');
106
+ expect(closeImg).toBeInTheDocument();
107
+ });
108
+
109
+ test("Does not show close button by default", () => {
110
+ setupTest({ closeBtn: false });
111
+ const closeImg = document.querySelector('img[alt="Close Icon"]');
112
+ expect(closeImg).not.toBeInTheDocument();
113
+ });
114
+
115
+ test("Shows icon when provided", () => {
116
+ setupTest({ icon: "/test-icon.svg" });
117
+ const icon = document.querySelector('img[alt="Icon here"]');
118
+ expect(icon).toBeInTheDocument();
119
+ expect(icon).toHaveAttribute("src", "/test-icon.svg");
120
+ });
121
+
122
+ test("Does not show icon by default", () => {
123
+ setupTest();
124
+ const icon = document.querySelector('img[alt="Icon here"]');
125
+ expect(icon).not.toBeInTheDocument();
126
+ });
127
+
128
+ test("Maps danger action to red-solid variant", async () => {
129
+ const actions = [{ label: "Delete", onClick: vi.fn(), danger: true }];
130
+ setupTest({ actions });
131
+ const button = screen.getAllByText("Delete")[0].closest("button");
132
+ expect(button).toHaveClass("btn-red-solid");
133
+ });
134
+
135
+ test("Maps strokebtn + danger to red-outline variant", async () => {
136
+ const actions = [
137
+ { label: "Remove", onClick: vi.fn(), strokebtn: true, danger: true },
138
+ ];
139
+ setupTest({ actions });
140
+ const button = screen.getAllByText("Remove")[0].closest("button, a");
141
+ expect(button).toHaveClass("btn-red-outline");
142
+ });
143
+
144
+ test("Maps strokebtn + deemphasized to gray-outline variant", async () => {
145
+ const actions = [
146
+ { label: "Cancel", onClick: vi.fn(), strokebtn: true, deemphasized: true },
147
+ ];
148
+ setupTest({ actions });
149
+ const button = screen.getAllByText("Cancel")[0].closest("button, a");
150
+ expect(button).toHaveClass("btn-gray-outline");
151
+ });
152
+
153
+ test("Maps textBtn + danger to red-text variant", async () => {
154
+ const actions = [
155
+ { label: "Delete Text", onClick: vi.fn(), textBtn: true, danger: true },
156
+ ];
157
+ setupTest({ actions });
158
+ const button = screen.getAllByText("Delete Text")[0].closest("button, a");
159
+ expect(button).toHaveClass("btn-red-text");
160
+ });
161
+
162
+ test("Uses explicit variant when provided", async () => {
163
+ const actions = [
164
+ { label: "Custom", onClick: vi.fn(), variant: "blue-outline" },
165
+ ];
166
+ setupTest({ actions });
167
+ const button = screen.getAllByText("Custom")[0].closest("button, a");
168
+ expect(button).toHaveClass("btn-blue-outline");
169
+ });
170
+
171
+ test("Auto-maps Delete label to red-solid variant", async () => {
172
+ const actions = [{ label: "Delete", onClick: vi.fn() }];
173
+ setupTest({ actions });
174
+ const button = screen.getAllByText("Delete")[0].closest("button, a");
175
+ expect(button).toHaveClass("btn-red-solid");
176
+ });
177
+
178
+ test("Title has proper styling", () => {
179
+ setupTest({ title: "Modal Title" });
180
+ const title = screen.getAllByText("Modal Title")[0];
181
+ expect(title.tagName).toBe("H2");
182
+ expect(title).toHaveClass("text-xl");
183
+ });
184
+
185
+ test("Description has proper styling", () => {
186
+ setupTest({ description: "Description text" });
187
+ const desc = screen.getAllByText("Description text")[0];
188
+ expect(desc).toHaveClass("text-Text-Tartiary");
189
+ expect(desc).toHaveClass("text-sm");
190
+ });
191
+ });
@@ -0,0 +1,124 @@
1
+ <script context="module">
2
+ import Modal from "./ConfirmationModal.svelte";
3
+
4
+ import SuccessIcon from "./../../assets/svg/Success-icon.svg";
5
+ import AttachmentIcon from "./../../assets/svg/attachment-square.svg";
6
+ import TickIcon from "./../../assets/icons/tick-01.png";
7
+
8
+ import ArrowLeft from "./../../assets/svg/arrow-left-02.svg";
9
+
10
+ export const meta = {
11
+ title: "Components/Modal",
12
+ component: Modal,
13
+ argTypes: {
14
+ title: { control: "text" },
15
+ description: { control: "text" },
16
+ warningText: { control: "text" },
17
+ },
18
+ };
19
+ </script>
20
+
21
+ <script>
22
+ import { Story, Template } from "@storybook/addon-svelte-csf";
23
+
24
+ function handleAction(label) {
25
+ console.log(label + " action triggered");
26
+ }
27
+ </script>
28
+
29
+ <Template let:args>
30
+ <Modal
31
+ {...args}
32
+ on:cancel={() => handleAction("cancel")}
33
+ on:confirm={() => handleAction("confirm")}
34
+ ></Modal>
35
+ </Template>
36
+
37
+ <Story
38
+ name="Interactive Custom Modal"
39
+ args={{
40
+ show: true,
41
+ title: "Are you sure?",
42
+ description: "Please confirm that you want to proceed with this action.",
43
+ warningText: "This action is irreversible!",
44
+ actions: [
45
+ {
46
+ label: "Cancel",
47
+ onClick: () => console.log("Cancelled"),
48
+ variant: "gray-outline",
49
+ },
50
+ { label: "Confirm", onClick: () => console.log("Confirmed") },
51
+ ],
52
+ icon: SuccessIcon,
53
+ }}
54
+ ></Story>
55
+
56
+ <Story
57
+ name="Success Modal"
58
+ args={{
59
+ show: true,
60
+ title: "Avail requests sent",
61
+ actions: [{ label: "Confirm", onClick: () => console.log("Confirmed") }],
62
+ icon: SuccessIcon,
63
+ }}
64
+ ></Story>
65
+
66
+ <Story
67
+ name="Confirm Modal"
68
+ args={{
69
+ show: true,
70
+ title: "Create New Tracking Link",
71
+ description:
72
+ "Enter a name for your tracking link. This name will be used for reference on your dashboard.",
73
+ actions: [
74
+ {
75
+ label: "Cancel",
76
+ onClick: () => console.log("Cancelled"),
77
+ variant: "gray-outline",
78
+ },
79
+ { label: "Confirm", onClick: () => console.log("Confirmed") },
80
+ ],
81
+ icon: AttachmentIcon,
82
+ }}
83
+ ></Story>
84
+
85
+ <Story
86
+ name="Password Reset Modal"
87
+ args={{
88
+ show: true,
89
+ title: "Password Reset!",
90
+ description:
91
+ "Your password has been successfully reset, click below to continue your access.",
92
+ actions: [
93
+ {
94
+ label: "Return to the login Screen",
95
+ onClick: () => console.log("Cancelled"),
96
+ variant: "blue-outline",
97
+ beforeIcon: ArrowLeft,
98
+ },
99
+ ],
100
+ icon: TickIcon,
101
+ }}
102
+ ></Story>
103
+
104
+ <Story
105
+ name="Info Modal"
106
+ args={{
107
+ show: true,
108
+ title: "Please fill out your profile",
109
+ description:
110
+ "Your information may be used for show promotion, so please provide as much as you can.",
111
+ actions: [{ label: "Confirm", onClick: () => console.log("Confirmed") }],
112
+ }}
113
+ ></Story>
114
+
115
+ <Story
116
+ name="Warning Modal"
117
+ args={{
118
+ show: true,
119
+ title: "Are you sure?",
120
+ description: "Please confirm that you want to proceed with this action.",
121
+ closeBtn: true,
122
+ warningText: "This action is irreversible!",
123
+ }}
124
+ />
@@ -0,0 +1,45 @@
1
+ export namespace meta {
2
+ export let title: string;
3
+ export { Modal as component };
4
+ export namespace argTypes {
5
+ export namespace title_1 {
6
+ let control: string;
7
+ }
8
+ export { title_1 as title };
9
+ export namespace description {
10
+ let control_1: string;
11
+ export { control_1 as control };
12
+ }
13
+ export namespace warningText {
14
+ let control_2: string;
15
+ export { control_2 as control };
16
+ }
17
+ }
18
+ }
19
+ /** @typedef {typeof __propDef.props} ConfirmationModalProps */
20
+ /** @typedef {typeof __propDef.events} ConfirmationModalEvents */
21
+ /** @typedef {typeof __propDef.slots} ConfirmationModalSlots */
22
+ export default class ConfirmationModal extends SvelteComponent<{
23
+ [x: string]: never;
24
+ }, {
25
+ [evt: string]: CustomEvent<any>;
26
+ }, {}> {
27
+ }
28
+ export type ConfirmationModalProps = typeof __propDef.props;
29
+ export type ConfirmationModalEvents = typeof __propDef.events;
30
+ export type ConfirmationModalSlots = typeof __propDef.slots;
31
+ import Modal from "./ConfirmationModal.svelte";
32
+ import { SvelteComponent } from "svelte";
33
+ declare const __propDef: {
34
+ props: {
35
+ [x: string]: never;
36
+ };
37
+ events: {
38
+ [evt: string]: CustomEvent<any>;
39
+ };
40
+ slots: {};
41
+ exports?: undefined;
42
+ bindings?: undefined;
43
+ };
44
+ export {};
45
+ //# sourceMappingURL=ConfirmationModal.stories.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmationModal.stories.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Modal/ConfirmationModal.stories.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAgHA,gEAAgE;AAChE,kEAAkE;AAClE,gEAAgE;AAEhE;;;;;CACC;qCALa,OAAO,SAAS,CAAC,KAAK;sCACtB,OAAO,SAAS,CAAC,MAAM;qCACvB,OAAO,SAAS,CAAC,KAAK;kBA/GhB,4BAA4B;gCAHhB,QAAQ;AA+GxC;;;;;;;;;;EAAgF"}
@@ -0,0 +1,105 @@
1
+ <script>
2
+ import { createEventDispatcher } from "svelte";
3
+ import Button from "../Button/Button.svelte";
4
+ import Cancel from "../../assets/svg/cancel.svg";
5
+ import Modal from "./Modal.svelte";
6
+
7
+ export let show = false;
8
+ export let title = "";
9
+ export let description = "";
10
+ export let warningText = "";
11
+ export let actions = [];
12
+ export let icon = null;
13
+ export let closeBtn = false; // To show close button
14
+
15
+ const dispatch = createEventDispatcher();
16
+
17
+ const handleAction = (action) => {
18
+ action.onClick();
19
+ dispatch(action.label.toLowerCase());
20
+ show = false;
21
+ };
22
+
23
+ const getVariant = (action) => {
24
+ // If variant is already specified, use it
25
+ if (action.variant) return action.variant;
26
+
27
+ const { strokebtn, deemphasized, btnDanger, danger, textBtn } = action;
28
+
29
+ // Map old props to new variants
30
+ if (strokebtn && deemphasized) return "gray-outline";
31
+ if ((strokebtn && danger) || (btnDanger && strokebtn)) return "red-outline";
32
+ if (strokebtn) return "blue-outline";
33
+ if (textBtn && danger) return "red-text";
34
+ if (danger || btnDanger || action.label === "Delete") return "red-solid";
35
+
36
+ // Default variant
37
+ return undefined;
38
+ };
39
+
40
+ const cleanActionProps = (action) => {
41
+ const {
42
+ strokebtn,
43
+ deemphasized,
44
+ btnDanger,
45
+ danger,
46
+ textBtn,
47
+ label,
48
+ onClick,
49
+ beforeIcon,
50
+ afterIcon,
51
+ ...rest
52
+ } = action;
53
+ return rest;
54
+ };
55
+ </script>
56
+
57
+ <Modal bind:show>
58
+ <div slot="header" class="flex flex-col gap-6 text-center">
59
+ {#if closeBtn}
60
+ <div class="flex justify-end">
61
+ <button class="focus:outline-none" on:click={() => (show = false)}>
62
+ <img src={Cancel} alt="Close Icon" />
63
+ </button>
64
+ </div>
65
+ {/if}
66
+ {#if icon}
67
+ <div class="flex justify-center items-center">
68
+ <img src={icon} alt="Icon here" />
69
+ </div>
70
+ {/if}
71
+ {#if title}
72
+ <h2 class="text-xl text-Text-Primary leading-5 font-normal">{title}</h2>
73
+ {/if}
74
+ </div>
75
+
76
+ <div slot="body" class="flex flex-col gap-6 text-center mt-6">
77
+ {#if description}
78
+ <p class="text-Text-Tartiary text-sm leading-[22px] font-normal">
79
+ {description}
80
+ </p>
81
+ {/if}
82
+ {#if warningText}
83
+ <p
84
+ class="text-accent-Danger text-center text-sm leading-[22px] font-bold"
85
+ >
86
+ {warningText}
87
+ </p>
88
+ {/if}
89
+ </div>
90
+
91
+ <div slot="footer" class="flex justify-around gap-3 mt-6">
92
+ {#each actions as action}
93
+ <Button
94
+ size="full"
95
+ variant={getVariant(action)}
96
+ {...cleanActionProps(action)}
97
+ beforeIcon={action.beforeIcon}
98
+ afterIcon={action.afterIcon}
99
+ on:click={() => handleAction(action)}
100
+ >
101
+ {action.label}
102
+ </Button>
103
+ {/each}
104
+ </div>
105
+ </Modal>
@@ -0,0 +1,38 @@
1
+ /** @typedef {typeof __propDef.props} ConfirmationModalProps */
2
+ /** @typedef {typeof __propDef.events} ConfirmationModalEvents */
3
+ /** @typedef {typeof __propDef.slots} ConfirmationModalSlots */
4
+ export default class ConfirmationModal extends SvelteComponent<{
5
+ title?: string | undefined;
6
+ actions?: any[] | undefined;
7
+ show?: boolean | undefined;
8
+ icon?: null | undefined;
9
+ description?: string | undefined;
10
+ warningText?: string | undefined;
11
+ closeBtn?: boolean | undefined;
12
+ }, {
13
+ [evt: string]: CustomEvent<any>;
14
+ }, {}> {
15
+ }
16
+ export type ConfirmationModalProps = typeof __propDef.props;
17
+ export type ConfirmationModalEvents = typeof __propDef.events;
18
+ export type ConfirmationModalSlots = typeof __propDef.slots;
19
+ import { SvelteComponent } from "svelte";
20
+ declare const __propDef: {
21
+ props: {
22
+ title?: string | undefined;
23
+ actions?: any[] | undefined;
24
+ show?: boolean | undefined;
25
+ icon?: null | undefined;
26
+ description?: string | undefined;
27
+ warningText?: string | undefined;
28
+ closeBtn?: boolean | undefined;
29
+ };
30
+ events: {
31
+ [evt: string]: CustomEvent<any>;
32
+ };
33
+ slots: {};
34
+ exports?: undefined;
35
+ bindings?: undefined;
36
+ };
37
+ export {};
38
+ //# sourceMappingURL=ConfirmationModal.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmationModal.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Modal/ConfirmationModal.svelte.js"],"names":[],"mappings":"AA4GA,gEAAgE;AAChE,kEAAkE;AAClE,gEAAgE;AAEhE;;;;;;;;;;;CACC;qCALa,OAAO,SAAS,CAAC,KAAK;sCACtB,OAAO,SAAS,CAAC,MAAM;qCACvB,OAAO,SAAS,CAAC,KAAK;gCA9GJ,QAAQ;AA2GxC;;;;;;;;;;;;;;;;EAA0J"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Modal.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Modal/Modal.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,95 @@
1
+ import { render, screen, fireEvent } from '@testing-library/svelte';
2
+ import userEvent from '@testing-library/user-event';
3
+ import { expect, describe, test } from 'vitest';
4
+ import ModalTestWrapper from './ModalTestWrapper.svelte';
5
+
6
+ function setupTest(args) {
7
+ const user = userEvent.setup();
8
+ const { component } = render(ModalTestWrapper, { props: { ...args } });
9
+ return { user, component };
10
+ }
11
+
12
+ describe('Modal Component Tests', () => {
13
+ // Note: Modal renders both mobile sheet and desktop centered versions
14
+ // CSS hides one based on viewport, but in tests both are in DOM
15
+ // Use getAllByText and check that at least one exists
16
+
17
+ test('Renders Modal when show is true', () => {
18
+ setupTest({
19
+ show: true,
20
+ title: 'Test Title',
21
+ description: 'Test Description',
22
+ warningText: 'Test Warning'
23
+ });
24
+ // Modal renders both mobile and desktop versions, so use getAllByText
25
+ expect(screen.getAllByText('Test Title').length).toBeGreaterThan(0);
26
+ expect(screen.getAllByText(/Test Description/).length).toBeGreaterThan(0);
27
+ expect(screen.getAllByText(/Test Warning/).length).toBeGreaterThan(0);
28
+ expect(screen.getAllByRole('button', { name: /Cancel/i }).length).toBeGreaterThan(0);
29
+ expect(screen.getAllByRole('button', { name: /Confirm/i }).length).toBeGreaterThan(0);
30
+ });
31
+
32
+ test('Does not render Modal when show is false', () => {
33
+ setupTest({
34
+ show: false,
35
+ title: 'Test Title',
36
+ description: 'Test Description',
37
+ warningText: 'Test Warning'
38
+ });
39
+ expect(screen.queryByText('Test Title')).not.toBeInTheDocument();
40
+ expect(screen.queryByText('Test Description')).not.toBeInTheDocument();
41
+ expect(screen.queryByText('Test Warning')).not.toBeInTheDocument();
42
+ });
43
+
44
+ test('Displays the correct title, description, and warning text', () => {
45
+ const title = 'Correct Title';
46
+ const description = 'Correct Description';
47
+ const warningText = 'Correct Warning';
48
+ setupTest({
49
+ show: true,
50
+ title,
51
+ description,
52
+ warningText,
53
+ });
54
+ // Modal renders both mobile and desktop versions
55
+ expect(screen.getAllByText(title).length).toBeGreaterThan(0);
56
+ expect(screen.getAllByText(new RegExp(description)).length).toBeGreaterThan(0);
57
+ expect(screen.getAllByText(new RegExp(warningText)).length).toBeGreaterThan(0);
58
+ });
59
+
60
+ test('Dispatches cancel event on escape key press', async () => {
61
+ const { user, component } = setupTest({
62
+ show: true,
63
+ title: 'Test Title'
64
+ });
65
+
66
+ // Verify modal is open
67
+ expect(screen.getAllByText('Test Title').length).toBeGreaterThan(0);
68
+
69
+ // Listen for the cancel event
70
+ let cancelCalled = false;
71
+ component.$on('cancel', () => { cancelCalled = true; });
72
+
73
+ // Press Escape key
74
+ await fireEvent.keyDown(window, { key: 'Escape' });
75
+
76
+ // Cancel event should be dispatched
77
+ expect(cancelCalled).toBe(true);
78
+ });
79
+
80
+ test('Prevents propagation of click events within modal', async () => {
81
+ const { user } = setupTest({
82
+ show: true,
83
+ title: 'Test Title'
84
+ });
85
+
86
+ // Find the modal sheet content (first instance)
87
+ const modalText = screen.getAllByText('Test Title')[0];
88
+ const modalContent = modalText.closest('.modal-sheet') || modalText.closest('.modal-centered');
89
+ const clickEvent = new MouseEvent('click', { bubbles: true });
90
+ modalContent.dispatchEvent(clickEvent);
91
+
92
+ // Modal should still be visible
93
+ expect(screen.getAllByText('Test Title').length).toBeGreaterThan(0);
94
+ });
95
+ });