@getmicdrop/svelte-components 5.5.1 → 5.5.5

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 (472) hide show
  1. package/dist/calendar/AboutShow/AboutShow.spec.d.ts +2 -0
  2. package/dist/calendar/AboutShow/AboutShow.spec.d.ts.map +1 -0
  3. package/dist/calendar/AboutShow/AboutShow.spec.js +791 -0
  4. package/dist/calendar/AboutShow/AboutShow.svelte +172 -172
  5. package/dist/calendar/Calendar/MiniMonthCalendar.spec.d.ts +2 -0
  6. package/dist/calendar/Calendar/MiniMonthCalendar.spec.d.ts.map +1 -0
  7. package/dist/calendar/Calendar/MiniMonthCalendar.spec.js +1191 -0
  8. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +782 -782
  9. package/dist/calendar/FAQs/FAQs.spec.d.ts +2 -0
  10. package/dist/calendar/FAQs/FAQs.spec.d.ts.map +1 -0
  11. package/dist/calendar/FAQs/FAQs.spec.js +238 -0
  12. package/dist/calendar/FAQs/FAQs.svelte +75 -75
  13. package/dist/calendar/MonthSwitcher/MonthSwitcher.spec.d.ts +2 -0
  14. package/dist/calendar/MonthSwitcher/MonthSwitcher.spec.d.ts.map +1 -0
  15. package/dist/calendar/MonthSwitcher/MonthSwitcher.spec.js +420 -0
  16. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +126 -126
  17. package/dist/calendar/OrderSummary/OrderSummary.spec.d.ts +2 -0
  18. package/dist/calendar/OrderSummary/OrderSummary.spec.d.ts.map +1 -0
  19. package/dist/calendar/OrderSummary/OrderSummary.spec.js +808 -0
  20. package/dist/calendar/OrderSummary/OrderSummary.svelte +367 -367
  21. package/dist/calendar/PublicCard/PublicCard.spec.d.ts +2 -0
  22. package/dist/calendar/PublicCard/PublicCard.spec.d.ts.map +1 -0
  23. package/dist/calendar/PublicCard/PublicCard.spec.js +301 -0
  24. package/dist/calendar/PublicCard/PublicCard.svelte +134 -134
  25. package/dist/calendar/ShowCard/ShowCard.spec.d.ts +2 -0
  26. package/dist/calendar/ShowCard/ShowCard.spec.d.ts.map +1 -0
  27. package/dist/calendar/ShowCard/ShowCard.spec.js +714 -0
  28. package/dist/calendar/ShowCard/ShowCard.svelte +157 -157
  29. package/dist/calendar/ShowTimeCard/ShowTimeCard.spec.d.ts +2 -0
  30. package/dist/calendar/ShowTimeCard/ShowTimeCard.spec.d.ts.map +1 -0
  31. package/dist/calendar/ShowTimeCard/ShowTimeCard.spec.js +241 -0
  32. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +61 -61
  33. package/dist/components/Layout/Grid.svelte +4 -4
  34. package/dist/components/Layout/Section.spec.d.ts +2 -0
  35. package/dist/components/Layout/Section.spec.d.ts.map +1 -0
  36. package/dist/components/Layout/Section.spec.js +149 -0
  37. package/dist/components/Layout/Section.svelte +80 -80
  38. package/dist/components/Layout/Sidebar.spec.d.ts +2 -0
  39. package/dist/components/Layout/Sidebar.spec.d.ts.map +1 -0
  40. package/dist/components/Layout/Sidebar.spec.js +186 -0
  41. package/dist/components/Layout/Sidebar.svelte +108 -108
  42. package/dist/components/Layout/Stack.spec.js +3 -3
  43. package/dist/components/Layout/Stack.svelte +6 -6
  44. package/dist/constants/formOptions.spec.js +9 -5
  45. package/dist/constants/validation.js +91 -91
  46. package/dist/constants/validation.spec.js +64 -64
  47. package/dist/datetime/__tests__/format.test.js +1 -1
  48. package/dist/datetime/__tests__/parse.test.js +1 -1
  49. package/dist/datetime/__tests__/timezone.test.js +124 -2
  50. package/dist/datetime/parse.js +1 -1
  51. package/dist/forms/createFieldTracker.spec.d.ts +2 -0
  52. package/dist/forms/createFieldTracker.spec.d.ts.map +1 -0
  53. package/dist/forms/createFieldTracker.spec.js +343 -0
  54. package/dist/forms/createFormStore.spec.d.ts +2 -0
  55. package/dist/forms/createFormStore.spec.d.ts.map +1 -0
  56. package/dist/forms/createFormStore.spec.js +689 -0
  57. package/dist/forms/createFormStore.svelte.js +0 -1
  58. package/dist/index.d.ts +5 -112
  59. package/dist/index.js +40 -225
  60. package/dist/patterns/data/DataGrid.spec.d.ts +2 -0
  61. package/dist/patterns/data/DataGrid.spec.d.ts.map +1 -0
  62. package/dist/patterns/data/DataGrid.spec.js +159 -0
  63. package/dist/patterns/data/DataGrid.svelte +45 -45
  64. package/dist/patterns/data/DataList.spec.d.ts +2 -0
  65. package/dist/patterns/data/DataList.spec.d.ts.map +1 -0
  66. package/dist/patterns/data/DataList.spec.js +158 -0
  67. package/dist/patterns/data/DataList.svelte +24 -24
  68. package/dist/patterns/data/DataTable.spec.d.ts +2 -0
  69. package/dist/patterns/data/DataTable.spec.d.ts.map +1 -0
  70. package/dist/patterns/data/DataTable.spec.js +196 -0
  71. package/dist/patterns/data/DataTable.svelte +36 -36
  72. package/dist/patterns/forms/FormActions.spec.js +95 -88
  73. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  74. package/dist/patterns/forms/FormActions.svelte +46 -46
  75. package/dist/patterns/forms/FormGrid.spec.d.ts +2 -0
  76. package/dist/patterns/forms/FormGrid.spec.d.ts.map +1 -0
  77. package/dist/patterns/forms/FormGrid.spec.js +125 -0
  78. package/dist/patterns/forms/FormGrid.svelte +33 -33
  79. package/dist/patterns/forms/FormSection.spec.d.ts +2 -0
  80. package/dist/patterns/forms/FormSection.spec.d.ts.map +1 -0
  81. package/dist/patterns/forms/FormSection.spec.js +153 -0
  82. package/dist/patterns/forms/FormSection.svelte +32 -32
  83. package/dist/patterns/forms/FormValidationSummary.stories.svelte +83 -83
  84. package/dist/patterns/forms/FormValidationSummary.svelte +33 -33
  85. package/dist/patterns/layout/Sidebar.spec.d.ts +2 -0
  86. package/dist/patterns/layout/Sidebar.spec.d.ts.map +1 -0
  87. package/dist/patterns/layout/Sidebar.spec.js +159 -0
  88. package/dist/patterns/layout/Sidebar.svelte +39 -39
  89. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  90. package/dist/patterns/navigation/BottomNav.svelte +20 -20
  91. package/dist/patterns/navigation/Header.spec.js +33 -24
  92. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  93. package/dist/patterns/navigation/Header.svelte +193 -193
  94. package/dist/patterns/page/PageHeader.spec.d.ts +2 -0
  95. package/dist/patterns/page/PageHeader.spec.d.ts.map +1 -0
  96. package/dist/patterns/page/PageHeader.spec.js +167 -0
  97. package/dist/patterns/page/PageHeader.svelte +18 -18
  98. package/dist/patterns/page/PageLayout.spec.d.ts +2 -0
  99. package/dist/patterns/page/PageLayout.spec.d.ts.map +1 -0
  100. package/dist/patterns/page/PageLayout.spec.js +145 -0
  101. package/dist/patterns/page/PageLayout.svelte +40 -40
  102. package/dist/patterns/page/PageLoader.spec.js +57 -54
  103. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  104. package/dist/patterns/page/PageLoader.svelte +24 -24
  105. package/dist/patterns/page/SectionHeader.spec.d.ts +2 -0
  106. package/dist/patterns/page/SectionHeader.spec.d.ts.map +1 -0
  107. package/dist/patterns/page/SectionHeader.spec.js +197 -0
  108. package/dist/patterns/page/SectionHeader.svelte +29 -29
  109. package/dist/presets/badges.js +112 -112
  110. package/dist/presets/badges.spec.d.ts +2 -0
  111. package/dist/presets/badges.spec.d.ts.map +1 -0
  112. package/dist/presets/badges.spec.js +172 -0
  113. package/dist/presets/buttons.js +76 -76
  114. package/dist/presets/buttons.spec.d.ts +2 -0
  115. package/dist/presets/buttons.spec.d.ts.map +1 -0
  116. package/dist/presets/buttons.spec.js +135 -0
  117. package/dist/presets/index.js +9 -9
  118. package/dist/primitives/Accordion/Accordion.spec.d.ts +2 -0
  119. package/dist/primitives/Accordion/Accordion.spec.d.ts.map +1 -0
  120. package/dist/primitives/Accordion/Accordion.spec.js +83 -0
  121. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  122. package/dist/primitives/Accordion/Accordion.svelte +42 -42
  123. package/dist/primitives/Accordion/AccordionItem.spec.d.ts +2 -0
  124. package/dist/primitives/Accordion/AccordionItem.spec.d.ts.map +1 -0
  125. package/dist/primitives/Accordion/AccordionItem.spec.js +661 -0
  126. package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
  127. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte +107 -0
  128. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte.d.ts +35 -0
  129. package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte.d.ts.map +1 -0
  130. package/dist/primitives/Alert/Alert.spec.js +173 -170
  131. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  132. package/dist/primitives/Alert/Alert.svelte +27 -27
  133. package/dist/primitives/Avatar/Avatar.spec.d.ts +2 -0
  134. package/dist/primitives/Avatar/Avatar.spec.d.ts.map +1 -0
  135. package/dist/primitives/Avatar/Avatar.spec.js +211 -0
  136. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  137. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  138. package/dist/primitives/Badges/Badge.spec.js +144 -103
  139. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  140. package/dist/primitives/Badges/Badge.svelte +79 -79
  141. package/dist/primitives/BottomSheet/BottomSheet.spec.js +136 -127
  142. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  143. package/dist/primitives/BottomSheet/BottomSheet.svelte +100 -100
  144. package/dist/primitives/BottomSheet/BottomSheetWrapper.test.svelte +13 -0
  145. package/dist/primitives/BottomSheet/BottomSheetWrapper.test.svelte.d.ts +7 -0
  146. package/dist/primitives/BottomSheet/BottomSheetWrapper.test.svelte.d.ts.map +1 -0
  147. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +122 -120
  148. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  149. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +89 -89
  150. package/dist/primitives/Button/Button.spec.js +223 -211
  151. package/dist/primitives/Button/Button.stories.svelte +76 -76
  152. package/dist/primitives/Button/Button.svelte +270 -270
  153. package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -48
  154. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  155. package/dist/primitives/Button/ButtonVariantShowcase.spec.d.ts +2 -0
  156. package/dist/primitives/Button/ButtonVariantShowcase.spec.d.ts.map +1 -0
  157. package/dist/primitives/Button/ButtonVariantShowcase.spec.js +202 -0
  158. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  159. package/dist/primitives/Card.spec.js +49 -49
  160. package/dist/primitives/Card.stories.svelte +22 -22
  161. package/dist/primitives/Card.svelte +28 -28
  162. package/dist/primitives/Checkbox/Checkbox.spec.d.ts +2 -0
  163. package/dist/primitives/Checkbox/Checkbox.spec.d.ts.map +1 -0
  164. package/dist/primitives/Checkbox/Checkbox.spec.js +252 -0
  165. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  166. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  167. package/dist/primitives/DarkModeToggle.spec.js +390 -357
  168. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  169. package/dist/primitives/DarkModeToggle.svelte +136 -136
  170. package/dist/primitives/Drawer/Drawer.spec.d.ts +2 -0
  171. package/dist/primitives/Drawer/Drawer.spec.d.ts.map +1 -0
  172. package/dist/primitives/Drawer/Drawer.spec.js +212 -0
  173. package/dist/primitives/Drawer/Drawer.stories.svelte +80 -80
  174. package/dist/primitives/Drawer/Drawer.svelte +120 -120
  175. package/dist/primitives/Dropdown/Dropdown.spec.d.ts +2 -0
  176. package/dist/primitives/Dropdown/Dropdown.spec.d.ts.map +1 -0
  177. package/dist/primitives/Dropdown/Dropdown.spec.js +366 -0
  178. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  179. package/dist/primitives/Dropdown/Dropdown.svelte +14 -14
  180. package/dist/primitives/Dropdown/DropdownItem.spec.d.ts +2 -0
  181. package/dist/primitives/Dropdown/DropdownItem.spec.d.ts.map +1 -0
  182. package/dist/primitives/Dropdown/DropdownItem.spec.js +182 -0
  183. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  184. package/dist/primitives/Icons/ArrowLeft.svelte +8 -8
  185. package/dist/primitives/Icons/ArrowRight.svelte +8 -8
  186. package/dist/primitives/Icons/Availability.svelte +14 -14
  187. package/dist/primitives/Icons/Back.svelte +14 -14
  188. package/dist/primitives/Icons/CheckCircle.svelte +6 -6
  189. package/dist/primitives/Icons/CheckCircleOutline.svelte +15 -15
  190. package/dist/primitives/Icons/ChevronLeft.svelte +4 -4
  191. package/dist/primitives/Icons/ChevronRight.svelte +4 -4
  192. package/dist/primitives/Icons/Copy.svelte +15 -15
  193. package/dist/primitives/Icons/Cross.svelte +5 -5
  194. package/dist/primitives/Icons/DownArrow.svelte +8 -8
  195. package/dist/primitives/Icons/ErrorCircle.svelte +6 -6
  196. package/dist/primitives/Icons/FacebookIcon.svelte +2 -2
  197. package/dist/primitives/Icons/Home.svelte +15 -15
  198. package/dist/primitives/Icons/Icon.spec.js +169 -169
  199. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  200. package/dist/primitives/Icons/Icon.svelte +52 -52
  201. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  202. package/dist/primitives/Icons/Info.svelte +7 -7
  203. package/dist/primitives/Icons/InstagramIcon.svelte +4 -4
  204. package/dist/primitives/Icons/LogoInstagram.svelte +2 -2
  205. package/dist/primitives/Icons/Message.svelte +15 -15
  206. package/dist/primitives/Icons/MoonIcon.svelte +5 -5
  207. package/dist/primitives/Icons/More.svelte +21 -21
  208. package/dist/primitives/Icons/MoreHori.spec.js +61 -61
  209. package/dist/primitives/Icons/MoreHori.svelte +22 -22
  210. package/dist/primitives/Icons/Notification.svelte +14 -14
  211. package/dist/primitives/Icons/Payment.svelte +14 -14
  212. package/dist/primitives/Icons/Profile.svelte +21 -21
  213. package/dist/primitives/Icons/Reload.svelte +29 -29
  214. package/dist/primitives/Icons/Shows.svelte +21 -21
  215. package/dist/primitives/Icons/Signout.svelte +21 -21
  216. package/dist/primitives/Icons/SunIcon.svelte +8 -8
  217. package/dist/primitives/Icons/TiktokIcon.svelte +2 -2
  218. package/dist/primitives/Icons/TwitterIcon.svelte +2 -2
  219. package/dist/primitives/Icons/WarningIcon.spec.js +18 -18
  220. package/dist/primitives/Icons/WarningIcon.svelte +5 -5
  221. package/dist/primitives/Icons/iconTestUtils.spec.d.ts +2 -0
  222. package/dist/primitives/Icons/iconTestUtils.spec.d.ts.map +1 -0
  223. package/dist/primitives/Icons/iconTestUtils.spec.js +235 -0
  224. package/dist/primitives/Input/Input.spec.js +573 -573
  225. package/dist/primitives/Input/Input.stories.svelte +139 -139
  226. package/dist/primitives/Input/Input.svelte +384 -397
  227. package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
  228. package/dist/primitives/Input/Select.spec.js +212 -218
  229. package/dist/primitives/Input/Select.stories.svelte +112 -112
  230. package/dist/primitives/Input/Select.svelte +128 -128
  231. package/dist/primitives/Input/Textarea.spec.d.ts +2 -0
  232. package/dist/primitives/Input/Textarea.spec.d.ts.map +1 -0
  233. package/dist/primitives/Input/Textarea.spec.js +255 -0
  234. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  235. package/dist/primitives/Input/Textarea.svelte +35 -35
  236. package/dist/primitives/Label/Label.spec.d.ts +2 -0
  237. package/dist/primitives/Label/Label.spec.d.ts.map +1 -0
  238. package/dist/primitives/Label/Label.spec.js +157 -0
  239. package/dist/primitives/Label/Label.svelte +37 -37
  240. package/dist/primitives/Modal/Modal.spec.js +99 -95
  241. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  242. package/dist/primitives/Modal/Modal.svelte +158 -158
  243. package/dist/primitives/Modal/ModalTestWrapper.svelte +65 -0
  244. package/dist/primitives/Modal/ModalTestWrapper.svelte.d.ts +23 -0
  245. package/dist/primitives/Modal/ModalTestWrapper.svelte.d.ts.map +1 -0
  246. package/dist/primitives/NumberInput/NumberInput.spec.d.ts +2 -0
  247. package/dist/primitives/NumberInput/NumberInput.spec.d.ts.map +1 -0
  248. package/dist/primitives/NumberInput/NumberInput.spec.js +235 -0
  249. package/dist/primitives/NumberInput/NumberInput.svelte +106 -106
  250. package/dist/primitives/Pagination/Pagination.spec.d.ts +2 -0
  251. package/dist/primitives/Pagination/Pagination.spec.d.ts.map +1 -0
  252. package/dist/primitives/Pagination/Pagination.spec.js +266 -0
  253. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  254. package/dist/primitives/Pagination/Pagination.svelte +261 -261
  255. package/dist/primitives/Radio/Radio.spec.d.ts +2 -0
  256. package/dist/primitives/Radio/Radio.spec.d.ts.map +1 -0
  257. package/dist/primitives/Radio/Radio.spec.js +206 -0
  258. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  259. package/dist/primitives/Radio/Radio.svelte +67 -67
  260. package/dist/primitives/Skeleton/CardPlaceholder.spec.d.ts +2 -0
  261. package/dist/primitives/Skeleton/CardPlaceholder.spec.d.ts.map +1 -0
  262. package/dist/primitives/Skeleton/CardPlaceholder.spec.js +156 -0
  263. package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
  264. package/dist/primitives/Skeleton/ImagePlaceholder.spec.d.ts +2 -0
  265. package/dist/primitives/Skeleton/ImagePlaceholder.spec.d.ts.map +1 -0
  266. package/dist/primitives/Skeleton/ImagePlaceholder.spec.js +120 -0
  267. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
  268. package/dist/primitives/Skeleton/ListPlaceholder.spec.d.ts +2 -0
  269. package/dist/primitives/Skeleton/ListPlaceholder.spec.d.ts.map +1 -0
  270. package/dist/primitives/Skeleton/ListPlaceholder.spec.js +220 -0
  271. package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
  272. package/dist/primitives/Skeleton/Skeleton.spec.d.ts +2 -0
  273. package/dist/primitives/Skeleton/Skeleton.spec.d.ts.map +1 -0
  274. package/dist/primitives/Skeleton/Skeleton.spec.js +173 -0
  275. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  276. package/dist/primitives/Skeleton/Skeleton.svelte +26 -26
  277. package/dist/primitives/Spinner/Spinner.spec.js +71 -75
  278. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  279. package/dist/primitives/Spinner/Spinner.svelte +20 -20
  280. package/dist/primitives/Tabs/TabItem.spec.d.ts +2 -0
  281. package/dist/primitives/Tabs/TabItem.spec.d.ts.map +1 -0
  282. package/dist/primitives/Tabs/TabItem.spec.js +130 -0
  283. package/dist/primitives/Tabs/TabItem.svelte +49 -49
  284. package/dist/primitives/Tabs/Tabs.spec.d.ts +2 -0
  285. package/dist/primitives/Tabs/Tabs.spec.d.ts.map +1 -0
  286. package/dist/primitives/Tabs/Tabs.spec.js +295 -0
  287. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  288. package/dist/primitives/Tabs/Tabs.svelte +123 -123
  289. package/dist/primitives/Tabs/TabsWithItems.test.svelte +18 -0
  290. package/dist/primitives/Tabs/TabsWithItems.test.svelte.d.ts +16 -0
  291. package/dist/primitives/Tabs/TabsWithItems.test.svelte.d.ts.map +1 -0
  292. package/dist/primitives/Toggle.spec.js +143 -127
  293. package/dist/primitives/Toggle.stories.svelte +92 -92
  294. package/dist/primitives/Toggle.svelte +71 -71
  295. package/dist/primitives/Typography/Typography.spec.d.ts +2 -0
  296. package/dist/primitives/Typography/Typography.spec.d.ts.map +1 -0
  297. package/dist/primitives/Typography/Typography.spec.js +183 -0
  298. package/dist/primitives/Typography/Typography.svelte +53 -53
  299. package/dist/primitives/ValidationError.spec.js +103 -103
  300. package/dist/primitives/ValidationError.stories.svelte +69 -69
  301. package/dist/primitives/ValidationError.svelte +29 -29
  302. package/dist/primitives/index.d.ts +1 -0
  303. package/dist/primitives/index.js +3 -0
  304. package/dist/recipes/CropImage/CropImage.spec.js +208 -216
  305. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  306. package/dist/recipes/CropImage/CropImage.svelte +238 -238
  307. package/dist/recipes/ImageUploader/ImageUploader.spec.d.ts +2 -0
  308. package/dist/recipes/ImageUploader/ImageUploader.spec.d.ts.map +1 -0
  309. package/dist/recipes/ImageUploader/ImageUploader.spec.js +1351 -0
  310. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  311. package/dist/recipes/ImageUploader/ImageUploader.svelte +804 -804
  312. package/dist/recipes/SuperLogin/SuperLogin.spec.d.ts +2 -0
  313. package/dist/recipes/SuperLogin/SuperLogin.spec.d.ts.map +1 -0
  314. package/dist/recipes/SuperLogin/SuperLogin.spec.js +1436 -0
  315. package/dist/recipes/SuperLogin/SuperLogin.svelte +7 -6
  316. package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
  317. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  318. package/dist/recipes/feedback/EmptyState/EmptyState.spec.d.ts +2 -0
  319. package/dist/recipes/feedback/EmptyState/EmptyState.spec.d.ts.map +1 -0
  320. package/dist/recipes/feedback/EmptyState/EmptyState.spec.js +202 -0
  321. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
  322. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  323. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +101 -101
  324. package/dist/recipes/feedback/ErrorDisplay.svelte +1 -1
  325. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -129
  326. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +157 -157
  327. package/dist/recipes/fields/CheckboxField.spec.d.ts +2 -0
  328. package/dist/recipes/fields/CheckboxField.spec.d.ts.map +1 -0
  329. package/dist/recipes/fields/CheckboxField.spec.js +135 -0
  330. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  331. package/dist/recipes/fields/FormField.spec.d.ts +2 -0
  332. package/dist/recipes/fields/FormField.spec.d.ts.map +1 -0
  333. package/dist/recipes/fields/FormField.spec.js +159 -0
  334. package/dist/recipes/fields/FormField.svelte +58 -58
  335. package/dist/recipes/fields/RadioGroup.spec.d.ts +2 -0
  336. package/dist/recipes/fields/RadioGroup.spec.d.ts.map +1 -0
  337. package/dist/recipes/fields/RadioGroup.spec.js +199 -0
  338. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  339. package/dist/recipes/fields/SelectField.spec.d.ts +2 -0
  340. package/dist/recipes/fields/SelectField.spec.d.ts.map +1 -0
  341. package/dist/recipes/fields/SelectField.spec.js +188 -0
  342. package/dist/recipes/fields/SelectField.svelte +80 -80
  343. package/dist/recipes/fields/TextareaField.spec.d.ts +2 -0
  344. package/dist/recipes/fields/TextareaField.spec.d.ts.map +1 -0
  345. package/dist/recipes/fields/TextareaField.spec.js +205 -0
  346. package/dist/recipes/fields/TextareaField.svelte +97 -97
  347. package/dist/recipes/fields/ToggleField.spec.d.ts +2 -0
  348. package/dist/recipes/fields/ToggleField.spec.d.ts.map +1 -0
  349. package/dist/recipes/fields/ToggleField.spec.js +153 -0
  350. package/dist/recipes/fields/ToggleField.svelte +60 -60
  351. package/dist/recipes/fields/index.js +7 -7
  352. package/dist/recipes/inputs/MultiSelect.spec.js +258 -257
  353. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  354. package/dist/recipes/inputs/MultiSelect.svelte +256 -249
  355. package/dist/recipes/inputs/MultiSelect.svelte.d.ts +2 -0
  356. package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
  357. package/dist/recipes/inputs/OTPInput.spec.js +251 -238
  358. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  359. package/dist/recipes/inputs/OTPInput.svelte +29 -29
  360. package/dist/recipes/inputs/PasswordInput.spec.d.ts +2 -0
  361. package/dist/recipes/inputs/PasswordInput.spec.d.ts.map +1 -0
  362. package/dist/recipes/inputs/PasswordInput.spec.js +410 -0
  363. package/dist/recipes/inputs/PasswordInput.svelte +22 -22
  364. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +245 -165
  365. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +43 -43
  366. package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte +71 -0
  367. package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte.d.ts +9 -0
  368. package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte.d.ts.map +1 -0
  369. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +1139 -193
  370. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +123 -123
  371. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +326 -326
  372. package/dist/recipes/inputs/Search.spec.d.ts +2 -0
  373. package/dist/recipes/inputs/Search.spec.d.ts.map +1 -0
  374. package/dist/recipes/inputs/Search.spec.js +177 -0
  375. package/dist/recipes/inputs/Search.svelte +37 -37
  376. package/dist/recipes/inputs/SelectDropdown.spec.d.ts +2 -0
  377. package/dist/recipes/inputs/SelectDropdown.spec.d.ts.map +1 -0
  378. package/dist/recipes/inputs/SelectDropdown.spec.js +512 -0
  379. package/dist/recipes/inputs/SelectDropdown.svelte +57 -57
  380. package/dist/recipes/modals/AlertModal.spec.d.ts +2 -0
  381. package/dist/recipes/modals/AlertModal.spec.d.ts.map +1 -0
  382. package/dist/recipes/modals/AlertModal.spec.js +432 -0
  383. package/dist/recipes/modals/AlertModal.svelte +130 -130
  384. package/dist/recipes/modals/ConfirmationModal.spec.js +206 -191
  385. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  386. package/dist/recipes/modals/ConfirmationModal.svelte +152 -152
  387. package/dist/recipes/modals/InputModal.spec.d.ts +2 -0
  388. package/dist/recipes/modals/InputModal.spec.d.ts.map +1 -0
  389. package/dist/recipes/modals/InputModal.spec.js +872 -0
  390. package/dist/recipes/modals/InputModal.svelte +182 -182
  391. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  392. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  393. package/dist/recipes/modals/ModalTestWrapper.spec.d.ts +2 -0
  394. package/dist/recipes/modals/ModalTestWrapper.spec.d.ts.map +1 -0
  395. package/dist/recipes/modals/ModalTestWrapper.spec.js +502 -0
  396. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  397. package/dist/recipes/modals/StatusModal.spec.d.ts +2 -0
  398. package/dist/recipes/modals/StatusModal.spec.d.ts.map +1 -0
  399. package/dist/recipes/modals/StatusModal.spec.js +599 -0
  400. package/dist/recipes/modals/StatusModal.svelte +206 -206
  401. package/dist/services/EventService.js +75 -75
  402. package/dist/services/EventService.spec.js +217 -217
  403. package/dist/services/ShowService.spec.js +345 -342
  404. package/dist/stores/auth.js +36 -36
  405. package/dist/stores/auth.spec.js +139 -139
  406. package/dist/stores/toaster.js +13 -13
  407. package/dist/stories/ButtonAuditDashboard.spec.d.ts +2 -0
  408. package/dist/stories/ButtonAuditDashboard.spec.d.ts.map +1 -0
  409. package/dist/stories/ButtonAuditDashboard.spec.js +913 -0
  410. package/dist/stories/ButtonAuditReview.spec.d.ts +2 -0
  411. package/dist/stories/ButtonAuditReview.spec.d.ts.map +1 -0
  412. package/dist/stories/ButtonAuditReview.spec.js +422 -0
  413. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  414. package/dist/stories/ButtonAuditReview.svelte +427 -427
  415. package/dist/stories/ButtonGridView.spec.d.ts +2 -0
  416. package/dist/stories/ButtonGridView.spec.d.ts.map +1 -0
  417. package/dist/stories/ButtonGridView.spec.js +667 -0
  418. package/dist/stories/ButtonShowcase.spec.d.ts +2 -0
  419. package/dist/stories/ButtonShowcase.spec.d.ts.map +1 -0
  420. package/dist/stories/ButtonShowcase.spec.js +499 -0
  421. package/dist/stories/PatternsGallery.spec.d.ts +2 -0
  422. package/dist/stories/PatternsGallery.spec.d.ts.map +1 -0
  423. package/dist/stories/PatternsGallery.spec.js +514 -0
  424. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  425. package/dist/stories/PatternsGallery.svelte +206 -206
  426. package/dist/stories/PrimitivesGallery.spec.d.ts +2 -0
  427. package/dist/stories/PrimitivesGallery.spec.d.ts.map +1 -0
  428. package/dist/stories/PrimitivesGallery.spec.js +813 -0
  429. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  430. package/dist/stories/PrimitivesGallery.svelte +725 -725
  431. package/dist/stories/RecipesGallery.spec.d.ts +2 -0
  432. package/dist/stories/RecipesGallery.spec.d.ts.map +1 -0
  433. package/dist/stories/RecipesGallery.spec.js +299 -0
  434. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  435. package/dist/stories/RecipesGallery.svelte +271 -271
  436. package/dist/stories/button-audit-manifest.json +11186 -11186
  437. package/dist/stripe/useStripeTheme.spec.d.ts +2 -0
  438. package/dist/stripe/useStripeTheme.spec.d.ts.map +1 -0
  439. package/dist/stripe/useStripeTheme.spec.js +793 -0
  440. package/dist/tailwind/preset.cjs +82 -82
  441. package/dist/telemetry.d.ts.map +1 -1
  442. package/dist/telemetry.js +6 -5
  443. package/dist/telemetry.spec.js +495 -12
  444. package/dist/tokens/__tests__/colors.test.d.ts +2 -0
  445. package/dist/tokens/__tests__/colors.test.d.ts.map +1 -0
  446. package/dist/tokens/__tests__/colors.test.js +152 -0
  447. package/dist/tokens/__tests__/radius.test.d.ts +2 -0
  448. package/dist/tokens/__tests__/radius.test.d.ts.map +1 -0
  449. package/dist/tokens/__tests__/radius.test.js +118 -0
  450. package/dist/tokens/__tests__/shadows.test.d.ts +2 -0
  451. package/dist/tokens/__tests__/shadows.test.d.ts.map +1 -0
  452. package/dist/tokens/__tests__/shadows.test.js +105 -0
  453. package/dist/tokens/__tests__/spacing.test.js +11 -8
  454. package/dist/tokens/__tests__/typography.test.d.ts +2 -0
  455. package/dist/tokens/__tests__/typography.test.d.ts.map +1 -0
  456. package/dist/tokens/__tests__/typography.test.js +156 -0
  457. package/dist/tokens/__tests__/z-index.test.d.ts +2 -0
  458. package/dist/tokens/__tests__/z-index.test.d.ts.map +1 -0
  459. package/dist/tokens/__tests__/z-index.test.js +121 -0
  460. package/dist/tokens/tokens.css +87 -87
  461. package/dist/utils/apiConfig.spec.js +102 -1
  462. package/dist/utils/formatters.spec.d.ts +2 -0
  463. package/dist/utils/formatters.spec.d.ts.map +1 -0
  464. package/dist/utils/formatters.spec.js +82 -0
  465. package/dist/utils/transitions.d.ts +24 -0
  466. package/dist/utils/transitions.d.ts.map +1 -0
  467. package/dist/utils/transitions.js +62 -0
  468. package/dist/utils/transitions.spec.d.ts +2 -0
  469. package/dist/utils/transitions.spec.d.ts.map +1 -0
  470. package/dist/utils/transitions.spec.js +130 -0
  471. package/dist/utils/utils.js +354 -354
  472. package/package.json +288 -283
