@getmicdrop/svelte-components 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/dist/components/AboutShow/AboutShow.svelte +22 -123
  2. package/dist/components/AboutShow/AboutShow.svelte.d.ts.map +1 -1
  3. package/dist/components/Accordion/Accordion.svelte +16 -9
  4. package/dist/components/Accordion/Accordion.svelte.d.ts +2 -0
  5. package/dist/components/Accordion/Accordion.svelte.d.ts.map +1 -1
  6. package/dist/components/Accordion/AccordionItem.svelte +40 -103
  7. package/dist/components/Accordion/AccordionItem.svelte.d.ts.map +1 -1
  8. package/dist/components/Alert/Alert.svelte +45 -56
  9. package/dist/components/Alert/Alert.svelte.d.ts +42 -13
  10. package/dist/components/Alert/Alert.svelte.d.ts.map +1 -1
  11. package/dist/components/Avatar/Avatar.svelte +56 -0
  12. package/dist/components/Avatar/Avatar.svelte.d.ts +37 -0
  13. package/dist/components/Avatar/Avatar.svelte.d.ts.map +1 -0
  14. package/dist/components/Badges/Badge.stories.svelte +6 -7
  15. package/dist/components/Badges/Badge.stories.svelte.d.ts +0 -20
  16. package/dist/components/Badges/Badge.stories.svelte.d.ts.map +1 -1
  17. package/dist/components/Badges/Badge.svelte +114 -395
  18. package/dist/components/Badges/Badge.svelte.d.ts +52 -64
  19. package/dist/components/Badges/Badge.svelte.d.ts.map +1 -1
  20. package/dist/components/BottomSheet/BottomSheet.stories.svelte +7 -14
  21. package/dist/components/BottomSheet/BottomSheet.stories.svelte.d.ts +0 -18
  22. package/dist/components/BottomSheet/BottomSheet.stories.svelte.d.ts.map +1 -1
  23. package/dist/components/BottomSheet/BottomSheet.svelte +32 -135
  24. package/dist/components/BottomSheet/BottomSheet.svelte.d.ts +47 -45
  25. package/dist/components/BottomSheet/BottomSheet.svelte.d.ts.map +1 -1
  26. package/dist/components/Breadcrumb/Breadcrumb.spec.js +1 -1
  27. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte +7 -8
  28. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte.d.ts +0 -9
  29. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte.d.ts.map +1 -1
  30. package/dist/components/Breadcrumb/Breadcrumb.svelte +45 -57
  31. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts +31 -50
  32. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  33. package/dist/components/Button/Button.stories.svelte +5 -7
  34. package/dist/components/Button/Button.stories.svelte.d.ts +0 -32
  35. package/dist/components/Button/Button.stories.svelte.d.ts.map +1 -1
  36. package/dist/components/Button/Button.svelte +128 -792
  37. package/dist/components/Button/Button.svelte.d.ts +60 -37
  38. package/dist/components/Button/Button.svelte.d.ts.map +1 -1
  39. package/dist/components/Button/ButtonSaveDemo.svelte +1 -1
  40. package/dist/components/Calendar/MiniMonthCalendar.svelte +56 -654
  41. package/dist/components/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
  42. package/dist/components/Card.spec.js +28 -26
  43. package/dist/components/Card.stories.svelte +7 -11
  44. package/dist/components/Card.stories.svelte.d.ts +0 -9
  45. package/dist/components/Card.stories.svelte.d.ts.map +1 -1
  46. package/dist/components/Card.svelte +12 -4
  47. package/dist/components/Card.svelte.d.ts +8 -2
  48. package/dist/components/Card.svelte.d.ts.map +1 -1
  49. package/dist/components/Checkbox/Checkbox.svelte +50 -101
  50. package/dist/components/Checkbox/Checkbox.svelte.d.ts +62 -34
  51. package/dist/components/Checkbox/Checkbox.svelte.d.ts.map +1 -1
  52. package/dist/components/CropImage/CropImage.stories.svelte +7 -29
  53. package/dist/components/CropImage/CropImage.stories.svelte.d.ts +0 -13
  54. package/dist/components/CropImage/CropImage.stories.svelte.d.ts.map +1 -1
  55. package/dist/components/CropImage/CropImage.svelte +101 -172
  56. package/dist/components/CropImage/CropImage.svelte.d.ts.map +1 -1
  57. package/dist/components/DarkModeToggle.stories.svelte +15 -13
  58. package/dist/components/DarkModeToggle.stories.svelte.d.ts +0 -5
  59. package/dist/components/DarkModeToggle.stories.svelte.d.ts.map +1 -1
  60. package/dist/components/DarkModeToggle.svelte +30 -136
  61. package/dist/components/DarkModeToggle.svelte.d.ts.map +1 -1
  62. package/dist/components/DesignSystemAudit.stories.svelte +428 -0
  63. package/dist/components/{CardAudit.stories.svelte.d.ts → DesignSystemAudit.stories.svelte.d.ts} +4 -9
  64. package/dist/components/DesignSystemAudit.stories.svelte.d.ts.map +1 -0
  65. package/dist/components/Drawer/Drawer.svelte +110 -182
  66. package/dist/components/Drawer/Drawer.svelte.d.ts +58 -116
  67. package/dist/components/Drawer/Drawer.svelte.d.ts.map +1 -1
  68. package/dist/components/Dropdown/Dropdown.svelte +164 -203
  69. package/dist/components/Dropdown/Dropdown.svelte.d.ts +46 -44
  70. package/dist/components/Dropdown/Dropdown.svelte.d.ts.map +1 -1
  71. package/dist/components/Dropdown/DropdownItem.svelte +69 -124
  72. package/dist/components/Dropdown/DropdownItem.svelte.d.ts +43 -39
  73. package/dist/components/Dropdown/DropdownItem.svelte.d.ts.map +1 -1
  74. package/dist/components/Dropdown/SelectDropdown.svelte +60 -192
  75. package/dist/components/Dropdown/SelectDropdown.svelte.d.ts +29 -48
  76. package/dist/components/Dropdown/SelectDropdown.svelte.d.ts.map +1 -1
  77. package/dist/components/EmptyState/EmptyState.svelte +6 -47
  78. package/dist/components/EmptyState/EmptyState.svelte.d.ts.map +1 -1
  79. package/dist/components/ErrorDisplay.spec.js +3 -3
  80. package/dist/components/ErrorDisplay.stories.svelte +8 -9
  81. package/dist/components/ErrorDisplay.stories.svelte.d.ts +0 -35
  82. package/dist/components/ErrorDisplay.stories.svelte.d.ts.map +1 -1
  83. package/dist/components/ErrorDisplay.svelte +1 -29
  84. package/dist/components/ErrorDisplay.svelte.d.ts.map +1 -1
  85. package/dist/components/FAQs/FAQs.svelte +62 -32
  86. package/dist/components/FAQs/FAQs.svelte.d.ts +10 -2
  87. package/dist/components/FAQs/FAQs.svelte.d.ts.map +1 -1
  88. package/dist/components/FormActions.stories.svelte +8 -9
  89. package/dist/components/FormActions.stories.svelte.d.ts +0 -30
  90. package/dist/components/FormActions.stories.svelte.d.ts.map +1 -1
  91. package/dist/components/FormActions.svelte +3 -3
  92. package/dist/components/FormValidationSummary.stories.svelte +8 -6
  93. package/dist/components/FormValidationSummary.stories.svelte.d.ts +0 -5
  94. package/dist/components/FormValidationSummary.stories.svelte.d.ts.map +1 -1
  95. package/dist/components/FormValidationSummary.svelte +4 -4
  96. package/dist/components/Icons/ArrowLeft.svelte.d.ts +2 -2
  97. package/dist/components/Icons/ArrowRight.svelte.d.ts +2 -2
  98. package/dist/components/Icons/Availability.svelte.d.ts +2 -2
  99. package/dist/components/Icons/Back.svelte.d.ts +2 -2
  100. package/dist/components/Icons/CheckCircle.svelte.d.ts +2 -2
  101. package/dist/components/Icons/CheckCircleOutline.svelte.d.ts +2 -2
  102. package/dist/components/Icons/CheckCircleSolid.svelte +15 -0
  103. package/dist/components/{Badges/BadgeAudit.stories.svelte.d.ts → Icons/CheckCircleSolid.svelte.d.ts} +7 -12
  104. package/dist/components/Icons/CheckCircleSolid.svelte.d.ts.map +1 -0
  105. package/dist/components/Icons/CheckOutline.svelte +17 -0
  106. package/dist/components/{Alert/AlertAudit.stories.svelte.d.ts → Icons/CheckOutline.svelte.d.ts} +7 -12
  107. package/dist/components/Icons/CheckOutline.svelte.d.ts.map +1 -0
  108. package/dist/components/Icons/ChevronDownOutline.svelte +17 -0
  109. package/dist/components/{Input/InputAudit.stories.svelte.d.ts → Icons/ChevronDownOutline.svelte.d.ts} +7 -12
  110. package/dist/components/Icons/ChevronDownOutline.svelte.d.ts.map +1 -0
  111. package/dist/components/Icons/ChevronLeft.svelte.d.ts +2 -2
  112. package/dist/components/Icons/ChevronLeftOutline.svelte +17 -0
  113. package/dist/components/Icons/ChevronLeftOutline.svelte.d.ts +27 -0
  114. package/dist/components/Icons/ChevronLeftOutline.svelte.d.ts.map +1 -0
  115. package/dist/components/Icons/ChevronRight.svelte.d.ts +2 -2
  116. package/dist/components/Icons/ChevronRightOutline.svelte +17 -0
  117. package/dist/components/Icons/ChevronRightOutline.svelte.d.ts +27 -0
  118. package/dist/components/Icons/ChevronRightOutline.svelte.d.ts.map +1 -0
  119. package/dist/components/Icons/ChevronUpOutline.svelte +17 -0
  120. package/dist/components/Icons/ChevronUpOutline.svelte.d.ts +27 -0
  121. package/dist/components/Icons/ChevronUpOutline.svelte.d.ts.map +1 -0
  122. package/dist/components/Icons/CloseCircleOutline.svelte +17 -0
  123. package/dist/components/Icons/CloseCircleOutline.svelte.d.ts +27 -0
  124. package/dist/components/Icons/CloseCircleOutline.svelte.d.ts.map +1 -0
  125. package/dist/components/Icons/CloseOutline.svelte +17 -0
  126. package/dist/components/Icons/CloseOutline.svelte.d.ts +27 -0
  127. package/dist/components/Icons/CloseOutline.svelte.d.ts.map +1 -0
  128. package/dist/components/Icons/Copy.svelte.d.ts +2 -2
  129. package/dist/components/Icons/Cross.svelte.d.ts +2 -2
  130. package/dist/components/Icons/DotsHorizontalOutline.svelte +15 -0
  131. package/dist/components/Icons/DotsHorizontalOutline.svelte.d.ts +27 -0
  132. package/dist/components/Icons/DotsHorizontalOutline.svelte.d.ts.map +1 -0
  133. package/dist/components/Icons/DownArrow.svelte.d.ts +2 -2
  134. package/dist/components/Icons/ErrorCircle.svelte.d.ts +2 -2
  135. package/dist/components/Icons/ExclamationCircleOutline.svelte +17 -0
  136. package/dist/components/Icons/ExclamationCircleOutline.svelte.d.ts +27 -0
  137. package/dist/components/Icons/ExclamationCircleOutline.svelte.d.ts.map +1 -0
  138. package/dist/components/Icons/ExclamationTriangleOutline.svelte +17 -0
  139. package/dist/components/Icons/ExclamationTriangleOutline.svelte.d.ts +27 -0
  140. package/dist/components/Icons/ExclamationTriangleOutline.svelte.d.ts.map +1 -0
  141. package/dist/components/Icons/EyeOutline.svelte +18 -0
  142. package/dist/components/Icons/EyeOutline.svelte.d.ts +27 -0
  143. package/dist/components/Icons/EyeOutline.svelte.d.ts.map +1 -0
  144. package/dist/components/Icons/EyeSlashOutline.svelte +17 -0
  145. package/dist/components/Icons/EyeSlashOutline.svelte.d.ts +27 -0
  146. package/dist/components/Icons/EyeSlashOutline.svelte.d.ts.map +1 -0
  147. package/dist/components/Icons/FacebookIcon.svelte.d.ts +2 -2
  148. package/dist/components/Icons/FileCopyOutline.svelte +17 -0
  149. package/dist/components/Icons/FileCopyOutline.svelte.d.ts +27 -0
  150. package/dist/components/Icons/FileCopyOutline.svelte.d.ts.map +1 -0
  151. package/dist/components/Icons/Home.svelte.d.ts +2 -2
  152. package/dist/components/Icons/HomeSolid.svelte +16 -0
  153. package/dist/components/Icons/HomeSolid.svelte.d.ts +27 -0
  154. package/dist/components/Icons/HomeSolid.svelte.d.ts.map +1 -0
  155. package/dist/components/Icons/Icon.stories.svelte +18 -19
  156. package/dist/components/Icons/Icon.stories.svelte.d.ts +0 -17
  157. package/dist/components/Icons/Icon.stories.svelte.d.ts.map +1 -1
  158. package/dist/components/Icons/Icon.svelte.d.ts +2 -2
  159. package/dist/components/Icons/IconGallery.stories.svelte +29 -27
  160. package/dist/components/Icons/IconGallery.stories.svelte.d.ts +0 -4
  161. package/dist/components/Icons/IconGallery.stories.svelte.d.ts.map +1 -1
  162. package/dist/components/Icons/Info.svelte.d.ts +2 -2
  163. package/dist/components/Icons/InfoCircleOutline.svelte +17 -0
  164. package/dist/components/Icons/InfoCircleOutline.svelte.d.ts +27 -0
  165. package/dist/components/Icons/InfoCircleOutline.svelte.d.ts.map +1 -0
  166. package/dist/components/Icons/InstagramIcon.svelte.d.ts +2 -2
  167. package/dist/components/Icons/LogoInstagram.svelte +18 -0
  168. package/dist/components/Icons/LogoInstagram.svelte.d.ts +29 -0
  169. package/dist/components/Icons/LogoInstagram.svelte.d.ts.map +1 -0
  170. package/dist/components/Icons/Message.svelte.d.ts +2 -2
  171. package/dist/components/Icons/MinusOutline.svelte +17 -0
  172. package/dist/components/Icons/MinusOutline.svelte.d.ts +27 -0
  173. package/dist/components/Icons/MinusOutline.svelte.d.ts.map +1 -0
  174. package/dist/components/Icons/MoonIcon.svelte.d.ts +2 -2
  175. package/dist/components/Icons/More.svelte.d.ts +2 -2
  176. package/dist/components/Icons/MoreHori.svelte.d.ts +2 -2
  177. package/dist/components/Icons/Notification.svelte.d.ts +2 -2
  178. package/dist/components/Icons/Payment.svelte.d.ts +2 -2
  179. package/dist/components/Icons/PlusOutline.svelte +17 -0
  180. package/dist/components/Icons/PlusOutline.svelte.d.ts +27 -0
  181. package/dist/components/Icons/PlusOutline.svelte.d.ts.map +1 -0
  182. package/dist/components/Icons/Profile.svelte.d.ts +2 -2
  183. package/dist/components/Icons/Reload.svelte.d.ts +2 -2
  184. package/dist/components/Icons/SearchOutline.svelte +17 -0
  185. package/dist/components/Icons/SearchOutline.svelte.d.ts +27 -0
  186. package/dist/components/Icons/SearchOutline.svelte.d.ts.map +1 -0
  187. package/dist/components/Icons/ShareOutline.svelte +17 -0
  188. package/dist/components/Icons/ShareOutline.svelte.d.ts +27 -0
  189. package/dist/components/Icons/ShareOutline.svelte.d.ts.map +1 -0
  190. package/dist/components/Icons/Shows.svelte.d.ts +2 -2
  191. package/dist/components/Icons/Signout.svelte.d.ts +2 -2
  192. package/dist/components/Icons/SunIcon.svelte.d.ts +2 -2
  193. package/dist/components/Icons/TiktokIcon.svelte.d.ts +2 -2
  194. package/dist/components/Icons/TwitterIcon.svelte.d.ts +2 -2
  195. package/dist/components/Icons/index.d.ts +53 -0
  196. package/dist/components/Icons/index.d.ts.map +1 -0
  197. package/dist/components/Icons/index.js +59 -0
  198. package/dist/components/Input/Input.stories.svelte +7 -8
  199. package/dist/components/Input/Input.stories.svelte.d.ts +0 -53
  200. package/dist/components/Input/Input.stories.svelte.d.ts.map +1 -1
  201. package/dist/components/Input/Input.svelte +123 -571
  202. package/dist/components/Input/Input.svelte.d.ts +110 -94
  203. package/dist/components/Input/Input.svelte.d.ts.map +1 -1
  204. package/dist/components/Input/MultiSelect.stories.svelte +9 -12
  205. package/dist/components/Input/MultiSelect.stories.svelte.d.ts +0 -5
  206. package/dist/components/Input/MultiSelect.stories.svelte.d.ts.map +1 -1
  207. package/dist/components/Input/MultiSelect.svelte +78 -416
  208. package/dist/components/Input/MultiSelect.svelte.d.ts +40 -101
  209. package/dist/components/Input/MultiSelect.svelte.d.ts.map +1 -1
  210. package/dist/components/Input/OTPInput.stories.svelte +17 -20
  211. package/dist/components/Input/OTPInput.stories.svelte.d.ts +0 -21
  212. package/dist/components/Input/OTPInput.stories.svelte.d.ts.map +1 -1
  213. package/dist/components/Input/OTPInput.svelte +18 -50
  214. package/dist/components/Input/OTPInput.svelte.d.ts +36 -45
  215. package/dist/components/Input/OTPInput.svelte.d.ts.map +1 -1
  216. package/dist/components/Input/Search.svelte +78 -196
  217. package/dist/components/Input/Search.svelte.d.ts +65 -36
  218. package/dist/components/Input/Search.svelte.d.ts.map +1 -1
  219. package/dist/components/Input/Select.svelte +55 -299
  220. package/dist/components/Input/Select.svelte.d.ts +46 -44
  221. package/dist/components/Input/Select.svelte.d.ts.map +1 -1
  222. package/dist/components/Input/Textarea.svelte +75 -187
  223. package/dist/components/Input/Textarea.svelte.d.ts +66 -56
  224. package/dist/components/Input/Textarea.svelte.d.ts.map +1 -1
  225. package/dist/components/Label/Label.svelte +8 -39
  226. package/dist/components/Label/Label.svelte.d.ts.map +1 -1
  227. package/dist/components/Layout/BottomNav.stories.svelte +27 -25
  228. package/dist/components/Layout/BottomNav.stories.svelte.d.ts +0 -5
  229. package/dist/components/Layout/BottomNav.stories.svelte.d.ts.map +1 -1
  230. package/dist/components/Layout/BottomNav.svelte +9 -72
  231. package/dist/components/Layout/BottomNav.svelte.d.ts.map +1 -1
  232. package/dist/components/Layout/Header.stories.svelte +7 -8
  233. package/dist/components/Layout/Header.stories.svelte.d.ts +0 -20
  234. package/dist/components/Layout/Header.stories.svelte.d.ts.map +1 -1
  235. package/dist/components/Layout/Header.svelte +59 -353
  236. package/dist/components/Layout/PageLayout.svelte +2 -2
  237. package/dist/components/Layout/PageLayout.svelte.d.ts +2 -2
  238. package/dist/components/Modal/ConfirmationModal.spec.js +3 -3
  239. package/dist/components/Modal/ConfirmationModal.stories.svelte +7 -12
  240. package/dist/components/Modal/ConfirmationModal.stories.svelte.d.ts +0 -19
  241. package/dist/components/Modal/ConfirmationModal.stories.svelte.d.ts.map +1 -1
  242. package/dist/components/Modal/ConfirmationModal.svelte +84 -109
  243. package/dist/components/Modal/ConfirmationModal.svelte.d.ts +47 -132
  244. package/dist/components/Modal/ConfirmationModal.svelte.d.ts.map +1 -1
  245. package/dist/components/Modal/InputModal.svelte +131 -157
  246. package/dist/components/Modal/InputModal.svelte.d.ts +48 -181
  247. package/dist/components/Modal/InputModal.svelte.d.ts.map +1 -1
  248. package/dist/components/Modal/Modal.stories.svelte +13 -11
  249. package/dist/components/Modal/Modal.stories.svelte.d.ts +0 -5
  250. package/dist/components/Modal/Modal.stories.svelte.d.ts.map +1 -1
  251. package/dist/components/Modal/Modal.svelte +60 -237
  252. package/dist/components/Modal/Modal.svelte.d.ts +41 -56
  253. package/dist/components/Modal/Modal.svelte.d.ts.map +1 -1
  254. package/dist/components/Modal/ModalStateManager.svelte +5 -5
  255. package/dist/components/Modal/ModalTestWrapper.svelte.d.ts +2 -2
  256. package/dist/components/Modal/StatusModal.svelte +121 -155
  257. package/dist/components/Modal/StatusModal.svelte.d.ts +47 -126
  258. package/dist/components/Modal/StatusModal.svelte.d.ts.map +1 -1
  259. package/dist/components/MonthSwitcher/MonthSwitcher.svelte +21 -99
  260. package/dist/components/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -1
  261. package/dist/components/OrderSummary/OrderSummary.svelte +103 -313
  262. package/dist/components/OrderSummary/OrderSummary.svelte.d.ts +60 -72
  263. package/dist/components/OrderSummary/OrderSummary.svelte.d.ts.map +1 -1
  264. package/dist/components/PageLoader.stories.svelte +7 -13
  265. package/dist/components/PageLoader.stories.svelte.d.ts +0 -26
  266. package/dist/components/PageLoader.stories.svelte.d.ts.map +1 -1
  267. package/dist/components/PageLoader.svelte +2 -2
  268. package/dist/components/Pagination/Pagination.svelte +200 -146
  269. package/dist/components/Pagination/Pagination.svelte.d.ts +44 -89
  270. package/dist/components/Pagination/Pagination.svelte.d.ts.map +1 -1
  271. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +8 -8
  272. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +3 -3
  273. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +14 -17
  274. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts +0 -33
  275. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts.map +1 -1
  276. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte +31 -198
  277. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
  278. package/dist/components/PublicCard/PublicCard.svelte +30 -148
  279. package/dist/components/PublicCard/PublicCard.svelte.d.ts +32 -14
  280. package/dist/components/PublicCard/PublicCard.svelte.d.ts.map +1 -1
  281. package/dist/components/Radio/Radio.svelte +44 -117
  282. package/dist/components/Radio/Radio.svelte.d.ts +53 -22
  283. package/dist/components/Radio/Radio.svelte.d.ts.map +1 -1
  284. package/dist/components/ShowCard/ShowCard.svelte +57 -138
  285. package/dist/components/ShowCard/ShowCard.svelte.d.ts +36 -30
  286. package/dist/components/ShowCard/ShowCard.svelte.d.ts.map +1 -1
  287. package/dist/components/ShowTimeCard/ShowTimeCard.svelte +20 -60
  288. package/dist/components/ShowTimeCard/ShowTimeCard.svelte.d.ts +34 -20
  289. package/dist/components/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -1
  290. package/dist/components/Skeleton/CardPlaceholder.svelte +98 -0
  291. package/dist/components/Skeleton/CardPlaceholder.svelte.d.ts +35 -0
  292. package/dist/components/Skeleton/CardPlaceholder.svelte.d.ts.map +1 -0
  293. package/dist/components/Skeleton/ImagePlaceholder.svelte +65 -0
  294. package/dist/components/{Button/ButtonAudit.stories.svelte.d.ts → Skeleton/ImagePlaceholder.svelte.d.ts} +13 -14
  295. package/dist/components/Skeleton/ImagePlaceholder.svelte.d.ts.map +1 -0
  296. package/dist/components/Skeleton/ListPlaceholder.svelte +86 -0
  297. package/dist/components/Skeleton/ListPlaceholder.svelte.d.ts +37 -0
  298. package/dist/components/Skeleton/ListPlaceholder.svelte.d.ts.map +1 -0
  299. package/dist/components/Skeleton/Skeleton.svelte +49 -60
  300. package/dist/components/Skeleton/Skeleton.svelte.d.ts +6 -10
  301. package/dist/components/Skeleton/Skeleton.svelte.d.ts.map +1 -1
  302. package/dist/components/Skeleton/index.d.ts +5 -0
  303. package/dist/components/Skeleton/index.d.ts.map +1 -0
  304. package/dist/components/Skeleton/index.js +10 -0
  305. package/dist/components/Spinner/Spinner.stories.svelte +9 -10
  306. package/dist/components/Spinner/Spinner.stories.svelte.d.ts +0 -4
  307. package/dist/components/Spinner/Spinner.stories.svelte.d.ts.map +1 -1
  308. package/dist/components/Spinner/Spinner.svelte +41 -64
  309. package/dist/components/Spinner/Spinner.svelte.d.ts +6 -4
  310. package/dist/components/Spinner/Spinner.svelte.d.ts.map +1 -1
  311. package/dist/components/StatusIndicator/StatusIndicator.svelte +13 -47
  312. package/dist/components/StatusIndicator/StatusIndicator.svelte.d.ts.map +1 -1
  313. package/dist/components/Tabs/TabItem.svelte +3 -9
  314. package/dist/components/Tabs/TabItem.svelte.d.ts.map +1 -1
  315. package/dist/components/Tabs/Tabs.svelte +49 -126
  316. package/dist/components/Tabs/Tabs.svelte.d.ts +2 -2
  317. package/dist/components/Tabs/Tabs.svelte.d.ts.map +1 -1
  318. package/dist/components/Toaster/Toaster.stories.svelte +15 -13
  319. package/dist/components/Toaster/Toaster.stories.svelte.d.ts +0 -3
  320. package/dist/components/Toaster/Toaster.stories.svelte.d.ts.map +1 -1
  321. package/dist/components/Toggle.stories.svelte +14 -15
  322. package/dist/components/Toggle.stories.svelte.d.ts +0 -14
  323. package/dist/components/Toggle.stories.svelte.d.ts.map +1 -1
  324. package/dist/components/Toggle.svelte +54 -76
  325. package/dist/components/Toggle.svelte.d.ts +47 -17
  326. package/dist/components/Toggle.svelte.d.ts.map +1 -1
  327. package/dist/components/Typography/Typography.svelte.d.ts +4 -4
  328. package/dist/components/ValidationError.stories.svelte +8 -9
  329. package/dist/components/ValidationError.stories.svelte.d.ts +0 -14
  330. package/dist/components/ValidationError.stories.svelte.d.ts.map +1 -1
  331. package/dist/components/ValidationError.svelte +1 -1
  332. package/dist/components/pages/performers/ModalShowInfo.svelte +7 -61
  333. package/dist/components/pages/performers/ModalShowInfo.svelte.d.ts.map +1 -1
  334. package/dist/components/pages/performers/PageBackButton.spec.js +1 -1
  335. package/dist/components/pages/performers/PageBackButton.stories.svelte +7 -8
  336. package/dist/components/pages/performers/PageBackButton.stories.svelte.d.ts +0 -9
  337. package/dist/components/pages/performers/PageBackButton.stories.svelte.d.ts.map +1 -1
  338. package/dist/components/pages/performers/PageBackButton.svelte +1 -1
  339. package/dist/components/pages/performers/SectionHeader.spec.js +2 -2
  340. package/dist/components/pages/performers/SectionHeader.stories.svelte +13 -14
  341. package/dist/components/pages/performers/SectionHeader.stories.svelte.d.ts +0 -14
  342. package/dist/components/pages/performers/SectionHeader.stories.svelte.d.ts.map +1 -1
  343. package/dist/components/pages/performers/SectionHeader.svelte +2 -2
  344. package/dist/components/pages/performers/ShowDetails.spec.js +2 -2
  345. package/dist/components/pages/performers/ShowDetails.stories.svelte +9 -12
  346. package/dist/components/pages/performers/ShowDetails.stories.svelte.d.ts +0 -10
  347. package/dist/components/pages/performers/ShowDetails.stories.svelte.d.ts.map +1 -1
  348. package/dist/components/pages/performers/ShowDetails.svelte +11 -11
  349. package/dist/components/pages/performers/ShowDetails.svelte.d.ts +2 -2
  350. package/dist/components/pages/performers/ShowItemCard.spec.js +1 -1
  351. package/dist/components/pages/performers/ShowItemCard.stories.svelte +7 -5
  352. package/dist/components/pages/performers/ShowItemCard.stories.svelte.d.ts +0 -16
  353. package/dist/components/pages/performers/ShowItemCard.stories.svelte.d.ts.map +1 -1
  354. package/dist/components/pages/performers/ShowItemCard.svelte +52 -61
  355. package/dist/components/pages/performers/ShowItemCard.svelte.d.ts +4 -4
  356. package/dist/components/pages/performers/SwitchOption.stories.svelte +7 -10
  357. package/dist/components/pages/performers/SwitchOption.stories.svelte.d.ts +0 -13
  358. package/dist/components/pages/performers/SwitchOption.stories.svelte.d.ts.map +1 -1
  359. package/dist/components/pages/performers/SwitchOption.svelte +3 -3
  360. package/dist/components/pages/performers/VenueInfo.svelte +6 -60
  361. package/dist/components/pages/performers/VenueInfo.svelte.d.ts.map +1 -1
  362. package/dist/components/pages/performers/VenueItemCard.stories.svelte +10 -8
  363. package/dist/components/pages/performers/VenueItemCard.stories.svelte.d.ts +0 -10
  364. package/dist/components/pages/performers/VenueItemCard.stories.svelte.d.ts.map +1 -1
  365. package/dist/components/pages/performers/VenueItemCard.svelte +16 -15
  366. package/dist/components/pages/performers/VenueItemCard.svelte.d.ts +2 -2
  367. package/dist/components/pages/performers/VenueItemCard.svelte.d.ts.map +1 -1
  368. package/dist/components/pages/profile/profile-form.stories.svelte +7 -10
  369. package/dist/components/pages/profile/profile-form.stories.svelte.d.ts +0 -21
  370. package/dist/components/pages/profile/profile-form.stories.svelte.d.ts.map +1 -1
  371. package/dist/components/pages/profile/profile-form.svelte +21 -74
  372. package/dist/components/pages/profile/profile-form.svelte.d.ts.map +1 -1
  373. package/dist/components/pages/profile/profile-photos.stories.svelte +7 -14
  374. package/dist/components/pages/profile/profile-photos.stories.svelte.d.ts +0 -4
  375. package/dist/components/pages/profile/profile-photos.stories.svelte.d.ts.map +1 -1
  376. package/dist/components/pages/profile/profile-photos.svelte +1 -1
  377. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte +11 -12
  378. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte.d.ts +0 -22
  379. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte.d.ts.map +1 -1
  380. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte +44 -57
  381. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts +36 -22
  382. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts.map +1 -1
  383. package/dist/components/pages/shows/ShowList.stories.svelte +7 -10
  384. package/dist/components/pages/shows/ShowList.stories.svelte.d.ts +0 -14
  385. package/dist/components/pages/shows/ShowList.stories.svelte.d.ts.map +1 -1
  386. package/dist/components/pages/shows/TabContent.stories.svelte +7 -10
  387. package/dist/components/pages/shows/TabContent.stories.svelte.d.ts +0 -18
  388. package/dist/components/pages/shows/TabContent.stories.svelte.d.ts.map +1 -1
  389. package/dist/components/pages/shows/TabContent.svelte +4 -13
  390. package/dist/components/pages/shows/TabContent.svelte.d.ts.map +1 -1
  391. package/dist/components/pages/shows/TabNavigation.stories.svelte +19 -22
  392. package/dist/components/pages/shows/TabNavigation.stories.svelte.d.ts +0 -14
  393. package/dist/components/pages/shows/TabNavigation.stories.svelte.d.ts.map +1 -1
  394. package/dist/components/pages/shows/TabNavigation.svelte +9 -50
  395. package/dist/components/pages/shows/TabNavigation.svelte.d.ts +30 -20
  396. package/dist/components/pages/shows/TabNavigation.svelte.d.ts.map +1 -1
  397. package/dist/index.d.ts +3 -0
  398. package/dist/index.js +3 -0
  399. package/package.json +2 -5
  400. package/dist/components/Alert/AlertAudit.stories.svelte +0 -241
  401. package/dist/components/Alert/AlertAudit.stories.svelte.d.ts.map +0 -1
  402. package/dist/components/Badges/BadgeAudit.stories.svelte +0 -238
  403. package/dist/components/Badges/BadgeAudit.stories.svelte.d.ts.map +0 -1
  404. package/dist/components/Button/ButtonAudit.stories.svelte +0 -333
  405. package/dist/components/Button/ButtonAudit.stories.svelte.d.ts.map +0 -1
  406. package/dist/components/CardAudit.stories.svelte +0 -175
  407. package/dist/components/CardAudit.stories.svelte.d.ts.map +0 -1
  408. package/dist/components/Input/InputAudit.stories.svelte +0 -483
  409. package/dist/components/Input/InputAudit.stories.svelte.d.ts.map +0 -1
  410. package/dist/components/Input/SelectAudit.stories.svelte +0 -364
  411. package/dist/components/Input/SelectAudit.stories.svelte.d.ts +0 -32
  412. package/dist/components/Input/SelectAudit.stories.svelte.d.ts.map +0 -1
  413. package/dist/components/Modal/ModalAudit.stories.svelte +0 -329
  414. package/dist/components/Modal/ModalAudit.stories.svelte.d.ts +0 -32
  415. package/dist/components/Modal/ModalAudit.stories.svelte.d.ts.map +0 -1
