@getmicdrop/svelte-components 5.18.0 → 5.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/dist/calendar/AboutShow/AboutShow.svelte +191 -187
  2. package/dist/calendar/AboutShow/AboutShow.svelte.d.ts +2 -2
  3. package/dist/calendar/AboutShow/AboutShow.svelte.d.ts.map +1 -1
  4. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +801 -780
  5. package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts +4 -0
  6. package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
  7. package/dist/calendar/FAQs/FAQs.svelte +88 -77
  8. package/dist/calendar/FAQs/FAQs.svelte.d.ts +6 -4
  9. package/dist/calendar/FAQs/FAQs.svelte.d.ts.map +1 -1
  10. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +140 -125
  11. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts +2 -0
  12. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -1
  13. package/dist/calendar/OrderSummary/OrderSummary.spec.js +3 -3
  14. package/dist/calendar/OrderSummary/OrderSummary.svelte +461 -457
  15. package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts +4 -2
  16. package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts.map +1 -1
  17. package/dist/calendar/PublicCard/PublicCard.svelte +164 -155
  18. package/dist/calendar/PublicCard/PublicCard.svelte.d.ts +4 -0
  19. package/dist/calendar/PublicCard/PublicCard.svelte.d.ts.map +1 -1
  20. package/dist/calendar/ShowCard/ShowCard.svelte +180 -166
  21. package/dist/calendar/ShowCard/ShowCard.svelte.d.ts +4 -0
  22. package/dist/calendar/ShowCard/ShowCard.svelte.d.ts.map +1 -1
  23. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +80 -72
  24. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts +4 -0
  25. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -1
  26. package/dist/calendar/index.js +15 -15
  27. package/dist/components/Heading.spec.js +89 -89
  28. package/dist/components/Heading.svelte +60 -60
  29. package/dist/components/Layout/AppShell.svelte +104 -104
  30. package/dist/components/Layout/ContentSection.svelte +80 -80
  31. package/dist/components/Layout/Grid.svelte +101 -101
  32. package/dist/components/Layout/Heading.svelte +81 -81
  33. package/dist/components/Layout/PageContainer.svelte +69 -69
  34. package/dist/components/Layout/Responsive.svelte +75 -75
  35. package/dist/components/Layout/Section.svelte +80 -80
  36. package/dist/components/Layout/ShowOnDesktop.svelte +37 -37
  37. package/dist/components/Layout/ShowOnMobile.svelte +37 -37
  38. package/dist/components/Layout/Sidebar.svelte +108 -108
  39. package/dist/components/Layout/Stack.spec.js +1 -1
  40. package/dist/components/Layout/Stack.svelte +52 -52
  41. package/dist/components/Layout/Text.svelte +87 -87
  42. package/dist/components/Layout/TwoColumn.svelte +108 -108
  43. package/dist/components/Text.spec.js +89 -89
  44. package/dist/components/Text.svelte +53 -53
  45. package/dist/config.js +151 -151
  46. package/dist/config.spec.js +29 -29
  47. package/dist/constants/formOptions.js +48 -48
  48. package/dist/constants/validation.js +91 -91
  49. package/dist/constants/validation.spec.js +64 -64
  50. package/dist/datetime/README.md +323 -323
  51. package/dist/datetime/__tests__/format.test.js +1 -1
  52. package/dist/datetime/__tests__/parse.test.js +1 -1
  53. package/dist/datetime/__tests__/timezone.test.js +1 -1
  54. package/dist/datetime/parse.js +1 -1
  55. package/dist/forms/createFormStore.svelte.js +1 -0
  56. package/dist/forms/createFormStore.svelte.spec.js +1 -0
  57. package/dist/index.d.ts +1 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +66 -57
  60. package/dist/index.spec.js +369 -369
  61. package/dist/patterns/chat/ChatActivityNotice.spec.js +59 -59
  62. package/dist/patterns/chat/ChatActivityNotice.svelte +41 -41
  63. package/dist/patterns/chat/ChatBubble.spec.js +91 -91
  64. package/dist/patterns/chat/ChatBubble.svelte +103 -95
  65. package/dist/patterns/chat/ChatBubble.svelte.d.ts +6 -4
  66. package/dist/patterns/chat/ChatBubble.svelte.d.ts.map +1 -1
  67. package/dist/patterns/chat/ChatContainer.spec.js +30 -30
  68. package/dist/patterns/chat/ChatContainer.svelte +46 -46
  69. package/dist/patterns/chat/ChatDateDivider.spec.js +30 -30
  70. package/dist/patterns/chat/ChatDateDivider.svelte +27 -27
  71. package/dist/patterns/chat/ChatInvitationBubble.spec.js +46 -46
  72. package/dist/patterns/chat/ChatInvitationBubble.svelte +46 -37
  73. package/dist/patterns/chat/ChatInvitationBubble.svelte.d.ts +6 -3
  74. package/dist/patterns/chat/ChatInvitationBubble.svelte.d.ts.map +1 -1
  75. package/dist/patterns/chat/ChatInvitationNotice.spec.js +32 -32
  76. package/dist/patterns/chat/ChatInvitationNotice.svelte +36 -27
  77. package/dist/patterns/chat/ChatInvitationNotice.svelte.d.ts +6 -3
  78. package/dist/patterns/chat/ChatInvitationNotice.svelte.d.ts.map +1 -1
  79. package/dist/patterns/chat/ChatMessageGroup.spec.js +58 -58
  80. package/dist/patterns/chat/ChatMessageGroup.svelte +57 -57
  81. package/dist/patterns/chat/ChatSlotUpdate.spec.js +65 -65
  82. package/dist/patterns/chat/ChatSlotUpdate.svelte +46 -46
  83. package/dist/patterns/chat/ChatStatusBadge.spec.js +79 -79
  84. package/dist/patterns/chat/ChatStatusBadge.svelte +91 -91
  85. package/dist/patterns/chat/ChatStatusTransition.spec.js +81 -81
  86. package/dist/patterns/chat/ChatStatusTransition.svelte +64 -64
  87. package/dist/patterns/chat/ChatTextBubble.spec.js +35 -35
  88. package/dist/patterns/chat/ChatTextBubble.svelte +41 -41
  89. package/dist/patterns/chat/index.js +22 -22
  90. package/dist/patterns/data/DataGrid.svelte +45 -45
  91. package/dist/patterns/data/DataList.svelte +24 -24
  92. package/dist/patterns/data/DataTable.svelte +45 -45
  93. package/dist/patterns/data/index.js +4 -4
  94. package/dist/patterns/forms/FormActions.spec.js +95 -95
  95. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  96. package/dist/patterns/forms/FormActions.svelte +46 -46
  97. package/dist/patterns/forms/FormGrid.svelte +33 -33
  98. package/dist/patterns/forms/FormSection.svelte +32 -32
  99. package/dist/patterns/forms/FormValidationSummary.stories.svelte +97 -97
  100. package/dist/patterns/forms/FormValidationSummary.svelte +82 -74
  101. package/dist/patterns/forms/FormValidationSummary.svelte.d.ts +5 -3
  102. package/dist/patterns/forms/FormValidationSummary.svelte.d.ts.map +1 -1
  103. package/dist/patterns/forms/index.js +5 -5
  104. package/dist/patterns/index.js +21 -21
  105. package/dist/patterns/layout/Sidebar.svelte +39 -39
  106. package/dist/patterns/layout/SidebarTestWrapper.svelte +34 -34
  107. package/dist/patterns/layout/SidebarTestWrapper.svelte.d.ts +1 -1
  108. package/dist/patterns/layout/Stack.svelte +61 -61
  109. package/dist/patterns/layout/index.js +29 -29
  110. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  111. package/dist/patterns/navigation/BottomNav.svelte +82 -74
  112. package/dist/patterns/navigation/BottomNav.svelte.d.ts +10 -9
  113. package/dist/patterns/navigation/BottomNav.svelte.d.ts.map +1 -1
  114. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  115. package/dist/patterns/navigation/Header.svelte +263 -251
  116. package/dist/patterns/navigation/Header.svelte.d.ts +17 -9
  117. package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
  118. package/dist/patterns/navigation/index.js +3 -3
  119. package/dist/patterns/page/PageHeader.svelte +49 -49
  120. package/dist/patterns/page/PageLayout.svelte +40 -40
  121. package/dist/patterns/page/PageLoader.spec.js +57 -57
  122. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  123. package/dist/patterns/page/PageLoader.svelte +62 -53
  124. package/dist/patterns/page/PageLoader.svelte.d.ts +6 -3
  125. package/dist/patterns/page/PageLoader.svelte.d.ts.map +1 -1
  126. package/dist/patterns/page/SectionHeader.svelte +51 -51
  127. package/dist/patterns/page/index.js +5 -5
  128. package/dist/presets/badges.js +112 -112
  129. package/dist/presets/buttons.js +76 -76
  130. package/dist/presets/index.js +9 -9
  131. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  132. package/dist/primitives/Accordion/Accordion.svelte +62 -62
  133. package/dist/primitives/Accordion/AccordionItem.svelte +103 -95
  134. package/dist/primitives/Accordion/AccordionItem.svelte.d.ts +6 -4
  135. package/dist/primitives/Accordion/AccordionItem.svelte.d.ts.map +1 -1
  136. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte +107 -107
  137. package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte +28 -28
  138. package/dist/primitives/Alert/Alert.spec.js +173 -173
  139. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  140. package/dist/primitives/Alert/Alert.svelte +72 -64
  141. package/dist/primitives/Alert/Alert.svelte.d.ts +6 -4
  142. package/dist/primitives/Alert/Alert.svelte.d.ts.map +1 -1
  143. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  144. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  145. package/dist/primitives/AvatarButton/AvatarButton.svelte +57 -57
  146. package/dist/primitives/Badges/Badge.spec.js +144 -144
  147. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  148. package/dist/primitives/Badges/Badge.svelte +99 -99
  149. package/dist/primitives/BottomSheet/BottomSheet.spec.js +238 -238
  150. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  151. package/dist/primitives/BottomSheet/BottomSheet.svelte +115 -115
  152. package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte +20 -20
  153. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +123 -123
  154. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  155. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +107 -99
  156. package/dist/primitives/Breadcrumb/Breadcrumb.svelte.d.ts +13 -9
  157. package/dist/primitives/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  158. package/dist/primitives/Button/Button.spec.js +225 -225
  159. package/dist/primitives/Button/Button.stories.svelte +76 -76
  160. package/dist/primitives/Button/Button.svelte +278 -278
  161. package/dist/primitives/Button/ButtonGroup.spec.js +44 -44
  162. package/dist/primitives/Button/ButtonGroup.svelte +50 -50
  163. package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
  164. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  165. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  166. package/dist/primitives/Card.spec.js +49 -49
  167. package/dist/primitives/Card.stories.svelte +22 -22
  168. package/dist/primitives/Card.svelte +28 -28
  169. package/dist/primitives/CardAction/CardAction.svelte +68 -68
  170. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  171. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  172. package/dist/primitives/DarkModeToggle.spec.js +390 -390
  173. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  174. package/dist/primitives/DarkModeToggle.svelte +147 -136
  175. package/dist/primitives/DarkModeToggle.svelte.d.ts +9 -3
  176. package/dist/primitives/DarkModeToggle.svelte.d.ts.map +1 -1
  177. package/dist/primitives/Drawer/Drawer.stories.svelte +100 -100
  178. package/dist/primitives/Drawer/Drawer.svelte +224 -224
  179. package/dist/primitives/Drawer/DrawerTestWrapper.svelte +86 -86
  180. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  181. package/dist/primitives/Dropdown/Dropdown.svelte +179 -170
  182. package/dist/primitives/Dropdown/Dropdown.svelte.d.ts +7 -4
  183. package/dist/primitives/Dropdown/Dropdown.svelte.d.ts.map +1 -1
  184. package/dist/primitives/Dropdown/DropdownDivider.spec.js +30 -30
  185. package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
  186. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  187. package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte +43 -43
  188. package/dist/primitives/Helper/Helper.spec.js +57 -57
  189. package/dist/primitives/Helper/Helper.svelte +33 -33
  190. package/dist/primitives/Icons/ArrowLeft.svelte +21 -21
  191. package/dist/primitives/Icons/ArrowRight.svelte +21 -21
  192. package/dist/primitives/Icons/Availability.svelte +27 -27
  193. package/dist/primitives/Icons/Back.svelte +27 -27
  194. package/dist/primitives/Icons/CheckCircle.svelte +19 -19
  195. package/dist/primitives/Icons/CheckCircleOutline.svelte +28 -28
  196. package/dist/primitives/Icons/ChevronLeft.svelte +17 -17
  197. package/dist/primitives/Icons/ChevronRight.svelte +17 -17
  198. package/dist/primitives/Icons/Copy.svelte +28 -28
  199. package/dist/primitives/Icons/Cross.svelte +18 -18
  200. package/dist/primitives/Icons/DownArrow.svelte +21 -21
  201. package/dist/primitives/Icons/ErrorCircle.svelte +19 -19
  202. package/dist/primitives/Icons/FacebookIcon.svelte +15 -15
  203. package/dist/primitives/Icons/Home.svelte +28 -28
  204. package/dist/primitives/Icons/Icon.spec.js +175 -175
  205. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  206. package/dist/primitives/Icons/Icon.svelte +79 -79
  207. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  208. package/dist/primitives/Icons/ImageOutline.svelte +21 -21
  209. package/dist/primitives/Icons/Info.svelte +20 -20
  210. package/dist/primitives/Icons/InstagramIcon.svelte +21 -21
  211. package/dist/primitives/Icons/LogoInstagram.svelte +15 -15
  212. package/dist/primitives/Icons/Message.svelte +28 -28
  213. package/dist/primitives/Icons/MoonIcon.svelte +18 -18
  214. package/dist/primitives/Icons/More.svelte +34 -34
  215. package/dist/primitives/Icons/MoreHori.spec.js +67 -67
  216. package/dist/primitives/Icons/MoreHori.svelte +35 -35
  217. package/dist/primitives/Icons/Notification.svelte +27 -27
  218. package/dist/primitives/Icons/Payment.svelte +27 -27
  219. package/dist/primitives/Icons/Profile.svelte +34 -34
  220. package/dist/primitives/Icons/Reload.svelte +42 -42
  221. package/dist/primitives/Icons/Shows.svelte +34 -34
  222. package/dist/primitives/Icons/Signout.svelte +34 -34
  223. package/dist/primitives/Icons/SunIcon.svelte +21 -21
  224. package/dist/primitives/Icons/TiktokIcon.svelte +15 -15
  225. package/dist/primitives/Icons/TrashBinOutline.svelte +21 -21
  226. package/dist/primitives/Icons/TwitterIcon.svelte +15 -15
  227. package/dist/primitives/Icons/WarningIcon.spec.js +30 -30
  228. package/dist/primitives/Icons/WarningIcon.svelte +24 -24
  229. package/dist/primitives/Input/Input.spec.js +1237 -1237
  230. package/dist/primitives/Input/Input.stories.svelte +139 -139
  231. package/dist/primitives/Input/Input.svelte +444 -431
  232. package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
  233. package/dist/primitives/Input/Select.spec.js +632 -632
  234. package/dist/primitives/Input/Select.stories.svelte +112 -112
  235. package/dist/primitives/Input/Select.svelte +252 -252
  236. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  237. package/dist/primitives/Input/Textarea.svelte +105 -105
  238. package/dist/primitives/Label/Label.svelte +37 -37
  239. package/dist/primitives/LandingButton/LandingButton.spec.js +61 -61
  240. package/dist/primitives/LandingButton/LandingButton.svelte +92 -92
  241. package/dist/primitives/MenuItem/MenuItem.spec.js +130 -130
  242. package/dist/primitives/MenuItem/MenuItem.svelte +85 -85
  243. package/dist/primitives/Modal/Modal.spec.js +314 -314
  244. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  245. package/dist/primitives/Modal/Modal.svelte +181 -181
  246. package/dist/primitives/NavItem/NavItem.spec.js +97 -97
  247. package/dist/primitives/NavItem/NavItem.svelte +75 -75
  248. package/dist/primitives/NumberInput/NumberInput.svelte +113 -105
  249. package/dist/primitives/NumberInput/NumberInput.svelte.d.ts.map +1 -1
  250. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  251. package/dist/primitives/Pagination/Pagination.svelte +275 -261
  252. package/dist/primitives/Pagination/Pagination.svelte.d.ts +14 -6
  253. package/dist/primitives/Pagination/Pagination.svelte.d.ts.map +1 -1
  254. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  255. package/dist/primitives/Radio/Radio.svelte +67 -67
  256. package/dist/primitives/SearchResultItem/SearchResultItem.spec.js +78 -78
  257. package/dist/primitives/SearchResultItem/SearchResultItem.svelte +109 -109
  258. package/dist/primitives/SidebarToggle/SidebarToggle.spec.js +61 -61
  259. package/dist/primitives/SidebarToggle/SidebarToggle.svelte +55 -55
  260. package/dist/primitives/Skeleton/CardPlaceholder.svelte +96 -87
  261. package/dist/primitives/Skeleton/CardPlaceholder.svelte.d.ts +8 -5
  262. package/dist/primitives/Skeleton/CardPlaceholder.svelte.d.ts.map +1 -1
  263. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +68 -59
  264. package/dist/primitives/Skeleton/ImagePlaceholder.svelte.d.ts +8 -5
  265. package/dist/primitives/Skeleton/ImagePlaceholder.svelte.d.ts.map +1 -1
  266. package/dist/primitives/Skeleton/ListPlaceholder.svelte +85 -76
  267. package/dist/primitives/Skeleton/ListPlaceholder.svelte.d.ts +8 -5
  268. package/dist/primitives/Skeleton/ListPlaceholder.svelte.d.ts.map +1 -1
  269. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  270. package/dist/primitives/Skeleton/Skeleton.svelte +55 -46
  271. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts +7 -4
  272. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts.map +1 -1
  273. package/dist/primitives/Spinner/Spinner.spec.js +84 -84
  274. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  275. package/dist/primitives/Spinner/Spinner.svelte +52 -44
  276. package/dist/primitives/Spinner/Spinner.svelte.d.ts +6 -4
  277. package/dist/primitives/Spinner/Spinner.svelte.d.ts.map +1 -1
  278. package/dist/primitives/Tabs/TabItem.svelte +52 -52
  279. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  280. package/dist/primitives/Tabs/Tabs.svelte +137 -137
  281. package/dist/primitives/Toggle.spec.js +221 -221
  282. package/dist/primitives/Toggle.stories.svelte +92 -92
  283. package/dist/primitives/Toggle.svelte +141 -141
  284. package/dist/primitives/ToggleTestWrapper.svelte +30 -30
  285. package/dist/primitives/Tooltip/Tooltip.spec.js +126 -126
  286. package/dist/primitives/Tooltip/Tooltip.svelte +83 -83
  287. package/dist/primitives/Typography/Typography.svelte +53 -53
  288. package/dist/primitives/ValidationError.spec.js +103 -103
  289. package/dist/primitives/ValidationError.stories.svelte +112 -112
  290. package/dist/primitives/ValidationError.svelte +29 -29
  291. package/dist/primitives/index.js +113 -113
  292. package/dist/recipes/CropImage/CropImage.spec.js +208 -208
  293. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  294. package/dist/recipes/CropImage/CropImage.svelte +241 -241
  295. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  296. package/dist/recipes/ImageUploader/ImageUploader.svelte +994 -992
  297. package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts +1 -0
  298. package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts.map +1 -1
  299. package/dist/recipes/SuperLogin/SuperLogin.svelte +25 -23
  300. package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
  301. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  302. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +75 -66
  303. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts +7 -4
  304. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
  305. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  306. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +113 -113
  307. package/dist/recipes/feedback/ErrorDisplay.svelte +67 -67
  308. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
  309. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +176 -176
  310. package/dist/recipes/feedback/index.js +4 -4
  311. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  312. package/dist/recipes/fields/FormField.svelte +58 -58
  313. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  314. package/dist/recipes/fields/SelectField.svelte +82 -82
  315. package/dist/recipes/fields/TextareaField.svelte +101 -101
  316. package/dist/recipes/fields/ToggleField.svelte +60 -60
  317. package/dist/recipes/fields/index.js +7 -7
  318. package/dist/recipes/index.js +24 -24
  319. package/dist/recipes/inputs/MultiSelect.spec.js +263 -263
  320. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  321. package/dist/recipes/inputs/MultiSelect.svelte +291 -283
  322. package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
  323. package/dist/recipes/inputs/OTPInput.spec.js +251 -251
  324. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  325. package/dist/recipes/inputs/OTPInput.svelte +128 -117
  326. package/dist/recipes/inputs/OTPInput.svelte.d.ts +14 -12
  327. package/dist/recipes/inputs/OTPInput.svelte.d.ts.map +1 -1
  328. package/dist/recipes/inputs/PasswordInput.svelte +130 -121
  329. package/dist/recipes/inputs/PasswordInput.svelte.d.ts +7 -4
  330. package/dist/recipes/inputs/PasswordInput.svelte.d.ts.map +1 -1
  331. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +142 -131
  332. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +8 -3
  333. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -1
  334. package/dist/recipes/inputs/PhoneInput.svelte +254 -258
  335. package/dist/recipes/inputs/PhoneInput.svelte.d.ts +0 -2
  336. package/dist/recipes/inputs/PhoneInput.svelte.d.ts.map +1 -1
  337. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +170 -170
  338. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +349 -336
  339. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts +21 -16
  340. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
  341. package/dist/recipes/inputs/Search.svelte +110 -102
  342. package/dist/recipes/inputs/Search.svelte.d.ts +7 -5
  343. package/dist/recipes/inputs/Search.svelte.d.ts.map +1 -1
  344. package/dist/recipes/inputs/index.js +8 -8
  345. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte +240 -297
  346. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts +0 -2
  347. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts.map +1 -1
  348. package/dist/recipes/inputs/phoneInput/countryData.d.ts +0 -2
  349. package/dist/recipes/inputs/phoneInput/countryData.d.ts.map +1 -1
  350. package/dist/recipes/inputs/phoneInput/countryData.js +3 -3
  351. package/dist/recipes/modals/AlertModal.svelte +139 -130
  352. package/dist/recipes/modals/AlertModal.svelte.d.ts +4 -2
  353. package/dist/recipes/modals/AlertModal.svelte.d.ts.map +1 -1
  354. package/dist/recipes/modals/ConfirmationModal.spec.js +396 -396
  355. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  356. package/dist/recipes/modals/ConfirmationModal.svelte +169 -162
  357. package/dist/recipes/modals/ConfirmationModal.svelte.d.ts +2 -0
  358. package/dist/recipes/modals/ConfirmationModal.svelte.d.ts.map +1 -1
  359. package/dist/recipes/modals/InputModal.svelte +194 -182
  360. package/dist/recipes/modals/InputModal.svelte.d.ts +6 -4
  361. package/dist/recipes/modals/InputModal.svelte.d.ts.map +1 -1
  362. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  363. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  364. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  365. package/dist/recipes/modals/StatusModal.svelte +216 -206
  366. package/dist/recipes/modals/StatusModal.svelte.d.ts +4 -2
  367. package/dist/recipes/modals/StatusModal.svelte.d.ts.map +1 -1
  368. package/dist/recipes/modals/index.js +7 -7
  369. package/dist/schemas/common.js +1 -1
  370. package/dist/schemas/event.d.ts +4 -4
  371. package/dist/schemas/event.js +1 -1
  372. package/dist/schemas/order.d.ts +2 -2
  373. package/dist/schemas/order.js +1 -0
  374. package/dist/schemas/performer.js +1 -1
  375. package/dist/schemas/promo.d.ts +4 -4
  376. package/dist/schemas/promo.js +2 -2
  377. package/dist/schemas/ticket.js +1 -1
  378. package/dist/schemas/user.js +2 -1
  379. package/dist/services/event.service.d.ts +11 -0
  380. package/dist/services/event.service.d.ts.map +1 -0
  381. package/dist/services/event.service.js +64 -0
  382. package/dist/services/event.service.spec.d.ts +2 -0
  383. package/dist/services/event.service.spec.d.ts.map +1 -0
  384. package/dist/services/event.service.spec.js +168 -0
  385. package/dist/services/{ShowService.d.ts → show.service.d.ts} +47 -47
  386. package/dist/services/show.service.d.ts.map +1 -0
  387. package/dist/services/show.service.js +115 -0
  388. package/dist/services/show.service.spec.d.ts +2 -0
  389. package/dist/services/show.service.spec.d.ts.map +1 -0
  390. package/dist/services/show.service.spec.js +242 -0
  391. package/dist/stores/auth.d.ts +8 -8
  392. package/dist/stores/auth.svelte.spec.js +1 -1
  393. package/dist/stores/index.js +9 -9
  394. package/dist/stores/toaster.d.ts +3 -3
  395. package/dist/stores/toaster.js +13 -13
  396. package/dist/stores/toaster.spec.js +59 -59
  397. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  398. package/dist/stories/ButtonAuditReview.svelte +427 -427
  399. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  400. package/dist/stories/PatternsGallery.svelte +399 -399
  401. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  402. package/dist/stories/PrimitivesGallery.svelte +756 -756
  403. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  404. package/dist/stories/RecipesGallery.svelte +454 -454
  405. package/dist/stories/button-audit-manifest.json +11186 -11186
  406. package/dist/tailwind/preset.cjs +82 -82
  407. package/dist/telemetry.js +402 -402
  408. package/dist/telemetry.server.js +212 -212
  409. package/dist/telemetry.server.spec.js +437 -437
  410. package/dist/telemetry.spec.js +1173 -1173
  411. package/dist/tokens/tokens.css +87 -87
  412. package/dist/tokens/typography-base.css +163 -163
  413. package/dist/tokens/utilities.css +353 -353
  414. package/dist/utils/__tests__/auth.test.js +431 -431
  415. package/dist/utils/apiConfig.d.ts +29 -29
  416. package/dist/utils/apiConfig.js +117 -117
  417. package/dist/utils/apiConfig.spec.js +219 -219
  418. package/dist/utils/assets.d.ts +3 -0
  419. package/dist/utils/assets.d.ts.map +1 -0
  420. package/dist/utils/assets.js +3 -0
  421. package/dist/utils/auth.d.ts +46 -46
  422. package/dist/utils/auth.js +195 -195
  423. package/dist/utils/classNames.d.ts +10 -0
  424. package/dist/utils/classNames.d.ts.map +1 -0
  425. package/dist/utils/classNames.js +15 -0
  426. package/dist/utils/cookieHelpers.d.ts +40 -0
  427. package/dist/utils/cookieHelpers.d.ts.map +1 -0
  428. package/dist/utils/cookieHelpers.js +102 -0
  429. package/dist/utils/dateHelpers.d.ts +71 -0
  430. package/dist/utils/dateHelpers.d.ts.map +1 -0
  431. package/dist/utils/dateHelpers.js +253 -0
  432. package/dist/utils/eventFormatters.d.ts +9 -0
  433. package/dist/utils/eventFormatters.d.ts.map +1 -0
  434. package/dist/utils/eventFormatters.js +96 -0
  435. package/dist/utils/fetchHelpers.d.ts +17 -0
  436. package/dist/utils/fetchHelpers.d.ts.map +1 -0
  437. package/dist/utils/fetchHelpers.js +44 -0
  438. package/dist/utils/formatters.d.ts +62 -0
  439. package/dist/utils/formatters.d.ts.map +1 -1
  440. package/dist/utils/formatters.js +128 -0
  441. package/dist/utils/formatters.spec.js +128 -1
  442. package/dist/utils/greetings.js +187 -187
  443. package/dist/utils/greetings.spec.js +337 -337
  444. package/dist/utils/haptic.spec.js +1 -1
  445. package/dist/utils/imageValidation.js +121 -121
  446. package/dist/utils/imageValidation.spec.js +223 -223
  447. package/dist/utils/permissions.d.ts +9 -0
  448. package/dist/utils/permissions.d.ts.map +1 -0
  449. package/dist/utils/permissions.js +93 -0
  450. package/dist/utils/portal.d.ts +11 -11
  451. package/dist/utils/portal.js +25 -25
  452. package/dist/utils/portal.spec.js +143 -143
  453. package/dist/utils/stringHelpers.d.ts +17 -0
  454. package/dist/utils/stringHelpers.d.ts.map +1 -0
  455. package/dist/utils/stringHelpers.js +38 -0
  456. package/dist/utils/transitions.js +4 -4
  457. package/dist/utils/utils/utils.d.ts +2 -73
  458. package/dist/utils/utils/utils.d.ts.map +1 -1
  459. package/dist/utils/utils/utils.js +3 -3
  460. package/dist/utils/utils/utils.spec.js +698 -698
  461. package/dist/utils/utils.d.ts +41 -98
  462. package/dist/utils/utils.d.ts.map +1 -1
  463. package/dist/utils/utils.js +59 -693
  464. package/dist/utils/utils.spec.js +643 -643
  465. package/package.json +301 -297
  466. package/dist/services/EventService.d.ts +0 -5
  467. package/dist/services/EventService.d.ts.map +0 -1
  468. package/dist/services/EventService.js +0 -79
  469. package/dist/services/EventService.spec.d.ts +0 -2
  470. package/dist/services/EventService.spec.d.ts.map +0 -1
  471. package/dist/services/EventService.spec.js +0 -217
  472. package/dist/services/ShowService.d.ts.map +0 -1
  473. package/dist/services/ShowService.js +0 -144
  474. package/dist/services/ShowService.spec.d.ts +0 -2
  475. package/dist/services/ShowService.spec.d.ts.map +0 -1
  476. package/dist/services/ShowService.spec.js +0 -345
