tide-design-system 2.5.13 → 2.5.14

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 (392) hide show
  1. package/dist/tide-design-system.d.ts +2742 -0
  2. package/dist/tide-design-system.js +2 -2
  3. package/package.json +13 -2
  4. package/.eslintrc.cjs +0 -119
  5. package/.github/workflows/publish-release.yml +0 -38
  6. package/.storybook/main.ts +0 -70
  7. package/.storybook/preview.ts +0 -256
  8. package/docs/assets/full-bleed.gif +0 -0
  9. package/docs/assets/layout-grid-default.webp +0 -0
  10. package/docs/assets/layout-grid-fluid.webp +0 -0
  11. package/docs/assets/layout-grid.webp +0 -0
  12. package/docs/assets/native-input-validation.png +0 -0
  13. package/docs/configuation.md +0 -47
  14. package/docs/development.md +0 -163
  15. package/docs/figma.md +0 -43
  16. package/docs/forms.md +0 -484
  17. package/docs/grid-layout.md +0 -83
  18. package/docs/images.md +0 -50
  19. package/docs/integration-full.md +0 -84
  20. package/docs/integration-partial.md +0 -39
  21. package/docs/migration.md +0 -74
  22. package/docs/storybook.md +0 -44
  23. package/docs/style-guide.md +0 -22
  24. package/docs/toast.md +0 -61
  25. package/docs/token-cheatsheet.md +0 -63
  26. package/docs/upgrading.md +0 -188
  27. package/docs/workflows.md +0 -20
  28. package/index.html +0 -14
  29. package/index.ts +0 -201
  30. package/netlify.toml +0 -3
  31. package/src/assets/css/fonts.css +0 -36
  32. package/src/assets/css/grid-layout.css +0 -34
  33. package/src/assets/css/main.css +0 -5
  34. package/src/assets/css/realm/aero.css +0 -25
  35. package/src/assets/css/realm/atv.css +0 -25
  36. package/src/assets/css/realm/boatmart.css +0 -25
  37. package/src/assets/css/realm/cycle.css +0 -24
  38. package/src/assets/css/realm/equipment.css +0 -25
  39. package/src/assets/css/realm/pwc.css +0 -25
  40. package/src/assets/css/realm/rv.css +0 -25
  41. package/src/assets/css/realm/snow.css +0 -25
  42. package/src/assets/css/realm/truck.css +0 -25
  43. package/src/assets/css/reset.css +0 -99
  44. package/src/assets/css/storybook.css +0 -18
  45. package/src/assets/css/utilities-base.css +0 -574
  46. package/src/assets/css/utilities-responsive.css +0 -2307
  47. package/src/assets/css/utilities.css +0 -16
  48. package/src/assets/css/variables.css +0 -223
  49. package/src/assets/svg/branding/logo/logo-aero.svg +0 -4
  50. package/src/assets/svg/branding/logo/logo-atv.svg +0 -6
  51. package/src/assets/svg/branding/logo/logo-boatmart.svg +0 -4
  52. package/src/assets/svg/branding/logo/logo-cycle.svg +0 -4
  53. package/src/assets/svg/branding/logo/logo-equipment.svg +0 -4
  54. package/src/assets/svg/branding/logo/logo-pwc.svg +0 -4
  55. package/src/assets/svg/branding/logo/logo-rv.svg +0 -6
  56. package/src/assets/svg/branding/logo/logo-snow.svg +0 -4
  57. package/src/assets/svg/branding/logo/logo-truck.svg +0 -5
  58. package/src/assets/svg/branding/mark/mark-aero.svg +0 -3
  59. package/src/assets/svg/branding/mark/mark-atv.svg +0 -4
  60. package/src/assets/svg/branding/mark/mark-boatmart.svg +0 -3
  61. package/src/assets/svg/branding/mark/mark-cycle.svg +0 -3
  62. package/src/assets/svg/branding/mark/mark-equipment.svg +0 -3
  63. package/src/assets/svg/branding/mark/mark-pwc.svg +0 -3
  64. package/src/assets/svg/branding/mark/mark-rv.svg +0 -4
  65. package/src/assets/svg/branding/mark/mark-snow.svg +0 -3
  66. package/src/assets/svg/branding/mark/mark-truck.svg +0 -4
  67. package/src/assets/svg/icons/IconAccountBalance.svg +0 -5
  68. package/src/assets/svg/icons/IconAcute.svg +0 -3
  69. package/src/assets/svg/icons/IconAdd.svg +0 -3
  70. package/src/assets/svg/icons/IconAiDescription.svg +0 -7
  71. package/src/assets/svg/icons/IconAlignSpaceEven.svg +0 -3
  72. package/src/assets/svg/icons/IconApplePay.svg +0 -5
  73. package/src/assets/svg/icons/IconArrowBack.svg +0 -3
  74. package/src/assets/svg/icons/IconArrowCycle.svg +0 -5
  75. package/src/assets/svg/icons/IconArrowForward.svg +0 -3
  76. package/src/assets/svg/icons/IconArrowRight.svg +0 -3
  77. package/src/assets/svg/icons/IconArrowUp.svg +0 -3
  78. package/src/assets/svg/icons/IconAssignment.svg +0 -3
  79. package/src/assets/svg/icons/IconAttachMoney.svg +0 -4
  80. package/src/assets/svg/icons/IconAutoRenew.svg +0 -3
  81. package/src/assets/svg/icons/IconAwardStar.svg +0 -5
  82. package/src/assets/svg/icons/IconBed.svg +0 -3
  83. package/src/assets/svg/icons/IconBolt.svg +0 -3
  84. package/src/assets/svg/icons/IconBookmark.svg +0 -5
  85. package/src/assets/svg/icons/IconBunkhouse.svg +0 -3
  86. package/src/assets/svg/icons/IconCalculate.svg +0 -3
  87. package/src/assets/svg/icons/IconCalendarMonth.svg +0 -5
  88. package/src/assets/svg/icons/IconCall.svg +0 -5
  89. package/src/assets/svg/icons/IconCallQuality.svg +0 -3
  90. package/src/assets/svg/icons/IconCarRental.svg +0 -3
  91. package/src/assets/svg/icons/IconCheck.svg +0 -3
  92. package/src/assets/svg/icons/IconChevronLeft.svg +0 -3
  93. package/src/assets/svg/icons/IconChevronRight.svg +0 -3
  94. package/src/assets/svg/icons/IconClear.svg +0 -3
  95. package/src/assets/svg/icons/IconClose.svg +0 -3
  96. package/src/assets/svg/icons/IconContract.svg +0 -3
  97. package/src/assets/svg/icons/IconCrash.svg +0 -3
  98. package/src/assets/svg/icons/IconDashboardCustomize.svg +0 -3
  99. package/src/assets/svg/icons/IconDelete.svg +0 -5
  100. package/src/assets/svg/icons/IconDiamond.svg +0 -5
  101. package/src/assets/svg/icons/IconDirectionsBoat.svg +0 -3
  102. package/src/assets/svg/icons/IconDomain.svg +0 -3
  103. package/src/assets/svg/icons/IconDraft.svg +0 -3
  104. package/src/assets/svg/icons/IconEdit.svg +0 -5
  105. package/src/assets/svg/icons/IconEngine.svg +0 -3
  106. package/src/assets/svg/icons/IconEngineering.svg +0 -3
  107. package/src/assets/svg/icons/IconError.svg +0 -5
  108. package/src/assets/svg/icons/IconExpandContent.svg +0 -3
  109. package/src/assets/svg/icons/IconExpandLess.svg +0 -3
  110. package/src/assets/svg/icons/IconExpandMore.svg +0 -3
  111. package/src/assets/svg/icons/IconFacebook.svg +0 -3
  112. package/src/assets/svg/icons/IconFavorite.svg +0 -5
  113. package/src/assets/svg/icons/IconFavoriteFilled.svg +0 -5
  114. package/src/assets/svg/icons/IconFlag.svg +0 -3
  115. package/src/assets/svg/icons/IconFormatBold.svg +0 -5
  116. package/src/assets/svg/icons/IconFormatItalic.svg +0 -3
  117. package/src/assets/svg/icons/IconFormatListBulleted.svg +0 -5
  118. package/src/assets/svg/icons/IconForum.svg +0 -5
  119. package/src/assets/svg/icons/IconGas.svg +0 -3
  120. package/src/assets/svg/icons/IconGavel.svg +0 -5
  121. package/src/assets/svg/icons/IconGears.svg +0 -3
  122. package/src/assets/svg/icons/IconGlobeLocationPin.svg +0 -3
  123. package/src/assets/svg/icons/IconGoogle.svg +0 -18
  124. package/src/assets/svg/icons/IconGooglePay.svg +0 -5
  125. package/src/assets/svg/icons/IconGrid.svg +0 -3
  126. package/src/assets/svg/icons/IconHandshake.svg +0 -3
  127. package/src/assets/svg/icons/IconHandyman.svg +0 -3
  128. package/src/assets/svg/icons/IconHeight.svg +0 -3
  129. package/src/assets/svg/icons/IconHelp.svg +0 -5
  130. package/src/assets/svg/icons/IconInfo.svg +0 -5
  131. package/src/assets/svg/icons/IconInformation.svg +0 -3
  132. package/src/assets/svg/icons/IconInsertText.svg +0 -5
  133. package/src/assets/svg/icons/IconInstagram.svg +0 -3
  134. package/src/assets/svg/icons/IconIosShare.svg +0 -5
  135. package/src/assets/svg/icons/IconLayout.svg +0 -3
  136. package/src/assets/svg/icons/IconLevellingJack.svg +0 -3
  137. package/src/assets/svg/icons/IconLinkedIn.svg +0 -3
  138. package/src/assets/svg/icons/IconLocalShipping.svg +0 -5
  139. package/src/assets/svg/icons/IconLock.svg +0 -5
  140. package/src/assets/svg/icons/IconMail.svg +0 -5
  141. package/src/assets/svg/icons/IconMenu.svg +0 -3
  142. package/src/assets/svg/icons/IconMoneyBag.svg +0 -3
  143. package/src/assets/svg/icons/IconMoreHoriz.svg +0 -5
  144. package/src/assets/svg/icons/IconMove.svg +0 -3
  145. package/src/assets/svg/icons/IconNotifications.svg +0 -5
  146. package/src/assets/svg/icons/IconOdometer.svg +0 -3
  147. package/src/assets/svg/icons/IconOpenInNew.svg +0 -5
  148. package/src/assets/svg/icons/IconPalette.svg +0 -5
  149. package/src/assets/svg/icons/IconPaypal.svg +0 -5
  150. package/src/assets/svg/icons/IconPerson.svg +0 -5
  151. package/src/assets/svg/icons/IconPersonSearch.svg +0 -3
  152. package/src/assets/svg/icons/IconPhotoCamera.svg +0 -5
  153. package/src/assets/svg/icons/IconPinterest.svg +0 -5
  154. package/src/assets/svg/icons/IconPlayArrow.svg +0 -3
  155. package/src/assets/svg/icons/IconPolicy.svg +0 -3
  156. package/src/assets/svg/icons/IconPower.svg +0 -3
  157. package/src/assets/svg/icons/IconPowerOff.svg +0 -3
  158. package/src/assets/svg/icons/IconPriorityHigh.svg +0 -3
  159. package/src/assets/svg/icons/IconRemove.svg +0 -3
  160. package/src/assets/svg/icons/IconRequestQuote.svg +0 -3
  161. package/src/assets/svg/icons/IconResetWrench.svg +0 -3
  162. package/src/assets/svg/icons/IconRoad.svg +0 -3
  163. package/src/assets/svg/icons/IconRoundedCorner.svg +0 -5
  164. package/src/assets/svg/icons/IconRuler.svg +0 -3
  165. package/src/assets/svg/icons/IconSailing.svg +0 -3
  166. package/src/assets/svg/icons/IconSchool.svg +0 -3
  167. package/src/assets/svg/icons/IconSearch.svg +0 -5
  168. package/src/assets/svg/icons/IconSeating.svg +0 -3
  169. package/src/assets/svg/icons/IconSell.svg +0 -5
  170. package/src/assets/svg/icons/IconSensors.svg +0 -3
  171. package/src/assets/svg/icons/IconSettings.svg +0 -3
  172. package/src/assets/svg/icons/IconShare.svg +0 -5
  173. package/src/assets/svg/icons/IconShieldCheck.svg +0 -3
  174. package/src/assets/svg/icons/IconShoppingCart.svg +0 -5
  175. package/src/assets/svg/icons/IconSleeps.svg +0 -3
  176. package/src/assets/svg/icons/IconSms.svg +0 -5
  177. package/src/assets/svg/icons/IconSnowflake.svg +0 -3
  178. package/src/assets/svg/icons/IconStar.svg +0 -5
  179. package/src/assets/svg/icons/IconStarFilled.svg +0 -3
  180. package/src/assets/svg/icons/IconStarHalf.svg +0 -3
  181. package/src/assets/svg/icons/IconSummarize.svg +0 -3
  182. package/src/assets/svg/icons/IconSwapHoriz.svg +0 -3
  183. package/src/assets/svg/icons/IconSwapVert.svg +0 -5
  184. package/src/assets/svg/icons/IconThreeDRotation.svg +0 -18
  185. package/src/assets/svg/icons/IconThumbUp.svg +0 -3
  186. package/src/assets/svg/icons/IconTrendingDown.svg +0 -5
  187. package/src/assets/svg/icons/IconTrophy.svg +0 -5
  188. package/src/assets/svg/icons/IconTune.svg +0 -5
  189. package/src/assets/svg/icons/IconTwitter.svg +0 -5
  190. package/src/assets/svg/icons/IconUmbrella.svg +0 -3
  191. package/src/assets/svg/icons/IconVerified.svg +0 -4
  192. package/src/assets/svg/icons/IconVideocam.svg +0 -5
  193. package/src/assets/svg/icons/IconViewInAr.svg +0 -5
  194. package/src/assets/svg/icons/IconVisibility.svg +0 -5
  195. package/src/assets/svg/icons/IconVolumeOff.svg +0 -5
  196. package/src/assets/svg/icons/IconVolumeOn.svg +0 -5
  197. package/src/assets/svg/icons/IconWarehouse.svg +0 -3
  198. package/src/assets/svg/icons/IconWarning.svg +0 -5
  199. package/src/assets/svg/icons/IconWater.svg +0 -3
  200. package/src/assets/svg/icons/IconWeight.svg +0 -3
  201. package/src/assets/svg/icons/IconWidth.svg +0 -3
  202. package/src/assets/svg/icons/IconWorkspacePremium.svg +0 -3
  203. package/src/assets/svg/icons/IconWrench.svg +0 -3
  204. package/src/assets/svg/icons/IconYoutube.svg +0 -5
  205. package/src/assets/svg/icons/realm/aero/IconAeroFlight.svg +0 -3
  206. package/src/assets/svg/icons/realm/aero/IconAeroHelicopter.svg +0 -3
  207. package/src/assets/svg/icons/realm/aero/IconAeroModeFan.svg +0 -3
  208. package/src/assets/svg/icons/realm/aero/IconAeroPlaneContrails.svg +0 -3
  209. package/src/assets/svg/icons/realm/atv/IconAtvAtv.svg +0 -3
  210. package/src/assets/svg/icons/realm/atv/IconAtvDuneBuggy.svg +0 -3
  211. package/src/assets/svg/icons/realm/atv/IconAtvGoKart.svg +0 -3
  212. package/src/assets/svg/icons/realm/atv/IconAtvGolfCart.svg +0 -3
  213. package/src/assets/svg/icons/realm/atv/IconAtvSandRail.svg +0 -3
  214. package/src/assets/svg/icons/realm/atv/IconAtvSideBySide.svg +0 -3
  215. package/src/assets/svg/icons/realm/atv/IconAtvTrailer.svg +0 -3
  216. package/src/assets/svg/icons/realm/boatmart/IconBoatmartPwc.svg +0 -3
  217. package/src/assets/svg/icons/realm/boatmart/IconBoatmartTrailer.svg +0 -3
  218. package/src/assets/svg/icons/realm/cycle/IconCycleMotorcycle.svg +0 -4
  219. package/src/assets/svg/icons/realm/cycle/IconCycleTrailer.svg +0 -3
  220. package/src/assets/svg/icons/realm/pwc/IconPwcPwc.svg +0 -3
  221. package/src/assets/svg/icons/realm/pwc/IconPwcSnowmobile.svg +0 -3
  222. package/src/assets/svg/icons/realm/pwc/IconPwcTrailer.svg +0 -3
  223. package/src/assets/svg/icons/realm/rv/IconRvClassA.svg +0 -3
  224. package/src/assets/svg/icons/realm/rv/IconRvClassB.svg +0 -3
  225. package/src/assets/svg/icons/realm/rv/IconRvClassC.svg +0 -3
  226. package/src/assets/svg/icons/realm/rv/IconRvDestinationTrailer.svg +0 -5
  227. package/src/assets/svg/icons/realm/rv/IconRvFifthWheel.svg +0 -3
  228. package/src/assets/svg/icons/realm/rv/IconRvFishHouse.svg +0 -3
  229. package/src/assets/svg/icons/realm/rv/IconRvParkModel.svg +0 -3
  230. package/src/assets/svg/icons/realm/rv/IconRvPopUpCamper.svg +0 -3
  231. package/src/assets/svg/icons/realm/rv/IconRvTeardropTrailer.svg +0 -4
  232. package/src/assets/svg/icons/realm/rv/IconRvTravelTrailer.svg +0 -3
  233. package/src/assets/svg/icons/realm/rv/IconRvTruckCamper.svg +0 -3
  234. package/src/assets/svg/icons/realm/snow/IconSnowMotorcycle.svg +0 -4
  235. package/src/assets/svg/icons/realm/snow/IconSnowPwc.svg +0 -3
  236. package/src/assets/svg/icons/realm/snow/IconSnowSideBySide.svg +0 -3
  237. package/src/assets/svg/icons/realm/snow/IconSnowSnowmobile.svg +0 -3
  238. package/src/assets/svg/icons/realm/snow/IconSnowTrailer.svg +0 -3
  239. package/src/components/InternalBaseLink.vue +0 -11
  240. package/src/components/TideAccordionItem.vue +0 -120
  241. package/src/components/TideAlert.vue +0 -186
  242. package/src/components/TideBadge.vue +0 -64
  243. package/src/components/TideBadgeTrustedPartner.vue +0 -52
  244. package/src/components/TideBadgeVerifiedVehicle.vue +0 -46
  245. package/src/components/TideBreadCrumbs.vue +0 -62
  246. package/src/components/TideButton.vue +0 -115
  247. package/src/components/TideButtonIcon.vue +0 -91
  248. package/src/components/TideButtonPagination.vue +0 -87
  249. package/src/components/TideButtonSave.vue +0 -109
  250. package/src/components/TideButtonSegmented.vue +0 -115
  251. package/src/components/TideCard.vue +0 -107
  252. package/src/components/TideCarousel.vue +0 -489
  253. package/src/components/TideChipAction.vue +0 -83
  254. package/src/components/TideChipFilter.vue +0 -71
  255. package/src/components/TideChipInput.vue +0 -54
  256. package/src/components/TideColumns.vue +0 -65
  257. package/src/components/TideDivider.vue +0 -43
  258. package/src/components/TideForm.vue +0 -33
  259. package/src/components/TideIcon.vue +0 -85
  260. package/src/components/TideImage.vue +0 -126
  261. package/src/components/TideImageBackground.vue +0 -69
  262. package/src/components/TideIndicator.vue +0 -63
  263. package/src/components/TideInputCheckbox.vue +0 -210
  264. package/src/components/TideInputCheckboxDeprecated.vue +0 -117
  265. package/src/components/TideInputRadio.vue +0 -115
  266. package/src/components/TideInputRadioDeprecated.vue +0 -119
  267. package/src/components/TideInputSelect.vue +0 -331
  268. package/src/components/TideInputSelectDeprecated.vue +0 -245
  269. package/src/components/TideInputSupportingText.vue +0 -44
  270. package/src/components/TideInputText.vue +0 -382
  271. package/src/components/TideInputTextDeprecated.vue +0 -327
  272. package/src/components/TideInputTextarea.vue +0 -235
  273. package/src/components/TideInputTextareaDeprecated.vue +0 -198
  274. package/src/components/TideLink.vue +0 -95
  275. package/src/components/TideMenuItem.vue +0 -83
  276. package/src/components/TideModal.vue +0 -281
  277. package/src/components/TidePagination.vue +0 -65
  278. package/src/components/TidePopover.vue +0 -198
  279. package/src/components/TideRating.vue +0 -109
  280. package/src/components/TideRealmLogo.vue +0 -154
  281. package/src/components/TideSeoLinks.vue +0 -59
  282. package/src/components/TideSheet.vue +0 -209
  283. package/src/components/TideSwitch.vue +0 -101
  284. package/src/components/TideTabs.vue +0 -63
  285. package/src/components/TideToaster.vue +0 -97
  286. package/src/composables/useTideConfig.ts +0 -23
  287. package/src/composables/useTideForm.ts +0 -25
  288. package/src/composables/useTideToaster.ts +0 -63
  289. package/src/contexts/sandbox/AppSandbox.vue +0 -7
  290. package/src/contexts/sandbox/app-sandbox.ts +0 -10
  291. package/src/stories/DemoCssUtilities.stories.ts +0 -154
  292. package/src/stories/DemoCssUtilitiesByTextInput.stories.ts +0 -61
  293. package/src/stories/FoundationsBorder.stories.ts +0 -272
  294. package/src/stories/FoundationsColor.stories.ts +0 -311
  295. package/src/stories/FoundationsFlexbox.stories.ts +0 -184
  296. package/src/stories/FoundationsGrid.stories.ts +0 -126
  297. package/src/stories/FoundationsMargin.stories.ts +0 -155
  298. package/src/stories/FoundationsPadding.stories.ts +0 -108
  299. package/src/stories/FoundationsShadow.stories.ts +0 -103
  300. package/src/stories/FoundationsTransparency.stories.ts +0 -114
  301. package/src/stories/FoundationsTypography.stories.ts +0 -212
  302. package/src/stories/Template.stories.ts +0 -73
  303. package/src/stories/TideAccordionItem.stories.ts +0 -91
  304. package/src/stories/TideAlert.stories.ts +0 -133
  305. package/src/stories/TideBadge.stories.ts +0 -90
  306. package/src/stories/TideBadgeTrustedPartner.stories.ts +0 -34
  307. package/src/stories/TideBadgeVerifiedVehicle.stories.ts +0 -22
  308. package/src/stories/TideBreadCrumbs.stories.ts +0 -42
  309. package/src/stories/TideButton.stories.ts +0 -132
  310. package/src/stories/TideButtonIcon.stories.ts +0 -109
  311. package/src/stories/TideButtonPagination.stories.ts +0 -99
  312. package/src/stories/TideButtonSave.stories.ts +0 -62
  313. package/src/stories/TideButtonSegmented.stories.ts +0 -110
  314. package/src/stories/TideCard.stories.ts +0 -102
  315. package/src/stories/TideCarousel.stories.ts +0 -219
  316. package/src/stories/TideChipAction.stories.ts +0 -81
  317. package/src/stories/TideChipFilter.stories.ts +0 -84
  318. package/src/stories/TideChipInput.stories.ts +0 -56
  319. package/src/stories/TideColumns.stories.ts +0 -89
  320. package/src/stories/TideDivider.stories.ts +0 -48
  321. package/src/stories/TideIcon.stories.ts +0 -31
  322. package/src/stories/TideImage.stories.ts +0 -124
  323. package/src/stories/TideImageBackground.stories.ts +0 -114
  324. package/src/stories/TideIndicator.stories.ts +0 -32
  325. package/src/stories/TideInputCheckbox.stories.ts +0 -138
  326. package/src/stories/TideInputRadio.stories.ts +0 -100
  327. package/src/stories/TideInputSelect.stories.ts +0 -244
  328. package/src/stories/TideInputText.stories.ts +0 -221
  329. package/src/stories/TideInputTextarea.stories.ts +0 -156
  330. package/src/stories/TideLink.stories.ts +0 -127
  331. package/src/stories/TideMenuItem.stories.ts +0 -117
  332. package/src/stories/TideModal.stories.ts +0 -219
  333. package/src/stories/TidePagination.stories.ts +0 -100
  334. package/src/stories/TidePopover.stories.ts +0 -101
  335. package/src/stories/TideRating.stories.ts +0 -114
  336. package/src/stories/TideRealmLogo.stories.ts +0 -93
  337. package/src/stories/TideSeoLinks.stories.ts +0 -68
  338. package/src/stories/TideSheet.stories.ts +0 -152
  339. package/src/stories/TideSwitch.stories.ts +0 -72
  340. package/src/stories/TideTabs.stories.ts +0 -114
  341. package/src/stories/TideToaster.stories.ts +0 -117
  342. package/src/stories/Welcome.mdx +0 -17
  343. package/src/types/Alert.ts +0 -8
  344. package/src/types/Badge.ts +0 -76
  345. package/src/types/BreadCrumb.ts +0 -5
  346. package/src/types/Breakpoint.ts +0 -18
  347. package/src/types/Card.ts +0 -7
  348. package/src/types/Element.ts +0 -13
  349. package/src/types/FieldDeprecated.ts +0 -92
  350. package/src/types/Form.ts +0 -1
  351. package/src/types/FormDeprecated.ts +0 -91
  352. package/src/types/Formatted.ts +0 -23
  353. package/src/types/Icon.ts +0 -202
  354. package/src/types/Image.ts +0 -7
  355. package/src/types/Link.ts +0 -5
  356. package/src/types/Orientation.ts +0 -6
  357. package/src/types/Priority.ts +0 -11
  358. package/src/types/Realm.ts +0 -14
  359. package/src/types/RealmLogo.ts +0 -23
  360. package/src/types/Select.ts +0 -9
  361. package/src/types/Size.ts +0 -13
  362. package/src/types/Source.ts +0 -6
  363. package/src/types/Storybook.ts +0 -253
  364. package/src/types/Styles.ts +0 -526
  365. package/src/types/Tab.ts +0 -5
  366. package/src/types/Target.ts +0 -6
  367. package/src/types/TextInput.ts +0 -28
  368. package/src/types/Toast.ts +0 -21
  369. package/src/types/Type.ts +0 -6
  370. package/src/types/Validation.ts +0 -33
  371. package/src/types/ValidationDeprecated.ts +0 -41
  372. package/src/utilities/event.ts +0 -4
  373. package/src/utilities/format.ts +0 -184
  374. package/src/utilities/forms.ts +0 -22
  375. package/src/utilities/realm.ts +0 -17
  376. package/src/utilities/storybook.ts +0 -354
  377. package/src/utilities/validation-deprecated.ts +0 -252
  378. package/src/utilities/validation.ts +0 -132
  379. package/src/utilities/viewport.ts +0 -63
  380. package/tests/InternalBaseLink.spec.ts +0 -61
  381. package/tests/TideRealmLogo.spec.ts +0 -58
  382. package/tests/svg-icons.spec.ts +0 -74
  383. package/tests/utilities-format.spec.ts +0 -470
  384. package/tests/utilities-storybook.spec.ts +0 -99
  385. package/tsconfig.app.json +0 -14
  386. package/tsconfig.config.json +0 -12
  387. package/tsconfig.json +0 -35
  388. package/tsconfig.node.json +0 -7
  389. package/tsconfig.vitest.json +0 -10
  390. package/vite-env.d.ts +0 -2
  391. package/vite.config.sandbox.ts +0 -29
  392. package/vite.config.ts +0 -37