@@ -1,50 +1,33 @@
1
1
  <script>
2
2
  import { fly, fade } from 'svelte/transition';
3
3
  import { cubicOut } from 'svelte/easing';
4
- import ChevronDown from 'carbon-icons-svelte/lib/ChevronDown.svelte';
5
- import Close from 'carbon-icons-svelte/lib/Close.svelte';
4
+ import { createEventDispatcher } from 'svelte';
5
+ import { ChevronDownOutline, CloseOutline } from '../Icons';
6
6
  import Spinner from '../Spinner/Spinner.svelte';
7
7
 
8
- /**
9
- * @type {{
10
- * loading?: boolean,
11
- * quantities?: Record<string, number>,
12
- * eventTickets?: Array<{ ID: string | number, name: string, price: number }>,
13
- * checkoutTicket?: (() => void) | null,
14
- * isAgreed?: boolean,
15
- * btnText?: string,
16
- * promoApplied?: boolean,
17
- * promoDiscount?: number,
18
- * currentPromoRule?: { provideDiscount?: boolean, discountTicketIds?: string[], amount?: string, discountType?: '%' | '$' } | null,
19
- * executePurchase?: ((elements: any) => void) | null,
20
- * elements?: any,
21
- * venueServiceCharge?: { serviceFeeCents?: number, serviceFeePercentage?: number, serviceFeeChargeType?: string, maxServiceFeeCents?: number, taxPercentage?: number },
22
- * onpriceupdate?: (detail: { subtotal: number, fees: number, taxes: number, total: number, promoSavings: number }) => void
23
- * }}
24
- */
25
- let {
26
- loading = false,
27
- quantities = {},
28
- eventTickets = [],
29
- checkoutTicket = null,
30
- isAgreed = true,
31
- btnText = 'Checkout',
32
- promoApplied = false,
33
- promoDiscount = 0,
34
- currentPromoRule = null,
35
- executePurchase = null,
36
- elements = null,
37
- venueServiceCharge = {
38
- serviceFeeCents: 0,
39
- serviceFeePercentage: 0,
40
- serviceFeeChargeType: 'both',
41
- maxServiceFeeCents: 0,
42
- taxPercentage: 0,
43
- },
44
- onpriceupdate
45
- } = $props();
46
-
47
- let feeFor = $derived((price) => {
8
+ export let loading = false;
9
+ export let quantities = {};
10
+ export let eventTickets = [];
11
+
12
+ export let checkoutTicket = null;
13
+ export let isAgreed = true;
14
+ export let btnText = 'Checkout';
15
+ export let promoApplied = false;
16
+ export let promoDiscount = 0;
17
+ export let currentPromoRule = null;
18
+
19
+ export let executePurchase = null;
20
+ export let elements = null;
21
+
22
+ export let venueServiceCharge = {
23
+ serviceFeeCents: 0,
24
+ serviceFeePercentage: 0,
25
+ serviceFeeChargeType: 'both', // 'both', 'percent', or 'flat'
26
+ maxServiceFeeCents: 0, // 0 means no cap
27
+ taxPercentage: 0, // Default 0% - only charge tax if venue has set it
28
+ };
29
+
30
+ $: feeFor = price => {
48
31
  const chargeType = venueServiceCharge.serviceFeeChargeType || 'both';
49
32
  let fee = 0;
50
33
 
@@ -63,22 +46,31 @@
63
46
  }
64
47
 
65
48
  return fee;
66
- });
49
+ };
50
+
51
+ const dispatch = createEventDispatcher();
67
52
 
