@getmicdrop/svelte-components 2.8.1 → 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 (400) 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 +38 -37
  9. package/dist/components/Alert/Alert.svelte.d.ts +4 -5
  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 +91 -356
  18. package/dist/components/Badges/Badge.svelte.d.ts +8 -8
  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 +14 -100
  24. package/dist/components/Breadcrumb/Breadcrumb.spec.js +1 -1
  25. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte +7 -8
  26. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte.d.ts +0 -9
  27. package/dist/components/Breadcrumb/Breadcrumb.stories.svelte.d.ts.map +1 -1
  28. package/dist/components/Breadcrumb/Breadcrumb.svelte +31 -37
  29. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts +2 -2
  30. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  31. package/dist/components/Button/Button.stories.svelte +5 -7
  32. package/dist/components/Button/Button.stories.svelte.d.ts +0 -32
  33. package/dist/components/Button/Button.stories.svelte.d.ts.map +1 -1
  34. package/dist/components/Button/Button.svelte +110 -729
  35. package/dist/components/Button/Button.svelte.d.ts +4 -22
  36. package/dist/components/Button/Button.svelte.d.ts.map +1 -1
  37. package/dist/components/Button/ButtonSaveDemo.svelte +1 -1
  38. package/dist/components/Calendar/MiniMonthCalendar.svelte +56 -654
  39. package/dist/components/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
  40. package/dist/components/Card.spec.js +28 -26
  41. package/dist/components/Card.stories.svelte +7 -11
  42. package/dist/components/Card.stories.svelte.d.ts +0 -9
  43. package/dist/components/Card.stories.svelte.d.ts.map +1 -1
  44. package/dist/components/Card.svelte +12 -4
  45. package/dist/components/Card.svelte.d.ts +8 -2
  46. package/dist/components/Card.svelte.d.ts.map +1 -1
  47. package/dist/components/Checkbox/Checkbox.svelte +14 -35
  48. package/dist/components/Checkbox/Checkbox.svelte.d.ts +4 -4
  49. package/dist/components/Checkbox/Checkbox.svelte.d.ts.map +1 -1
  50. package/dist/components/CropImage/CropImage.stories.svelte +7 -29
  51. package/dist/components/CropImage/CropImage.stories.svelte.d.ts +0 -13
  52. package/dist/components/CropImage/CropImage.stories.svelte.d.ts.map +1 -1
  53. package/dist/components/CropImage/CropImage.svelte +101 -172
  54. package/dist/components/CropImage/CropImage.svelte.d.ts.map +1 -1
  55. package/dist/components/DarkModeToggle.stories.svelte +15 -13
  56. package/dist/components/DarkModeToggle.stories.svelte.d.ts +0 -5
  57. package/dist/components/DarkModeToggle.stories.svelte.d.ts.map +1 -1
  58. package/dist/components/DarkModeToggle.svelte +30 -136
  59. package/dist/components/DarkModeToggle.svelte.d.ts.map +1 -1
  60. package/dist/components/DesignSystemAudit.stories.svelte +428 -0
  61. package/dist/components/{CardAudit.stories.svelte.d.ts → DesignSystemAudit.stories.svelte.d.ts} +4 -9
  62. package/dist/components/DesignSystemAudit.stories.svelte.d.ts.map +1 -0
  63. package/dist/components/Drawer/Drawer.svelte +81 -136
  64. package/dist/components/Drawer/Drawer.svelte.d.ts +8 -10
  65. package/dist/components/Drawer/Drawer.svelte.d.ts.map +1 -1
  66. package/dist/components/Dropdown/Dropdown.svelte +56 -85
  67. package/dist/components/Dropdown/Dropdown.svelte.d.ts +6 -2
  68. package/dist/components/Dropdown/Dropdown.svelte.d.ts.map +1 -1
  69. package/dist/components/Dropdown/DropdownItem.svelte +31 -73
  70. package/dist/components/Dropdown/DropdownItem.svelte.d.ts.map +1 -1
  71. package/dist/components/Dropdown/SelectDropdown.svelte +36 -162
  72. package/dist/components/Dropdown/SelectDropdown.svelte.d.ts.map +1 -1
  73. package/dist/components/EmptyState/EmptyState.svelte +6 -47
  74. package/dist/components/EmptyState/EmptyState.svelte.d.ts.map +1 -1
  75. package/dist/components/ErrorDisplay.spec.js +3 -3
  76. package/dist/components/ErrorDisplay.stories.svelte +8 -9
  77. package/dist/components/ErrorDisplay.stories.svelte.d.ts +0 -35
  78. package/dist/components/ErrorDisplay.stories.svelte.d.ts.map +1 -1
  79. package/dist/components/ErrorDisplay.svelte +1 -29
  80. package/dist/components/ErrorDisplay.svelte.d.ts.map +1 -1
  81. package/dist/components/FAQs/FAQs.svelte +62 -32
  82. package/dist/components/FAQs/FAQs.svelte.d.ts +10 -2
  83. package/dist/components/FAQs/FAQs.svelte.d.ts.map +1 -1
  84. package/dist/components/FormActions.stories.svelte +8 -9
  85. package/dist/components/FormActions.stories.svelte.d.ts +0 -30
  86. package/dist/components/FormActions.stories.svelte.d.ts.map +1 -1
  87. package/dist/components/FormActions.svelte +3 -3
  88. package/dist/components/FormValidationSummary.stories.svelte +8 -6
  89. package/dist/components/FormValidationSummary.stories.svelte.d.ts +0 -5
  90. package/dist/components/FormValidationSummary.stories.svelte.d.ts.map +1 -1
  91. package/dist/components/FormValidationSummary.svelte +4 -4
  92. package/dist/components/Icons/ArrowLeft.svelte.d.ts +2 -2
  93. package/dist/components/Icons/ArrowRight.svelte.d.ts +2 -2
  94. package/dist/components/Icons/Availability.svelte.d.ts +2 -2
  95. package/dist/components/Icons/Back.svelte.d.ts +2 -2
  96. package/dist/components/Icons/CheckCircle.svelte.d.ts +2 -2
  97. package/dist/components/Icons/CheckCircleOutline.svelte.d.ts +2 -2
  98. package/dist/components/Icons/CheckCircleSolid.svelte +15 -0
  99. package/dist/components/{Badges/BadgeAudit.stories.svelte.d.ts → Icons/CheckCircleSolid.svelte.d.ts} +7 -12
  100. package/dist/components/Icons/CheckCircleSolid.svelte.d.ts.map +1 -0
  101. package/dist/components/Icons/CheckOutline.svelte +17 -0
  102. package/dist/components/{Alert/AlertAudit.stories.svelte.d.ts → Icons/CheckOutline.svelte.d.ts} +7 -12
  103. package/dist/components/Icons/CheckOutline.svelte.d.ts.map +1 -0
  104. package/dist/components/Icons/ChevronDownOutline.svelte +17 -0
  105. package/dist/components/{Input/InputAudit.stories.svelte.d.ts → Icons/ChevronDownOutline.svelte.d.ts} +7 -12
  106. package/dist/components/Icons/ChevronDownOutline.svelte.d.ts.map +1 -0
  107. package/dist/components/Icons/ChevronLeft.svelte.d.ts +2 -2
  108. package/dist/components/Icons/ChevronLeftOutline.svelte +17 -0
  109. package/dist/components/Icons/ChevronLeftOutline.svelte.d.ts +27 -0
  110. package/dist/components/Icons/ChevronLeftOutline.svelte.d.ts.map +1 -0
  111. package/dist/components/Icons/ChevronRight.svelte.d.ts +2 -2
  112. package/dist/components/Icons/ChevronRightOutline.svelte +17 -0
  113. package/dist/components/Icons/ChevronRightOutline.svelte.d.ts +27 -0
  114. package/dist/components/Icons/ChevronRightOutline.svelte.d.ts.map +1 -0
  115. package/dist/components/Icons/ChevronUpOutline.svelte +17 -0
  116. package/dist/components/Icons/ChevronUpOutline.svelte.d.ts +27 -0
  117. package/dist/components/Icons/ChevronUpOutline.svelte.d.ts.map +1 -0
  118. package/dist/components/Icons/CloseCircleOutline.svelte +17 -0
  119. package/dist/components/Icons/CloseCircleOutline.svelte.d.ts +27 -0
  120. package/dist/components/Icons/CloseCircleOutline.svelte.d.ts.map +1 -0
  121. package/dist/components/Icons/CloseOutline.svelte +17 -0
  122. package/dist/components/Icons/CloseOutline.svelte.d.ts +27 -0
  123. package/dist/components/Icons/CloseOutline.svelte.d.ts.map +1 -0
  124. package/dist/components/Icons/Copy.svelte.d.ts +2 -2
  125. package/dist/components/Icons/Cross.svelte.d.ts +2 -2
  126. package/dist/components/Icons/DotsHorizontalOutline.svelte +15 -0
  127. package/dist/components/Icons/DotsHorizontalOutline.svelte.d.ts +27 -0
  128. package/dist/components/Icons/DotsHorizontalOutline.svelte.d.ts.map +1 -0
  129. package/dist/components/Icons/DownArrow.svelte.d.ts +2 -2
  130. package/dist/components/Icons/ErrorCircle.svelte.d.ts +2 -2
  131. package/dist/components/Icons/ExclamationCircleOutline.svelte +17 -0
  132. package/dist/components/Icons/ExclamationCircleOutline.svelte.d.ts +27 -0
  133. package/dist/components/Icons/ExclamationCircleOutline.svelte.d.ts.map +1 -0
  134. package/dist/components/Icons/ExclamationTriangleOutline.svelte +17 -0
  135. package/dist/components/Icons/ExclamationTriangleOutline.svelte.d.ts +27 -0
  136. package/dist/components/Icons/ExclamationTriangleOutline.svelte.d.ts.map +1 -0
  137. package/dist/components/Icons/EyeOutline.svelte +18 -0
  138. package/dist/components/Icons/EyeOutline.svelte.d.ts +27 -0
  139. package/dist/components/Icons/EyeOutline.svelte.d.ts.map +1 -0
  140. package/dist/components/Icons/EyeSlashOutline.svelte +17 -0
  141. package/dist/components/Icons/EyeSlashOutline.svelte.d.ts +27 -0
  142. package/dist/components/Icons/EyeSlashOutline.svelte.d.ts.map +1 -0
  143. package/dist/components/Icons/FacebookIcon.svelte.d.ts +2 -2
  144. package/dist/components/Icons/FileCopyOutline.svelte +17 -0
  145. package/dist/components/Icons/FileCopyOutline.svelte.d.ts +27 -0
  146. package/dist/components/Icons/FileCopyOutline.svelte.d.ts.map +1 -0
  147. package/dist/components/Icons/Home.svelte.d.ts +2 -2
  148. package/dist/components/Icons/HomeSolid.svelte +16 -0
  149. package/dist/components/Icons/HomeSolid.svelte.d.ts +27 -0
  150. package/dist/components/Icons/HomeSolid.svelte.d.ts.map +1 -0
  151. package/dist/components/Icons/Icon.stories.svelte +18 -19
  152. package/dist/components/Icons/Icon.stories.svelte.d.ts +0 -17
  153. package/dist/components/Icons/Icon.stories.svelte.d.ts.map +1 -1
  154. package/dist/components/Icons/Icon.svelte.d.ts +2 -2
  155. package/dist/components/Icons/IconGallery.stories.svelte +29 -27
  156. package/dist/components/Icons/IconGallery.stories.svelte.d.ts +0 -4
  157. package/dist/components/Icons/IconGallery.stories.svelte.d.ts.map +1 -1
  158. package/dist/components/Icons/Info.svelte.d.ts +2 -2
  159. package/dist/components/Icons/InfoCircleOutline.svelte +17 -0
  160. package/dist/components/Icons/InfoCircleOutline.svelte.d.ts +27 -0
  161. package/dist/components/Icons/InfoCircleOutline.svelte.d.ts.map +1 -0
  162. package/dist/components/Icons/InstagramIcon.svelte.d.ts +2 -2
  163. package/dist/components/Icons/LogoInstagram.svelte +18 -0
  164. package/dist/components/Icons/LogoInstagram.svelte.d.ts +29 -0
  165. package/dist/components/Icons/LogoInstagram.svelte.d.ts.map +1 -0
  166. package/dist/components/Icons/Message.svelte.d.ts +2 -2
  167. package/dist/components/Icons/MinusOutline.svelte +17 -0
  168. package/dist/components/Icons/MinusOutline.svelte.d.ts +27 -0
  169. package/dist/components/Icons/MinusOutline.svelte.d.ts.map +1 -0
  170. package/dist/components/Icons/MoonIcon.svelte.d.ts +2 -2
  171. package/dist/components/Icons/More.svelte.d.ts +2 -2
  172. package/dist/components/Icons/MoreHori.svelte.d.ts +2 -2
  173. package/dist/components/Icons/Notification.svelte.d.ts +2 -2
  174. package/dist/components/Icons/Payment.svelte.d.ts +2 -2
  175. package/dist/components/Icons/PlusOutline.svelte +17 -0
  176. package/dist/components/Icons/PlusOutline.svelte.d.ts +27 -0
  177. package/dist/components/Icons/PlusOutline.svelte.d.ts.map +1 -0
  178. package/dist/components/Icons/Profile.svelte.d.ts +2 -2
  179. package/dist/components/Icons/Reload.svelte.d.ts +2 -2
  180. package/dist/components/Icons/SearchOutline.svelte +17 -0
  181. package/dist/components/Icons/SearchOutline.svelte.d.ts +27 -0
  182. package/dist/components/Icons/SearchOutline.svelte.d.ts.map +1 -0
  183. package/dist/components/Icons/ShareOutline.svelte +17 -0
  184. package/dist/components/Icons/ShareOutline.svelte.d.ts +27 -0
  185. package/dist/components/Icons/ShareOutline.svelte.d.ts.map +1 -0
  186. package/dist/components/Icons/Shows.svelte.d.ts +2 -2
  187. package/dist/components/Icons/Signout.svelte.d.ts +2 -2
  188. package/dist/components/Icons/SunIcon.svelte.d.ts +2 -2
  189. package/dist/components/Icons/TiktokIcon.svelte.d.ts +2 -2
  190. package/dist/components/Icons/TwitterIcon.svelte.d.ts +2 -2
  191. package/dist/components/Icons/index.d.ts +53 -0
  192. package/dist/components/Icons/index.d.ts.map +1 -0
  193. package/dist/components/Icons/index.js +59 -0
  194. package/dist/components/Input/Input.stories.svelte +7 -8
  195. package/dist/components/Input/Input.stories.svelte.d.ts +0 -53
  196. package/dist/components/Input/Input.stories.svelte.d.ts.map +1 -1
  197. package/dist/components/Input/Input.svelte +62 -467
  198. package/dist/components/Input/Input.svelte.d.ts +8 -8
  199. package/dist/components/Input/Input.svelte.d.ts.map +1 -1
  200. package/dist/components/Input/MultiSelect.stories.svelte +9 -12
  201. package/dist/components/Input/MultiSelect.stories.svelte.d.ts +0 -5
  202. package/dist/components/Input/MultiSelect.stories.svelte.d.ts.map +1 -1
  203. package/dist/components/Input/MultiSelect.svelte +43 -362
  204. package/dist/components/Input/MultiSelect.svelte.d.ts +6 -6
  205. package/dist/components/Input/MultiSelect.svelte.d.ts.map +1 -1
  206. package/dist/components/Input/OTPInput.stories.svelte +17 -20
  207. package/dist/components/Input/OTPInput.stories.svelte.d.ts +0 -21
  208. package/dist/components/Input/OTPInput.stories.svelte.d.ts.map +1 -1
  209. package/dist/components/Input/OTPInput.svelte +1 -20
  210. package/dist/components/Input/OTPInput.svelte.d.ts.map +1 -1
  211. package/dist/components/Input/Search.svelte +6 -101
  212. package/dist/components/Input/Search.svelte.d.ts +2 -2
  213. package/dist/components/Input/Search.svelte.d.ts.map +1 -1
  214. package/dist/components/Input/Select.svelte +28 -258
  215. package/dist/components/Input/Select.svelte.d.ts +6 -6
  216. package/dist/components/Input/Select.svelte.d.ts.map +1 -1
  217. package/dist/components/Input/Textarea.svelte +5 -90
  218. package/dist/components/Input/Textarea.svelte.d.ts +2 -2
  219. package/dist/components/Input/Textarea.svelte.d.ts.map +1 -1
  220. package/dist/components/Label/Label.svelte +8 -39
  221. package/dist/components/Label/Label.svelte.d.ts.map +1 -1
  222. package/dist/components/Layout/BottomNav.stories.svelte +27 -25
  223. package/dist/components/Layout/BottomNav.stories.svelte.d.ts +0 -5
  224. package/dist/components/Layout/BottomNav.stories.svelte.d.ts.map +1 -1
  225. package/dist/components/Layout/BottomNav.svelte +9 -72
  226. package/dist/components/Layout/BottomNav.svelte.d.ts.map +1 -1
  227. package/dist/components/Layout/Header.stories.svelte +7 -8
  228. package/dist/components/Layout/Header.stories.svelte.d.ts +0 -20
  229. package/dist/components/Layout/Header.stories.svelte.d.ts.map +1 -1
  230. package/dist/components/Layout/Header.svelte +59 -353
  231. package/dist/components/Layout/PageLayout.svelte +2 -2
  232. package/dist/components/Layout/PageLayout.svelte.d.ts +2 -2
  233. package/dist/components/Modal/ConfirmationModal.spec.js +3 -3
  234. package/dist/components/Modal/ConfirmationModal.stories.svelte +7 -12
  235. package/dist/components/Modal/ConfirmationModal.stories.svelte.d.ts +0 -19
  236. package/dist/components/Modal/ConfirmationModal.stories.svelte.d.ts.map +1 -1
  237. package/dist/components/Modal/ConfirmationModal.svelte +6 -6
  238. package/dist/components/Modal/ConfirmationModal.svelte.d.ts +4 -4
  239. package/dist/components/Modal/InputModal.svelte +3 -4
  240. package/dist/components/Modal/InputModal.svelte.d.ts +2 -2
  241. package/dist/components/Modal/Modal.stories.svelte +13 -11
  242. package/dist/components/Modal/Modal.stories.svelte.d.ts +0 -5
  243. package/dist/components/Modal/Modal.stories.svelte.d.ts.map +1 -1
  244. package/dist/components/Modal/Modal.svelte +22 -167
  245. package/dist/components/Modal/Modal.svelte.d.ts +2 -2
  246. package/dist/components/Modal/Modal.svelte.d.ts.map +1 -1
  247. package/dist/components/Modal/ModalStateManager.svelte +5 -5
  248. package/dist/components/Modal/StatusModal.svelte +11 -18
  249. package/dist/components/Modal/StatusModal.svelte.d.ts +2 -2
  250. package/dist/components/Modal/StatusModal.svelte.d.ts.map +1 -1
  251. package/dist/components/MonthSwitcher/MonthSwitcher.svelte +21 -99
  252. package/dist/components/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -1
  253. package/dist/components/OrderSummary/OrderSummary.svelte +45 -246
  254. package/dist/components/OrderSummary/OrderSummary.svelte.d.ts.map +1 -1
  255. package/dist/components/PageLoader.stories.svelte +7 -13
  256. package/dist/components/PageLoader.stories.svelte.d.ts +0 -26
  257. package/dist/components/PageLoader.stories.svelte.d.ts.map +1 -1
  258. package/dist/components/PageLoader.svelte +2 -2
  259. package/dist/components/Pagination/Pagination.svelte +167 -103
  260. package/dist/components/Pagination/Pagination.svelte.d.ts +8 -0
  261. package/dist/components/Pagination/Pagination.svelte.d.ts.map +1 -1
  262. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +8 -8
  263. package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +3 -3
  264. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +14 -17
  265. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts +0 -33
  266. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts.map +1 -1
  267. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte +31 -198
  268. package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
  269. package/dist/components/PublicCard/PublicCard.svelte +20 -128
  270. package/dist/components/PublicCard/PublicCard.svelte.d.ts.map +1 -1
  271. package/dist/components/Radio/Radio.svelte +21 -80
  272. package/dist/components/Radio/Radio.svelte.d.ts +4 -2
  273. package/dist/components/Radio/Radio.svelte.d.ts.map +1 -1
  274. package/dist/components/ShowCard/ShowCard.svelte +17 -91
  275. package/dist/components/ShowCard/ShowCard.svelte.d.ts.map +1 -1
  276. package/dist/components/ShowTimeCard/ShowTimeCard.svelte +6 -37
  277. package/dist/components/Skeleton/CardPlaceholder.svelte +98 -0
  278. package/dist/components/Skeleton/CardPlaceholder.svelte.d.ts +35 -0
  279. package/dist/components/Skeleton/CardPlaceholder.svelte.d.ts.map +1 -0
  280. package/dist/components/Skeleton/ImagePlaceholder.svelte +65 -0
  281. package/dist/components/{Button/ButtonAudit.stories.svelte.d.ts → Skeleton/ImagePlaceholder.svelte.d.ts} +13 -14
  282. package/dist/components/Skeleton/ImagePlaceholder.svelte.d.ts.map +1 -0
  283. package/dist/components/Skeleton/ListPlaceholder.svelte +86 -0
  284. package/dist/components/Skeleton/ListPlaceholder.svelte.d.ts +37 -0
  285. package/dist/components/Skeleton/ListPlaceholder.svelte.d.ts.map +1 -0
  286. package/dist/components/Skeleton/Skeleton.svelte +49 -60
  287. package/dist/components/Skeleton/Skeleton.svelte.d.ts +6 -10
  288. package/dist/components/Skeleton/Skeleton.svelte.d.ts.map +1 -1
  289. package/dist/components/Skeleton/index.d.ts +5 -0
  290. package/dist/components/Skeleton/index.d.ts.map +1 -0
  291. package/dist/components/Skeleton/index.js +10 -0
  292. package/dist/components/Spinner/Spinner.stories.svelte +9 -10
  293. package/dist/components/Spinner/Spinner.stories.svelte.d.ts +0 -4
  294. package/dist/components/Spinner/Spinner.stories.svelte.d.ts.map +1 -1
  295. package/dist/components/Spinner/Spinner.svelte +41 -64
  296. package/dist/components/Spinner/Spinner.svelte.d.ts +6 -4
  297. package/dist/components/Spinner/Spinner.svelte.d.ts.map +1 -1
  298. package/dist/components/StatusIndicator/StatusIndicator.svelte +13 -47
  299. package/dist/components/StatusIndicator/StatusIndicator.svelte.d.ts.map +1 -1
  300. package/dist/components/Tabs/TabItem.svelte +3 -9
  301. package/dist/components/Tabs/TabItem.svelte.d.ts.map +1 -1
  302. package/dist/components/Tabs/Tabs.svelte +49 -126
  303. package/dist/components/Tabs/Tabs.svelte.d.ts +2 -2
  304. package/dist/components/Tabs/Tabs.svelte.d.ts.map +1 -1
  305. package/dist/components/Toaster/Toaster.stories.svelte +15 -13
  306. package/dist/components/Toaster/Toaster.stories.svelte.d.ts +0 -3
  307. package/dist/components/Toaster/Toaster.stories.svelte.d.ts.map +1 -1
  308. package/dist/components/Toggle.spec.js +21 -52
  309. package/dist/components/Toggle.stories.svelte +14 -15
  310. package/dist/components/Toggle.stories.svelte.d.ts +0 -14
  311. package/dist/components/Toggle.stories.svelte.d.ts.map +1 -1
  312. package/dist/components/Toggle.svelte +47 -67
  313. package/dist/components/Toggle.svelte.d.ts +21 -4
  314. package/dist/components/Toggle.svelte.d.ts.map +1 -1
  315. package/dist/components/Typography/Typography.svelte.d.ts +4 -4
  316. package/dist/components/ValidationError.stories.svelte +8 -9
  317. package/dist/components/ValidationError.stories.svelte.d.ts +0 -14
  318. package/dist/components/ValidationError.stories.svelte.d.ts.map +1 -1
  319. package/dist/components/ValidationError.svelte +1 -1
  320. package/dist/components/pages/performers/ModalShowInfo.svelte +7 -61
  321. package/dist/components/pages/performers/ModalShowInfo.svelte.d.ts.map +1 -1
  322. package/dist/components/pages/performers/PageBackButton.spec.js +1 -1
  323. package/dist/components/pages/performers/PageBackButton.stories.svelte +7 -8
  324. package/dist/components/pages/performers/PageBackButton.stories.svelte.d.ts +0 -9
  325. package/dist/components/pages/performers/PageBackButton.stories.svelte.d.ts.map +1 -1
  326. package/dist/components/pages/performers/PageBackButton.svelte +1 -1
  327. package/dist/components/pages/performers/SectionHeader.spec.js +2 -2
  328. package/dist/components/pages/performers/SectionHeader.stories.svelte +13 -14
  329. package/dist/components/pages/performers/SectionHeader.stories.svelte.d.ts +0 -14
  330. package/dist/components/pages/performers/SectionHeader.stories.svelte.d.ts.map +1 -1
  331. package/dist/components/pages/performers/SectionHeader.svelte +2 -2
  332. package/dist/components/pages/performers/ShowDetails.spec.js +2 -2
  333. package/dist/components/pages/performers/ShowDetails.stories.svelte +9 -12
  334. package/dist/components/pages/performers/ShowDetails.stories.svelte.d.ts +0 -10
  335. package/dist/components/pages/performers/ShowDetails.stories.svelte.d.ts.map +1 -1
  336. package/dist/components/pages/performers/ShowDetails.svelte +11 -11
  337. package/dist/components/pages/performers/ShowDetails.svelte.d.ts +2 -2
  338. package/dist/components/pages/performers/ShowItemCard.spec.js +1 -1
  339. package/dist/components/pages/performers/ShowItemCard.stories.svelte +7 -5
  340. package/dist/components/pages/performers/ShowItemCard.stories.svelte.d.ts +0 -16
  341. package/dist/components/pages/performers/ShowItemCard.stories.svelte.d.ts.map +1 -1
  342. package/dist/components/pages/performers/ShowItemCard.svelte +52 -61
  343. package/dist/components/pages/performers/ShowItemCard.svelte.d.ts +4 -4
  344. package/dist/components/pages/performers/SwitchOption.stories.svelte +7 -10
  345. package/dist/components/pages/performers/SwitchOption.stories.svelte.d.ts +0 -13
  346. package/dist/components/pages/performers/SwitchOption.stories.svelte.d.ts.map +1 -1
  347. package/dist/components/pages/performers/SwitchOption.svelte +3 -3
  348. package/dist/components/pages/performers/VenueInfo.svelte +6 -60
  349. package/dist/components/pages/performers/VenueInfo.svelte.d.ts.map +1 -1
  350. package/dist/components/pages/performers/VenueItemCard.stories.svelte +10 -8
  351. package/dist/components/pages/performers/VenueItemCard.stories.svelte.d.ts +0 -10
  352. package/dist/components/pages/performers/VenueItemCard.stories.svelte.d.ts.map +1 -1
  353. package/dist/components/pages/performers/VenueItemCard.svelte +16 -15
  354. package/dist/components/pages/performers/VenueItemCard.svelte.d.ts +2 -2
  355. package/dist/components/pages/performers/VenueItemCard.svelte.d.ts.map +1 -1
  356. package/dist/components/pages/profile/profile-form.stories.svelte +7 -10
  357. package/dist/components/pages/profile/profile-form.stories.svelte.d.ts +0 -21
  358. package/dist/components/pages/profile/profile-form.stories.svelte.d.ts.map +1 -1
  359. package/dist/components/pages/profile/profile-form.svelte +21 -74
  360. package/dist/components/pages/profile/profile-form.svelte.d.ts.map +1 -1
  361. package/dist/components/pages/profile/profile-photos.stories.svelte +7 -14
  362. package/dist/components/pages/profile/profile-photos.stories.svelte.d.ts +0 -4
  363. package/dist/components/pages/profile/profile-photos.stories.svelte.d.ts.map +1 -1
  364. package/dist/components/pages/profile/profile-photos.svelte +1 -1
  365. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte +11 -12
  366. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte.d.ts +0 -22
  367. package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte.d.ts.map +1 -1
  368. package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte +12 -12
  369. package/dist/components/pages/shows/ShowList.stories.svelte +7 -10
  370. package/dist/components/pages/shows/ShowList.stories.svelte.d.ts +0 -14
  371. package/dist/components/pages/shows/ShowList.stories.svelte.d.ts.map +1 -1
  372. package/dist/components/pages/shows/TabContent.stories.svelte +7 -10
  373. package/dist/components/pages/shows/TabContent.stories.svelte.d.ts +0 -18
  374. package/dist/components/pages/shows/TabContent.stories.svelte.d.ts.map +1 -1
  375. package/dist/components/pages/shows/TabContent.svelte +4 -13
  376. package/dist/components/pages/shows/TabContent.svelte.d.ts.map +1 -1
  377. package/dist/components/pages/shows/TabNavigation.stories.svelte +19 -22
  378. package/dist/components/pages/shows/TabNavigation.stories.svelte.d.ts +0 -14
  379. package/dist/components/pages/shows/TabNavigation.stories.svelte.d.ts.map +1 -1
  380. package/dist/components/pages/shows/TabNavigation.svelte +1 -34
  381. package/dist/components/pages/shows/TabNavigation.svelte.d.ts.map +1 -1
  382. package/dist/index.d.ts +3 -0
  383. package/dist/index.js +3 -0
  384. package/package.json +2 -5
  385. package/dist/components/Alert/AlertAudit.stories.svelte +0 -241
  386. package/dist/components/Alert/AlertAudit.stories.svelte.d.ts.map +0 -1
  387. package/dist/components/Badges/BadgeAudit.stories.svelte +0 -238
  388. package/dist/components/Badges/BadgeAudit.stories.svelte.d.ts.map +0 -1
  389. package/dist/components/Button/ButtonAudit.stories.svelte +0 -333
  390. package/dist/components/Button/ButtonAudit.stories.svelte.d.ts.map +0 -1
  391. package/dist/components/CardAudit.stories.svelte +0 -175
  392. package/dist/components/CardAudit.stories.svelte.d.ts.map +0 -1
  393. package/dist/components/Input/InputAudit.stories.svelte +0 -483
  394. package/dist/components/Input/InputAudit.stories.svelte.d.ts.map +0 -1
  395. package/dist/components/Input/SelectAudit.stories.svelte +0 -364
  396. package/dist/components/Input/SelectAudit.stories.svelte.d.ts +0 -32
  397. package/dist/components/Input/SelectAudit.stories.svelte.d.ts.map +0 -1
  398. package/dist/components/Modal/ModalAudit.stories.svelte +0 -329
  399. package/dist/components/Modal/ModalAudit.stories.svelte.d.ts +0 -32
  400. package/dist/components/Modal/ModalAudit.stories.svelte.d.ts.map +0 -1