@@ -1,470 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
-
3
- import { FORMAT_REGEX } from '../src/types/Formatted';
4
- import {
5
- formatCamelCase,
6
- formatKebabCase,
7
- formatNumber,
8
- formatPascalCase,
9
- formatPhone,
10
- formatPrice,
11
- formatSentenceCase,
12
- formatSnakeCase,
13
- formatTitleCase,
14
- } from '../src/utilities/format';
15
-
16
- describe('@/src/utilities/format.ts', () => {
17
- const camelCase = 'theQuickBrownFoxJumpsOverTheLazyDog';
18
- const kebabCase = 'the-quick-brown-fox-jumps-over-the-lazy-dog';
19
- const lowerCase = 'the quick brown fox jumps over the lazy dog';
20
- const pascalCase = 'TheQuickBrownFoxJumpsOverTheLazyDog';
21
- const sentenceCase = 'The quick brown fox jumps over the lazy dog';
22
- const snakeCase = 'the_quick_brown_fox_jumps_over_the_lazy_dog';
23
- const titleCase = 'The Quick Brown Fox Jumps Over The Lazy Dog';
24
- const upperCase = 'THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG';
25
-
26
- describe('formatCamelCase', () => {
27
- it('converts camelCase to camelCase.', () => {
28
- expect(formatCamelCase(camelCase)).toEqual(camelCase);
29
- });
30
-
31
- it('converts kebab-case to camelCase.', () => {
32
- expect(formatCamelCase(kebabCase)).toEqual(camelCase);
33
- });
34
-
35
- it('converts PascalCase to camelCase.', () => {
36
- expect(formatCamelCase(pascalCase)).toEqual(camelCase);
37
- });
38
-
39
- it('converts lower case to camelCase.', () => {
40
- expect(formatCamelCase(lowerCase)).toEqual(camelCase);
41
- });
42
-
43
- it('converts "Sentence case" to camelCase.', () => {
44
- expect(formatCamelCase(sentenceCase)).toEqual(camelCase);
45
- });
46
-
47
- it('converts snake_case to camelCase.', () => {
48
- expect(formatCamelCase(snakeCase)).toEqual(camelCase);
49
- });
50
-
51
- it('converts "Title Case" to camelCase.', () => {
52
- expect(formatCamelCase(titleCase)).toEqual(camelCase);
53
- });
54
-
55
- it('converts UPPER CASE to camelCase.', () => {
56
- expect(formatCamelCase(upperCase)).toEqual(camelCase);
57
- });
58
-
59
- it('ignores an empty string.', () => {
60
- const input = '';
61
- const output = '';
62
-
63
- expect(formatCamelCase(input)).toEqual(output);
64
- });
65
- });
66
-
67
- describe('formatKebabCase', () => {
68
- it('converts camelCase to kebab-case.', () => {
69
- expect(formatKebabCase(camelCase)).toEqual(kebabCase);
70
- });
71
-
72
- it('converts kebab-case to kebab-case.', () => {
73
- expect(formatKebabCase(kebabCase)).toEqual(kebabCase);
74
- });
75
-
76
- it('converts PascalCase to kebab-case.', () => {
77
- expect(formatKebabCase(pascalCase)).toEqual(kebabCase);
78
- });
79
-
80
- it('converts lower case to kebab-case.', () => {
81
- expect(formatKebabCase(lowerCase)).toEqual(kebabCase);
82
- });
83
-
84
- it('converts "Sentence case" to kebab-case.', () => {
85
- expect(formatKebabCase(sentenceCase)).toEqual(kebabCase);
86
- });
87
-
88
- it('converts snake_case to kebab-case.', () => {
89
- expect(formatKebabCase(snakeCase)).toEqual(kebabCase);
90
- });
91
-
92
- it('converts "Title Case" to kebab-case.', () => {
93
- expect(formatKebabCase(titleCase)).toEqual(kebabCase);
94
- });
95
-
96
- it('converts UPPER CASE to kebab-case.', () => {
97
- expect(formatKebabCase(upperCase)).toEqual(kebabCase);
98
- });
99
-
100
- it('ignores an empty string.', () => {
101
- const input = '';
102
- const output = '';
103
-
104
- expect(formatKebabCase(input)).toEqual(output);
105
- });
106
- });
107
-
108
- describe('formatNumber', () => {
109
- it('formats a 1 digit number.', () => {
110
- const input = 1;
111
- const output = '1';
112
-
113
- expect(formatNumber(input)).toEqual(output);
114
- });
115
-
116
- it('formats a 2 digit number.', () => {
117
- const input = 22;
118
- const output = '22';
119
-
120
- expect(formatNumber(input)).toEqual(output);
121
- });
122
-
123
- it('formats a 3 digit number.', () => {
124
- const input = 333;
125
- const output = '333';
126
-
127
- expect(formatNumber(input)).toEqual(output);
128
- });
129
-
130
- it('formats a 4 digit number.', () => {
131
- const input = 4444;
132
- const output = '4,444';
133
-
134
- expect(formatNumber(input)).toEqual(output);
135
- });
136
-
137
- it('formats a 5 digit number.', () => {
138
- const input = 55555;
139
- const output = '55,555';
140
-
141
- expect(formatNumber(input)).toEqual(output);
142
- });
143
-
144
- it('formats a 6 digit number.', () => {
145
- const input = 666666;
146
- const output = '666,666';
147
-
148
- expect(formatNumber(input)).toEqual(output);
149
- });
150
-
151
- it('formats a 7 digit number.', () => {
152
- const input = 7777777;
153
- const output = '7,777,777';
154
-
155
- expect(formatNumber(input)).toEqual(output);
156
- });
157
-
158
- it('ignores an empty string.', () => {
159
- const input = '';
160
- const output = '';
161
-
162
- expect(formatNumber(input)).toEqual(output);
163
- });
164
- });
165
-
166
- describe('formatPascalCase', () => {
167
- it('converts camelCase to PascalCase.', () => {
168
- expect(formatPascalCase(camelCase)).toEqual(pascalCase);
169
- });
170
-
171
- it('converts kebab-case to PascalCase.', () => {
172
- expect(formatPascalCase(kebabCase)).toEqual(pascalCase);
173
- });
174
-
175
- it('converts PascalCase to PascalCase.', () => {
176
- expect(formatPascalCase(pascalCase)).toEqual(pascalCase);
177
- });
178
-
179
- it('converts lower case to PascalCase.', () => {
180
- expect(formatPascalCase(lowerCase)).toEqual(pascalCase);
181
- });
182
-
183
- it('converts "Sentence case" to PascalCase.', () => {
184
- expect(formatPascalCase(sentenceCase)).toEqual(pascalCase);
185
- });
186
-
187
- it('converts snake_case to PascalCase.', () => {
188
- expect(formatPascalCase(snakeCase)).toEqual(pascalCase);
189
- });
190
-
191
- it('converts "Title Case" to PascalCase.', () => {
192
- expect(formatPascalCase(titleCase)).toEqual(pascalCase);
193
- });
194
-
195
- it('converts UPPER CASE to PascalCase.', () => {
196
- expect(formatPascalCase(upperCase)).toEqual(pascalCase);
197
- });
198
-
199
- it('ignores an empty string.', () => {
200
- const input = '';
201
- const output = '';
202
-
203
- expect(formatPascalCase(input)).toEqual(output);
204
- });
205
- });
206
-
207
- describe('formatPhone', () => {
208
- it('formats a 7 digit price.', () => {
209
- const input = 1234567;
210
- const output = '123-4567';
211
-
212
- expect(formatPhone(input)).toEqual(output);
213
- });
214
-
215
- it('formats a 10 digit phone number.', () => {
216
- const input = 1234567890;
217
- const output = '123-456-7890';
218
-
219
- expect(formatPhone(input)).toEqual(output);
220
- });
221
-
222
- it('formats a 11 digit phone number.', () => {
223
- const input = 12345678900;
224
- const output = '1-234-567-8900';
225
-
226
- expect(formatPhone(input)).toEqual(output);
227
- });
228
-
229
- it('ignores a phone number of less than 7 digits.', () => {
230
- const input = 123456;
231
- const output = '123456';
232
-
233
- expect(formatPhone(input)).toEqual(output);
234
- });
235
-
236
- it('ignores a phone number of more than 11 digits.', () => {
237
- const input = 123456789000;
238
- const output = '123456789000';
239
-
240
- expect(formatPhone(input)).toEqual(output);
241
- });
242
-
243
- it('ignores an empty string.', () => {
244
- const input = '';
245
- const output = '';
246
-
247
- expect(formatPhone(input)).toEqual(output);
248
- });
249
- });
250
-
251
- describe('formatPrice', () => {
252
- it('formats a 1 digit price.', () => {
253
- const input = 1;
254
- const output = '$1';
255
-
256
- expect(formatPrice(input)).toEqual(output);
257
- });
258
-
259
- it('formats a 2 digit price.', () => {
260
- const input = 12;
261
- const output = '$12';
262
-
263
- expect(formatPrice(input)).toEqual(output);
264
- });
265
-
266
- it('formats a 3 digit price.', () => {
267
- const input = 123;
268
- const output = '$123';
269
-
270
- expect(formatPrice(input)).toEqual(output);
271
- });
272
-
273
- it('formats a 4 digit price.', () => {
274
- const input = 1234;
275
- const output = '$1,234';
276
-
277
- expect(formatPrice(input)).toEqual(output);
278
- });
279
-
280
- it('formats a 5 digit price.', () => {
281
- const input = 12345;
282
- const output = '$12,345';
283
-
284
- expect(formatPrice(input)).toEqual(output);
285
- });
286
-
287
- it('formats a 6 digit price.', () => {
288
- const input = 123456;
289
- const output = '$123,456';
290
-
291
- expect(formatPrice(input)).toEqual(output);
292
- });
293
-
294
- it('formats a 7 digit price.', () => {
295
- const input = 1234567;
296
- const output = '$1,234,567';
297
-
298
- expect(formatPrice(input)).toEqual(output);
299
- });
300
-
301
- it('formats an empty string as zero dollars.', () => {
302
- const input = '';
303
- const output = '$0';
304
-
305
- expect(formatPrice(input)).toEqual(output);
306
- });
307
- });
308
-
309
- describe('formatSentenceCase', () => {
310
- it('converts camelCase to "Sentence case".', () => {
311
- expect(formatSentenceCase(camelCase)).toEqual(sentenceCase);
312
- });
313
-
314
- it('converts kebab-case to "Sentence case".', () => {
315
- expect(formatSentenceCase(kebabCase)).toEqual(sentenceCase);
316
- });
317
-
318
- it('converts PascalCase to "Sentence case".', () => {
319
- expect(formatSentenceCase(pascalCase)).toEqual(sentenceCase);
320
- });
321
-
322
- it('converts lower case to "Sentence case".', () => {
323
- expect(formatSentenceCase(lowerCase)).toEqual(sentenceCase);
324
- });
325
-
326
- it('converts "Sentence case" to "Sentence case".', () => {
327
- expect(formatSentenceCase(sentenceCase)).toEqual(sentenceCase);
328
- });
329
-
330
- it('converts snake_case to "Sentence case".', () => {
331
- expect(formatSentenceCase(snakeCase)).toEqual(sentenceCase);
332
- });
333
-
334
- it('converts "Title Case" to "Sentence case".', () => {
335
- expect(formatSentenceCase(titleCase)).toEqual(sentenceCase);
336
- });
337
-
338
- it('converts UPPER CASE to "Sentence case".', () => {
339
- expect(formatSentenceCase(upperCase)).toEqual(sentenceCase);
340
- });
341
-
342
- it('ignores an empty string.', () => {
343
- const input = '';
344
- const output = '';
345
-
346
- expect(formatSentenceCase(input)).toEqual(output);
347
- });
348
- });
349
-
350
- describe('formatSnakeCase', () => {
351
- it('converts camelCase to snake_case.', () => {
352
- expect(formatSnakeCase(camelCase)).toEqual(snakeCase);
353
- });
354
-
355
- it('converts kebab-case to snake_case.', () => {
356
- expect(formatSnakeCase(kebabCase)).toEqual(snakeCase);
357
- });
358
-
359
- it('converts PascalCase to snake_case.', () => {
360
- expect(formatSnakeCase(pascalCase)).toEqual(snakeCase);
361
- });
362
-
363
- it('converts lower case to snake_case.', () => {
364
- expect(formatSnakeCase(lowerCase)).toEqual(snakeCase);
365
- });
366
-
367
- it('converts "Sentence case" to snake_case.', () => {
368
- expect(formatSnakeCase(sentenceCase)).toEqual(snakeCase);
369
- });
370
-
371
- it('converts snake_case to snake_case.', () => {
372
- expect(formatSnakeCase(snakeCase)).toEqual(snakeCase);
373
- });
374
-
375
- it('converts "Title Case" to snake_case.', () => {
376
- expect(formatSnakeCase(titleCase)).toEqual(snakeCase);
377
- });
378
-
379
- it('converts UPPER CASE to snake_case.', () => {
380
- expect(formatSnakeCase(upperCase)).toEqual(snakeCase);
381
- });
382
-
383
- it('ignores an empty string.', () => {
384
- const input = '';
385
- const output = '';
386
-
387
- expect(formatSnakeCase(input)).toEqual(output);
388
- });
389
- });
390
-
391
- describe('formatTitleCase', () => {
392
- it('converts camelCase to "Title Case".', () => {
393
- expect(formatTitleCase(camelCase)).toEqual(titleCase);
394
- });
395
-
396
- it('converts kebab-case to "Title Case".', () => {
397
- expect(formatTitleCase(kebabCase)).toEqual(titleCase);
398
- });
399
-
400
- it('converts PascalCase to "Title Case".', () => {
401
- expect(formatTitleCase(pascalCase)).toEqual(titleCase);
402
- });
403
-
404
- it('converts lower case to "Title Case".', () => {
405
- expect(formatTitleCase(lowerCase)).toEqual(titleCase);
406
- });
407
-
408
- it('converts "Sentence case" to "Title Case".', () => {
409
- expect(formatTitleCase(sentenceCase)).toEqual(titleCase);
410
- });
411
-
412
- it('converts snake_case to "Title Case".', () => {
413
- expect(formatTitleCase(snakeCase)).toEqual(titleCase);
414
- });
415
-
416
- it('converts "Title Case" to "Title Case".', () => {
417
- expect(formatTitleCase(titleCase)).toEqual(titleCase);
418
- });
419
-
420
- it('converts UPPER CASE to "Title Case".', () => {
421
- expect(formatTitleCase(upperCase)).toEqual(titleCase);
422
- });
423
-
424
- it('ignores an empty string.', () => {
425
- const input = '';
426
- const output = '';
427
-
428
- expect(formatTitleCase(input)).toEqual(output);
429
- });
430
- });
431
- });
432
-
433
- describe('@/src/types/Formatted.ts', () => {
434
- describe('FORMAT_REGEX.email', () => {
435
- it('accepts a standard email address.', () => {
436
- const input = 'john.doe@gmail.com';
437
- const output = true;
438
-
439
- expect(FORMAT_REGEX.email.test(input)).toEqual(output);
440
- });
441
-
442
- it('accepts an email address with subdomains.', () => {
443
- const input = 'john.doe@mail.sub.example.co.uk';
444
- const output = true;
445
-
446
- expect(FORMAT_REGEX.email.test(input)).toEqual(output);
447
- });
448
-
449
- it('rejects an email address that ends with a repeated TLD label (e.g. .com.com).', () => {
450
- const input = 'john@gmail.com.com';
451
- const output = false;
452
-
453
- expect(FORMAT_REGEX.email.test(input)).toEqual(output);
454
- });
455
-
456
- it('rejects an email address that ends with a repeated TLD label (e.g. .net.net).', () => {
457
- const input = 'john@company.net.net';
458
- const output = false;
459
-
460
- expect(FORMAT_REGEX.email.test(input)).toEqual(output);
461
- });
462
-
463
- it('rejects an email address missing a valid top-level domain.', () => {
464
- const input = 'john@gmail';
465
- const output = false;
466
-
467
- expect(FORMAT_REGEX.email.test(input)).toEqual(output);
468
- });
469
- });
470
- });
@@ -1,99 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
-
3
- import { flatten } from '../src/utilities/storybook';
4
-
5
- describe('@/src/utilities/storybook.ts', () => {
6
- describe('flatten', () => {
7
- it('returns an empty object when an empty object is provided.', () => {
8
- const input = {};
9
-
10
- expect(flatten(input)).toEqual(input);
11
- });
12
-
13
- it('returns a shallow constant when a shallow constant is provided.', () => {
14
- const input = {
15
- A: 'a',
16
- B: 'b',
17
- C: 'c',
18
- };
19
-
20
- expect(flatten(input)).toEqual(input);
21
- });
22
-
23
- it('returns a shallow constant when a constant with 2 layers of depth is provided.', () => {
24
- const input = {
25
- A: 'a',
26
- B: 'b',
27
- C: {
28
- D: 'd',
29
- E: 'e',
30
- },
31
- };
32
-
33
- const output = {
34
- 'A': 'a',
35
- 'B': 'b',
36
- 'C.D': 'd',
37
- 'C.E': 'e',
38
- };
39
-
40
- expect(flatten(input)).toEqual(output);
41
- });
42
-
43
- it('returns a shallow constant when a constant with 3 layers of depth is provided.', () => {
44
- const input = {
45
- A: 'a',
46
- B: 'b',
47
- C: {
48
- D: 'd',
49
- E: 'e',
50
- F: {
51
- G: 'g',
52
- H: 'h',
53
- },
54
- },
55
- };
56
-
57
- const output = {
58
- 'A': 'a',
59
- 'B': 'b',
60
- 'C.D': 'd',
61
- 'C.E': 'e',
62
- 'C.F.G': 'g',
63
- 'C.F.H': 'h',
64
- };
65
-
66
- expect(flatten(input)).toEqual(output);
67
- });
68
-
69
- it('returns a shallow constant when a constant with complex depth is provided.', () => {
70
- const input = {
71
- A: 'a',
72
- B: 'b',
73
- C: {
74
- D: 'd',
75
- E: 'e',
76
- },
77
- F: {
78
- G: 'g',
79
- H: {
80
- I: 'i',
81
- J: 'j',
82
- },
83
- },
84
- };
85
-
86
- const output = {
87
- 'A': 'a',
88
- 'B': 'b',
89
- 'C.D': 'd',
90
- 'C.E': 'e',
91
- 'F.G': 'g',
92
- 'F.H.I': 'i',
93
- 'F.H.J': 'j',
94
- };
95
-
96
- expect(flatten(input)).toEqual(output);
97
- });
98
- });
99
- });
package/tsconfig.app.json DELETED
@@ -1,14 +0,0 @@
1
- {
2
- "declaration": true,
3
- "extends": "@vue/tsconfig/tsconfig.dom.json",
4
- "include": ["src/**/*"],
5
- "exclude": ["src/**/__tests__/*"],
6
- "compilerOptions": {
7
- "baseUrl": ".",
8
- "composite": true,
9
- "module": "esnext",
10
- "paths": {
11
- "@/*": ["./src/*"]
12
- }
13
- }
14
- }
@@ -1,12 +0,0 @@
1
- {
2
- "declaration": true,
3
- "extends": [
4
- "@tsconfig/node18/tsconfig.json",
5
- "@vue/tsconfig/tsconfig.json"
6
- ],
7
- "include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"],
8
- "compilerOptions": {
9
- "composite": true,
10
- "types": ["node"]
11
- }
12
- }
package/tsconfig.json DELETED
@@ -1,35 +0,0 @@
1
- {
2
- "extends": "@vue/tsconfig/tsconfig.dom.json",
3
- "include": [
4
- "env.d.ts",
5
- "src/**/*"
6
- ],
7
- "exclude": [
8
- "dist",
9
- ".storybook"
10
- ],
11
- "compilerOptions": {
12
- "declaration": true,
13
- "allowJs": true,
14
- "baseUrl": ".",
15
- "lib": [
16
- "dom",
17
- "es2022"
18
- ],
19
- "module": "esnext",
20
- "paths": {
21
- "@/*": [
22
- "./src/*"
23
- ]
24
- },
25
- "target": "esnext",
26
- "types": [
27
- "node"
28
- ]
29
- },
30
- "references": [
31
- {
32
- "path": "./tsconfig.config.json"
33
- }
34
- ]
35
- }
@@ -1,7 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "include": [
4
- "vite.config.ts",
5
- "vite.config.sandbox.ts"
6
- ]
7
- }
@@ -1,10 +0,0 @@
1
- {
2
- "extends": "./tsconfig.app.json",
3
- "exclude": [],
4
- "compilerOptions": {
5
- "composite": true,
6
- "lib": [],
7
- "module": "esnext",
8
- "types": ["node", "jsdom"]
9
- }
10
- }
package/vite-env.d.ts DELETED
@@ -1,2 +0,0 @@
1
- /// <reference types="vite/client" />
2
- /// <reference types="vite-svg-loader" />
@@ -1,29 +0,0 @@
1
- import vue from '@vitejs/plugin-vue';
2
- import { URL, fileURLToPath } from 'node:url';
3
- import { defineConfig } from 'vite';
4
- import ViteDts from 'vite-plugin-dts';
5
- import svgLoader from 'vite-svg-loader';
6
-
7
- // https://vitejs.dev/config/
8
- export default defineConfig({
9
- build: {
10
- cssCodeSplit: false,
11
- outDir: 'dist',
12
- sourcemap: true,
13
- },
14
- plugins: [
15
- vue(),
16
- svgLoader({
17
- svgo: false,
18
- }),
19
- ViteDts({
20
- insertTypesEntry: true,
21
- rollupTypes: true,
22
- }),
23
- ],
24
- resolve: {
25
- alias: {
26
- '@': fileURLToPath(new URL('./src', import.meta.url)),
27
- },
28
- },
29
- });