68
- let showOrderSummaryOnMobile = $state(false);
53
+ let showFooter = false;
54
+ let subtotal = 0;
55
+ let fees = 0;
56
+ let taxes = 0;
57
+ let total = 0;
58
+ let showOrderSummaryOnMobile = false;
69
59
 
70
60
  function makeOrderSummaryVisible() {
71
61
  showOrderSummaryOnMobile = !showOrderSummaryOnMobile;
72
62
  }
73
63
 
74
64
  // Calculate discounted price for a ticket
75
- let getDiscountedPrice = $derived((ticket) => {
65
+ $: getDiscountedPrice = (ticket) => {
76
66
  if (!currentPromoRule?.provideDiscount) return null;
77
67
 
78
68
  // Check if this discount applies to this specific ticket
69
+ // If discountTicketIds is empty or not provided, discount applies to all tickets
70
+ // If discountTicketIds has values, only apply to those specific ticket IDs
79
71
  const discountTicketIds = currentPromoRule.discountTicketIds || [];
80
72
  if (discountTicketIds.length > 0 && !discountTicketIds.includes(ticket.ID)) {
81
- return null;
73
+ return null; // This ticket is not eligible for the discount
82
74
  }
83
75
 
84
76
  const basePrice = parseFloat(ticket.price) || 0;
@@ -89,54 +81,53 @@
89
81
  return Math.max(0, basePrice - discountAmount).toFixed(2);
90
82
  }
91
83
  return null;
92
- });
84
+ };
93
85
 
