@evolve.ui/core-components 1.0.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/Accordion--J93KLdp.d.cts +38 -0
- package/Accordion--J93KLdp.d.cts.map +1 -0
- package/Accordion-CdgdzUNC.d.mts +38 -0
- package/Accordion-CdgdzUNC.d.mts.map +1 -0
- package/AddressDisplay-C6av_Ava.d.cts +40 -0
- package/AddressDisplay-C6av_Ava.d.cts.map +1 -0
- package/AddressDisplay-C6av_Ava.d.mts +40 -0
- package/AddressDisplay-C6av_Ava.d.mts.map +1 -0
- package/AddressDisplay-CI1h4Pyv.cjs +1504 -0
- package/AddressDisplay-CI1h4Pyv.cjs.map +1 -0
- package/AddressDisplay-D5p9wJT6.mjs +1499 -0
- package/AddressDisplay-D5p9wJT6.mjs.map +1 -0
- package/AutomatedCarousel-BbH74siI.d.mts +48 -0
- package/AutomatedCarousel-BbH74siI.d.mts.map +1 -0
- package/AutomatedCarousel-CmVyxeSl.mjs +274 -0
- package/AutomatedCarousel-CmVyxeSl.mjs.map +1 -0
- package/AutomatedCarousel-Dhr1za_D.d.cts +48 -0
- package/AutomatedCarousel-Dhr1za_D.d.cts.map +1 -0
- package/AutomatedCarousel-ylYqkHPX.cjs +281 -0
- package/AutomatedCarousel-ylYqkHPX.cjs.map +1 -0
- package/Badge/ItemBadge.cjs +75 -0
- package/Badge/ItemBadge.cjs.map +1 -0
- package/Badge/ItemBadge.d.cts +2 -0
- package/Badge/ItemBadge.d.mts +2 -0
- package/Badge/ItemBadge.mjs +71 -0
- package/Badge/ItemBadge.mjs.map +1 -0
- package/Badge/LiveStatusBadge.cjs +78 -0
- package/Badge/LiveStatusBadge.cjs.map +1 -0
- package/Badge/LiveStatusBadge.d.cts +2 -0
- package/Badge/LiveStatusBadge.d.mts +2 -0
- package/Badge/LiveStatusBadge.mjs +74 -0
- package/Badge/LiveStatusBadge.mjs.map +1 -0
- package/Badge-C1BBu1fH.d.mts +71 -0
- package/Badge-C1BBu1fH.d.mts.map +1 -0
- package/Badge-lOH4Ssq_.d.cts +71 -0
- package/Badge-lOH4Ssq_.d.cts.map +1 -0
- package/Badge.cjs +72 -0
- package/Badge.cjs.map +1 -0
- package/Badge.d.cts +2 -0
- package/Badge.d.mts +2 -0
- package/Badge.mjs +68 -0
- package/Badge.mjs.map +1 -0
- package/BannerNotification-D9Sfa2si.cjs +156 -0
- package/BannerNotification-D9Sfa2si.cjs.map +1 -0
- package/BannerNotification-DM78PllX.d.cts +59 -0
- package/BannerNotification-DM78PllX.d.cts.map +1 -0
- package/BannerNotification-DM78PllX.d.mts +59 -0
- package/BannerNotification-DM78PllX.d.mts.map +1 -0
- package/BannerNotification-DzprO7bZ.mjs +151 -0
- package/BannerNotification-DzprO7bZ.mjs.map +1 -0
- package/BottomSheet-ZV_eq3xt.mjs +1708 -0
- package/BottomSheet-ZV_eq3xt.mjs.map +1 -0
- package/BottomSheet-emWP9Fct.cjs +1715 -0
- package/BottomSheet-emWP9Fct.cjs.map +1 -0
- package/Breadcrumbs-7jTSZ7NM.cjs +98 -0
- package/Breadcrumbs-7jTSZ7NM.cjs.map +1 -0
- package/Breadcrumbs-CopNM2AH.d.cts +30 -0
- package/Breadcrumbs-CopNM2AH.d.cts.map +1 -0
- package/Breadcrumbs-CopNM2AH.d.mts +30 -0
- package/Breadcrumbs-CopNM2AH.d.mts.map +1 -0
- package/Breadcrumbs-blgWG9cP.mjs +93 -0
- package/Breadcrumbs-blgWG9cP.mjs.map +1 -0
- package/Button-B9vfIXTi.d.cts +12 -0
- package/Button-B9vfIXTi.d.cts.map +1 -0
- package/Button-Bitf-VVv.d.mts +12 -0
- package/Button-Bitf-VVv.d.mts.map +1 -0
- package/Button.cjs +102 -0
- package/Button.cjs.map +1 -0
- package/Button.d.cts +2 -0
- package/Button.d.mts +2 -0
- package/Button.mjs +98 -0
- package/Button.mjs.map +1 -0
- package/Button.types-CjidejRG.d.cts +79 -0
- package/Button.types-CjidejRG.d.cts.map +1 -0
- package/Button.types-CyzsUcMe.d.mts +79 -0
- package/Button.types-CyzsUcMe.d.mts.map +1 -0
- package/Callout-BDrz5jjK.d.mts +45 -0
- package/Callout-BDrz5jjK.d.mts.map +1 -0
- package/Callout-BiFCfawA.d.cts +45 -0
- package/Callout-BiFCfawA.d.cts.map +1 -0
- package/Callout-DrWwRGi4.cjs +132 -0
- package/Callout-DrWwRGi4.cjs.map +1 -0
- package/Callout-Olv0CM82.mjs +127 -0
- package/Callout-Olv0CM82.mjs.map +1 -0
- package/Callout.cjs +8 -0
- package/Callout.d.cts +2 -0
- package/Callout.d.mts +2 -0
- package/Callout.mjs +4 -0
- package/CardGrid-BhfrwrN0.d.cts +72 -0
- package/CardGrid-BhfrwrN0.d.cts.map +1 -0
- package/CardGrid-BpX_oOS4.mjs +175 -0
- package/CardGrid-BpX_oOS4.mjs.map +1 -0
- package/CardGrid-CHZSF83h.d.mts +72 -0
- package/CardGrid-CHZSF83h.d.mts.map +1 -0
- package/CardGrid-CXi9XvDo.cjs +180 -0
- package/CardGrid-CXi9XvDo.cjs.map +1 -0
- package/Carousel-8CbTiwMk.mjs +462 -0
- package/Carousel-8CbTiwMk.mjs.map +1 -0
- package/Carousel-Du89BCCK.cjs +487 -0
- package/Carousel-Du89BCCK.cjs.map +1 -0
- package/CheckCircle-BcTMEm4l.mjs +42 -0
- package/CheckCircle-BcTMEm4l.mjs.map +1 -0
- package/CheckCircle-BjBbSga6.cjs +49 -0
- package/CheckCircle-BjBbSga6.cjs.map +1 -0
- package/Checkbox.cjs +13 -0
- package/Checkbox.d.cts +2 -0
- package/Checkbox.d.mts +2 -0
- package/Checkbox.mjs +3 -0
- package/Chip-UMJoX3ST.d.cts +38 -0
- package/Chip-UMJoX3ST.d.cts.map +1 -0
- package/Chip-giQtR8GC.d.mts +38 -0
- package/Chip-giQtR8GC.d.mts.map +1 -0
- package/ChipGroup-DIyCVKZm.d.cts +24 -0
- package/ChipGroup-DIyCVKZm.d.cts.map +1 -0
- package/ChipGroup-VGpv5cHt.d.mts +24 -0
- package/ChipGroup-VGpv5cHt.d.mts.map +1 -0
- package/ChoiceListItem-BqZ3bIj9.mjs +168 -0
- package/ChoiceListItem-BqZ3bIj9.mjs.map +1 -0
- package/ChoiceListItem-D_74Zcpd.cjs +209 -0
- package/ChoiceListItem-D_74Zcpd.cjs.map +1 -0
- package/Collapsible-Bbs4SWEA.d.cts +18 -0
- package/Collapsible-Bbs4SWEA.d.cts.map +1 -0
- package/Collapsible-Bbs4SWEA.d.mts +18 -0
- package/Collapsible-Bbs4SWEA.d.mts.map +1 -0
- package/Confetti--vMcCOQ7.cjs +166 -0
- package/Confetti--vMcCOQ7.cjs.map +1 -0
- package/Confetti-Csdjmzfv.mjs +161 -0
- package/Confetti-Csdjmzfv.mjs.map +1 -0
- package/ContentPager-AM9sSsgG.d.cts +37 -0
- package/ContentPager-AM9sSsgG.d.cts.map +1 -0
- package/ContentPager-B9UIPahb.mjs +138 -0
- package/ContentPager-B9UIPahb.mjs.map +1 -0
- package/ContentPager-BJo1L64Y.cjs +158 -0
- package/ContentPager-BJo1L64Y.cjs.map +1 -0
- package/ContentPager-DuxgJP42.d.mts +37 -0
- package/ContentPager-DuxgJP42.d.mts.map +1 -0
- package/CookieConsent-CIwm0bTz.mjs +401 -0
- package/CookieConsent-CIwm0bTz.mjs.map +1 -0
- package/CookieConsent-PIglB_bb.cjs +430 -0
- package/CookieConsent-PIglB_bb.cjs.map +1 -0
- package/Countdown-BaqV0LJL.d.mts +45 -0
- package/Countdown-BaqV0LJL.d.mts.map +1 -0
- package/Countdown-D4-QPv6V.cjs +181 -0
- package/Countdown-D4-QPv6V.cjs.map +1 -0
- package/Countdown-Dw5j-JJ4.d.cts +45 -0
- package/Countdown-Dw5j-JJ4.d.cts.map +1 -0
- package/Countdown-Hiu5EYUI.mjs +174 -0
- package/Countdown-Hiu5EYUI.mjs.map +1 -0
- package/Countdown.types-B7yecprx.d.cts +8 -0
- package/Countdown.types-B7yecprx.d.cts.map +1 -0
- package/Countdown.types-B7yecprx.d.mts +8 -0
- package/Countdown.types-B7yecprx.d.mts.map +1 -0
- package/CreditCardIcon-DirCX2rx.d.cts +29 -0
- package/CreditCardIcon-DirCX2rx.d.cts.map +1 -0
- package/CreditCardIcon-DirCX2rx.d.mts +29 -0
- package/CreditCardIcon-DirCX2rx.d.mts.map +1 -0
- package/CreditCardIcon-OqdAEE3e.cjs +281 -0
- package/CreditCardIcon-OqdAEE3e.cjs.map +1 -0
- package/CreditCardIcon-rpcjx4S_.mjs +270 -0
- package/CreditCardIcon-rpcjx4S_.mjs.map +1 -0
- package/DateInput-B8XQZPTx.d.cts +34 -0
- package/DateInput-B8XQZPTx.d.cts.map +1 -0
- package/DateInput-CfNmywqQ.d.mts +34 -0
- package/DateInput-CfNmywqQ.d.mts.map +1 -0
- package/DatePickerTarget-BcX_noF3.d.cts +14 -0
- package/DatePickerTarget-BcX_noF3.d.cts.map +1 -0
- package/DatePickerTarget-BcX_noF3.d.mts +14 -0
- package/DatePickerTarget-BcX_noF3.d.mts.map +1 -0
- package/DatePickerTarget-CKni-6Rq.mjs +14 -0
- package/DatePickerTarget-CKni-6Rq.mjs.map +1 -0
- package/DatePickerTarget-D_gR7380.cjs +25 -0
- package/DatePickerTarget-D_gR7380.cjs.map +1 -0
- package/Drawer-9HFG45OA.cjs +259 -0
- package/Drawer-9HFG45OA.cjs.map +1 -0
- package/Drawer-BkCPfK6P.mjs +254 -0
- package/Drawer-BkCPfK6P.mjs.map +1 -0
- package/Drawer-CFZbwg0R.d.cts +231 -0
- package/Drawer-CFZbwg0R.d.cts.map +1 -0
- package/Drawer-CFZbwg0R.d.mts +231 -0
- package/Drawer-CFZbwg0R.d.mts.map +1 -0
- package/EducationalPopover-CLNgGomH.d.cts +48 -0
- package/EducationalPopover-CLNgGomH.d.cts.map +1 -0
- package/EducationalPopover-DP63Yqlm.d.mts +48 -0
- package/EducationalPopover-DP63Yqlm.d.mts.map +1 -0
- package/FavoriteButton-BRY8FVpV.d.mts +142 -0
- package/FavoriteButton-BRY8FVpV.d.mts.map +1 -0
- package/FavoriteButton-CC3qL0lR.mjs +199 -0
- package/FavoriteButton-CC3qL0lR.mjs.map +1 -0
- package/FavoriteButton-CowOPoqo.d.cts +142 -0
- package/FavoriteButton-CowOPoqo.d.cts.map +1 -0
- package/FavoriteButton-DliYzkfu.cjs +204 -0
- package/FavoriteButton-DliYzkfu.cjs.map +1 -0
- package/FeatureFlagDevToolsUI-B13AuQ2A.mjs +276 -0
- package/FeatureFlagDevToolsUI-B13AuQ2A.mjs.map +1 -0
- package/FeatureFlagDevToolsUI-CutvngLI.d.cts +39 -0
- package/FeatureFlagDevToolsUI-CutvngLI.d.cts.map +1 -0
- package/FeatureFlagDevToolsUI-CutvngLI.d.mts +39 -0
- package/FeatureFlagDevToolsUI-CutvngLI.d.mts.map +1 -0
- package/FeatureFlagDevToolsUI-MBFES3GM.cjs +281 -0
- package/FeatureFlagDevToolsUI-MBFES3GM.cjs.map +1 -0
- package/FileUpload--e_UJ_ek.cjs +1771 -0
- package/FileUpload--e_UJ_ek.cjs.map +1 -0
- package/FileUpload-p_pl9NXr.mjs +1706 -0
- package/FileUpload-p_pl9NXr.mjs.map +1 -0
- package/FormLabel-D4602qfd.d.cts +140 -0
- package/FormLabel-D4602qfd.d.cts.map +1 -0
- package/FormLabel-D4602qfd.d.mts +140 -0
- package/FormLabel-D4602qfd.d.mts.map +1 -0
- package/IconBase-C_Lx9rDx.d.cts +89 -0
- package/IconBase-C_Lx9rDx.d.cts.map +1 -0
- package/IconBase-C_Lx9rDx.d.mts +89 -0
- package/IconBase-C_Lx9rDx.d.mts.map +1 -0
- package/IconButton-DHTn5DQ_.d.mts +40 -0
- package/IconButton-DHTn5DQ_.d.mts.map +1 -0
- package/IconButton-Df9usxq_.d.cts +40 -0
- package/IconButton-Df9usxq_.d.cts.map +1 -0
- package/IconButton.cjs +68 -0
- package/IconButton.cjs.map +1 -0
- package/IconButton.d.cts +2 -0
- package/IconButton.d.mts +2 -0
- package/IconButton.mjs +64 -0
- package/IconButton.mjs.map +1 -0
- package/Icons/CreditCardIcon.cjs +7 -0
- package/Icons/CreditCardIcon.d.cts +2 -0
- package/Icons/CreditCardIcon.d.mts +2 -0
- package/Icons/CreditCardIcon.mjs +2 -0
- package/Icons/IconBase.cjs +60 -0
- package/Icons/IconBase.cjs.map +1 -0
- package/Icons/IconBase.d.cts +2 -0
- package/Icons/IconBase.d.mts +2 -0
- package/Icons/IconBase.mjs +54 -0
- package/Icons/IconBase.mjs.map +1 -0
- package/Icons/anyIcon.cjs +0 -0
- package/Icons/anyIcon.d.cts +2 -0
- package/Icons/anyIcon.d.mts +2 -0
- package/Icons/anyIcon.mjs +1 -0
- package/Icons/socialIcons/appleSocialIcon.cjs +48 -0
- package/Icons/socialIcons/appleSocialIcon.cjs.map +1 -0
- package/Icons/socialIcons/appleSocialIcon.d.cts +19 -0
- package/Icons/socialIcons/appleSocialIcon.d.cts.map +1 -0
- package/Icons/socialIcons/appleSocialIcon.d.mts +19 -0
- package/Icons/socialIcons/appleSocialIcon.d.mts.map +1 -0
- package/Icons/socialIcons/appleSocialIcon.mjs +42 -0
- package/Icons/socialIcons/appleSocialIcon.mjs.map +1 -0
- package/Icons/socialIcons/facebookSocialIcon.cjs +41 -0
- package/Icons/socialIcons/facebookSocialIcon.cjs.map +1 -0
- package/Icons/socialIcons/facebookSocialIcon.d.cts +14 -0
- package/Icons/socialIcons/facebookSocialIcon.d.cts.map +1 -0
- package/Icons/socialIcons/facebookSocialIcon.d.mts +14 -0
- package/Icons/socialIcons/facebookSocialIcon.d.mts.map +1 -0
- package/Icons/socialIcons/facebookSocialIcon.mjs +36 -0
- package/Icons/socialIcons/facebookSocialIcon.mjs.map +1 -0
- package/Icons/socialIcons/googleSocialIcon.cjs +135 -0
- package/Icons/socialIcons/googleSocialIcon.cjs.map +1 -0
- package/Icons/socialIcons/googleSocialIcon.d.cts +19 -0
- package/Icons/socialIcons/googleSocialIcon.d.cts.map +1 -0
- package/Icons/socialIcons/googleSocialIcon.d.mts +19 -0
- package/Icons/socialIcons/googleSocialIcon.d.mts.map +1 -0
- package/Icons/socialIcons/googleSocialIcon.mjs +129 -0
- package/Icons/socialIcons/googleSocialIcon.mjs.map +1 -0
- package/Icons.cjs +5489 -0
- package/Icons.cjs.map +1 -0
- package/Icons.d.cts +2 -0
- package/Icons.d.mts +2 -0
- package/Icons.mjs +5335 -0
- package/Icons.mjs.map +1 -0
- package/ImageCluster-BXaQi8SB.d.cts +24 -0
- package/ImageCluster-BXaQi8SB.d.cts.map +1 -0
- package/ImageCluster-BXaQi8SB.d.mts +24 -0
- package/ImageCluster-BXaQi8SB.d.mts.map +1 -0
- package/ImageSlider-BidXfnLj.cjs +861 -0
- package/ImageSlider-BidXfnLj.cjs.map +1 -0
- package/ImageSlider-CDrg_TbL.mjs +838 -0
- package/ImageSlider-CDrg_TbL.mjs.map +1 -0
- package/InfoIconTooltip-CZax9TVq.d.cts +27 -0
- package/InfoIconTooltip-CZax9TVq.d.cts.map +1 -0
- package/InfoIconTooltip-Ca4AHkY2.d.mts +27 -0
- package/InfoIconTooltip-Ca4AHkY2.d.mts.map +1 -0
- package/InfoIconTooltip.cjs +29 -0
- package/InfoIconTooltip.cjs.map +1 -0
- package/InfoIconTooltip.d.cts +2 -0
- package/InfoIconTooltip.d.mts +2 -0
- package/InfoIconTooltip.mjs +25 -0
- package/InfoIconTooltip.mjs.map +1 -0
- package/InlineButton-CRLbNJZ3.d.mts +68 -0
- package/InlineButton-CRLbNJZ3.d.mts.map +1 -0
- package/InlineButton-DoXGLiSE.d.cts +68 -0
- package/InlineButton-DoXGLiSE.d.cts.map +1 -0
- package/InlineNotification--hYpy2m2.d.cts +18 -0
- package/InlineNotification--hYpy2m2.d.cts.map +1 -0
- package/InlineNotification--hYpy2m2.d.mts +18 -0
- package/InlineNotification--hYpy2m2.d.mts.map +1 -0
- package/Input.cjs +104 -0
- package/Input.cjs.map +1 -0
- package/Input.d.cts +2 -0
- package/Input.d.mts +2 -0
- package/Input.mjs +100 -0
- package/Input.mjs.map +1 -0
- package/ItemBadge-D1S8YsIy.d.cts +46 -0
- package/ItemBadge-D1S8YsIy.d.cts.map +1 -0
- package/ItemBadge-D1S8YsIy.d.mts +46 -0
- package/ItemBadge-D1S8YsIy.d.mts.map +1 -0
- package/JumpMenu-BXYZnPIH.cjs +499 -0
- package/JumpMenu-BXYZnPIH.cjs.map +1 -0
- package/JumpMenu-DcZjAiej.mjs +494 -0
- package/JumpMenu-DcZjAiej.mjs.map +1 -0
- package/Links-Ch0YdIz6.d.cts +214 -0
- package/Links-Ch0YdIz6.d.cts.map +1 -0
- package/Links-Ch0YdIz6.d.mts +214 -0
- package/Links-Ch0YdIz6.d.mts.map +1 -0
- package/LiveStatusBadge-D1TX11B6.d.cts +53 -0
- package/LiveStatusBadge-D1TX11B6.d.cts.map +1 -0
- package/LiveStatusBadge-D1TX11B6.d.mts +53 -0
- package/LiveStatusBadge-D1TX11B6.d.mts.map +1 -0
- package/Loading-B9LLlAyM.d.cts +19 -0
- package/Loading-B9LLlAyM.d.cts.map +1 -0
- package/Loading-B9LLlAyM.d.mts +19 -0
- package/Loading-B9LLlAyM.d.mts.map +1 -0
- package/Loading-BL7_u25j.cjs +47 -0
- package/Loading-BL7_u25j.cjs.map +1 -0
- package/Loading-BenQpF_w.mjs +42 -0
- package/Loading-BenQpF_w.mjs.map +1 -0
- package/LoadingSpinner-BWwhuAGb.d.mts +16 -0
- package/LoadingSpinner-BWwhuAGb.d.mts.map +1 -0
- package/LoadingSpinner-DjC4uC_2.d.cts +16 -0
- package/LoadingSpinner-DjC4uC_2.d.cts.map +1 -0
- package/LoadingSpinner.cjs +25 -0
- package/LoadingSpinner.cjs.map +1 -0
- package/LoadingSpinner.d.cts +2 -0
- package/LoadingSpinner.d.mts +2 -0
- package/LoadingSpinner.mjs +21 -0
- package/LoadingSpinner.mjs.map +1 -0
- package/Menu-ClUogmwE.cjs +385 -0
- package/Menu-ClUogmwE.cjs.map +1 -0
- package/Menu-Cxu8CaX1.mjs +368 -0
- package/Menu-Cxu8CaX1.mjs.map +1 -0
- package/Modal-C6gatdtT.mjs +301 -0
- package/Modal-C6gatdtT.mjs.map +1 -0
- package/Modal-CiBqXyiK.cjs +306 -0
- package/Modal-CiBqXyiK.cjs.map +1 -0
- package/Modal-DM0aXJZ5.d.cts +265 -0
- package/Modal-DM0aXJZ5.d.cts.map +1 -0
- package/Modal-DM0aXJZ5.d.mts +265 -0
- package/Modal-DM0aXJZ5.d.mts.map +1 -0
- package/ModalTarget-CD0Nmzfb.d.cts +14 -0
- package/ModalTarget-CD0Nmzfb.d.cts.map +1 -0
- package/ModalTarget-CD0Nmzfb.d.mts +14 -0
- package/ModalTarget-CD0Nmzfb.d.mts.map +1 -0
- package/NotificationBadge-B442UBjI.d.cts +22 -0
- package/NotificationBadge-B442UBjI.d.cts.map +1 -0
- package/NotificationBadge-B442UBjI.d.mts +22 -0
- package/NotificationBadge-B442UBjI.d.mts.map +1 -0
- package/Pagination-DIpGKMLz.mjs +386 -0
- package/Pagination-DIpGKMLz.mjs.map +1 -0
- package/Pagination-bAtbN478.cjs +409 -0
- package/Pagination-bAtbN478.cjs.map +1 -0
- package/PhoneInput-B5pkpkdt.mjs +398 -0
- package/PhoneInput-B5pkpkdt.mjs.map +1 -0
- package/PhoneInput-BXnkBME4.d.mts +70 -0
- package/PhoneInput-BXnkBME4.d.mts.map +1 -0
- package/PhoneInput-Bkrbrins.d.cts +70 -0
- package/PhoneInput-Bkrbrins.d.cts.map +1 -0
- package/PhoneInput-CUMPOSxJ.cjs +408 -0
- package/PhoneInput-CUMPOSxJ.cjs.map +1 -0
- package/ProgressCircle-B2dfVdH-.d.cts +50 -0
- package/ProgressCircle-B2dfVdH-.d.cts.map +1 -0
- package/ProgressCircle-BC81D9sU.cjs +196 -0
- package/ProgressCircle-BC81D9sU.cjs.map +1 -0
- package/ProgressCircle-CxrflaLd.d.mts +50 -0
- package/ProgressCircle-CxrflaLd.d.mts.map +1 -0
- package/ProgressCircle-ae8cvZhe.mjs +191 -0
- package/ProgressCircle-ae8cvZhe.mjs.map +1 -0
- package/ProgressSteps-C3xJUDTs.d.mts +32 -0
- package/ProgressSteps-C3xJUDTs.d.mts.map +1 -0
- package/ProgressSteps-Ls0XahjM.d.cts +32 -0
- package/ProgressSteps-Ls0XahjM.d.cts.map +1 -0
- package/Radio.cjs +13 -0
- package/Radio.d.cts +2 -0
- package/Radio.d.mts +2 -0
- package/Radio.mjs +3 -0
- package/SaveConfetti-DI0MTd63.mjs +179 -0
- package/SaveConfetti-DI0MTd63.mjs.map +1 -0
- package/SaveConfetti-DSJtuE3b.cjs +184 -0
- package/SaveConfetti-DSJtuE3b.cjs.map +1 -0
- package/SearchInput-DYIPC8Cd.d.cts +126 -0
- package/SearchInput-DYIPC8Cd.d.cts.map +1 -0
- package/SearchInput-IfEWePDQ.d.mts +126 -0
- package/SearchInput-IfEWePDQ.d.mts.map +1 -0
- package/SegmentedControl-B5FZ0uX8.cjs +107 -0
- package/SegmentedControl-B5FZ0uX8.cjs.map +1 -0
- package/SegmentedControl-DHf4SQQL.mjs +96 -0
- package/SegmentedControl-DHf4SQQL.mjs.map +1 -0
- package/Select-BXDjzyDs.cjs +248 -0
- package/Select-BXDjzyDs.cjs.map +1 -0
- package/Select-BkZu8OLs.mjs +241 -0
- package/Select-BkZu8OLs.mjs.map +1 -0
- package/Select-g4yFQq1-.d.mts +36 -0
- package/Select-g4yFQq1-.d.mts.map +1 -0
- package/Select-ghtIe-gD.d.cts +36 -0
- package/Select-ghtIe-gD.d.cts.map +1 -0
- package/SelectAsync-267GxTnI.d.cts +11 -0
- package/SelectAsync-267GxTnI.d.cts.map +1 -0
- package/SelectAsync-CLcESc8k.d.mts +11 -0
- package/SelectAsync-CLcESc8k.d.mts.map +1 -0
- package/SelectAsyncCreatable-B2gB_MWk.d.mts +11 -0
- package/SelectAsyncCreatable-B2gB_MWk.d.mts.map +1 -0
- package/SelectAsyncCreatable-BhuvLhbk.d.cts +11 -0
- package/SelectAsyncCreatable-BhuvLhbk.d.cts.map +1 -0
- package/SelectCreatable-C87i1L43.d.cts +11 -0
- package/SelectCreatable-C87i1L43.d.cts.map +1 -0
- package/SelectCreatable-CNVa1sx-.d.mts +11 -0
- package/SelectCreatable-CNVa1sx-.d.mts.map +1 -0
- package/SingleCard-DPaHU2wR.d.mts +19 -0
- package/SingleCard-DPaHU2wR.d.mts.map +1 -0
- package/SingleCard-X1dP0AHZ.d.cts +19 -0
- package/SingleCard-X1dP0AHZ.d.cts.map +1 -0
- package/Skeleton-40Vi20JV.d.cts +15 -0
- package/Skeleton-40Vi20JV.d.cts.map +1 -0
- package/Skeleton-40Vi20JV.d.mts +15 -0
- package/Skeleton-40Vi20JV.d.mts.map +1 -0
- package/SplitButton-DK-LdIwN.d.cts +80 -0
- package/SplitButton-DK-LdIwN.d.cts.map +1 -0
- package/SplitButton-DK-LdIwN.d.mts +80 -0
- package/SplitButton-DK-LdIwN.d.mts.map +1 -0
- package/SplitButton-DcmmLW8j.cjs +184 -0
- package/SplitButton-DcmmLW8j.cjs.map +1 -0
- package/SplitButton-WE5ymwCQ.mjs +179 -0
- package/SplitButton-WE5ymwCQ.mjs.map +1 -0
- package/StarRating-CRGx_jeU.mjs +81 -0
- package/StarRating-CRGx_jeU.mjs.map +1 -0
- package/StarRating-Dski54FS.cjs +86 -0
- package/StarRating-Dski54FS.cjs.map +1 -0
- package/StarRating-Dx1nbkcG.d.mts +89 -0
- package/StarRating-Dx1nbkcG.d.mts.map +1 -0
- package/StarRating-TfkOMATk.d.cts +89 -0
- package/StarRating-TfkOMATk.d.cts.map +1 -0
- package/SuggestionChip-BLq_0VFE.d.cts +13 -0
- package/SuggestionChip-BLq_0VFE.d.cts.map +1 -0
- package/SuggestionChip-CilkTYTJ.d.mts +13 -0
- package/SuggestionChip-CilkTYTJ.d.mts.map +1 -0
- package/Table-CLlDragJ.cjs +500 -0
- package/Table-CLlDragJ.cjs.map +1 -0
- package/Table-M-rANdMt.mjs +495 -0
- package/Table-M-rANdMt.mjs.map +1 -0
- package/Tabs-DRT-IQZk.d.cts +41 -0
- package/Tabs-DRT-IQZk.d.cts.map +1 -0
- package/Tabs-DRT-IQZk.d.mts +41 -0
- package/Tabs-DRT-IQZk.d.mts.map +1 -0
- package/Text-BVoakc0X.d.cts +63 -0
- package/Text-BVoakc0X.d.cts.map +1 -0
- package/Text-OlyNC1yj.d.mts +63 -0
- package/Text-OlyNC1yj.d.mts.map +1 -0
- package/TextArea-C-a06VpC.d.cts +58 -0
- package/TextArea-C-a06VpC.d.cts.map +1 -0
- package/TextArea-CTHcW_IE.d.mts +58 -0
- package/TextArea-CTHcW_IE.d.mts.map +1 -0
- package/TextInput-BhkeQZh4.d.cts +47 -0
- package/TextInput-BhkeQZh4.d.cts.map +1 -0
- package/TextInput-CWCeR18b.d.mts +47 -0
- package/TextInput-CWCeR18b.d.mts.map +1 -0
- package/Thumbnails-B-eOrf55.d.cts +226 -0
- package/Thumbnails-B-eOrf55.d.cts.map +1 -0
- package/Thumbnails-B-eOrf55.d.mts +226 -0
- package/Thumbnails-B-eOrf55.d.mts.map +1 -0
- package/TimePickerTarget-BHceCsfc.cjs +25 -0
- package/TimePickerTarget-BHceCsfc.cjs.map +1 -0
- package/TimePickerTarget-DlbryTho.mjs +14 -0
- package/TimePickerTarget-DlbryTho.mjs.map +1 -0
- package/TimePickerTarget-pYRxAfb2.d.cts +14 -0
- package/TimePickerTarget-pYRxAfb2.d.cts.map +1 -0
- package/TimePickerTarget-pYRxAfb2.d.mts +14 -0
- package/TimePickerTarget-pYRxAfb2.d.mts.map +1 -0
- package/Toast-CPEKESLZ.cjs +107 -0
- package/Toast-CPEKESLZ.cjs.map +1 -0
- package/Toast-CdUaFVpt.mjs +96 -0
- package/Toast-CdUaFVpt.mjs.map +1 -0
- package/ToggleSwitch-D-HRkEg2.d.cts +60 -0
- package/ToggleSwitch-D-HRkEg2.d.cts.map +1 -0
- package/ToggleSwitch-D-HRkEg2.d.mts +60 -0
- package/ToggleSwitch-D-HRkEg2.d.mts.map +1 -0
- package/Tooltip-D6_5Rsmd.d.cts +21 -0
- package/Tooltip-D6_5Rsmd.d.cts.map +1 -0
- package/Tooltip-D6_5Rsmd.d.mts +21 -0
- package/Tooltip-D6_5Rsmd.d.mts.map +1 -0
- package/Tooltip.cjs +38 -0
- package/Tooltip.cjs.map +1 -0
- package/Tooltip.d.cts +2 -0
- package/Tooltip.d.mts +2 -0
- package/Tooltip.mjs +26 -0
- package/Tooltip.mjs.map +1 -0
- package/Typography/InlineButton.cjs +63 -0
- package/Typography/InlineButton.cjs.map +1 -0
- package/Typography/InlineButton.d.cts +2 -0
- package/Typography/InlineButton.d.mts +2 -0
- package/Typography/InlineButton.mjs +59 -0
- package/Typography/InlineButton.mjs.map +1 -0
- package/Typography/Links.cjs +62 -0
- package/Typography/Links.cjs.map +1 -0
- package/Typography/Links.d.cts +2 -0
- package/Typography/Links.d.mts +2 -0
- package/Typography/Links.mjs +51 -0
- package/Typography/Links.mjs.map +1 -0
- package/Typography/Text.cjs +178 -0
- package/Typography/Text.cjs.map +1 -0
- package/Typography/Text.d.cts +2 -0
- package/Typography/Text.d.mts +2 -0
- package/Typography/Text.mjs +163 -0
- package/Typography/Text.mjs.map +1 -0
- package/ViewMore-BBoUvo7p.cjs +138 -0
- package/ViewMore-BBoUvo7p.cjs.map +1 -0
- package/ViewMore-BrZPuE4E.mjs +133 -0
- package/ViewMore-BrZPuE4E.mjs.map +1 -0
- package/ViewMore-DKC9SYL4.d.cts +93 -0
- package/ViewMore-DKC9SYL4.d.cts.map +1 -0
- package/ViewMore-DKC9SYL4.d.mts +93 -0
- package/ViewMore-DKC9SYL4.d.mts.map +1 -0
- package/WebRTCPlayer-C-sTtskR.mjs +940 -0
- package/WebRTCPlayer-C-sTtskR.mjs.map +1 -0
- package/WebRTCPlayer-CssffyCM.cjs +983 -0
- package/WebRTCPlayer-CssffyCM.cjs.map +1 -0
- package/accordion.cjs +126 -0
- package/accordion.cjs.map +1 -0
- package/accordion.d.cts +2 -0
- package/accordion.d.mts +2 -0
- package/accordion.mjs +120 -0
- package/accordion.mjs.map +1 -0
- package/addressDisplay.cjs +7 -0
- package/addressDisplay.d.cts +2 -0
- package/addressDisplay.d.mts +2 -0
- package/addressDisplay.mjs +3 -0
- package/anyIcon-C3IQzJJ9.d.cts +7 -0
- package/anyIcon-C3IQzJJ9.d.cts.map +1 -0
- package/anyIcon-eR07wvJb.d.mts +7 -0
- package/anyIcon-eR07wvJb.d.mts.map +1 -0
- package/automatedCarousel.cjs +7 -0
- package/automatedCarousel.d.cts +2 -0
- package/automatedCarousel.d.mts +2 -0
- package/automatedCarousel.mjs +3 -0
- package/bannerNotification.cjs +7 -0
- package/bannerNotification.d.cts +2 -0
- package/bannerNotification.d.mts +2 -0
- package/bannerNotification.mjs +3 -0
- package/bottomSheet.cjs +7 -0
- package/bottomSheet.d.cts +2 -0
- package/bottomSheet.d.mts +2 -0
- package/bottomSheet.mjs +3 -0
- package/breadcrumbs.cjs +7 -0
- package/breadcrumbs.d.cts +2 -0
- package/breadcrumbs.d.mts +2 -0
- package/breadcrumbs.mjs +3 -0
- package/breakpoints.cjs +53 -0
- package/breakpoints.cjs.map +1 -0
- package/breakpoints.d.cts +2 -0
- package/breakpoints.d.mts +2 -0
- package/breakpoints.mjs +46 -0
- package/breakpoints.mjs.map +1 -0
- package/buttonColorClasses-B7OU4aQA.mjs +22 -0
- package/buttonColorClasses-B7OU4aQA.mjs.map +1 -0
- package/buttonColorClasses-C3hg1at8.cjs +93 -0
- package/buttonColorClasses-C3hg1at8.cjs.map +1 -0
- package/card/cardGrid.cjs +7 -0
- package/card/cardGrid.d.cts +2 -0
- package/card/cardGrid.d.mts +2 -0
- package/card/cardGrid.mjs +3 -0
- package/card/components/createBadge.cjs +27 -0
- package/card/components/createBadge.cjs.map +1 -0
- package/card/components/createBadge.d.cts +2 -0
- package/card/components/createBadge.d.mts +2 -0
- package/card/components/createBadge.mjs +23 -0
- package/card/components/createBadge.mjs.map +1 -0
- package/card/components/createFavoriteButton.cjs +31 -0
- package/card/components/createFavoriteButton.cjs.map +1 -0
- package/card/components/createFavoriteButton.d.cts +2 -0
- package/card/components/createFavoriteButton.d.mts +2 -0
- package/card/components/createFavoriteButton.mjs +27 -0
- package/card/components/createFavoriteButton.mjs.map +1 -0
- package/card/components/createImage.cjs +44 -0
- package/card/components/createImage.cjs.map +1 -0
- package/card/components/createImage.d.cts +2 -0
- package/card/components/createImage.d.mts +2 -0
- package/card/components/createImage.mjs +40 -0
- package/card/components/createImage.mjs.map +1 -0
- package/card/components/createInfo.cjs +61 -0
- package/card/components/createInfo.cjs.map +1 -0
- package/card/components/createInfo.d.cts +2 -0
- package/card/components/createInfo.d.mts +2 -0
- package/card/components/createInfo.mjs +56 -0
- package/card/components/createInfo.mjs.map +1 -0
- package/card/components/createName.cjs +43 -0
- package/card/components/createName.cjs.map +1 -0
- package/card/components/createName.d.cts +2 -0
- package/card/components/createName.d.mts +2 -0
- package/card/components/createName.mjs +39 -0
- package/card/components/createName.mjs.map +1 -0
- package/card/components/createPriceStatus.cjs +77 -0
- package/card/components/createPriceStatus.cjs.map +1 -0
- package/card/components/createPriceStatus.d.cts +2 -0
- package/card/components/createPriceStatus.d.mts +2 -0
- package/card/components/createPriceStatus.mjs +70 -0
- package/card/components/createPriceStatus.mjs.map +1 -0
- package/card/factory.cjs +7 -0
- package/card/factory.d.cts +3 -0
- package/card/factory.d.mts +3 -0
- package/card/factory.mjs +3 -0
- package/card/singleCard.cjs +18 -0
- package/card/singleCard.cjs.map +1 -0
- package/card/singleCard.d.cts +2 -0
- package/card/singleCard.d.mts +2 -0
- package/card/singleCard.mjs +14 -0
- package/card/singleCard.mjs.map +1 -0
- package/cardFactory-B0Ah0Qb8.mjs +102 -0
- package/cardFactory-B0Ah0Qb8.mjs.map +1 -0
- package/cardFactory-CEKTSSXs.d.cts +37 -0
- package/cardFactory-CEKTSSXs.d.cts.map +1 -0
- package/cardFactory-DTU3jY-R.cjs +107 -0
- package/cardFactory-DTU3jY-R.cjs.map +1 -0
- package/cardFactory-Z5a675Nr.d.mts +37 -0
- package/cardFactory-Z5a675Nr.d.mts.map +1 -0
- package/carousel.cjs +10 -0
- package/carousel.d.cts +2 -0
- package/carousel.d.mts +2 -0
- package/carousel.mjs +3 -0
- package/chipTypes-Bi0ZROty.d.cts +109 -0
- package/chipTypes-Bi0ZROty.d.cts.map +1 -0
- package/chipTypes-Bi0ZROty.d.mts +109 -0
- package/chipTypes-Bi0ZROty.d.mts.map +1 -0
- package/chips/chip.cjs +102 -0
- package/chips/chip.cjs.map +1 -0
- package/chips/chip.d.cts +2 -0
- package/chips/chip.d.mts +2 -0
- package/chips/chip.mjs +98 -0
- package/chips/chip.mjs.map +1 -0
- package/chips/chipGroup.cjs +127 -0
- package/chips/chipGroup.cjs.map +1 -0
- package/chips/chipGroup.d.cts +2 -0
- package/chips/chipGroup.d.mts +2 -0
- package/chips/chipGroup.mjs +123 -0
- package/chips/chipGroup.mjs.map +1 -0
- package/chips/suggestion.cjs +20 -0
- package/chips/suggestion.cjs.map +1 -0
- package/chips/suggestion.d.cts +2 -0
- package/chips/suggestion.d.mts +2 -0
- package/chips/suggestion.mjs +16 -0
- package/chips/suggestion.mjs.map +1 -0
- package/chips/types.cjs +1 -0
- package/chips/types.d.cts +2 -0
- package/chips/types.d.mts +2 -0
- package/chips/types.mjs +2 -0
- package/chips.cjs +12 -0
- package/chips.d.cts +5 -0
- package/chips.d.mts +5 -0
- package/chips.mjs +6 -0
- package/collapsible.cjs +47 -0
- package/collapsible.cjs.map +1 -0
- package/collapsible.d.cts +2 -0
- package/collapsible.d.mts +2 -0
- package/collapsible.mjs +43 -0
- package/collapsible.mjs.map +1 -0
- package/components-BPFB_cmZ.mjs +346 -0
- package/components-BPFB_cmZ.mjs.map +1 -0
- package/components-CL4KcKF0.cjs +393 -0
- package/components-CL4KcKF0.cjs.map +1 -0
- package/confetti.cjs +7 -0
- package/confetti.d.cts +2 -0
- package/confetti.d.mts +2 -0
- package/confetti.mjs +3 -0
- package/contentPager.cjs +9 -0
- package/contentPager.d.cts +2 -0
- package/contentPager.d.mts +2 -0
- package/contentPager.mjs +3 -0
- package/context--_0mDNFa.d.cts +24 -0
- package/context--_0mDNFa.d.cts.map +1 -0
- package/context--_0mDNFa.d.mts +24 -0
- package/context--_0mDNFa.d.mts.map +1 -0
- package/cookieConsent.cjs +11 -0
- package/cookieConsent.d.cts +2 -0
- package/cookieConsent.d.mts +2 -0
- package/cookieConsent.mjs +3 -0
- package/countdown/types.cjs +1 -0
- package/countdown/types.d.cts +2 -0
- package/countdown/types.d.mts +2 -0
- package/countdown/types.mjs +2 -0
- package/countdown.cjs +7 -0
- package/countdown.d.cts +2 -0
- package/countdown.d.mts +2 -0
- package/countdown.mjs +3 -0
- package/createBadge-CYumy92O.d.mts +19 -0
- package/createBadge-CYumy92O.d.mts.map +1 -0
- package/createBadge-LFbUXGlB.d.cts +19 -0
- package/createBadge-LFbUXGlB.d.cts.map +1 -0
- package/createFavoriteButton-8xbCWiTD.d.mts +21 -0
- package/createFavoriteButton-8xbCWiTD.d.mts.map +1 -0
- package/createFavoriteButton-Bnp0UOEq.d.cts +21 -0
- package/createFavoriteButton-Bnp0UOEq.d.cts.map +1 -0
- package/createImage-BYnNgRok.d.mts +26 -0
- package/createImage-BYnNgRok.d.mts.map +1 -0
- package/createImage-DYLD7AJb.d.cts +26 -0
- package/createImage-DYLD7AJb.d.cts.map +1 -0
- package/createInfo-C9sqGWBq.d.mts +44 -0
- package/createInfo-C9sqGWBq.d.mts.map +1 -0
- package/createInfo-USBqE7Tt.d.cts +44 -0
- package/createInfo-USBqE7Tt.d.cts.map +1 -0
- package/createName-DB7BL9GP.d.cts +26 -0
- package/createName-DB7BL9GP.d.cts.map +1 -0
- package/createName-U7oHRNVL.d.mts +26 -0
- package/createName-U7oHRNVL.d.mts.map +1 -0
- package/createPriceStatus-C-amebFt.d.cts +30 -0
- package/createPriceStatus-C-amebFt.d.cts.map +1 -0
- package/createPriceStatus-DBWT6ob8.d.mts +30 -0
- package/createPriceStatus-DBWT6ob8.d.mts.map +1 -0
- package/dateInput.cjs +98 -0
- package/dateInput.cjs.map +1 -0
- package/dateInput.d.cts +2 -0
- package/dateInput.d.mts +2 -0
- package/dateInput.mjs +94 -0
- package/dateInput.mjs.map +1 -0
- package/datePicker-DQ32Z8yo.mjs +136 -0
- package/datePicker-DQ32Z8yo.mjs.map +1 -0
- package/datePicker-DaYegd15.cjs +141 -0
- package/datePicker-DaYegd15.cjs.map +1 -0
- package/datePicker.cjs +9 -0
- package/datePicker.d.cts +3 -0
- package/datePicker.d.mts +3 -0
- package/datePicker.mjs +4 -0
- package/dateTimeInput/utils.cjs +8 -0
- package/dateTimeInput/utils.d.cts +2 -0
- package/dateTimeInput/utils.d.mts +2 -0
- package/dateTimeInput/utils.mjs +3 -0
- package/drawer.cjs +7 -0
- package/drawer.d.cts +2 -0
- package/drawer.d.mts +2 -0
- package/drawer.mjs +3 -0
- package/educationalPopover.cjs +110 -0
- package/educationalPopover.cjs.map +1 -0
- package/educationalPopover.d.cts +2 -0
- package/educationalPopover.d.mts +2 -0
- package/educationalPopover.mjs +106 -0
- package/educationalPopover.mjs.map +1 -0
- package/effectEventListener-DmVY5Sgy.cjs +16 -0
- package/effectEventListener-DmVY5Sgy.cjs.map +1 -0
- package/effectEventListener-WApakaup.mjs +11 -0
- package/effectEventListener-WApakaup.mjs.map +1 -0
- package/favoriteButton.cjs +7 -0
- package/favoriteButton.d.cts +2 -0
- package/favoriteButton.d.mts +2 -0
- package/favoriteButton.mjs +3 -0
- package/featureFlagProvider-Cl66ibpA.cjs +25 -0
- package/featureFlagProvider-Cl66ibpA.cjs.map +1 -0
- package/featureFlagProvider-_wGBROhw.mjs +14 -0
- package/featureFlagProvider-_wGBROhw.mjs.map +1 -0
- package/featureFlags/devTools/FeatureFlagDevToolsUI.cjs +7 -0
- package/featureFlags/devTools/FeatureFlagDevToolsUI.d.cts +2 -0
- package/featureFlags/devTools/FeatureFlagDevToolsUI.d.mts +2 -0
- package/featureFlags/devTools/FeatureFlagDevToolsUI.mjs +3 -0
- package/featureFlags/devTools/getFeatureFlagCookieOverrides.cjs +27 -0
- package/featureFlags/devTools/getFeatureFlagCookieOverrides.cjs.map +1 -0
- package/featureFlags/devTools/getFeatureFlagCookieOverrides.d.cts +15 -0
- package/featureFlags/devTools/getFeatureFlagCookieOverrides.d.cts.map +1 -0
- package/featureFlags/devTools/getFeatureFlagCookieOverrides.d.mts +15 -0
- package/featureFlags/devTools/getFeatureFlagCookieOverrides.d.mts.map +1 -0
- package/featureFlags/devTools/getFeatureFlagCookieOverrides.mjs +23 -0
- package/featureFlags/devTools/getFeatureFlagCookieOverrides.mjs.map +1 -0
- package/featureFlags/hooks.cjs +9 -0
- package/featureFlags/hooks.d.cts +2 -0
- package/featureFlags/hooks.d.mts +2 -0
- package/featureFlags/hooks.mjs +4 -0
- package/fileUpload/hooks.cjs +8 -0
- package/fileUpload/hooks.d.cts +2 -0
- package/fileUpload/hooks.d.mts +2 -0
- package/fileUpload/hooks.mjs +3 -0
- package/fileUpload/testUtils/mockFilesAndImages.cjs +68 -0
- package/fileUpload/testUtils/mockFilesAndImages.cjs.map +1 -0
- package/fileUpload/testUtils/mockFilesAndImages.d.cts +19 -0
- package/fileUpload/testUtils/mockFilesAndImages.d.cts.map +1 -0
- package/fileUpload/testUtils/mockFilesAndImages.d.mts +19 -0
- package/fileUpload/testUtils/mockFilesAndImages.d.mts.map +1 -0
- package/fileUpload/testUtils/mockFilesAndImages.mjs +52 -0
- package/fileUpload/testUtils/mockFilesAndImages.mjs.map +1 -0
- package/fileUpload/testUtils/testUtils.cjs +91 -0
- package/fileUpload/testUtils/testUtils.cjs.map +1 -0
- package/fileUpload/testUtils/testUtils.d.cts +13 -0
- package/fileUpload/testUtils/testUtils.d.cts.map +1 -0
- package/fileUpload/testUtils/testUtils.d.mts +13 -0
- package/fileUpload/testUtils/testUtils.d.mts.map +1 -0
- package/fileUpload/testUtils/testUtils.mjs +81 -0
- package/fileUpload/testUtils/testUtils.mjs.map +1 -0
- package/fileUpload/types.cjs +31 -0
- package/fileUpload/types.cjs.map +1 -0
- package/fileUpload/types.d.cts +2 -0
- package/fileUpload/types.d.mts +2 -0
- package/fileUpload/types.mjs +26 -0
- package/fileUpload/types.mjs.map +1 -0
- package/fileUpload.cjs +24 -0
- package/fileUpload.d.cts +4 -0
- package/fileUpload.d.mts +4 -0
- package/fileUpload.mjs +4 -0
- package/formLabel.cjs +108 -0
- package/formLabel.cjs.map +1 -0
- package/formLabel.d.cts +2 -0
- package/formLabel.d.mts +2 -0
- package/formLabel.mjs +103 -0
- package/formLabel.mjs.map +1 -0
- package/grid.cjs +128 -0
- package/grid.cjs.map +1 -0
- package/grid.d.cts +3 -0
- package/grid.d.mts +3 -0
- package/grid.mjs +118 -0
- package/grid.mjs.map +1 -0
- package/gridHighlighter-BU9PvG5f.d.cts +29 -0
- package/gridHighlighter-BU9PvG5f.d.cts.map +1 -0
- package/gridHighlighter-BU9PvG5f.d.mts +29 -0
- package/gridHighlighter-BU9PvG5f.d.mts.map +1 -0
- package/gridHighlighter-BcGNd3EE.mjs +55 -0
- package/gridHighlighter-BcGNd3EE.mjs.map +1 -0
- package/gridHighlighter-BiSMM7lW.cjs +66 -0
- package/gridHighlighter-BiSMM7lW.cjs.map +1 -0
- package/hooks/usePrevious.cjs +21 -0
- package/hooks/usePrevious.cjs.map +1 -0
- package/hooks/usePrevious.d.cts +2 -0
- package/hooks/usePrevious.d.mts +2 -0
- package/hooks/usePrevious.mjs +17 -0
- package/hooks/usePrevious.mjs.map +1 -0
- package/hooks-8VsDqwlb.cjs +672 -0
- package/hooks-8VsDqwlb.cjs.map +1 -0
- package/hooks-BudbgYTF.mjs +22 -0
- package/hooks-BudbgYTF.mjs.map +1 -0
- package/hooks-D4sJ62Xl.mjs +607 -0
- package/hooks-D4sJ62Xl.mjs.map +1 -0
- package/hooks-DDMD_CDN.cjs +27 -0
- package/hooks-DDMD_CDN.cjs.map +1 -0
- package/horizontalScrollFadeMixin-BBr1qJpj.mjs +38 -0
- package/horizontalScrollFadeMixin-BBr1qJpj.mjs.map +1 -0
- package/horizontalScrollFadeMixin-ChYR-9hE.cjs +43 -0
- package/horizontalScrollFadeMixin-ChYR-9hE.cjs.map +1 -0
- package/imageCluster.cjs +54 -0
- package/imageCluster.cjs.map +1 -0
- package/imageCluster.d.cts +2 -0
- package/imageCluster.d.mts +2 -0
- package/imageCluster.mjs +50 -0
- package/imageCluster.mjs.map +1 -0
- package/imageSlider.cjs +10 -0
- package/imageSlider.d.cts +2 -0
- package/imageSlider.d.mts +2 -0
- package/imageSlider.mjs +3 -0
- package/index-3V0Y3AU3.d.mts +25 -0
- package/index-3V0Y3AU3.d.mts.map +1 -0
- package/index-9649Aqry.d.cts +84 -0
- package/index-9649Aqry.d.cts.map +1 -0
- package/index-9649Aqry.d.mts +84 -0
- package/index-9649Aqry.d.mts.map +1 -0
- package/index-B-GVogfk2.d.mts +519 -0
- package/index-B-GVogfk2.d.mts.map +1 -0
- package/index-BAR19_eg.d.cts +494 -0
- package/index-BAR19_eg.d.cts.map +1 -0
- package/index-BAR19_eg.d.mts +494 -0
- package/index-BAR19_eg.d.mts.map +1 -0
- package/index-BIbZcTRq.d.cts +236 -0
- package/index-BIbZcTRq.d.cts.map +1 -0
- package/index-BVb-FJDo.d.mts +322 -0
- package/index-BVb-FJDo.d.mts.map +1 -0
- package/index-BXz3rMMk.d.cts +322 -0
- package/index-BXz3rMMk.d.cts.map +1 -0
- package/index-Bm-eSWuV.d.mts +75 -0
- package/index-Bm-eSWuV.d.mts.map +1 -0
- package/index-BsA0Oogf.d.cts +75 -0
- package/index-BsA0Oogf.d.cts.map +1 -0
- package/index-Bu7c6X7O.d.mts +117 -0
- package/index-Bu7c6X7O.d.mts.map +1 -0
- package/index-BvJOKeoD.d.cts +94 -0
- package/index-BvJOKeoD.d.cts.map +1 -0
- package/index-BvJOKeoD.d.mts +94 -0
- package/index-BvJOKeoD.d.mts.map +1 -0
- package/index-ByYgcpRS.d.cts +1644 -0
- package/index-ByYgcpRS.d.cts.map +1 -0
- package/index-ByZJ4iMT2.d.mts +143 -0
- package/index-ByZJ4iMT2.d.mts.map +1 -0
- package/index-BzN9RaXe.d.cts +117 -0
- package/index-BzN9RaXe.d.cts.map +1 -0
- package/index-C1knx8x3.d.cts +8 -0
- package/index-C1knx8x3.d.cts.map +1 -0
- package/index-C1knx8x3.d.mts +8 -0
- package/index-C1knx8x3.d.mts.map +1 -0
- package/index-CEUCcUr8.d.mts +26 -0
- package/index-CEUCcUr8.d.mts.map +1 -0
- package/index-CQb7B4U7.d.mts +25 -0
- package/index-CQb7B4U7.d.mts.map +1 -0
- package/index-CTGvafCc.d.mts +68 -0
- package/index-CTGvafCc.d.mts.map +1 -0
- package/index-CTfIOH2Z2.d.cts +519 -0
- package/index-CTfIOH2Z2.d.cts.map +1 -0
- package/index-CXbRJmrm.d.cts +49 -0
- package/index-CXbRJmrm.d.cts.map +1 -0
- package/index-CXbRJmrm.d.mts +49 -0
- package/index-CXbRJmrm.d.mts.map +1 -0
- package/index-Co9X1Vty.d.cts +25 -0
- package/index-Co9X1Vty.d.cts.map +1 -0
- package/index-D1Zpm1h7.d.cts +58 -0
- package/index-D1Zpm1h7.d.cts.map +1 -0
- package/index-D1Zpm1h7.d.mts +58 -0
- package/index-D1Zpm1h7.d.mts.map +1 -0
- package/index-D2HDrkK3.d.cts +172 -0
- package/index-D2HDrkK3.d.cts.map +1 -0
- package/index-D2HDrkK3.d.mts +172 -0
- package/index-D2HDrkK3.d.mts.map +1 -0
- package/index-D8NtFEaq.d.cts +193 -0
- package/index-D8NtFEaq.d.cts.map +1 -0
- package/index-D8NtFEaq.d.mts +193 -0
- package/index-D8NtFEaq.d.mts.map +1 -0
- package/index-DBYqF9Sr.d.cts +39 -0
- package/index-DBYqF9Sr.d.cts.map +1 -0
- package/index-DS-jIZFO.d.mts +1644 -0
- package/index-DS-jIZFO.d.mts.map +1 -0
- package/index-DTEgNDXq.d.mts +111 -0
- package/index-DTEgNDXq.d.mts.map +1 -0
- package/index-DTEgNDXq2.d.cts +111 -0
- package/index-DTEgNDXq2.d.cts.map +1 -0
- package/index-DUdcrvAe.d.cts +26 -0
- package/index-DUdcrvAe.d.cts.map +1 -0
- package/index-DUdcrvAe.d.mts +26 -0
- package/index-DUdcrvAe.d.mts.map +1 -0
- package/index-DwA_GqJq.d.cts +26 -0
- package/index-DwA_GqJq.d.cts.map +1 -0
- package/index-MX_CgDGs.d.cts +147 -0
- package/index-MX_CgDGs.d.cts.map +1 -0
- package/index-MX_CgDGs.d.mts +147 -0
- package/index-MX_CgDGs.d.mts.map +1 -0
- package/index-NeSBj5ci.d.cts +200 -0
- package/index-NeSBj5ci.d.cts.map +1 -0
- package/index-NeSBj5ci.d.mts +200 -0
- package/index-NeSBj5ci.d.mts.map +1 -0
- package/index-XZwBshBM.d.cts +177 -0
- package/index-XZwBshBM.d.cts.map +1 -0
- package/index-XZwBshBM.d.mts +177 -0
- package/index-XZwBshBM.d.mts.map +1 -0
- package/index-dpfLYhgI.d.mts +39 -0
- package/index-dpfLYhgI.d.mts.map +1 -0
- package/index-kchg551L.d.cts +25 -0
- package/index-kchg551L.d.cts.map +1 -0
- package/index-l7Awc0i3.d.cts +68 -0
- package/index-l7Awc0i3.d.cts.map +1 -0
- package/index-ojxI7tqs.d.cts +143 -0
- package/index-ojxI7tqs.d.cts.map +1 -0
- package/index-otqj7yHa.d.mts +236 -0
- package/index-otqj7yHa.d.mts.map +1 -0
- package/index.cjs +472 -0
- package/index.d.cts +101 -0
- package/index.d.mts +101 -0
- package/index.mjs +99 -0
- package/inlineNotification.cjs +82 -0
- package/inlineNotification.cjs.map +1 -0
- package/inlineNotification.d.cts +2 -0
- package/inlineNotification.d.mts +2 -0
- package/inlineNotification.mjs +78 -0
- package/inlineNotification.mjs.map +1 -0
- package/intl/utils.cjs +41 -0
- package/intl/utils.cjs.map +1 -0
- package/intl/utils.d.cts +18 -0
- package/intl/utils.d.cts.map +1 -0
- package/intl/utils.d.mts +18 -0
- package/intl/utils.d.mts.map +1 -0
- package/intl/utils.mjs +34 -0
- package/intl/utils.mjs.map +1 -0
- package/intl.cjs +34 -0
- package/intl.d.cts +5 -0
- package/intl.d.mts +5 -0
- package/intl.mjs +6 -0
- package/jumpMenu.cjs +7 -0
- package/jumpMenu.d.cts +2 -0
- package/jumpMenu.d.mts +2 -0
- package/jumpMenu.mjs +3 -0
- package/loading.cjs +7 -0
- package/loading.d.cts +2 -0
- package/loading.d.mts +2 -0
- package/loading.mjs +3 -0
- package/menu.cjs +9 -0
- package/menu.d.cts +2 -0
- package/menu.d.mts +2 -0
- package/menu.mjs +3 -0
- package/menuContext-4P6eKzkH.mjs +14 -0
- package/menuContext-4P6eKzkH.mjs.map +1 -0
- package/menuContext-B6MhMBDf.cjs +25 -0
- package/menuContext-B6MhMBDf.cjs.map +1 -0
- package/mixins-CoXneD1m.mjs +235 -0
- package/mixins-CoXneD1m.mjs.map +1 -0
- package/mixins-D56ptENc.cjs +282 -0
- package/mixins-D56ptENc.cjs.map +1 -0
- package/mixins.cjs +13 -0
- package/mixins.d.cts +2 -0
- package/mixins.d.mts +2 -0
- package/mixins.mjs +2 -0
- package/modal/components.cjs +16 -0
- package/modal/components.d.cts +3 -0
- package/modal/components.d.mts +3 -0
- package/modal/components.mjs +4 -0
- package/modal/context.cjs +26 -0
- package/modal/context.cjs.map +1 -0
- package/modal/context.d.cts +2 -0
- package/modal/context.d.mts +2 -0
- package/modal/context.mjs +21 -0
- package/modal/context.mjs.map +1 -0
- package/modal/useCloseModal.cjs +103 -0
- package/modal/useCloseModal.cjs.map +1 -0
- package/modal/useCloseModal.d.cts +2 -0
- package/modal/useCloseModal.d.mts +2 -0
- package/modal/useCloseModal.mjs +98 -0
- package/modal/useCloseModal.mjs.map +1 -0
- package/modal.cjs +7 -0
- package/modal.d.cts +2 -0
- package/modal.d.mts +2 -0
- package/modal.mjs +3 -0
- package/nodeEnv-B4v61vkJ.mjs +6 -0
- package/nodeEnv-B4v61vkJ.mjs.map +1 -0
- package/nodeEnv-BdQ-HyQz.cjs +11 -0
- package/nodeEnv-BdQ-HyQz.cjs.map +1 -0
- package/notificationBadge.cjs +24 -0
- package/notificationBadge.cjs.map +1 -0
- package/notificationBadge.d.cts +2 -0
- package/notificationBadge.d.mts +2 -0
- package/notificationBadge.mjs +20 -0
- package/notificationBadge.mjs.map +1 -0
- package/package.json +73 -0
- package/pagination.cjs +10 -0
- package/pagination.d.cts +2 -0
- package/pagination.d.mts +2 -0
- package/pagination.mjs +3 -0
- package/phoneInput.cjs +34 -0
- package/phoneInput.d.cts +5 -0
- package/phoneInput.d.mts +5 -0
- package/phoneInput.mjs +6 -0
- package/progressCircle.cjs +7 -0
- package/progressCircle.d.cts +2 -0
- package/progressCircle.d.mts +2 -0
- package/progressCircle.mjs +3 -0
- package/progressSteps.cjs +92 -0
- package/progressSteps.cjs.map +1 -0
- package/progressSteps.d.cts +2 -0
- package/progressSteps.d.mts +2 -0
- package/progressSteps.mjs +88 -0
- package/progressSteps.mjs.map +1 -0
- package/providers.cjs +333 -0
- package/providers.cjs.map +1 -0
- package/providers.d.cts +5 -0
- package/providers.d.mts +5 -0
- package/providers.mjs +292 -0
- package/providers.mjs.map +1 -0
- package/rolldown-runtime-D6vf50IK.cjs +28 -0
- package/saveConfetti.cjs +7 -0
- package/saveConfetti.d.cts +2 -0
- package/saveConfetti.d.mts +2 -0
- package/saveConfetti.mjs +3 -0
- package/searchInput.cjs +92 -0
- package/searchInput.cjs.map +1 -0
- package/searchInput.d.cts +2 -0
- package/searchInput.d.mts +2 -0
- package/searchInput.mjs +88 -0
- package/searchInput.mjs.map +1 -0
- package/segmentedControl.cjs +8 -0
- package/segmentedControl.d.cts +2 -0
- package/segmentedControl.d.mts +2 -0
- package/segmentedControl.mjs +3 -0
- package/select.cjs +9 -0
- package/select.d.cts +2 -0
- package/select.d.mts +2 -0
- package/select.mjs +3 -0
- package/selectAsync.cjs +20 -0
- package/selectAsync.cjs.map +1 -0
- package/selectAsync.d.cts +2 -0
- package/selectAsync.d.mts +2 -0
- package/selectAsync.mjs +14 -0
- package/selectAsync.mjs.map +1 -0
- package/selectAsyncCreatable.cjs +19 -0
- package/selectAsyncCreatable.cjs.map +1 -0
- package/selectAsyncCreatable.d.cts +2 -0
- package/selectAsyncCreatable.d.mts +2 -0
- package/selectAsyncCreatable.mjs +13 -0
- package/selectAsyncCreatable.mjs.map +1 -0
- package/selectComponents.cjs +12 -0
- package/selectComponents.d.cts +2 -0
- package/selectComponents.d.mts +2 -0
- package/selectComponents.mjs +3 -0
- package/selectCreatable.cjs +19 -0
- package/selectCreatable.cjs.map +1 -0
- package/selectCreatable.d.cts +2 -0
- package/selectCreatable.d.mts +2 -0
- package/selectCreatable.mjs +13 -0
- package/selectCreatable.mjs.map +1 -0
- package/sharedProps-D7PSXdXt.d.mts +16 -0
- package/sharedProps-D7PSXdXt.d.mts.map +1 -0
- package/sharedProps-DPhLON6O.d.cts +16 -0
- package/sharedProps-DPhLON6O.d.cts.map +1 -0
- package/skeleton.cjs +24 -0
- package/skeleton.cjs.map +1 -0
- package/skeleton.d.cts +2 -0
- package/skeleton.d.mts +2 -0
- package/skeleton.mjs +18 -0
- package/skeleton.mjs.map +1 -0
- package/spacing.cjs +27 -0
- package/spacing.cjs.map +1 -0
- package/spacing.d.cts +13 -0
- package/spacing.d.cts.map +1 -0
- package/spacing.d.mts +13 -0
- package/spacing.d.mts.map +1 -0
- package/spacing.mjs +15 -0
- package/spacing.mjs.map +1 -0
- package/splitButton.cjs +7 -0
- package/splitButton.d.cts +2 -0
- package/splitButton.d.mts +2 -0
- package/splitButton.mjs +3 -0
- package/starRating.cjs +7 -0
- package/starRating.d.cts +2 -0
- package/starRating.d.mts +2 -0
- package/starRating.mjs +3 -0
- package/table.cjs +7 -0
- package/table.d.cts +2 -0
- package/table.d.mts +2 -0
- package/table.mjs +3 -0
- package/tabs.cjs +191 -0
- package/tabs.cjs.map +1 -0
- package/tabs.d.cts +2 -0
- package/tabs.d.mts +2 -0
- package/tabs.mjs +187 -0
- package/tabs.mjs.map +1 -0
- package/textArea.cjs +75 -0
- package/textArea.cjs.map +1 -0
- package/textArea.d.cts +2 -0
- package/textArea.d.mts +2 -0
- package/textArea.mjs +71 -0
- package/textArea.mjs.map +1 -0
- package/textInput.cjs +7 -0
- package/textInput.d.cts +2 -0
- package/textInput.d.mts +2 -0
- package/textInput.mjs +3 -0
- package/timePicker-BPrJk5TQ.mjs +376 -0
- package/timePicker-BPrJk5TQ.mjs.map +1 -0
- package/timePicker-Bs25zweI.cjs +381 -0
- package/timePicker-Bs25zweI.cjs.map +1 -0
- package/timePicker.cjs +9 -0
- package/timePicker.d.cts +3 -0
- package/timePicker.d.mts +3 -0
- package/timePicker.mjs +4 -0
- package/toast.cjs +8 -0
- package/toast.d.cts +2 -0
- package/toast.d.mts +2 -0
- package/toast.mjs +3 -0
- package/toggleSwitch.cjs +95 -0
- package/toggleSwitch.cjs.map +1 -0
- package/toggleSwitch.d.cts +2 -0
- package/toggleSwitch.d.mts +2 -0
- package/toggleSwitch.mjs +91 -0
- package/toggleSwitch.mjs.map +1 -0
- package/types-rTX1-GHe.d.cts +8 -0
- package/types-rTX1-GHe.d.cts.map +1 -0
- package/types-rTX1-GHe.d.mts +8 -0
- package/types-rTX1-GHe.d.mts.map +1 -0
- package/types-wcNSa96H.d.cts +60 -0
- package/types-wcNSa96H.d.cts.map +1 -0
- package/types-wcNSa96H.d.mts +60 -0
- package/types-wcNSa96H.d.mts.map +1 -0
- package/useCloseModal-CIPrwKwM.d.cts +26 -0
- package/useCloseModal-CIPrwKwM.d.cts.map +1 -0
- package/useCloseModal-CIPrwKwM.d.mts +26 -0
- package/useCloseModal-CIPrwKwM.d.mts.map +1 -0
- package/useFeatureFlags--GRuT9Qc.cjs +24 -0
- package/useFeatureFlags--GRuT9Qc.cjs.map +1 -0
- package/useFeatureFlags-Dmf_37f8.mjs +19 -0
- package/useFeatureFlags-Dmf_37f8.mjs.map +1 -0
- package/useIntersectionObserver-Q6Y3c3sz.mjs +47 -0
- package/useIntersectionObserver-Q6Y3c3sz.mjs.map +1 -0
- package/useIntersectionObserver-oYkZjzFF.cjs +52 -0
- package/useIntersectionObserver-oYkZjzFF.cjs.map +1 -0
- package/usePrevious-DLOWI2sB.d.cts +8 -0
- package/usePrevious-DLOWI2sB.d.cts.map +1 -0
- package/usePrevious-DLOWI2sB.d.mts +8 -0
- package/usePrevious-DLOWI2sB.d.mts.map +1 -0
- package/utils/dateTimeFormat.cjs +217 -0
- package/utils/dateTimeFormat.cjs.map +1 -0
- package/utils/dateTimeFormat.d.cts +176 -0
- package/utils/dateTimeFormat.d.cts.map +1 -0
- package/utils/dateTimeFormat.d.mts +176 -0
- package/utils/dateTimeFormat.d.mts.map +1 -0
- package/utils/dateTimeFormat.mjs +199 -0
- package/utils/dateTimeFormat.mjs.map +1 -0
- package/utils/formatFileSize.cjs +24 -0
- package/utils/formatFileSize.cjs.map +1 -0
- package/utils/formatFileSize.d.cts +5 -0
- package/utils/formatFileSize.d.cts.map +1 -0
- package/utils/formatFileSize.d.mts +5 -0
- package/utils/formatFileSize.d.mts.map +1 -0
- package/utils/formatFileSize.mjs +20 -0
- package/utils/formatFileSize.mjs.map +1 -0
- package/utils-C6Ngn6x9.mjs +23 -0
- package/utils-C6Ngn6x9.mjs.map +1 -0
- package/utils-CvmfGpqu.cjs +34 -0
- package/utils-CvmfGpqu.cjs.map +1 -0
- package/viewMore.cjs +7 -0
- package/viewMore.d.cts +2 -0
- package/viewMore.d.mts +2 -0
- package/viewMore.mjs +3 -0
- package/webRTCPlayer.cjs +13 -0
- package/webRTCPlayer.d.cts +2 -0
- package/webRTCPlayer.d.mts +2 -0
- package/webRTCPlayer.mjs +3 -0
- package/windowSizeProvider-BMaATFiZ.cjs +147 -0
- package/windowSizeProvider-BMaATFiZ.cjs.map +1 -0
- package/windowSizeProvider-sYwAqaOy.mjs +64 -0
- package/windowSizeProvider-sYwAqaOy.mjs.map +1 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
const require_Icons = require("./Icons.cjs");
|
|
2
|
+
const require_buttonColorClasses = require("./buttonColorClasses-C3hg1at8.cjs");
|
|
3
|
+
const require_Button = require("./Button.cjs");
|
|
4
|
+
const require_Tooltip = require("./Tooltip.cjs");
|
|
5
|
+
const require_SaveConfetti = require("./SaveConfetti-DSJtuE3b.cjs");
|
|
6
|
+
let _evolve_ui_theme_system = require("@evolve.ui/theme-system");
|
|
7
|
+
let react = require("react");
|
|
8
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
|
+
//#region src/FavoriteButton/hooks/useFavoriteButtonState.ts
|
|
10
|
+
/**
|
|
11
|
+
* Custom hook for managing the active state of the FavoriteButton
|
|
12
|
+
* @returns Object containing the active state and event handlers
|
|
13
|
+
*/
|
|
14
|
+
const useFavoriteButtonState = () => {
|
|
15
|
+
const [isActive, setIsActive] = (0, react.useState)(false);
|
|
16
|
+
const handleMouseDown = () => {
|
|
17
|
+
setIsActive(true);
|
|
18
|
+
};
|
|
19
|
+
const handleMouseUp = () => {
|
|
20
|
+
setIsActive(false);
|
|
21
|
+
};
|
|
22
|
+
const handleMouseLeave = () => {
|
|
23
|
+
if (isActive) setIsActive(false);
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
handleMouseDown,
|
|
27
|
+
handleMouseLeave,
|
|
28
|
+
handleMouseUp,
|
|
29
|
+
isActive
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region src/FavoriteButton/components/IconOnlyFavoriteButton/IconOnlyFavoriteButton.tsx
|
|
34
|
+
/**
|
|
35
|
+
* Icon-only variant of the FavoriteButton component
|
|
36
|
+
* Displays only a heart icon in either a circle or square shape
|
|
37
|
+
*/
|
|
38
|
+
const IconOnlyFavoriteButton = (0, react.forwardRef)(({ "aria-label": ariaLabel = "Favorite Toggle", className, disabled, favorited, onClick, shape, type, ...restProps }, ref) => {
|
|
39
|
+
const { handleMouseDown, handleMouseLeave, handleMouseUp, isActive } = useFavoriteButtonState();
|
|
40
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
41
|
+
"aria-label": ariaLabel,
|
|
42
|
+
"aria-pressed": Boolean(favorited),
|
|
43
|
+
className: (0, _evolve_ui_theme_system.cn)("group flex h-[30px] w-[30px] cursor-pointer items-center justify-center border border-solid", {
|
|
44
|
+
"rounded-container": shape === "square",
|
|
45
|
+
"rounded-full": shape === "circle"
|
|
46
|
+
}, "bg-background-primary text-surface-500", { "bg-background-primary text-critical-500": favorited }, "focus-visible:hui-focus-visible-outline focus:outline-none focus-visible:outline-offset-1", "active:text-border-critical-400 active:bg-critical-50", "hover:bg-critical-50 hover:text-critical-400", "disabled:cursor-not-allowed disabled:bg-background-primary disabled:text-border-disabled", className),
|
|
47
|
+
"data-hui-id": "FavoriteButton",
|
|
48
|
+
disabled,
|
|
49
|
+
onClick,
|
|
50
|
+
onMouseDown: handleMouseDown,
|
|
51
|
+
onMouseLeave: handleMouseLeave,
|
|
52
|
+
onMouseUp: handleMouseUp,
|
|
53
|
+
ref,
|
|
54
|
+
type,
|
|
55
|
+
...restProps,
|
|
56
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icons.HeartStraight, {
|
|
57
|
+
className: (0, _evolve_ui_theme_system.cn)("mt-[1px] bg-transparent text-current transition-transform duration-200 ease-in-out", { "group-hover:scale-[1.125]": !disabled }),
|
|
58
|
+
color: "inherit",
|
|
59
|
+
size: "sm",
|
|
60
|
+
style: favorited || isActive ? "fill" : "regular"
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
//#endregion
|
|
65
|
+
//#region src/FavoriteButton/components/LabeledAnimatedFavoriteButton/LabeledAnimatedFavoriteButton.tsx
|
|
66
|
+
const BUTTON_INLINE_STYLES = {
|
|
67
|
+
fontSize: "var(--font-size-button-200)",
|
|
68
|
+
fontWeight: "var(--font-weight-button)",
|
|
69
|
+
textTransform: "var(--text-transform-button)",
|
|
70
|
+
"--hui-save-color-critical-500": "var(--color-critical-500)",
|
|
71
|
+
"--hui-save-color-critical-300": "var(--color-critical-300)",
|
|
72
|
+
"--hui-save-color-critical-200": "var(--color-critical-200)",
|
|
73
|
+
"--hui-save-color-tertiary-400": "var(--color-tertiary-400)",
|
|
74
|
+
"--hui-save-color-tertiary-200": "var(--color-tertiary-200)"
|
|
75
|
+
};
|
|
76
|
+
const LabeledAnimatedFavoriteButton = (0, react.forwardRef)(({ "aria-label": ariaLabel = "Favorite Toggle", className, disabled, favorited, favoritedLabel = "Saved", isActivating, isWiggling, label = "Save", onClick, ...restProps }, ref) => {
|
|
77
|
+
const { handleMouseDown, handleMouseLeave, handleMouseUp, isActive } = useFavoriteButtonState();
|
|
78
|
+
const internalButtonRef = (0, react.useRef)(null);
|
|
79
|
+
const confettiRef = (0, react.useRef)(null);
|
|
80
|
+
(0, react.useImperativeHandle)(ref, () => internalButtonRef.current);
|
|
81
|
+
(0, react.useEffect)(() => {
|
|
82
|
+
if (!isActivating || !internalButtonRef.current) return;
|
|
83
|
+
confettiRef.current?.fire(internalButtonRef.current);
|
|
84
|
+
}, [isActivating]);
|
|
85
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
86
|
+
"aria-busy": false,
|
|
87
|
+
"aria-label": ariaLabel,
|
|
88
|
+
"aria-live": "polite",
|
|
89
|
+
"aria-pressed": favorited ?? false,
|
|
90
|
+
className: (0, _evolve_ui_theme_system.cn)("hui-focus-visible-outline relative flex max-w-full items-center justify-center whitespace-nowrap rounded-button text-center font-primary tracking-[var(--letter-spacing-button)] outline outline-1 -outline-offset-1 transition-colors disabled:text-text-disabled", favorited ? require_buttonColorClasses.outlinedCriticalClasses : require_buttonColorClasses.outlinedNeutralClasses, "gap-[4px] px-sm py-[13px] leading-[8px]", "h-[34px]", { "border-critical-500 text-critical-500": favorited }, "hover:border-critical-700 hover:bg-critical-50 hover:text-critical-700", "active:border-critical-900 active:bg-critical-100 active:text-critical-900", isWiggling && "animate-saveButtonWiggle motion-reduce:animate-none", isWiggling && !favorited && "hui-fb-color-flash", isActivating && "animate-saveButtonPulse motion-reduce:animate-none", className),
|
|
91
|
+
"data-hui-id": "FavoriteButton",
|
|
92
|
+
disabled,
|
|
93
|
+
onClick,
|
|
94
|
+
onMouseDown: handleMouseDown,
|
|
95
|
+
onMouseLeave: handleMouseLeave,
|
|
96
|
+
onMouseUp: handleMouseUp,
|
|
97
|
+
ref: internalButtonRef,
|
|
98
|
+
style: BUTTON_INLINE_STYLES,
|
|
99
|
+
...restProps,
|
|
100
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
101
|
+
className: (0, _evolve_ui_theme_system.cn)("hui-fb-icon-frame relative flex items-center justify-center", isWiggling && !favorited && "text-critical-500", isWiggling && "animate-saveHeartTwirlBloom motion-reduce:animate-none"),
|
|
102
|
+
style: {
|
|
103
|
+
height: "14px",
|
|
104
|
+
perspective: "200px",
|
|
105
|
+
width: "14px"
|
|
106
|
+
},
|
|
107
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icons.HeartStraight, {
|
|
108
|
+
className: (0, _evolve_ui_theme_system.cn)("[transform-style:preserve-3d]", isActivating && "animate-saveHeartPop motion-reduce:animate-none"),
|
|
109
|
+
color: "inherit",
|
|
110
|
+
size: "xs",
|
|
111
|
+
style: favorited || isActive || isWiggling ? "fill" : "bold"
|
|
112
|
+
})
|
|
113
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
114
|
+
className: (0, _evolve_ui_theme_system.cn)("hui-fb-animated-label", isWiggling && "hui-fb-shimmer animate-saveLabelShimmer"),
|
|
115
|
+
children: favorited ? favoritedLabel : label
|
|
116
|
+
})]
|
|
117
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SaveConfetti.SaveConfetti, { ref: confettiRef })] });
|
|
118
|
+
});
|
|
119
|
+
LabeledAnimatedFavoriteButton.displayName = "LabeledAnimatedFavoriteButton";
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region src/FavoriteButton/components/SmallHeartStraightIcon/SmallHeartStraightIcon.tsx
|
|
122
|
+
const SmallHeartStraightIcon = (0, react.forwardRef)((props, ref) => {
|
|
123
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icons.HeartStraight, {
|
|
124
|
+
style: "bold",
|
|
125
|
+
...props,
|
|
126
|
+
ref,
|
|
127
|
+
size: "xs"
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
//#endregion
|
|
131
|
+
//#region src/FavoriteButton/components/LabeledFavoriteButton/LabeledFavoriteButton.tsx
|
|
132
|
+
const LabeledFavoriteButton = (0, react.forwardRef)(({ "aria-label": ariaLabel = "Favorite Toggle", className, disabled, favorited, favoritedLabel = "Saved", label = "Save", onClick, ...restProps }, ref) => {
|
|
133
|
+
const { handleMouseDown, handleMouseLeave, handleMouseUp, isActive } = useFavoriteButtonState();
|
|
134
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.Button, {
|
|
135
|
+
"aria-label": ariaLabel,
|
|
136
|
+
"aria-pressed": favorited ? true : false,
|
|
137
|
+
className: (0, _evolve_ui_theme_system.cn)("h-[34px] text-surface-500", { "border-critical-500 text-critical-500": favorited }, "hover:border-critical-700 hover:bg-critical-50 hover:text-critical-700", "active:border-critical-900 active:bg-critical-100 active:text-critical-900", className),
|
|
138
|
+
"data-hui-id": "FavoriteButton",
|
|
139
|
+
disabled,
|
|
140
|
+
iconLeft: SmallHeartStraightIcon,
|
|
141
|
+
iconStyle: favorited || isActive ? "fill" : "bold",
|
|
142
|
+
onClick,
|
|
143
|
+
onMouseDown: handleMouseDown,
|
|
144
|
+
onMouseLeave: handleMouseLeave,
|
|
145
|
+
onMouseUp: handleMouseUp,
|
|
146
|
+
ref,
|
|
147
|
+
size: "sm",
|
|
148
|
+
style: favorited ? "critical" : "neutral",
|
|
149
|
+
variant: "outlined",
|
|
150
|
+
...restProps,
|
|
151
|
+
children: favorited ? favoritedLabel : label
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
//#endregion
|
|
155
|
+
//#region src/FavoriteButton/FavoriteButton.tsx
|
|
156
|
+
/**
|
|
157
|
+
* A button that allows users to mark an item as a favorite.
|
|
158
|
+
* The button displays a heart icon that changes appearance when favorited.
|
|
159
|
+
*
|
|
160
|
+
* Be aware that if you're using the tooltip option, make sure to use a unique id
|
|
161
|
+
* and set the `anchorSelect` prop on the tooltip to the id of the button.
|
|
162
|
+
*
|
|
163
|
+
* Available in four variants:
|
|
164
|
+
* - `circle`: Shows only the heart icon in a circular button (default)
|
|
165
|
+
* - `square`: Shows only the heart icon in a square button
|
|
166
|
+
* - `labeled`: Shows a button with text and the heart icon
|
|
167
|
+
* - `labeled-animated`: Shows a labeled button with animation-ready wrappers
|
|
168
|
+
*/
|
|
169
|
+
const FavoriteButton = (0, react.forwardRef)((props, ref) => {
|
|
170
|
+
const { isActivating, isWiggling, tooltipProps, variant = "circle", ...restProps } = props;
|
|
171
|
+
const { enabled = false, ...tooltipRestProps } = tooltipProps ?? {};
|
|
172
|
+
const variantComponents = {
|
|
173
|
+
circle: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconOnlyFavoriteButton, {
|
|
174
|
+
ref,
|
|
175
|
+
shape: "circle",
|
|
176
|
+
...restProps
|
|
177
|
+
}),
|
|
178
|
+
labeled: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LabeledFavoriteButton, {
|
|
179
|
+
ref,
|
|
180
|
+
...restProps
|
|
181
|
+
}),
|
|
182
|
+
"labeled-animated": /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LabeledAnimatedFavoriteButton, {
|
|
183
|
+
ref,
|
|
184
|
+
isActivating,
|
|
185
|
+
isWiggling,
|
|
186
|
+
...restProps
|
|
187
|
+
}),
|
|
188
|
+
square: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconOnlyFavoriteButton, {
|
|
189
|
+
ref,
|
|
190
|
+
shape: "square",
|
|
191
|
+
...restProps
|
|
192
|
+
})
|
|
193
|
+
};
|
|
194
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [enabled && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Tooltip.Tooltip, { ...tooltipRestProps }), variantComponents[variant]] });
|
|
195
|
+
});
|
|
196
|
+
//#endregion
|
|
197
|
+
Object.defineProperty(exports, "FavoriteButton", {
|
|
198
|
+
enumerable: true,
|
|
199
|
+
get: function() {
|
|
200
|
+
return FavoriteButton;
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
//# sourceMappingURL=FavoriteButton-DliYzkfu.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FavoriteButton-DliYzkfu.cjs","names":["HeartStraight","outlinedCriticalClasses","outlinedNeutralClasses","HeartStraight","SaveConfetti","HeartStraight","Button","Tooltip"],"sources":["../src/FavoriteButton/hooks/useFavoriteButtonState.ts","../src/FavoriteButton/components/IconOnlyFavoriteButton/IconOnlyFavoriteButton.tsx","../src/FavoriteButton/components/LabeledAnimatedFavoriteButton/LabeledAnimatedFavoriteButton.tsx","../src/FavoriteButton/components/SmallHeartStraightIcon/SmallHeartStraightIcon.tsx","../src/FavoriteButton/components/LabeledFavoriteButton/LabeledFavoriteButton.tsx","../src/FavoriteButton/FavoriteButton.tsx"],"sourcesContent":["import { useState } from 'react';\n\n/**\n * Custom hook for managing the active state of the FavoriteButton\n * @returns Object containing the active state and event handlers\n */\nexport const useFavoriteButtonState = () => {\n const [isActive, setIsActive] = useState(false);\n\n const handleMouseDown = () => {\n setIsActive(true);\n };\n\n const handleMouseUp = () => {\n setIsActive(false);\n };\n\n const handleMouseLeave = () => {\n if (isActive) {\n setIsActive(false);\n }\n };\n\n return {\n handleMouseDown,\n handleMouseLeave,\n handleMouseUp,\n isActive,\n };\n};\n","import { cn } from '@evolve.ui/theme-system';\nimport { forwardRef } from 'react';\n\nimport { HeartStraight } from '../../../Icons';\nimport { useFavoriteButtonState } from '../../hooks/useFavoriteButtonState';\nimport { IconOnlyFavoriteButtonProps } from '../../types/favoriteButton';\n\n/**\n * Icon-only variant of the FavoriteButton component\n * Displays only a heart icon in either a circle or square shape\n */\nexport const IconOnlyFavoriteButton = forwardRef<HTMLButtonElement, IconOnlyFavoriteButtonProps>(\n (\n {\n 'aria-label': ariaLabel = 'Favorite Toggle',\n className,\n disabled,\n favorited,\n onClick,\n shape,\n type,\n ...restProps\n },\n ref\n ) => {\n const { handleMouseDown, handleMouseLeave, handleMouseUp, isActive } = useFavoriteButtonState();\n\n return (\n <button\n aria-label={ariaLabel}\n aria-pressed={Boolean(favorited)}\n className={cn(\n // Base styles\n 'group flex h-[30px] w-[30px] cursor-pointer items-center justify-center border border-solid',\n // Shape styles\n {\n 'rounded-container': shape === 'square',\n 'rounded-full': shape === 'circle',\n },\n // Default state\n 'bg-background-primary text-surface-500',\n // Selected state\n {\n 'bg-background-primary text-critical-500': favorited,\n },\n // Focus state\n 'focus-visible:hui-focus-visible-outline focus:outline-none focus-visible:outline-offset-1',\n // Active state - immediately show critical color when clicked\n 'active:text-border-critical-400 active:bg-critical-50',\n // Hover state\n 'hover:bg-critical-50 hover:text-critical-400',\n // Disabled state\n 'disabled:cursor-not-allowed disabled:bg-background-primary disabled:text-border-disabled',\n className\n )}\n data-hui-id=\"FavoriteButton\"\n disabled={disabled}\n onClick={onClick}\n onMouseDown={handleMouseDown}\n onMouseLeave={handleMouseLeave}\n onMouseUp={handleMouseUp}\n ref={ref}\n type={type as 'button' | 'submit' | 'reset' | undefined}\n {...restProps}\n >\n <HeartStraight\n className={cn(\n 'mt-[1px] bg-transparent text-current transition-transform duration-200 ease-in-out',\n {\n 'group-hover:scale-[1.125]': !disabled,\n }\n )}\n color=\"inherit\"\n size=\"sm\"\n style={favorited || isActive ? 'fill' : 'regular'}\n />\n </button>\n );\n }\n);\n","import { cn } from '@evolve.ui/theme-system';\nimport { ButtonHTMLAttributes, CSSProperties, forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\n\nimport { outlinedCriticalClasses, outlinedNeutralClasses } from '../../../Button/buttonColorClasses';\nimport { HeartStraight } from '../../../Icons';\nimport { SaveConfetti, type SaveConfettiHandle } from '../../../SaveConfetti/SaveConfetti';\nimport { useFavoriteButtonState } from '../../hooks/useFavoriteButtonState';\n\n/**\n * Labeled-animated variant of the FavoriteButton component.\n *\n * Visually identical to the `labeled` variant but exposes `isWiggling` and\n * `isActivating` props that trigger the enhanced save-button nudge animations:\n *\n * - `isWiggling`: side-to-side wiggle (button), 3D twirl + bloom (heart icon),\n * color flash (critical fill pulse on heart when not favorited), and shimmer (label text).\n * During nudge the heart uses `fill` weight with critical color; at rest unfavorited uses `bold`.\n * Apply for ~1300ms, then reset to false to re-arm.\n *\n * - `isActivating`: pulse (button) and heart pop (icon). Apply for ~500ms.\n *\n * Animation CSS is driven by Tailwind `animate-*` utilities from the theme plugin\n * (`theme.extend.animation`) — no runtime style injection. The shimmer uses the\n * `.hui-fb-shimmer` component class from the plugin for its multi-property CSS.\n * The heart-color flash uses `.hui-fb-color-flash` to animate fill on the nested\n * SVG path via a descendant selector. Icon weight: `bold` when unfavorited at rest,\n * `fill` during nudge, favorited, or active press — matching the static `labeled` variant at rest.\n */\n\ntype Props = {\n /** Accessible label for screen readers. @default 'Favorite Toggle' */\n 'aria-label'?: string;\n /** Whether the item is currently favorited. */\n favorited?: boolean;\n /** Label text shown when favorited. @default 'Saved' */\n favoritedLabel?: string;\n /**\n * When true, fires the save-click animation (button pulse + heart pop) and\n * a mini confetti burst from the button center.\n * Reset to false after ~500ms to re-arm.\n */\n isActivating?: boolean;\n /**\n * When true, fires the nudge animation (wiggle + twirl + shimmer + color flash).\n * Reset to false after ~1300ms to re-arm.\n */\n isWiggling?: boolean;\n /** Label text shown when not favorited. @default 'Save' */\n label?: string;\n} & Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'style'>;\n\ntype AnimationPaletteCSSVar =\n | '--hui-save-color-critical-500'\n | '--hui-save-color-critical-300'\n | '--hui-save-color-critical-200'\n | '--hui-save-color-tertiary-400'\n | '--hui-save-color-tertiary-200';\n\nconst BUTTON_INLINE_STYLES: CSSProperties & Record<AnimationPaletteCSSVar, string> = {\n fontSize: 'var(--font-size-button-200)',\n fontWeight: 'var(--font-weight-button)',\n textTransform: 'var(--text-transform-button)' as CSSProperties['textTransform'],\n // Expose canonical animation palette tokens for downstream orchestration.\n '--hui-save-color-critical-500': 'var(--color-critical-500)',\n '--hui-save-color-critical-300': 'var(--color-critical-300)',\n '--hui-save-color-critical-200': 'var(--color-critical-200)',\n '--hui-save-color-tertiary-400': 'var(--color-tertiary-400)',\n '--hui-save-color-tertiary-200': 'var(--color-tertiary-200)',\n};\n\nexport const LabeledAnimatedFavoriteButton = forwardRef<HTMLButtonElement, Props>(\n (\n {\n 'aria-label': ariaLabel = 'Favorite Toggle',\n className,\n disabled,\n favorited,\n favoritedLabel = 'Saved',\n isActivating,\n isWiggling,\n label = 'Save',\n onClick,\n ...restProps\n },\n ref\n ) => {\n const { handleMouseDown, handleMouseLeave, handleMouseUp, isActive } = useFavoriteButtonState();\n\n const internalButtonRef = useRef<HTMLButtonElement>(null);\n const confettiRef = useRef<SaveConfettiHandle>(null);\n\n // Preserve consumer-facing ref contract while keeping internal button access for confetti\n useImperativeHandle(ref, () => internalButtonRef.current!);\n\n // Fire confetti burst when the save-click animation triggers\n useEffect(() => {\n if (!isActivating || !internalButtonRef.current) {\n return;\n }\n confettiRef.current?.fire(internalButtonRef.current);\n }, [isActivating]);\n\n return (\n <>\n <button\n aria-busy={false}\n aria-label={ariaLabel}\n aria-live=\"polite\"\n aria-pressed={favorited ?? false}\n className={cn(\n // Base — exact match to Button's base class string\n 'hui-focus-visible-outline relative flex max-w-full items-center justify-center whitespace-nowrap rounded-button text-center font-primary tracking-[var(--letter-spacing-button)] outline outline-1 -outline-offset-1 transition-colors disabled:text-text-disabled',\n // Color classes — same conditional used by LabeledFavoriteButton\n favorited ? outlinedCriticalClasses : outlinedNeutralClasses,\n // sm size\n 'gap-[4px] px-sm py-[13px] leading-[8px]',\n // Height override (matches LabeledFavoriteButton)\n 'h-[34px]',\n // Favorited state border\n { 'border-critical-500 text-critical-500': favorited },\n // Hover/active overrides — same className passed by LabeledFavoriteButton to Button\n 'hover:border-critical-700 hover:bg-critical-50 hover:text-critical-700',\n 'active:border-critical-900 active:bg-critical-100 active:text-critical-900',\n // Nudge animation — wiggle on button root + color flash on nested SVG path\n isWiggling && 'animate-saveButtonWiggle motion-reduce:animate-none',\n isWiggling && !favorited && 'hui-fb-color-flash',\n // Save-click animation — pulse on button root\n isActivating && 'animate-saveButtonPulse motion-reduce:animate-none',\n className\n )}\n data-hui-id=\"FavoriteButton\"\n disabled={disabled}\n onClick={onClick}\n onMouseDown={handleMouseDown}\n onMouseLeave={handleMouseLeave}\n onMouseUp={handleMouseUp}\n ref={internalButtonRef}\n style={BUTTON_INLINE_STYLES}\n {...restProps}\n >\n {/*\n * Perspective wrapper — 3D twirl animation targets this element.\n * Width/height matches Button's internal iconLeft container (14px for xs icon).\n */}\n <span\n className={cn(\n 'hui-fb-icon-frame relative flex items-center justify-center',\n // Critical color during nudge so fill weight reads red immediately (not surface-500 grey)\n isWiggling && !favorited && 'text-critical-500',\n // Nudge animation — 3D twirl + bloom on icon frame\n isWiggling && 'animate-saveHeartTwirlBloom motion-reduce:animate-none'\n )}\n style={{ height: '14px', perspective: '200px', width: '14px' }}\n >\n <HeartStraight\n className={cn(\n '[transform-style:preserve-3d]',\n // Save-click animation — heart pop on SVG element\n isActivating && 'animate-saveHeartPop motion-reduce:animate-none'\n )}\n color=\"inherit\"\n size=\"xs\"\n style={favorited || isActive || isWiggling ? 'fill' : 'bold'}\n />\n </span>\n {/* Shimmer wrapper — .hui-fb-shimmer bundles background-clip + gradient + animation */}\n <span\n className={cn('hui-fb-animated-label', isWiggling && 'hui-fb-shimmer animate-saveLabelShimmer')}\n >\n {favorited ? favoritedLabel : label}\n </span>\n </button>\n <SaveConfetti ref={confettiRef} />\n </>\n );\n }\n);\n\nLabeledAnimatedFavoriteButton.displayName = 'LabeledAnimatedFavoriteButton';\n","import { ComponentProps, forwardRef } from 'react';\n\nimport { CaretRight, HeartStraight } from '../../../Icons';\n\nexport const SmallHeartStraightIcon = forwardRef<SVGSVGElement, ComponentProps<typeof CaretRight>>((props, ref) => {\n return (\n <HeartStraight\n style=\"bold\"\n {...props}\n ref={ref}\n size=\"xs\"\n />\n );\n});\n","import { cn } from '@evolve.ui/theme-system';\nimport { ButtonHTMLAttributes, forwardRef } from 'react';\n\nimport { Button } from '../../../Button/Button';\nimport { useFavoriteButtonState } from '../../hooks/useFavoriteButtonState';\nimport { SmallHeartStraightIcon } from '../SmallHeartStraightIcon/SmallHeartStraightIcon';\n\n/**\n * Labeled variant of the FavoriteButton component\n * Displays a button with text and a heart icon\n */\n\ntype Props = {\n 'aria-label'?: string;\n favorited?: boolean;\n favoritedLabel?: string;\n label?: string;\n} & Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'style' | 'children'>;\n\nexport const LabeledFavoriteButton = forwardRef<HTMLButtonElement, Props>(\n (\n {\n 'aria-label': ariaLabel = 'Favorite Toggle',\n className,\n disabled,\n favorited,\n favoritedLabel = 'Saved',\n label = 'Save',\n onClick,\n ...restProps\n },\n ref\n ) => {\n const { handleMouseDown, handleMouseLeave, handleMouseUp, isActive } = useFavoriteButtonState();\n\n return (\n <Button\n aria-label={ariaLabel}\n aria-pressed={favorited ? true : false}\n className={cn(\n // Base styles\n 'h-[34px] text-surface-500',\n // Selected state\n {\n 'border-critical-500 text-critical-500': favorited,\n },\n // Hover state - same for both favorited and non-favorited\n 'hover:border-critical-700 hover:bg-critical-50 hover:text-critical-700',\n // Active states - different for favorited and non-favorited\n 'active:border-critical-900 active:bg-critical-100 active:text-critical-900',\n className\n )}\n data-hui-id=\"FavoriteButton\"\n disabled={disabled}\n iconLeft={SmallHeartStraightIcon}\n iconStyle={favorited || isActive ? 'fill' : 'bold'}\n onClick={onClick}\n onMouseDown={handleMouseDown}\n onMouseLeave={handleMouseLeave}\n onMouseUp={handleMouseUp}\n ref={ref}\n size=\"sm\"\n style={favorited ? 'critical' : 'neutral'}\n variant=\"outlined\"\n {...restProps}\n >\n {favorited ? favoritedLabel : label}\n </Button>\n );\n }\n);\n","import { forwardRef } from 'react';\n\nimport { Tooltip } from '../Tooltip/Tooltip';\nimport { IconOnlyFavoriteButton } from './components/IconOnlyFavoriteButton/IconOnlyFavoriteButton';\nimport { LabeledAnimatedFavoriteButton } from './components/LabeledAnimatedFavoriteButton/LabeledAnimatedFavoriteButton';\nimport { LabeledFavoriteButton } from './components/LabeledFavoriteButton/LabeledFavoriteButton';\nimport { FavoriteButtonProps } from './types/favoriteButton';\n\n/**\n * A button that allows users to mark an item as a favorite.\n * The button displays a heart icon that changes appearance when favorited.\n *\n * Be aware that if you're using the tooltip option, make sure to use a unique id\n * and set the `anchorSelect` prop on the tooltip to the id of the button.\n *\n * Available in four variants:\n * - `circle`: Shows only the heart icon in a circular button (default)\n * - `square`: Shows only the heart icon in a square button\n * - `labeled`: Shows a button with text and the heart icon\n * - `labeled-animated`: Shows a labeled button with animation-ready wrappers\n */\nexport const FavoriteButton = forwardRef<HTMLButtonElement, FavoriteButtonProps>((props, ref) => {\n const { isActivating, isWiggling, tooltipProps, variant = 'circle', ...restProps } = props;\n const { enabled = false, ...tooltipRestProps } = tooltipProps ?? {};\n\n // Use a mapping object to determine which component to render\n const variantComponents = {\n circle: (\n <IconOnlyFavoriteButton\n ref={ref}\n shape=\"circle\"\n {...restProps}\n />\n ),\n labeled: (\n <LabeledFavoriteButton\n ref={ref}\n {...restProps}\n />\n ),\n 'labeled-animated': (\n <LabeledAnimatedFavoriteButton\n ref={ref}\n isActivating={isActivating}\n isWiggling={isWiggling}\n {...restProps}\n />\n ),\n square: (\n <IconOnlyFavoriteButton\n ref={ref}\n shape=\"square\"\n {...restProps}\n />\n ),\n };\n\n return (\n <>\n {enabled && <Tooltip {...tooltipRestProps} />}\n {variantComponents[variant]}\n </>\n );\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { BodyPrimary, H2 } from "./Typography/Text.mjs";
|
|
2
|
+
import { Button } from "./Button.mjs";
|
|
3
|
+
import { t as Callout } from "./Callout-Olv0CM82.mjs";
|
|
4
|
+
import { ToggleSwitch } from "./toggleSwitch.mjs";
|
|
5
|
+
import { t as useFeatureFlags } from "./useFeatureFlags-Dmf_37f8.mjs";
|
|
6
|
+
import { cn } from "@evolve.ui/theme-system";
|
|
7
|
+
import { useCallback, useState } from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
//#region src/FeatureFlags/devTools/utils/cookies.ts
|
|
10
|
+
/**
|
|
11
|
+
* Parses document.cookie string into a key-value object
|
|
12
|
+
* Returns empty object during SSR when document is not available
|
|
13
|
+
*
|
|
14
|
+
* @returns Object mapping cookie names to their decoded values
|
|
15
|
+
*/
|
|
16
|
+
const parseCookies = () => {
|
|
17
|
+
if (typeof document === "undefined" || !document.cookie) return {};
|
|
18
|
+
return document.cookie.split("; ").reduce((acc, cookie) => {
|
|
19
|
+
const equalIndex = cookie.indexOf("=");
|
|
20
|
+
if (equalIndex === -1) return acc;
|
|
21
|
+
const name = cookie.substring(0, equalIndex);
|
|
22
|
+
const value = cookie.substring(equalIndex + 1);
|
|
23
|
+
try {
|
|
24
|
+
acc[decodeURIComponent(name.trim())] = decodeURIComponent(value.trim());
|
|
25
|
+
} catch {}
|
|
26
|
+
return acc;
|
|
27
|
+
}, {});
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Gets a specific cookie value by name
|
|
31
|
+
*/
|
|
32
|
+
const getCookie = (name) => {
|
|
33
|
+
return parseCookies()[name];
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Sets a cookie with the specified options
|
|
37
|
+
* Does nothing during SSR when document is not available
|
|
38
|
+
*/
|
|
39
|
+
const setCookie = (name, value, options) => {
|
|
40
|
+
if (typeof document === "undefined") return;
|
|
41
|
+
let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(String(value))}`;
|
|
42
|
+
if (options.expires) cookie += `; expires=${options.expires.toUTCString()}`;
|
|
43
|
+
if (options.path) cookie += `; path=${options.path}`;
|
|
44
|
+
if (options.sameSite) cookie += `; samesite=${options.sameSite}`;
|
|
45
|
+
if (options.secure) cookie += "; secure";
|
|
46
|
+
document.cookie = cookie;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Removes a cookie by setting its expiry to the past
|
|
50
|
+
*/
|
|
51
|
+
const removeCookie = (name, options) => {
|
|
52
|
+
setCookie(name, "", {
|
|
53
|
+
...options,
|
|
54
|
+
expires: /* @__PURE__ */ new Date(0)
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Reads cookies to find feature flag overrides
|
|
59
|
+
*
|
|
60
|
+
* Looks for cookies that match feature flag key names and returns
|
|
61
|
+
* a FeatureFlags object with the overridden values
|
|
62
|
+
*
|
|
63
|
+
* @param flagKeys - Array of flag keys to check for cookie overrides
|
|
64
|
+
* @example
|
|
65
|
+
* // If a cookie named "ff_team-1234_home-page-is-green" exists with value "true"
|
|
66
|
+
* const overrides = getFeatureFlagOverrides(['ff_team-1234_home-page-is-green']);
|
|
67
|
+
* // Returns: { 'ff_team-1234_home-page-is-green': true }
|
|
68
|
+
*/
|
|
69
|
+
const getFeatureFlagOverrides = (flagKeys) => {
|
|
70
|
+
const overrides = {};
|
|
71
|
+
flagKeys.forEach((flagKey) => {
|
|
72
|
+
const cookieValue = getCookie(flagKey);
|
|
73
|
+
if (cookieValue !== void 0 && cookieValue !== "") overrides[flagKey] = cookieValue === "true" || cookieValue === "1";
|
|
74
|
+
});
|
|
75
|
+
return overrides;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Sets a feature flag override cookie
|
|
79
|
+
*
|
|
80
|
+
* @param featureFlagKey - The feature flag key to override
|
|
81
|
+
* @param value - The boolean value to set
|
|
82
|
+
*
|
|
83
|
+
* Note: Cookies are set without a domain attribute to make them specific
|
|
84
|
+
* to the current hostname
|
|
85
|
+
*/
|
|
86
|
+
const setFeatureFlagOverride = (featureFlagKey, value) => {
|
|
87
|
+
const expires = /* @__PURE__ */ new Date();
|
|
88
|
+
expires.setDate(expires.getDate() + 30);
|
|
89
|
+
setCookie(featureFlagKey, value, {
|
|
90
|
+
expires,
|
|
91
|
+
path: "/",
|
|
92
|
+
sameSite: "lax",
|
|
93
|
+
secure: true
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Removes a feature flag override cookie
|
|
98
|
+
*
|
|
99
|
+
* @param featureFlagKey - The feature flag key to remove
|
|
100
|
+
*
|
|
101
|
+
* Note: Cookies are removed without a domain attribute since they're
|
|
102
|
+
* specific to the current hostname
|
|
103
|
+
*/
|
|
104
|
+
const removeFeatureFlagOverride = (featureFlagKey) => {
|
|
105
|
+
removeCookie(featureFlagKey, { path: "/" });
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Determines the source of a feature flag's value
|
|
109
|
+
*
|
|
110
|
+
* @param hasOverride - Whether the flag has a local cookie override
|
|
111
|
+
* @param currentValue - The current value from the remote feature-flag service (undefined means not set)
|
|
112
|
+
* @returns A human-readable string indicating the value source
|
|
113
|
+
*/
|
|
114
|
+
const getFeatureFlagValueSource = (hasOverride, currentValue) => {
|
|
115
|
+
if (hasOverride) return "Cookie Override";
|
|
116
|
+
return currentValue !== void 0 ? "Remote" : "Default (false)";
|
|
117
|
+
};
|
|
118
|
+
//#endregion
|
|
119
|
+
//#region src/FeatureFlags/devTools/FeatureFlagDevToolsUI.tsx
|
|
120
|
+
/**
|
|
121
|
+
* DevTool component for managing feature flag overrides via cookies
|
|
122
|
+
*
|
|
123
|
+
* This component displays all feature flags from the HammerUI provider and allows
|
|
124
|
+
* developers to locally override flag values using browser cookies for testing purposes.
|
|
125
|
+
*
|
|
126
|
+
* Features:
|
|
127
|
+
* - Displays all feature flags from your feature-flag service with their current values
|
|
128
|
+
* - Toggle switches to enable/disable flags locally via cookie overrides
|
|
129
|
+
* - Shows the source of each flag value (Remote, Cookie Override, or Default)
|
|
130
|
+
* - Remove button to clear cookie overrides and revert to remote values
|
|
131
|
+
* - Warning callout when changes require a page reload
|
|
132
|
+
* - Optional link to manage flags in your feature-flag service
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```tsx
|
|
136
|
+
* <FeatureFlagDevToolsUI />
|
|
137
|
+
* ```
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```tsx
|
|
141
|
+
* <FeatureFlagDevToolsUI className="max-w-full" manageFlagsUrl="https://flags.example.com" />
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
const FeatureFlagDevToolsUI = ({ className, manageFlagsUrl } = {}) => {
|
|
145
|
+
const featureFlagsObject = useFeatureFlags();
|
|
146
|
+
const featureFlags = Object.entries(featureFlagsObject);
|
|
147
|
+
const [, setOverrideVersion] = useState(0);
|
|
148
|
+
const overrides = getFeatureFlagOverrides(featureFlags.map(([key]) => key));
|
|
149
|
+
const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);
|
|
150
|
+
/**
|
|
151
|
+
* Forces component to re-render by incrementing version state
|
|
152
|
+
* Used after setting/removing cookie overrides to reflect changes in UI
|
|
153
|
+
*/
|
|
154
|
+
const forceRefresh = useCallback(() => {
|
|
155
|
+
setOverrideVersion((v) => v + 1);
|
|
156
|
+
}, []);
|
|
157
|
+
/**
|
|
158
|
+
* Handles toggle switch changes - sets a cookie override for the flag
|
|
159
|
+
* Note: Page reload is required for the override to take effect in the app
|
|
160
|
+
*/
|
|
161
|
+
const handleToggleChange = useCallback((key, toggled) => {
|
|
162
|
+
setFeatureFlagOverride(key, toggled);
|
|
163
|
+
setHasUnsavedChanges(true);
|
|
164
|
+
forceRefresh();
|
|
165
|
+
}, [forceRefresh]);
|
|
166
|
+
/**
|
|
167
|
+
* Removes a cookie override, reverting the flag to its remote value
|
|
168
|
+
* Note: Page reload is required for the change to take effect in the app
|
|
169
|
+
*/
|
|
170
|
+
const handleRemoveOverride = useCallback((key) => {
|
|
171
|
+
removeFeatureFlagOverride(key);
|
|
172
|
+
setHasUnsavedChanges(true);
|
|
173
|
+
forceRefresh();
|
|
174
|
+
}, [forceRefresh]);
|
|
175
|
+
/**
|
|
176
|
+
* Gets the effective toggle value - prioritizes cookie override over the remote value
|
|
177
|
+
* Falls back to false if no value is set
|
|
178
|
+
*/
|
|
179
|
+
const getToggleValue = useCallback((key, currentValue) => {
|
|
180
|
+
if (key in overrides) return overrides[key];
|
|
181
|
+
return currentValue ?? false;
|
|
182
|
+
}, [overrides]);
|
|
183
|
+
/**
|
|
184
|
+
* Checks if a flag has a local cookie override
|
|
185
|
+
*/
|
|
186
|
+
const hasOverride = useCallback((key) => {
|
|
187
|
+
return key in overrides;
|
|
188
|
+
}, [overrides]);
|
|
189
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
190
|
+
className: cn("mb-2xl flex w-3/4 flex-col gap-sm mdMax:w-full", className),
|
|
191
|
+
children: [
|
|
192
|
+
/* @__PURE__ */ jsx(H2, { children: "Feature Flags" }),
|
|
193
|
+
/* @__PURE__ */ jsx(Callout, {
|
|
194
|
+
message: "Feature flags are pulled from your feature-flag service. You can override them locally using cookie overrides for testing. Note: You'll need to refresh the page after toggling an override for the change to take effect.",
|
|
195
|
+
primaryButton: manageFlagsUrl ? {
|
|
196
|
+
onClick: () => window.open(manageFlagsUrl, "_blank"),
|
|
197
|
+
text: "Manage Feature Flags"
|
|
198
|
+
} : void 0,
|
|
199
|
+
status: "info",
|
|
200
|
+
title: "Feature Flag Overrides"
|
|
201
|
+
}),
|
|
202
|
+
hasUnsavedChanges && /* @__PURE__ */ jsx(Callout, {
|
|
203
|
+
message: "Feature flag overrides have been updated. Reload the page to apply the changes.",
|
|
204
|
+
primaryButton: {
|
|
205
|
+
onClick: () => window.location.reload(),
|
|
206
|
+
text: "Reload Page"
|
|
207
|
+
},
|
|
208
|
+
status: "warning",
|
|
209
|
+
title: "Reload Required"
|
|
210
|
+
}),
|
|
211
|
+
featureFlags.length === 0 ? /* @__PURE__ */ jsx(BodyPrimary, { children: "No feature flags available" }) : /* @__PURE__ */ jsxs("table", {
|
|
212
|
+
className: "w-full border-collapse border border-border-secondary",
|
|
213
|
+
children: [
|
|
214
|
+
/* @__PURE__ */ jsxs("colgroup", { children: [
|
|
215
|
+
/* @__PURE__ */ jsx("col", {}),
|
|
216
|
+
/* @__PURE__ */ jsx("col", { className: "w-64" }),
|
|
217
|
+
/* @__PURE__ */ jsx("col", { className: "w-56" })
|
|
218
|
+
] }),
|
|
219
|
+
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
220
|
+
/* @__PURE__ */ jsx("th", {
|
|
221
|
+
className: "border border-border-secondary p-2 text-left",
|
|
222
|
+
children: "Feature Flag"
|
|
223
|
+
}),
|
|
224
|
+
/* @__PURE__ */ jsx("th", {
|
|
225
|
+
className: "border border-border-secondary p-2 text-left",
|
|
226
|
+
children: "Current Value"
|
|
227
|
+
}),
|
|
228
|
+
/* @__PURE__ */ jsx("th", {
|
|
229
|
+
className: "border border-border-secondary p-2 text-left",
|
|
230
|
+
children: "Source"
|
|
231
|
+
})
|
|
232
|
+
] }) }),
|
|
233
|
+
/* @__PURE__ */ jsx("tbody", { children: featureFlags.map(([key, currentValue]) => {
|
|
234
|
+
const isOverridden = hasOverride(key);
|
|
235
|
+
const cellClassName = "border border-border-secondary p-2";
|
|
236
|
+
return /* @__PURE__ */ jsxs("tr", {
|
|
237
|
+
className: "odd:bg-background-secondary",
|
|
238
|
+
children: [
|
|
239
|
+
/* @__PURE__ */ jsx("td", {
|
|
240
|
+
className: cellClassName,
|
|
241
|
+
children: /* @__PURE__ */ jsx(BodyPrimary, { children: key })
|
|
242
|
+
}),
|
|
243
|
+
/* @__PURE__ */ jsx("td", {
|
|
244
|
+
className: cellClassName,
|
|
245
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
246
|
+
className: "flex items-center gap-xs",
|
|
247
|
+
children: [/* @__PURE__ */ jsx(ToggleSwitch, {
|
|
248
|
+
"aria-label": `Toggle ${key}`,
|
|
249
|
+
id: `toggle-${key}`,
|
|
250
|
+
isToggled: getToggleValue(key, currentValue),
|
|
251
|
+
onToggleChange: (toggled) => handleToggleChange(key, toggled ?? false)
|
|
252
|
+
}), isOverridden && /* @__PURE__ */ jsx(Button, {
|
|
253
|
+
onClick: () => handleRemoveOverride(key),
|
|
254
|
+
size: "sm",
|
|
255
|
+
style: "critical",
|
|
256
|
+
variant: "outlined",
|
|
257
|
+
children: "Remove"
|
|
258
|
+
})]
|
|
259
|
+
})
|
|
260
|
+
}),
|
|
261
|
+
/* @__PURE__ */ jsx("td", {
|
|
262
|
+
className: cellClassName,
|
|
263
|
+
children: /* @__PURE__ */ jsx(BodyPrimary, { children: getFeatureFlagValueSource(isOverridden, currentValue) })
|
|
264
|
+
})
|
|
265
|
+
]
|
|
266
|
+
}, key);
|
|
267
|
+
}) })
|
|
268
|
+
]
|
|
269
|
+
})
|
|
270
|
+
]
|
|
271
|
+
});
|
|
272
|
+
};
|
|
273
|
+
//#endregion
|
|
274
|
+
export { FeatureFlagDevToolsUI as t };
|
|
275
|
+
|
|
276
|
+
//# sourceMappingURL=FeatureFlagDevToolsUI-B13AuQ2A.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeatureFlagDevToolsUI-B13AuQ2A.mjs","names":[],"sources":["../src/FeatureFlags/devTools/utils/cookies.ts","../src/FeatureFlags/devTools/FeatureFlagDevToolsUI.tsx"],"sourcesContent":["/**\n * Parses document.cookie string into a key-value object\n * Returns empty object during SSR when document is not available\n *\n * @returns Object mapping cookie names to their decoded values\n */\nconst parseCookies = (): Record<string, string> => {\n // Check if we're in the browser environment\n if (typeof document === 'undefined' || !document.cookie) {\n return {};\n }\n\n return document.cookie.split('; ').reduce(\n (acc, cookie) => {\n const equalIndex = cookie.indexOf('=');\n if (equalIndex === -1) {\n return acc;\n }\n\n const name = cookie.substring(0, equalIndex);\n const value = cookie.substring(equalIndex + 1);\n\n try {\n acc[decodeURIComponent(name.trim())] = decodeURIComponent(value.trim());\n } catch {\n // Skip malformed cookies that can't be decoded\n }\n\n return acc;\n },\n {} as Record<string, string>\n );\n};\n\n/**\n * Gets a specific cookie value by name\n */\nconst getCookie = (name: string): string | undefined => {\n const cookies = parseCookies();\n return cookies[name];\n};\n\n/**\n * Sets a cookie with the specified options\n * Does nothing during SSR when document is not available\n */\nconst setCookie = (\n name: string,\n value: string | boolean,\n options: {\n expires?: Date;\n path?: string;\n sameSite?: 'strict' | 'lax' | 'none';\n secure?: boolean;\n }\n) => {\n // Check if we're in the browser environment\n if (typeof document === 'undefined') {\n return;\n }\n\n let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(String(value))}`;\n\n if (options.expires) {\n cookie += `; expires=${options.expires.toUTCString()}`;\n }\n\n if (options.path) {\n cookie += `; path=${options.path}`;\n }\n\n if (options.sameSite) {\n cookie += `; samesite=${options.sameSite}`;\n }\n\n if (options.secure) {\n cookie += '; secure';\n }\n\n document.cookie = cookie;\n};\n\n/**\n * Removes a cookie by setting its expiry to the past\n */\nconst removeCookie = (name: string, options: { path?: string }) => {\n setCookie(name, '', {\n ...options,\n expires: new Date(0),\n });\n};\n\n/**\n * Reads cookies to find feature flag overrides\n *\n * Looks for cookies that match feature flag key names and returns\n * a FeatureFlags object with the overridden values\n *\n * @param flagKeys - Array of flag keys to check for cookie overrides\n * @example\n * // If a cookie named \"ff_team-1234_home-page-is-green\" exists with value \"true\"\n * const overrides = getFeatureFlagOverrides(['ff_team-1234_home-page-is-green']);\n * // Returns: { 'ff_team-1234_home-page-is-green': true }\n */\nexport const getFeatureFlagOverrides = (flagKeys: string[]) => {\n const overrides: Record<string, boolean> = {};\n\n flagKeys.forEach((flagKey) => {\n const cookieValue = getCookie(flagKey);\n\n // Only include if cookie exists and has a non-empty value\n if (cookieValue !== undefined && cookieValue !== '') {\n // Convert cookie value to boolean\n // Handles: 'true', 'false', true, false, 1, 0, '1', '0'\n overrides[flagKey] = cookieValue === 'true' || cookieValue === '1';\n }\n });\n\n return overrides;\n};\n\n/**\n * Sets a feature flag override cookie\n *\n * @param featureFlagKey - The feature flag key to override\n * @param value - The boolean value to set\n *\n * Note: Cookies are set without a domain attribute to make them specific\n * to the current hostname\n */\nexport const setFeatureFlagOverride = (featureFlagKey: string, value: boolean) => {\n const expires = new Date();\n expires.setDate(expires.getDate() + 30); // 30 days expiration\n\n setCookie(featureFlagKey, value, {\n expires,\n path: '/',\n sameSite: 'lax',\n secure: true,\n });\n};\n\n/**\n * Removes a feature flag override cookie\n *\n * @param featureFlagKey - The feature flag key to remove\n *\n * Note: Cookies are removed without a domain attribute since they're\n * specific to the current hostname\n */\nexport const removeFeatureFlagOverride = (featureFlagKey: string) => {\n removeCookie(featureFlagKey, {\n path: '/',\n });\n};\n\n/**\n * Determines the source of a feature flag's value\n *\n * @param hasOverride - Whether the flag has a local cookie override\n * @param currentValue - The current value from the remote feature-flag service (undefined means not set)\n * @returns A human-readable string indicating the value source\n */\nexport const getFeatureFlagValueSource = (hasOverride: boolean, currentValue: boolean | undefined): string => {\n if (hasOverride) {\n return 'Cookie Override';\n }\n return currentValue !== undefined ? 'Remote' : 'Default (false)';\n};\n","import { cn } from '@evolve.ui/theme-system';\nimport { useCallback, useState } from 'react';\n\nimport { Button } from '../../Button/Button';\nimport { Callout } from '../../Callout/Callout';\nimport { ToggleSwitch } from '../../ToggleSwitch/ToggleSwitch';\nimport { BodyPrimary, H2 } from '../../Typography/Text/Text';\nimport { useFeatureFlags } from '../hooks/useFeatureFlags';\nimport {\n getFeatureFlagOverrides,\n getFeatureFlagValueSource,\n removeFeatureFlagOverride,\n setFeatureFlagOverride,\n} from './utils/cookies';\n\n/**\n * Props for FeatureFlagDevToolsUI component\n */\ntype Props = {\n /** Additional CSS classes to apply to the component */\n className?: string;\n /** URL of your feature-flag service's management console. When provided, a \"Manage Feature Flags\" button is rendered. */\n manageFlagsUrl?: string;\n};\n\n/**\n * DevTool component for managing feature flag overrides via cookies\n *\n * This component displays all feature flags from the HammerUI provider and allows\n * developers to locally override flag values using browser cookies for testing purposes.\n *\n * Features:\n * - Displays all feature flags from your feature-flag service with their current values\n * - Toggle switches to enable/disable flags locally via cookie overrides\n * - Shows the source of each flag value (Remote, Cookie Override, or Default)\n * - Remove button to clear cookie overrides and revert to remote values\n * - Warning callout when changes require a page reload\n * - Optional link to manage flags in your feature-flag service\n *\n * @example\n * ```tsx\n * <FeatureFlagDevToolsUI />\n * ```\n *\n * @example\n * ```tsx\n * <FeatureFlagDevToolsUI className=\"max-w-full\" manageFlagsUrl=\"https://flags.example.com\" />\n * ```\n */\nexport const FeatureFlagDevToolsUI = ({ className, manageFlagsUrl }: Props = {}) => {\n // Get all feature flags from the HammerUI provider context\n const featureFlagsObject = useFeatureFlags();\n const featureFlags = Object.entries(featureFlagsObject) as Array<[string, boolean | undefined]>;\n\n // State for forcing component re-render when overrides change\n const [, setOverrideVersion] = useState(0);\n const flagKeys = featureFlags.map(([key]) => key);\n\n // Get current cookie overrides for all flags\n const overrides = getFeatureFlagOverrides(flagKeys);\n\n // Track if there are unsaved changes that require a page reload\n const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);\n\n /**\n * Forces component to re-render by incrementing version state\n * Used after setting/removing cookie overrides to reflect changes in UI\n */\n const forceRefresh = useCallback(() => {\n setOverrideVersion((v) => v + 1);\n }, []);\n\n /**\n * Handles toggle switch changes - sets a cookie override for the flag\n * Note: Page reload is required for the override to take effect in the app\n */\n const handleToggleChange = useCallback(\n (key: string, toggled: boolean) => {\n setFeatureFlagOverride(key, toggled);\n setHasUnsavedChanges(true);\n forceRefresh();\n },\n [forceRefresh]\n );\n\n /**\n * Removes a cookie override, reverting the flag to its remote value\n * Note: Page reload is required for the change to take effect in the app\n */\n const handleRemoveOverride = useCallback(\n (key: string) => {\n removeFeatureFlagOverride(key);\n setHasUnsavedChanges(true);\n forceRefresh();\n },\n [forceRefresh]\n );\n\n /**\n * Gets the effective toggle value - prioritizes cookie override over the remote value\n * Falls back to false if no value is set\n */\n const getToggleValue = useCallback(\n (key: string, currentValue: boolean | undefined): boolean => {\n if (key in overrides) {\n return overrides[key];\n }\n return currentValue ?? false;\n },\n [overrides]\n );\n\n /**\n * Checks if a flag has a local cookie override\n */\n const hasOverride = useCallback(\n (key: string): boolean => {\n return key in overrides;\n },\n [overrides]\n );\n\n return (\n <div className={cn('mb-2xl flex w-3/4 flex-col gap-sm mdMax:w-full', className)}>\n <H2>Feature Flags</H2>\n\n {/* Info callout explaining the feature flag override system */}\n <Callout\n message=\"Feature flags are pulled from your feature-flag service. You can override them locally using cookie overrides for testing. Note: You'll need to refresh the page after toggling an override for the change to take effect.\"\n primaryButton={\n manageFlagsUrl\n ? {\n onClick: () => window.open(manageFlagsUrl, '_blank'),\n text: 'Manage Feature Flags',\n }\n : undefined\n }\n status=\"info\"\n title=\"Feature Flag Overrides\"\n />\n\n {/* Warning callout shown when changes have been made but page hasn't been reloaded */}\n {hasUnsavedChanges && (\n <Callout\n message=\"Feature flag overrides have been updated. Reload the page to apply the changes.\"\n primaryButton={{\n onClick: () => window.location.reload(),\n text: 'Reload Page',\n }}\n status=\"warning\"\n title=\"Reload Required\"\n />\n )}\n\n {/* Empty state - no feature flags available */}\n {featureFlags.length === 0 ? (\n <BodyPrimary>No feature flags available</BodyPrimary>\n ) : (\n // Table showing all feature flags with their values and controls\n <table className=\"w-full border-collapse border border-border-secondary\">\n <colgroup>\n <col />\n <col className=\"w-64\" />\n <col className=\"w-56\" />\n </colgroup>\n <thead>\n <tr>\n <th className=\"border border-border-secondary p-2 text-left\">Feature Flag</th>\n <th className=\"border border-border-secondary p-2 text-left\">Current Value</th>\n <th className=\"border border-border-secondary p-2 text-left\">Source</th>\n </tr>\n </thead>\n <tbody>\n {featureFlags.map(([key, currentValue]) => {\n const isOverridden = hasOverride(key);\n const cellClassName = 'border border-border-secondary p-2';\n\n return (\n <tr\n className=\"odd:bg-background-secondary\"\n key={key}\n >\n {/* Flag name column */}\n <td className={cellClassName}>\n <BodyPrimary>{key}</BodyPrimary>\n </td>\n\n {/* Toggle switch and remove button column */}\n <td className={cellClassName}>\n <div className=\"flex items-center gap-xs\">\n {/* Toggle to set cookie override */}\n <ToggleSwitch\n aria-label={`Toggle ${key}`}\n id={`toggle-${key}`}\n isToggled={getToggleValue(key, currentValue)}\n onToggleChange={(toggled) => handleToggleChange(key, toggled ?? false)}\n />\n {/* Remove button only shows when a cookie override exists */}\n {isOverridden && (\n <Button\n onClick={() => handleRemoveOverride(key)}\n size=\"sm\"\n style=\"critical\"\n variant=\"outlined\"\n >\n Remove\n </Button>\n )}\n </div>\n </td>\n\n {/* Source column - shows where the value comes from */}\n <td className={cellClassName}>\n <BodyPrimary>\n {getFeatureFlagValueSource(isOverridden, currentValue)}\n </BodyPrimary>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n )}\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//#region src/FeatureFlags/devTools/FeatureFlagDevToolsUI.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Props for FeatureFlagDevToolsUI component
|
|
4
|
+
*/
|
|
5
|
+
type Props = {
|
|
6
|
+
/** Additional CSS classes to apply to the component */className?: string; /** URL of your feature-flag service's management console. When provided, a "Manage Feature Flags" button is rendered. */
|
|
7
|
+
manageFlagsUrl?: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* DevTool component for managing feature flag overrides via cookies
|
|
11
|
+
*
|
|
12
|
+
* This component displays all feature flags from the HammerUI provider and allows
|
|
13
|
+
* developers to locally override flag values using browser cookies for testing purposes.
|
|
14
|
+
*
|
|
15
|
+
* Features:
|
|
16
|
+
* - Displays all feature flags from your feature-flag service with their current values
|
|
17
|
+
* - Toggle switches to enable/disable flags locally via cookie overrides
|
|
18
|
+
* - Shows the source of each flag value (Remote, Cookie Override, or Default)
|
|
19
|
+
* - Remove button to clear cookie overrides and revert to remote values
|
|
20
|
+
* - Warning callout when changes require a page reload
|
|
21
|
+
* - Optional link to manage flags in your feature-flag service
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* <FeatureFlagDevToolsUI />
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* <FeatureFlagDevToolsUI className="max-w-full" manageFlagsUrl="https://flags.example.com" />
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
declare const FeatureFlagDevToolsUI: ({
|
|
34
|
+
className,
|
|
35
|
+
manageFlagsUrl
|
|
36
|
+
}?: Props) => import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
//#endregion
|
|
38
|
+
export { FeatureFlagDevToolsUI as t };
|
|
39
|
+
//# sourceMappingURL=FeatureFlagDevToolsUI-CutvngLI.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeatureFlagDevToolsUI-CutvngLI.d.cts","names":[],"sources":["../src/FeatureFlags/devTools/FeatureFlagDevToolsUI.tsx"],"mappings":";;;;KAkBK,KAAA;EAED,uDAAA,SAAA,WA6BS;EA3BT,cAAc;AAAA;;;;;;;;;;;;;;AA2MjB;;;;;;;;;;;cAhLY,qBAAA;EAAyB,SAAA;EAAA;AAAA,IAA+B,KAAA,iCAAU,GAAA,CAAA,OAAA"}
|