tide-design-system 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (697) hide show
  1. package/README.md +1 -0
  2. package/dist/IconAccountBalance-B9rJ09ax.js +16 -0
  3. package/dist/IconAccountBalance-t66sPb0V.cjs +2 -0
  4. package/dist/IconAcute-9dHrmblT.js +16 -0
  5. package/dist/IconAcute-kA8NXjsF.cjs +2 -0
  6. package/dist/IconAdd-BsJiPHYa.js +16 -0
  7. package/dist/IconAdd-Bwkom_hG.cjs +2 -0
  8. package/dist/IconAiDescription-CFPMCDKK.cjs +2 -0
  9. package/dist/IconAiDescription-fQ_B1UGe.js +20 -0
  10. package/dist/IconAlignSpaceEven-B2UIi1ao.js +16 -0
  11. package/dist/IconAlignSpaceEven-DKSbfzb-.cjs +2 -0
  12. package/dist/IconApplePay-BBSCGFjG.cjs +2 -0
  13. package/dist/IconApplePay-DS6fQdV_.js +16 -0
  14. package/dist/IconArrowBack-CUHuJHxp.cjs +2 -0
  15. package/dist/IconArrowBack-CZSCZ-Jf.js +16 -0
  16. package/dist/IconArrowCycle-D3f38VT-.js +16 -0
  17. package/dist/IconArrowCycle-R7Q8EDQJ.cjs +2 -0
  18. package/dist/IconArrowForward-09bz9o1h.cjs +2 -0
  19. package/dist/IconArrowForward-CICM-aJ1.js +16 -0
  20. package/dist/IconArrowRight-CwweSeyO.js +16 -0
  21. package/dist/IconArrowRight-Np65RzRK.cjs +2 -0
  22. package/dist/IconArrowUp-7TI0p224.js +16 -0
  23. package/dist/IconArrowUp-DrhwTcVn.cjs +2 -0
  24. package/dist/IconAssignment-DGD2WaCW.cjs +2 -0
  25. package/dist/IconAssignment-DQQnmJc_.js +16 -0
  26. package/dist/IconAttachMoney-DFObJ1fx.cjs +2 -0
  27. package/dist/IconAttachMoney-sLj77NOR.js +16 -0
  28. package/dist/IconAtvAtv-DubJwTjK.cjs +2 -0
  29. package/dist/IconAtvAtv-bfqGL_Iq.js +20 -0
  30. package/dist/IconAtvDuneBuggy-CbiyQRZg.js +20 -0
  31. package/dist/IconAtvDuneBuggy-CjN1kUXQ.cjs +2 -0
  32. package/dist/IconAtvGoKart-BxqcGKzS.js +20 -0
  33. package/dist/IconAtvGoKart-C6lX6Uq4.cjs +2 -0
  34. package/dist/IconAtvGolfCart-6Xwju3k6.js +20 -0
  35. package/dist/IconAtvGolfCart-DWAt3bvk.cjs +2 -0
  36. package/dist/IconAtvSandRail-DGwmb5aU.cjs +2 -0
  37. package/dist/IconAtvSandRail-dKmA3KoG.js +20 -0
  38. package/dist/IconAtvSideBySide-CVSUrX7w.js +20 -0
  39. package/dist/IconAtvSideBySide-OvuV0qFX.cjs +2 -0
  40. package/dist/IconAtvTrailer-BB6C_WKk.js +20 -0
  41. package/dist/IconAtvTrailer-D_aI1qUx.cjs +2 -0
  42. package/dist/IconAutoRenew-Bl-Obhh6.js +16 -0
  43. package/dist/IconAutoRenew-CRnGvhzj.cjs +2 -0
  44. package/dist/IconAwardStar-Dx2metNr.cjs +2 -0
  45. package/dist/IconAwardStar-KYYsH2ss.js +16 -0
  46. package/dist/IconBed-BVLiRAhU.js +16 -0
  47. package/dist/IconBed-o4YHr8QY.cjs +2 -0
  48. package/dist/IconBoatmartPwc-B3seLCYC.js +20 -0
  49. package/dist/IconBoatmartPwc-BKltWtRW.cjs +2 -0
  50. package/dist/IconBoatmartTrailer-BosS4Ix8.js +20 -0
  51. package/dist/IconBoatmartTrailer-D3firMg5.cjs +2 -0
  52. package/dist/IconBolt-BTeYzS6k.cjs +2 -0
  53. package/dist/IconBolt-D-BSIXex.js +16 -0
  54. package/dist/IconBookmark-CitAJpUy.cjs +2 -0
  55. package/dist/IconBookmark-D3Pu86n4.js +16 -0
  56. package/dist/IconBunkhouse-B1covD1i.cjs +2 -0
  57. package/dist/IconBunkhouse-B4PaVH2y.js +16 -0
  58. package/dist/IconCalendarMonth-CortoSy-.js +16 -0
  59. package/dist/IconCalendarMonth-DfHe6Olt.cjs +2 -0
  60. package/dist/IconCall-6gUYtYnc.cjs +2 -0
  61. package/dist/IconCall-DRysHKSn.js +16 -0
  62. package/dist/IconCallQuality-BMVs2M2s.js +16 -0
  63. package/dist/IconCallQuality-DseNWKcQ.cjs +2 -0
  64. package/dist/IconCarRental-CaH55o-0.cjs +2 -0
  65. package/dist/IconCarRental-qvIsiGfR.js +16 -0
  66. package/dist/IconCheck-CliQNN_D.js +16 -0
  67. package/dist/IconCheck-DrU3Xqj-.cjs +2 -0
  68. package/dist/IconChevronLeft-CD73NwTB.cjs +2 -0
  69. package/dist/IconChevronLeft-hQC1St0W.js +16 -0
  70. package/dist/IconChevronRight-CNHvWIJQ.cjs +2 -0
  71. package/dist/IconChevronRight-DVYcrzWE.js +16 -0
  72. package/dist/IconClear-COYKsp8t.js +16 -0
  73. package/dist/IconClear-Ddi_gQQW.cjs +2 -0
  74. package/dist/IconClose-ClKjVrRR.cjs +2 -0
  75. package/dist/IconClose-HSRbXCDE.js +16 -0
  76. package/dist/IconContract-BMNU7dRH.cjs +2 -0
  77. package/dist/IconContract-BaV1mGEr.js +16 -0
  78. package/dist/IconCrash-BzlfUp1G.cjs +2 -0
  79. package/dist/IconCrash-ClWQK2fw.js +16 -0
  80. package/dist/IconDashboardCustomize-BAGay10U.cjs +2 -0
  81. package/dist/IconDashboardCustomize-BJEcZ-jN.js +16 -0
  82. package/dist/IconDelete-CUu2bGqQ.cjs +2 -0
  83. package/dist/IconDelete-DJwergoy.js +16 -0
  84. package/dist/IconDiamond-BeD6bdL2.cjs +2 -0
  85. package/dist/IconDiamond-D34wtBhd.js +16 -0
  86. package/dist/IconDirectionsBoat-B0wTnd3o.cjs +2 -0
  87. package/dist/IconDirectionsBoat-ByiHuypy.js +16 -0
  88. package/dist/IconDomain-CXsBLm5C.js +16 -0
  89. package/dist/IconDomain-Dxw5ILrL.cjs +2 -0
  90. package/dist/IconDraft-DR6EZSwa.cjs +2 -0
  91. package/dist/IconDraft-qSYk5cPm.js +16 -0
  92. package/dist/IconEdit-CFeDlBN2.js +16 -0
  93. package/dist/IconEdit-DiFJHvLw.cjs +2 -0
  94. package/dist/IconEngine-BLi3BThi.js +20 -0
  95. package/dist/IconEngine-NRbH-EHX.cjs +2 -0
  96. package/dist/IconEngineering-DKDW6b3b.js +16 -0
  97. package/dist/IconEngineering-Gu6xRPyo.cjs +2 -0
  98. package/dist/IconError-B8vfdBPh.cjs +2 -0
  99. package/dist/IconError-BsmS7Ido.js +16 -0
  100. package/dist/IconExpandContent-CUz-acoJ.js +16 -0
  101. package/dist/IconExpandContent-CZBUTFa4.cjs +2 -0
  102. package/dist/IconExpandLess-BeBqjATL.cjs +2 -0
  103. package/dist/IconExpandLess-kI04ZTDg.js +16 -0
  104. package/dist/IconExpandMore-BpIrNsXP.js +16 -0
  105. package/dist/IconExpandMore-EyD544-R.cjs +2 -0
  106. package/dist/IconFacebook-BZJRlI_M.cjs +2 -0
  107. package/dist/IconFacebook-DiMWgcSK.js +16 -0
  108. package/dist/IconFavorite-CDLEUDWu.js +16 -0
  109. package/dist/IconFavorite-DK4VZH9M.cjs +2 -0
  110. package/dist/IconFavoriteFilled--f1zeXKy.js +16 -0
  111. package/dist/IconFavoriteFilled-DEpn1cmU.cjs +2 -0
  112. package/dist/IconFlag-BztsqLLH.cjs +2 -0
  113. package/dist/IconFlag-CmppikB3.js +16 -0
  114. package/dist/IconFormatBold-D5ouQYvY.cjs +2 -0
  115. package/dist/IconFormatBold-rtvyBotR.js +16 -0
  116. package/dist/IconFormatItalic-BlcS8gnO.js +16 -0
  117. package/dist/IconFormatItalic-nERjH9_F.cjs +2 -0
  118. package/dist/IconFormatListBulleted-BbJCNSJG.js +16 -0
  119. package/dist/IconFormatListBulleted-DiO46Jg8.cjs +2 -0
  120. package/dist/IconForum-CFa_3MsA.js +16 -0
  121. package/dist/IconForum-Dw6egtlq.cjs +2 -0
  122. package/dist/IconGas-D8bshXuI.cjs +2 -0
  123. package/dist/IconGas-rD46ubiw.js +16 -0
  124. package/dist/IconGavel-CBdvVo3E.cjs +2 -0
  125. package/dist/IconGavel-l3k6jtN3.js +16 -0
  126. package/dist/IconGears-CaXA9HK2.js +16 -0
  127. package/dist/IconGears-DGMqs4S7.cjs +2 -0
  128. package/dist/IconGlobeLocationPin-DaxXQ30W.cjs +2 -0
  129. package/dist/IconGlobeLocationPin-cTdYm_5A.js +16 -0
  130. package/dist/IconGoogle-6R7roJzd.js +31 -0
  131. package/dist/IconGoogle-Yw_mSfTf.cjs +2 -0
  132. package/dist/IconGooglePay-RCvnstwi.cjs +2 -0
  133. package/dist/IconGooglePay-XLqJKvZe.js +16 -0
  134. package/dist/IconGrid-BoplWzPb.js +16 -0
  135. package/dist/IconGrid-Dt-ErvEF.cjs +2 -0
  136. package/dist/IconHandshake-CsYF9kmp.js +16 -0
  137. package/dist/IconHandshake-Cy-2UfCE.cjs +2 -0
  138. package/dist/IconHandyman-CQL-qu8p.js +16 -0
  139. package/dist/IconHandyman-Qk8vvw-k.cjs +2 -0
  140. package/dist/IconHeight-8L9ZpDnf.cjs +2 -0
  141. package/dist/IconHeight-CTAQLi2I.js +16 -0
  142. package/dist/IconHelp-BEzzbWr3.js +16 -0
  143. package/dist/IconHelp-yLLGan-o.cjs +2 -0
  144. package/dist/IconInfo-BACpUpXu.js +16 -0
  145. package/dist/IconInfo-MifqZPeF.cjs +2 -0
  146. package/dist/IconInformation-Bd6DwbOW.cjs +2 -0
  147. package/dist/IconInformation-CGYah4Eo.js +16 -0
  148. package/dist/IconInsertText-C5HjwAuL.js +16 -0
  149. package/dist/IconInsertText-DAU6Gz1h.cjs +2 -0
  150. package/dist/IconInstagram-DEPxn51x.js +16 -0
  151. package/dist/IconInstagram-V0Phqs8e.cjs +2 -0
  152. package/dist/IconIosShare-jNePPJBV.js +16 -0
  153. package/dist/IconIosShare-yDTudxOJ.cjs +2 -0
  154. package/dist/IconLayout-CgFL9FBD.js +16 -0
  155. package/dist/IconLayout-NaNwp1Mc.cjs +2 -0
  156. package/dist/IconLevellingJack-BrmBMIeS.cjs +2 -0
  157. package/dist/IconLevellingJack-rO4KepKs.js +20 -0
  158. package/dist/IconLinkedIn-B92dDFNi.cjs +2 -0
  159. package/dist/IconLinkedIn-GWoK01li.js +16 -0
  160. package/dist/IconLocalShipping-B3U2CrvK.cjs +2 -0
  161. package/dist/IconLocalShipping-Bayc9OL_.js +16 -0
  162. package/dist/IconLock-CzvHZ2QM.cjs +2 -0
  163. package/dist/IconLock-WfiVOWPI.js +16 -0
  164. package/dist/IconMail-4cFO6TUe.cjs +2 -0
  165. package/dist/IconMail-ejl1H7D9.js +16 -0
  166. package/dist/IconMenu-BV6py3Ml.cjs +2 -0
  167. package/dist/IconMenu-FlE3z6fX.js +16 -0
  168. package/dist/IconMoneyBag-CYq7aYjH.js +16 -0
  169. package/dist/IconMoneyBag-lMeRlCeA.cjs +2 -0
  170. package/dist/IconMoreHoriz-B0mCtW1_.js +16 -0
  171. package/dist/IconMoreHoriz-Fdrg4GhV.cjs +2 -0
  172. package/dist/IconNotifications-Bm_gSQGu.js +16 -0
  173. package/dist/IconNotifications-D6f_hP65.cjs +2 -0
  174. package/dist/IconOdometer-COcVC_eb.js +16 -0
  175. package/dist/IconOdometer-DFmoGuh1.cjs +2 -0
  176. package/dist/IconOpenInNew-Bh7f_m7Y.cjs +2 -0
  177. package/dist/IconOpenInNew-DFieFQIk.js +16 -0
  178. package/dist/IconPalette-ClefcQMe.cjs +2 -0
  179. package/dist/IconPalette-DoDIzZJO.js +16 -0
  180. package/dist/IconPaypal-CX6Z2rvX.js +16 -0
  181. package/dist/IconPaypal-R8-anQkg.cjs +2 -0
  182. package/dist/IconPerson-CK0AXlS_.js +16 -0
  183. package/dist/IconPerson-bq9WQXQP.cjs +2 -0
  184. package/dist/IconPersonSearch-Da5EdDrS.js +16 -0
  185. package/dist/IconPersonSearch-WGKPEFXj.cjs +2 -0
  186. package/dist/IconPhotoCamera-DZHI-Yb7.js +16 -0
  187. package/dist/IconPhotoCamera-DaJf6axF.cjs +2 -0
  188. package/dist/IconPinterest-B3UM6t9-.js +16 -0
  189. package/dist/IconPinterest-wqKY3pYh.cjs +2 -0
  190. package/dist/IconPlayArrow-BMvUb0Cs.cjs +2 -0
  191. package/dist/IconPlayArrow-CR7bXHC8.js +16 -0
  192. package/dist/IconPolicy-C6VqDhPq.cjs +2 -0
  193. package/dist/IconPolicy-CzN-v54O.js +16 -0
  194. package/dist/IconPower-C5MJihEZ.js +16 -0
  195. package/dist/IconPower-DNCBzhHN.cjs +2 -0
  196. package/dist/IconPowerOff-BziDMScz.js +16 -0
  197. package/dist/IconPowerOff-CFUkoB2U.cjs +2 -0
  198. package/dist/IconPriorityHigh-BXRK5f8v.cjs +2 -0
  199. package/dist/IconPriorityHigh-Bv-j3DaQ.js +16 -0
  200. package/dist/IconRemove-Bo4RUocr.js +16 -0
  201. package/dist/IconRemove-BoE63ZOl.cjs +2 -0
  202. package/dist/IconRequestQuote-BUNyScQ-.js +16 -0
  203. package/dist/IconRequestQuote-hNE0axaE.cjs +2 -0
  204. package/dist/IconResetWrench-BGo5LXI6.cjs +2 -0
  205. package/dist/IconResetWrench-DCcBmojh.js +16 -0
  206. package/dist/IconRoad-BGTu-WPJ.js +16 -0
  207. package/dist/IconRoad-CYQVphPa.cjs +2 -0
  208. package/dist/IconRoundedCorner-BsshtlDu.cjs +2 -0
  209. package/dist/IconRoundedCorner-DycjfuJj.js +16 -0
  210. package/dist/IconRuler-D6F7haVw.cjs +2 -0
  211. package/dist/IconRuler-Da8zNDvf.js +16 -0
  212. package/dist/IconRvClassA-CeynEY7N.cjs +2 -0
  213. package/dist/IconRvClassA-D2-lug19.js +20 -0
  214. package/dist/IconRvClassB-BGB0MmOD.cjs +2 -0
  215. package/dist/IconRvClassB-Coe3FpBI.js +20 -0
  216. package/dist/IconRvClassC-C8rS5sAC.cjs +2 -0
  217. package/dist/IconRvClassC-DWnLqMGg.js +20 -0
  218. package/dist/IconRvFifthWheel-C47iv80S.cjs +2 -0
  219. package/dist/IconRvFifthWheel-CB_mQ-tO.js +20 -0
  220. package/dist/IconRvFishHouse-B9CKlbHK.cjs +2 -0
  221. package/dist/IconRvFishHouse-Cs2fm3r1.js +20 -0
  222. package/dist/IconRvParkModel-D4S_iYTG.js +20 -0
  223. package/dist/IconRvParkModel-DZoz1TA3.cjs +2 -0
  224. package/dist/IconRvPopUpCamper-CW47dgll.js +20 -0
  225. package/dist/IconRvPopUpCamper-D7wbELIQ.cjs +2 -0
  226. package/dist/IconRvTravelTrailer-CC48bci7.js +20 -0
  227. package/dist/IconRvTravelTrailer-DGqI6COV.cjs +2 -0
  228. package/dist/IconRvTruckCamper-DFFQWh2o.cjs +2 -0
  229. package/dist/IconRvTruckCamper-EoEVfaJM.js +20 -0
  230. package/dist/IconSailing-BLsCQf5E.cjs +2 -0
  231. package/dist/IconSailing-CPcgnYwx.js +16 -0
  232. package/dist/IconSchool-3Dy70s11.js +16 -0
  233. package/dist/IconSchool-Ctkcm5E6.cjs +2 -0
  234. package/dist/IconSearch-C8WeOYws.js +16 -0
  235. package/dist/IconSearch-CqnvhCzt.cjs +2 -0
  236. package/dist/IconSeating-CIOne28A.cjs +2 -0
  237. package/dist/IconSeating-D7B47LU4.js +16 -0
  238. package/dist/IconSell-B95iGdOh.js +16 -0
  239. package/dist/IconSell-CJ88esDh.cjs +2 -0
  240. package/dist/IconSensors-CVBxtcwC.cjs +2 -0
  241. package/dist/IconSensors-Ckv6BEOK.js +16 -0
  242. package/dist/IconSettings-BWQS2Rd_.cjs +2 -0
  243. package/dist/IconSettings-CLrLZmQs.js +16 -0
  244. package/dist/IconShare-CH2w2udo.js +16 -0
  245. package/dist/IconShare-DgZxuRV0.cjs +2 -0
  246. package/dist/IconShieldCheck-BBHcsJhF.js +16 -0
  247. package/dist/IconShieldCheck-x6T3V-vS.cjs +2 -0
  248. package/dist/IconShoppingCart-BWH_PXom.cjs +2 -0
  249. package/dist/IconShoppingCart-_CKPKJ12.js +16 -0
  250. package/dist/IconSleeps-CTzXW2RS.js +16 -0
  251. package/dist/IconSleeps-CaPJzPZ7.cjs +2 -0
  252. package/dist/IconSms-C_jULP6X.js +16 -0
  253. package/dist/IconSms-NlCMrmBH.cjs +2 -0
  254. package/dist/IconSnowflake-CzkejYR_.cjs +2 -0
  255. package/dist/IconSnowflake-DYpTwl2q.js +16 -0
  256. package/dist/IconStar-BGEn0snz.cjs +2 -0
  257. package/dist/IconStar-CR0UA_S9.js +16 -0
  258. package/dist/IconStarFilled-CfYeQJic.cjs +2 -0
  259. package/dist/IconStarFilled-DEnQm6s8.js +16 -0
  260. package/dist/IconStarHalf-Bx8Qyb3h.cjs +2 -0
  261. package/dist/IconStarHalf-DZqwFVlC.js +16 -0
  262. package/dist/IconSummarize-BwU7xViX.js +16 -0
  263. package/dist/IconSummarize-lRdtNX68.cjs +2 -0
  264. package/dist/IconSwapHoriz-B-UnlgNS.cjs +2 -0
  265. package/dist/IconSwapHoriz-B7Nu99ui.js +16 -0
  266. package/dist/IconSwapVert-BBxeKMXP.cjs +2 -0
  267. package/dist/IconSwapVert-D83OnTLJ.js +16 -0
  268. package/dist/IconThreeDRotation-BPRR_9n0.cjs +2 -0
  269. package/dist/IconThreeDRotation-WuabFIaS.js +29 -0
  270. package/dist/IconThumbUp-Dw-Hvil4.cjs +2 -0
  271. package/dist/IconThumbUp-DwPs1Aog.js +16 -0
  272. package/dist/IconTrendingDown-CKqQl7o7.js +16 -0
  273. package/dist/IconTrendingDown-CUIEiRQk.cjs +2 -0
  274. package/dist/IconTrophy-DRcIPW-F.js +16 -0
  275. package/dist/IconTrophy-DwaYZ69z.cjs +2 -0
  276. package/dist/IconTune-CXVj1kqb.js +16 -0
  277. package/dist/IconTune-CdPQRgZE.cjs +2 -0
  278. package/dist/IconTwitter-B5AwI_-2.js +16 -0
  279. package/dist/IconTwitter-wxyn-htG.cjs +2 -0
  280. package/dist/IconUmbrella-BWmv4GFi.js +16 -0
  281. package/dist/IconUmbrella-CdgPNDdg.cjs +2 -0
  282. package/dist/IconVerified-BMRocsAd.js +20 -0
  283. package/dist/IconVerified-DKmEJ9ke.cjs +2 -0
  284. package/dist/IconVideocam-B8oUr7zP.cjs +2 -0
  285. package/dist/IconVideocam-D5eUdBxR.js +16 -0
  286. package/dist/IconViewInAr-CvR2gh_r.js +16 -0
  287. package/dist/IconViewInAr-DhbEKdon.cjs +2 -0
  288. package/dist/IconVisibility-BlzyaCVD.js +16 -0
  289. package/dist/IconVisibility-DaA3mBn4.cjs +2 -0
  290. package/dist/IconVolumeOff-42vl0HdH.cjs +2 -0
  291. package/dist/IconVolumeOff-DB757krU.js +16 -0
  292. package/dist/IconVolumeOn-B6HqcoA8.cjs +2 -0
  293. package/dist/IconVolumeOn-CYf77UaC.js +16 -0
  294. package/dist/IconWarehouse-DIRQdX8P.js +16 -0
  295. package/dist/IconWarehouse-DOw3YseH.cjs +2 -0
  296. package/dist/IconWarning-3AuFwkkg.cjs +2 -0
  297. package/dist/IconWarning-n_GTsWOM.js +16 -0
  298. package/dist/IconWater-DFV09TyV.js +16 -0
  299. package/dist/IconWater-dVEqMZb4.cjs +2 -0
  300. package/dist/IconWeight-Cq12caT_.js +16 -0
  301. package/dist/IconWeight-DfXiP6ob.cjs +2 -0
  302. package/dist/IconWidth-D1f8wank.cjs +2 -0
  303. package/dist/IconWidth-DtPjsKm8.js +16 -0
  304. package/dist/IconWorkspacePremium-DQIbVzlX.cjs +2 -0
  305. package/dist/IconWorkspacePremium-_Olggt_G.js +16 -0
  306. package/dist/IconWrench-C2MHGxho.js +16 -0
  307. package/dist/IconWrench-CZskpiB7.cjs +2 -0
  308. package/dist/IconYoutube-C8cHj1uF.js +16 -0
  309. package/dist/IconYoutube-ChEAKSkt.cjs +2 -0
  310. package/dist/css/reset.css +4 -0
  311. package/dist/css/utilities-base.css +7 -3
  312. package/dist/css/utilities-responsive.css +33 -13
  313. package/dist/css/utilities.css +14 -0
  314. package/dist/css/variables.css +1 -1
  315. package/dist/style.css +1 -1
  316. package/dist/tide-design-system.cjs +2 -2
  317. package/dist/tide-design-system.esm.d.ts +445 -1149
  318. package/dist/tide-design-system.esm.js +2606 -1849
  319. package/dist/utilities/forms.ts +22 -0
  320. package/dist/utilities/validation-deprecated.ts +252 -0
  321. package/dist/utilities/validation.ts +45 -123
  322. package/index.ts +20 -43
  323. package/package.json +3 -3
  324. package/src/assets/css/reset.css +4 -0
  325. package/src/assets/css/utilities-base.css +7 -3
  326. package/src/assets/css/utilities-responsive.css +33 -13
  327. package/src/assets/css/utilities.css +14 -0
  328. package/src/assets/css/variables.css +1 -1
  329. package/src/components/TideAlert.vue +13 -6
  330. package/src/components/TideCarousel.vue +131 -156
  331. package/src/components/TideForm.vue +24 -0
  332. package/src/components/TideInputCheckbox.vue +142 -65
  333. package/src/components/TideInputCheckboxDeprecated.vue +117 -0
  334. package/src/components/TideInputRadio.vue +27 -43
  335. package/src/components/TideInputRadioDeprecated.vue +118 -0
  336. package/src/components/TideInputSelect.vue +80 -47
  337. package/src/components/TideInputSelectDeprecated.vue +245 -0
  338. package/src/components/TideInputSupportingText.vue +35 -0
  339. package/src/components/TideInputText.vue +101 -84
  340. package/src/components/TideInputTextDeprecated.vue +324 -0
  341. package/src/components/TideInputTextarea.vue +71 -57
  342. package/src/components/TideInputTextareaDeprecated.vue +198 -0
  343. package/src/components/TideModal.vue +18 -6
  344. package/src/components/TideSheet.vue +11 -1
  345. package/src/components/TideSwitch.vue +1 -1
  346. package/src/composables/useTideForm.ts +25 -0
  347. package/src/docs/assets/native-input-validation.png +0 -0
  348. package/src/docs/forms.md +484 -0
  349. package/src/docs/upgrading.md +72 -0
  350. package/src/stories/Template.stories.ts +4 -2
  351. package/src/stories/TideAccordionItem.stories.ts +7 -1
  352. package/src/stories/TideAlert.stories.ts +5 -1
  353. package/src/stories/TideBadge.stories.ts +3 -1
  354. package/src/stories/TideBadgeTrustedPartner.stories.ts +3 -1
  355. package/src/stories/TideBadgeVerifiedVehicle.stories.ts +3 -1
  356. package/src/stories/TideButton.stories.ts +5 -1
  357. package/src/stories/TideButtonIcon.stories.ts +5 -1
  358. package/src/stories/TideButtonPagination.stories.ts +5 -1
  359. package/src/stories/TideButtonSegmented.stories.ts +7 -2
  360. package/src/stories/TideCard.stories.ts +5 -1
  361. package/src/stories/TideCarousel.stories.ts +16 -29
  362. package/src/stories/TideChipAction.stories.ts +3 -1
  363. package/src/stories/TideChipFilter.stories.ts +8 -2
  364. package/src/stories/TideChipInput.stories.ts +5 -1
  365. package/src/stories/TideDivider.stories.ts +6 -2
  366. package/src/stories/TideImageBackground.stories.ts +3 -1
  367. package/src/stories/TideIndicator.stories.ts +3 -1
  368. package/src/stories/TideInputCheckbox.stories.ts +8 -2
  369. package/src/stories/TideInputRadio.stories.ts +8 -2
  370. package/src/stories/TideInputSelect.stories.ts +7 -2
  371. package/src/stories/TideInputText.stories.ts +6 -2
  372. package/src/stories/TideInputTextarea.stories.ts +6 -2
  373. package/src/stories/TideLink.stories.ts +7 -3
  374. package/src/stories/TideModal.stories.ts +85 -44
  375. package/src/stories/TidePagination.stories.ts +8 -2
  376. package/src/stories/TidePopover.stories.ts +6 -1
  377. package/src/stories/TideSeoLinks.stories.ts +3 -1
  378. package/src/stories/TideSheet.stories.ts +9 -3
  379. package/src/stories/TideSwitch.stories.ts +7 -1
  380. package/src/types/{Field.ts → FieldDeprecated.ts} +39 -2
  381. package/src/types/Form.ts +0 -57
  382. package/src/types/FormDeprecated.ts +91 -0
  383. package/src/types/Styles.ts +5 -0
  384. package/src/types/TextInput.ts +12 -0
  385. package/src/types/Validation.ts +11 -4
  386. package/src/types/ValidationDeprecated.ts +41 -0
  387. package/src/utilities/forms.ts +22 -0
  388. package/src/utilities/validation-deprecated.ts +252 -0
  389. package/src/utilities/validation.ts +45 -123
  390. package/dist/IconAccountBalance-Ck1QODok.js +0 -16
  391. package/dist/IconAccountBalance-DUpdmQFe.cjs +0 -2
  392. package/dist/IconAcute-Dy5x_yJL.js +0 -16
  393. package/dist/IconAcute-bU4QJ8V7.cjs +0 -2
  394. package/dist/IconAdd-CoVrVzyk.js +0 -16
  395. package/dist/IconAdd-DcDrqXYF.cjs +0 -2
  396. package/dist/IconAiDescription-6Pv0Y_Yt.js +0 -20
  397. package/dist/IconAiDescription-CEkom1qc.cjs +0 -2
  398. package/dist/IconAlignSpaceEven-BF_GmIrK.js +0 -16
  399. package/dist/IconAlignSpaceEven-cqO2Dlov.cjs +0 -2
  400. package/dist/IconApplePay-C56V1wAj.cjs +0 -2
  401. package/dist/IconApplePay-oQ4zV5vN.js +0 -16
  402. package/dist/IconArrowBack-BP2TEpuq.js +0 -16
  403. package/dist/IconArrowBack-FzFtQ6Wh.cjs +0 -2
  404. package/dist/IconArrowCycle-CqKlSl5d.cjs +0 -2
  405. package/dist/IconArrowCycle-TQa-fbVD.js +0 -16
  406. package/dist/IconArrowForward-CkA2-WZe.cjs +0 -2
  407. package/dist/IconArrowForward-VWVINc35.js +0 -16
  408. package/dist/IconArrowRight-BJYT2e-d.js +0 -16
  409. package/dist/IconArrowRight-BxQWtz80.cjs +0 -2
  410. package/dist/IconArrowUp-BM37-Uxb.cjs +0 -2
  411. package/dist/IconArrowUp-JSl5zOyP.js +0 -16
  412. package/dist/IconAssignment-B13NJfNm.cjs +0 -2
  413. package/dist/IconAssignment-CSn4vDyt.js +0 -16
  414. package/dist/IconAttachMoney-CIYp4I2h.js +0 -16
  415. package/dist/IconAttachMoney-CUjPtX-U.cjs +0 -2
  416. package/dist/IconAtvAtv-DDtMKkiz.cjs +0 -2
  417. package/dist/IconAtvAtv-GFhgoQXA.js +0 -20
  418. package/dist/IconAtvDuneBuggy-CmVFELlj.cjs +0 -2
  419. package/dist/IconAtvDuneBuggy-Eou8hc_1.js +0 -20
  420. package/dist/IconAtvGoKart-Cj3k54oS.js +0 -20
  421. package/dist/IconAtvGoKart-D200V7pq.cjs +0 -2
  422. package/dist/IconAtvGolfCart-BGqnqb3G.cjs +0 -2
  423. package/dist/IconAtvGolfCart-CCQwt0_I.js +0 -20
  424. package/dist/IconAtvSandRail-C5P5lWt6.cjs +0 -2
  425. package/dist/IconAtvSandRail-HpaJVocj.js +0 -20
  426. package/dist/IconAtvSideBySide-BxqtCex8.js +0 -20
  427. package/dist/IconAtvSideBySide-dbhLoB1-.cjs +0 -2
  428. package/dist/IconAtvTrailer-CTlZZ8Wn.js +0 -20
  429. package/dist/IconAtvTrailer-tohF8f6D.cjs +0 -2
  430. package/dist/IconAutoRenew-C77Hq4T0.cjs +0 -2
  431. package/dist/IconAutoRenew-Dp5h0lzF.js +0 -16
  432. package/dist/IconAwardStar-CNBpPsCx.cjs +0 -2
  433. package/dist/IconAwardStar-CdAw4NY5.js +0 -16
  434. package/dist/IconBed-B1u5P61X.js +0 -16
  435. package/dist/IconBed-Du8uU-Fq.cjs +0 -2
  436. package/dist/IconBoatmartPwc-CcE6IBYS.cjs +0 -2
  437. package/dist/IconBoatmartPwc-D6wQ7mNA.js +0 -20
  438. package/dist/IconBoatmartTrailer-CfIANY7t.cjs +0 -2
  439. package/dist/IconBoatmartTrailer-hKiD_NXI.js +0 -20
  440. package/dist/IconBolt-CskRJDT1.js +0 -16
  441. package/dist/IconBolt-D3QlzyVv.cjs +0 -2
  442. package/dist/IconBookmark-Dc_xQALq.cjs +0 -2
  443. package/dist/IconBookmark-DsEGlmme.js +0 -16
  444. package/dist/IconBunkhouse-BLo-n_Mb.js +0 -16
  445. package/dist/IconBunkhouse-BUPqUZFs.cjs +0 -2
  446. package/dist/IconCalendarMonth-Cfs-ZKLJ.js +0 -16
  447. package/dist/IconCalendarMonth-ztc4w4Tw.cjs +0 -2
  448. package/dist/IconCall-BCjepEju.js +0 -16
  449. package/dist/IconCall-BKYdkS16.cjs +0 -2
  450. package/dist/IconCallQuality-BRfc8Y1K.cjs +0 -2
  451. package/dist/IconCallQuality-c7UaokVa.js +0 -16
  452. package/dist/IconCarRental-CkVWcpTh.cjs +0 -2
  453. package/dist/IconCarRental-D-qYjRe5.js +0 -16
  454. package/dist/IconCheck-D0w_fKOH.cjs +0 -2
  455. package/dist/IconCheck-DVE4Knnl.js +0 -16
  456. package/dist/IconChevronLeft-DStWQfoj.js +0 -16
  457. package/dist/IconChevronLeft-DhX3pOQ3.cjs +0 -2
  458. package/dist/IconChevronRight-3vFVvnNb.js +0 -16
  459. package/dist/IconChevronRight-BCv__YUh.cjs +0 -2
  460. package/dist/IconClear-D5yRmb93.cjs +0 -2
  461. package/dist/IconClear-F6afoxzY.js +0 -16
  462. package/dist/IconClose-Y-mY3AiS.cjs +0 -2
  463. package/dist/IconClose-eMGGtfEC.js +0 -16
  464. package/dist/IconContract-D6nGc_5y.cjs +0 -2
  465. package/dist/IconContract-f9bj5j-_.js +0 -16
  466. package/dist/IconCrash-B2l3Ie38.js +0 -16
  467. package/dist/IconCrash-BhwhKaB1.cjs +0 -2
  468. package/dist/IconDashboardCustomize-CyQTFASs.js +0 -16
  469. package/dist/IconDashboardCustomize-N7cHDhjT.cjs +0 -2
  470. package/dist/IconDelete-Couv2iBA.js +0 -16
  471. package/dist/IconDelete-LlUqnq04.cjs +0 -2
  472. package/dist/IconDiamond-sol6SUrB.js +0 -16
  473. package/dist/IconDiamond-t4Tf48_s.cjs +0 -2
  474. package/dist/IconDirectionsBoat-IZhI7oCN.cjs +0 -2
  475. package/dist/IconDirectionsBoat-S07T_dm_.js +0 -16
  476. package/dist/IconDomain-DSyC0Set.cjs +0 -2
  477. package/dist/IconDomain-ECxC_qj-.js +0 -16
  478. package/dist/IconDraft-BFxB85ro.js +0 -16
  479. package/dist/IconDraft-DL8E6d1f.cjs +0 -2
  480. package/dist/IconEdit-BoLO_nL5.js +0 -16
  481. package/dist/IconEdit-HzbIdd3z.cjs +0 -2
  482. package/dist/IconEngine-BBaqQJ6N.js +0 -20
  483. package/dist/IconEngine-DCKjsg0s.cjs +0 -2
  484. package/dist/IconEngineering-C60OP34_.js +0 -16
  485. package/dist/IconEngineering-WPQWx43h.cjs +0 -2
  486. package/dist/IconError-CAjFP9Jy.cjs +0 -2
  487. package/dist/IconError-Dd2H7cOG.js +0 -16
  488. package/dist/IconExpandContent-C1xzfkui.js +0 -16
  489. package/dist/IconExpandContent-UDkqNF-G.cjs +0 -2
  490. package/dist/IconExpandLess-Bf6Nypx3.js +0 -16
  491. package/dist/IconExpandLess-HiL8c2v-.cjs +0 -2
  492. package/dist/IconExpandMore-BffI3rnY.js +0 -16
  493. package/dist/IconExpandMore-tOo2Ynbv.cjs +0 -2
  494. package/dist/IconFacebook-7dq6Uz6i.cjs +0 -2
  495. package/dist/IconFacebook-Cki8sZRt.js +0 -16
  496. package/dist/IconFavorite-C6ZJCuY6.cjs +0 -2
  497. package/dist/IconFavorite-CyRSAVdw.js +0 -16
  498. package/dist/IconFavoriteFilled-DJIL-WYR.cjs +0 -2
  499. package/dist/IconFavoriteFilled-DeNJvMmm.js +0 -16
  500. package/dist/IconFlag-a6YLysex.cjs +0 -2
  501. package/dist/IconFlag-aeogw6hc.js +0 -16
  502. package/dist/IconFormatBold-CtYxihT6.js +0 -16
  503. package/dist/IconFormatBold-Yo5bdAwc.cjs +0 -2
  504. package/dist/IconFormatItalic-DSJCzNMj.cjs +0 -2
  505. package/dist/IconFormatItalic-EUVbp7Qb.js +0 -16
  506. package/dist/IconFormatListBulleted-CT9Ocq27.cjs +0 -2
  507. package/dist/IconFormatListBulleted-D-VQIabf.js +0 -16
  508. package/dist/IconForum-BrjEMf33.js +0 -16
  509. package/dist/IconForum-DQrwT4Pb.cjs +0 -2
  510. package/dist/IconGas-D_rJSqnT.js +0 -16
  511. package/dist/IconGas-DaKcTfiu.cjs +0 -2
  512. package/dist/IconGavel-D9XWUMJt.js +0 -16
  513. package/dist/IconGavel-ZdfEJ5bP.cjs +0 -2
  514. package/dist/IconGears-BlhP9t4o.cjs +0 -2
  515. package/dist/IconGears-Cavx6RDS.js +0 -16
  516. package/dist/IconGlobeLocationPin-CdwVS7ad.js +0 -16
  517. package/dist/IconGlobeLocationPin-Dz_hajhl.cjs +0 -2
  518. package/dist/IconGoogle-CW-JtHsA.js +0 -31
  519. package/dist/IconGoogle-DaDS3i9U.cjs +0 -2
  520. package/dist/IconGooglePay-ByaG5WLE.cjs +0 -2
  521. package/dist/IconGooglePay-lhVEuNTf.js +0 -16
  522. package/dist/IconGrid-4jZ_E7sN.cjs +0 -2
  523. package/dist/IconGrid-B-Z-t5S5.js +0 -16
  524. package/dist/IconHandshake-CCtEDb5s.js +0 -16
  525. package/dist/IconHandshake-Dm6HyjPZ.cjs +0 -2
  526. package/dist/IconHandyman-CeFGeaUD.js +0 -16
  527. package/dist/IconHandyman-DWBuUdrY.cjs +0 -2
  528. package/dist/IconHeight-CU7292SF.js +0 -16
  529. package/dist/IconHeight-DdZD0XDB.cjs +0 -2
  530. package/dist/IconHelp-CpHZAsX2.js +0 -16
  531. package/dist/IconHelp-Ks-iBsna.cjs +0 -2
  532. package/dist/IconInfo-Du8txE_y.js +0 -16
  533. package/dist/IconInfo-xZBbCBpg.cjs +0 -2
  534. package/dist/IconInformation-DnC1dUkM.cjs +0 -2
  535. package/dist/IconInformation-fpX8-lfe.js +0 -16
  536. package/dist/IconInsertText-B50Ml556.js +0 -16
  537. package/dist/IconInsertText-DRLSQCif.cjs +0 -2
  538. package/dist/IconInstagram-BAydhrdp.cjs +0 -2
  539. package/dist/IconInstagram-x9ut2Rvt.js +0 -16
  540. package/dist/IconIosShare-BAZa5TGR.js +0 -16
  541. package/dist/IconIosShare-ln3UX-op.cjs +0 -2
  542. package/dist/IconLayout-B7PSx75m.cjs +0 -2
  543. package/dist/IconLayout-Ctl5Nh6E.js +0 -16
  544. package/dist/IconLevellingJack-Cv_L_Xt-.cjs +0 -2
  545. package/dist/IconLevellingJack-OIJRh7On.js +0 -20
  546. package/dist/IconLinkedIn-DpuBRGWk.js +0 -16
  547. package/dist/IconLinkedIn-yIN3rQkH.cjs +0 -2
  548. package/dist/IconLocalShipping-CECgkii_.cjs +0 -2
  549. package/dist/IconLocalShipping-DFGIrDiT.js +0 -16
  550. package/dist/IconLock-CgnOY2yE.cjs +0 -2
  551. package/dist/IconLock-Kkxyx6xF.js +0 -16
  552. package/dist/IconMail-C52wU0bj.cjs +0 -2
  553. package/dist/IconMail-C_KZ99bY.js +0 -16
  554. package/dist/IconMenu-Bgr0cuPj.cjs +0 -2
  555. package/dist/IconMenu-DdVdEPQY.js +0 -16
  556. package/dist/IconMoneyBag-Bpwqj4h_.js +0 -16
  557. package/dist/IconMoneyBag-DIgjDYQp.cjs +0 -2
  558. package/dist/IconMoreHoriz-CMqeM-vy.js +0 -16
  559. package/dist/IconMoreHoriz-CopFNsjL.cjs +0 -2
  560. package/dist/IconNotifications-C-5jqVsp.js +0 -16
  561. package/dist/IconNotifications-CowlXF8e.cjs +0 -2
  562. package/dist/IconOdometer-8X8BZK7G.cjs +0 -2
  563. package/dist/IconOdometer-DOvJTqMC.js +0 -16
  564. package/dist/IconOpenInNew-BECM_cge.js +0 -16
  565. package/dist/IconOpenInNew-NIE7_GBf.cjs +0 -2
  566. package/dist/IconPalette-BnkMmdjx.cjs +0 -2
  567. package/dist/IconPalette-cNHa_Dl9.js +0 -16
  568. package/dist/IconPaypal-0MB9NiPi.js +0 -16
  569. package/dist/IconPaypal-Cm4sbOWR.cjs +0 -2
  570. package/dist/IconPerson-BlD3wl56.cjs +0 -2
  571. package/dist/IconPerson-C9FdsFRF.js +0 -16
  572. package/dist/IconPersonSearch-BAwODsOw.js +0 -16
  573. package/dist/IconPersonSearch-CvzxD13q.cjs +0 -2
  574. package/dist/IconPhotoCamera-Dhq3zkZ1.js +0 -16
  575. package/dist/IconPhotoCamera-LE83ELYg.cjs +0 -2
  576. package/dist/IconPinterest-B2ilympx.js +0 -16
  577. package/dist/IconPinterest-LMg3EmCf.cjs +0 -2
  578. package/dist/IconPlayArrow-DWY4o6mi.js +0 -16
  579. package/dist/IconPlayArrow-DaK8Rma5.cjs +0 -2
  580. package/dist/IconPolicy-CPfGoBvS.cjs +0 -2
  581. package/dist/IconPolicy-CTm0qx9m.js +0 -16
  582. package/dist/IconPower-BNYJxFS-.cjs +0 -2
  583. package/dist/IconPower-El-f1YpW.js +0 -16
  584. package/dist/IconPowerOff-BeF6a0I_.js +0 -16
  585. package/dist/IconPowerOff-BzVbrhfQ.cjs +0 -2
  586. package/dist/IconPriorityHigh-BOUPMj-c.js +0 -16
  587. package/dist/IconPriorityHigh-De-QwFs9.cjs +0 -2
  588. package/dist/IconRemove-DJ8Ats3O.js +0 -16
  589. package/dist/IconRemove-FRKIQpXX.cjs +0 -2
  590. package/dist/IconRequestQuote-63Pc7nFl.cjs +0 -2
  591. package/dist/IconRequestQuote-Dx73kEAB.js +0 -16
  592. package/dist/IconResetWrench-Cszjots_.cjs +0 -2
  593. package/dist/IconResetWrench-afPLSCCR.js +0 -16
  594. package/dist/IconRoad-CXNsqXt3.cjs +0 -2
  595. package/dist/IconRoad-D8LbDPzU.js +0 -16
  596. package/dist/IconRoundedCorner-CBFrVTjO.js +0 -16
  597. package/dist/IconRoundedCorner-s0eqhrw-.cjs +0 -2
  598. package/dist/IconRuler-BbrDrxik.js +0 -16
  599. package/dist/IconRuler-CS4llN2v.cjs +0 -2
  600. package/dist/IconRvClassA-IHRP4eXR.cjs +0 -2
  601. package/dist/IconRvClassA-pAChL2Qm.js +0 -20
  602. package/dist/IconRvClassB-BWEVHWYh.cjs +0 -2
  603. package/dist/IconRvClassB-BWaLlkdV.js +0 -20
  604. package/dist/IconRvClassC-CeDhPBYp.js +0 -20
  605. package/dist/IconRvClassC-CiUYMt7R.cjs +0 -2
  606. package/dist/IconRvFifthWheel-D98H64pq.js +0 -20
  607. package/dist/IconRvFifthWheel-tllq5hmh.cjs +0 -2
  608. package/dist/IconRvFishHouse-B9v3_c4m.js +0 -20
  609. package/dist/IconRvFishHouse-C5B0w81b.cjs +0 -2
  610. package/dist/IconRvParkModel-DJjJJFrS.js +0 -20
  611. package/dist/IconRvParkModel-DU9WYpvA.cjs +0 -2
  612. package/dist/IconRvPopUpCamper-C_L-wpFq.cjs +0 -2
  613. package/dist/IconRvPopUpCamper-DC5JLH5u.js +0 -20
  614. package/dist/IconRvTravelTrailer-CUzyIoJH.js +0 -20
  615. package/dist/IconRvTravelTrailer-DfoQmo80.cjs +0 -2
  616. package/dist/IconRvTruckCamper-CHLJEty2.js +0 -20
  617. package/dist/IconRvTruckCamper-CI5jKToo.cjs +0 -2
  618. package/dist/IconSailing-CP278bNv.cjs +0 -2
  619. package/dist/IconSailing-Ct5A7oe-.js +0 -16
  620. package/dist/IconSchool-DCJoiRB2.cjs +0 -2
  621. package/dist/IconSchool-DkD-by-f.js +0 -16
  622. package/dist/IconSearch-C3_cVelm.js +0 -16
  623. package/dist/IconSearch-CG3sTqyY.cjs +0 -2
  624. package/dist/IconSeating-B2-FR2aI.js +0 -16
  625. package/dist/IconSeating-DPz7Itl5.cjs +0 -2
  626. package/dist/IconSell-B01QAmJJ.js +0 -16
  627. package/dist/IconSell-tiqkK8HB.cjs +0 -2
  628. package/dist/IconSensors-B2yoU18I.cjs +0 -2
  629. package/dist/IconSensors-C9ikFDSl.js +0 -16
  630. package/dist/IconSettings-6iUt_j-N.cjs +0 -2
  631. package/dist/IconSettings-C7CzSyB_.js +0 -16
  632. package/dist/IconShare-CC3TgzM9.js +0 -16
  633. package/dist/IconShare-z3eso-fS.cjs +0 -2
  634. package/dist/IconShieldCheck-BKdiIhJ-.js +0 -16
  635. package/dist/IconShieldCheck-Dn0h4Aut.cjs +0 -2
  636. package/dist/IconShoppingCart-CQZWosiy.js +0 -16
  637. package/dist/IconShoppingCart-Dn7aCgYi.cjs +0 -2
  638. package/dist/IconSleeps-DDIWvIh8.js +0 -16
  639. package/dist/IconSleeps-DMXZj5P6.cjs +0 -2
  640. package/dist/IconSms-Bb3mhfHH.cjs +0 -2
  641. package/dist/IconSms-C22lp6yM.js +0 -16
  642. package/dist/IconSnowflake-DEJHKYBl.cjs +0 -2
  643. package/dist/IconSnowflake-aBZ4o4X2.js +0 -16
  644. package/dist/IconStar-2gDebu9X.js +0 -16
  645. package/dist/IconStar-COuoApVn.cjs +0 -2
  646. package/dist/IconStarFilled-BvH24VJ3.cjs +0 -2
  647. package/dist/IconStarFilled-CI8JFRKm.js +0 -16
  648. package/dist/IconStarHalf-9Mtxrxy2.js +0 -16
  649. package/dist/IconStarHalf-Cf3yNdfW.cjs +0 -2
  650. package/dist/IconSummarize-DdMTFwCZ.cjs +0 -2
  651. package/dist/IconSummarize-DjgKmXYf.js +0 -16
  652. package/dist/IconSwapHoriz-BI3V7cXl.js +0 -16
  653. package/dist/IconSwapHoriz-CHbH-rb1.cjs +0 -2
  654. package/dist/IconSwapVert-Bxn4iSnZ.js +0 -16
  655. package/dist/IconSwapVert-DT_2E9ir.cjs +0 -2
  656. package/dist/IconThreeDRotation-C5sf5vQe.js +0 -29
  657. package/dist/IconThreeDRotation-tzEyR04j.cjs +0 -2
  658. package/dist/IconThumbUp-Bewoaeaz.js +0 -16
  659. package/dist/IconThumbUp-Cv6VtGa7.cjs +0 -2
  660. package/dist/IconTrendingDown-ClqzR4Gm.js +0 -16
  661. package/dist/IconTrendingDown-YxmY8_d7.cjs +0 -2
  662. package/dist/IconTrophy-BvyInFpa.js +0 -16
  663. package/dist/IconTrophy-D68upC1Z.cjs +0 -2
  664. package/dist/IconTune-BeT6cJNb.cjs +0 -2
  665. package/dist/IconTune-DM9oNvly.js +0 -16
  666. package/dist/IconTwitter-CDK1k6Um.cjs +0 -2
  667. package/dist/IconTwitter-Di3mFm4J.js +0 -16
  668. package/dist/IconUmbrella-DdgZRF8v.cjs +0 -2
  669. package/dist/IconUmbrella-KarDrV_0.js +0 -16
  670. package/dist/IconVerified-BSLc-Tng.js +0 -20
  671. package/dist/IconVerified-CE6bl5Tr.cjs +0 -2
  672. package/dist/IconVideocam-Bk2i6zSL.js +0 -16
  673. package/dist/IconVideocam-DFAhIy60.cjs +0 -2
  674. package/dist/IconViewInAr-CyH3TuS9.js +0 -16
  675. package/dist/IconViewInAr-cJRKU-n8.cjs +0 -2
  676. package/dist/IconVisibility-C7r-OBqZ.js +0 -16
  677. package/dist/IconVisibility-CoZqOmFs.cjs +0 -2
  678. package/dist/IconVolumeOff-B1VwsF7D.cjs +0 -2
  679. package/dist/IconVolumeOff-DrXwzNlx.js +0 -16
  680. package/dist/IconVolumeOn-ByK04AMO.cjs +0 -2
  681. package/dist/IconVolumeOn-DMqPq3mL.js +0 -16
  682. package/dist/IconWarehouse-B-WGdkxc.cjs +0 -2
  683. package/dist/IconWarehouse-BLILe5TP.js +0 -16
  684. package/dist/IconWarning-BGb_hd4L.js +0 -16
  685. package/dist/IconWarning-BmJVooFC.cjs +0 -2
  686. package/dist/IconWater-BFIBeGBM.js +0 -16
  687. package/dist/IconWater-BcVoUC58.cjs +0 -2
  688. package/dist/IconWeight-BzjjPVJo.cjs +0 -2
  689. package/dist/IconWeight-IXMjxgaM.js +0 -16
  690. package/dist/IconWidth-CWT_XoXm.js +0 -16
  691. package/dist/IconWidth-DK12b7aq.cjs +0 -2
  692. package/dist/IconWorkspacePremium-B_CTpaCF.js +0 -16
  693. package/dist/IconWorkspacePremium-Dwj3FxW1.cjs +0 -2
  694. package/dist/IconWrench-CHHIpkKv.cjs +0 -2
  695. package/dist/IconWrench-CgaRK8xS.js +0 -16
  696. package/dist/IconYoutube-BBBj6jXd.js +0 -16
  697. package/dist/IconYoutube-DIFl6ykK.cjs +0 -2