94
- let totalQuantity = $derived(Object.values(quantities).reduce((sum, q) => sum + q, 0));
95
- let showFooter = $derived(totalQuantity > 0);
86
+ $: showFooter = totalQuantity > 0;
96
87
 
97
88
  // Calculate subtotal without any discounts (for calculating savings)
98
- let subtotalWithoutDiscount = $derived(Object.keys(quantities).reduce((acc, key) => {
89
+ $: subtotalWithoutDiscount = Object.keys(quantities).reduce((acc, key) => {
99
90
  const ticket = eventTickets.find(t => t.ID == key);
100
91
  if (!ticket) return acc;
101
92
  return acc + quantities[key] * ticket.price;
102
- }, 0));
93
+ }, 0);
103
94
 
104
95
  // Calculate subtotal with discounts applied
105
- let subtotal = $derived(Object.keys(quantities).reduce((acc, key) => {
96
+ $: subtotal = Object.keys(quantities).reduce((acc, key) => {
106
97
  const ticket = eventTickets.find(t => t.ID == key);
107
98
  if (!ticket) return acc;
108
99
  const discountedPrice = getDiscountedPrice(ticket);
109
100
  const priceToUse = discountedPrice !== null ? parseFloat(discountedPrice) : ticket.price;
110
101
  return acc + quantities[key] * priceToUse;
111
- }, 0));
102
+ }, 0);
112
103
 
