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,184 +0,0 @@
1
- const capitalizeFirst = (string: string) => {
2
- return string.charAt(0).toUpperCase() + string.slice(1);
3
- };
4
-
5
- const formatCamelCase = (input: string): string => {
6
- return input && typeof input === 'string'
7
- ? input
8
- .replace(/^[\s_-]/, '')
9
- .replace(/([a-z]{1})([A-Z]{1})/g, '$1 $2')
10
- .replace(/[\s_-]/g, ' ')
11
- .toLowerCase()
12
- .split(' ')
13
- .map((word, index) => (index === 0 ? word : word.slice(0, 1).toUpperCase() + word.slice(1)))
14
- .join('')
15
- : input;
16
- };
17
-
18
- const formatKebabCase = (input: string): string => {
19
- return input && typeof input === 'string'
20
- ? input
21
- .replace(/([a-z]{1})([A-Z]{1})/g, '$1 $2')
22
- .toLowerCase()
23
- .replace(/[\s_-]/g, '-')
24
- : input;
25
- };
26
-
27
- const formatLabel = (value: string) => {
28
- const labelMap: { [key: string]: string } = {
29
- false: 'No',
30
- true: 'Yes',
31
- };
32
- return Object.hasOwn(labelMap, value) ? labelMap[value] : value;
33
- };
34
-
35
- const formatNumber = (input: number | string): string => {
36
- let output = input && typeof input === 'number' ? new Intl.NumberFormat().format(input) : String(input || '');
37
- let digits = output;
38
-
39
- if (input && typeof input === 'string') {
40
- digits = digits.replace(/\D/g, '');
41
- if (Number(digits)) {
42
- output = new Intl.NumberFormat().format(Number(digits));
43
- } else {
44
- output = '0';
45
- }
46
- }
47
-
48
- return output;
49
- };
50
-
51
- const formatPascalCase = (input: string): string => {
52
- return input && typeof input === 'string'
53
- ? input
54
- .replace(/([a-z]{1})([A-Z]{1})/g, '$1 $2')
55
- .replace(/[\s_-]/g, ' ')
56
- .toLowerCase()
57
- .split(' ')
58
- .map((word) => word.slice(0, 1).toUpperCase() + word.slice(1))
59
- .join('')
60
- : input;
61
- };
62
-
63
- const formatPhone = (input: number | string): string => {
64
- let output = input && typeof input === 'number' ? String(input) : String(input || '');
65
- let digits = output;
66
- digits = digits.replace(/\D/g, '');
67
-
68
- switch (digits.length) {
69
- case 7:
70
- output = `${digits.slice(0, 3)}-${digits.slice(3)}`;
71
- break;
72
- case 10:
73
- output = `${digits.slice(0, 3)}-${digits.slice(3, 6)}-${digits.slice(6)}`;
74
- break;
75
- case 11:
76
- output = `${digits.slice(0, 1)}-${digits.slice(1, 4)}-${digits.slice(4, 7)}-${digits.slice(7)}`;
77
- break;
78
- default:
79
- output = digits;
80
- break;
81
- }
82
-
83
- return output;
84
- };
85
-
86
- const formatPrice = (input: number | string): string => {
87
- const output = input ? formatNumber(input) : String(input || '0');
88
- return `$${output}`;
89
- };
90
-
91
- const formatQuotes = (value: string) => {
92
- if (value.startsWith('"') && value.endsWith('"')) {
93
- return value.slice(1, -1);
94
- } else {
95
- return value;
96
- }
97
- };
98
-
99
- const formatSentenceCase = (input: string): string => {
100
- let sentenceCase = input;
101
-
102
- if (input && typeof input === 'string') {
103
- const lowerCase = input
104
- .replace(/([a-z]{1})([A-Z]{1})/g, '$1 $2')
105
- .toLowerCase()
106
- .replace(/[\s_-]/g, ' ');
107
-
108
- sentenceCase = lowerCase.slice(0, 1).toUpperCase() + lowerCase.slice(1);
109
- }
110
-
111
- return sentenceCase;
112
- };
113
-
114
- const formatSnakeCase = (input: string): string => {
115
- return input && typeof input === 'string'
116
- ? input
117
- .replace(/([a-z]{1})([A-Z]{1})/g, '$1 $2')
118
- .toLowerCase()
119
- .replace(/[\s_-]/g, '_')
120
- : input;
121
- };
122
-
123
- const formatTitleCase = (input: string): string => {
124
- return input && typeof input === 'string'
125
- ? input
126
- .replace(/([a-z]{1})([A-Z]{1})/g, '$1 $2')
127
- .toLowerCase()
128
- .replace(/[\s_-]/g, ' ')
129
- .split(' ')
130
- .map((word) => word.slice(0, 1).toUpperCase() + word.slice(1))
131
- .join(' ')
132
- : input;
133
- };
134
-
135
- const formatUrlFromRoot = (url: string) => {
136
- const urlFormatted = url.split('.com/');
137
-
138
- return urlFormatted.length > 1 ? `/${urlFormatted[1]}` : url;
139
- };
140
-
141
- const formatWeight = (input: number | string): string => {
142
- const output = input ? formatNumber(input) : String(input || '0');
143
- return `${output} lbs`;
144
- };
145
-
146
- const getArticle = (noun: string, isPlural = false, isDefinite = false) => {
147
- const vowels = ['a', 'e', 'i', 'o', 'u'];
148
- const isVowelLeading = vowels.includes(noun.charAt(0));
149
-
150
- return isDefinite ? 'the' : isPlural ? 'some' : isVowelLeading ? 'an' : 'a';
151
- };
152
-
153
- const priceToNumber = (value: string) => {
154
- if (Number.isNaN(Number(value))) {
155
- value = value.replace('$', '');
156
- value = value.replace(/,/g, '');
157
- }
158
- return parseInt(value, 10);
159
- };
160
-
161
- const unformatPrice = (input: string): string => {
162
- const output = input.replace(/\$/g, '').replace(/,/g, '');
163
- return `${output}`;
164
- };
165
-
166
- export {
167
- capitalizeFirst,
168
- formatCamelCase,
169
- formatKebabCase,
170
- formatLabel,
171
- formatNumber,
172
- formatPascalCase,
173
- formatPhone,
174
- formatPrice,
175
- formatQuotes,
176
- formatSentenceCase,
177
- formatSnakeCase,
178
- formatTitleCase,
179
- formatUrlFromRoot,
180
- formatWeight,
181
- getArticle,
182
- priceToNumber,
183
- unformatPrice,
184
- };
@@ -1,22 +0,0 @@
1
- import { INPUT_MODE, TEXT_INPUT_TYPE } from '@/types/TextInput';
2
-
3
- import type { InputMode, TextInputType } from '@/types/TextInput';
4
-
5
- export const getTextInputMode = (type: TextInputType, inputmode?: InputMode): InputMode | undefined => {
6
- if (inputmode) return inputmode;
7
-
8
- switch (type) {
9
- case TEXT_INPUT_TYPE.TEL:
10
- return INPUT_MODE.TEL;
11
- case TEXT_INPUT_TYPE.SEARCH:
12
- return INPUT_MODE.SEARCH;
13
- case TEXT_INPUT_TYPE.NUMBER:
14
- return INPUT_MODE.NUMERIC;
15
- case TEXT_INPUT_TYPE.EMAIL:
16
- return INPUT_MODE.EMAIL;
17
- case TEXT_INPUT_TYPE.URL:
18
- return INPUT_MODE.URL;
19
- }
20
-
21
- return undefined;
22
- };
@@ -1,17 +0,0 @@
1
- import { REALM } from '@/types/Realm';
2
-
3
- import type { Realm, RealmKey } from '@/types/Realm';
4
-
5
- export const getRealmKeyFromRealm = (realm: Realm): RealmKey => {
6
- const entries = Object.entries(REALM) as [RealmKey, Realm][];
7
-
8
- const match = entries.find((entry): entry is [RealmKey, Realm] => {
9
- return entry[1] === realm;
10
- });
11
-
12
- if (!match) {
13
- throw new Error(`Mapping for ${realm} not found`);
14
- }
15
-
16
- return match[0];
17
- };
@@ -1,354 +0,0 @@
1
- import { ELEMENT, ELEMENT_BROAD } from '@/types/Element';
2
- import { BOOLEAN, BOOLEAN_UNREQUIRED, NoneAsEmpty, NoneAsUndefined } from '@/types/Storybook';
3
- import { CSS } from '@/types/Styles';
4
- import { formatKebabCase } from '@/utilities/format';
5
-
6
- import type { ArgTypes, StoryContext } from '@storybook/vue3';
7
-
8
- type KeyString = { [key: string]: string };
9
-
10
- // Extensible object of key/value pairs
11
- type KeyValue = { [key: string]: any };
12
-
13
- // Object with a retrievable key and an extensible object of key/value pairs as the value
14
- type KeyValueNamed = {
15
- [key: string]: KeyValue;
16
- };
17
-
18
- type Nested = {
19
- [key: string]: string | Nested;
20
- };
21
-
22
- export const lineBreak = '\r';
23
- export const tab = ' ';
24
-
25
- export const argTypeBoolean = {
26
- control: 'select',
27
- options: BOOLEAN,
28
- table: {
29
- defaultValue: { summary: 'False' },
30
- type: { summary: 'boolean' },
31
- },
32
- };
33
-
34
- export const argTypeBooleanUnrequired = {
35
- control: 'select',
36
- options: BOOLEAN_UNREQUIRED,
37
- table: {
38
- defaultValue: { summary: 'None' },
39
- type: { summary: 'boolean' },
40
- },
41
- };
42
-
43
- export const argTypeDimension = {
44
- control: {
45
- max: 500,
46
- min: 100,
47
- step: 100,
48
- type: 'number',
49
- },
50
- table: {
51
- defaultValue: { summary: 'None' },
52
- type: { summary: 'number (px)' },
53
- },
54
- };
55
-
56
- export const change = {
57
- control: 'text',
58
- description: 'JS code or function to execute on change event',
59
- isEmit: true,
60
- name: 'change',
61
- table: {
62
- category: 'Events',
63
- defaultValue: { summary: 'None' },
64
- type: { summary: '() => void' },
65
- },
66
- };
67
-
68
- export const click = {
69
- control: 'text',
70
- description: 'JS code or function to execute on click event',
71
- isEmit: true,
72
- table: {
73
- category: 'Events',
74
- defaultValue: { summary: 'None' },
75
- type: { summary: '() => void' },
76
- },
77
- };
78
-
79
- export const close = {
80
- control: 'text',
81
- description: 'JS code or function to execute on close event',
82
- isEmit: true,
83
- table: {
84
- category: 'Events',
85
- defaultValue: { summary: 'None' },
86
- type: { summary: '() => void' },
87
- },
88
- };
89
-
90
- export const dataTrack = {
91
- control: 'text',
92
- description: 'Data attribute for external tracking',
93
- table: {
94
- category: 'Native',
95
- defaultValue: { summary: 'None' },
96
- type: { summary: 'string' },
97
- },
98
- };
99
-
100
- export const disabledArgType = {
101
- table: {
102
- disable: true,
103
- },
104
- };
105
-
106
- export const isProduction = process.env.NODE_ENV === 'production';
107
-
108
- export const doSomething = (message: string = 'Did something.') => {
109
- const doSomethingAlert = document.getElementById('do-something-alert');
110
-
111
- if (!doSomethingAlert) return;
112
-
113
- doSomethingAlert.innerHTML = message;
114
- doSomethingAlert.style.opacity = '1';
115
-
116
- setTimeout(() => {
117
- doSomethingAlert.style.opacity = '0';
118
- }, 1000);
119
- };
120
-
121
- export const doSomethingElse = () => {
122
- doSomething('Did something else.');
123
- };
124
-
125
- // Flatten a nested constant into a simple constant.
126
- export const flatten = (input: Nested): KeyString => {
127
- const output: KeyString = {};
128
-
129
- Object.entries(input).forEach(([key, value]) => {
130
- if (typeof value === 'string') {
131
- output[key] = value;
132
- } else {
133
- const flattened = flatten(value);
134
-
135
- Object.entries(flattened).forEach(([key2, value2]) => {
136
- output[`${key}.${key2}`] = value2;
137
- });
138
- }
139
- });
140
-
141
- return output;
142
- };
143
-
144
- // Accept a KeyValue as the value of an object with a retrievable key as a Storybook argType.
145
- export const formatArgType = (collection: KeyValueNamed) => {
146
- const constant = getKey(collection);
147
- const keyValues: KeyValue = collection[constant];
148
-
149
- return {
150
- constant,
151
- control: 'select',
152
- options: {
153
- ...keyValues,
154
- },
155
- table: {
156
- defaultValue: { summary: 'None' },
157
- type: { summary: constant },
158
- },
159
- };
160
- };
161
-
162
- export const formatArgTypeCheck = (collection: KeyValueNamed) => {
163
- const constant = getKey(collection);
164
- const keyValues: KeyValue = collection[constant];
165
-
166
- return {
167
- constant,
168
- control: 'check',
169
- options: {
170
- ...keyValues,
171
- },
172
- table: {
173
- defaultValue: { summary: 'None' },
174
- type: { summary: constant },
175
- },
176
- };
177
- };
178
-
179
- export const formatValueAsConstant = (keyValue: KeyValue, argTypes: ArgTypes): string => {
180
- const [key, value] = Object.entries(keyValue)[0];
181
- let constant: string = '';
182
-
183
- const arg: ArgTypes = argTypes[key];
184
-
185
- Object.entries(arg.options).forEach(([optionKey, optionValue]) => {
186
- if (value === optionValue) {
187
- constant = `${argTypes[key].constant}.${optionKey}`;
188
- }
189
- });
190
-
191
- return constant;
192
- };
193
-
194
- export const formatSnippet = (code: string, context: StoryContext) => {
195
- const tag = context.component?.__name;
196
- const { args, argTypes } = context;
197
-
198
- let classNames: string[] = [];
199
-
200
- let attributes = Object.entries(args).map((arg: any) => {
201
- const key = arg[0];
202
- let value = arg[1];
203
- const argType: ArgTypes = argTypes[key];
204
- const conditionKey = argType.if?.arg;
205
- const conditionValue = argType.if?.eq;
206
-
207
- // TODO: TypeScript doesn't seem to believe the implict shapes of Storybook's native types?
208
- const controlType = argType?.control?.type as any;
209
-
210
- // If arg is conditional, hide when conditional is not met.
211
- const isClick = key === 'click';
212
- const isConditionMet = argType.if ? args[conditionKey] === conditionValue : true;
213
- const isConstant = Object.keys(argTypes).includes(key) && !!argType.constant && controlType === 'select';
214
- const isConstants = Object.keys(argTypes).includes(key) && !!argType.constant && controlType === 'check';
215
- const isCustom = argType.isCustom;
216
- const isDynamic = argType.isDynamic || isConstant || isConstants || typeof value === 'boolean';
217
- const isEmpty = !isDynamic && value === '';
218
- const isExcluded = value === undefined || (Array.isArray(value) && !value.length);
219
- const isEmit = argType.isEmit;
220
- const isSlot = key === 'default';
221
-
222
- if (argType.isCss) {
223
- classNames.push(value);
224
- }
225
-
226
- if (isConstant && value !== 'None') {
227
- const arg: ArgTypes = argType;
228
-
229
- Object.entries(arg.options).forEach(([optionKey, optionValue]) => {
230
- if (value === optionValue) {
231
- value = `${argType.constant}.${optionKey}`;
232
- }
233
- });
234
- }
235
-
236
- if (isConstants && value.length) {
237
- const constantSlots: string[] = [];
238
-
239
- Object.entries(argType.options).forEach(([optionKey, optionValue]) => {
240
- value.forEach((valueSlot: any) => {
241
- if (valueSlot === optionValue) {
242
- constantSlots.push(`${argTypes[key].constant}.${optionKey}`);
243
- }
244
- });
245
- });
246
-
247
- value = `[${constantSlots.join(', ')}]`;
248
- }
249
-
250
- if (isCustom) {
251
- return `:${formatKebabCase(key)}="${key}"`;
252
- }
253
-
254
- if (
255
- isClick &&
256
- value &&
257
- (!args.element || args.element === ELEMENT.BUTTON || args.element === ELEMENT_BROAD.BUTTON)
258
- ) {
259
- return `@click="${value}"`;
260
- }
261
-
262
- if (isEmit) {
263
- if (value) {
264
- return `@${argType.name}="${value}"`;
265
- }
266
- }
267
-
268
- if (isConditionMet && !isClick && !isCustom && !isEmpty && !isExcluded && !isSlot) {
269
- return `${isDynamic ? ':' : ''}${formatKebabCase(key)}="${value}"`;
270
- }
271
- });
272
-
273
- classNames = classNames.filter((className) => !!className);
274
-
275
- if (classNames.length > 0) attributes.push(`class="${classNames.join(' ')}"`);
276
-
277
- attributes = attributes.filter((attribute) => !!attribute).sort();
278
-
279
- if (attributes) attributes.unshift('');
280
-
281
- return args.default
282
- ? `<${tag}${attributes.join(' ')}>${lineBreak}${tab}${args.default}${lineBreak}</${tag}>`
283
- : `<${tag}${attributes.join(' ')} />`;
284
- };
285
-
286
- export const formatSnippetMinimal = (code: string) => {
287
- return code.replace(/<[/]*template>/g, '');
288
- };
289
-
290
- export const getConstantByValue = (value: string) => {
291
- const compareRecursively = (basis: string, shape: string | object, depth: number = 0): string | void => {
292
- let output;
293
-
294
- Object.entries(shape).forEach((entry: string[]) => {
295
- const key = entry[0];
296
- const value = entry[1];
297
- const type = typeof value;
298
-
299
- if (type === 'string' && basis === value) {
300
- output = key;
301
- return;
302
- } else if (type === 'object') {
303
- const match = compareRecursively(basis, value, depth + 1);
304
-
305
- if (match) {
306
- output = `${key}.${match}`;
307
- return;
308
- }
309
- }
310
- });
311
-
312
- return output;
313
- };
314
-
315
- const constant = compareRecursively(value, CSS);
316
-
317
- return constant ? `CSS.${constant}` : undefined;
318
- };
319
-
320
- export const getConstantsByValues = (classNames: string[]) =>
321
- classNames.map((className) => getConstantByValue(className));
322
-
323
- export const getKey = (input: any) => Object.keys(input)[0];
324
-
325
- // Invert key/value pairs bc Storybook control option format is unintuitive.
326
- export const getLabelsFromOptions = (options: any) => {
327
- const labels: { [key: string]: string } = {};
328
-
329
- Object.entries(options).forEach(([key, value]) => {
330
- labels[`${value}`] = key;
331
- });
332
-
333
- return labels;
334
- };
335
-
336
- export const parameters = {
337
- docs: {
338
- source: {
339
- format: 'vue',
340
- language: 'html',
341
- transform: formatSnippet,
342
- },
343
- },
344
- };
345
-
346
- // Prepend a key/value pair to a constant.
347
- export const prependKeyValue = (collection: KeyValue, keyValue: KeyValue) => ({
348
- ...keyValue,
349
- ...collection,
350
- });
351
-
352
- export const prependNoneAsUndefined = (collection: KeyValue) => prependKeyValue(collection, NoneAsUndefined);
353
-
354
- export const prependNoneAsEmpty = (collection: KeyValue) => prependKeyValue(collection, NoneAsEmpty);