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.
- package/README.md +1 -0
- package/dist/IconAccountBalance-B9rJ09ax.js +16 -0
- package/dist/IconAccountBalance-t66sPb0V.cjs +2 -0
- package/dist/IconAcute-9dHrmblT.js +16 -0
- package/dist/IconAcute-kA8NXjsF.cjs +2 -0
- package/dist/IconAdd-BsJiPHYa.js +16 -0
- package/dist/IconAdd-Bwkom_hG.cjs +2 -0
- package/dist/IconAiDescription-CFPMCDKK.cjs +2 -0
- package/dist/IconAiDescription-fQ_B1UGe.js +20 -0
- package/dist/IconAlignSpaceEven-B2UIi1ao.js +16 -0
- package/dist/IconAlignSpaceEven-DKSbfzb-.cjs +2 -0
- package/dist/IconApplePay-BBSCGFjG.cjs +2 -0
- package/dist/IconApplePay-DS6fQdV_.js +16 -0
- package/dist/IconArrowBack-CUHuJHxp.cjs +2 -0
- package/dist/IconArrowBack-CZSCZ-Jf.js +16 -0
- package/dist/IconArrowCycle-D3f38VT-.js +16 -0
- package/dist/IconArrowCycle-R7Q8EDQJ.cjs +2 -0
- package/dist/IconArrowForward-09bz9o1h.cjs +2 -0
- package/dist/IconArrowForward-CICM-aJ1.js +16 -0
- package/dist/IconArrowRight-CwweSeyO.js +16 -0
- package/dist/IconArrowRight-Np65RzRK.cjs +2 -0
- package/dist/IconArrowUp-7TI0p224.js +16 -0
- package/dist/IconArrowUp-DrhwTcVn.cjs +2 -0
- package/dist/IconAssignment-DGD2WaCW.cjs +2 -0
- package/dist/IconAssignment-DQQnmJc_.js +16 -0
- package/dist/IconAttachMoney-DFObJ1fx.cjs +2 -0
- package/dist/IconAttachMoney-sLj77NOR.js +16 -0
- package/dist/IconAtvAtv-DubJwTjK.cjs +2 -0
- package/dist/IconAtvAtv-bfqGL_Iq.js +20 -0
- package/dist/IconAtvDuneBuggy-CbiyQRZg.js +20 -0
- package/dist/IconAtvDuneBuggy-CjN1kUXQ.cjs +2 -0
- package/dist/IconAtvGoKart-BxqcGKzS.js +20 -0
- package/dist/IconAtvGoKart-C6lX6Uq4.cjs +2 -0
- package/dist/IconAtvGolfCart-6Xwju3k6.js +20 -0
- package/dist/IconAtvGolfCart-DWAt3bvk.cjs +2 -0
- package/dist/IconAtvSandRail-DGwmb5aU.cjs +2 -0
- package/dist/IconAtvSandRail-dKmA3KoG.js +20 -0
- package/dist/IconAtvSideBySide-CVSUrX7w.js +20 -0
- package/dist/IconAtvSideBySide-OvuV0qFX.cjs +2 -0
- package/dist/IconAtvTrailer-BB6C_WKk.js +20 -0
- package/dist/IconAtvTrailer-D_aI1qUx.cjs +2 -0
- package/dist/IconAutoRenew-Bl-Obhh6.js +16 -0
- package/dist/IconAutoRenew-CRnGvhzj.cjs +2 -0
- package/dist/IconAwardStar-Dx2metNr.cjs +2 -0
- package/dist/IconAwardStar-KYYsH2ss.js +16 -0
- package/dist/IconBed-BVLiRAhU.js +16 -0
- package/dist/IconBed-o4YHr8QY.cjs +2 -0
- package/dist/IconBoatmartPwc-B3seLCYC.js +20 -0
- package/dist/IconBoatmartPwc-BKltWtRW.cjs +2 -0
- package/dist/IconBoatmartTrailer-BosS4Ix8.js +20 -0
- package/dist/IconBoatmartTrailer-D3firMg5.cjs +2 -0
- package/dist/IconBolt-BTeYzS6k.cjs +2 -0
- package/dist/IconBolt-D-BSIXex.js +16 -0
- package/dist/IconBookmark-CitAJpUy.cjs +2 -0
- package/dist/IconBookmark-D3Pu86n4.js +16 -0
- package/dist/IconBunkhouse-B1covD1i.cjs +2 -0
- package/dist/IconBunkhouse-B4PaVH2y.js +16 -0
- package/dist/IconCalendarMonth-CortoSy-.js +16 -0
- package/dist/IconCalendarMonth-DfHe6Olt.cjs +2 -0
- package/dist/IconCall-6gUYtYnc.cjs +2 -0
- package/dist/IconCall-DRysHKSn.js +16 -0
- package/dist/IconCallQuality-BMVs2M2s.js +16 -0
- package/dist/IconCallQuality-DseNWKcQ.cjs +2 -0
- package/dist/IconCarRental-CaH55o-0.cjs +2 -0
- package/dist/IconCarRental-qvIsiGfR.js +16 -0
- package/dist/IconCheck-CliQNN_D.js +16 -0
- package/dist/IconCheck-DrU3Xqj-.cjs +2 -0
- package/dist/IconChevronLeft-CD73NwTB.cjs +2 -0
- package/dist/IconChevronLeft-hQC1St0W.js +16 -0
- package/dist/IconChevronRight-CNHvWIJQ.cjs +2 -0
- package/dist/IconChevronRight-DVYcrzWE.js +16 -0
- package/dist/IconClear-COYKsp8t.js +16 -0
- package/dist/IconClear-Ddi_gQQW.cjs +2 -0
- package/dist/IconClose-ClKjVrRR.cjs +2 -0
- package/dist/IconClose-HSRbXCDE.js +16 -0
- package/dist/IconContract-BMNU7dRH.cjs +2 -0
- package/dist/IconContract-BaV1mGEr.js +16 -0
- package/dist/IconCrash-BzlfUp1G.cjs +2 -0
- package/dist/IconCrash-ClWQK2fw.js +16 -0
- package/dist/IconDashboardCustomize-BAGay10U.cjs +2 -0
- package/dist/IconDashboardCustomize-BJEcZ-jN.js +16 -0
- package/dist/IconDelete-CUu2bGqQ.cjs +2 -0
- package/dist/IconDelete-DJwergoy.js +16 -0
- package/dist/IconDiamond-BeD6bdL2.cjs +2 -0
- package/dist/IconDiamond-D34wtBhd.js +16 -0
- package/dist/IconDirectionsBoat-B0wTnd3o.cjs +2 -0
- package/dist/IconDirectionsBoat-ByiHuypy.js +16 -0
- package/dist/IconDomain-CXsBLm5C.js +16 -0
- package/dist/IconDomain-Dxw5ILrL.cjs +2 -0
- package/dist/IconDraft-DR6EZSwa.cjs +2 -0
- package/dist/IconDraft-qSYk5cPm.js +16 -0
- package/dist/IconEdit-CFeDlBN2.js +16 -0
- package/dist/IconEdit-DiFJHvLw.cjs +2 -0
- package/dist/IconEngine-BLi3BThi.js +20 -0
- package/dist/IconEngine-NRbH-EHX.cjs +2 -0
- package/dist/IconEngineering-DKDW6b3b.js +16 -0
- package/dist/IconEngineering-Gu6xRPyo.cjs +2 -0
- package/dist/IconError-B8vfdBPh.cjs +2 -0
- package/dist/IconError-BsmS7Ido.js +16 -0
- package/dist/IconExpandContent-CUz-acoJ.js +16 -0
- package/dist/IconExpandContent-CZBUTFa4.cjs +2 -0
- package/dist/IconExpandLess-BeBqjATL.cjs +2 -0
- package/dist/IconExpandLess-kI04ZTDg.js +16 -0
- package/dist/IconExpandMore-BpIrNsXP.js +16 -0
- package/dist/IconExpandMore-EyD544-R.cjs +2 -0
- package/dist/IconFacebook-BZJRlI_M.cjs +2 -0
- package/dist/IconFacebook-DiMWgcSK.js +16 -0
- package/dist/IconFavorite-CDLEUDWu.js +16 -0
- package/dist/IconFavorite-DK4VZH9M.cjs +2 -0
- package/dist/IconFavoriteFilled--f1zeXKy.js +16 -0
- package/dist/IconFavoriteFilled-DEpn1cmU.cjs +2 -0
- package/dist/IconFlag-BztsqLLH.cjs +2 -0
- package/dist/IconFlag-CmppikB3.js +16 -0
- package/dist/IconFormatBold-D5ouQYvY.cjs +2 -0
- package/dist/IconFormatBold-rtvyBotR.js +16 -0
- package/dist/IconFormatItalic-BlcS8gnO.js +16 -0
- package/dist/IconFormatItalic-nERjH9_F.cjs +2 -0
- package/dist/IconFormatListBulleted-BbJCNSJG.js +16 -0
- package/dist/IconFormatListBulleted-DiO46Jg8.cjs +2 -0
- package/dist/IconForum-CFa_3MsA.js +16 -0
- package/dist/IconForum-Dw6egtlq.cjs +2 -0
- package/dist/IconGas-D8bshXuI.cjs +2 -0
- package/dist/IconGas-rD46ubiw.js +16 -0
- package/dist/IconGavel-CBdvVo3E.cjs +2 -0
- package/dist/IconGavel-l3k6jtN3.js +16 -0
- package/dist/IconGears-CaXA9HK2.js +16 -0
- package/dist/IconGears-DGMqs4S7.cjs +2 -0
- package/dist/IconGlobeLocationPin-DaxXQ30W.cjs +2 -0
- package/dist/IconGlobeLocationPin-cTdYm_5A.js +16 -0
- package/dist/IconGoogle-6R7roJzd.js +31 -0
- package/dist/IconGoogle-Yw_mSfTf.cjs +2 -0
- package/dist/IconGooglePay-RCvnstwi.cjs +2 -0
- package/dist/IconGooglePay-XLqJKvZe.js +16 -0
- package/dist/IconGrid-BoplWzPb.js +16 -0
- package/dist/IconGrid-Dt-ErvEF.cjs +2 -0
- package/dist/IconHandshake-CsYF9kmp.js +16 -0
- package/dist/IconHandshake-Cy-2UfCE.cjs +2 -0
- package/dist/IconHandyman-CQL-qu8p.js +16 -0
- package/dist/IconHandyman-Qk8vvw-k.cjs +2 -0
- package/dist/IconHeight-8L9ZpDnf.cjs +2 -0
- package/dist/IconHeight-CTAQLi2I.js +16 -0
- package/dist/IconHelp-BEzzbWr3.js +16 -0
- package/dist/IconHelp-yLLGan-o.cjs +2 -0
- package/dist/IconInfo-BACpUpXu.js +16 -0
- package/dist/IconInfo-MifqZPeF.cjs +2 -0
- package/dist/IconInformation-Bd6DwbOW.cjs +2 -0
- package/dist/IconInformation-CGYah4Eo.js +16 -0
- package/dist/IconInsertText-C5HjwAuL.js +16 -0
- package/dist/IconInsertText-DAU6Gz1h.cjs +2 -0
- package/dist/IconInstagram-DEPxn51x.js +16 -0
- package/dist/IconInstagram-V0Phqs8e.cjs +2 -0
- package/dist/IconIosShare-jNePPJBV.js +16 -0
- package/dist/IconIosShare-yDTudxOJ.cjs +2 -0
- package/dist/IconLayout-CgFL9FBD.js +16 -0
- package/dist/IconLayout-NaNwp1Mc.cjs +2 -0
- package/dist/IconLevellingJack-BrmBMIeS.cjs +2 -0
- package/dist/IconLevellingJack-rO4KepKs.js +20 -0
- package/dist/IconLinkedIn-B92dDFNi.cjs +2 -0
- package/dist/IconLinkedIn-GWoK01li.js +16 -0
- package/dist/IconLocalShipping-B3U2CrvK.cjs +2 -0
- package/dist/IconLocalShipping-Bayc9OL_.js +16 -0
- package/dist/IconLock-CzvHZ2QM.cjs +2 -0
- package/dist/IconLock-WfiVOWPI.js +16 -0
- package/dist/IconMail-4cFO6TUe.cjs +2 -0
- package/dist/IconMail-ejl1H7D9.js +16 -0
- package/dist/IconMenu-BV6py3Ml.cjs +2 -0
- package/dist/IconMenu-FlE3z6fX.js +16 -0
- package/dist/IconMoneyBag-CYq7aYjH.js +16 -0
- package/dist/IconMoneyBag-lMeRlCeA.cjs +2 -0
- package/dist/IconMoreHoriz-B0mCtW1_.js +16 -0
- package/dist/IconMoreHoriz-Fdrg4GhV.cjs +2 -0
- package/dist/IconNotifications-Bm_gSQGu.js +16 -0
- package/dist/IconNotifications-D6f_hP65.cjs +2 -0
- package/dist/IconOdometer-COcVC_eb.js +16 -0
- package/dist/IconOdometer-DFmoGuh1.cjs +2 -0
- package/dist/IconOpenInNew-Bh7f_m7Y.cjs +2 -0
- package/dist/IconOpenInNew-DFieFQIk.js +16 -0
- package/dist/IconPalette-ClefcQMe.cjs +2 -0
- package/dist/IconPalette-DoDIzZJO.js +16 -0
- package/dist/IconPaypal-CX6Z2rvX.js +16 -0
- package/dist/IconPaypal-R8-anQkg.cjs +2 -0
- package/dist/IconPerson-CK0AXlS_.js +16 -0
- package/dist/IconPerson-bq9WQXQP.cjs +2 -0
- package/dist/IconPersonSearch-Da5EdDrS.js +16 -0
- package/dist/IconPersonSearch-WGKPEFXj.cjs +2 -0
- package/dist/IconPhotoCamera-DZHI-Yb7.js +16 -0
- package/dist/IconPhotoCamera-DaJf6axF.cjs +2 -0
- package/dist/IconPinterest-B3UM6t9-.js +16 -0
- package/dist/IconPinterest-wqKY3pYh.cjs +2 -0
- package/dist/IconPlayArrow-BMvUb0Cs.cjs +2 -0
- package/dist/IconPlayArrow-CR7bXHC8.js +16 -0
- package/dist/IconPolicy-C6VqDhPq.cjs +2 -0
- package/dist/IconPolicy-CzN-v54O.js +16 -0
- package/dist/IconPower-C5MJihEZ.js +16 -0
- package/dist/IconPower-DNCBzhHN.cjs +2 -0
- package/dist/IconPowerOff-BziDMScz.js +16 -0
- package/dist/IconPowerOff-CFUkoB2U.cjs +2 -0
- package/dist/IconPriorityHigh-BXRK5f8v.cjs +2 -0
- package/dist/IconPriorityHigh-Bv-j3DaQ.js +16 -0
- package/dist/IconRemove-Bo4RUocr.js +16 -0
- package/dist/IconRemove-BoE63ZOl.cjs +2 -0
- package/dist/IconRequestQuote-BUNyScQ-.js +16 -0
- package/dist/IconRequestQuote-hNE0axaE.cjs +2 -0
- package/dist/IconResetWrench-BGo5LXI6.cjs +2 -0
- package/dist/IconResetWrench-DCcBmojh.js +16 -0
- package/dist/IconRoad-BGTu-WPJ.js +16 -0
- package/dist/IconRoad-CYQVphPa.cjs +2 -0
- package/dist/IconRoundedCorner-BsshtlDu.cjs +2 -0
- package/dist/IconRoundedCorner-DycjfuJj.js +16 -0
- package/dist/IconRuler-D6F7haVw.cjs +2 -0
- package/dist/IconRuler-Da8zNDvf.js +16 -0
- package/dist/IconRvClassA-CeynEY7N.cjs +2 -0
- package/dist/IconRvClassA-D2-lug19.js +20 -0
- package/dist/IconRvClassB-BGB0MmOD.cjs +2 -0
- package/dist/IconRvClassB-Coe3FpBI.js +20 -0
- package/dist/IconRvClassC-C8rS5sAC.cjs +2 -0
- package/dist/IconRvClassC-DWnLqMGg.js +20 -0
- package/dist/IconRvFifthWheel-C47iv80S.cjs +2 -0
- package/dist/IconRvFifthWheel-CB_mQ-tO.js +20 -0
- package/dist/IconRvFishHouse-B9CKlbHK.cjs +2 -0
- package/dist/IconRvFishHouse-Cs2fm3r1.js +20 -0
- package/dist/IconRvParkModel-D4S_iYTG.js +20 -0
- package/dist/IconRvParkModel-DZoz1TA3.cjs +2 -0
- package/dist/IconRvPopUpCamper-CW47dgll.js +20 -0
- package/dist/IconRvPopUpCamper-D7wbELIQ.cjs +2 -0
- package/dist/IconRvTravelTrailer-CC48bci7.js +20 -0
- package/dist/IconRvTravelTrailer-DGqI6COV.cjs +2 -0
- package/dist/IconRvTruckCamper-DFFQWh2o.cjs +2 -0
- package/dist/IconRvTruckCamper-EoEVfaJM.js +20 -0
- package/dist/IconSailing-BLsCQf5E.cjs +2 -0
- package/dist/IconSailing-CPcgnYwx.js +16 -0
- package/dist/IconSchool-3Dy70s11.js +16 -0
- package/dist/IconSchool-Ctkcm5E6.cjs +2 -0
- package/dist/IconSearch-C8WeOYws.js +16 -0
- package/dist/IconSearch-CqnvhCzt.cjs +2 -0
- package/dist/IconSeating-CIOne28A.cjs +2 -0
- package/dist/IconSeating-D7B47LU4.js +16 -0
- package/dist/IconSell-B95iGdOh.js +16 -0
- package/dist/IconSell-CJ88esDh.cjs +2 -0
- package/dist/IconSensors-CVBxtcwC.cjs +2 -0
- package/dist/IconSensors-Ckv6BEOK.js +16 -0
- package/dist/IconSettings-BWQS2Rd_.cjs +2 -0
- package/dist/IconSettings-CLrLZmQs.js +16 -0
- package/dist/IconShare-CH2w2udo.js +16 -0
- package/dist/IconShare-DgZxuRV0.cjs +2 -0
- package/dist/IconShieldCheck-BBHcsJhF.js +16 -0
- package/dist/IconShieldCheck-x6T3V-vS.cjs +2 -0
- package/dist/IconShoppingCart-BWH_PXom.cjs +2 -0
- package/dist/IconShoppingCart-_CKPKJ12.js +16 -0
- package/dist/IconSleeps-CTzXW2RS.js +16 -0
- package/dist/IconSleeps-CaPJzPZ7.cjs +2 -0
- package/dist/IconSms-C_jULP6X.js +16 -0
- package/dist/IconSms-NlCMrmBH.cjs +2 -0
- package/dist/IconSnowflake-CzkejYR_.cjs +2 -0
- package/dist/IconSnowflake-DYpTwl2q.js +16 -0
- package/dist/IconStar-BGEn0snz.cjs +2 -0
- package/dist/IconStar-CR0UA_S9.js +16 -0
- package/dist/IconStarFilled-CfYeQJic.cjs +2 -0
- package/dist/IconStarFilled-DEnQm6s8.js +16 -0
- package/dist/IconStarHalf-Bx8Qyb3h.cjs +2 -0
- package/dist/IconStarHalf-DZqwFVlC.js +16 -0
- package/dist/IconSummarize-BwU7xViX.js +16 -0
- package/dist/IconSummarize-lRdtNX68.cjs +2 -0
- package/dist/IconSwapHoriz-B-UnlgNS.cjs +2 -0
- package/dist/IconSwapHoriz-B7Nu99ui.js +16 -0
- package/dist/IconSwapVert-BBxeKMXP.cjs +2 -0
- package/dist/IconSwapVert-D83OnTLJ.js +16 -0
- package/dist/IconThreeDRotation-BPRR_9n0.cjs +2 -0
- package/dist/IconThreeDRotation-WuabFIaS.js +29 -0
- package/dist/IconThumbUp-Dw-Hvil4.cjs +2 -0
- package/dist/IconThumbUp-DwPs1Aog.js +16 -0
- package/dist/IconTrendingDown-CKqQl7o7.js +16 -0
- package/dist/IconTrendingDown-CUIEiRQk.cjs +2 -0
- package/dist/IconTrophy-DRcIPW-F.js +16 -0
- package/dist/IconTrophy-DwaYZ69z.cjs +2 -0
- package/dist/IconTune-CXVj1kqb.js +16 -0
- package/dist/IconTune-CdPQRgZE.cjs +2 -0
- package/dist/IconTwitter-B5AwI_-2.js +16 -0
- package/dist/IconTwitter-wxyn-htG.cjs +2 -0
- package/dist/IconUmbrella-BWmv4GFi.js +16 -0
- package/dist/IconUmbrella-CdgPNDdg.cjs +2 -0
- package/dist/IconVerified-BMRocsAd.js +20 -0
- package/dist/IconVerified-DKmEJ9ke.cjs +2 -0
- package/dist/IconVideocam-B8oUr7zP.cjs +2 -0
- package/dist/IconVideocam-D5eUdBxR.js +16 -0
- package/dist/IconViewInAr-CvR2gh_r.js +16 -0
- package/dist/IconViewInAr-DhbEKdon.cjs +2 -0
- package/dist/IconVisibility-BlzyaCVD.js +16 -0
- package/dist/IconVisibility-DaA3mBn4.cjs +2 -0
- package/dist/IconVolumeOff-42vl0HdH.cjs +2 -0
- package/dist/IconVolumeOff-DB757krU.js +16 -0
- package/dist/IconVolumeOn-B6HqcoA8.cjs +2 -0
- package/dist/IconVolumeOn-CYf77UaC.js +16 -0
- package/dist/IconWarehouse-DIRQdX8P.js +16 -0
- package/dist/IconWarehouse-DOw3YseH.cjs +2 -0
- package/dist/IconWarning-3AuFwkkg.cjs +2 -0
- package/dist/IconWarning-n_GTsWOM.js +16 -0
- package/dist/IconWater-DFV09TyV.js +16 -0
- package/dist/IconWater-dVEqMZb4.cjs +2 -0
- package/dist/IconWeight-Cq12caT_.js +16 -0
- package/dist/IconWeight-DfXiP6ob.cjs +2 -0
- package/dist/IconWidth-D1f8wank.cjs +2 -0
- package/dist/IconWidth-DtPjsKm8.js +16 -0
- package/dist/IconWorkspacePremium-DQIbVzlX.cjs +2 -0
- package/dist/IconWorkspacePremium-_Olggt_G.js +16 -0
- package/dist/IconWrench-C2MHGxho.js +16 -0
- package/dist/IconWrench-CZskpiB7.cjs +2 -0
- package/dist/IconYoutube-C8cHj1uF.js +16 -0
- package/dist/IconYoutube-ChEAKSkt.cjs +2 -0
- package/dist/css/reset.css +4 -0
- package/dist/css/utilities-base.css +7 -3
- package/dist/css/utilities-responsive.css +33 -13
- package/dist/css/utilities.css +14 -0
- package/dist/css/variables.css +1 -1
- package/dist/style.css +1 -1
- package/dist/tide-design-system.cjs +2 -2
- package/dist/tide-design-system.esm.d.ts +445 -1149
- package/dist/tide-design-system.esm.js +2606 -1849
- package/dist/utilities/forms.ts +22 -0
- package/dist/utilities/validation-deprecated.ts +252 -0
- package/dist/utilities/validation.ts +45 -123
- package/index.ts +20 -43
- package/package.json +3 -3
- package/src/assets/css/reset.css +4 -0
- package/src/assets/css/utilities-base.css +7 -3
- package/src/assets/css/utilities-responsive.css +33 -13
- package/src/assets/css/utilities.css +14 -0
- package/src/assets/css/variables.css +1 -1
- package/src/components/TideAlert.vue +13 -6
- package/src/components/TideCarousel.vue +131 -156
- package/src/components/TideForm.vue +24 -0
- package/src/components/TideInputCheckbox.vue +142 -65
- package/src/components/TideInputCheckboxDeprecated.vue +117 -0
- package/src/components/TideInputRadio.vue +27 -43
- package/src/components/TideInputRadioDeprecated.vue +118 -0
- package/src/components/TideInputSelect.vue +80 -47
- package/src/components/TideInputSelectDeprecated.vue +245 -0
- package/src/components/TideInputSupportingText.vue +35 -0
- package/src/components/TideInputText.vue +101 -84
- package/src/components/TideInputTextDeprecated.vue +324 -0
- package/src/components/TideInputTextarea.vue +71 -57
- package/src/components/TideInputTextareaDeprecated.vue +198 -0
- package/src/components/TideModal.vue +18 -6
- package/src/components/TideSheet.vue +11 -1
- package/src/components/TideSwitch.vue +1 -1
- package/src/composables/useTideForm.ts +25 -0
- package/src/docs/assets/native-input-validation.png +0 -0
- package/src/docs/forms.md +484 -0
- package/src/docs/upgrading.md +72 -0
- package/src/stories/Template.stories.ts +4 -2
- package/src/stories/TideAccordionItem.stories.ts +7 -1
- package/src/stories/TideAlert.stories.ts +5 -1
- package/src/stories/TideBadge.stories.ts +3 -1
- package/src/stories/TideBadgeTrustedPartner.stories.ts +3 -1
- package/src/stories/TideBadgeVerifiedVehicle.stories.ts +3 -1
- package/src/stories/TideButton.stories.ts +5 -1
- package/src/stories/TideButtonIcon.stories.ts +5 -1
- package/src/stories/TideButtonPagination.stories.ts +5 -1
- package/src/stories/TideButtonSegmented.stories.ts +7 -2
- package/src/stories/TideCard.stories.ts +5 -1
- package/src/stories/TideCarousel.stories.ts +16 -29
- package/src/stories/TideChipAction.stories.ts +3 -1
- package/src/stories/TideChipFilter.stories.ts +8 -2
- package/src/stories/TideChipInput.stories.ts +5 -1
- package/src/stories/TideDivider.stories.ts +6 -2
- package/src/stories/TideImageBackground.stories.ts +3 -1
- package/src/stories/TideIndicator.stories.ts +3 -1
- package/src/stories/TideInputCheckbox.stories.ts +8 -2
- package/src/stories/TideInputRadio.stories.ts +8 -2
- package/src/stories/TideInputSelect.stories.ts +7 -2
- package/src/stories/TideInputText.stories.ts +6 -2
- package/src/stories/TideInputTextarea.stories.ts +6 -2
- package/src/stories/TideLink.stories.ts +7 -3
- package/src/stories/TideModal.stories.ts +85 -44
- package/src/stories/TidePagination.stories.ts +8 -2
- package/src/stories/TidePopover.stories.ts +6 -1
- package/src/stories/TideSeoLinks.stories.ts +3 -1
- package/src/stories/TideSheet.stories.ts +9 -3
- package/src/stories/TideSwitch.stories.ts +7 -1
- package/src/types/{Field.ts → FieldDeprecated.ts} +39 -2
- package/src/types/Form.ts +0 -57
- package/src/types/FormDeprecated.ts +91 -0
- package/src/types/Styles.ts +5 -0
- package/src/types/TextInput.ts +12 -0
- package/src/types/Validation.ts +11 -4
- package/src/types/ValidationDeprecated.ts +41 -0
- package/src/utilities/forms.ts +22 -0
- package/src/utilities/validation-deprecated.ts +252 -0
- package/src/utilities/validation.ts +45 -123
- package/dist/IconAccountBalance-Ck1QODok.js +0 -16
- package/dist/IconAccountBalance-DUpdmQFe.cjs +0 -2
- package/dist/IconAcute-Dy5x_yJL.js +0 -16
- package/dist/IconAcute-bU4QJ8V7.cjs +0 -2
- package/dist/IconAdd-CoVrVzyk.js +0 -16
- package/dist/IconAdd-DcDrqXYF.cjs +0 -2
- package/dist/IconAiDescription-6Pv0Y_Yt.js +0 -20
- package/dist/IconAiDescription-CEkom1qc.cjs +0 -2
- package/dist/IconAlignSpaceEven-BF_GmIrK.js +0 -16
- package/dist/IconAlignSpaceEven-cqO2Dlov.cjs +0 -2
- package/dist/IconApplePay-C56V1wAj.cjs +0 -2
- package/dist/IconApplePay-oQ4zV5vN.js +0 -16
- package/dist/IconArrowBack-BP2TEpuq.js +0 -16
- package/dist/IconArrowBack-FzFtQ6Wh.cjs +0 -2
- package/dist/IconArrowCycle-CqKlSl5d.cjs +0 -2
- package/dist/IconArrowCycle-TQa-fbVD.js +0 -16
- package/dist/IconArrowForward-CkA2-WZe.cjs +0 -2
- package/dist/IconArrowForward-VWVINc35.js +0 -16
- package/dist/IconArrowRight-BJYT2e-d.js +0 -16
- package/dist/IconArrowRight-BxQWtz80.cjs +0 -2
- package/dist/IconArrowUp-BM37-Uxb.cjs +0 -2
- package/dist/IconArrowUp-JSl5zOyP.js +0 -16
- package/dist/IconAssignment-B13NJfNm.cjs +0 -2
- package/dist/IconAssignment-CSn4vDyt.js +0 -16
- package/dist/IconAttachMoney-CIYp4I2h.js +0 -16
- package/dist/IconAttachMoney-CUjPtX-U.cjs +0 -2
- package/dist/IconAtvAtv-DDtMKkiz.cjs +0 -2
- package/dist/IconAtvAtv-GFhgoQXA.js +0 -20
- package/dist/IconAtvDuneBuggy-CmVFELlj.cjs +0 -2
- package/dist/IconAtvDuneBuggy-Eou8hc_1.js +0 -20
- package/dist/IconAtvGoKart-Cj3k54oS.js +0 -20
- package/dist/IconAtvGoKart-D200V7pq.cjs +0 -2
- package/dist/IconAtvGolfCart-BGqnqb3G.cjs +0 -2
- package/dist/IconAtvGolfCart-CCQwt0_I.js +0 -20
- package/dist/IconAtvSandRail-C5P5lWt6.cjs +0 -2
- package/dist/IconAtvSandRail-HpaJVocj.js +0 -20
- package/dist/IconAtvSideBySide-BxqtCex8.js +0 -20
- package/dist/IconAtvSideBySide-dbhLoB1-.cjs +0 -2
- package/dist/IconAtvTrailer-CTlZZ8Wn.js +0 -20
- package/dist/IconAtvTrailer-tohF8f6D.cjs +0 -2
- package/dist/IconAutoRenew-C77Hq4T0.cjs +0 -2
- package/dist/IconAutoRenew-Dp5h0lzF.js +0 -16
- package/dist/IconAwardStar-CNBpPsCx.cjs +0 -2
- package/dist/IconAwardStar-CdAw4NY5.js +0 -16
- package/dist/IconBed-B1u5P61X.js +0 -16
- package/dist/IconBed-Du8uU-Fq.cjs +0 -2
- package/dist/IconBoatmartPwc-CcE6IBYS.cjs +0 -2
- package/dist/IconBoatmartPwc-D6wQ7mNA.js +0 -20
- package/dist/IconBoatmartTrailer-CfIANY7t.cjs +0 -2
- package/dist/IconBoatmartTrailer-hKiD_NXI.js +0 -20
- package/dist/IconBolt-CskRJDT1.js +0 -16
- package/dist/IconBolt-D3QlzyVv.cjs +0 -2
- package/dist/IconBookmark-Dc_xQALq.cjs +0 -2
- package/dist/IconBookmark-DsEGlmme.js +0 -16
- package/dist/IconBunkhouse-BLo-n_Mb.js +0 -16
- package/dist/IconBunkhouse-BUPqUZFs.cjs +0 -2
- package/dist/IconCalendarMonth-Cfs-ZKLJ.js +0 -16
- package/dist/IconCalendarMonth-ztc4w4Tw.cjs +0 -2
- package/dist/IconCall-BCjepEju.js +0 -16
- package/dist/IconCall-BKYdkS16.cjs +0 -2
- package/dist/IconCallQuality-BRfc8Y1K.cjs +0 -2
- package/dist/IconCallQuality-c7UaokVa.js +0 -16
- package/dist/IconCarRental-CkVWcpTh.cjs +0 -2
- package/dist/IconCarRental-D-qYjRe5.js +0 -16
- package/dist/IconCheck-D0w_fKOH.cjs +0 -2
- package/dist/IconCheck-DVE4Knnl.js +0 -16
- package/dist/IconChevronLeft-DStWQfoj.js +0 -16
- package/dist/IconChevronLeft-DhX3pOQ3.cjs +0 -2
- package/dist/IconChevronRight-3vFVvnNb.js +0 -16
- package/dist/IconChevronRight-BCv__YUh.cjs +0 -2
- package/dist/IconClear-D5yRmb93.cjs +0 -2
- package/dist/IconClear-F6afoxzY.js +0 -16
- package/dist/IconClose-Y-mY3AiS.cjs +0 -2
- package/dist/IconClose-eMGGtfEC.js +0 -16
- package/dist/IconContract-D6nGc_5y.cjs +0 -2
- package/dist/IconContract-f9bj5j-_.js +0 -16
- package/dist/IconCrash-B2l3Ie38.js +0 -16
- package/dist/IconCrash-BhwhKaB1.cjs +0 -2
- package/dist/IconDashboardCustomize-CyQTFASs.js +0 -16
- package/dist/IconDashboardCustomize-N7cHDhjT.cjs +0 -2
- package/dist/IconDelete-Couv2iBA.js +0 -16
- package/dist/IconDelete-LlUqnq04.cjs +0 -2
- package/dist/IconDiamond-sol6SUrB.js +0 -16
- package/dist/IconDiamond-t4Tf48_s.cjs +0 -2
- package/dist/IconDirectionsBoat-IZhI7oCN.cjs +0 -2
- package/dist/IconDirectionsBoat-S07T_dm_.js +0 -16
- package/dist/IconDomain-DSyC0Set.cjs +0 -2
- package/dist/IconDomain-ECxC_qj-.js +0 -16
- package/dist/IconDraft-BFxB85ro.js +0 -16
- package/dist/IconDraft-DL8E6d1f.cjs +0 -2
- package/dist/IconEdit-BoLO_nL5.js +0 -16
- package/dist/IconEdit-HzbIdd3z.cjs +0 -2
- package/dist/IconEngine-BBaqQJ6N.js +0 -20
- package/dist/IconEngine-DCKjsg0s.cjs +0 -2
- package/dist/IconEngineering-C60OP34_.js +0 -16
- package/dist/IconEngineering-WPQWx43h.cjs +0 -2
- package/dist/IconError-CAjFP9Jy.cjs +0 -2
- package/dist/IconError-Dd2H7cOG.js +0 -16
- package/dist/IconExpandContent-C1xzfkui.js +0 -16
- package/dist/IconExpandContent-UDkqNF-G.cjs +0 -2
- package/dist/IconExpandLess-Bf6Nypx3.js +0 -16
- package/dist/IconExpandLess-HiL8c2v-.cjs +0 -2
- package/dist/IconExpandMore-BffI3rnY.js +0 -16
- package/dist/IconExpandMore-tOo2Ynbv.cjs +0 -2
- package/dist/IconFacebook-7dq6Uz6i.cjs +0 -2
- package/dist/IconFacebook-Cki8sZRt.js +0 -16
- package/dist/IconFavorite-C6ZJCuY6.cjs +0 -2
- package/dist/IconFavorite-CyRSAVdw.js +0 -16
- package/dist/IconFavoriteFilled-DJIL-WYR.cjs +0 -2
- package/dist/IconFavoriteFilled-DeNJvMmm.js +0 -16
- package/dist/IconFlag-a6YLysex.cjs +0 -2
- package/dist/IconFlag-aeogw6hc.js +0 -16
- package/dist/IconFormatBold-CtYxihT6.js +0 -16
- package/dist/IconFormatBold-Yo5bdAwc.cjs +0 -2
- package/dist/IconFormatItalic-DSJCzNMj.cjs +0 -2
- package/dist/IconFormatItalic-EUVbp7Qb.js +0 -16
- package/dist/IconFormatListBulleted-CT9Ocq27.cjs +0 -2
- package/dist/IconFormatListBulleted-D-VQIabf.js +0 -16
- package/dist/IconForum-BrjEMf33.js +0 -16
- package/dist/IconForum-DQrwT4Pb.cjs +0 -2
- package/dist/IconGas-D_rJSqnT.js +0 -16
- package/dist/IconGas-DaKcTfiu.cjs +0 -2
- package/dist/IconGavel-D9XWUMJt.js +0 -16
- package/dist/IconGavel-ZdfEJ5bP.cjs +0 -2
- package/dist/IconGears-BlhP9t4o.cjs +0 -2
- package/dist/IconGears-Cavx6RDS.js +0 -16
- package/dist/IconGlobeLocationPin-CdwVS7ad.js +0 -16
- package/dist/IconGlobeLocationPin-Dz_hajhl.cjs +0 -2
- package/dist/IconGoogle-CW-JtHsA.js +0 -31
- package/dist/IconGoogle-DaDS3i9U.cjs +0 -2
- package/dist/IconGooglePay-ByaG5WLE.cjs +0 -2
- package/dist/IconGooglePay-lhVEuNTf.js +0 -16
- package/dist/IconGrid-4jZ_E7sN.cjs +0 -2
- package/dist/IconGrid-B-Z-t5S5.js +0 -16
- package/dist/IconHandshake-CCtEDb5s.js +0 -16
- package/dist/IconHandshake-Dm6HyjPZ.cjs +0 -2
- package/dist/IconHandyman-CeFGeaUD.js +0 -16
- package/dist/IconHandyman-DWBuUdrY.cjs +0 -2
- package/dist/IconHeight-CU7292SF.js +0 -16
- package/dist/IconHeight-DdZD0XDB.cjs +0 -2
- package/dist/IconHelp-CpHZAsX2.js +0 -16
- package/dist/IconHelp-Ks-iBsna.cjs +0 -2
- package/dist/IconInfo-Du8txE_y.js +0 -16
- package/dist/IconInfo-xZBbCBpg.cjs +0 -2
- package/dist/IconInformation-DnC1dUkM.cjs +0 -2
- package/dist/IconInformation-fpX8-lfe.js +0 -16
- package/dist/IconInsertText-B50Ml556.js +0 -16
- package/dist/IconInsertText-DRLSQCif.cjs +0 -2
- package/dist/IconInstagram-BAydhrdp.cjs +0 -2
- package/dist/IconInstagram-x9ut2Rvt.js +0 -16
- package/dist/IconIosShare-BAZa5TGR.js +0 -16
- package/dist/IconIosShare-ln3UX-op.cjs +0 -2
- package/dist/IconLayout-B7PSx75m.cjs +0 -2
- package/dist/IconLayout-Ctl5Nh6E.js +0 -16
- package/dist/IconLevellingJack-Cv_L_Xt-.cjs +0 -2
- package/dist/IconLevellingJack-OIJRh7On.js +0 -20
- package/dist/IconLinkedIn-DpuBRGWk.js +0 -16
- package/dist/IconLinkedIn-yIN3rQkH.cjs +0 -2
- package/dist/IconLocalShipping-CECgkii_.cjs +0 -2
- package/dist/IconLocalShipping-DFGIrDiT.js +0 -16
- package/dist/IconLock-CgnOY2yE.cjs +0 -2
- package/dist/IconLock-Kkxyx6xF.js +0 -16
- package/dist/IconMail-C52wU0bj.cjs +0 -2
- package/dist/IconMail-C_KZ99bY.js +0 -16
- package/dist/IconMenu-Bgr0cuPj.cjs +0 -2
- package/dist/IconMenu-DdVdEPQY.js +0 -16
- package/dist/IconMoneyBag-Bpwqj4h_.js +0 -16
- package/dist/IconMoneyBag-DIgjDYQp.cjs +0 -2
- package/dist/IconMoreHoriz-CMqeM-vy.js +0 -16
- package/dist/IconMoreHoriz-CopFNsjL.cjs +0 -2
- package/dist/IconNotifications-C-5jqVsp.js +0 -16
- package/dist/IconNotifications-CowlXF8e.cjs +0 -2
- package/dist/IconOdometer-8X8BZK7G.cjs +0 -2
- package/dist/IconOdometer-DOvJTqMC.js +0 -16
- package/dist/IconOpenInNew-BECM_cge.js +0 -16
- package/dist/IconOpenInNew-NIE7_GBf.cjs +0 -2
- package/dist/IconPalette-BnkMmdjx.cjs +0 -2
- package/dist/IconPalette-cNHa_Dl9.js +0 -16
- package/dist/IconPaypal-0MB9NiPi.js +0 -16
- package/dist/IconPaypal-Cm4sbOWR.cjs +0 -2
- package/dist/IconPerson-BlD3wl56.cjs +0 -2
- package/dist/IconPerson-C9FdsFRF.js +0 -16
- package/dist/IconPersonSearch-BAwODsOw.js +0 -16
- package/dist/IconPersonSearch-CvzxD13q.cjs +0 -2
- package/dist/IconPhotoCamera-Dhq3zkZ1.js +0 -16
- package/dist/IconPhotoCamera-LE83ELYg.cjs +0 -2
- package/dist/IconPinterest-B2ilympx.js +0 -16
- package/dist/IconPinterest-LMg3EmCf.cjs +0 -2
- package/dist/IconPlayArrow-DWY4o6mi.js +0 -16
- package/dist/IconPlayArrow-DaK8Rma5.cjs +0 -2
- package/dist/IconPolicy-CPfGoBvS.cjs +0 -2
- package/dist/IconPolicy-CTm0qx9m.js +0 -16
- package/dist/IconPower-BNYJxFS-.cjs +0 -2
- package/dist/IconPower-El-f1YpW.js +0 -16
- package/dist/IconPowerOff-BeF6a0I_.js +0 -16
- package/dist/IconPowerOff-BzVbrhfQ.cjs +0 -2
- package/dist/IconPriorityHigh-BOUPMj-c.js +0 -16
- package/dist/IconPriorityHigh-De-QwFs9.cjs +0 -2
- package/dist/IconRemove-DJ8Ats3O.js +0 -16
- package/dist/IconRemove-FRKIQpXX.cjs +0 -2
- package/dist/IconRequestQuote-63Pc7nFl.cjs +0 -2
- package/dist/IconRequestQuote-Dx73kEAB.js +0 -16
- package/dist/IconResetWrench-Cszjots_.cjs +0 -2
- package/dist/IconResetWrench-afPLSCCR.js +0 -16
- package/dist/IconRoad-CXNsqXt3.cjs +0 -2
- package/dist/IconRoad-D8LbDPzU.js +0 -16
- package/dist/IconRoundedCorner-CBFrVTjO.js +0 -16
- package/dist/IconRoundedCorner-s0eqhrw-.cjs +0 -2
- package/dist/IconRuler-BbrDrxik.js +0 -16
- package/dist/IconRuler-CS4llN2v.cjs +0 -2
- package/dist/IconRvClassA-IHRP4eXR.cjs +0 -2
- package/dist/IconRvClassA-pAChL2Qm.js +0 -20
- package/dist/IconRvClassB-BWEVHWYh.cjs +0 -2
- package/dist/IconRvClassB-BWaLlkdV.js +0 -20
- package/dist/IconRvClassC-CeDhPBYp.js +0 -20
- package/dist/IconRvClassC-CiUYMt7R.cjs +0 -2
- package/dist/IconRvFifthWheel-D98H64pq.js +0 -20
- package/dist/IconRvFifthWheel-tllq5hmh.cjs +0 -2
- package/dist/IconRvFishHouse-B9v3_c4m.js +0 -20
- package/dist/IconRvFishHouse-C5B0w81b.cjs +0 -2
- package/dist/IconRvParkModel-DJjJJFrS.js +0 -20
- package/dist/IconRvParkModel-DU9WYpvA.cjs +0 -2
- package/dist/IconRvPopUpCamper-C_L-wpFq.cjs +0 -2
- package/dist/IconRvPopUpCamper-DC5JLH5u.js +0 -20
- package/dist/IconRvTravelTrailer-CUzyIoJH.js +0 -20
- package/dist/IconRvTravelTrailer-DfoQmo80.cjs +0 -2
- package/dist/IconRvTruckCamper-CHLJEty2.js +0 -20
- package/dist/IconRvTruckCamper-CI5jKToo.cjs +0 -2
- package/dist/IconSailing-CP278bNv.cjs +0 -2
- package/dist/IconSailing-Ct5A7oe-.js +0 -16
- package/dist/IconSchool-DCJoiRB2.cjs +0 -2
- package/dist/IconSchool-DkD-by-f.js +0 -16
- package/dist/IconSearch-C3_cVelm.js +0 -16
- package/dist/IconSearch-CG3sTqyY.cjs +0 -2
- package/dist/IconSeating-B2-FR2aI.js +0 -16
- package/dist/IconSeating-DPz7Itl5.cjs +0 -2
- package/dist/IconSell-B01QAmJJ.js +0 -16
- package/dist/IconSell-tiqkK8HB.cjs +0 -2
- package/dist/IconSensors-B2yoU18I.cjs +0 -2
- package/dist/IconSensors-C9ikFDSl.js +0 -16
- package/dist/IconSettings-6iUt_j-N.cjs +0 -2
- package/dist/IconSettings-C7CzSyB_.js +0 -16
- package/dist/IconShare-CC3TgzM9.js +0 -16
- package/dist/IconShare-z3eso-fS.cjs +0 -2
- package/dist/IconShieldCheck-BKdiIhJ-.js +0 -16
- package/dist/IconShieldCheck-Dn0h4Aut.cjs +0 -2
- package/dist/IconShoppingCart-CQZWosiy.js +0 -16
- package/dist/IconShoppingCart-Dn7aCgYi.cjs +0 -2
- package/dist/IconSleeps-DDIWvIh8.js +0 -16
- package/dist/IconSleeps-DMXZj5P6.cjs +0 -2
- package/dist/IconSms-Bb3mhfHH.cjs +0 -2
- package/dist/IconSms-C22lp6yM.js +0 -16
- package/dist/IconSnowflake-DEJHKYBl.cjs +0 -2
- package/dist/IconSnowflake-aBZ4o4X2.js +0 -16
- package/dist/IconStar-2gDebu9X.js +0 -16
- package/dist/IconStar-COuoApVn.cjs +0 -2
- package/dist/IconStarFilled-BvH24VJ3.cjs +0 -2
- package/dist/IconStarFilled-CI8JFRKm.js +0 -16
- package/dist/IconStarHalf-9Mtxrxy2.js +0 -16
- package/dist/IconStarHalf-Cf3yNdfW.cjs +0 -2
- package/dist/IconSummarize-DdMTFwCZ.cjs +0 -2
- package/dist/IconSummarize-DjgKmXYf.js +0 -16
- package/dist/IconSwapHoriz-BI3V7cXl.js +0 -16
- package/dist/IconSwapHoriz-CHbH-rb1.cjs +0 -2
- package/dist/IconSwapVert-Bxn4iSnZ.js +0 -16
- package/dist/IconSwapVert-DT_2E9ir.cjs +0 -2
- package/dist/IconThreeDRotation-C5sf5vQe.js +0 -29
- package/dist/IconThreeDRotation-tzEyR04j.cjs +0 -2
- package/dist/IconThumbUp-Bewoaeaz.js +0 -16
- package/dist/IconThumbUp-Cv6VtGa7.cjs +0 -2
- package/dist/IconTrendingDown-ClqzR4Gm.js +0 -16
- package/dist/IconTrendingDown-YxmY8_d7.cjs +0 -2
- package/dist/IconTrophy-BvyInFpa.js +0 -16
- package/dist/IconTrophy-D68upC1Z.cjs +0 -2
- package/dist/IconTune-BeT6cJNb.cjs +0 -2
- package/dist/IconTune-DM9oNvly.js +0 -16
- package/dist/IconTwitter-CDK1k6Um.cjs +0 -2
- package/dist/IconTwitter-Di3mFm4J.js +0 -16
- package/dist/IconUmbrella-DdgZRF8v.cjs +0 -2
- package/dist/IconUmbrella-KarDrV_0.js +0 -16
- package/dist/IconVerified-BSLc-Tng.js +0 -20
- package/dist/IconVerified-CE6bl5Tr.cjs +0 -2
- package/dist/IconVideocam-Bk2i6zSL.js +0 -16
- package/dist/IconVideocam-DFAhIy60.cjs +0 -2
- package/dist/IconViewInAr-CyH3TuS9.js +0 -16
- package/dist/IconViewInAr-cJRKU-n8.cjs +0 -2
- package/dist/IconVisibility-C7r-OBqZ.js +0 -16
- package/dist/IconVisibility-CoZqOmFs.cjs +0 -2
- package/dist/IconVolumeOff-B1VwsF7D.cjs +0 -2
- package/dist/IconVolumeOff-DrXwzNlx.js +0 -16
- package/dist/IconVolumeOn-ByK04AMO.cjs +0 -2
- package/dist/IconVolumeOn-DMqPq3mL.js +0 -16
- package/dist/IconWarehouse-B-WGdkxc.cjs +0 -2
- package/dist/IconWarehouse-BLILe5TP.js +0 -16
- package/dist/IconWarning-BGb_hd4L.js +0 -16
- package/dist/IconWarning-BmJVooFC.cjs +0 -2
- package/dist/IconWater-BFIBeGBM.js +0 -16
- package/dist/IconWater-BcVoUC58.cjs +0 -2
- package/dist/IconWeight-BzjjPVJo.cjs +0 -2
- package/dist/IconWeight-IXMjxgaM.js +0 -16
- package/dist/IconWidth-CWT_XoXm.js +0 -16
- package/dist/IconWidth-DK12b7aq.cjs +0 -2
- package/dist/IconWorkspacePremium-B_CTpaCF.js +0 -16
- package/dist/IconWorkspacePremium-Dwj3FxW1.cjs +0 -2
- package/dist/IconWrench-CHHIpkKv.cjs +0 -2
- package/dist/IconWrench-CgaRK8xS.js +0 -16
- package/dist/IconYoutube-BBBj6jXd.js +0 -16
- 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
|
|
409
|
-
.tide-opacity-
|
|
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:
|
|
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:
|
|
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
|
|
952
|
-
.sm-tide-opacity-
|
|
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:
|
|
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
|
|
1496
|
-
.md-tide-opacity-
|
|
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:
|
|
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
|
|
2040
|
-
.lg-tide-opacity-
|
|
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:
|
|
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
|
|
2584
|
-
.xl-tide-opacity-
|
|
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:
|
|
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
|
+
}
|
|
@@ -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="
|
|
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
|
-
|
|
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.
|
|
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,
|
|
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
|
|
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
|
|
52
|
-
if (props.bleed == undefined) return;
|
|
53
|
-
if (containerRef.value === null) return;
|
|
45
|
+
const slides = ref<HTMLElement[]>([]);
|
|
54
46
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
(slide) => slide.offsetLeft
|
|
79
|
-
);
|
|
59
|
+
slideObserver.value = new IntersectionObserver((entries) => {
|
|
60
|
+
let slidesAddedToView: number[] = [];
|
|
80
61
|
|
|
81
|
-
|
|
62
|
+
entries.forEach((entry) => {
|
|
63
|
+
const slideIndex = slides.value.indexOf(entry.target as HTMLElement);
|
|
82
64
|
|
|
83
|
-
|
|
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
|
-
|
|
86
|
-
|
|
87
|
-
);
|
|
72
|
+
slidesInView.value.sort((a, b) => a - b);
|
|
73
|
+
});
|
|
88
74
|
|
|
89
|
-
|
|
75
|
+
isFirstSlide.value = slidesInView.value.includes(0);
|
|
76
|
+
isLastSlide.value = slidesInView.value.includes(slides.value.length - 1);
|
|
90
77
|
|
|
91
|
-
|
|
92
|
-
|
|
78
|
+
if (slidesAddedToView.length > 0) emit('slidesAddedToView', slidesAddedToView);
|
|
79
|
+
}, options);
|
|
93
80
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
|
99
|
+
const scrollToOffset = (target: number) => {
|
|
114
100
|
if (containerRef.value === null) return;
|
|
101
|
+
|
|
115
102
|
containerRef.value.scrollTo({
|
|
116
103
|
behavior: 'smooth',
|
|
117
|
-
left:
|
|
104
|
+
left: target,
|
|
118
105
|
});
|
|
119
106
|
};
|
|
120
107
|
|
|
121
|
-
const
|
|
122
|
-
if (
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
|
134
|
-
if (
|
|
135
|
-
|
|
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
|
|
140
|
-
|
|
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
|
-
|
|
147
|
-
let slides: number[] = [];
|
|
127
|
+
const nextSlide: number = slidesInView.value.length > 1 ? slidesInView.value[1] : slidesInView.value[0] + 1;
|
|
148
128
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
if (entry.isIntersecting) {
|
|
152
|
-
slides.push(slideIndex);
|
|
153
|
-
}
|
|
154
|
-
});
|
|
129
|
+
scrollToOffset(slides.value[nextSlide].offsetLeft);
|
|
130
|
+
};
|
|
155
131
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
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
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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 (
|
|
173
|
-
|
|
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 &&
|
|
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
|
|
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="
|
|
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
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
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>
|