@@ -405,12 +405,16 @@
405
405
  .tide-object-contain {object-fit: contain;}
406
406
  .tide-object-scale-down {object-fit: scale-down;}
407
407
 
408
- .tide-opacity {opacity: 1;}
409
- .tide-opacity-none {opacity: 0;}
408
+ .tide-opacity {opacity: 1;}
409
+ .tide-opacity-disabled {opacity: var(--tide-disabled);}
410
+ .tide-opacity-none {opacity: 0;}
410
411
 
411
412
  .tide-pointer-events {pointer-events: auto;}
412
413
  .tide-pointer-events-none {pointer-events: none;}
413
414
 
415
+ .tide-user-select-none {user-select: none;}
416
+ .tide-user-select-initial {user-select: initial;}
417
+
414
418
  .tide-ratio-1\/1 {aspect-ratio: 1 / 1;}
415
419
  .tide-ratio-16\/9 {aspect-ratio: 16 / 9;}
416
420
  .tide-ratio-3\/2 {aspect-ratio: 3 / 2;}
@@ -537,5 +541,5 @@ button.tide-button-secondary:disabled,
537
541
  button.tide-button-tertiary:disabled,
538
542
  button.tide-button-quaternary:disabled,
539
543
  button.tide-button-floating:disabled {
540
- opacity: 0.32;
544
+ opacity: var(--tide-disabled);
541
545
  }