@@ -1,7 +1,5 @@
1
1
  <script>
2
2
  import { createEventDispatcher, onDestroy } from "svelte";
3
- import { fly, fade } from "svelte/transition";
4
- import { cubicOut } from "svelte/easing";
5
3
 
6
4
  /** @type {boolean} Whether the drawer is visible */
7
5
  export let show = false;
@@ -11,26 +9,36 @@
11
9
  export let title = "";
12
10
  /** @type {'left' | 'right' | 'top' | 'bottom'} Which side the drawer slides from */
13
11
  export let placement = "left";
14
- /** @type {string} Width of the drawer (for left/right placement) */
15
- export let width = "320px";
16
- /** @type {string} Height of the drawer (for top/bottom placement) */
17
- export let height = "auto";
18
- /** @type {number} Transition duration in ms */
19
- export let duration = 200;
12
+ /** @type {'sm' | 'md' | 'lg' | 'xl' | 'full'} Width preset for left/right drawers */
13
+ export let width = "md";
20
14
  /** @type {boolean} Whether clicking the backdrop closes the drawer */
21
15
  export let closeOnBackdropClick = true;
22
16
  /** @type {boolean} Whether pressing Escape closes the drawer */
23
17
  export let closeOnEscape = true;
24
18
  /** @type {string} Optional id for the drawer element */