@@ -74,6 +74,7 @@ describe('Telemetry Module', () => {
74
74
  let originalWindow;
75
75
  let originalDocument;
76
76
  let mockSpan;
77
+ let mockTracer;
77
78
 
78
79
  beforeEach(async () => {
79
80
  vi.resetModules();
@@ -82,6 +83,20 @@ describe('Telemetry Module', () => {
82
83
  originalWindow = global.window;
83
84
  originalDocument = global.document;
84
85
 
86
+ // Create mock span
87
+ mockSpan = {
88
+ setAttribute: vi.fn(),
89
+ setStatus: vi.fn(),
90
+ recordException: vi.fn(),
91
+ end: vi.fn(),
92
+ name: 'test-span',
93
+ };
94
+
95
+ // Create mock tracer
96
+ mockTracer = {
97
+ startSpan: vi.fn().mockReturnValue(mockSpan),
98
+ };
99
+
85
100
  // Setup mock window
86
101
  global.window = {
87
102
  location: {
@@ -107,15 +122,6 @@ describe('Telemetry Module', () => {
107
122
  platform: 'test-platform',
108
123
  };
109
124
 
110
- // Create mock span
111
- mockSpan = {
112
- setAttribute: vi.fn(),
113
- setStatus: vi.fn(),
114
- recordException: vi.fn(),
115
- end: vi.fn(),
116
- name: 'test-span',
117
- };
118
-
119
125
  // Re-import with fresh mocks
120
126
  telemetry = await import('./telemetry.js');
121
127
  });
@@ -207,6 +213,11 @@ describe('Telemetry Module', () => {
207
213
  it('can be called with page path and title', () => {
208
214
  expect(() => telemetry.trackPageView('/test-page', 'Test Page Title')).not.toThrow();
209
215
  });
216
+
217
+ it('returns early when tracer is not initialized', () => {
218
+ const result = telemetry.trackPageView('/test');
219
+ expect(result).toBeUndefined();
220
+ });
210
221
  });
211
222
 
212
223
  describe('trackEvent', () => {
@@ -435,9 +446,10 @@ describe('Telemetry with traces disabled', () => {
435
446
  });
436
447
 
437
448
  it('initTelemetry returns early when tracing is disabled', () => {
438
- const consoleSpy = vi.spyOn(console, 'log');
439
- telemetry.initTelemetry();
440
- expect(consoleSpy).toHaveBeenCalledWith('[Telemetry] Tracing is disabled');
449
+ // Should return early without throwing when traces are disabled
450
+ expect(() => telemetry.initTelemetry({ tracesEnabled: false })).not.toThrow();
451
+ // Verify tracer is not initialized (trackPageView should be a no-op)
452
+ expect(() => telemetry.trackPageView('/test')).not.toThrow();
441
453
  });
442
454
  });
443
455
 
@@ -659,3 +671,474 @@ describe('Telemetry beforeunload event', () => {
659
671
  }
660
672
  });
661
673
  });
674
+
675
+ describe('getTelemetryConfig', () => {
676
+ let telemetry;
677
+
678
+ beforeEach(async () => {
679
+ vi.resetModules();
680
+
681
+ global.window = {
682
+ location: {
683
+ pathname: '/performers',
684
+ search: '',
685
+ hash: '',
686
+ href: 'http://localhost/performers',
687
+ },
688
+ addEventListener: vi.fn(),
689
+ __TRACE_CONTEXT__: null,
690
+ };
691
+
692
+ global.document = {
693
+ readyState: 'complete',
694
+ title: 'Test',
695
+ referrer: '',
696
+ addEventListener: vi.fn(),
697
+ };
698
+
699
+ global.navigator = {
700
+ userAgent: 'test',
701
+ language: 'en',
702
+ platform: 'test',
703
+ };
704
+
705
+ telemetry = await import('./telemetry.js');
706
+ });
707
+
708
+ afterEach(() => {
709
+ vi.unstubAllEnvs();
710
+ vi.clearAllMocks();
711
+ });
712
+
713
+ it('exports getTelemetryConfig function', () => {
714
+ expect(telemetry.getTelemetryConfig).toBeDefined();
715
+ expect(typeof telemetry.getTelemetryConfig).toBe('function');
716
+ });
717
+
718
+ it('returns telemetry configuration object', () => {
719
+ const config = telemetry.getTelemetryConfig();
720
+ expect(config).toBeDefined();
721
+ expect(config).toHaveProperty('serviceName');
722
+ expect(config).toHaveProperty('serviceVersion');
723
+ expect(config).toHaveProperty('environment');
724
+ expect(config).toHaveProperty('tracesEnabled');
725
+ });
726
+ });
727
+
728
+ describe('setupAutoTelemetry', () => {
729
+ let telemetry;
730
+
731
+ beforeEach(async () => {
732
+ vi.resetModules();
733
+
734
+ global.window = {
735
+ location: {
736
+ pathname: '/performers',
737
+ search: '',
738
+ hash: '',
739
+ href: 'http://localhost/performers',
740
+ },
741
+ addEventListener: vi.fn(),
742
+ __TRACE_CONTEXT__: null,
743
+ };
744
+
745
+ global.document = {
746
+ readyState: 'complete',
747
+ title: 'Test',
748
+ referrer: '',
749
+ addEventListener: vi.fn(),
750
+ };
751
+
752
+ global.navigator = {
753
+ userAgent: 'test',
754
+ language: 'en',
755
+ platform: 'test',
756
+ };
757
+
758
+ telemetry = await import('./telemetry.js');
759
+ });
760
+
761
+ afterEach(() => {
762
+ vi.unstubAllEnvs();
763
+ vi.clearAllMocks();
764
+ });
765
+
766
+ it('exports setupAutoTelemetry function', () => {
767
+ expect(telemetry.setupAutoTelemetry).toBeDefined();
768
+ expect(typeof telemetry.setupAutoTelemetry).toBe('function');
769
+ });
770
+
771
+ it('can be called without errors', () => {
772
+ expect(() => telemetry.setupAutoTelemetry()).not.toThrow();
773
+ });
774
+
775
+ it('does not throw when window is undefined', () => {
776
+ const tempWindow = global.window;
777
+ delete global.window;
778
+
779
+ expect(() => telemetry.setupAutoTelemetry()).not.toThrow();
780
+
781
+ global.window = tempWindow;
782
+ });
783
+ });
784
+
785
+ describe('Telemetry tracking with initialized tracer', () => {
786
+ let telemetry;
787
+ let mockSpan;
788
+ let mockTracer;
789
+ let mockTracerProvider;
790
+
791
+ beforeEach(async () => {
792
+ vi.resetModules();
793
+
794
+ // Create mock span
795
+ mockSpan = {
796
+ setAttribute: vi.fn().mockReturnThis(),
797
+ setStatus: vi.fn().mockReturnThis(),
798
+ recordException: vi.fn().mockReturnThis(),
799
+ end: vi.fn(),
800
+ name: 'test-span',
801
+ };
802
+
803
+ // Create mock tracer
804
+ mockTracer = {
805
+ startSpan: vi.fn().mockReturnValue(mockSpan),
806
+ };
807
+
808
+ // Create mock tracer provider
809
+ mockTracerProvider = {
810
+ addSpanProcessor: vi.fn(),
811
+ register: vi.fn(),
812
+ getTracer: vi.fn().mockReturnValue(mockTracer),
813
+ shutdown: vi.fn().mockResolvedValue(undefined),
814
+ };
815
+
816
+ // Mock WebTracerProvider to return our mock
817
+ vi.doMock('@opentelemetry/sdk-trace-web', () => ({
818
+ WebTracerProvider: vi.fn().mockImplementation(() => mockTracerProvider),
819
+ }));
820
+
821
+ // Mock registerInstrumentations to avoid instrumentation errors
822
+ vi.doMock('@opentelemetry/instrumentation', () => ({
823
+ registerInstrumentations: vi.fn(),
824
+ }));
825
+
826
+ global.window = {
827
+ location: {
828
+ pathname: '/performers',
829
+ search: '?test=1',
830
+ hash: '#section',
831
+ href: 'http://localhost/performers?test=1#section',
832
+ },
833
+ addEventListener: vi.fn(),
834
+ __TRACE_CONTEXT__: null,
835
+ };
836
+
837
+ global.document = {
838
+ readyState: 'complete',
839
+ title: 'Test Page',
840
+ referrer: 'http://localhost/',
841
+ addEventListener: vi.fn(),
842
+ };
843
+
844
+ global.navigator = {
845
+ userAgent: 'test-agent',
846
+ language: 'en-US',
847
+ platform: 'test-platform',
848
+ };
849
+
850
+ telemetry = await import('./telemetry.js');
851
+
852
+ // Initialize telemetry to set up tracer
853
+ telemetry.initTelemetry();
854
+ });
855
+
856
+ afterEach(() => {
857
+ vi.clearAllMocks();
858
+ vi.doUnmock('@opentelemetry/sdk-trace-web');
859
+ vi.doUnmock('@opentelemetry/instrumentation');
860
+ });
861
+
862
+ describe('trackPageView with tracer', () => {
863
+ it('creates a span with page attributes', () => {
864
+ telemetry.trackPageView('/test-page', 'Test Title');
865
+
866
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('page_view', expect.objectContaining({
867
+ attributes: expect.objectContaining({
868
+ 'page.path': '/test-page',
869
+ 'page.title': 'Test Title',
870
+ }),
871
+ }));
872
+ expect(mockSpan.end).toHaveBeenCalled();
873
+ });
874
+
875
+ it('uses document title when pageTitle is not provided', () => {
876
+ telemetry.trackPageView('/test-page');
877
+
878
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('page_view', expect.objectContaining({
879
+ attributes: expect.objectContaining({
880
+ 'page.title': 'Test Page',
881
+ }),
882
+ }));
883
+ });
884
+ });
885
+
886
+ describe('trackEvent with tracer', () => {
887
+ it('creates a span with event attributes', () => {
888
+ telemetry.trackEvent('button_click', { button_id: 'submit' });
889
+
890
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('event.button_click', expect.objectContaining({
891
+ attributes: expect.objectContaining({
892
+ 'event.name': 'button_click',
893
+ 'button_id': 'submit',
894
+ }),
895
+ }));
896
+ expect(mockSpan.end).toHaveBeenCalled();
897
+ });
898
+
899
+ it('creates a span without additional attributes', () => {
900
+ telemetry.trackEvent('page_load');
901
+
902
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('event.page_load', expect.objectContaining({
903
+ attributes: expect.objectContaining({
904
+ 'event.name': 'page_load',
905
+ }),
906
+ }));
907
+ });
908
+ });
909
+
910
+ describe('trackError with tracer', () => {
911
+ it('creates a span with error details', () => {
912
+ const error = new Error('Test error');
913
+ error.stack = 'Error: Test error\n at line 1';
914
+
915
+ telemetry.trackError(error, { component: 'TestComponent' });
916
+
917
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('error', expect.objectContaining({
918
+ attributes: expect.objectContaining({
919
+ 'error.message': 'Test error',
920
+ 'error.stack': error.stack,
921
+ 'error.type': 'Error',
922
+ }),
923
+ }));
924
+ expect(mockSpan.setStatus).toHaveBeenCalledWith({ code: 2, message: 'Test error' });
925
+ expect(mockSpan.recordException).toHaveBeenCalledWith(error);
926
+ expect(mockSpan.end).toHaveBeenCalled();
927
+ });
928
+
929
+ it('handles error without stack trace', () => {
930
+ const error = { message: 'Simple error', name: 'SimpleError' };
931
+
932
+ telemetry.trackError(error);
933
+
934
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('error', expect.objectContaining({
935
+ attributes: expect.objectContaining({
936
+ 'error.message': 'Simple error',
937
+ 'error.type': 'SimpleError',
938
+ }),
939
+ }));
940
+ });
941
+
942
+ it('handles string error', () => {
943
+ telemetry.trackError('String error');
944
+
945
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('error', expect.objectContaining({
946
+ attributes: expect.objectContaining({
947
+ 'error.message': 'String error',
948
+ }),
949
+ }));
950
+ });
951
+ });
952
+
953
+ describe('trackAPICall with tracer', () => {
954
+ it('creates a span for successful API call', () => {
955
+ telemetry.trackAPICall('GET', '/api/users', 200, 150, { user_id: '123' });
956
+
957
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('api_call', expect.objectContaining({
958
+ attributes: expect.objectContaining({
959
+ 'http.method': 'GET',
960
+ 'http.url': '/api/users',
961
+ 'http.status_code': 200,
962
+ 'http.duration_ms': 150,
963
+ 'user_id': '123',
964
+ }),
965
+ }));
966
+ expect(mockSpan.setStatus).toHaveBeenCalledWith({ code: 0 });
967
+ expect(mockSpan.end).toHaveBeenCalled();
968
+ });
969
+
970
+ it('creates a span for failed API call with 4xx', () => {
971
+ telemetry.trackAPICall('GET', '/api/users', 404, 50);
972
+
973
+ expect(mockSpan.setStatus).toHaveBeenCalledWith({ code: 2 });
974
+ });
975
+
976
+ it('creates a span for failed API call with 5xx', () => {
977
+ telemetry.trackAPICall('POST', '/api/users', 500, 100);
978
+
979
+ expect(mockSpan.setStatus).toHaveBeenCalledWith({ code: 2 });
980
+ });
981
+ });
982
+
983
+ describe('trackUserAction with tracer', () => {
984
+ it('creates a span for user action', () => {
985
+ telemetry.trackUserAction('login', { method: 'email' });
986
+
987
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('user.login', expect.objectContaining({
988
+ attributes: expect.objectContaining({
989
+ 'user.action': 'login',
990
+ 'user.metadata': JSON.stringify({ method: 'email' }),
991
+ }),
992
+ }));
993
+ expect(mockSpan.end).toHaveBeenCalled();
994
+ });
995
+
996
+ it('creates a span without metadata', () => {
997
+ telemetry.trackUserAction('logout');
998
+
999
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('user.logout', expect.objectContaining({
1000
+ attributes: expect.objectContaining({
1001
+ 'user.action': 'logout',
1002
+ }),
1003
+ }));
1004
+ });
1005
+ });
1006
+
1007
+ describe('trackPerformerAction with tracer', () => {
1008
+ it('creates a span for performer action', () => {
1009
+ telemetry.trackPerformerAction('profile_update', { field: 'bio' });
1010
+
1011
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('performer.profile_update', expect.objectContaining({
1012
+ attributes: expect.objectContaining({
1013
+ 'performer.action': 'profile_update',
1014
+ 'performer.metadata': JSON.stringify({ field: 'bio' }),
1015
+ }),
1016
+ }));
1017
+ expect(mockSpan.end).toHaveBeenCalled();
1018
+ });
1019
+
1020
+ it('creates a span without metadata', () => {
1021
+ telemetry.trackPerformerAction('gig_accepted');
1022
+
1023
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('performer.gig_accepted', expect.objectContaining({
1024
+ attributes: expect.objectContaining({
1025
+ 'performer.action': 'gig_accepted',
1026
+ }),
1027
+ }));
1028
+ });
1029
+ });
1030
+
1031
+ describe('shutdownTelemetry with tracer', () => {
1032
+ it('shuts down successfully', async () => {
1033
+ await telemetry.shutdownTelemetry();
1034
+
1035
+ expect(mockTracerProvider.shutdown).toHaveBeenCalled();
1036
+ // Debug logging is now controlled by consoleDebug config flag
1037
+ });
1038
+ });
1039
+ });
1040
+
1041
+ describe('connectWithSSRTrace functionality', () => {
1042
+ let telemetry;
1043
+ let mockSpan;
1044
+ let mockTracer;
1045
+ let mockTracerProvider;
1046
+
1047
+ beforeEach(async () => {
1048
+ vi.resetModules();
1049
+
1050
+ // Create mock span
1051
+ mockSpan = {
1052
+ setAttribute: vi.fn().mockReturnThis(),
1053
+ setStatus: vi.fn().mockReturnThis(),
1054
+ recordException: vi.fn().mockReturnThis(),
1055
+ end: vi.fn(),
1056
+ name: 'client.init',
1057
+ };
1058
+
1059
+ // Create mock tracer
1060
+ mockTracer = {
1061
+ startSpan: vi.fn().mockReturnValue(mockSpan),
1062
+ };
1063
+
1064
+ // Create mock tracer provider
1065
+ mockTracerProvider = {
1066
+ addSpanProcessor: vi.fn(),
1067
+ register: vi.fn(),
1068
+ getTracer: vi.fn().mockReturnValue(mockTracer),
1069
+ shutdown: vi.fn().mockResolvedValue(undefined),
1070
+ };
1071
+
1072
+ // Mock WebTracerProvider to return our mock
1073
+ vi.doMock('@opentelemetry/sdk-trace-web', () => ({
1074
+ WebTracerProvider: vi.fn().mockImplementation(() => mockTracerProvider),
1075
+ }));
1076
+
1077
+ // Mock registerInstrumentations
1078
+ vi.doMock('@opentelemetry/instrumentation', () => ({
1079
+ registerInstrumentations: vi.fn(),
1080
+ }));
1081
+
1082
+ global.window = {
1083
+ location: {
1084
+ pathname: '/performers',
1085
+ search: '',
1086
+ hash: '',
1087
+ href: 'http://localhost/performers',
1088
+ },
1089
+ addEventListener: vi.fn(),
1090
+ __TRACE_CONTEXT__: {
1091
+ traceId: 'test-trace-123',
1092
+ spanId: 'test-span-456',
1093
+ traceFlags: 1,
1094
+ },
1095
+ };
1096
+
1097
+ global.document = {
1098
+ readyState: 'complete',
1099
+ title: 'Test Page',
1100
+ referrer: 'http://localhost/',
1101
+ addEventListener: vi.fn(),
1102
+ };
1103
+
1104
+ global.navigator = {
1105
+ userAgent: 'test-agent',
1106
+ language: 'en-US',
1107
+ platform: 'test-platform',
1108
+ };
1109
+
1110
+ telemetry = await import('./telemetry.js');
1111
+ });
1112
+
1113
+ afterEach(() => {
1114
+ vi.clearAllMocks();
1115
+ vi.doUnmock('@opentelemetry/sdk-trace-web');
1116
+ vi.doUnmock('@opentelemetry/instrumentation');
1117
+ });
1118
+
1119
+ it('connects with SSR trace context when available', () => {
1120
+ // Manually call initTelemetry which should also trigger connectWithSSRTrace
1121
+ telemetry.initTelemetry();
1122
+ telemetry.setupAutoTelemetry();
1123
+
1124
+ // Check that a span was created with SSR trace context
1125
+ expect(mockTracer.startSpan).toHaveBeenCalledWith('client.init', expect.objectContaining({
1126
+ attributes: expect.objectContaining({
1127
+ 'span.kind': 'client',
1128
+ 'client.type': 'browser',
1129
+ 'ssr.trace_id': 'test-trace-123',
1130
+ 'ssr.span_id': 'test-span-456',
1131
+ }),
1132
+ links: expect.arrayContaining([
1133
+ expect.objectContaining({
1134
+ context: expect.objectContaining({
1135
+ traceId: 'test-trace-123',
1136
+ spanId: 'test-span-456',
1137
+ traceFlags: 1,
1138
+ }),
1139
+ }),
1140
+ ]),
1141
+ }));
1142
+ expect(mockSpan.end).toHaveBeenCalled();
1143
+ });
1144
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=colors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.test.d.ts","sourceRoot":"","sources":["../../../src/lib/tokens/__tests__/colors.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,152 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { backgroundColors, textColors, brandColors, accentColors, strokeColors, uiColors, sidebarColors, lightColors, darkColors, colors, legacyAliases } from '../colors';
3
+ describe('Background Colors', () => {
4
+ it('has light theme background colors', () => {
5
+ expect(backgroundColors.light['bg-primary']).toBe('0 0% 100%');
6
+ expect(backgroundColors.light['bg-secondary']).toBe('220 7% 97%');
7
+ expect(backgroundColors.light['bg-tertiary']).toBe('220 7% 94%');
8
+ expect(backgroundColors.light['bg-quaternary']).toBe('220 6% 91%');
9
+ });
10
+ it('has dark theme background colors', () => {
11
+ expect(backgroundColors.dark['bg-primary']).toBe('220 20% 18%');
12
+ expect(backgroundColors.dark['bg-secondary']).toBe('221 50% 10%');
13
+ expect(backgroundColors.dark['bg-tertiary']).toBe('221 50% 6%');
14
+ expect(backgroundColors.dark['bg-quaternary']).toBe('0 0% 0%');
15
+ });
16
+ });
17
+ describe('Text Colors', () => {
18
+ it('has light theme text colors', () => {
19
+ expect(textColors.light['text-primary']).toBe('221 50% 10%');
20
+ expect(textColors.light['text-secondary']).toBe('220 20% 18%');
21
+ expect(textColors.light['text-tertiary']).toBe('221 9% 44%');
22
+ expect(textColors.light['text-head']).toBe('221 9% 44%');
23
+ });
24
+ it('has dark theme text colors', () => {
25
+ expect(textColors.dark['text-primary']).toBe('220 7% 97%');
26
+ expect(textColors.dark['text-secondary']).toBe('220 7% 94%');
27
+ expect(textColors.dark['text-tertiary']).toBe('220 6% 91%');
28
+ expect(textColors.dark['text-head']).toBe('220 9% 70%');
29
+ });
30
+ });
31
+ describe('Brand Colors', () => {
32
+ it('has light theme brand color', () => {
33
+ expect(brandColors.light['brand-primary']).toBe('209 99% 50%');
34
+ });
35
+ it('has dark theme brand color', () => {
36
+ expect(brandColors.dark['brand-primary']).toBe('220 89% 63%');
37
+ });
38
+ });
39
+ describe('Accent Colors', () => {
40
+ it('has light theme accent colors', () => {
41
+ expect(accentColors.light['accent-warning']).toBe('28 100% 59%');
42
+ expect(accentColors.light['accent-danger']).toBe('0 100% 70%');
43
+ expect(accentColors.light['accent-success']).toBe('131 77% 35%');
44
+ });
45
+ it('has dark theme accent colors', () => {
46
+ expect(accentColors.dark['accent-warning']).toBe('30 100% 70%');
47
+ expect(accentColors.dark['accent-danger']).toBe('0 100% 70%');
48
+ expect(accentColors.dark['accent-success']).toBe('142 71% 45%');
49
+ });
50
+ });
51
+ describe('Stroke Colors', () => {
52
+ it('has light theme stroke colors', () => {
53
+ expect(strokeColors.light['stroke-primary']).toBe('216 6% 84%');
54
+ expect(strokeColors.light['stroke-secondary']).toBe('216 6% 84%');
55
+ expect(strokeColors.light['border']).toBe('220 13% 91%');
56
+ });
57
+ it('has dark theme stroke colors', () => {
58
+ expect(strokeColors.dark['stroke-primary']).toBe('220 20% 28%');
59
+ expect(strokeColors.dark['stroke-secondary']).toBe('220 20% 28%');
60
+ expect(strokeColors.dark['border']).toBe('215 27.9% 16.9%');
61
+ });
62
+ });
63
+ describe('UI Colors', () => {
64
+ it('has light theme UI colors', () => {
65
+ expect(uiColors.light['card']).toBeDefined();
66
+ expect(uiColors.light['popover']).toBeDefined();
67
+ expect(uiColors.light['muted']).toBeDefined();
68
+ expect(uiColors.light['hover-primary']).toBeDefined();
69
+ });
70
+ it('has dark theme UI colors', () => {
71
+ expect(uiColors.dark['card']).toBeDefined();
72
+ expect(uiColors.dark['popover']).toBeDefined();
73
+ expect(uiColors.dark['muted']).toBeDefined();
74
+ expect(uiColors.dark['hover-primary']).toBeDefined();
75
+ });
76
+ });
77
+ describe('Sidebar Colors', () => {
78
+ it('has light theme sidebar colors', () => {
79
+ expect(sidebarColors.light['sidebar-background']).toBeDefined();
80
+ expect(sidebarColors.light['sidebar-foreground']).toBeDefined();
81
+ expect(sidebarColors.light['sidebar-border']).toBeDefined();
82
+ expect(sidebarColors.light['sidebar-primary']).toBeDefined();
83
+ expect(sidebarColors.light['sidebar-primary-foreground']).toBeDefined();
84
+ });
85
+ it('has dark theme sidebar colors', () => {
86
+ expect(sidebarColors.dark['sidebar-background']).toBeDefined();
87
+ expect(sidebarColors.dark['sidebar-foreground']).toBeDefined();
88
+ expect(sidebarColors.dark['sidebar-border']).toBeDefined();
89
+ expect(sidebarColors.dark['sidebar-primary']).toBeDefined();
90
+ expect(sidebarColors.dark['sidebar-primary-foreground']).toBeDefined();
91
+ });
92
+ });
93
+ describe('Combined Color Objects', () => {
94
+ it('lightColors contains all color categories', () => {
95
+ // Background
96
+ expect(lightColors['bg-primary']).toBeDefined();
97
+ // Text
98
+ expect(lightColors['text-primary']).toBeDefined();
99
+ // Brand
100
+ expect(lightColors['brand-primary']).toBeDefined();
101
+ // Accent
102
+ expect(lightColors['accent-warning']).toBeDefined();
103
+ // Stroke
104
+ expect(lightColors['stroke-primary']).toBeDefined();
105
+ // UI
106
+ expect(lightColors['card']).toBeDefined();
107
+ // Sidebar
108
+ expect(lightColors['sidebar-background']).toBeDefined();
109
+ });
110
+ it('darkColors contains all color categories', () => {
111
+ expect(darkColors['bg-primary']).toBeDefined();
112
+ expect(darkColors['text-primary']).toBeDefined();
113
+ expect(darkColors['brand-primary']).toBeDefined();
114
+ expect(darkColors['accent-warning']).toBeDefined();
115
+ expect(darkColors['stroke-primary']).toBeDefined();
116
+ expect(darkColors['card']).toBeDefined();
117
+ expect(darkColors['sidebar-background']).toBeDefined();
118
+ });
119
+ it('colors object has light and dark themes', () => {
120
+ expect(colors.light).toEqual(lightColors);
121
+ expect(colors.dark).toEqual(darkColors);
122
+ });
123
+ it('colors object has legacy aliases', () => {
124
+ expect(colors.aliases).toEqual(legacyAliases);
125
+ });
126
+ });
127
+ describe('Legacy Aliases', () => {
128
+ it('maps PascalCase to kebab-case', () => {
129
+ expect(legacyAliases['BG-Primary']).toBe('bg-primary');
130
+ expect(legacyAliases['BG-Secondary']).toBe('bg-secondary');
131
+ expect(legacyAliases['Text-Primary']).toBe('text-primary');
132
+ expect(legacyAliases['Brand-Primary']).toBe('brand-primary');
133
+ expect(legacyAliases['Accent-Warning']).toBe('accent-warning');
134
+ expect(legacyAliases['Accent-Danger']).toBe('accent-danger');
135
+ expect(legacyAliases['Accent-Success']).toBe('accent-success');
136
+ expect(legacyAliases['Stroke-Primary']).toBe('stroke-primary');
137
+ });
138
+ it('has typo-preserved legacy alias for tertiary', () => {
139
+ // Note: Original has typo "Tartiary"
140
+ expect(legacyAliases['Text-Tartiary']).toBe('text-tertiary');
141
+ });
142
+ });
143
+ describe('Color Value Format', () => {
144
+ it('uses HSL channel format (H S% L%)', () => {
145
+ // All values should be in "H S% L%" format for Tailwind compatibility
146
+ const hslPattern = /^\d+(\.\d+)?\s+\d+(\.\d+)?%\s+\d+(\.\d+)?%$/;
147
+ expect(lightColors['bg-primary']).toMatch(hslPattern);
148
+ expect(lightColors['text-primary']).toMatch(hslPattern);
149
+ expect(darkColors['bg-primary']).toMatch(hslPattern);
150
+ expect(darkColors['text-primary']).toMatch(hslPattern);
151
+ });
152
+ });