@@ -411,6 +411,10 @@
411
411
  .tide-pointer-events {pointer-events: auto;}
412
412
  .tide-pointer-events-none {pointer-events: none;}
413
413
 
414
+ .tide-user-select-none {user-select: none;}
415
+ .tide-opacity-disabled {opacity: var(--tide-disabled);}
416
+ .tide-user-select-initial {user-select: initial;}
417
+
414
418
  .tide-ratio-1\/1 {aspect-ratio: 1 / 1;}
415
419
  .tide-ratio-16\/9 {aspect-ratio: 16 / 9;}
416
420
  .tide-ratio-3\/2 {aspect-ratio: 3 / 2;}
@@ -537,7 +541,7 @@ button.tide-button-secondary:disabled,
537
541
  button.tide-button-tertiary:disabled,
538
542
  button.tide-button-quaternary:disabled,
539
543
  button.tide-button-floating:disabled {
540
- opacity: 0.32;
544
+ opacity: var(--tide-disabled);
541
545
  }
542
546
 
543
547
  @media (min-width: 768px) {
@@ -948,12 +952,16 @@ button.tide-button-floating:disabled {
948
952
  .sm-tide-object-contain {object-fit: contain;}
949
953
  .sm-tide-object-scale-down {object-fit: scale-down;}
950
954
 
951
- .sm-tide-opacity {opacity: 1;}
952
- .sm-tide-opacity-none {opacity: 0;}
955
+ .sm-tide-opacity {opacity: 1;}
956
+ .sm-tide-opacity-disabled {opacity: var(--tide-disabled);}
957
+ .sm-tide-opacity-none {opacity: 0;}
953
958
 
954
959
  .sm-tide-pointer-events {pointer-events: auto;}
955
960
  .sm-tide-pointer-events-none {pointer-events: none;}
956
961
 
962
+ .sm-tide-user-select-none {user-select: none;}
963
+ .sm-tide-user-select-initial {user-select: initial;}
964
+
957
965
  .sm-tide-ratio-1\/1 {aspect-ratio: 1 / 1;}
958
966
  .sm-tide-ratio-16\/9 {aspect-ratio: 16 / 9;}
959
967
  .sm-tide-ratio-3\/2 {aspect-ratio: 3 / 2;}
@@ -1080,7 +1088,7 @@ button.tide-button-floating:disabled {
1080
1088
  button.sm-tide-button-tertiary:disabled,
1081
1089
  button.sm-tide-button-quaternary:disabled,
1082
1090
  button.sm-tide-button-floating:disabled {
1083
- opacity: 0.32;
1091
+ opacity: var(--tide-disabled);
1084
1092
  }
1085
1093
  }
1086
1094
 
@@ -1492,12 +1500,16 @@ button.tide-button-floating:disabled {
1492
1500
  .md-tide-object-contain {object-fit: contain;}
1493
1501
  .md-tide-object-scale-down {object-fit: scale-down;}
1494
1502
 
1495
- .md-tide-opacity {opacity: 1;}
1496
- .md-tide-opacity-none {opacity: 0;}
1503
+ .md-tide-opacity {opacity: 1;}
1504
+ .md-tide-opacity-disabled {opacity: var(--tide-disabled);}
1505
+ .md-tide-opacity-none {opacity: 0;}
1497
1506
 
1498
1507
  .md-tide-pointer-events {pointer-events: auto;}
1499
1508
  .md-tide-pointer-events-none {pointer-events: none;}
1500
1509
 
1510
+ .md-tide-user-select-none {user-select: none;}
1511
+ .md-tide-user-select-initial {user-select: initial;}
1512
+
1501
1513
  .md-tide-ratio-1\/1 {aspect-ratio: 1 / 1;}
1502
1514
  .md-tide-ratio-16\/9 {aspect-ratio: 16 / 9;}
1503
1515
  .md-tide-ratio-3\/2 {aspect-ratio: 3 / 2;}
@@ -1624,7 +1636,7 @@ button.tide-button-floating:disabled {
1624
1636
  button.md-tide-button-tertiary:disabled,
1625
1637
  button.md-tide-button-quaternary:disabled,
1626
1638
  button.md-tide-button-floating:disabled {
1627
- opacity: 0.32;
1639
+ opacity: var(--tide-disabled);
1628
1640
  }
1629
1641
  }
1630
1642
 
@@ -2036,12 +2048,16 @@ button.tide-button-floating:disabled {
2036
2048
  .lg-tide-object-contain {object-fit: contain;}
2037
2049
  .lg-tide-object-scale-down {object-fit: scale-down;}
2038
2050
 
2039
- .lg-tide-opacity {opacity: 1;}
2040
- .lg-tide-opacity-none {opacity: 0;}
2051
+ .lg-tide-opacity {opacity: 1;}
2052
+ .lg-tide-opacity-disabled {opacity: var(--tide-disabled);}
2053
+ .lg-tide-opacity-none {opacity: 0;}
2041
2054
 
2042
2055
  .lg-tide-pointer-events {pointer-events: auto;}
2043
2056
  .lg-tide-pointer-events-none {pointer-events: none;}
2044
2057
 
2058
+ .lg-tide-user-select-none {user-select: none;}
2059
+ .lg-tide-user-select-initial {user-select: initial;}
2060
+
2045
2061
  .lg-tide-ratio-1\/1 {aspect-ratio: 1 / 1;}
2046
2062
  .lg-tide-ratio-16\/9 {aspect-ratio: 16 / 9;}
2047
2063
  .lg-tide-ratio-3\/2 {aspect-ratio: 3 / 2;}
@@ -2168,7 +2184,7 @@ button.tide-button-floating:disabled {
2168
2184
  button.lg-tide-button-tertiary:disabled,
2169
2185
  button.lg-tide-button-quaternary:disabled,
2170
2186
  button.lg-tide-button-floating:disabled {
2171
- opacity: 0.32;
2187
+ opacity: var(--tide-disabled);
2172
2188
  }
2173
2189
  }
2174
2190
 
@@ -2580,12 +2596,16 @@ button.tide-button-floating:disabled {
2580
2596
  .xl-tide-object-contain {object-fit: contain;}
2581
2597
  .xl-tide-object-scale-down {object-fit: scale-down;}
2582
2598
 
2583
- .xl-tide-opacity {opacity: 1;}
2584
- .xl-tide-opacity-none {opacity: 0;}
2599
+ .xl-tide-opacity {opacity: 1;}
2600
+ .xl-tide-opacity-disabled {opacity: var(--tide-disabled);}
2601
+ .xl-tide-opacity-none {opacity: 0;}
2585
2602
 
2586
2603
  .xl-tide-pointer-events {pointer-events: auto;}
2587
2604
  .xl-tide-pointer-events-none {pointer-events: none;}
2588
2605
 
2606
+ .xl-tide-user-select-none {user-select: none;}
2607
+ .xl-tide-user-select-initial {user-select: initial;}
2608
+
2589
2609
  .xl-tide-ratio-1\/1 {aspect-ratio: 1 / 1;}
2590
2610
  .xl-tide-ratio-16\/9 {aspect-ratio: 16 / 9;}
2591
2611
  .xl-tide-ratio-3\/2 {aspect-ratio: 3 / 2;}
@@ -2712,6 +2732,6 @@ button.tide-button-floating:disabled {
2712
2732
  button.xl-tide-button-tertiary:disabled,
2713
2733
  button.xl-tide-button-quaternary:disabled,
2714
2734
  button.xl-tide-button-floating:disabled {
2715
- opacity: 0.32;
2735
+ opacity: var(--tide-disabled);
2716
2736
  }
2717
2737
  }
@@ -1,2 +1,16 @@
1
1
  @import './utilities-base.css';
2
2
  @import './utilities-responsive.css';
3
+
4
+ /* Non-responsive utility classes */
5
+
6
+ .tide-screen-reader-only {
7
+ position: absolute;
8
+ width: 1px;
9
+ height: 1px;
10
+ margin: -1px;
11
+ padding: 0;
12
+ overflow: hidden;
13
+ clip: rect(0, 0, 0, 0);
14
+ white-space: nowrap;
15
+ border: 0;
16
+ }
@@ -53,7 +53,7 @@
53
53
  --tide-transparent-400: color-mix(in srgb, black 50%, transparent);
54
54
 
55
55
  /* Blur */
56
- --tide-bg-blur: 8px;
56
+ --tide-bg-blur: blur(8px);
57
57
 
58
58
  /* Global tonal palette */
59
59
  --tide-gray-100: #FFFFFF;
@@ -1,4 +1,6 @@
1
1
  <script lang="ts" setup>
2
+ import { computed } from 'vue';
3
+
2
4
  import TideButtonIcon from '@/components/TideButtonIcon.vue';
3
5
  import TideIcon from '@/components/TideIcon.vue';
4
6
  import { ALERT } from '@/types/Alert';
@@ -28,6 +30,13 @@
28
30
  });
29
31
 
30
32
  const emit = defineEmits<Emits>();
33
+
34
+ const iconType = computed(() => {
35
+ if (props.type === ALERT.ERROR) return ICON.PRIORITY_HIGH;
36
+ if (props.type === ALERT.SUCCESS) return ICON.CHECK;
37
+ if (props.type === ALERT.WARNING) return ICON.WARNING;
38
+ return ICON.INFORMATION;
39
+ });
31
40
  </script>
32
41
 
33
42
  <template>
@@ -64,15 +73,13 @@
64
73
  v-if="!props.isToast"
65
74
  >
66
75
  <TideIcon
67
- :icon="ICON.INFORMATION"
76
+ :icon="iconType"
68
77
  :size="SIZE.SMALL"
69
78
  />
70
79
  </div>
71
80
 
72
- <div :class="['tide-alert-heading', CSS.DISPLAY.FLEX, CSS.AXIS2.CENTER]">
73
- <h2 :class="[CSS.FONT.ROLE.LABEL_1_SEMIBOLD]">
74
- {{ props.heading }}
75
- </h2>
81
+ <div :class="['tide-alert-heading', CSS.DISPLAY.FLEX, CSS.AXIS2.CENTER, CSS.FONT.ROLE.LABEL_1_SEMIBOLD]">
82
+ {{ props.heading }}
76
83
  </div>
77
84
 
78
85
  <TideButtonIcon
@@ -84,7 +91,7 @@
84
91
  v-if="isDismissible"
85
92
  />
86
93
 
87
- <div :class="['tide-alert-body', CSS.FONT.ROLE.LABEL_1, !props.isToast && CSS.FONT.COLOR.SURFACE.VARIANT]">
94
+ <div :class="['tide-alert-body', CSS.FONT.ROLE.BODY_2, !props.isToast && CSS.FONT.COLOR.SURFACE.DEFAULT]">
88
95
  <slot />
89
96
  </div>
90
97
  </div>
@@ -1,18 +1,17 @@
1
1
  <script lang="ts" setup>
2
- import { onMounted, onUnmounted, onUpdated, ref, watch } from 'vue';
2
+ import { onMounted, onUnmounted, ref } from 'vue';
3
3
 
4
4
  import TideButtonIcon from '@/components/TideButtonIcon.vue';
5
5
  import { ICON } from '@/types/Icon';
6
6
  import { PRIORITY } from '@/types/Priority';
7
7
  import { CSS } from '@/types/Styles';
8
8
 
9
- import type { Ref } from 'vue';
10
-
11
9
  type Props = {
12
10
  bleed?: number;
13
11
  isFloating?: boolean;
14
12
  isHeadline1?: boolean;
15
13
  isHideawayButtons?: boolean;
14
+ isScrollByPage?: boolean;
16
15
  isTouchscreen?: boolean;
17
16
  subtitle?: string;
18
17
  title?: string;
@@ -23,174 +22,150 @@
23
22
  isFloating: false,
24
23
  isHeadline1: false,
25
24
  isHideawayButtons: true,
25
+ isScrollByPage: true,
26
26
  isTouchscreen: undefined,
27
27
  subtitle: undefined,
28
28
  title: undefined,
29
29
  });
30
30
 
31
31
  type Emits = {
32
- (event: 'slideChange', slideIndex: number): void;
33
32
  (event: 'slidesAddedToView', slidesInView: number[]): void;
34
33
  };
35
34
 
36
35
  const emit = defineEmits<Emits>();
37
36
 
38
- const containerRef: Ref<HTMLDivElement | null> = ref(null);
37
+ const containerRef = ref<HTMLDivElement | null>(null);
38
+ const isFirstSlide = ref<boolean>(true);
39
+ const isLastSlide = ref<boolean>(false);
40
+ const showButtons = ref<boolean>(true);
39
41
  const slideObserver = ref<IntersectionObserver | null>(null);
42
+ const slidesInView = ref<number[]>([]);
40
43
  const slotObserver = ref<MutationObserver | null>(null);
41
- const contentRightEdge = ref();
42
- const contentWidth = ref();
43
- const currentSlide = ref(0);
44
- const frameWidth = ref();
45
- const hasOverflow = ref();
46
- const isFirstSlide = ref();
47
- const isLastSlide = ref();
48
- const lastPosition = ref();
49
- const showButtons = ref();
50
44
 
51
- const updateContainerBleed = () => {
52
- if (props.bleed == undefined) return;
53
- if (containerRef.value === null) return;
45
+ const slides = ref<HTMLElement[]>([]);
54
46
 
55
- if (isLastSlide.value && showButtons.value) {
56
- // Prevent gradient from bleeding off left edge in last position.
57
- containerRef.value.style.margin = `-${props.bleed}px -${props.bleed}px -${props.bleed}px 0`;
58
- containerRef.value.style.padding = `${props.bleed}px ${props.bleed}px ${props.bleed}px 0`;
59
- } else {
60
- // Prevent gradient from bleeding off right edge in first position.
61
- containerRef.value.style.margin = `-${props.bleed}px 0 -${props.bleed}px -${props.bleed}px`;
62
- containerRef.value.style.padding = `${props.bleed}px 0 ${props.bleed}px ${props.bleed}px`;
63
- }
47
+ // TODO: debounce
48
+ const handleScroll = () => {
49
+ updateContainerBleed();
64
50
  };
65
51
 
66
- /**
67
- * Measure the current slide based on the scroll
68
- * position of the frame. The current slide is
69
- * the slide that is closest to the left edge of
70
- * the frame.
71
- */
72
- const measureCurrentSlide = () => {
73
- const container = containerRef.value;
74
- if (!container) return;
52
+ const observeSlides = () => {
53
+ const options = {
54
+ root: containerRef?.value,
55
+ rootMargin: '0px 1px 0px 0px',
56
+ threshold: 1,
57
+ };
75
58
 
76
- // Cast once, so TS knows these are HTMLElements
77
- const slideOffsets = Array.from(container.children as HTMLCollectionOf<HTMLElement>).map(
78
- (slide) => slide.offsetLeft
79
- );
59
+ slideObserver.value = new IntersectionObserver((entries) => {
60
+ let slidesAddedToView: number[] = [];
80
61
 
81
- if (slideOffsets.length === 0) return;
62
+ entries.forEach((entry) => {
63
+ const slideIndex = slides.value.indexOf(entry.target as HTMLElement);
82
64
 
83
- const scrollLeft = container.scrollLeft;
65
+ if (entry.isIntersecting) {
66
+ slidesAddedToView.push(slideIndex);
67
+ slidesInView.value.push(slideIndex);
68
+ } else {
69
+ slidesInView.value = slidesInView.value.filter((slide) => slide !== slideIndex);
70
+ }
84
71
 
85
- const closestSlideOffset = slideOffsets.reduce((prev, curr) =>
86
- Math.abs(curr - scrollLeft) < Math.abs(prev - scrollLeft) ? curr : prev
87
- );
72
+ slidesInView.value.sort((a, b) => a - b);
73
+ });
88
74
 
89
- currentSlide.value = slideOffsets.indexOf(closestSlideOffset);
75
+ isFirstSlide.value = slidesInView.value.includes(0);
76
+ isLastSlide.value = slidesInView.value.includes(slides.value.length - 1);
90
77
 
91
- updateContainerBleed();
92
- };
78
+ if (slidesAddedToView.length > 0) emit('slidesAddedToView', slidesAddedToView);
79
+ }, options);
93
80
 
94
- const measureDom = () => {
95
- if (containerRef.value === null) return;
96
- contentRightEdge.value = Math.round(containerRef.value.scrollLeft + containerRef.value.clientWidth);
97
- contentWidth.value = containerRef.value.scrollWidth;
98
- frameWidth.value = containerRef.value.clientWidth;
99
- hasOverflow.value = contentWidth.value > frameWidth.value;
100
- isFirstSlide.value = currentSlide.value === 0;
101
- isLastSlide.value = contentRightEdge.value === contentWidth.value;
102
- lastPosition.value = containerRef.value.scrollWidth - containerRef.value.clientWidth;
103
- showButtons.value = hasOverflow.value && !props.isTouchscreen;
104
-
105
- measureCurrentSlide();
81
+ slides.value.forEach((child) => {
82
+ if (slideObserver.value) slideObserver.value.observe(child);
83
+ });
106
84
  };
107
85
 
108
- // TODO: debounce this
109
- const handleScroll = () => {
110
- measureDom();
86
+ const observeSlot = () => {
87
+ const observerCallback = () => {
88
+ if (containerRef.value === null) return;
89
+
90
+ slides.value = Array.from(containerRef.value.children) as HTMLElement[];
91
+ observeSlides();
92
+ };
93
+
94
+ slotObserver.value = new MutationObserver(observerCallback);
95
+
96
+ if (containerRef.value) slotObserver.value.observe(containerRef.value, { childList: true });
111
97
  };
112
98
 
113
- const scrollToSlide = (slideIndex: number) => {
99
+ const scrollToOffset = (target: number) => {
114
100
  if (containerRef.value === null) return;
101
+
115
102
  containerRef.value.scrollTo({
116
103
  behavior: 'smooth',
117
- left: (containerRef.value.children[slideIndex] as HTMLElement).offsetLeft,
104
+ left: target,
118
105
  });
119
106
  };
120
107
 
121
- const showNextSlide = () => {
122
- if (containerRef.value === null) return;
123
- if (contentRightEdge.value > contentWidth.value) {
124
- containerRef.value.scrollTo({
125
- behavior: 'smooth',
126
- left: contentWidth.value,
127
- });
128
- } else if (!isLastSlide.value) {
129
- scrollToSlide(currentSlide.value + 1);
130
- }
108
+ const showNextPage = () => {
109
+ if (slidesInView.value.length === 0) return;
110
+
111
+ const nextSlide: number = slidesInView.value[slidesInView.value.length - 1] + 1;
112
+
113
+ scrollToOffset(slides.value[nextSlide].offsetLeft);
131
114
  };
132
115
 
133
- const showPreviousSlide = () => {
134
- if (!isFirstSlide.value) {
135
- scrollToSlide(currentSlide.value - 1);
136
- }
116
+ const showPreviousPage = () => {
117
+ if (slidesInView.value.length === 0) return;
118
+
119
+ const previousSlide: number = slidesInView.value[0] - slidesInView.value.length;
120
+
121
+ scrollToOffset(slides.value[previousSlide]?.offsetLeft || 0);
137
122
  };
138
123
 
139
- const observeSlides = () => {
140
- const options = {
141
- root: containerRef?.value,
142
- rootMargin: '0px',
143
- threshold: 0.5,
144
- };
124
+ const showNextSlide = () => {
125
+ if (slidesInView.value.length === 0) return;
145
126
 
146
- slideObserver.value = new IntersectionObserver((entries) => {
147
- let slides: number[] = [];
127
+ const nextSlide: number = slidesInView.value.length > 1 ? slidesInView.value[1] : slidesInView.value[0] + 1;
148
128
 
149
- entries.forEach((entry) => {
150
- const slideIndex = Array.from(containerRef.value?.children ?? []).indexOf(entry.target);
151
- if (entry.isIntersecting) {
152
- slides.push(slideIndex);
153
- }
154
- });
129
+ scrollToOffset(slides.value[nextSlide].offsetLeft);
130
+ };
155
131
 
156
- if (slides.length > 0) emit('slidesAddedToView', slides);
157
- }, options);
158
- Array.from(containerRef.value?.children ?? []).forEach((child) => {
159
- if (slideObserver.value) slideObserver.value.observe(child);
160
- });
132
+ const showPreviousSlide = () => {
133
+ if (slidesInView.value.length === 0) return;
134
+
135
+ const previousSlide: number = slidesInView.value[0] - 1;
136
+
137
+ scrollToOffset(slides.value[previousSlide].offsetLeft);
161
138
  };
162
139
 
163
- const observeSlot = () => {
164
- const observerCallback = () => {
165
- observeSlides();
166
- };
167
- slotObserver.value = new MutationObserver(observerCallback);
168
- if (containerRef.value) slotObserver.value.observe(containerRef.value, { childList: true });
140
+ const updateContainerBleed = () => {
141
+ if (containerRef.value === null) return;
142
+ if (props.bleed == undefined) return;
143
+
144
+ if (isLastSlide.value && showButtons.value) {
145
+ // Prevent gradient from bleeding off left edge in last position.
146
+ containerRef.value.style.margin = `-${props.bleed}px -${props.bleed}px -${props.bleed}px 0`;
147
+ containerRef.value.style.padding = `${props.bleed}px ${props.bleed}px ${props.bleed}px 0`;
148
+ } else {
149
+ // Prevent gradient from bleeding off right edge in first position.
150
+ containerRef.value.style.margin = `-${props.bleed}px 0 -${props.bleed}px -${props.bleed}px`;
151
+ containerRef.value.style.padding = `${props.bleed}px 0 ${props.bleed}px ${props.bleed}px`;
152
+ }
169
153
  };
170
154
 
171
155
  onMounted(() => {
172
- if (window) {
173
- window.addEventListener('resize', measureDom);
174
- }
156
+ if (containerRef.value === null) return;
157
+
158
+ slides.value = Array.from(containerRef.value.children) as HTMLElement[];
175
159
 
176
- measureDom();
177
160
  observeSlides();
178
161
  observeSlot();
162
+ updateContainerBleed();
179
163
  });
180
164
 
181
165
  onUnmounted(() => {
182
- window.removeEventListener('resize', measureDom);
183
166
  slideObserver.value?.disconnect();
184
167
  slotObserver.value?.disconnect();
185
168
  });
186
-
187
- onUpdated(() => {
188
- measureDom();
189
- });
190
-
191
- watch(currentSlide, () => {
192
- emit('slideChange', currentSlide.value);
193
- });
194
169
  </script>
195
170
 
196
171
  <template>
@@ -207,21 +182,21 @@
207
182
  >
208
183
  <section
209
184
  :class="[CSS.DISPLAY.FLEX, props.title ? CSS.AXIS1.BETWEEN : CSS.AXIS1.END, CSS.AXIS2.CENTER, CSS.WIDTH.FULL]"
210
- v-if="!props.isFloating && (showButtons || props.title)"
185
+ v-if="(!props.isFloating && showButtons) || props.title"
211
186
  >
212
187
  <div
213
- :class="[CSS.DISPLAY.FLEX, CSS.AXIS2.CENTER, CSS.GAP.ONE]"
214
- v-if="props.title || props.subtitle"
188
+ :class="[CSS.DISPLAY.FLEX, CSS.FLEX.WRAP, CSS.AXIS2.CENTER, CSS.GAP.ONE]"
189
+ v-if="props.title"
215
190
  >
216
191
  <div
217
- :class="[isHeadline1 ? CSS.FONT.ROLE.HEADLINE_1 : CSS.FONT.ROLE.HEADLINE_2]"
192
+ :class="[CSS.WHITESPACE_WRAP.OFF, isHeadline1 ? CSS.FONT.ROLE.HEADLINE_1 : CSS.FONT.ROLE.HEADLINE_2]"
218
193
  v-if="props.title"
219
194
  >
220
195
  {{ props.title }}
221
196
  </div>
222
197
 
223
198
  <div
224
- :class="[CSS.FONT.ROLE.LABEL_2, CSS.FONT.COLOR.SURFACE.VARIANT]"
199
+ :class="[CSS.WHITESPACE_WRAP.OFF, CSS.FONT.ROLE.LABEL_2, CSS.FONT.COLOR.SURFACE.VARIANT]"
225
200
  v-if="props.subtitle"
226
201
  >
227
202
  {{ props.subtitle }}
@@ -230,20 +205,20 @@
230
205
 
231
206
  <div
232
207
  :class="[CSS.DISPLAY.FLEX, CSS.AXIS2.CENTER, CSS.GAP.ONE]"
233
- v-if="showButtons"
208
+ v-if="!props.isFloating && showButtons"
234
209
  >
235
210
  <TideButtonIcon
236
- :disabled="currentSlide === 0"
211
+ :disabled="isFirstSlide"
237
212
  :icon="ICON.CHEVRON_LEFT"
238
213
  :priority="PRIORITY.TERTIARY"
239
- @click="showPreviousSlide"
214
+ @click="isScrollByPage ? showPreviousPage() : showPreviousSlide()"
240
215
  />
241
216
 
242
217
  <TideButtonIcon
243
218
  :disabled="isLastSlide"
244
219
  :icon="ICON.CHEVRON_RIGHT"
245
220
  :priority="PRIORITY.TERTIARY"
246
- @click="showNextSlide"
221
+ @click="isScrollByPage ? showNextPage() : showNextSlide()"
247
222
  />
248
223
  </div>
249
224
  </section>
@@ -267,38 +242,38 @@
267
242
  >
268
243
  <slot />
269
244
  </ul>
270
- </div>
271
245
 
272
- <div
273
- :class="[
274
- 'tide-carousel-button-overlay',
275
- CSS.POSITION.ABSOLUTE,
276
- CSS.POSITIONING.TOP,
277
- CSS.DISPLAY.FLEX,
278
- CSS.AXIS1.BETWEEN,
279
- CSS.AXIS2.CENTER,
280
- CSS.WIDTH.FULL,
281
- CSS.HEIGHT.FULL,
282
- CSS.POINTER_EVENTS.OFF,
283
- props.isHideawayButtons ? 'hideaway' : '',
284
- ]"
285
- v-if="isFloating && showButtons"
286
- >
287
- <TideButtonIcon
288
- :class="[CSS.MARGIN.LEFT.ONE, CSS.POINTER_EVENTS.ON]"
289
- :disabled="currentSlide === 0"
290
- :icon="ICON.CHEVRON_LEFT"
291
- :priority="PRIORITY.QUATERNARY"
292
- @click="showPreviousSlide"
293
- />
294
-
295
- <TideButtonIcon
296
- :class="[CSS.MARGIN.RIGHT.ONE, CSS.POINTER_EVENTS.ON]"
297
- :disabled="isLastSlide"
298
- :icon="ICON.CHEVRON_RIGHT"
299
- :priority="PRIORITY.QUATERNARY"
300
- @click="showNextSlide"
301
- />
246
+ <div
247
+ :class="[
248
+ 'tide-carousel-button-overlay',
249
+ CSS.POSITION.ABSOLUTE,
250
+ CSS.POSITIONING.TOP,
251
+ CSS.DISPLAY.FLEX,
252
+ CSS.AXIS1.BETWEEN,
253
+ CSS.AXIS2.CENTER,
254
+ CSS.WIDTH.FULL,
255
+ CSS.HEIGHT.FULL,
256
+ CSS.POINTER_EVENTS.OFF,
257
+ props.isHideawayButtons ? 'hideaway' : '',
258
+ ]"
259
+ v-if="isFloating && showButtons"
260
+ >
261
+ <TideButtonIcon
262
+ :class="[CSS.MARGIN.LEFT.ONE, CSS.POINTER_EVENTS.ON]"
263
+ :disabled="isFirstSlide"
264
+ :icon="ICON.CHEVRON_LEFT"
265
+ :priority="PRIORITY.QUATERNARY"
266
+ @click="isScrollByPage ? showPreviousPage() : showPreviousSlide()"
267
+ />
268
+
269
+ <TideButtonIcon
270
+ :class="[CSS.MARGIN.RIGHT.ONE, CSS.POINTER_EVENTS.ON]"
271
+ :disabled="isLastSlide"
272
+ :icon="ICON.CHEVRON_RIGHT"
273
+ :priority="PRIORITY.QUATERNARY"
274
+ @click="isScrollByPage ? showNextPage() : showNextSlide()"
275
+ />
276
+ </div>
302
277
  </div>
303
278
  </section>
304
279
  </template>
@@ -0,0 +1,24 @@
1
+ <script setup lang="ts">
2
+ import { useTideForm } from '@/composables/useTideForm';
3
+
4
+ type Emits = {
5
+ (event: 'submit', e: SubmitEvent): void;
6
+ };
7
+ const emit = defineEmits<Emits>();
8
+
9
+ const { revealValidationErrors } = useTideForm();
10
+
11
+ const handleSubmit = (e: SubmitEvent) => {
12
+ revealValidationErrors();
13
+ emit('submit', e);
14
+ };
15
+ </script>
16
+
17
+ <template>
18
+ <form
19
+ @submit.prevent="handleSubmit"
20
+ novalidate
21
+ >
22
+ <slot />
23
+ </form>
24
+ </template>