tide-design-system 2.5.19 → 2.6.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/_virtual/_plugin-vue_export-helper.js +11 -0
- package/dist/_virtual/_plugin-vue_export-helper.js.map +1 -0
- package/dist/_virtual/dynamic-import-helper.js +20 -0
- package/dist/_virtual/dynamic-import-helper.js.map +1 -0
- package/dist/assets/svg/branding/logo/logo-aero.svg.js +18 -0
- package/dist/assets/svg/branding/logo/logo-aero.svg.js.map +1 -0
- package/dist/assets/svg/branding/logo/logo-atv.svg.js +20 -0
- package/dist/assets/svg/branding/logo/logo-atv.svg.js.map +1 -0
- package/dist/assets/svg/branding/logo/logo-boatmart.svg.js +18 -0
- package/dist/assets/svg/branding/logo/logo-boatmart.svg.js.map +1 -0
- package/dist/assets/svg/branding/logo/logo-cycle.svg.js +18 -0
- package/dist/assets/svg/branding/logo/logo-cycle.svg.js.map +1 -0
- package/dist/assets/svg/branding/logo/logo-equipment.svg.js +18 -0
- package/dist/assets/svg/branding/logo/logo-equipment.svg.js.map +1 -0
- package/dist/assets/svg/branding/logo/logo-pwc.svg.js +21 -0
- package/dist/assets/svg/branding/logo/logo-pwc.svg.js.map +1 -0
- package/dist/assets/svg/branding/logo/logo-rv.svg.js +20 -0
- package/dist/assets/svg/branding/logo/logo-rv.svg.js.map +1 -0
- package/dist/assets/svg/branding/logo/logo-rvt.svg.js +16 -0
- package/dist/assets/svg/branding/logo/logo-rvt.svg.js.map +1 -0
- package/dist/assets/svg/branding/logo/logo-snow.svg.js +18 -0
- package/dist/assets/svg/branding/logo/logo-snow.svg.js.map +1 -0
- package/dist/assets/svg/branding/logo/logo-truck.svg.js +19 -0
- package/dist/assets/svg/branding/logo/logo-truck.svg.js.map +1 -0
- package/dist/assets/svg/branding/mark/mark-aero.svg.js +17 -0
- package/dist/assets/svg/branding/mark/mark-aero.svg.js.map +1 -0
- package/dist/assets/svg/branding/mark/mark-atv.svg.js +22 -0
- package/dist/assets/svg/branding/mark/mark-atv.svg.js.map +1 -0
- package/dist/assets/svg/branding/mark/mark-boatmart.svg.js +17 -0
- package/dist/assets/svg/branding/mark/mark-boatmart.svg.js.map +1 -0
- package/dist/assets/svg/branding/mark/mark-cycle.svg.js +17 -0
- package/dist/assets/svg/branding/mark/mark-cycle.svg.js.map +1 -0
- package/dist/assets/svg/branding/mark/mark-equipment.svg.js +17 -0
- package/dist/assets/svg/branding/mark/mark-equipment.svg.js.map +1 -0
- package/dist/assets/svg/branding/mark/mark-pwc.svg.js +17 -0
- package/dist/assets/svg/branding/mark/mark-pwc.svg.js.map +1 -0
- package/dist/assets/svg/branding/mark/mark-rv.svg.js +22 -0
- package/dist/assets/svg/branding/mark/mark-rv.svg.js.map +1 -0
- package/dist/assets/svg/branding/mark/mark-rvt.svg.js +18 -0
- package/dist/assets/svg/branding/mark/mark-rvt.svg.js.map +1 -0
- package/dist/assets/svg/branding/mark/mark-snow.svg.js +17 -0
- package/dist/assets/svg/branding/mark/mark-snow.svg.js.map +1 -0
- package/dist/assets/svg/branding/mark/mark-truck.svg.js +18 -0
- package/dist/assets/svg/branding/mark/mark-truck.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconAccountBalance.svg.js +16 -0
- package/dist/assets/svg/icons/IconAccountBalance.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconAcute.svg.js +16 -0
- package/dist/assets/svg/icons/IconAcute.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconAdd.svg.js +16 -0
- package/dist/assets/svg/icons/IconAdd.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconAiDescription.svg.js +20 -0
- package/dist/assets/svg/icons/IconAiDescription.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconAlignSpaceEven.svg.js +16 -0
- package/dist/assets/svg/icons/IconAlignSpaceEven.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconApplePay.svg.js +16 -0
- package/dist/assets/svg/icons/IconApplePay.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconArrowBack.svg.js +16 -0
- package/dist/assets/svg/icons/IconArrowBack.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconArrowCycle.svg.js +16 -0
- package/dist/assets/svg/icons/IconArrowCycle.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconArrowForward.svg.js +16 -0
- package/dist/assets/svg/icons/IconArrowForward.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconArrowRight.svg.js +16 -0
- package/dist/assets/svg/icons/IconArrowRight.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconArrowUp.svg.js +16 -0
- package/dist/assets/svg/icons/IconArrowUp.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconAssignment.svg.js +16 -0
- package/dist/assets/svg/icons/IconAssignment.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconAttachMoney.svg.js +16 -0
- package/dist/assets/svg/icons/IconAttachMoney.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconAutoRenew.svg.js +16 -0
- package/dist/assets/svg/icons/IconAutoRenew.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconAwardStar.svg.js +16 -0
- package/dist/assets/svg/icons/IconAwardStar.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconBed.svg.js +16 -0
- package/dist/assets/svg/icons/IconBed.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconBolt.svg.js +16 -0
- package/dist/assets/svg/icons/IconBolt.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconBookmark.svg.js +16 -0
- package/dist/assets/svg/icons/IconBookmark.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconBunkhouse.svg.js +16 -0
- package/dist/assets/svg/icons/IconBunkhouse.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconCalculate.svg.js +16 -0
- package/dist/assets/svg/icons/IconCalculate.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconCalendarMonth.svg.js +16 -0
- package/dist/assets/svg/icons/IconCalendarMonth.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconCall.svg.js +16 -0
- package/dist/assets/svg/icons/IconCall.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconCallQuality.svg.js +16 -0
- package/dist/assets/svg/icons/IconCallQuality.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconCarRental.svg.js +16 -0
- package/dist/assets/svg/icons/IconCarRental.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconCheck.svg.js +16 -0
- package/dist/assets/svg/icons/IconCheck.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconChevronLeft.svg.js +16 -0
- package/dist/assets/svg/icons/IconChevronLeft.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconChevronRight.svg.js +16 -0
- package/dist/assets/svg/icons/IconChevronRight.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconClear.svg.js +16 -0
- package/dist/assets/svg/icons/IconClear.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconClose.svg.js +16 -0
- package/dist/assets/svg/icons/IconClose.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconContract.svg.js +16 -0
- package/dist/assets/svg/icons/IconContract.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconCrash.svg.js +16 -0
- package/dist/assets/svg/icons/IconCrash.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconDashboardCustomize.svg.js +16 -0
- package/dist/assets/svg/icons/IconDashboardCustomize.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconDelete.svg.js +16 -0
- package/dist/assets/svg/icons/IconDelete.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconDiamond.svg.js +16 -0
- package/dist/assets/svg/icons/IconDiamond.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconDirectionsBoat.svg.js +16 -0
- package/dist/assets/svg/icons/IconDirectionsBoat.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconDomain.svg.js +16 -0
- package/dist/assets/svg/icons/IconDomain.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconDraft.svg.js +16 -0
- package/dist/assets/svg/icons/IconDraft.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconEdit.svg.js +16 -0
- package/dist/assets/svg/icons/IconEdit.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconEngine.svg.js +20 -0
- package/dist/assets/svg/icons/IconEngine.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconEngineering.svg.js +16 -0
- package/dist/assets/svg/icons/IconEngineering.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconError.svg.js +16 -0
- package/dist/assets/svg/icons/IconError.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconExpandContent.svg.js +16 -0
- package/dist/assets/svg/icons/IconExpandContent.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconExpandLess.svg.js +16 -0
- package/dist/assets/svg/icons/IconExpandLess.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconExpandMore.svg.js +16 -0
- package/dist/assets/svg/icons/IconExpandMore.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconFacebook.svg.js +16 -0
- package/dist/assets/svg/icons/IconFacebook.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconFavorite.svg.js +16 -0
- package/dist/assets/svg/icons/IconFavorite.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconFavoriteFilled.svg.js +16 -0
- package/dist/assets/svg/icons/IconFavoriteFilled.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconFlag.svg.js +16 -0
- package/dist/assets/svg/icons/IconFlag.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconFormatBold.svg.js +16 -0
- package/dist/assets/svg/icons/IconFormatBold.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconFormatItalic.svg.js +16 -0
- package/dist/assets/svg/icons/IconFormatItalic.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconFormatListBulleted.svg.js +16 -0
- package/dist/assets/svg/icons/IconFormatListBulleted.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconForum.svg.js +16 -0
- package/dist/assets/svg/icons/IconForum.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconGas.svg.js +16 -0
- package/dist/assets/svg/icons/IconGas.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconGavel.svg.js +16 -0
- package/dist/assets/svg/icons/IconGavel.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconGears.svg.js +16 -0
- package/dist/assets/svg/icons/IconGears.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconGlobeLocationPin.svg.js +16 -0
- package/dist/assets/svg/icons/IconGlobeLocationPin.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconGoogle.svg.js +31 -0
- package/dist/assets/svg/icons/IconGoogle.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconGooglePay.svg.js +16 -0
- package/dist/assets/svg/icons/IconGooglePay.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconGrid.svg.js +16 -0
- package/dist/assets/svg/icons/IconGrid.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconHandshake.svg.js +16 -0
- package/dist/assets/svg/icons/IconHandshake.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconHandyman.svg.js +16 -0
- package/dist/assets/svg/icons/IconHandyman.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconHeight.svg.js +16 -0
- package/dist/assets/svg/icons/IconHeight.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconHelp.svg.js +16 -0
- package/dist/assets/svg/icons/IconHelp.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconInfo.svg.js +16 -0
- package/dist/assets/svg/icons/IconInfo.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconInformation.svg.js +16 -0
- package/dist/assets/svg/icons/IconInformation.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconInsertText.svg.js +16 -0
- package/dist/assets/svg/icons/IconInsertText.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconInstagram.svg.js +16 -0
- package/dist/assets/svg/icons/IconInstagram.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconIosShare.svg.js +16 -0
- package/dist/assets/svg/icons/IconIosShare.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconLayout.svg.js +16 -0
- package/dist/assets/svg/icons/IconLayout.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconLevellingJack.svg.js +20 -0
- package/dist/assets/svg/icons/IconLevellingJack.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconLinkedIn.svg.js +16 -0
- package/dist/assets/svg/icons/IconLinkedIn.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconLocalShipping.svg.js +16 -0
- package/dist/assets/svg/icons/IconLocalShipping.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconLock.svg.js +16 -0
- package/dist/assets/svg/icons/IconLock.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconMail.svg.js +16 -0
- package/dist/assets/svg/icons/IconMail.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconMenu.svg.js +16 -0
- package/dist/assets/svg/icons/IconMenu.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconMoneyBag.svg.js +16 -0
- package/dist/assets/svg/icons/IconMoneyBag.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconMoreHoriz.svg.js +16 -0
- package/dist/assets/svg/icons/IconMoreHoriz.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconMove.svg.js +16 -0
- package/dist/assets/svg/icons/IconMove.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconNotifications.svg.js +16 -0
- package/dist/assets/svg/icons/IconNotifications.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconOdometer.svg.js +16 -0
- package/dist/assets/svg/icons/IconOdometer.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconOpenInNew.svg.js +16 -0
- package/dist/assets/svg/icons/IconOpenInNew.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconPalette.svg.js +16 -0
- package/dist/assets/svg/icons/IconPalette.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconPaypal.svg.js +16 -0
- package/dist/assets/svg/icons/IconPaypal.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconPerson.svg.js +16 -0
- package/dist/assets/svg/icons/IconPerson.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconPersonSearch.svg.js +16 -0
- package/dist/assets/svg/icons/IconPersonSearch.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconPhotoCamera.svg.js +16 -0
- package/dist/assets/svg/icons/IconPhotoCamera.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconPinterest.svg.js +16 -0
- package/dist/assets/svg/icons/IconPinterest.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconPlayArrow.svg.js +16 -0
- package/dist/assets/svg/icons/IconPlayArrow.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconPolicy.svg.js +16 -0
- package/dist/assets/svg/icons/IconPolicy.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconPower.svg.js +16 -0
- package/dist/assets/svg/icons/IconPower.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconPowerOff.svg.js +16 -0
- package/dist/assets/svg/icons/IconPowerOff.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconPriorityHigh.svg.js +16 -0
- package/dist/assets/svg/icons/IconPriorityHigh.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconRemove.svg.js +16 -0
- package/dist/assets/svg/icons/IconRemove.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconRequestQuote.svg.js +16 -0
- package/dist/assets/svg/icons/IconRequestQuote.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconResetWrench.svg.js +16 -0
- package/dist/assets/svg/icons/IconResetWrench.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconRoad.svg.js +16 -0
- package/dist/assets/svg/icons/IconRoad.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconRoundedCorner.svg.js +16 -0
- package/dist/assets/svg/icons/IconRoundedCorner.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconRuler.svg.js +16 -0
- package/dist/assets/svg/icons/IconRuler.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSailing.svg.js +16 -0
- package/dist/assets/svg/icons/IconSailing.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSchool.svg.js +16 -0
- package/dist/assets/svg/icons/IconSchool.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSearch.svg.js +16 -0
- package/dist/assets/svg/icons/IconSearch.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSeating.svg.js +16 -0
- package/dist/assets/svg/icons/IconSeating.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSell.svg.js +16 -0
- package/dist/assets/svg/icons/IconSell.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSensors.svg.js +16 -0
- package/dist/assets/svg/icons/IconSensors.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSettings.svg.js +16 -0
- package/dist/assets/svg/icons/IconSettings.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconShare.svg.js +16 -0
- package/dist/assets/svg/icons/IconShare.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconShieldCheck.svg.js +16 -0
- package/dist/assets/svg/icons/IconShieldCheck.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconShoppingCart.svg.js +16 -0
- package/dist/assets/svg/icons/IconShoppingCart.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSleeps.svg.js +16 -0
- package/dist/assets/svg/icons/IconSleeps.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSms.svg.js +16 -0
- package/dist/assets/svg/icons/IconSms.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSnowflake.svg.js +16 -0
- package/dist/assets/svg/icons/IconSnowflake.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconStar.svg.js +16 -0
- package/dist/assets/svg/icons/IconStar.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconStarFilled.svg.js +16 -0
- package/dist/assets/svg/icons/IconStarFilled.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconStarHalf.svg.js +16 -0
- package/dist/assets/svg/icons/IconStarHalf.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSummarize.svg.js +16 -0
- package/dist/assets/svg/icons/IconSummarize.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSwapHoriz.svg.js +16 -0
- package/dist/assets/svg/icons/IconSwapHoriz.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconSwapVert.svg.js +16 -0
- package/dist/assets/svg/icons/IconSwapVert.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconThreeDRotation.svg.js +29 -0
- package/dist/assets/svg/icons/IconThreeDRotation.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconThumbUp.svg.js +16 -0
- package/dist/assets/svg/icons/IconThumbUp.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconTrendingDown.svg.js +16 -0
- package/dist/assets/svg/icons/IconTrendingDown.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconTrophy.svg.js +16 -0
- package/dist/assets/svg/icons/IconTrophy.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconTune.svg.js +16 -0
- package/dist/assets/svg/icons/IconTune.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconTwitter.svg.js +16 -0
- package/dist/assets/svg/icons/IconTwitter.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconUmbrella.svg.js +16 -0
- package/dist/assets/svg/icons/IconUmbrella.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconVerified.svg.js +20 -0
- package/dist/assets/svg/icons/IconVerified.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconVideocam.svg.js +16 -0
- package/dist/assets/svg/icons/IconVideocam.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconViewInAr.svg.js +16 -0
- package/dist/assets/svg/icons/IconViewInAr.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconVisibility.svg.js +16 -0
- package/dist/assets/svg/icons/IconVisibility.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconVolumeOff.svg.js +16 -0
- package/dist/assets/svg/icons/IconVolumeOff.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconVolumeOn.svg.js +16 -0
- package/dist/assets/svg/icons/IconVolumeOn.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconWarehouse.svg.js +16 -0
- package/dist/assets/svg/icons/IconWarehouse.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconWarning.svg.js +16 -0
- package/dist/assets/svg/icons/IconWarning.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconWater.svg.js +16 -0
- package/dist/assets/svg/icons/IconWater.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconWeight.svg.js +16 -0
- package/dist/assets/svg/icons/IconWeight.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconWidth.svg.js +16 -0
- package/dist/assets/svg/icons/IconWidth.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconWorkspacePremium.svg.js +16 -0
- package/dist/assets/svg/icons/IconWorkspacePremium.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconWrench.svg.js +16 -0
- package/dist/assets/svg/icons/IconWrench.svg.js.map +1 -0
- package/dist/assets/svg/icons/IconYoutube.svg.js +16 -0
- package/dist/assets/svg/icons/IconYoutube.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/aero/IconAeroFlight.svg.js +16 -0
- package/dist/assets/svg/icons/realm/aero/IconAeroFlight.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/aero/IconAeroHelicopter.svg.js +16 -0
- package/dist/assets/svg/icons/realm/aero/IconAeroHelicopter.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/aero/IconAeroModeFan.svg.js +16 -0
- package/dist/assets/svg/icons/realm/aero/IconAeroModeFan.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/aero/IconAeroPlaneContrails.svg.js +16 -0
- package/dist/assets/svg/icons/realm/aero/IconAeroPlaneContrails.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvAtv.svg.js +20 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvAtv.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvDuneBuggy.svg.js +20 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvDuneBuggy.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvGoKart.svg.js +20 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvGoKart.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvGolfCart.svg.js +20 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvGolfCart.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvSandRail.svg.js +20 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvSandRail.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvSideBySide.svg.js +20 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvSideBySide.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvTrailer.svg.js +20 -0
- package/dist/assets/svg/icons/realm/atv/IconAtvTrailer.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/boatmart/IconBoatmartPwc.svg.js +20 -0
- package/dist/assets/svg/icons/realm/boatmart/IconBoatmartPwc.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/boatmart/IconBoatmartTrailer.svg.js +20 -0
- package/dist/assets/svg/icons/realm/boatmart/IconBoatmartTrailer.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/cycle/IconCycleMotorcycle.svg.js +21 -0
- package/dist/assets/svg/icons/realm/cycle/IconCycleMotorcycle.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/cycle/IconCycleTrailer.svg.js +20 -0
- package/dist/assets/svg/icons/realm/cycle/IconCycleTrailer.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/pwc/IconPwcPwc.svg.js +20 -0
- package/dist/assets/svg/icons/realm/pwc/IconPwcPwc.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/pwc/IconPwcSnowmobile.svg.js +20 -0
- package/dist/assets/svg/icons/realm/pwc/IconPwcSnowmobile.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/pwc/IconPwcTrailer.svg.js +20 -0
- package/dist/assets/svg/icons/realm/pwc/IconPwcTrailer.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/rv/IconRvClassA.svg.js +20 -0
- package/dist/assets/svg/icons/realm/rv/IconRvClassA.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/rv/IconRvClassB.svg.js +20 -0
- package/dist/assets/svg/icons/realm/rv/IconRvClassB.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/rv/IconRvClassC.svg.js +20 -0
- package/dist/assets/svg/icons/realm/rv/IconRvClassC.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/rv/IconRvDestinationTrailer.svg.js +18 -0
- package/dist/assets/svg/icons/realm/rv/IconRvDestinationTrailer.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/rv/IconRvFifthWheel.svg.js +20 -0
- package/dist/assets/svg/icons/realm/rv/IconRvFifthWheel.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/rv/IconRvFishHouse.svg.js +20 -0
- package/dist/assets/svg/icons/realm/rv/IconRvFishHouse.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/rv/IconRvParkModel.svg.js +20 -0
- package/dist/assets/svg/icons/realm/rv/IconRvParkModel.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/rv/IconRvPopUpCamper.svg.js +20 -0
- package/dist/assets/svg/icons/realm/rv/IconRvPopUpCamper.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/rv/IconRvTeardropTrailer.svg.js +17 -0
- package/dist/assets/svg/icons/realm/rv/IconRvTeardropTrailer.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/rv/IconRvTravelTrailer.svg.js +20 -0
- package/dist/assets/svg/icons/realm/rv/IconRvTravelTrailer.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/rv/IconRvTruckCamper.svg.js +20 -0
- package/dist/assets/svg/icons/realm/rv/IconRvTruckCamper.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/snow/IconSnowMotorcycle.svg.js +21 -0
- package/dist/assets/svg/icons/realm/snow/IconSnowMotorcycle.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/snow/IconSnowPwc.svg.js +20 -0
- package/dist/assets/svg/icons/realm/snow/IconSnowPwc.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/snow/IconSnowSideBySide.svg.js +20 -0
- package/dist/assets/svg/icons/realm/snow/IconSnowSideBySide.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/snow/IconSnowSnowmobile.svg.js +20 -0
- package/dist/assets/svg/icons/realm/snow/IconSnowSnowmobile.svg.js.map +1 -0
- package/dist/assets/svg/icons/realm/snow/IconSnowTrailer.svg.js +20 -0
- package/dist/assets/svg/icons/realm/snow/IconSnowTrailer.svg.js.map +1 -0
- package/dist/components/InternalBaseLink.vue.js +20 -0
- package/dist/components/InternalBaseLink.vue.js.map +1 -0
- package/dist/components/InternalBaseLink.vue2.js +5 -0
- package/dist/components/InternalBaseLink.vue2.js.map +1 -0
- package/dist/components/TideAccordionItem.vue.js +8 -0
- package/dist/components/TideAccordionItem.vue.js.map +1 -0
- package/dist/components/TideAccordionItem.vue2.js +88 -0
- package/dist/components/TideAccordionItem.vue2.js.map +1 -0
- package/dist/components/TideAlert.vue.js +8 -0
- package/dist/components/TideAlert.vue.js.map +1 -0
- package/dist/components/TideAlert.vue2.js +128 -0
- package/dist/components/TideAlert.vue2.js.map +1 -0
- package/dist/components/TideBadge.vue.js +52 -0
- package/dist/components/TideBadge.vue.js.map +1 -0
- package/dist/components/TideBadge.vue2.js +5 -0
- package/dist/components/TideBadge.vue2.js.map +1 -0
- package/dist/components/TideBadgeTrustedPartner.vue.js +45 -0
- package/dist/components/TideBadgeTrustedPartner.vue.js.map +1 -0
- package/dist/components/TideBadgeTrustedPartner.vue2.js +5 -0
- package/dist/components/TideBadgeTrustedPartner.vue2.js.map +1 -0
- package/dist/components/TideBadgeVerifiedVehicle.vue.js +8 -0
- package/dist/components/TideBadgeVerifiedVehicle.vue.js.map +1 -0
- package/dist/components/TideBadgeVerifiedVehicle.vue2.js +42 -0
- package/dist/components/TideBadgeVerifiedVehicle.vue2.js.map +1 -0
- package/dist/components/TideBreadCrumbs.vue.js +61 -0
- package/dist/components/TideBreadCrumbs.vue.js.map +1 -0
- package/dist/components/TideBreadCrumbs.vue2.js +5 -0
- package/dist/components/TideBreadCrumbs.vue2.js.map +1 -0
- package/dist/components/TideButton.vue.js +72 -0
- package/dist/components/TideButton.vue.js.map +1 -0
- package/dist/components/TideButton.vue2.js +5 -0
- package/dist/components/TideButton.vue2.js.map +1 -0
- package/dist/components/TideButtonIcon.vue.js +62 -0
- package/dist/components/TideButtonIcon.vue.js.map +1 -0
- package/dist/components/TideButtonIcon.vue2.js +5 -0
- package/dist/components/TideButtonIcon.vue2.js.map +1 -0
- package/dist/components/TideButtonPagination.vue.js +8 -0
- package/dist/components/TideButtonPagination.vue.js.map +1 -0
- package/dist/components/TideButtonPagination.vue2.js +44 -0
- package/dist/components/TideButtonPagination.vue2.js.map +1 -0
- package/dist/components/TideButtonSave.vue.js +8 -0
- package/dist/components/TideButtonSave.vue.js.map +1 -0
- package/dist/components/TideButtonSave.vue2.js +56 -0
- package/dist/components/TideButtonSave.vue2.js.map +1 -0
- package/dist/components/TideButtonSegmented.vue.js +8 -0
- package/dist/components/TideButtonSegmented.vue.js.map +1 -0
- package/dist/components/TideButtonSegmented.vue2.js +82 -0
- package/dist/components/TideButtonSegmented.vue2.js.map +1 -0
- package/dist/components/TideCard.vue.js +8 -0
- package/dist/components/TideCard.vue.js.map +1 -0
- package/dist/components/TideCard.vue2.js +72 -0
- package/dist/components/TideCard.vue2.js.map +1 -0
- package/dist/components/TideCarousel.vue.js +8 -0
- package/dist/components/TideCarousel.vue.js.map +1 -0
- package/dist/components/TideCarousel.vue2.js +359 -0
- package/dist/components/TideCarousel.vue2.js.map +1 -0
- package/dist/components/TideChipAction.vue.js +8 -0
- package/dist/components/TideChipAction.vue.js.map +1 -0
- package/dist/components/TideChipAction.vue2.js +58 -0
- package/dist/components/TideChipAction.vue2.js.map +1 -0
- package/dist/components/TideChipFilter.vue.js +8 -0
- package/dist/components/TideChipFilter.vue.js.map +1 -0
- package/dist/components/TideChipFilter.vue2.js +51 -0
- package/dist/components/TideChipFilter.vue2.js.map +1 -0
- package/dist/components/TideChipInput.vue.js +8 -0
- package/dist/components/TideChipInput.vue.js.map +1 -0
- package/dist/components/TideChipInput.vue2.js +43 -0
- package/dist/components/TideChipInput.vue2.js.map +1 -0
- package/dist/components/TideColumns.vue.js +8 -0
- package/dist/components/TideColumns.vue.js.map +1 -0
- package/dist/components/TideColumns.vue2.js +45 -0
- package/dist/components/TideColumns.vue2.js.map +1 -0
- package/dist/components/TideDivider.vue.js +8 -0
- package/dist/components/TideDivider.vue.js.map +1 -0
- package/dist/components/TideDivider.vue2.js +31 -0
- package/dist/components/TideDivider.vue2.js.map +1 -0
- package/dist/components/TideForm.vue.js +28 -0
- package/dist/components/TideForm.vue.js.map +1 -0
- package/dist/components/TideForm.vue2.js +5 -0
- package/dist/components/TideForm.vue2.js.map +1 -0
- package/dist/components/TideIcon.vue.js +52 -0
- package/dist/components/TideIcon.vue.js.map +1 -0
- package/dist/components/TideIcon.vue3.js +6 -0
- package/dist/components/TideIcon.vue3.js.map +1 -0
- package/dist/components/TideImage.vue.js +8 -0
- package/dist/components/TideImage.vue.js.map +1 -0
- package/dist/components/TideImage.vue2.js +90 -0
- package/dist/components/TideImage.vue2.js.map +1 -0
- package/dist/components/TideImageBackground.vue.js +8 -0
- package/dist/components/TideImageBackground.vue.js.map +1 -0
- package/dist/components/TideImageBackground.vue2.js +48 -0
- package/dist/components/TideImageBackground.vue2.js.map +1 -0
- package/dist/components/TideIndicator.vue.js +8 -0
- package/dist/components/TideIndicator.vue.js.map +1 -0
- package/dist/components/TideIndicator.vue2.js +37 -0
- package/dist/components/TideIndicator.vue2.js.map +1 -0
- package/dist/components/TideInputCheckbox.vue.js +8 -0
- package/dist/components/TideInputCheckbox.vue.js.map +1 -0
- package/dist/components/TideInputCheckbox.vue2.js +151 -0
- package/dist/components/TideInputCheckbox.vue2.js.map +1 -0
- package/dist/components/TideInputCheckboxDeprecated.vue.js +8 -0
- package/dist/components/TideInputCheckboxDeprecated.vue.js.map +1 -0
- package/dist/components/TideInputCheckboxDeprecated.vue2.js +96 -0
- package/dist/components/TideInputCheckboxDeprecated.vue2.js.map +1 -0
- package/dist/components/TideInputRadio.vue.js +8 -0
- package/dist/components/TideInputRadio.vue.js.map +1 -0
- package/dist/components/TideInputRadio.vue2.js +84 -0
- package/dist/components/TideInputRadio.vue2.js.map +1 -0
- package/dist/components/TideInputRadioDeprecated.vue.js +8 -0
- package/dist/components/TideInputRadioDeprecated.vue.js.map +1 -0
- package/dist/components/TideInputRadioDeprecated.vue2.js +92 -0
- package/dist/components/TideInputRadioDeprecated.vue2.js.map +1 -0
- package/dist/components/TideInputSelect.vue.js +8 -0
- package/dist/components/TideInputSelect.vue.js.map +1 -0
- package/dist/components/TideInputSelect.vue2.js +228 -0
- package/dist/components/TideInputSelect.vue2.js.map +1 -0
- package/dist/components/TideInputSelectDeprecated.vue.js +8 -0
- package/dist/components/TideInputSelectDeprecated.vue.js.map +1 -0
- package/dist/components/TideInputSelectDeprecated.vue2.js +182 -0
- package/dist/components/TideInputSelectDeprecated.vue2.js.map +1 -0
- package/dist/components/TideInputSupportingText.vue.js +40 -0
- package/dist/components/TideInputSupportingText.vue.js.map +1 -0
- package/dist/components/TideInputSupportingText.vue2.js +5 -0
- package/dist/components/TideInputSupportingText.vue2.js.map +1 -0
- package/dist/components/TideInputText.vue.js +8 -0
- package/dist/components/TideInputText.vue.js.map +1 -0
- package/dist/components/TideInputText.vue2.js +251 -0
- package/dist/components/TideInputText.vue2.js.map +1 -0
- package/dist/components/TideInputTextDeprecated.vue.js +8 -0
- package/dist/components/TideInputTextDeprecated.vue.js.map +1 -0
- package/dist/components/TideInputTextDeprecated.vue2.js +235 -0
- package/dist/components/TideInputTextDeprecated.vue2.js.map +1 -0
- package/dist/components/TideInputTextarea.vue.js +8 -0
- package/dist/components/TideInputTextarea.vue.js.map +1 -0
- package/dist/components/TideInputTextarea.vue2.js +147 -0
- package/dist/components/TideInputTextarea.vue2.js.map +1 -0
- package/dist/components/TideInputTextareaDeprecated.vue.js +8 -0
- package/dist/components/TideInputTextareaDeprecated.vue.js.map +1 -0
- package/dist/components/TideInputTextareaDeprecated.vue2.js +136 -0
- package/dist/components/TideInputTextareaDeprecated.vue2.js.map +1 -0
- package/dist/components/TideLink.vue.js +63 -0
- package/dist/components/TideLink.vue.js.map +1 -0
- package/dist/components/TideLink.vue2.js +5 -0
- package/dist/components/TideLink.vue2.js.map +1 -0
- package/dist/components/TideMenuItem.vue.js +8 -0
- package/dist/components/TideMenuItem.vue.js.map +1 -0
- package/dist/components/TideMenuItem.vue2.js +55 -0
- package/dist/components/TideMenuItem.vue2.js.map +1 -0
- package/dist/components/TideModal.vue.js +8 -0
- package/dist/components/TideModal.vue.js.map +1 -0
- package/dist/components/TideModal.vue2.js +186 -0
- package/dist/components/TideModal.vue2.js.map +1 -0
- package/dist/components/TidePagination.vue.js +82 -0
- package/dist/components/TidePagination.vue.js.map +1 -0
- package/dist/components/TidePagination.vue2.js +5 -0
- package/dist/components/TidePagination.vue2.js.map +1 -0
- package/dist/components/TidePopover.vue.js +8 -0
- package/dist/components/TidePopover.vue.js.map +1 -0
- package/dist/components/TidePopover.vue2.js +156 -0
- package/dist/components/TidePopover.vue2.js.map +1 -0
- package/dist/components/TideRating.vue.js +8 -0
- package/dist/components/TideRating.vue.js.map +1 -0
- package/dist/components/TideRating.vue2.js +75 -0
- package/dist/components/TideRating.vue2.js.map +1 -0
- package/dist/components/TideRealmLogo.vue.js +8 -0
- package/dist/components/TideRealmLogo.vue.js.map +1 -0
- package/dist/components/TideRealmLogo.vue2.js +66 -0
- package/dist/components/TideRealmLogo.vue2.js.map +1 -0
- package/dist/components/TideSeoLinks.vue.js +8 -0
- package/dist/components/TideSeoLinks.vue.js.map +1 -0
- package/dist/components/TideSeoLinks.vue2.js +47 -0
- package/dist/components/TideSeoLinks.vue2.js.map +1 -0
- package/dist/components/TideSheet.vue.js +8 -0
- package/dist/components/TideSheet.vue.js.map +1 -0
- package/dist/components/TideSheet.vue2.js +140 -0
- package/dist/components/TideSheet.vue2.js.map +1 -0
- package/dist/components/TideSwitch.vue.js +8 -0
- package/dist/components/TideSwitch.vue.js.map +1 -0
- package/dist/components/TideSwitch.vue2.js +69 -0
- package/dist/components/TideSwitch.vue2.js.map +1 -0
- package/dist/components/TideTabs.vue.js +8 -0
- package/dist/components/TideTabs.vue.js.map +1 -0
- package/dist/components/TideTabs.vue2.js +60 -0
- package/dist/components/TideTabs.vue2.js.map +1 -0
- package/dist/components/TideToaster.vue.js +8 -0
- package/dist/components/TideToaster.vue.js.map +1 -0
- package/dist/components/TideToaster.vue2.js +78 -0
- package/dist/components/TideToaster.vue2.js.map +1 -0
- package/dist/composables/useTideConfig.js +16 -0
- package/dist/composables/useTideConfig.js.map +1 -0
- package/dist/composables/useTideForm.js +18 -0
- package/dist/composables/useTideForm.js.map +1 -0
- package/dist/composables/useTideToaster.js +49 -0
- package/dist/composables/useTideToaster.js.map +1 -0
- package/dist/css/utilities-base.css +2 -2
- package/dist/css/utilities-responsive.css +8 -8
- package/dist/index.js +141 -5369
- package/dist/index.js.map +1 -0
- package/dist/style.css +3730 -1
- package/dist/types/Alert.js +10 -0
- package/dist/types/Alert.js.map +1 -0
- package/dist/types/Badge.js +69 -0
- package/dist/types/Badge.js.map +1 -0
- package/dist/types/Breakpoint.js +17 -0
- package/dist/types/Breakpoint.js.map +1 -0
- package/dist/types/Card.js +9 -0
- package/dist/types/Card.js.map +1 -0
- package/dist/types/Element.js +14 -0
- package/dist/types/Element.js.map +1 -0
- package/dist/types/Formatted.js +21 -0
- package/dist/types/Formatted.js.map +1 -0
- package/dist/types/Icon.js +195 -0
- package/dist/types/Icon.js.map +1 -0
- package/dist/types/Image.js +9 -0
- package/dist/types/Image.js.map +1 -0
- package/dist/types/Orientation.js +8 -0
- package/dist/types/Orientation.js.map +1 -0
- package/dist/types/Priority.js +11 -0
- package/dist/types/Priority.js.map +1 -0
- package/dist/types/Realm.js +16 -0
- package/dist/types/Realm.js.map +1 -0
- package/dist/types/RealmLogo.js +26 -0
- package/dist/types/RealmLogo.js.map +1 -0
- package/dist/types/Size.js +13 -0
- package/dist/types/Size.js.map +1 -0
- package/dist/types/Styles.js +484 -0
- package/dist/types/Styles.js.map +1 -0
- package/dist/types/Target.js +8 -0
- package/dist/types/Target.js.map +1 -0
- package/dist/types/TextInput.js +28 -0
- package/dist/types/TextInput.js.map +1 -0
- package/dist/types/Validation.js +19 -0
- package/dist/types/Validation.js.map +1 -0
- package/dist/utilities/event.js +8 -0
- package/dist/utilities/event.js.map +1 -0
- package/dist/utilities/format.js +47 -0
- package/dist/utilities/format.js.map +1 -0
- package/dist/utilities/forms.js +21 -0
- package/dist/utilities/forms.js.map +1 -0
- package/dist/utilities/realm.js +15 -0
- package/dist/utilities/realm.js.map +1 -0
- package/dist/utilities/validation-deprecated.js +89 -0
- package/dist/utilities/validation-deprecated.js.map +1 -0
- package/dist/utilities/validation.js +110 -0
- package/dist/utilities/validation.js.map +1 -0
- package/dist/utilities/viewport.js +47 -0
- package/dist/utilities/viewport.js.map +1 -0
- package/package.json +9 -7
- package/dist/chunks/IconAccountBalance.js +0 -16
- package/dist/chunks/IconAcute.js +0 -16
- package/dist/chunks/IconAdd.js +0 -16
- package/dist/chunks/IconAeroFlight.js +0 -16
- package/dist/chunks/IconAeroHelicopter.js +0 -16
- package/dist/chunks/IconAeroModeFan.js +0 -16
- package/dist/chunks/IconAeroPlaneContrails.js +0 -16
- package/dist/chunks/IconAiDescription.js +0 -20
- package/dist/chunks/IconAlignSpaceEven.js +0 -16
- package/dist/chunks/IconApplePay.js +0 -16
- package/dist/chunks/IconArrowBack.js +0 -16
- package/dist/chunks/IconArrowCycle.js +0 -16
- package/dist/chunks/IconArrowForward.js +0 -16
- package/dist/chunks/IconArrowRight.js +0 -16
- package/dist/chunks/IconArrowUp.js +0 -16
- package/dist/chunks/IconAssignment.js +0 -16
- package/dist/chunks/IconAttachMoney.js +0 -16
- package/dist/chunks/IconAtvAtv.js +0 -20
- package/dist/chunks/IconAtvDuneBuggy.js +0 -20
- package/dist/chunks/IconAtvGoKart.js +0 -20
- package/dist/chunks/IconAtvGolfCart.js +0 -20
- package/dist/chunks/IconAtvSandRail.js +0 -20
- package/dist/chunks/IconAtvSideBySide.js +0 -20
- package/dist/chunks/IconAtvTrailer.js +0 -20
- package/dist/chunks/IconAutoRenew.js +0 -16
- package/dist/chunks/IconAwardStar.js +0 -16
- package/dist/chunks/IconBed.js +0 -16
- package/dist/chunks/IconBoatmartPwc.js +0 -20
- package/dist/chunks/IconBoatmartTrailer.js +0 -20
- package/dist/chunks/IconBolt.js +0 -16
- package/dist/chunks/IconBookmark.js +0 -16
- package/dist/chunks/IconBunkhouse.js +0 -16
- package/dist/chunks/IconCalculate.js +0 -16
- package/dist/chunks/IconCalendarMonth.js +0 -16
- package/dist/chunks/IconCall.js +0 -16
- package/dist/chunks/IconCallQuality.js +0 -16
- package/dist/chunks/IconCarRental.js +0 -16
- package/dist/chunks/IconCheck.js +0 -16
- package/dist/chunks/IconChevronLeft.js +0 -16
- package/dist/chunks/IconChevronRight.js +0 -16
- package/dist/chunks/IconClear.js +0 -16
- package/dist/chunks/IconClose.js +0 -16
- package/dist/chunks/IconContract.js +0 -16
- package/dist/chunks/IconCrash.js +0 -16
- package/dist/chunks/IconCycleMotorcycle.js +0 -21
- package/dist/chunks/IconCycleTrailer.js +0 -20
- package/dist/chunks/IconDashboardCustomize.js +0 -16
- package/dist/chunks/IconDelete.js +0 -16
- package/dist/chunks/IconDiamond.js +0 -16
- package/dist/chunks/IconDirectionsBoat.js +0 -16
- package/dist/chunks/IconDomain.js +0 -16
- package/dist/chunks/IconDraft.js +0 -16
- package/dist/chunks/IconEdit.js +0 -16
- package/dist/chunks/IconEngine.js +0 -20
- package/dist/chunks/IconEngineering.js +0 -16
- package/dist/chunks/IconError.js +0 -16
- package/dist/chunks/IconExpandContent.js +0 -16
- package/dist/chunks/IconExpandLess.js +0 -16
- package/dist/chunks/IconExpandMore.js +0 -16
- package/dist/chunks/IconFacebook.js +0 -16
- package/dist/chunks/IconFavorite.js +0 -16
- package/dist/chunks/IconFavoriteFilled.js +0 -16
- package/dist/chunks/IconFlag.js +0 -16
- package/dist/chunks/IconFormatBold.js +0 -16
- package/dist/chunks/IconFormatItalic.js +0 -16
- package/dist/chunks/IconFormatListBulleted.js +0 -16
- package/dist/chunks/IconForum.js +0 -16
- package/dist/chunks/IconGas.js +0 -16
- package/dist/chunks/IconGavel.js +0 -16
- package/dist/chunks/IconGears.js +0 -16
- package/dist/chunks/IconGlobeLocationPin.js +0 -16
- package/dist/chunks/IconGoogle.js +0 -31
- package/dist/chunks/IconGooglePay.js +0 -16
- package/dist/chunks/IconGrid.js +0 -16
- package/dist/chunks/IconHandshake.js +0 -16
- package/dist/chunks/IconHandyman.js +0 -16
- package/dist/chunks/IconHeight.js +0 -16
- package/dist/chunks/IconHelp.js +0 -16
- package/dist/chunks/IconInfo.js +0 -16
- package/dist/chunks/IconInformation.js +0 -16
- package/dist/chunks/IconInsertText.js +0 -16
- package/dist/chunks/IconInstagram.js +0 -16
- package/dist/chunks/IconIosShare.js +0 -16
- package/dist/chunks/IconLayout.js +0 -16
- package/dist/chunks/IconLevellingJack.js +0 -20
- package/dist/chunks/IconLinkedIn.js +0 -16
- package/dist/chunks/IconLocalShipping.js +0 -16
- package/dist/chunks/IconLock.js +0 -16
- package/dist/chunks/IconMail.js +0 -16
- package/dist/chunks/IconMenu.js +0 -16
- package/dist/chunks/IconMoneyBag.js +0 -16
- package/dist/chunks/IconMoreHoriz.js +0 -16
- package/dist/chunks/IconMove.js +0 -16
- package/dist/chunks/IconNotifications.js +0 -16
- package/dist/chunks/IconOdometer.js +0 -16
- package/dist/chunks/IconOpenInNew.js +0 -16
- package/dist/chunks/IconPalette.js +0 -16
- package/dist/chunks/IconPaypal.js +0 -16
- package/dist/chunks/IconPerson.js +0 -16
- package/dist/chunks/IconPersonSearch.js +0 -16
- package/dist/chunks/IconPhotoCamera.js +0 -16
- package/dist/chunks/IconPinterest.js +0 -16
- package/dist/chunks/IconPlayArrow.js +0 -16
- package/dist/chunks/IconPolicy.js +0 -16
- package/dist/chunks/IconPower.js +0 -16
- package/dist/chunks/IconPowerOff.js +0 -16
- package/dist/chunks/IconPriorityHigh.js +0 -16
- package/dist/chunks/IconPwcPwc.js +0 -20
- package/dist/chunks/IconPwcSnowmobile.js +0 -20
- package/dist/chunks/IconPwcTrailer.js +0 -20
- package/dist/chunks/IconRemove.js +0 -16
- package/dist/chunks/IconRequestQuote.js +0 -16
- package/dist/chunks/IconResetWrench.js +0 -16
- package/dist/chunks/IconRoad.js +0 -16
- package/dist/chunks/IconRoundedCorner.js +0 -16
- package/dist/chunks/IconRuler.js +0 -16
- package/dist/chunks/IconRvClassA.js +0 -20
- package/dist/chunks/IconRvClassB.js +0 -20
- package/dist/chunks/IconRvClassC.js +0 -20
- package/dist/chunks/IconRvDestinationTrailer.js +0 -18
- package/dist/chunks/IconRvFifthWheel.js +0 -20
- package/dist/chunks/IconRvFishHouse.js +0 -20
- package/dist/chunks/IconRvParkModel.js +0 -20
- package/dist/chunks/IconRvPopUpCamper.js +0 -20
- package/dist/chunks/IconRvTeardropTrailer.js +0 -17
- package/dist/chunks/IconRvTravelTrailer.js +0 -20
- package/dist/chunks/IconRvTruckCamper.js +0 -20
- package/dist/chunks/IconSailing.js +0 -16
- package/dist/chunks/IconSchool.js +0 -16
- package/dist/chunks/IconSearch.js +0 -16
- package/dist/chunks/IconSeating.js +0 -16
- package/dist/chunks/IconSell.js +0 -16
- package/dist/chunks/IconSensors.js +0 -16
- package/dist/chunks/IconSettings.js +0 -16
- package/dist/chunks/IconShare.js +0 -16
- package/dist/chunks/IconShieldCheck.js +0 -16
- package/dist/chunks/IconShoppingCart.js +0 -16
- package/dist/chunks/IconSleeps.js +0 -16
- package/dist/chunks/IconSms.js +0 -16
- package/dist/chunks/IconSnowMotorcycle.js +0 -21
- package/dist/chunks/IconSnowPwc.js +0 -20
- package/dist/chunks/IconSnowSideBySide.js +0 -20
- package/dist/chunks/IconSnowSnowmobile.js +0 -20
- package/dist/chunks/IconSnowTrailer.js +0 -20
- package/dist/chunks/IconSnowflake.js +0 -16
- package/dist/chunks/IconStar.js +0 -16
- package/dist/chunks/IconStarFilled.js +0 -16
- package/dist/chunks/IconStarHalf.js +0 -16
- package/dist/chunks/IconSummarize.js +0 -16
- package/dist/chunks/IconSwapHoriz.js +0 -16
- package/dist/chunks/IconSwapVert.js +0 -16
- package/dist/chunks/IconThreeDRotation.js +0 -29
- package/dist/chunks/IconThumbUp.js +0 -16
- package/dist/chunks/IconTrendingDown.js +0 -16
- package/dist/chunks/IconTrophy.js +0 -16
- package/dist/chunks/IconTune.js +0 -16
- package/dist/chunks/IconTwitter.js +0 -16
- package/dist/chunks/IconUmbrella.js +0 -16
- package/dist/chunks/IconVerified.js +0 -20
- package/dist/chunks/IconVideocam.js +0 -16
- package/dist/chunks/IconViewInAr.js +0 -16
- package/dist/chunks/IconVisibility.js +0 -16
- package/dist/chunks/IconVolumeOff.js +0 -16
- package/dist/chunks/IconVolumeOn.js +0 -16
- package/dist/chunks/IconWarehouse.js +0 -16
- package/dist/chunks/IconWarning.js +0 -16
- package/dist/chunks/IconWater.js +0 -16
- package/dist/chunks/IconWeight.js +0 -16
- package/dist/chunks/IconWidth.js +0 -16
- package/dist/chunks/IconWorkspacePremium.js +0 -16
- package/dist/chunks/IconWrench.js +0 -16
- package/dist/chunks/IconYoutube.js +0 -16
- package/dist/chunks/logo-aero.js +0 -18
- package/dist/chunks/logo-atv.js +0 -20
- package/dist/chunks/logo-boatmart.js +0 -18
- package/dist/chunks/logo-cycle.js +0 -18
- package/dist/chunks/logo-equipment.js +0 -18
- package/dist/chunks/logo-pwc.js +0 -21
- package/dist/chunks/logo-rv.js +0 -20
- package/dist/chunks/logo-rvt.js +0 -16
- package/dist/chunks/logo-snow.js +0 -18
- package/dist/chunks/logo-truck.js +0 -19
- package/dist/chunks/mark-aero.js +0 -17
- package/dist/chunks/mark-atv.js +0 -22
- package/dist/chunks/mark-boatmart.js +0 -17
- package/dist/chunks/mark-cycle.js +0 -17
- package/dist/chunks/mark-equipment.js +0 -17
- package/dist/chunks/mark-pwc.js +0 -17
- package/dist/chunks/mark-rv.js +0 -22
- package/dist/chunks/mark-rvt.js +0 -18
- package/dist/chunks/mark-snow.js +0 -17
- package/dist/chunks/mark-truck.js +0 -18
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { defineComponent, ref, useModel, watch, onBeforeMount, onMounted, onBeforeUnmount, openBlock, createBlock, Teleport, unref, createElementVNode, mergeProps, withKeys, withModifiers, normalizeClass, createCommentVNode, toDisplayString, renderSlot, createElementBlock, mergeModels, nextTick } from "vue";
|
|
2
|
+
import _sfc_main$1 from "./TideButtonIcon.vue.js";
|
|
3
|
+
import { BREAKPOINT } from "../types/Breakpoint.js";
|
|
4
|
+
import { ICON } from "../types/Icon.js";
|
|
5
|
+
import { PRIORITY } from "../types/Priority.js";
|
|
6
|
+
import { CSS } from "../types/Styles.js";
|
|
7
|
+
import { initFauxTopLayer, TOP_LAYER_ID, setScrollLock } from "../utilities/viewport.js";
|
|
8
|
+
const _hoisted_1 = ["textContent"];
|
|
9
|
+
const __default__ = { inheritAttrs: false };
|
|
10
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
11
|
+
...__default__,
|
|
12
|
+
__name: "TideModal",
|
|
13
|
+
props: /* @__PURE__ */ mergeModels({
|
|
14
|
+
beforeClose: { type: Function, default: void 0 },
|
|
15
|
+
isBackButton: { type: Boolean, default: false },
|
|
16
|
+
isDismissible: { type: Boolean, default: true },
|
|
17
|
+
title: { default: void 0 },
|
|
18
|
+
width: { default: void 0 }
|
|
19
|
+
}, {
|
|
20
|
+
"modelValue": { type: Boolean, ...{ required: true } },
|
|
21
|
+
"modelModifiers": {}
|
|
22
|
+
}),
|
|
23
|
+
emits: /* @__PURE__ */ mergeModels(["back"], ["update:modelValue"]),
|
|
24
|
+
setup(__props, { emit: __emit }) {
|
|
25
|
+
const props = __props;
|
|
26
|
+
const emit = __emit;
|
|
27
|
+
const modalContent = ref();
|
|
28
|
+
const modalDialog = ref();
|
|
29
|
+
const isOpen = useModel(__props, "modelValue");
|
|
30
|
+
const triggerNativeDialogOpen = () => {
|
|
31
|
+
var _a;
|
|
32
|
+
(_a = modalDialog.value) == null ? void 0 : _a.showModal();
|
|
33
|
+
setScrollLock(true);
|
|
34
|
+
};
|
|
35
|
+
const triggerNativeDialogClose = () => {
|
|
36
|
+
var _a;
|
|
37
|
+
(_a = modalDialog.value) == null ? void 0 : _a.close();
|
|
38
|
+
setScrollLock(false);
|
|
39
|
+
};
|
|
40
|
+
const scrollContentToTop = () => {
|
|
41
|
+
nextTick(() => {
|
|
42
|
+
if (!modalContent.value) return;
|
|
43
|
+
modalContent.value.scrollTop = 0;
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
const close = async () => {
|
|
47
|
+
if (props.beforeClose) {
|
|
48
|
+
const result = await props.beforeClose();
|
|
49
|
+
if (result === false) return;
|
|
50
|
+
}
|
|
51
|
+
isOpen.value = false;
|
|
52
|
+
};
|
|
53
|
+
const handleBackdropClick = () => {
|
|
54
|
+
if (props.isDismissible) close();
|
|
55
|
+
};
|
|
56
|
+
const handleEscapeKeyup = () => {
|
|
57
|
+
if (props.isDismissible) close();
|
|
58
|
+
};
|
|
59
|
+
watch(isOpen, () => {
|
|
60
|
+
if (!modalDialog.value) return;
|
|
61
|
+
if (isOpen.value) {
|
|
62
|
+
triggerNativeDialogOpen();
|
|
63
|
+
scrollContentToTop();
|
|
64
|
+
} else {
|
|
65
|
+
triggerNativeDialogClose();
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
onBeforeMount(() => {
|
|
69
|
+
initFauxTopLayer();
|
|
70
|
+
});
|
|
71
|
+
onMounted(() => {
|
|
72
|
+
if (isOpen.value) {
|
|
73
|
+
triggerNativeDialogOpen();
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
onBeforeUnmount(() => {
|
|
77
|
+
if (isOpen.value) {
|
|
78
|
+
isOpen.value = false;
|
|
79
|
+
triggerNativeDialogClose();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
return (_ctx, _cache) => {
|
|
83
|
+
return openBlock(), createBlock(Teleport, {
|
|
84
|
+
to: `#${unref(TOP_LAYER_ID)}`
|
|
85
|
+
}, [
|
|
86
|
+
createElementVNode("dialog", mergeProps(_ctx.$attrs, {
|
|
87
|
+
class: ["tide-modal", unref(CSS).BG.INITIAL, unref(CSS).HEIGHT.FULL, unref(CSS).WIDTH.FULL, unref(CSS).OVERFLOW.XY.HIDDEN],
|
|
88
|
+
ref_key: "modalDialog",
|
|
89
|
+
ref: modalDialog,
|
|
90
|
+
style: { "--modal-width": __props.width },
|
|
91
|
+
onCancel: _cache[1] || (_cache[1] = withModifiers(() => {
|
|
92
|
+
}, ["prevent"])),
|
|
93
|
+
onClick: withModifiers(handleBackdropClick, ["self"]),
|
|
94
|
+
onKeyup: withKeys(handleEscapeKeyup, ["escape"]),
|
|
95
|
+
closedby: "none"
|
|
96
|
+
}), [
|
|
97
|
+
createElementVNode("div", {
|
|
98
|
+
class: normalizeClass([
|
|
99
|
+
"tide-modal-body",
|
|
100
|
+
unref(CSS).BG.SURFACE.DEFAULT,
|
|
101
|
+
unref(CSS).BORDER.RADIUS.ONE,
|
|
102
|
+
unref(CSS).DISPLAY.FLEX,
|
|
103
|
+
unref(CSS).FLEX.DIRECTION.COLUMN,
|
|
104
|
+
unref(CSS).OVERFLOW.XY.HIDDEN,
|
|
105
|
+
unref(CSS).POSITION.ABSOLUTE,
|
|
106
|
+
unref(CSS).POSITIONING.BOTTOM,
|
|
107
|
+
unref(CSS).SHADOW.TOP,
|
|
108
|
+
unref(CSS).WIDTH.FULL,
|
|
109
|
+
unref(CSS).WIDTH.MAX_FULL,
|
|
110
|
+
unref(CSS).withBreakpoint([unref(CSS).SHADOW.BOTTOM], unref(BREAKPOINT).SM)
|
|
111
|
+
])
|
|
112
|
+
}, [
|
|
113
|
+
createElementVNode("header", {
|
|
114
|
+
class: normalizeClass([
|
|
115
|
+
"tide-modal-header",
|
|
116
|
+
unref(CSS).AXIS2.CENTER,
|
|
117
|
+
unref(CSS).BORDER.BOTTOM.ONE,
|
|
118
|
+
unref(CSS).BORDER.COLOR.LOW,
|
|
119
|
+
unref(CSS).DISPLAY.FLEX,
|
|
120
|
+
unref(CSS).GAP.HALF,
|
|
121
|
+
unref(CSS).ISOLATION.ISOLATE,
|
|
122
|
+
unref(CSS).PADDING.Y.ONE,
|
|
123
|
+
unref(CSS).POSITION.RELATIVE,
|
|
124
|
+
unref(CSS).Z_INDEX.ONE
|
|
125
|
+
])
|
|
126
|
+
}, [
|
|
127
|
+
__props.isBackButton ? (openBlock(), createBlock(_sfc_main$1, {
|
|
128
|
+
key: 0,
|
|
129
|
+
icon: unref(ICON).CHEVRON_LEFT,
|
|
130
|
+
priority: unref(PRIORITY).QUATERNARY,
|
|
131
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("back")),
|
|
132
|
+
"data-test": "tide-modal-back",
|
|
133
|
+
title: "Back"
|
|
134
|
+
}, null, 8, ["icon", "priority"])) : createCommentVNode("", true),
|
|
135
|
+
createElementVNode("div", {
|
|
136
|
+
class: normalizeClass([unref(CSS).FONT.ROLE.HEADLINE_2]),
|
|
137
|
+
textContent: toDisplayString(__props.title)
|
|
138
|
+
}, null, 10, _hoisted_1),
|
|
139
|
+
__props.isDismissible ? (openBlock(), createBlock(_sfc_main$1, {
|
|
140
|
+
key: 1,
|
|
141
|
+
class: normalizeClass([unref(CSS).FLEX.GROW.OFF, unref(CSS).FLEX.SHRINK.OFF, unref(CSS).MARGIN.LEFT.AUTO]),
|
|
142
|
+
icon: unref(ICON).CLOSE,
|
|
143
|
+
priority: unref(PRIORITY).QUATERNARY,
|
|
144
|
+
onClick: close,
|
|
145
|
+
"data-test": "tide-modal-close"
|
|
146
|
+
}, null, 8, ["class", "icon", "priority"])) : createCommentVNode("", true)
|
|
147
|
+
], 2),
|
|
148
|
+
createElementVNode("div", {
|
|
149
|
+
class: normalizeClass([
|
|
150
|
+
"tide-modal-content",
|
|
151
|
+
unref(CSS).DISPLAY.GRID,
|
|
152
|
+
unref(CSS).ISOLATION.ISOLATE,
|
|
153
|
+
unref(CSS).OVERFLOW.X.HIDDEN,
|
|
154
|
+
unref(CSS).OVERFLOW.Y.AUTO,
|
|
155
|
+
unref(CSS).PADDING.Y.TWO,
|
|
156
|
+
unref(CSS).WIDTH.FULL
|
|
157
|
+
]),
|
|
158
|
+
ref_key: "modalContent",
|
|
159
|
+
ref: modalContent
|
|
160
|
+
}, [
|
|
161
|
+
renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
162
|
+
], 2),
|
|
163
|
+
_ctx.$slots.footer ? (openBlock(), createElementBlock("footer", {
|
|
164
|
+
key: 0,
|
|
165
|
+
class: normalizeClass([
|
|
166
|
+
"tide-modal-footer",
|
|
167
|
+
unref(CSS).AXIS1.END,
|
|
168
|
+
unref(CSS).DISPLAY.FLEX,
|
|
169
|
+
unref(CSS).GAP.TWO,
|
|
170
|
+
unref(CSS).ISOLATION.ISOLATE,
|
|
171
|
+
unref(CSS).PADDING.Y.ONE,
|
|
172
|
+
unref(CSS).SHADOW.TOP
|
|
173
|
+
])
|
|
174
|
+
}, [
|
|
175
|
+
renderSlot(_ctx.$slots, "footer", {}, void 0, true)
|
|
176
|
+
], 2)) : createCommentVNode("", true)
|
|
177
|
+
], 2)
|
|
178
|
+
], 16)
|
|
179
|
+
], 8, ["to"]);
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
export {
|
|
184
|
+
_sfc_main as default
|
|
185
|
+
};
|
|
186
|
+
//# sourceMappingURL=TideModal.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TideModal.vue2.js","sources":["../../src/components/TideModal.vue"],"sourcesContent":["<script lang=\"ts\">\n /**\n * Renders a modal intended to be used for displaying additional information or options.\n *\n * @see the [Storybook interface](https://tide-design-system.netlify.app/?path=/docs/components-tidemodal--docs) for TideModal\n */\n export default { inheritAttrs: false };\n</script>\n\n<script lang=\"ts\" setup>\n import { nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, watch } from 'vue';\n\n import TideButtonIcon from '@/components/TideButtonIcon.vue';\n import { BREAKPOINT } from '@/types/Breakpoint';\n import { ICON } from '@/types/Icon';\n import { PRIORITY } from '@/types/Priority';\n import { CSS } from '@/types/Styles';\n import { TOP_LAYER_ID, initFauxTopLayer, setScrollLock } from '@/utilities/viewport';\n\n import type { Ref } from 'vue';\n\n type Props = {\n /**\n * Called before the modal closes.\n *\n * Return `false` to cancel the close event.\n */\n beforeClose?: () => void | boolean | Promise<void | boolean>;\n /** Controls display of the back button. */\n isBackButton?: boolean;\n /** Controls whether the modal can be dismissed with a close button or other gestures. */\n isDismissible?: boolean;\n /** The title to display in the modal's header. */\n title?: string;\n /** Custom override to the modal's width constraint. Include units. */\n width?: string;\n };\n\n const props = withDefaults(defineProps<Props>(), {\n beforeClose: undefined,\n isBackButton: false,\n isDismissible: true,\n title: undefined,\n width: undefined,\n });\n\n type Emits = {\n (e: 'back'): void;\n };\n\n const emit = defineEmits<Emits>();\n\n const modalContent: Ref<HTMLDivElement | undefined> = ref();\n const modalDialog: Ref<HTMLDialogElement | undefined> = ref();\n\n const isOpen = defineModel<boolean>({ required: true });\n\n const triggerNativeDialogOpen = () => {\n modalDialog.value?.showModal();\n setScrollLock(true);\n };\n\n const triggerNativeDialogClose = () => {\n modalDialog.value?.close();\n setScrollLock(false);\n };\n\n const scrollContentToTop = () => {\n nextTick(() => {\n if (!modalContent.value) return;\n modalContent.value.scrollTop = 0;\n });\n };\n\n const close = async () => {\n if (props.beforeClose) {\n const result = await props.beforeClose();\n if (result === false) return;\n }\n\n isOpen.value = false;\n };\n\n const handleBackdropClick = () => {\n if (props.isDismissible) close();\n };\n\n const handleEscapeKeyup = () => {\n if (props.isDismissible) close();\n };\n\n watch(isOpen, () => {\n if (!modalDialog.value) return;\n if (isOpen.value) {\n triggerNativeDialogOpen();\n scrollContentToTop();\n } else {\n triggerNativeDialogClose();\n }\n });\n\n onBeforeMount(() => {\n initFauxTopLayer();\n });\n\n onMounted(() => {\n if (isOpen.value) {\n triggerNativeDialogOpen();\n }\n });\n\n onBeforeUnmount(() => {\n if (isOpen.value) {\n isOpen.value = false;\n triggerNativeDialogClose();\n }\n });\n</script>\n\n<template>\n <Teleport :to=\"`#${TOP_LAYER_ID}`\">\n <dialog\n v-bind=\"$attrs\"\n :class=\"['tide-modal', CSS.BG.INITIAL, CSS.HEIGHT.FULL, CSS.WIDTH.FULL, CSS.OVERFLOW.XY.HIDDEN]\"\n ref=\"modalDialog\"\n :style=\"{ '--modal-width': width }\"\n @cancel.prevent\n @click.self=\"handleBackdropClick\"\n @keyup.escape=\"handleEscapeKeyup\"\n closedby=\"none\"\n >\n <div\n :class=\"[\n 'tide-modal-body',\n CSS.BG.SURFACE.DEFAULT,\n CSS.BORDER.RADIUS.ONE,\n CSS.DISPLAY.FLEX,\n CSS.FLEX.DIRECTION.COLUMN,\n CSS.OVERFLOW.XY.HIDDEN,\n CSS.POSITION.ABSOLUTE,\n CSS.POSITIONING.BOTTOM,\n CSS.SHADOW.TOP,\n CSS.WIDTH.FULL,\n CSS.WIDTH.MAX_FULL,\n CSS.withBreakpoint([CSS.SHADOW.BOTTOM], BREAKPOINT.SM),\n ]\"\n >\n <header\n :class=\"[\n 'tide-modal-header',\n CSS.AXIS2.CENTER,\n CSS.BORDER.BOTTOM.ONE,\n CSS.BORDER.COLOR.LOW,\n CSS.DISPLAY.FLEX,\n CSS.GAP.HALF,\n CSS.ISOLATION.ISOLATE,\n CSS.PADDING.Y.ONE,\n CSS.POSITION.RELATIVE,\n CSS.Z_INDEX.ONE,\n ]\"\n >\n <TideButtonIcon\n :icon=\"ICON.CHEVRON_LEFT\"\n :priority=\"PRIORITY.QUATERNARY\"\n @click=\"emit('back')\"\n data-test=\"tide-modal-back\"\n title=\"Back\"\n v-if=\"isBackButton\"\n />\n\n <div\n :class=\"[CSS.FONT.ROLE.HEADLINE_2]\"\n v-text=\"title\"\n />\n\n <TideButtonIcon\n :class=\"[CSS.FLEX.GROW.OFF, CSS.FLEX.SHRINK.OFF, CSS.MARGIN.LEFT.AUTO]\"\n :icon=\"ICON.CLOSE\"\n :priority=\"PRIORITY.QUATERNARY\"\n @click=\"close\"\n data-test=\"tide-modal-close\"\n v-if=\"isDismissible\"\n />\n </header>\n\n <div\n :class=\"[\n 'tide-modal-content',\n CSS.DISPLAY.GRID,\n CSS.ISOLATION.ISOLATE,\n CSS.OVERFLOW.X.HIDDEN,\n CSS.OVERFLOW.Y.AUTO,\n CSS.PADDING.Y.TWO,\n CSS.WIDTH.FULL,\n ]\"\n ref=\"modalContent\"\n >\n <slot />\n </div>\n\n <footer\n :class=\"[\n 'tide-modal-footer',\n CSS.AXIS1.END,\n CSS.DISPLAY.FLEX,\n CSS.GAP.TWO,\n CSS.ISOLATION.ISOLATE,\n CSS.PADDING.Y.ONE,\n CSS.SHADOW.TOP,\n ]\"\n v-if=\"$slots.footer\"\n >\n <slot name=\"footer\" />\n </footer>\n </div>\n </dialog>\n </Teleport>\n</template>\n\n<style scoped>\n .tide-modal {\n --modal-padding-x: 20px;\n max-width: unset;\n max-height: unset;\n place-items: center;\n display: none;\n transition: all var(--tide-animate) allow-discrete;\n transform: translateY(100%);\n }\n\n .tide-modal[open] {\n display: grid;\n transform: translateY(0%);\n }\n\n .tide-modal::backdrop {\n background-color: transparent;\n transition: all var(--tide-animate) allow-discrete;\n backdrop-filter: blur(0px);\n }\n\n .tide-modal[open]::backdrop {\n background-color: var(--tide-transparent-400);\n backdrop-filter: var(--tide-bg-blur);\n }\n\n @starting-style {\n .tide-modal[open] {\n display: grid;\n transform: translateY(100%);\n }\n\n .tide-modal[open]::backdrop {\n background-color: transparent;\n backdrop-filter: var(--tide-bg-blur);\n }\n }\n\n .tide-modal-body {\n width: var(--modal-width, 576px);\n max-height: calc(100% - var(--tide-spacing-2));\n }\n\n .tide-modal-header,\n .tide-modal-footer {\n padding-inline: var(--modal-padding-x);\n }\n\n .tide-modal-content {\n grid-template-columns: var(--modal-padding-x) var(--tide-safe-fr) var(--modal-padding-x);\n contain: layout;\n }\n\n :where(.tide-modal-content):deep(> :where(*)) {\n grid-column: 2;\n }\n\n @media (max-width: 767px) {\n .tide-modal-body {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n @media (min-width: 768px) {\n .tide-modal {\n --modal-padding-x: var(--tide-spacing-2);\n }\n\n .tide-modal-body {\n max-height: 85%;\n bottom: initial;\n }\n }\n</style>\n"],"names":["_useModel","_createBlock","_Teleport","_unref","_createElementVNode","_mergeProps","_normalizeClass","TideButtonIcon","_toDisplayString","_renderSlot","$slots","_createElementBlock"],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { defineComponent, useModel, watchEffect, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, createVNode, toDisplayString, createCommentVNode, mergeModels } from "vue";
|
|
2
|
+
import _sfc_main$1 from "./TideButtonIcon.vue.js";
|
|
3
|
+
import { ICON } from "../types/Icon.js";
|
|
4
|
+
import { PRIORITY } from "../types/Priority.js";
|
|
5
|
+
import { CSS } from "../types/Styles.js";
|
|
6
|
+
import { formatNumber } from "../utilities/format.js";
|
|
7
|
+
const __default__ = {};
|
|
8
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
9
|
+
...__default__,
|
|
10
|
+
__name: "TidePagination",
|
|
11
|
+
props: /* @__PURE__ */ mergeModels({
|
|
12
|
+
pageCount: {},
|
|
13
|
+
pageSize: {},
|
|
14
|
+
totalResults: {}
|
|
15
|
+
}, {
|
|
16
|
+
"modelValue": { required: true },
|
|
17
|
+
"modelModifiers": {}
|
|
18
|
+
}),
|
|
19
|
+
emits: ["update:modelValue"],
|
|
20
|
+
setup(__props) {
|
|
21
|
+
const props = __props;
|
|
22
|
+
const currentIndex = useModel(__props, "modelValue");
|
|
23
|
+
watchEffect(() => {
|
|
24
|
+
if (props.pageCount < 1) return;
|
|
25
|
+
const clamped = Math.min(Math.max(currentIndex.value, 1), props.pageCount);
|
|
26
|
+
if (clamped !== currentIndex.value) currentIndex.value = clamped;
|
|
27
|
+
});
|
|
28
|
+
const resultStart = computed(() => {
|
|
29
|
+
if (props.pageSize === void 0) return void 0;
|
|
30
|
+
if (props.totalResults === 0) return formatNumber(0);
|
|
31
|
+
return formatNumber((currentIndex.value - 1) * props.pageSize + 1);
|
|
32
|
+
});
|
|
33
|
+
const resultEnd = computed(() => {
|
|
34
|
+
if (props.pageSize === void 0) return void 0;
|
|
35
|
+
if (props.totalResults === 0) return formatNumber(0);
|
|
36
|
+
return formatNumber(Math.min(currentIndex.value * props.pageSize, props.totalResults));
|
|
37
|
+
});
|
|
38
|
+
const handlePreviousClick = () => {
|
|
39
|
+
if (currentIndex.value > 1) {
|
|
40
|
+
currentIndex.value--;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const handleNextClick = () => {
|
|
44
|
+
if (currentIndex.value < props.pageCount) {
|
|
45
|
+
currentIndex.value++;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return (_ctx, _cache) => {
|
|
49
|
+
return openBlock(), createElementBlock("section", {
|
|
50
|
+
class: normalizeClass(["tide-pagination", unref(CSS).DISPLAY.FLEX, unref(CSS).FLEX.DIRECTION.COLUMN, unref(CSS).AXIS2.CENTER, unref(CSS).GAP.HALF])
|
|
51
|
+
}, [
|
|
52
|
+
createElementVNode("div", {
|
|
53
|
+
class: normalizeClass([unref(CSS).DISPLAY.FLEX, unref(CSS).AXIS1.CENTER, unref(CSS).AXIS2.CENTER, unref(CSS).GAP.HALF])
|
|
54
|
+
}, [
|
|
55
|
+
createVNode(_sfc_main$1, {
|
|
56
|
+
disabled: currentIndex.value <= 1,
|
|
57
|
+
icon: unref(ICON).CHEVRON_LEFT,
|
|
58
|
+
priority: unref(PRIORITY).QUATERNARY,
|
|
59
|
+
onClick: handlePreviousClick
|
|
60
|
+
}, null, 8, ["disabled", "icon", "priority"]),
|
|
61
|
+
createElementVNode("span", {
|
|
62
|
+
class: normalizeClass([unref(CSS).FONT.ROLE.BUTTON_1, unref(CSS).FONT.COLOR.SURFACE.DEFAULT])
|
|
63
|
+
}, toDisplayString(unref(formatNumber)(currentIndex.value)) + " / " + toDisplayString(unref(formatNumber)(__props.pageCount)), 3),
|
|
64
|
+
createVNode(_sfc_main$1, {
|
|
65
|
+
disabled: currentIndex.value >= __props.pageCount,
|
|
66
|
+
icon: unref(ICON).CHEVRON_RIGHT,
|
|
67
|
+
priority: unref(PRIORITY).QUATERNARY,
|
|
68
|
+
onClick: handleNextClick
|
|
69
|
+
}, null, 8, ["disabled", "icon", "priority"])
|
|
70
|
+
], 2),
|
|
71
|
+
props.pageSize !== void 0 ? (openBlock(), createElementBlock("p", {
|
|
72
|
+
key: 0,
|
|
73
|
+
class: normalizeClass([unref(CSS).FONT.ROLE.BODY_2, unref(CSS).FONT.COLOR.SURFACE.VARIANT])
|
|
74
|
+
}, toDisplayString(resultStart.value) + "–" + toDisplayString(resultEnd.value) + " of " + toDisplayString(unref(formatNumber)(__props.totalResults)) + " results ", 3)) : createCommentVNode("", true)
|
|
75
|
+
], 2);
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
export {
|
|
80
|
+
_sfc_main as default
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=TidePagination.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TidePagination.vue.js","sources":["../../src/components/TidePagination.vue"],"sourcesContent":["<script lang=\"ts\">\n /**\n * Renders a pagination component for navigating through pages of content.\n *\n * @see the [Storybook interface](https://tide-design-system.netlify.app/?path=/docs/components-tidepagination--docs) for TidePagination\n */\n export default {};\n</script>\n\n<script lang=\"ts\" setup>\n import { computed, watchEffect } from 'vue';\n\n import TideButtonIcon from '@/components/TideButtonIcon.vue';\n import { ICON } from '@/types/Icon';\n import { PRIORITY } from '@/types/Priority';\n import { CSS } from '@/types/Styles';\n import { formatNumber } from '@/utilities/format';\n\n type Props = {\n /** Total number of pages available */\n pageCount: number;\n /** Number of items per page. When provided, a results summary is shown below the pagination controls. */\n pageSize?: number;\n /** Total number of results */\n totalResults: number;\n };\n\n const props = defineProps<Props>();\n\n const currentIndex = defineModel<number>({ required: true });\n\n watchEffect(() => {\n if (props.pageCount < 1) return;\n\n const clamped = Math.min(Math.max(currentIndex.value, 1), props.pageCount);\n if (clamped !== currentIndex.value) currentIndex.value = clamped;\n });\n\n const resultStart = computed(() => {\n if (props.pageSize === undefined) return undefined;\n if (props.totalResults === 0) return formatNumber(0);\n return formatNumber((currentIndex.value - 1) * props.pageSize + 1);\n });\n\n const resultEnd = computed(() => {\n if (props.pageSize === undefined) return undefined;\n if (props.totalResults === 0) return formatNumber(0);\n return formatNumber(Math.min(currentIndex.value * props.pageSize, props.totalResults));\n });\n\n const handlePreviousClick = () => {\n if (currentIndex.value > 1) {\n currentIndex.value--;\n }\n };\n\n const handleNextClick = () => {\n if (currentIndex.value < props.pageCount) {\n currentIndex.value++;\n }\n };\n</script>\n\n<template>\n <section :class=\"['tide-pagination', CSS.DISPLAY.FLEX, CSS.FLEX.DIRECTION.COLUMN, CSS.AXIS2.CENTER, CSS.GAP.HALF]\">\n <div :class=\"[CSS.DISPLAY.FLEX, CSS.AXIS1.CENTER, CSS.AXIS2.CENTER, CSS.GAP.HALF]\">\n <TideButtonIcon\n :disabled=\"currentIndex <= 1\"\n :icon=\"ICON.CHEVRON_LEFT\"\n :priority=\"PRIORITY.QUATERNARY\"\n @click=\"handlePreviousClick\"\n />\n\n <span :class=\"[CSS.FONT.ROLE.BUTTON_1, CSS.FONT.COLOR.SURFACE.DEFAULT]\">\n {{ formatNumber(currentIndex) }} / {{ formatNumber(pageCount) }}\n </span>\n\n <TideButtonIcon\n :disabled=\"currentIndex >= pageCount\"\n :icon=\"ICON.CHEVRON_RIGHT\"\n :priority=\"PRIORITY.QUATERNARY\"\n @click=\"handleNextClick\"\n />\n </div>\n\n <p\n :class=\"[CSS.FONT.ROLE.BODY_2, CSS.FONT.COLOR.SURFACE.VARIANT]\"\n v-if=\"props.pageSize !== undefined\"\n >\n {{ resultStart }}–{{ resultEnd }} of {{ formatNumber(totalResults) }} results\n </p>\n </section>\n</template>\n"],"names":["_useModel","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_createVNode","TideButtonIcon","_toDisplayString"],"mappings":";;;;;;AAME,MAAA,cAAe,CAAA;;;;;;;;;;;;;;AAqBf,UAAM,QAAQ;AAEd,UAAM,eAAeA,8BAAsC;AAE3D,gBAAY,MAAM;AAChB,UAAI,MAAM,YAAY,EAAG;AAEzB,YAAM,UAAU,KAAK,IAAI,KAAK,IAAI,aAAa,OAAO,CAAC,GAAG,MAAM,SAAS;AACzE,UAAI,YAAY,aAAa,MAAO,cAAa,QAAQ;AAAA,IAC3D,CAAC;AAED,UAAM,cAAc,SAAS,MAAM;AACjC,UAAI,MAAM,aAAa,OAAW,QAAO;AACzC,UAAI,MAAM,iBAAiB,EAAG,QAAO,aAAa,CAAC;AACnD,aAAO,cAAc,aAAa,QAAQ,KAAK,MAAM,WAAW,CAAC;AAAA,IACnE,CAAC;AAED,UAAM,YAAY,SAAS,MAAM;AAC/B,UAAI,MAAM,aAAa,OAAW,QAAO;AACzC,UAAI,MAAM,iBAAiB,EAAG,QAAO,aAAa,CAAC;AACnD,aAAO,aAAa,KAAK,IAAI,aAAa,QAAQ,MAAM,UAAU,MAAM,YAAY,CAAC;AAAA,IACvF,CAAC;AAED,UAAM,sBAAsB,MAAM;AAChC,UAAI,aAAa,QAAQ,GAAG;AAC1B,qBAAa;AAAA,MACf;AAAA,IACF;AAEA,UAAM,kBAAkB,MAAM;AAC5B,UAAI,aAAa,QAAQ,MAAM,WAAW;AACxC,qBAAa;AAAA,MACf;AAAA,IACF;;0BAIAC,mBA2BU,WAAA;AAAA,QA3BA,OAAKC,eAAA,CAAA,mBAAsBC,MAAA,GAAA,EAAI,QAAQ,MAAMA,MAAA,GAAA,EAAI,KAAK,UAAU,QAAQA,MAAA,GAAA,EAAI,MAAM,QAAQA,MAAA,GAAA,EAAI,IAAI,IAAI,CAAA;AAAA,MAAA;QAC9GC,mBAkBM,OAAA;AAAA,UAlBA,OAAKF,eAAA,CAAGC,WAAI,QAAQ,MAAMA,MAAA,GAAA,EAAI,MAAM,QAAQA,MAAA,GAAA,EAAI,MAAM,QAAQA,MAAA,GAAA,EAAI,IAAI,IAAI,CAAA;AAAA,QAAA;UAC9EE,YAKEC,aAAA;AAAA,YAJC,UAAU,aAAA,SAAY;AAAA,YACtB,MAAMH,MAAA,IAAA,EAAK;AAAA,YACX,UAAUA,MAAA,QAAA,EAAS;AAAA,YACnB,SAAO;AAAA,UAAA;UAGVC,mBAEO,QAAA;AAAA,YAFA,uBAAQD,MAAA,GAAA,EAAI,KAAK,KAAK,UAAUA,MAAA,GAAA,EAAI,KAAK,MAAM,QAAQ,OAAO,CAAA;AAAA,UAAA,GAChEI,gBAAAJ,MAAA,YAAA,EAAa,aAAA,KAAY,CAAA,IAAI,QAAGI,gBAAGJ,MAAA,YAAA,EAAa,QAAA,SAAS,CAAA,GAAA,CAAA;AAAA,UAG9DE,YAKEC,aAAA;AAAA,YAJC,UAAU,aAAA,SAAgB,QAAA;AAAA,YAC1B,MAAMH,MAAA,IAAA,EAAK;AAAA,YACX,UAAUA,MAAA,QAAA,EAAS;AAAA,YACnB,SAAO;AAAA,UAAA;;QAMJ,MAAM,aAAa,uBAF3BF,mBAKI,KAAA;AAAA;UAJD,uBAAQE,MAAA,GAAA,EAAI,KAAK,KAAK,QAAQA,MAAA,GAAA,EAAI,KAAK,MAAM,QAAQ,OAAO,CAAA;AAAA,QAAA,mBAG1D,YAAA,KAAW,IAAG,MAACI,gBAAG,UAAA,KAAS,IAAG,SAAIA,gBAAGJ,MAAA,YAAA,EAAa,QAAA,YAAY,CAAA,IAAI,aACvE,CAAA;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TidePagination.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import _sfc_main from "./TidePopover.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import _export_sfc from "../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const TidePopover = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c4623b8d"]]);
|
|
5
|
+
export {
|
|
6
|
+
TidePopover as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=TidePopover.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TidePopover.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { defineComponent, ref, computed, watch, watchEffect, onBeforeMount, onMounted, onUnmounted, openBlock, createBlock, Teleport, unref, createVNode, Transition, withCtx, withDirectives, createElementVNode, mergeProps, renderSlot, vShow } from "vue";
|
|
2
|
+
import { autoPlacement, offset, shift, useFloating, autoUpdate } from "@floating-ui/vue";
|
|
3
|
+
import { CSS } from "../types/Styles.js";
|
|
4
|
+
import { isClickOutside } from "../utilities/event.js";
|
|
5
|
+
import { initFauxTopLayer, TOP_LAYER_ID } from "../utilities/viewport.js";
|
|
6
|
+
const __default__ = { inheritAttrs: false };
|
|
7
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
8
|
+
...__default__,
|
|
9
|
+
__name: "TidePopover",
|
|
10
|
+
props: {
|
|
11
|
+
anchorId: {},
|
|
12
|
+
offset: { default: 16 }
|
|
13
|
+
},
|
|
14
|
+
setup(__props) {
|
|
15
|
+
const props = __props;
|
|
16
|
+
const anchor = ref(null);
|
|
17
|
+
const floating = ref(null);
|
|
18
|
+
const root = ref(null);
|
|
19
|
+
const isHovered = ref(false);
|
|
20
|
+
const isToggledOpen = ref(false);
|
|
21
|
+
const isTouchDevice = ref(false);
|
|
22
|
+
const middleware = ref([autoPlacement(), offset({ mainAxis: props.offset }), shift({ padding: 16 })]);
|
|
23
|
+
const isShowPopover = computed(() => isHovered.value || isToggledOpen.value);
|
|
24
|
+
const { floatingStyles } = useFloating(anchor, floating, {
|
|
25
|
+
middleware,
|
|
26
|
+
strategy: "fixed",
|
|
27
|
+
whileElementsMounted: autoUpdate
|
|
28
|
+
});
|
|
29
|
+
const handlePermanentOpenBodyClick = (e) => {
|
|
30
|
+
if (!anchor.value || !floating.value) return;
|
|
31
|
+
if (isClickOutside(e, [anchor.value, floating.value])) {
|
|
32
|
+
isToggledOpen.value = false;
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
e.stopImmediatePropagation();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const handleAnchorElementMouseOver = () => {
|
|
38
|
+
if (isTouchDevice.value) return;
|
|
39
|
+
isHovered.value = true;
|
|
40
|
+
};
|
|
41
|
+
const handleAnchorElementMouseLeave = () => {
|
|
42
|
+
if (isTouchDevice.value) return;
|
|
43
|
+
isHovered.value = false;
|
|
44
|
+
};
|
|
45
|
+
const handleAnchorElementTouchStart = () => {
|
|
46
|
+
isTouchDevice.value = true;
|
|
47
|
+
};
|
|
48
|
+
const handleAnchorElementClick = (e) => {
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
if (isToggledOpen.value) {
|
|
51
|
+
isToggledOpen.value = false;
|
|
52
|
+
isHovered.value = false;
|
|
53
|
+
} else {
|
|
54
|
+
isToggledOpen.value = true;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const addListenersToAnchorElement = () => {
|
|
58
|
+
if (!anchor.value) return null;
|
|
59
|
+
anchor.value.addEventListener("touchstart", handleAnchorElementTouchStart, { passive: true });
|
|
60
|
+
anchor.value.addEventListener("mouseover", handleAnchorElementMouseOver);
|
|
61
|
+
anchor.value.addEventListener("mouseleave", handleAnchorElementMouseLeave);
|
|
62
|
+
anchor.value.addEventListener("click", handleAnchorElementClick);
|
|
63
|
+
};
|
|
64
|
+
const removeListenersFromAnchorElement = () => {
|
|
65
|
+
if (!anchor.value) return null;
|
|
66
|
+
anchor.value.removeEventListener("touchstart", handleAnchorElementTouchStart);
|
|
67
|
+
anchor.value.removeEventListener("mouseover", handleAnchorElementMouseOver);
|
|
68
|
+
anchor.value.removeEventListener("mouseleave", handleAnchorElementMouseLeave);
|
|
69
|
+
anchor.value.removeEventListener("click", handleAnchorElementClick);
|
|
70
|
+
};
|
|
71
|
+
const handlePermanentOpenBodyKeydown = (e) => {
|
|
72
|
+
if (e.key === "Escape") {
|
|
73
|
+
isToggledOpen.value = false;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const addOpenListenersToRoot = () => {
|
|
77
|
+
if (!root.value) return;
|
|
78
|
+
root.value.addEventListener("click", handlePermanentOpenBodyClick, true);
|
|
79
|
+
root.value.addEventListener("keydown", handlePermanentOpenBodyKeydown);
|
|
80
|
+
};
|
|
81
|
+
const removeOpenListenersFromRoot = () => {
|
|
82
|
+
if (!root.value) return;
|
|
83
|
+
root.value.removeEventListener("click", handlePermanentOpenBodyClick, true);
|
|
84
|
+
root.value.removeEventListener("keydown", handlePermanentOpenBodyKeydown);
|
|
85
|
+
};
|
|
86
|
+
const updateAnchorElement = () => {
|
|
87
|
+
anchor.value = document.getElementById(props.anchorId);
|
|
88
|
+
};
|
|
89
|
+
watch(
|
|
90
|
+
() => isToggledOpen.value,
|
|
91
|
+
(newValue) => {
|
|
92
|
+
if (newValue) {
|
|
93
|
+
addOpenListenersToRoot();
|
|
94
|
+
} else {
|
|
95
|
+
removeOpenListenersFromRoot();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
watch(
|
|
100
|
+
() => props.anchorId,
|
|
101
|
+
() => {
|
|
102
|
+
removeListenersFromAnchorElement();
|
|
103
|
+
updateAnchorElement();
|
|
104
|
+
addListenersToAnchorElement();
|
|
105
|
+
}
|
|
106
|
+
);
|
|
107
|
+
watchEffect(() => {
|
|
108
|
+
middleware.value = [autoPlacement(), offset({ mainAxis: props.offset }), shift({ padding: 16 })];
|
|
109
|
+
});
|
|
110
|
+
onBeforeMount(() => {
|
|
111
|
+
initFauxTopLayer();
|
|
112
|
+
});
|
|
113
|
+
onMounted(() => {
|
|
114
|
+
updateAnchorElement();
|
|
115
|
+
root.value = document.documentElement;
|
|
116
|
+
addListenersToAnchorElement();
|
|
117
|
+
});
|
|
118
|
+
onUnmounted(() => {
|
|
119
|
+
removeListenersFromAnchorElement();
|
|
120
|
+
});
|
|
121
|
+
return (_ctx, _cache) => {
|
|
122
|
+
return openBlock(), createBlock(Teleport, {
|
|
123
|
+
to: `#${unref(TOP_LAYER_ID)}`
|
|
124
|
+
}, [
|
|
125
|
+
createVNode(Transition, null, {
|
|
126
|
+
default: withCtx(() => [
|
|
127
|
+
withDirectives(createElementVNode("div", mergeProps(_ctx.$attrs, {
|
|
128
|
+
class: [
|
|
129
|
+
"tide-popover",
|
|
130
|
+
unref(CSS).BG.SURFACE.DEFAULT,
|
|
131
|
+
unref(CSS).BORDER.COLOR.LOW,
|
|
132
|
+
unref(CSS).BORDER.FULL.ONE,
|
|
133
|
+
unref(CSS).BORDER.RADIUS.HALF,
|
|
134
|
+
unref(CSS).FONT.ROLE.BODY_2,
|
|
135
|
+
unref(CSS).PADDING.FULL.ONE,
|
|
136
|
+
unref(CSS).SHADOW.BOTTOM
|
|
137
|
+
],
|
|
138
|
+
ref_key: "floating",
|
|
139
|
+
ref: floating,
|
|
140
|
+
style: { ...unref(floatingStyles) }
|
|
141
|
+
}), [
|
|
142
|
+
renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
143
|
+
], 16), [
|
|
144
|
+
[vShow, isShowPopover.value]
|
|
145
|
+
])
|
|
146
|
+
]),
|
|
147
|
+
_: 3
|
|
148
|
+
})
|
|
149
|
+
], 8, ["to"]);
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
export {
|
|
154
|
+
_sfc_main as default
|
|
155
|
+
};
|
|
156
|
+
//# sourceMappingURL=TidePopover.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TidePopover.vue2.js","sources":["../../src/components/TidePopover.vue"],"sourcesContent":["<script lang=\"ts\">\n /**\n * Renders a popover intended to be used for displaying additional information.\n *\n * @see the [Storybook interface](https://tide-design-system.netlify.app/?path=/docs/components-tidepopover--docs) for TidePopover\n */\n export default { inheritAttrs: false };\n</script>\n\n<script lang=\"ts\" setup>\n import { autoPlacement, autoUpdate, offset as offsetMiddleware, shift, useFloating } from '@floating-ui/vue';\n import { computed, onBeforeMount, onMounted, onUnmounted, ref, watch, watchEffect } from 'vue';\n\n import { CSS } from '@/types/Styles';\n import { isClickOutside } from '@/utilities/event';\n import { TOP_LAYER_ID, initFauxTopLayer } from '@/utilities/viewport';\n\n import type { Ref } from 'vue';\n\n type Props = {\n /** Determines the HTML node over which the Popover will appear */\n anchorId: string;\n\n /** Determines spacing between Popover and anchor node */\n offset?: number;\n };\n\n const props = withDefaults(defineProps<Props>(), {\n offset: 16,\n });\n\n const anchor: Ref<HTMLElement | null> = ref(null);\n const floating: Ref<HTMLElement | null> = ref(null);\n const root: Ref<HTMLElement | null> = ref(null);\n const isHovered = ref(false);\n const isToggledOpen = ref(false);\n const isTouchDevice = ref(false);\n const middleware = ref([autoPlacement(), offsetMiddleware({ mainAxis: props.offset }), shift({ padding: 16 })]);\n\n const isShowPopover = computed(() => isHovered.value || isToggledOpen.value);\n\n const { floatingStyles } = useFloating(anchor, floating, {\n middleware,\n strategy: 'fixed',\n whileElementsMounted: autoUpdate,\n });\n\n const handlePermanentOpenBodyClick = (e: MouseEvent) => {\n if (!anchor.value || !floating.value) return;\n if (isClickOutside(e, [anchor.value, floating.value])) {\n isToggledOpen.value = false;\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n };\n\n const handleAnchorElementMouseOver = () => {\n if (isTouchDevice.value) return;\n isHovered.value = true;\n };\n\n const handleAnchorElementMouseLeave = () => {\n if (isTouchDevice.value) return;\n isHovered.value = false;\n };\n\n const handleAnchorElementTouchStart = () => {\n isTouchDevice.value = true;\n };\n\n const handleAnchorElementClick = (e: MouseEvent) => {\n e.preventDefault();\n if (isToggledOpen.value) {\n isToggledOpen.value = false;\n isHovered.value = false;\n } else {\n isToggledOpen.value = true;\n }\n };\n\n const addListenersToAnchorElement = () => {\n if (!anchor.value) return null;\n anchor.value.addEventListener('touchstart', handleAnchorElementTouchStart, { passive: true });\n anchor.value.addEventListener('mouseover', handleAnchorElementMouseOver);\n anchor.value.addEventListener('mouseleave', handleAnchorElementMouseLeave);\n anchor.value.addEventListener('click', handleAnchorElementClick);\n };\n\n const removeListenersFromAnchorElement = () => {\n if (!anchor.value) return null;\n anchor.value.removeEventListener('touchstart', handleAnchorElementTouchStart);\n anchor.value.removeEventListener('mouseover', handleAnchorElementMouseOver);\n anchor.value.removeEventListener('mouseleave', handleAnchorElementMouseLeave);\n anchor.value.removeEventListener('click', handleAnchorElementClick);\n };\n\n const handlePermanentOpenBodyKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n isToggledOpen.value = false;\n }\n };\n\n const addOpenListenersToRoot = () => {\n if (!root.value) return;\n root.value.addEventListener('click', handlePermanentOpenBodyClick, true);\n root.value.addEventListener('keydown', handlePermanentOpenBodyKeydown);\n };\n\n const removeOpenListenersFromRoot = () => {\n if (!root.value) return;\n root.value.removeEventListener('click', handlePermanentOpenBodyClick, true);\n root.value.removeEventListener('keydown', handlePermanentOpenBodyKeydown);\n };\n\n const updateAnchorElement = () => {\n anchor.value = document.getElementById(props.anchorId);\n };\n\n watch(\n () => isToggledOpen.value,\n (newValue) => {\n if (newValue) {\n addOpenListenersToRoot();\n } else {\n removeOpenListenersFromRoot();\n }\n }\n );\n\n watch(\n () => props.anchorId,\n () => {\n removeListenersFromAnchorElement();\n updateAnchorElement();\n addListenersToAnchorElement();\n }\n );\n\n watchEffect(() => {\n middleware.value = [autoPlacement(), offsetMiddleware({ mainAxis: props.offset }), shift({ padding: 16 })];\n });\n\n onBeforeMount(() => {\n initFauxTopLayer();\n });\n\n onMounted(() => {\n updateAnchorElement();\n root.value = document.documentElement;\n addListenersToAnchorElement();\n });\n\n onUnmounted(() => {\n removeListenersFromAnchorElement();\n });\n</script>\n\n<template>\n <Teleport :to=\"`#${TOP_LAYER_ID}`\">\n <Transition>\n <div\n v-bind=\"$attrs\"\n :class=\"[\n 'tide-popover',\n CSS.BG.SURFACE.DEFAULT,\n CSS.BORDER.COLOR.LOW,\n CSS.BORDER.FULL.ONE,\n CSS.BORDER.RADIUS.HALF,\n CSS.FONT.ROLE.BODY_2,\n CSS.PADDING.FULL.ONE,\n CSS.SHADOW.BOTTOM,\n ]\"\n ref=\"floating\"\n :style=\"{ ...floatingStyles }\"\n v-show=\"isShowPopover\"\n >\n <slot />\n </div>\n </Transition>\n </Teleport>\n</template>\n\n<style scoped>\n .tide-popover {\n max-width: 256px;\n }\n .v-enter-from,\n .v-leave-to {\n opacity: 0;\n }\n .v-enter-active,\n .v-leave-active {\n transition: opacity var(--tide-animate);\n }\n .v-enter-to,\n .v-leave-from {\n opacity: 1;\n }\n</style>\n"],"names":["offsetMiddleware","_createBlock","_Teleport","_unref","_createVNode","_Transition","_createElementVNode","_mergeProps","_renderSlot"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import _sfc_main from "./TideRating.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import _export_sfc from "../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const TideRating = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4ae61636"]]);
|
|
5
|
+
export {
|
|
6
|
+
TideRating as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=TideRating.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TideRating.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { defineComponent, useModel, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, toDisplayString, createCommentVNode, Fragment, renderList, mergeModels } from "vue";
|
|
2
|
+
import { CSS } from "../types/Styles.js";
|
|
3
|
+
const _hoisted_1 = ["onClick"];
|
|
4
|
+
const __default__ = {};
|
|
5
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
6
|
+
...__default__,
|
|
7
|
+
__name: "TideRating",
|
|
8
|
+
props: /* @__PURE__ */ mergeModels({
|
|
9
|
+
description: { default: void 0 },
|
|
10
|
+
maxRating: { default: 10 },
|
|
11
|
+
showRating: { type: Boolean, default: false },
|
|
12
|
+
title: { default: void 0 }
|
|
13
|
+
}, {
|
|
14
|
+
"modelValue": { required: true },
|
|
15
|
+
"modelModifiers": {}
|
|
16
|
+
}),
|
|
17
|
+
emits: ["update:modelValue"],
|
|
18
|
+
setup(__props) {
|
|
19
|
+
const props = __props;
|
|
20
|
+
const ratingValue = useModel(__props, "modelValue");
|
|
21
|
+
const segments = computed(() => Array.from({ length: props.maxRating }, (_, index) => index + 1));
|
|
22
|
+
const handleClick = (segment) => {
|
|
23
|
+
ratingValue.value = segment;
|
|
24
|
+
};
|
|
25
|
+
return (_ctx, _cache) => {
|
|
26
|
+
return openBlock(), createElementBlock("div", {
|
|
27
|
+
class: normalizeClass(["tide-rating", unref(CSS).WIDTH.FULL])
|
|
28
|
+
}, [
|
|
29
|
+
createElementVNode("section", {
|
|
30
|
+
class: normalizeClass([unref(CSS).DISPLAY.FLEX, unref(CSS).AXIS2.CENTER, unref(CSS).AXIS1.BETWEEN, unref(CSS).PADDING.BOTTOM.HALF])
|
|
31
|
+
}, [
|
|
32
|
+
createElementVNode("div", {
|
|
33
|
+
class: normalizeClass([unref(CSS).FONT.ROLE.LABEL_2])
|
|
34
|
+
}, toDisplayString(props.title), 3),
|
|
35
|
+
props.showRating ? (openBlock(), createElementBlock("div", {
|
|
36
|
+
key: 0,
|
|
37
|
+
class: normalizeClass([unref(CSS).FONT.ROLE.LABEL_3, unref(CSS).FONT.COLOR.SURFACE.VARIANT])
|
|
38
|
+
}, toDisplayString(ratingValue.value) + "/" + toDisplayString(props.maxRating), 3)) : createCommentVNode("", true)
|
|
39
|
+
], 2),
|
|
40
|
+
props.description ? (openBlock(), createElementBlock("section", {
|
|
41
|
+
key: 0,
|
|
42
|
+
class: normalizeClass([unref(CSS).FONT.ROLE.BODY_2, unref(CSS).PADDING.BOTTOM.ONE, unref(CSS).OVERFLOW.XY.HIDDEN, unref(CSS).ELLIPSIS])
|
|
43
|
+
}, toDisplayString(props.description), 3)) : createCommentVNode("", true),
|
|
44
|
+
createElementVNode("section", {
|
|
45
|
+
class: normalizeClass(["tide-rating-bar", unref(CSS).DISPLAY.FLEX, unref(CSS).GAP.QUARTER, unref(CSS).FLEX.GROW.ON, unref(CSS).FLEX.SHRINK.ON])
|
|
46
|
+
}, [
|
|
47
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(segments.value, (segment) => {
|
|
48
|
+
return openBlock(), createElementBlock("button", {
|
|
49
|
+
class: normalizeClass([
|
|
50
|
+
"tide-rating-segment",
|
|
51
|
+
unref(CSS).BG.SURFACE.VARIANT,
|
|
52
|
+
unref(CSS).POSITION.RELATIVE,
|
|
53
|
+
unref(CSS).OVERFLOW.XY.HIDDEN,
|
|
54
|
+
unref(CSS).FLEX.GROW.ON,
|
|
55
|
+
unref(CSS).FLEX.SHRINK.ON,
|
|
56
|
+
unref(CSS).FLEX.BASIS.ZERO,
|
|
57
|
+
unref(CSS).BORDER.FULL.ZERO,
|
|
58
|
+
segment === 1 && ["tide-rating-segment-first"],
|
|
59
|
+
segment === segments.value.length && ["tide-rating-segment-last"],
|
|
60
|
+
segment <= ratingValue.value && [unref(CSS).BG.SURFACE.GRADIENT]
|
|
61
|
+
]),
|
|
62
|
+
key: segment,
|
|
63
|
+
onClick: ($event) => handleClick(segment),
|
|
64
|
+
type: "button"
|
|
65
|
+
}, null, 10, _hoisted_1);
|
|
66
|
+
}), 128))
|
|
67
|
+
], 2)
|
|
68
|
+
], 2);
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
export {
|
|
73
|
+
_sfc_main as default
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=TideRating.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TideRating.vue2.js","sources":["../../src/components/TideRating.vue"],"sourcesContent":["<script lang=\"ts\">\n /**\n * Renders a rating component intended to be used for displaying and selecting a rating.\n *\n * @see the [Storybook interface](https://tide-design-system.netlify.app/?path=/docs/components-tiderating--docs) for TideRating\n */\n export default {};\n</script>\n\n<script lang=\"ts\" setup>\n import { computed } from 'vue';\n\n import { CSS } from '@/types/Styles';\n\n type Props = {\n /** Determines the text displayed below the title */\n description?: string;\n\n /** Maximum rating value / Number of segments */\n maxRating?: number;\n\n /** Determines whether to display the current rating value */\n showRating?: boolean;\n\n /** Determines the title text displayed above the rating component */\n title?: string;\n };\n\n const props = withDefaults(defineProps<Props>(), {\n description: undefined,\n maxRating: 10,\n showRating: false,\n title: undefined,\n });\n\n const ratingValue = defineModel<number>({ required: true });\n\n const segments = computed(() => Array.from({ length: props.maxRating }, (_, index) => index + 1));\n\n const handleClick = (segment: number) => {\n ratingValue.value = segment;\n };\n</script>\n\n<template>\n <div :class=\"['tide-rating', CSS.WIDTH.FULL]\">\n <section :class=\"[CSS.DISPLAY.FLEX, CSS.AXIS2.CENTER, CSS.AXIS1.BETWEEN, CSS.PADDING.BOTTOM.HALF]\">\n <div :class=\"[CSS.FONT.ROLE.LABEL_2]\">\n {{ props.title }}\n </div>\n <div\n :class=\"[CSS.FONT.ROLE.LABEL_3, CSS.FONT.COLOR.SURFACE.VARIANT]\"\n v-if=\"props.showRating\"\n >\n {{ ratingValue }}/{{ props.maxRating }}\n </div>\n </section>\n <section\n :class=\"[CSS.FONT.ROLE.BODY_2, CSS.PADDING.BOTTOM.ONE, CSS.OVERFLOW.XY.HIDDEN, CSS.ELLIPSIS]\"\n v-if=\"props.description\"\n >\n {{ props.description }}\n </section>\n\n <section :class=\"['tide-rating-bar', CSS.DISPLAY.FLEX, CSS.GAP.QUARTER, CSS.FLEX.GROW.ON, CSS.FLEX.SHRINK.ON]\">\n <button\n :class=\"[\n 'tide-rating-segment',\n CSS.BG.SURFACE.VARIANT,\n CSS.POSITION.RELATIVE,\n CSS.OVERFLOW.XY.HIDDEN,\n CSS.FLEX.GROW.ON,\n CSS.FLEX.SHRINK.ON,\n CSS.FLEX.BASIS.ZERO,\n CSS.BORDER.FULL.ZERO,\n segment === 1 && ['tide-rating-segment-first'],\n segment === segments.length && ['tide-rating-segment-last'],\n segment <= ratingValue && [CSS.BG.SURFACE.GRADIENT],\n ]\"\n :key=\"segment\"\n @click=\"handleClick(segment)\"\n type=\"button\"\n v-for=\"segment in segments\"\n />\n </section>\n </div>\n</template>\n\n<style scoped>\n .tide-rating-bar {\n height: 28px;\n }\n\n .tide-rating-segment {\n clip-path: polygon(12% 0, 100% 0, 88% 100%, 0 100%);\n }\n\n .tide-rating-segment-first {\n border-top-left-radius: 9999px;\n border-bottom-left-radius: 9999px;\n clip-path: polygon(0 0, 100% 0, 88% 100%, 0 100%);\n }\n\n .tide-rating-segment-last {\n border-top-right-radius: 9999px;\n border-bottom-right-radius: 9999px;\n clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%);\n }\n</style>\n"],"names":["_useModel","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_toDisplayString","_Fragment","_renderList"],"mappings":";;;AAME,MAAA,cAAe,CAAA;;;;;;;;;;;;;;;AAsBf,UAAM,QAAQ;AAOd,UAAM,cAAcA,8BAAsC;AAE1D,UAAM,WAAW,SAAS,MAAM,MAAM,KAAK,EAAE,QAAQ,MAAM,UAAA,GAAa,CAAC,GAAG,UAAU,QAAQ,CAAC,CAAC;AAEhG,UAAM,cAAc,CAAC,YAAoB;AACvC,kBAAY,QAAQ;AAAA,IACtB;;0BAIAC,mBAwCM,OAAA;AAAA,QAxCA,OAAKC,eAAA,CAAA,eAAkBC,MAAA,GAAA,EAAI,MAAM,IAAI,CAAA;AAAA,MAAA;QACzCC,mBAUU,WAAA;AAAA,UAVA,OAAKF,eAAA,CAAGC,MAAA,GAAA,EAAI,QAAQ,MAAMA,MAAA,GAAA,EAAI,MAAM,QAAQA,MAAA,GAAA,EAAI,MAAM,SAASA,MAAA,GAAA,EAAI,QAAQ,OAAO,IAAI,CAAA;AAAA,QAAA;UAC9FC,mBAEM,OAAA;AAAA,YAFA,uBAAQD,MAAA,GAAA,EAAI,KAAK,KAAK,OAAO,CAAA;AAAA,UAAA,GAC9BE,gBAAA,MAAM,KAAK,GAAA,CAAA;AAAA,UAIR,MAAM,2BAFdJ,mBAKM,OAAA;AAAA;YAJH,uBAAQE,MAAA,GAAA,EAAI,KAAK,KAAK,SAASA,MAAA,GAAA,EAAI,KAAK,MAAM,QAAQ,OAAO,CAAA;AAAA,UAAA,GAG3DE,gBAAA,YAAA,KAAW,IAAG,MAACA,gBAAG,MAAM,SAAS,GAAA,CAAA;;QAKhC,MAAM,4BAFdJ,mBAKU,WAAA;AAAA;UAJP,OAAKC,eAAA,CAAGC,MAAA,GAAA,EAAI,KAAK,KAAK,QAAQA,MAAA,GAAA,EAAI,QAAQ,OAAO,KAAKA,MAAA,GAAA,EAAI,SAAS,GAAG,QAAQA,MAAA,GAAA,EAAI,QAAQ,CAAA;AAAA,QAAA,GAGxFE,gBAAA,MAAM,WAAW,GAAA,CAAA;QAGtBD,mBAoBU,WAAA;AAAA,UApBA,OAAKF,eAAA,CAAA,mBAAsBC,MAAA,GAAA,EAAI,QAAQ,MAAMA,MAAA,GAAA,EAAI,IAAI,SAASA,MAAA,GAAA,EAAI,KAAK,KAAK,IAAIA,MAAA,GAAA,EAAI,KAAK,OAAO,EAAE,CAAA;AAAA,QAAA;4BAC1GF,mBAkBEK,UAAA,MAAAC,WADkB,SAAA,OAAQ,CAAnB,YAAO;gCAjBhBN,mBAkBE,UAAA;AAAA,cAjBC,OAAKC,eAAA;AAAA;gBAA+CC,MAAA,GAAA,EAAI,GAAG,QAAQ;AAAA,gBAAmBA,MAAA,GAAA,EAAI,SAAS;AAAA,gBAAoBA,MAAA,GAAA,EAAI,SAAS,GAAG;AAAA,gBAAkBA,MAAA,GAAA,EAAI,KAAK,KAAK;AAAA,gBAAcA,MAAA,GAAA,EAAI,KAAK,OAAO;AAAA,gBAAcA,MAAA,GAAA,EAAI,KAAK,MAAM;AAAA,gBAAgBA,MAAA,GAAA,EAAI,OAAO,KAAK;AAAA,gBAAgB,YAAO,KAAA,CAAA,2BAAA;AAAA,gBAAmD,YAAY,SAAA,MAAS,UAAM,CAAA,0BAAA;AAAA,gBAA4C,WAAW,qBAAW,CAAKA,MAAA,GAAA,EAAI,GAAG,QAAQ,QAAQ;AAAA,cAAA;cAarc,KAAK;AAAA,cACL,SAAK,CAAA,WAAE,YAAY,OAAO;AAAA,cAC3B,MAAK;AAAA,YAAA;;;;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import _sfc_main from "./TideRealmLogo.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import _export_sfc from "../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const TideRealmLogo = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-dec575c7"]]);
|
|
5
|
+
export {
|
|
6
|
+
TideRealmLogo as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=TideRealmLogo.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TideRealmLogo.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|