113
104
  // Calculate actual savings from promo code
114
- let promoSavings = $derived(currentPromoRule?.provideDiscount ? (subtotalWithoutDiscount - subtotal) : 0);
105
+ $: promoSavings = currentPromoRule?.provideDiscount ? (subtotalWithoutDiscount - subtotal) : 0;
115
106
 
116
- let fees = $derived(Object.keys(quantities).reduce((acc, key) => {
107
+ $: fees = Object.keys(quantities).reduce((acc, key) => {
117
108
  const ticket = eventTickets.find(t => t.ID == key);
118
109
  if (!ticket || ticket.price == 0) return acc;
119
110
  const discountedPrice = getDiscountedPrice(ticket);
120
111
  const priceToUse = discountedPrice !== null ? parseFloat(discountedPrice) : ticket.price;
121
112
  return acc + quantities[key] * feeFor(priceToUse);
122
- }, 0));
123
-
124
- let taxRate = $derived((venueServiceCharge.taxPercentage || 0) / 100);
125
- let taxes = $derived(subtotal > 0 ? subtotal * taxRate : 0);
126
- let total = $derived(Math.max(0, subtotal + fees + taxes - (promoApplied && !currentPromoRule?.provideDiscount ? promoDiscount : 0)));
127
-
128
- // Dispatch price update when values change
129
- $effect(() => {
130
- onpriceupdate?.({ subtotal, fees, taxes, total, promoSavings });
131
- });
113
+ }, 0);
114
+ $: taxRate = (venueServiceCharge.taxPercentage || 0) / 100;
115
+ $: taxes = subtotal > 0 ? subtotal * taxRate : 0;
116
+ // When currentPromoRule is used, discounts are already applied per-ticket in subtotal calculation
117
+ // Only subtract promoDiscount separately when NOT using currentPromoRule (legacy behavior)
118
+ // Use Math.max(0, ...) to prevent negative totals in edge cases
119
+ $: total = Math.max(0, subtotal + fees + taxes - (promoApplied && !currentPromoRule?.provideDiscount ? promoDiscount : 0));
120
+ $: dispatch('priceUpdate', { subtotal, fees, taxes, total, promoSavings });
121
+ $: totalQuantity = Object.values(quantities).reduce((sum, q) => sum + q, 0);
132
122
  </script>