@@ -1,261 +1,275 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import { ChevronLeftOutline, ChevronRightOutline } from "../Icons";
4
- import { typography } from "../../tokens/typography";
5
-
6
- interface Props {
7
- currentPage?: number;
8
- totalPages?: number;
9
- maxVisible?: number;
10
- showPrevNext?: boolean;
11
- showIcons?: boolean;
12
- previousLabel?: string;
13
- nextLabel?: string;
14
- variant?: 'default' | 'table';
15
- size?: 'sm' | 'md' | 'lg';
16
- totalItems?: number;
17
- perPage?: number;
18
- class?: string;
19
- onchange?: (detail: { page: number }) => void;
20
- onPageChange?: (page: number) => void;
21
- prev?: Snippet;
22
- next?: Snippet;
23
- [key: string]: unknown;
24
- }
25
-
26
- let {
27
- currentPage = $bindable(1),
28
- totalPages = 1,
29
- maxVisible = 5,
30
- showPrevNext = true,
31
- showIcons = undefined,
32
- previousLabel = undefined,
33
- nextLabel = undefined,
34
- variant = 'default',
35
- size = 'md',
36
- totalItems = 0,
37
- perPage = 10,
38
- class: className = "",
39
- onchange,
40
- onPageChange,
41
- prev,
42
- next,
43
- ...restProps
44
- }: Props = $props();
45
-
46
- // Support flowbite's showIcons prop
47
- let effectiveShowPrevNext = $derived(showIcons !== undefined ? showIcons : showPrevNext);
48
-
49
- // Calculate showing range for table variant
50
- let startItem = $derived(totalItems > 0 ? (currentPage - 1) * perPage + 1 : 0);
51
- let endItem = $derived(Math.min(currentPage * perPage, totalItems));
52
-
53
- // Size-based classes
54
- let sizeClasses = $derived({
55
- sm: 'h-8 px-3 text-sm',
56
- md: 'h-9 px-3 text-sm',
57
- lg: 'h-10 px-4 text-base'
58
- }[size]);
59
-
60
- let pageSizeClasses = $derived({
61
- sm: 'h-8 w-8 text-sm',
62
- md: 'h-9 w-9 text-sm',
63
- lg: 'h-10 w-10 text-base'
64
- }[size]);
65
-
66
- function goToPage(page: number) {
67
- if (page >= 1 && page <= totalPages && page !== currentPage) {
68
- currentPage = page;
69
- onchange?.({ page });
70
- // Also dispatch flowbite-style event
71
- onPageChange?.(page);
72
- }
73
- }
74
-
75
- function previous() {
76
- goToPage(currentPage - 1);
77
- }
78
-
79
- function nextPage() {
80
- goToPage(currentPage + 1);
81
- }
82
-
83
- // Calculate which page numbers to show
84
- let visiblePages = $derived.by(() => {
85
- const pages = [];
86
- let start = Math.max(1, currentPage - Math.floor(maxVisible / 2));
87
- let end = Math.min(totalPages, start + maxVisible - 1);
88
-
89
- // Adjust start if we're near the end
90
- if (end - start + 1 < maxVisible) {
91
- start = Math.max(1, end - maxVisible + 1);
92
- }
93
-
94
- for (let i = start; i <= end; i++) {
95
- pages.push(i);
96
- }
97
-
98
- return pages;
99
- });
100
-
101
- let showStartEllipsis = $derived(visiblePages[0] > 1);
102
- let showEndEllipsis = $derived(visiblePages[visiblePages.length - 1] < totalPages);
103
-
104
- // Base button classes (Flowbite connected style)
105
- const baseButtonClasses = "flex items-center justify-center leading-tight font-medium border border-gray-300 bg-white text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white";
106
-
107
- // Active state classes (Flowbite style)
108
- const activeClasses = "flex items-center justify-center leading-tight font-medium border border-gray-300 bg-blue-50 text-blue-600 hover:bg-blue-100 hover:text-blue-700 dark:bg-gray-700 dark:border-gray-700 dark:text-white";
109
-
110
- // Disabled state classes
111
- const disabledClasses = "cursor-not-allowed opacity-50";
112
- </script>
113
-
114
- {#if variant === 'table'}
115
- <div class="flex flex-col items-center gap-3 sm:flex-row sm:justify-between {className}" {...restProps}>
116
- <span class={`${typography.sm} text-gray-700 dark:text-gray-400`}>
117
- Showing <span class={`font-semibold ${typography.sm}`}>{startItem}</span> to <span class={`font-semibold ${typography.sm}`}>{endItem}</span> of <span class={`font-semibold ${typography.sm}`}>{totalItems}</span> entries
118
- </span>
119
- <nav class="inline-flex -space-x-px rtl:space-x-reverse" aria-label="Pagination">
120
- {#if effectiveShowPrevNext}
121
- <button
122
- type="button"
123
- class="{baseButtonClasses} {sizeClasses} rounded-s-lg {currentPage === 1 ? disabledClasses : ''}"
124
- disabled={currentPage === 1}
125
- onclick={previous}
126
- aria-label="Previous page"
127
- >
128
- {#if prev}
129
- {@render prev()}
130
- {:else if previousLabel}
131
- {previousLabel}
132
- {:else}
133
- <span aria-hidden="true"><ChevronLeftOutline class="h-4 w-4 rtl:rotate-180" /></span>
134
- {/if}
135
- </button>
136
- {/if}
137
-
138
- {#if showStartEllipsis}
139
- <button
140
- type="button"
141
- class="{baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext ? 'rounded-s-lg' : ''}"
142
- onclick={() => goToPage(1)}
143
- >
144
- 1
145
- </button>
146
- <span class="{baseButtonClasses} {pageSizeClasses} cursor-default">...</span>
147
- {/if}
148
-
149
- {#each visiblePages as page, index}
150
- <button
151
- type="button"
152
- class="{page === currentPage ? activeClasses : baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext && !showStartEllipsis && index === 0 ? 'rounded-s-lg' : ''} {!effectiveShowPrevNext && !showEndEllipsis && index === visiblePages.length - 1 ? 'rounded-e-lg' : ''}"
153
- onclick={() => goToPage(page)}
154
- aria-current={page === currentPage ? "page" : undefined}
155
- >
156
- {page}
157
- </button>
158
- {/each}
159
-
160
- {#if showEndEllipsis}
161
- <span class="{baseButtonClasses} {pageSizeClasses} cursor-default">...</span>
162
- <button
163
- type="button"
164
- class="{baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext ? 'rounded-e-lg' : ''}"
165
- onclick={() => goToPage(totalPages)}
166
- >
167
- {totalPages}
168
- </button>
169
- {/if}
170
-
171
- {#if effectiveShowPrevNext}
172
- <button
173
- type="button"
174
- class="{baseButtonClasses} {sizeClasses} rounded-e-lg {currentPage === totalPages ? disabledClasses : ''}"
175
- disabled={currentPage === totalPages}
176
- onclick={nextPage}
177
- aria-label="Next page"
178
- >
179
- {#if next}
180
- {@render next()}
181
- {:else if nextLabel}
182
- {nextLabel}
183
- {:else}
184
- <span aria-hidden="true"><ChevronRightOutline class="h-4 w-4 rtl:rotate-180" /></span>
185
- {/if}
186
- </button>
187
- {/if}
188
- </nav>
189
- </div>
190
- {:else}
191
- <nav class="inline-flex -space-x-px rtl:space-x-reverse text-sm {className}" aria-label="Pagination" {...restProps}>
192
- {#if effectiveShowPrevNext}
193
- <button
194
- type="button"
195
- class="{baseButtonClasses} {sizeClasses} rounded-s-lg {currentPage === 1 ? disabledClasses : ''}"
196
- disabled={currentPage === 1}
197
- onclick={previous}
198
- aria-label="Previous page"
199
- >
200
- {#if prev}
201
- {@render prev()}
202
- {:else if previousLabel}
203
- {previousLabel}
204
- {:else}
205
- <span aria-hidden="true"><ChevronLeftOutline class="h-4 w-4 rtl:rotate-180" /></span>
206
- {/if}
207
- </button>
208
- {/if}
209
-
210
- {#if showStartEllipsis}
211
- <button
212
- type="button"
213
- class="{baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext ? 'rounded-s-lg' : ''}"
214
- onclick={() => goToPage(1)}
215
- >
216
- 1
217
- </button>
218
- <span class="{baseButtonClasses} {pageSizeClasses} cursor-default">...</span>
219
- {/if}
220
-
221
- {#each visiblePages as page, index}
222
- <button
223
- type="button"
224
- class="{page === currentPage ? activeClasses : baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext && !showStartEllipsis && index === 0 ? 'rounded-s-lg' : ''} {!effectiveShowPrevNext && !showEndEllipsis && index === visiblePages.length - 1 ? 'rounded-e-lg' : ''}"
225
- onclick={() => goToPage(page)}
226
- aria-current={page === currentPage ? "page" : undefined}
227
- >
228
- {page}
229
- </button>
230
- {/each}
231
-
232
- {#if showEndEllipsis}
233
- <span class="{baseButtonClasses} {pageSizeClasses} cursor-default">...</span>
234
- <button
235
- type="button"
236
- class="{baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext ? 'rounded-e-lg' : ''}"
237
- onclick={() => goToPage(totalPages)}
238
- >
239
- {totalPages}
240
- </button>
241
- {/if}
242
-
243
- {#if effectiveShowPrevNext}
244
- <button
245
- type="button"
246
- class="{baseButtonClasses} {sizeClasses} rounded-e-lg {currentPage === totalPages ? disabledClasses : ''}"
247
- disabled={currentPage === totalPages}
248
- onclick={nextPage}
249
- aria-label="Next page"
250
- >
251
- {#if next}
252
- {@render next()}
253
- {:else if nextLabel}
254
- {nextLabel}
255
- {:else}
256
- <span aria-hidden="true"><ChevronRightOutline class="h-4 w-4 rtl:rotate-180" /></span>
257
- {/if}
258
- </button>
259
- {/if}
260
- </nav>
261
- {/if}
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import { ChevronLeftOutline, ChevronRightOutline } from "../Icons";
4
+ import { typography } from "../../tokens/typography";
5
+
6
+ const defaultLabels = {
7
+ showing: 'Showing',
8
+ to: 'to',
9
+ of: 'of',
10
+ entries: 'entries',
11
+ previousPage: 'Previous page',
12
+ nextPage: 'Next page',
13
+ pagination: 'Pagination',
14
+ };
15
+
16
+ interface Props {
17
+ currentPage?: number;
18
+ totalPages?: number;
19
+ maxVisible?: number;
20
+ showPrevNext?: boolean;
21
+ showIcons?: boolean;
22
+ previousLabel?: string;
23
+ nextLabel?: string;
24
+ variant?: 'default' | 'table';
25
+ size?: 'sm' | 'md' | 'lg';
26
+ totalItems?: number;
27
+ perPage?: number;
28
+ class?: string;
29
+ onchange?: (detail: { page: number }) => void;
30
+ onPageChange?: (page: number) => void;
31
+ prev?: Snippet;
32
+ next?: Snippet;
33
+ labels?: Partial<typeof defaultLabels>;
34
+ [key: string]: unknown;
35
+ }
36
+
37
+ let {
38
+ currentPage = $bindable(1),
39
+ totalPages = 1,
40
+ maxVisible = 5,
41
+ showPrevNext = true,
42
+ showIcons = undefined,
43
+ previousLabel = undefined,
44
+ nextLabel = undefined,
45
+ variant = 'default',
46
+ size = 'md',
47
+ totalItems = 0,
48
+ perPage = 10,
49
+ class: className = "",
50
+ onchange,
51
+ onPageChange,
52
+ prev,
53
+ next,
54
+ labels: userLabels = {},
55
+ ...restProps
56
+ }: Props = $props();
57
+
58
+ let labels = $derived({ ...defaultLabels, ...userLabels });
59
+
60
+ // Support flowbite's showIcons prop
61
+ let effectiveShowPrevNext = $derived(showIcons !== undefined ? showIcons : showPrevNext);
62
+
63
+ // Calculate showing range for table variant
64
+ let startItem = $derived(totalItems > 0 ? (currentPage - 1) * perPage + 1 : 0);
65
+ let endItem = $derived(Math.min(currentPage * perPage, totalItems));
66
+
67
+ // Size-based classes
68
+ let sizeClasses = $derived({
69
+ sm: 'h-8 px-3 text-sm',
70
+ md: 'h-9 px-3 text-sm',
71
+ lg: 'h-10 px-4 text-base'
72
+ }[size]);
73
+
74
+ let pageSizeClasses = $derived({
75
+ sm: 'h-8 w-8 text-sm',
76
+ md: 'h-9 w-9 text-sm',
77
+ lg: 'h-10 w-10 text-base'
78
+ }[size]);
79
+
80
+ function goToPage(page: number) {
81
+ if (page >= 1 && page <= totalPages && page !== currentPage) {
82
+ currentPage = page;
83
+ onchange?.({ page });
84
+ // Also dispatch flowbite-style event
85
+ onPageChange?.(page);
86
+ }
87
+ }
88
+
89
+ function previous() {
90
+ goToPage(currentPage - 1);
91
+ }
92
+
93
+ function nextPage() {
94
+ goToPage(currentPage + 1);
95
+ }
96
+
97
+ // Calculate which page numbers to show
98
+ let visiblePages = $derived.by(() => {
99
+ const pages = [];
100
+ let start = Math.max(1, currentPage - Math.floor(maxVisible / 2));
101
+ let end = Math.min(totalPages, start + maxVisible - 1);
102
+
103
+ // Adjust start if we're near the end
104
+ if (end - start + 1 < maxVisible) {
105
+ start = Math.max(1, end - maxVisible + 1);
106
+ }
107
+
108
+ for (let i = start; i <= end; i++) {
109
+ pages.push(i);
110
+ }
111
+
112
+ return pages;
113
+ });
114
+
115
+ let showStartEllipsis = $derived(visiblePages[0] > 1);
116
+ let showEndEllipsis = $derived(visiblePages[visiblePages.length - 1] < totalPages);
117
+
118
+ // Base button classes (Flowbite connected style)
119
+ const baseButtonClasses = "flex items-center justify-center leading-tight font-medium border border-gray-300 bg-white text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white";
120
+
121
+ // Active state classes (Flowbite style)
122
+ const activeClasses = "flex items-center justify-center leading-tight font-medium border border-gray-300 bg-blue-50 text-blue-600 hover:bg-blue-100 hover:text-blue-700 dark:bg-gray-700 dark:border-gray-700 dark:text-white";
123
+
124
+ // Disabled state classes
125
+ const disabledClasses = "cursor-not-allowed opacity-50";
126
+ </script>
127
+
128
+ {#if variant === 'table'}
129
+ <div class="flex flex-col items-center gap-3 sm:flex-row sm:justify-between {className}" {...restProps}>
130
+ <span class={`${typography.sm} text-gray-700 dark:text-gray-400`}>
131
+ {labels.showing} <span class={`font-semibold ${typography.sm}`}>{startItem}</span> {labels.to} <span class={`font-semibold ${typography.sm}`}>{endItem}</span> {labels.of} <span class={`font-semibold ${typography.sm}`}>{totalItems}</span> {labels.entries}
132
+ </span>
133
+ <nav class="inline-flex -space-x-px rtl:space-x-reverse" aria-label={labels.pagination}>
134
+ {#if effectiveShowPrevNext}
135
+ <button
136
+ type="button"
137
+ class="{baseButtonClasses} {sizeClasses} rounded-s-lg {currentPage === 1 ? disabledClasses : ''}"
138
+ disabled={currentPage === 1}
139
+ onclick={previous}
140
+ aria-label={labels.previousPage}
141
+ >
142
+ {#if prev}
143
+ {@render prev()}
144
+ {:else if previousLabel}
145
+ {previousLabel}
146
+ {:else}
147
+ <span aria-hidden="true"><ChevronLeftOutline class="h-4 w-4 rtl:rotate-180" /></span>
148
+ {/if}
149
+ </button>
150
+ {/if}
151
+
152
+ {#if showStartEllipsis}
153
+ <button
154
+ type="button"
155
+ class="{baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext ? 'rounded-s-lg' : ''}"
156
+ onclick={() => goToPage(1)}
157
+ >
158
+ 1
159
+ </button>
160
+ <span class="{baseButtonClasses} {pageSizeClasses} cursor-default">...</span>
161
+ {/if}
162
+
163
+ {#each visiblePages as page, index}
164
+ <button
165
+ type="button"
166
+ class="{page === currentPage ? activeClasses : baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext && !showStartEllipsis && index === 0 ? 'rounded-s-lg' : ''} {!effectiveShowPrevNext && !showEndEllipsis && index === visiblePages.length - 1 ? 'rounded-e-lg' : ''}"
167
+ onclick={() => goToPage(page)}
168
+ aria-current={page === currentPage ? "page" : undefined}
169
+ >
170
+ {page}
171
+ </button>
172
+ {/each}
173
+
174
+ {#if showEndEllipsis}
175
+ <span class="{baseButtonClasses} {pageSizeClasses} cursor-default">...</span>
176
+ <button
177
+ type="button"
178
+ class="{baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext ? 'rounded-e-lg' : ''}"
179
+ onclick={() => goToPage(totalPages)}
180
+ >
181
+ {totalPages}
182
+ </button>
183
+ {/if}
184
+
185
+ {#if effectiveShowPrevNext}
186
+ <button
187
+ type="button"
188
+ class="{baseButtonClasses} {sizeClasses} rounded-e-lg {currentPage === totalPages ? disabledClasses : ''}"
189
+ disabled={currentPage === totalPages}
190
+ onclick={nextPage}
191
+ aria-label={labels.nextPage}
192
+ >
193
+ {#if next}
194
+ {@render next()}
195
+ {:else if nextLabel}
196
+ {nextLabel}
197
+ {:else}
198
+ <span aria-hidden="true"><ChevronRightOutline class="h-4 w-4 rtl:rotate-180" /></span>
199
+ {/if}
200
+ </button>
201
+ {/if}
202
+ </nav>
203
+ </div>
204
+ {:else}
205
+ <nav class="inline-flex -space-x-px rtl:space-x-reverse text-sm {className}" aria-label={labels.pagination} {...restProps}>
206
+ {#if effectiveShowPrevNext}
207
+ <button
208
+ type="button"
209
+ class="{baseButtonClasses} {sizeClasses} rounded-s-lg {currentPage === 1 ? disabledClasses : ''}"
210
+ disabled={currentPage === 1}
211
+ onclick={previous}
212
+ aria-label={labels.previousPage}
213
+ >
214
+ {#if prev}
215
+ {@render prev()}
216
+ {:else if previousLabel}
217
+ {previousLabel}
218
+ {:else}
219
+ <span aria-hidden="true"><ChevronLeftOutline class="h-4 w-4 rtl:rotate-180" /></span>
220
+ {/if}
221
+ </button>
222
+ {/if}
223
+
224
+ {#if showStartEllipsis}
225
+ <button
226
+ type="button"
227
+ class="{baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext ? 'rounded-s-lg' : ''}"
228
+ onclick={() => goToPage(1)}
229
+ >
230
+ 1
231
+ </button>
232
+ <span class="{baseButtonClasses} {pageSizeClasses} cursor-default">...</span>
233
+ {/if}
234
+
235
+ {#each visiblePages as page, index}
236
+ <button
237
+ type="button"
238
+ class="{page === currentPage ? activeClasses : baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext && !showStartEllipsis && index === 0 ? 'rounded-s-lg' : ''} {!effectiveShowPrevNext && !showEndEllipsis && index === visiblePages.length - 1 ? 'rounded-e-lg' : ''}"
239
+ onclick={() => goToPage(page)}
240
+ aria-current={page === currentPage ? "page" : undefined}
241
+ >
242
+ {page}
243
+ </button>
244
+ {/each}
245
+
246
+ {#if showEndEllipsis}
247
+ <span class="{baseButtonClasses} {pageSizeClasses} cursor-default">...</span>
248
+ <button
249
+ type="button"
250
+ class="{baseButtonClasses} {pageSizeClasses} {!effectiveShowPrevNext ? 'rounded-e-lg' : ''}"
251
+ onclick={() => goToPage(totalPages)}
252
+ >
253
+ {totalPages}
254
+ </button>
255
+ {/if}
256
+
257
+ {#if effectiveShowPrevNext}
258
+ <button
259
+ type="button"
260
+ class="{baseButtonClasses} {sizeClasses} rounded-e-lg {currentPage === totalPages ? disabledClasses : ''}"
261
+ disabled={currentPage === totalPages}
262
+ onclick={nextPage}
263
+ aria-label={labels.nextPage}
264
+ >
265
+ {#if next}
266
+ {@render next()}
267
+ {:else if nextLabel}
268
+ {nextLabel}
269
+ {:else}
270
+ <span aria-hidden="true"><ChevronRightOutline class="h-4 w-4 rtl:rotate-180" /></span>
271
+ {/if}
272
+ </button>
273
+ {/if}
274
+ </nav>
275
+ {/if}
@@ -1,5 +1,6 @@
1
1
  import type { Snippet } from 'svelte';
2
- interface Props {
2
+ declare const Pagination: import("svelte").Component<{
3
+ [key: string]: unknown;
3
4
  currentPage?: number;
4
5
  totalPages?: number;
5
6
  maxVisible?: number;
@@ -7,8 +8,8 @@ interface Props {
7
8
  showIcons?: boolean;
8
9
  previousLabel?: string;
9
10
  nextLabel?: string;
10
- variant?: 'default' | 'table';
11
- size?: 'sm' | 'md' | 'lg';
11
+ variant?: "default" | "table";
12
+ size?: "sm" | "md" | "lg";
12
13
  totalItems?: number;
13
14
  perPage?: number;
14
15
  class?: string;
@@ -18,9 +19,16 @@ interface Props {
18
19
  onPageChange?: (page: number) => void;
19
20
  prev?: Snippet;
20
21
  next?: Snippet;
21
- [key: string]: unknown;
22
- }
23
- declare const Pagination: import("svelte").Component<Props, {}, "currentPage">;
22
+ labels?: Partial<{
23
+ showing: string;
24
+ to: string;
25
+ of: string;
26
+ entries: string;
27
+ previousPage: string;
28
+ nextPage: string;
29
+ pagination: string;
30
+ }>;
31
+ }, {}, "currentPage">;
24
32
  type Pagination = ReturnType<typeof Pagination>;
25
33
  export default Pagination;
26
34
  //# sourceMappingURL=Pagination.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Pagination/Pagination.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAKpC,UAAU,KAAK;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAoMH,QAAA,MAAM,UAAU,sDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"Pagination.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Pagination/Pagination.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAwOtC,QAAA,MAAM,UAAU;;kBApNE,MAAM;iBACP,MAAM;iBACN,MAAM;mBACJ,OAAO;gBACV,OAAO;oBACH,MAAM;gBACV,MAAM;cACR,SAAS,GAAG,OAAO;WACtB,IAAI,GAAG,IAAI,GAAG,IAAI;iBACZ,MAAM;cACT,MAAM;YACR,MAAM;eACH,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI;mBAC9B,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;WAC9B,OAAO;WACP,OAAO;aACL,OAAO;;;;;;;;MAAsB;qBAoMc,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}