25
19
  export let id = "";
26
- /** @type {object|undefined} Custom transition params (flowbite API) */
27
- export let transitionParams = undefined;
20
+ /** @type {boolean} Whether to show swipeable edge handle (bottom placement only) */
21
+ export let edge = false;
22
+ /** @type {number} Offset from bottom for edge handle in pixels */
23
+ export let edgeOffset = 60;
28
24
 
29
25
  const dispatch = createEventDispatcher();
30
26
 
31
27
  // Support both show and hidden props (flowbite uses hidden)
32
28
  $: isVisible = show || !hidden;
33
29
 
30
+ // Width classes for left/right drawers
31
+ const widthClasses = {
32
+ sm: "w-64",
33
+ md: "w-80",
34
+ lg: "w-96",
35
+ xl: "w-[28rem]",
36
+ full: "w-full"
37
+ };
38
+
39
+ // Get the appropriate width class
40
+ $: widthClass = widthClasses[width] || widthClasses.md;
41
+
34
42
  function close() {
35
43
  hidden = true;
36
44
  show = false;
@@ -49,21 +57,14 @@
49
57
  }
50
58
  }
51
59
 
52
- // Calculate transition params based on placement (use custom if provided)
53
- $: computedTransitionParams = transitionParams || (() => {
54
- switch (placement) {
55
- case "left":
56
- return { x: -320, duration, easing: cubicOut };
57
- case "right":
58
- return { x: 320, duration, easing: cubicOut };
59
- case "top":
60
- return { y: -320, duration, easing: cubicOut };
61
- case "bottom":
62
- return { y: 320, duration, easing: cubicOut };
63
- default:
64
- return { x: -320, duration, easing: cubicOut };
60
+ // Handle edge swipe to open drawer
61
+ function handleEdgeClick() {
62
+ if (edge && placement === "bottom") {
63
+ hidden = false;
64
+ show = true;
65
+ dispatch("open");
65
66
  }
66
- })();
67
+ }
67
68
 
68
69
  // Lock body scroll when drawer is open
69
70
  $: if (typeof document !== "undefined") {
@@ -83,125 +84,69 @@
83
84
 
84
85
  <svelte:window on:keydown={handleKeydown} />
85
86
 
86
- {#if isVisible}
87
+ <!-- Swipeable Edge Handle (bottom placement only) -->
88
+ {#if edge && placement === "bottom" && !isVisible}
87
89
  <!-- svelte-ignore a11y-click-events-have-key-events -->
88
90
  <!-- svelte-ignore a11y-no-static-element-interactions -->
89
91
  <div
90
- class="drawer-backdrop"
91
- on:click={handleBackdropClick}
92
- transition:fade={{ duration: 150 }}
92
+ class="fixed bottom-0 left-0 right-0 z-40 flex justify-center w-full p-4 cursor-pointer bg-white border-t border-gray-200 hover:bg-gray-50 dark:bg-gray-800 dark:border-gray-700 dark:hover:bg-gray-700 transition-colors"
93
+ style="bottom: {edgeOffset}px"
94
+ on:click={handleEdgeClick}
93
95
  >
94
- <div
95
- {id}
96
- class="drawer drawer--{placement}"
97
- style="--drawer-width: {width}; --drawer-height: {height};"
98
- on:click|stopPropagation
99
- transition:fly={computedTransitionParams}
100
- >
101
- <!-- Optional header with title -->
102
- {#if title || $$slots.header}
103
- <div class="drawer__header">
104
- {#if $$slots.header}
105
- <slot name="header" />
106
- {:else}
107
- <h3 class="drawer__title">{title}</h3>
108
- {/if}
109
- </div>
110
- {/if}
111
-
112
- <!-- Content slot -->
113
- <div class="drawer__content">
114
- <slot />
115
- </div>
116
-
117
- <!-- Actions slot (optional) -->
118
- {#if $$slots.actions}
119
- <div class="drawer__actions">
120
- <slot name="actions" />
121
- </div>
122
- {/if}
123
- </div>
96
+ <span class="absolute w-8 h-1 -translate-x-1/2 bg-gray-300 rounded-lg top-3 left-1/2 dark:bg-gray-600"></span>
124
97
  </div>
125
98
  {/if}
126
99
 
127
- <style>
128
- .drawer-backdrop {
129
- position: fixed;
130
- inset: 0;
131
- background-color: rgba(0, 0, 0, 0.5);
132
- z-index: var(--z-modal, 50);
133
- display: flex;
134
- touch-action: none;
135
- }
136
-
137
- .drawer {
138
- position: absolute;
139
- background-color: hsl(var(--BG-Primary, 0 0% 100%));
140
- box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
141
- display: flex;
142
- flex-direction: column;
143
- overflow: hidden;
144
- }
145
-
146
- /* Placement variants */
147
- .drawer--left {
148
- left: 0;
149
- top: 0;
150
- bottom: 0;
151
- width: var(--drawer-width, 320px);
152
- max-width: 100vw;
153
- }
154
-
155
- .drawer--right {
156
- right: 0;
157
- top: 0;
158
- bottom: 0;
159
- width: var(--drawer-width, 320px);
160
- max-width: 100vw;
161
- }
162
-
163
- .drawer--top {
164
- top: 0;
165
- left: 0;
166
- right: 0;
167
- height: var(--drawer-height, auto);
168
- max-height: 100vh;
169
- }
170
-
171
- .drawer--bottom {
172
- bottom: 0;
173
- left: 0;
174
- right: 0;
175
- height: var(--drawer-height, auto);
176
- max-height: 100vh;
177
- }
178
-
179
- .drawer__header {
180
- padding: 1rem 1.5rem;
181
- border-bottom: 1px solid hsl(var(--Stroke-Primary, 220 13% 85%));
182
- flex-shrink: 0;
183
- }
100
+ <!-- Backdrop -->
101
+ {#if isVisible}
102
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
103
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
104
+ <div
105
+ class="fixed inset-0 z-30 bg-gray-900/50 dark:bg-gray-900/80"
106
+ on:click={handleBackdropClick}
107
+ ></div>
108
+ {/if}
184
109
 
185
- .drawer__title {
186
- font-size: 1.125rem;
187
- font-weight: 600;
188
- color: hsl(var(--Text-Primary, 220 13% 13%));
189
- margin: 0;
190
- }
110
+ <!-- Drawer -->
111
+ <div
112
+ {id}
113
+ class="
114
+ fixed z-40 overflow-y-auto bg-white dark:bg-gray-800
115
+ transition-transform duration-300 ease-in-out
116
+ {placement === 'left' ? `top-0 left-0 h-screen ${widthClass} max-w-full border-r border-gray-200 dark:border-gray-700 ${isVisible ? 'translate-x-0' : '-translate-x-full'}` : ''}
117
+ {placement === 'right' ? `top-0 right-0 h-screen ${widthClass} max-w-full border-l border-gray-200 dark:border-gray-700 ${isVisible ? 'translate-x-0' : 'translate-x-full'}` : ''}
118
+ {placement === 'top' ? `top-0 left-0 right-0 w-full border-b border-gray-200 dark:border-gray-700 ${isVisible ? 'translate-y-0' : '-translate-y-full'}` : ''}
119
+ {placement === 'bottom' ? `bottom-0 left-0 right-0 w-full border-t border-gray-200 dark:border-gray-700 ${isVisible ? 'translate-y-0' : 'translate-y-full'}` : ''}
120
+ "
121
+ tabindex="-1"
122
+ aria-labelledby={title ? `${id}-label` : undefined}
123
+ aria-hidden={!isVisible}
124
+ >
125
+ <!-- Optional header with title -->
126
+ {#if title || $$slots.header}
127
+ <div class="p-4 border-b border-gray-200 dark:border-gray-700">
128
+ {#if $$slots.header}
129
+ <slot name="header" />
130
+ {:else}
131
+ <h5
132
+ id={id ? `${id}-label` : undefined}
133
+ class="text-lg font-semibold text-gray-900 dark:text-white"
134
+ >
135
+ {title}
136
+ </h5>
137
+ {/if}
138
+ </div>
139
+ {/if}
191
140
 
192
- .drawer__content {
193
- flex: 1;
194
- overflow-y: auto;
195
- overscroll-behavior: contain;
196
- -webkit-overflow-scrolling: touch;
197
- }
141
+ <!-- Content slot -->
142
+ <div class="flex-1 overflow-y-auto overscroll-contain p-4">
143
+ <slot />
144
+ </div>
198
145
 
199
- .drawer__actions {
200
- padding: 1rem 1.5rem;
201
- border-top: 1px solid hsl(var(--Stroke-Primary, 220 13% 85%));
202
- flex-shrink: 0;
203
- display: flex;
204
- flex-direction: column;
205
- gap: 0.75rem;
206
- }
207
- </style>
146
+ <!-- Actions slot (optional) -->
147
+ {#if $$slots.actions}
148
+ <div class="p-4 border-t border-gray-200 dark:border-gray-700 flex flex-col gap-3">
149
+ <slot name="actions" />
150
+ </div>
151
+ {/if}
152
+ </div>
@@ -1,23 +1,22 @@
1
1
  export default Drawer;
2
2
  type Drawer = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
- duration?: number | undefined;
4
3
  title?: string | undefined;
5
4
  show?: boolean | undefined;
6
5
  hidden?: boolean | undefined;
7
6
  placement?: "left" | "right" | "top" | "bottom" | undefined;
8
- width?: string | undefined;
9
- height?: string | undefined;
7
+ width?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
10
8
  closeOnBackdropClick?: boolean | undefined;
11
9
  closeOnEscape?: boolean | undefined;
12
10
  id?: string | undefined;
13
- transitionParams?: object | undefined;
11
+ edge?: boolean | undefined;
12
+ edgeOffset?: number | undefined;
14
13
  }, {
15
14
  header: {};
16
15
  default: {};
17
16
  actions: {};
18
17
  }>, {
19
- click: PointerEvent;
20
18
  close: CustomEvent<any>;
19
+ open: CustomEvent<any>;
21
20
  } & {
22
21
  [evt: string]: CustomEvent<any>;
23
22
  }, {
@@ -28,24 +27,23 @@ type Drawer = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
28
27
  $$bindings?: string | undefined;
29
28
  };
30
29
  declare const Drawer: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
31
- duration?: number | undefined;
32
30
  title?: string | undefined;
33
31
  show?: boolean | undefined;
34
32
  hidden?: boolean | undefined;
35
33
  placement?: "left" | "right" | "top" | "bottom" | undefined;
36
- width?: string | undefined;
37
- height?: string | undefined;
34
+ width?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
38
35
  closeOnBackdropClick?: boolean | undefined;
39
36
  closeOnEscape?: boolean | undefined;
40
37
  id?: string | undefined;
41
- transitionParams?: object | undefined;
38
+ edge?: boolean | undefined;
39
+ edgeOffset?: number | undefined;
42
40
  }, {
43
41
  header: {};
44
42
  default: {};
45
43
  actions: {};
46
44
  }>, {
47
- click: PointerEvent;
48
45
  close: CustomEvent<any>;
46
+ open: CustomEvent<any>;
49
47
  } & {
50
48
  [evt: string]: CustomEvent<any>;
51
49
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Drawer/Drawer.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwJA;;;;;;;;;;;uBAfW,MAAM,GAAC,SAAS;;;;;;;;;;;;;;eAe+N;sCATpN,KAAK,EAAE,KAAK;;;;;6CALL,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ;IAC3L,cAAc,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,WAAW,OAAO,SAAS,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Drawer.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Drawer/Drawer.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwKA;;;;;;;;;;;;;;;;;;;;;;;;eAAuO;sCATjM,KAAK,EAAE,KAAK;;;;;6CALL,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ;IAC3L,cAAc,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,WAAW,OAAO,SAAS,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,eAAe,QAAQ,CAAC"}
@@ -5,8 +5,8 @@
5
5
  export let open = false;
6
6
  /** @type {string} Current active URL for highlighting (flowbite API) */
7
7
  export let activeUrl = "";
8
- /** @type {'bottom-start' | 'bottom-end' | 'bottom' | 'top-start' | 'top-end' | 'top'} Placement */
9
- export let placement = "bottom-start";
8
+ /** @type {'bottom' | 'top' | 'left' | 'right'} Placement relative to trigger */
9
+ export let placement = "bottom";
10
10
  /** @type {string} Additional CSS classes */
11
11
  let className = "";
12
12
  export { className as class };
@@ -16,6 +16,7 @@
16
16
  const dispatch = createEventDispatcher();
17
17
 
18
18
  let dropdownRef;
19
+ let containerRef;
19
20
  let focusedIndex = -1;
20
21
  let menuItems = [];
21
22
 
@@ -36,27 +37,37 @@
36
37
  menuItems[focusedIndex]?.focus();
37
38
  }
38
39
 
39
- // Get trigger element (previous sibling)
40
+ // Get trigger element (previous sibling of the container)
40
41
  function getTriggerElement() {
41
- const parent = dropdownRef?.parentElement;
42
+ const parent = containerRef?.parentElement;
42
43
  if (parent) {
43
44
  const siblings = Array.from(parent.children);
44
- const dropdownIndex = siblings.indexOf(dropdownRef);
45
- if (dropdownIndex > 0) {
46
- return siblings[dropdownIndex - 1];
45
+ const containerIndex = siblings.indexOf(containerRef);
46
+ if (containerIndex > 0) {
47
+ return siblings[containerIndex - 1];
47
48
  }
48
49
  }
49
50
  return null;
50
51
  }
51
52
 
53
+ // CRITICAL FIX: Click-outside detection using mousedown for reliable detection
52
54
  function handleClickOutside(event) {
53
- if (dropdownRef && !dropdownRef.contains(event.target)) {
54
- const trigger = getTriggerElement();
55
- if (trigger?.contains(event.target)) {
56
- return; // Let the trigger handle toggling
57
- }
58
- open = false;
55
+ if (!open) return;
56
+
57
+ // Check if click is inside the dropdown menu
58
+ if (dropdownRef && dropdownRef.contains(event.target)) {
59
+ return;
60
+ }
61
+
62
+ // Check if click is on the trigger element
63
+ const trigger = getTriggerElement();
64
+ if (trigger && trigger.contains(event.target)) {
65
+ return; // Let the trigger handle toggling
59
66
  }
67
+
68
+ // Click was outside - close the dropdown
69
+ open = false;
70
+ dispatch("close");
60
71
  }
61
72
 
62
73
  function handleKeydown(event) {
@@ -73,6 +84,7 @@
73
84
  open = false;
74
85
  trigger?.focus();
75
86
  event.preventDefault();
87
+ dispatch("close");
76
88
  break;
77
89
  case "ArrowDown":
78
90
  focusItem(focusedIndex + 1);
@@ -92,6 +104,7 @@
92
104
  break;
93
105
  case "Tab":
94
106
  open = false;
107
+ dispatch("close");
95
108
  break;
96
109
  }
97
110
  }
@@ -103,13 +116,14 @@
103
116
  }
104
117
 
105
118
  onMount(() => {
106
- document.addEventListener("click", handleClickOutside, true);
119
+ // Use mousedown for click-outside to capture before click completes
120
+ document.addEventListener("mousedown", handleClickOutside, true);
107
121
  document.addEventListener("keydown", handleKeydown);
108
122
  });
109
123
 
110
124
  onDestroy(() => {
111
125
  if (typeof document !== "undefined") {
112
- document.removeEventListener("click", handleClickOutside, true);
126
+ document.removeEventListener("mousedown", handleClickOutside, true);
113
127
  document.removeEventListener("keydown", handleKeydown);
114
128
  }
115
129
  });
@@ -118,76 +132,33 @@
118
132
  import { setContext } from "svelte";
119
133
  setContext("dropdown", {
120
134
  activeUrl,
121
- close: () => { open = false; }
135
+ close: () => {
136
+ open = false;
137
+ dispatch("close");
138
+ }
122
139
  });
123
- </script>
124
-
125
- {#if open}
126
- <div
127
- bind:this={dropdownRef}
128
- class="dropdown dropdown--{placement} {className}"
129
- role="menu"
130
- aria-label={ariaLabel}
131
- {...$$restProps}
132
- >
133
- <slot />
134
- </div>
135
- {/if}
136
-
137
- <style>
138
- .dropdown {
139
- position: absolute;
140
- z-index: 50;
141
- min-width: 10rem;
142
- background-color: hsl(var(--BG-Primary, 0 0% 100%));
143
- border: 1px solid hsl(var(--Stroke-Primary, 220 13% 85%));
144
- border-radius: 0.5rem;
145
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
146
- padding: 0.25rem 0;
147
- margin-top: 0.25rem;
148
- }
149
140
 
150
- .dropdown--bottom-start {
151
- top: 100%;
152
- left: 0;
153
- }
154
-
155
- .dropdown--bottom-end {
156
- top: 100%;
157
- right: 0;
158
- }
159
-
160
- .dropdown--bottom {
161
- top: 100%;
162
- left: 50%;
163
- transform: translateX(-50%);
164
- }
165
-
166
- .dropdown--top-start {
167
- bottom: 100%;
168
- left: 0;
169
- margin-top: 0;
170
- margin-bottom: 0.25rem;
171
- }
172
-
173
- .dropdown--top-end {
174
- bottom: 100%;
175
- right: 0;
176
- margin-top: 0;
177
- margin-bottom: 0.25rem;
178
- }
179
-
180
- .dropdown--top {
181
- bottom: 100%;
182
- left: 50%;
183
- transform: translateX(-50%);
184
- margin-top: 0;
185
- margin-bottom: 0.25rem;
186
- }
141
+ // Placement classes following Flowbite patterns
142
+ const placementClasses = {
143
+ bottom: "top-full left-0 mt-1",
144
+ top: "bottom-full left-0 mb-1",
145
+ left: "right-full top-0 mr-1",
146
+ right: "left-full top-0 ml-1"
147
+ };
148
+ </script>
187
149
 
188
- /* Dark mode */
189
- :global(.dark) .dropdown {
190
- background-color: hsl(var(--BG-Primary, 220 13% 15%));
191
- border-color: hsl(var(--Stroke-Primary, 220 13% 30%));
192
- }
193
- </style>
150
+ <div bind:this={containerRef} class="relative inline-block">
151
+ {#if open}
152
+ <div
153
+ bind:this={dropdownRef}
154
+ class="absolute z-10 bg-white divide-y divide-gray-100 rounded-lg shadow-lg w-44 dark:bg-gray-700 dark:divide-gray-600 {placementClasses[placement] || placementClasses.bottom} {className}"
155
+ role="menu"
156
+ aria-label={ariaLabel}
157
+ {...$$restProps}
158
+ >
159
+ <ul class="py-2 text-sm text-gray-700 dark:text-gray-200">
160
+ <slot />
161
+ </ul>
162
+ </div>
163
+ {/if}
164
+ </div>
@@ -3,12 +3,14 @@ type Dropdown = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
3
  [x: string]: any;
4
4
  class?: string | undefined;
5
5
  open?: boolean | undefined;
6
- placement?: "top" | "bottom" | "bottom-start" | "bottom-end" | "top-start" | "top-end" | undefined;
6
+ placement?: "left" | "right" | "top" | "bottom" | undefined;
7
7
  activeUrl?: string | undefined;
8
8
  ariaLabel?: string | undefined;
9
9
  }, {
10
10
  default: {};
11
11
  }>, {
12
+ close: CustomEvent<any>;
13
+ } & {
12
14
  [evt: string]: CustomEvent<any>;
13
15
  }, {
14
16
  default: {};
@@ -19,12 +21,14 @@ declare const Dropdown: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsW
19
21
  [x: string]: any;
20
22
  class?: string | undefined;
21
23
  open?: boolean | undefined;
22
- placement?: "top" | "bottom" | "bottom-start" | "bottom-end" | "top-start" | "top-end" | undefined;
24
+ placement?: "left" | "right" | "top" | "bottom" | undefined;
23
25
  activeUrl?: string | undefined;
24
26
  ariaLabel?: string | undefined;
25
27
  }, {
26
28
  default: {};
27
29
  }>, {
30
+ close: CustomEvent<any>;
31
+ } & {
28
32
  [evt: string]: CustomEvent<any>;
29
33
  }, {
30
34
  default: {};
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Dropdown/Dropdown.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAgKA;;;;;;;;;;;;;eAAyL;sCATnJ,KAAK,EAAE,KAAK;;;;;6CALL,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ;IAC3L,cAAc,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,WAAW,OAAO,SAAS,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Dropdown.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Dropdown/Dropdown.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AA2LA;;;;;;;;;;;;;;;eAAyL;sCATnJ,KAAK,EAAE,KAAK;;;;;6CALL,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ;IAC3L,cAAc,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,WAAW,OAAO,SAAS,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,eAAe,QAAQ,CAAC"}
@@ -31,81 +31,39 @@
31
31
  handleClick(event);
32
32
  }
33
33
  }
34
+
35
+ // Flowbite dropdown item classes
36
+ const baseClasses = "block w-full text-left px-4 py-2 text-sm hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white";
37
+ const activeClasses = "bg-blue-50 text-blue-700 dark:bg-gray-600 dark:text-white";
38
+ const disabledClasses = "opacity-50 cursor-not-allowed";
39
+ const defaultClasses = "text-gray-700 dark:text-gray-200";
34
40
  </script>
35
41
 
36
42
  {#if href}
37
- <a
38
- {href}
39
- class="dropdown-item {className}"
40
- class:dropdown-item--active={isActive}
41
- class:dropdown-item--disabled={disabled}
42
- role="menuitem"
43
- tabindex={disabled ? -1 : 0}
44
- on:click={handleClick}
45
- on:keydown={handleKeydown}
46
- >
47
- <slot />
48
- </a>
43
+ <li>
44
+ <a
45
+ {href}
46
+ class="{baseClasses} {isActive ? activeClasses : defaultClasses} {disabled ? disabledClasses : 'cursor-pointer'} {className}"
47
+ role="menuitem"
48
+ tabindex={disabled ? -1 : 0}
49
+ on:click={handleClick}
50
+ on:keydown={handleKeydown}
51
+ >
52
+ <slot />
53
+ </a>
54
+ </li>
49
55
  {:else}
50
- <button
51
- type="button"
52
- class="dropdown-item {className}"
53
- class:dropdown-item--disabled={disabled}
54
- role="menuitem"
55
- tabindex={disabled ? -1 : 0}
56
- {disabled}
57
- on:click={handleClick}
58
- on:keydown={handleKeydown}
59
- >
60
- <slot />
61
- </button>
56
+ <li>
57
+ <button
58
+ type="button"
59
+ class="{baseClasses} {defaultClasses} {disabled ? disabledClasses : 'cursor-pointer'} {className}"
60
+ role="menuitem"
61
+ tabindex={disabled ? -1 : 0}
62
+ {disabled}
63
+ on:click={handleClick}
64
+ on:keydown={handleKeydown}
65
+ >
66
+ <slot />
67
+ </button>
68
+ </li>
62
69
  {/if}
63
-
64
- <style>
65
- .dropdown-item {
66
- display: flex;
67
- align-items: center;
68
- width: 100%;
69
- padding: 0.5rem 1rem;
70
- font-size: 0.875rem;
71
- color: hsl(var(--Text-Primary, 220 13% 13%));
72
- background: transparent;
73
- border: none;
74
- text-align: left;
75
- cursor: pointer;
76
- text-decoration: none;
77
- transition: background-color 0.15s ease;
78
- }
79
-
80
- .dropdown-item:hover:not(.dropdown-item--disabled) {
81
- background-color: hsl(var(--BG-Secondary, 220 14% 96%));
82
- }
83
-
84
- .dropdown-item:focus {
85
- outline: none;
86
- background-color: hsl(var(--BG-Secondary, 220 14% 96%));
87
- }
88
-
89
- .dropdown-item--active {
90
- background-color: hsl(var(--Brand-Primary, 221 83% 53%) / 0.1);
91
- color: hsl(var(--Brand-Primary, 221 83% 53%));
92
- }
93
-
94
- .dropdown-item--disabled {
95
- opacity: 0.5;
96
- cursor: not-allowed;
97
- }
98
-
99
- /* Dark mode */
100
- :global(.dark) .dropdown-item {
101
- color: hsl(var(--Text-Primary, 0 0% 95%));
102
- }
103
-
104
- :global(.dark) .dropdown-item:hover:not(.dropdown-item--disabled) {
105
- background-color: hsl(var(--BG-Secondary, 220 13% 20%));
106
- }
107
-
108
- :global(.dark) .dropdown-item:focus {
109
- background-color: hsl(var(--BG-Secondary, 220 13% 20%));
110
- }
111
- </style>