133
123
 
124
+ <!-- Desktop Order Summary -->
134
125
  <div
135
126
  id="orderSummary"
136
- class="order-summary desktop-only h-fit rounded-lg"
127
+ class="hidden min-[872px]:block h-fit rounded-lg bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600"
137
128
  >
138
- <div class="summary-header px-5 py-4">
139
- <h2 class="text-lg font-semibold text-primary">
129
+ <div class="px-5 py-4 border-b border-gray-200 dark:border-gray-600">
130
+ <h2 class="text-lg font-semibold text-gray-900 dark:text-white">
140
131
  Order summary
141
132
  </h2>
142
133
  </div>
@@ -145,7 +136,7 @@
145
136
  {#if totalQuantity === 0}
146
137
  <!-- Empty state -->
147
138
  <div class="py-8 text-center">
148
- <p class="text-tertiary text-sm">Select tickets to continue</p>
139
+ <p class="text-gray-500 dark:text-gray-400 text-sm">Select tickets to continue</p>
149
140
  </div>
150
141
  {:else}
151
142
  <!-- Selected tickets - always show original prices -->
@@ -153,18 +144,18 @@
153
144
  {#if quantities[key] > 0}
154
145
  {#each eventTickets as ticket}
155
146
  {#if ticket.ID == key}
156
- <div class="ticket-line flex justify-between py-3">
147
+ <div class="flex justify-between py-3 border-b border-gray-200/50 dark:border-gray-600/50">
157
148
  <div>
158
- <p class="font-medium text-primary">{ticket.name}</p>
159
- <p class="text-sm text-tertiary">
149
+ <p class="font-medium text-gray-900 dark:text-white">{ticket.name}</p>
150
+ <p class="text-sm text-gray-500 dark:text-gray-400">
160
151
  {#if ticket.price === 0}
161
- Free × {quantities[key]}
152
+ Free x {quantities[key]}
162
153
  {:else}
163
- ${ticket.price.toFixed(2)} × {quantities[key]}
154
+ ${ticket.price.toFixed(2)} x {quantities[key]}
164
155
  {/if}
165
156
  </p>
166
157
  </div>
167
- <div class="font-medium text-primary">
158
+ <div class="font-medium text-gray-900 dark:text-white">
168
159
  {ticket.price === 0
169
160
  ? 'Free'
170
161
  : `$${(ticket.price * quantities[key]).toFixed(2)}`}
@@ -178,48 +169,47 @@
178
169
  <!-- Price breakdown -->
179
170
  <div class="flex flex-col py-3 gap-2 text-sm">
180
171
  {#if promoSavings > 0 || (promoDiscount > 0 && !currentPromoRule?.provideDiscount)}
181
- <div class="flex justify-between text-secondary">
172
+ <div class="flex justify-between text-gray-600 dark:text-gray-300">
182
173
  <span>Full Price</span><span>${subtotalWithoutDiscount.toFixed(2)}</span>
183
174
  </div>
184
175
  {/if}
185
176
  {#if promoSavings > 0}
186
- <div class="flex justify-between promo-discount-line">
177
+ <div class="flex justify-between text-green-600 dark:text-green-500">
187
178
  <span>Discount</span><span>-${promoSavings.toFixed(2)}</span>
188
179
  </div>
189
180
  {:else if promoDiscount > 0 && !currentPromoRule?.provideDiscount}
190
- <div class="flex justify-between promo-discount-line">
181
+ <div class="flex justify-between text-green-600 dark:text-green-500">
191
182
  <span>Discount</span><span>-${promoDiscount.toFixed(2)}</span>
192
183
  </div>
193
184
  {/if}
194
- <div class="flex justify-between text-secondary">
185
+ <div class="flex justify-between text-gray-600 dark:text-gray-300">
195
186
  <span>Subtotal</span><span>${subtotal.toFixed(2)}</span>
196
187
  </div>
197
- <div class="flex justify-between text-secondary">
188
+ <div class="flex justify-between text-gray-600 dark:text-gray-300">
198
189
  <span>Fees</span><span>${fees.toFixed(2)}</span>
199
190
  </div>
200
- <div class="flex justify-between text-secondary">
191
+ <div class="flex justify-between text-gray-600 dark:text-gray-300">
201
192
  <span>Taxes</span><span>${taxes.toFixed(2)}</span>
202
193
  </div>
203
194
  </div>
204
195
 
205
196
  <!-- Total -->
206
- <div class="total-line flex justify-between font-semibold text-primary py-4 text-lg">
197
+ <div class="flex justify-between font-semibold text-gray-900 dark:text-white py-4 text-lg border-t border-gray-200 dark:border-gray-600">
207
198
  <span>Total</span><span>${total.toFixed(2)}</span>
208
199
  </div>
209
200
  {/if}
210
201
 
211
202
  <!-- Terms of service -->
212
203
  {#if totalQuantity > 0 && btnText === 'Place order'}
213
- <p class="terms-text">
214
- By selecting Place order, I agree to the <a href="https://get-micdrop.com/tos" class="terms-link" target="_blank" rel="noopener noreferrer">terms of service</a>
204
+ <p class="text-xs text-gray-500 dark:text-gray-400 text-center mb-3">
205
+ By selecting Place order, I agree to the <a href="https://get-micdrop.com/tos" class="text-blue-700 dark:text-blue-500 underline hover:opacity-80" target="_blank" rel="noopener noreferrer">terms of service</a>
215
206
  </p>
216
207
  {/if}
217
208
 
218
209
  <!-- Checkout button -->
219
210
  <button
220
- class="checkout-btn w-full h-12 font-semibold rounded-lg flex items-center justify-center transition-colors"
221
- class:disabled={totalQuantity === 0}
222
- onclick={() => {
211
+ class="w-full h-12 font-semibold rounded-lg flex items-center justify-center transition-colors select-none touch-manipulation {totalQuantity === 0 ? 'bg-gray-200 dark:bg-gray-700 text-gray-500 dark:text-gray-400 cursor-not-allowed' : 'bg-blue-700 dark:bg-blue-600 text-white hover:bg-blue-800 dark:hover:bg-blue-700'}"
212
+ on:click={() => {
223
213
  if (totalQuantity === 0) return;
224
214
  if (executePurchase) {
225
215
  executePurchase(elements);
@@ -241,8 +231,8 @@
241
231
  {#if showOrderSummaryOnMobile}
242
232
  <!-- Backdrop overlay - dims background -->
243
233
  <button
244
- class="mobile-backdrop mobile-only"
245
- onclick={() => (showOrderSummaryOnMobile = false)}
234
+ class="min-[872px]:hidden fixed inset-0 bg-black/50 z-40 border-none cursor-pointer"
235
+ on:click={() => (showOrderSummaryOnMobile = false)}
246
236
  aria-label="Close order summary"
247
237
  transition:fade={{ duration: 200 }}
248
238
  ></button>
@@ -250,18 +240,18 @@
250
240
  <div
251
241
  in:fly={{ y: 800, duration: 300, easing: cubicOut }}
252
242
  out:fly={{ y: 800, duration: 300, easing: cubicOut }}
253
- class="mobile-summary mobile-only fixed bottom-0 left-0 w-full overflow-x-hidden overflow-y-auto z-[99]"
243
+ class="min-[872px]:hidden fixed bottom-0 left-0 w-full overflow-x-hidden overflow-y-auto z-50 max-h-[80vh] rounded-t-lg shadow-xl bg-white dark:bg-gray-800"
254
244
  >
255
- <div class="mobile-summary-header flex flex-row justify-between items-center px-5 py-4">
256
- <h2 class="text-xl font-semibold text-primary">
245
+ <div class="flex flex-row justify-between items-center px-5 py-4 border-b border-gray-200 dark:border-gray-600">
246
+ <h2 class="text-xl font-semibold text-gray-900 dark:text-white">
257
247
  Order summary
258
248
  </h2>
259
249
  <button
260
- onclick={() => (showOrderSummaryOnMobile = false)}
261
- class="close-btn transition-colors p-2 rounded-lg"
250
+ on:click={() => (showOrderSummaryOnMobile = false)}
251
+ class="transition-colors p-2 rounded-lg text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-gray-700"
262
252
  aria-label="Close order summary"
263
253
  >
264
- <Close size={28} />
254
+ <CloseOutline class="w-7 h-7" />
265
255
  </button>
266
256
  </div>
267
257
 
@@ -271,18 +261,18 @@
271
261
  {#if quantities[key] > 0}
272
262
  {#each eventTickets as ticket}
273
263
  {#if ticket.ID == key}
274
- <div class="mobile-ticket-line flex justify-between py-4">
264
+ <div class="flex justify-between py-4 border-b border-gray-200 dark:border-gray-600">
275
265
  <div>
276
- <p class="font-semibold text-primary">{ticket.name}</p>
277
- <p class="text-sm text-tertiary">
266
+ <p class="font-semibold text-gray-900 dark:text-white">{ticket.name}</p>
267
+ <p class="text-sm text-gray-500 dark:text-gray-400">
278
268
  {#if ticket.price === 0}
279
- Free × {quantities[key]}
269
+ Free x {quantities[key]}
280
270
  {:else}
281
- ${ticket.price.toFixed(2)} × {quantities[key]}
271
+ ${ticket.price.toFixed(2)} x {quantities[key]}
282
272
  {/if}
283
273
  </p>
284
274
  </div>
285
- <div class="font-semibold text-primary">
275
+ <div class="font-semibold text-gray-900 dark:text-white">
286
276
  {ticket.price === 0
287
277
  ? 'Free'
288
278
  : `$${(ticket.price * quantities[key]).toFixed(2)}`}
@@ -293,18 +283,18 @@
293
283
  {/if}
294
284
  {/each}
295
285
 
296
- <div class="flex flex-col py-4 gap-3 text-secondary">
286
+ <div class="flex flex-col py-4 gap-3 text-gray-600 dark:text-gray-300">
297
287
  {#if promoSavings > 0 || (promoDiscount > 0 && !currentPromoRule?.provideDiscount)}
298
288
  <div class="flex justify-between">
299
289
  <span>Full Price</span><span>${subtotalWithoutDiscount.toFixed(2)}</span>
300
290
  </div>
301
291
  {/if}
302
292
  {#if promoSavings > 0}
303
- <div class="flex justify-between promo-discount-line">
293
+ <div class="flex justify-between text-green-600 dark:text-green-500">
304
294
  <span>Discount</span><span>-${promoSavings.toFixed(2)}</span>
305
295
  </div>
306
296
  {:else if promoDiscount > 0 && !currentPromoRule?.provideDiscount}
307
- <div class="flex justify-between promo-discount-line">
297
+ <div class="flex justify-between text-green-600 dark:text-green-500">
308
298
  <span>Discount</span><span>-${promoDiscount.toFixed(2)}</span>
309
299
  </div>
310
300
  {/if}
@@ -319,7 +309,7 @@
319
309
  </div>
320
310
  </div>
321
311
 
322
- <div class="mobile-total flex justify-between font-bold text-primary py-5">
312
+ <div class="flex justify-between font-bold text-gray-900 dark:text-white py-5 border-t border-gray-200 dark:border-gray-600">
323
313
  <span>Total</span><span>${total.toFixed(2)}</span>
324
314
  </div>
325
315
  </div>
@@ -329,20 +319,20 @@
329
319
  {#if showFooter}
330
320
  <div
331
321
  transition:fly={{ y: 100, duration: 200 }}
332
- class="mobile-footer mobile-only fixed bottom-0 left-0 right-0 z-[500]"
322
+ class="min-[872px]:hidden fixed bottom-0 left-0 right-0 z-40 bg-white dark:bg-gray-800 border-t border-gray-200 dark:border-gray-600 shadow-xl p-4 pb-[max(16px,calc(env(safe-area-inset-bottom)+8px))] select-none touch-manipulation"
333
323
  >
334
- <div class="mobile-footer-content">
335
- <button class="mobile-footer-left" onclick={makeOrderSummaryVisible}>
336
- <span class="mobile-footer-tickets">
324
+ <div class="flex items-stretch gap-3">
325
+ <button class="flex flex-col justify-between items-start shrink-0 whitespace-nowrap bg-transparent border-none p-0 cursor-pointer touch-manipulation" on:click={makeOrderSummaryVisible}>
326
+ <span class="flex items-center gap-1 text-sm font-normal text-gray-600 dark:text-gray-300">
337
327
  {totalQuantity} {totalQuantity > 1 ? 'tickets' : 'ticket'}
338
- <ChevronDown size={16} class="chevron-icon transition-transform duration-200 {showOrderSummaryOnMobile ? 'rotate-180' : ''}" />
328
+ <ChevronDownOutline class="w-4 h-4 text-gray-500 dark:text-gray-400 transition-transform duration-200 {showOrderSummaryOnMobile ? 'rotate-180' : ''}" />
339
329
  </span>
340
- <span class="mobile-footer-price">${total.toFixed(2)}</span>
330
+ <span class="text-xl font-bold text-gray-900 dark:text-white">${total.toFixed(2)}</span>
341
331
  </button>
342
332
 
343
333
  <button
344
- class="checkout-btn mobile-footer-btn"
345
- onclick={() => {
334
+ class="flex-1 min-w-36 h-12 rounded-lg text-sm font-semibold touch-manipulation flex items-center justify-center {totalQuantity === 0 || !isAgreed ? 'bg-gray-200 dark:bg-gray-700 text-gray-500 dark:text-gray-400 cursor-not-allowed' : 'bg-blue-700 dark:bg-blue-600 text-white hover:bg-blue-800 dark:hover:bg-blue-700'}"
335
+ on:click={() => {
346
336
  if (executePurchase) {
347
337
  executePurchase(elements);
348
338
  } else if (checkoutTicket) {
@@ -360,203 +350,3 @@
360
350
  </div>
361
351
  </div>
362
352
  {/if}
363
-
364
- <style>
365
- /* Custom breakpoint at 872px for desktop/mobile switch */
366
- .desktop-only {
367
- display: none;
368
- }
369
-
370
- .mobile-only {
371
- display: block;
372
- }
373
-
374
- @media (min-width: 872px) {
375
- .desktop-only {
376
- display: block;
377
- }
378
-
379
- .mobile-only {
380
- display: none !important;
381
- }
382
- }
383
-
384
- /* Theme-responsive colors using CSS variables */
385
- .order-summary {
386
- background-color: hsl(var(--BG-Primary));
387
- border: 1px solid hsl(var(--Stroke-Secondary));
388
- }
389
-
390
- .summary-header {
391
- border-bottom: 1px solid hsl(var(--Stroke-Secondary));
392
- }
393
-
394
- .text-primary {
395
- color: hsl(var(--Text-Primary));
396
- }
397
-
398
- .text-secondary {
399
- color: hsl(var(--Text-Secondary));
400
- }
401
-
402
- .text-tertiary {
403
- color: hsl(var(--Text-Tartiary));
404
- }
405
-
406
- .ticket-line {
407
- border-bottom: 1px solid hsl(var(--Stroke-Secondary) / 0.5);
408
- }
409
-
410
- .promo-discount-line {
411
- color: hsl(var(--Accent-Success));
412
- }
413
-
414
- .total-line {
415
- border-top: 1px solid hsl(var(--Stroke-Secondary));
416
- }
417
-
418
- .terms-text {
419
- font-size: 12px;
420
- color: hsl(var(--Text-Tartiary));
421
- text-align: center;
422
- margin: 0 0 12px 0;
423
- }
424
-
425
- .terms-link {
426
- color: hsl(var(--Brand-Primary));
427
- text-decoration: underline;
428
- }
429
-
430
- .terms-link:hover {
431
- opacity: 0.8;
432
- }
433
-
434
- .checkout-btn {
435
- background-color: hsl(var(--Brand-Primary));
436
- color: white;
437
- -moz-user-select: none;
438
- user-select: none;
439
- -webkit-user-select: none;
440
- touch-action: manipulation;
441
- -webkit-tap-highlight-color: transparent;
442
- }
443
-
444
- .checkout-btn:hover:not(:disabled) {
445
- background-color: hsl(var(--Brand-Primary) / 0.9);
446
- }
447
-
448
- .checkout-btn.disabled,
449
- .checkout-btn:disabled {
450
- background-color: hsl(var(--BG-Quaternary));
451
- color: hsl(var(--Text-Tartiary));
452
- cursor: not-allowed;
453
- }
454
-
455
- /* Mobile backdrop - dims background behind drawer */
456
- .mobile-backdrop {
457
- position: fixed;
458
- inset: 0;
459
- background-color: rgba(0, 0, 0, 0.5);
460
- z-index: 98;
461
- border: none;
462
- cursor: pointer;
463
- }
464
-
465
- /* Mobile summary drawer - stays bright above backdrop */
466
- .mobile-summary {
467
- background-color: hsl(var(--BG-Primary));
468
- max-height: 80vh;
469
- border-radius: 16px 16px 0 0;
470
- box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
471
- z-index: 99;
472
- }
473
-
474
- .mobile-summary-header {
475
- border-bottom: 1px solid hsl(var(--Stroke-Secondary));
476
- }
477
-
478
- .close-btn {
479
- color: hsl(var(--Text-Tartiary));
480
- }
481
-
482
- .close-btn:hover {
483
- color: hsl(var(--Text-Primary));
484
- background-color: hsl(var(--BG-Secondary));
485
- }
486
-
487
- .mobile-ticket-line {
488
- border-bottom: 1px solid hsl(var(--Stroke-Secondary));
489
- }
490
-
491
- .mobile-total {
492
- border-top: 1px solid hsl(var(--Stroke-Secondary));
493
- }
494
-
495
- /* Mobile footer */
496
- .mobile-footer {
497
- background-color: hsl(var(--BG-Primary));
498
- border-top: 1px solid hsl(var(--Stroke-Secondary));
499
- box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
500
- padding: 16px;
501
- padding-bottom: max(16px, calc(env(safe-area-inset-bottom) + 8px));
502
- -moz-user-select: none;
503
- user-select: none;
504
- -webkit-user-select: none;
505
- touch-action: manipulation;
506
- -webkit-tap-highlight-color: transparent;
507
- }
508
-
509
- .mobile-footer-content {
510
- display: flex;
511
- align-items: stretch;
512
- gap: 12px;
513
- }
514
-
515
- .mobile-footer-left {
516
- display: flex;
517
- flex-direction: column;
518
- justify-content: space-between;
519
- align-items: flex-start;
520
- flex-shrink: 0;
521
- white-space: nowrap;
522
- background: none;
523
- border: none;
524
- padding: 0;
525
- cursor: pointer;
526
- touch-action: manipulation;
527
- -webkit-tap-highlight-color: transparent;
528
- }
529
-
530
- .mobile-footer-tickets {
531
- display: flex;
532
- align-items: center;
533
- gap: 4px;
534
- font-size: 14px;
535
- font-weight: 400;
536
- color: hsl(var(--Text-Secondary));
537
- }
538
-
539
- .mobile-footer-price {
540
- font-size: 20px;
541
- font-weight: 700;
542
- color: hsl(var(--Text-Primary));
543
- }
544
-
545
- .mobile-footer-btn {
546
- flex: 1;
547
- min-width: 140px;
548
- height: 48px;
549
- border-radius: 10px;
550
- font-size: 14px;
551
- font-weight: 600;
552
- touch-action: manipulation;
553
- -webkit-tap-highlight-color: transparent;
554
- display: flex;
555
- align-items: center;
556
- justify-content: center;
557
- }
558
-
559
- :global(.chevron-icon) {
560
- color: hsl(var(--Text-Tartiary));
561
- }
562
- </style>