@evolve.ui/core-components 1.0.1 → 1.2.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/{BottomSheet-ZV_eq3xt.mjs → BottomSheet-CNVLnEoD.mjs} +3 -3
- package/BottomSheet-CNVLnEoD.mjs.map +1 -0
- package/{BottomSheet-emWP9Fct.cjs → BottomSheet-D5w0WZDl.cjs} +3 -3
- package/BottomSheet-D5w0WZDl.cjs.map +1 -0
- package/Button.cjs +1 -1
- package/Button.mjs +1 -1
- package/{CookieConsent-CIwm0bTz.mjs → CookieConsent-B9dg9WdC.mjs} +2 -2
- package/{CookieConsent-CIwm0bTz.mjs.map → CookieConsent-B9dg9WdC.mjs.map} +1 -1
- package/{CookieConsent-PIglB_bb.cjs → CookieConsent-BSXJHMwX.cjs} +2 -2
- package/{CookieConsent-PIglB_bb.cjs.map → CookieConsent-BSXJHMwX.cjs.map} +1 -1
- package/{Drawer-9HFG45OA.cjs → Drawer-3rA9dGCl.cjs} +2 -2
- package/{Drawer-9HFG45OA.cjs.map → Drawer-3rA9dGCl.cjs.map} +1 -1
- package/Drawer-CFZbwg0R.d.cts.map +1 -1
- package/Drawer-CFZbwg0R.d.mts.map +1 -1
- package/{Drawer-BkCPfK6P.mjs → Drawer-DzKEmewj.mjs} +2 -2
- package/{Drawer-BkCPfK6P.mjs.map → Drawer-DzKEmewj.mjs.map} +1 -1
- package/{FavoriteButton-CC3qL0lR.mjs → FavoriteButton-7nK77lQP.mjs} +6 -6
- package/FavoriteButton-7nK77lQP.mjs.map +1 -0
- package/{FavoriteButton-BGF-3dze.d.cts → FavoriteButton-B8r_qtlj.d.cts} +2 -2
- package/{FavoriteButton-BGF-3dze.d.cts.map → FavoriteButton-B8r_qtlj.d.cts.map} +1 -1
- package/{FavoriteButton-DliYzkfu.cjs → FavoriteButton-BkIaWfgD.cjs} +6 -6
- package/FavoriteButton-BkIaWfgD.cjs.map +1 -0
- package/{FavoriteButton-BZEGWrRo.d.mts → FavoriteButton-hIkGjcKH.d.mts} +2 -2
- package/{FavoriteButton-BZEGWrRo.d.mts.map → FavoriteButton-hIkGjcKH.d.mts.map} +1 -1
- package/{FileUpload-p_pl9NXr.mjs → FileUpload-BfZOMsLs.mjs} +6 -6
- package/FileUpload-BfZOMsLs.mjs.map +1 -0
- package/{FileUpload--e_UJ_ek.cjs → FileUpload-gjRbkgrL.cjs} +6 -6
- package/FileUpload-gjRbkgrL.cjs.map +1 -0
- package/IconButton.cjs +1 -1
- package/IconButton.mjs +1 -1
- package/{ImageSlider-BidXfnLj.cjs → ImageSlider-CAgxQffP.cjs} +3 -3
- package/ImageSlider-CAgxQffP.cjs.map +1 -0
- package/{ImageSlider-CDrg_TbL.mjs → ImageSlider-fdrJ6lIJ.mjs} +3 -3
- package/ImageSlider-fdrJ6lIJ.mjs.map +1 -0
- package/InfoIconTooltip.cjs +1 -1
- package/InfoIconTooltip.cjs.map +1 -1
- package/InfoIconTooltip.mjs +1 -1
- package/InfoIconTooltip.mjs.map +1 -1
- package/InlineButton-CRLbNJZ3.d.mts.map +1 -1
- package/InlineButton-DoXGLiSE.d.cts.map +1 -1
- package/Input.cjs +1 -1
- package/Input.cjs.map +1 -1
- package/Input.mjs +1 -1
- package/Input.mjs.map +1 -1
- package/JumpMenu-BXYZnPIH.cjs.map +1 -1
- package/JumpMenu-DcZjAiej.mjs.map +1 -1
- package/{Menu-Cxu8CaX1.mjs → Menu-Bn4smlEe.mjs} +2 -2
- package/Menu-Bn4smlEe.mjs.map +1 -0
- package/{Menu-ClUogmwE.cjs → Menu-DuDhtoNP.cjs} +2 -2
- package/Menu-DuDhtoNP.cjs.map +1 -0
- package/Modal-DM0aXJZ5.d.cts.map +1 -1
- package/Modal-DM0aXJZ5.d.mts.map +1 -1
- package/{Modal-C6gatdtT.mjs → Modal-DtxWd7Le.mjs} +3 -2
- package/{Modal-C6gatdtT.mjs.map → Modal-DtxWd7Le.mjs.map} +1 -1
- package/{Modal-CiBqXyiK.cjs → Modal-q4HhBAQU.cjs} +3 -2
- package/Modal-q4HhBAQU.cjs.map +1 -0
- package/{Pagination-bAtbN478.cjs → Pagination-Denb9_zB.cjs} +2 -2
- package/{Pagination-bAtbN478.cjs.map → Pagination-Denb9_zB.cjs.map} +1 -1
- package/{Pagination-DIpGKMLz.mjs → Pagination-Dyfeys4B.mjs} +2 -2
- package/{Pagination-DIpGKMLz.mjs.map → Pagination-Dyfeys4B.mjs.map} +1 -1
- package/PhoneInput-B5pkpkdt.mjs.map +1 -1
- package/PhoneInput-BXnkBME4.d.mts.map +1 -1
- package/PhoneInput-Bkrbrins.d.cts.map +1 -1
- package/PhoneInput-CUMPOSxJ.cjs.map +1 -1
- package/{ProgressCircle-BC81D9sU.cjs → ProgressCircle-B6R4dxoV.cjs} +2 -2
- package/{ProgressCircle-BC81D9sU.cjs.map → ProgressCircle-B6R4dxoV.cjs.map} +1 -1
- package/{ProgressCircle-ae8cvZhe.mjs → ProgressCircle-zSai1HTT.mjs} +2 -2
- package/{ProgressCircle-ae8cvZhe.mjs.map → ProgressCircle-zSai1HTT.mjs.map} +1 -1
- package/SearchInput-DYIPC8Cd.d.cts.map +1 -1
- package/SearchInput-IfEWePDQ.d.mts.map +1 -1
- package/{Select-BkZu8OLs.mjs → Select-CH_ZN88G.mjs} +2 -2
- package/Select-CH_ZN88G.mjs.map +1 -0
- package/{Select-BXDjzyDs.cjs → Select-DCCcyLT4.cjs} +2 -2
- package/Select-DCCcyLT4.cjs.map +1 -0
- package/{SplitButton-DcmmLW8j.cjs → SplitButton-B_Y253RU.cjs} +2 -2
- package/{SplitButton-DcmmLW8j.cjs.map → SplitButton-B_Y253RU.cjs.map} +1 -1
- package/{SplitButton-WE5ymwCQ.mjs → SplitButton-_poP9Ykq.mjs} +2 -2
- package/{SplitButton-WE5ymwCQ.mjs.map → SplitButton-_poP9Ykq.mjs.map} +1 -1
- package/{Table-M-rANdMt.mjs → Table-CQGtDpvH.mjs} +3 -3
- package/{Table-M-rANdMt.mjs.map → Table-CQGtDpvH.mjs.map} +1 -1
- package/{Table-CLlDragJ.cjs → Table-D4UYosb1.cjs} +3 -3
- package/{Table-CLlDragJ.cjs.map → Table-D4UYosb1.cjs.map} +1 -1
- package/Typography/InlineButton.cjs +1 -1
- package/Typography/InlineButton.cjs.map +1 -1
- package/Typography/InlineButton.mjs +1 -1
- package/Typography/InlineButton.mjs.map +1 -1
- package/{ViewMore-BBoUvo7p.cjs → ViewMore-BcoSRZSl.cjs} +14 -1
- package/ViewMore-BcoSRZSl.cjs.map +1 -0
- package/{ViewMore-BrZPuE4E.mjs → ViewMore-Be0TQZ_2.mjs} +14 -1
- package/ViewMore-Be0TQZ_2.mjs.map +1 -0
- package/bottomSheet.cjs +1 -1
- package/bottomSheet.mjs +1 -1
- package/{buttonColorClasses-C3hg1at8.cjs → buttonColorClasses-CQQmLYfk.cjs} +4 -4
- package/buttonColorClasses-CQQmLYfk.cjs.map +1 -0
- package/{buttonColorClasses-B7OU4aQA.mjs → buttonColorClasses-CQnqAJXl.mjs} +4 -4
- package/buttonColorClasses-CQnqAJXl.mjs.map +1 -0
- package/card/components/createFavoriteButton.cjs +1 -1
- package/card/components/createFavoriteButton.mjs +1 -1
- package/cookieConsent.cjs +1 -1
- package/cookieConsent.mjs +1 -1
- package/drawer.cjs +1 -1
- package/drawer.mjs +1 -1
- package/evolve-ui.entries.json +556 -0
- package/favoriteButton.cjs +1 -1
- package/favoriteButton.d.cts +1 -1
- package/favoriteButton.d.mts +1 -1
- package/favoriteButton.mjs +1 -1
- package/featureFlags/hooks.d.cts +1 -1
- package/featureFlags/hooks.d.mts +1 -1
- package/fileUpload.cjs +1 -1
- package/fileUpload.mjs +1 -1
- package/imageSlider.cjs +1 -1
- package/imageSlider.mjs +1 -1
- package/index.cjs +14 -14
- package/index.d.cts +1 -1
- package/index.d.mts +1 -1
- package/index.mjs +14 -14
- package/menu.cjs +1 -1
- package/menu.mjs +1 -1
- package/modal/useCloseModal.cjs +2 -1
- package/modal/useCloseModal.cjs.map +1 -1
- package/modal/useCloseModal.mjs +2 -1
- package/modal/useCloseModal.mjs.map +1 -1
- package/modal.cjs +1 -1
- package/modal.mjs +1 -1
- package/package.json +2 -4
- package/pagination.cjs +1 -1
- package/pagination.mjs +1 -1
- package/progressCircle.cjs +1 -1
- package/progressCircle.mjs +1 -1
- package/searchInput.cjs +4 -4
- package/searchInput.cjs.map +1 -1
- package/searchInput.mjs +4 -4
- package/searchInput.mjs.map +1 -1
- package/select.cjs +1 -1
- package/select.mjs +1 -1
- package/selectAsync.cjs +1 -1
- package/selectAsync.mjs +1 -1
- package/selectAsyncCreatable.cjs +1 -1
- package/selectAsyncCreatable.mjs +1 -1
- package/selectCreatable.cjs +1 -1
- package/selectCreatable.mjs +1 -1
- package/splitButton.cjs +1 -1
- package/splitButton.mjs +1 -1
- package/src/Accordion/Accordion.tsx +233 -0
- package/src/AddressDisplay/AddressDisplay.tsx +43 -0
- package/src/AddressDisplay/components/addressComponents.tsx +111 -0
- package/src/AddressDisplay/components/addressField.tsx +25 -0
- package/src/AddressDisplay/components/addressSection.tsx +8 -0
- package/src/AddressDisplay/components/getCountryValue.tsx +31 -0
- package/src/AddressDisplay/types.ts +26 -0
- package/src/AutomatedCarousel/AutomatedCarousel.tsx +163 -0
- package/src/AutomatedCarousel/automatedCarousel.types.ts +7 -0
- package/src/AutomatedCarousel/components/CarouselProgressBar/CarouselProgressBar.tsx +139 -0
- package/src/AutomatedCarousel/components/CarouselProgressBar/components/CarouselProgressBarUnit/CarouselProgressBarUnit.tsx +165 -0
- package/src/Badge/Badge.tsx +104 -0
- package/src/Badge/Badge.types.ts +58 -0
- package/src/Badge/ItemBadge.tsx +97 -0
- package/src/Badge/LiveStatusBadge.tsx +93 -0
- package/src/BannerNotification/BannerNotification.tsx +157 -0
- package/src/BannerNotification/components/BannerNotificationSkeleton.tsx +39 -0
- package/src/BannerNotification/components/CalloutIcon/BannerIcon.tsx +48 -0
- package/src/BannerNotification/utils/getRandomTooltipId.ts +3 -0
- package/src/BottomSheet/BottomSheet.tsx +476 -0
- package/src/BottomSheet/components/BottomSheetBackdrop/BottomSheetBackdrop.tsx +47 -0
- package/src/BottomSheet/components/BottomSheetContentArea/BottomSheetContentArea.tsx +93 -0
- package/src/BottomSheet/components/BottomSheetOverlay/BottomSheetOverlayTranslate3d.tsx +199 -0
- package/src/BottomSheet/components/SheetDescription/SheetDescription.tsx +22 -0
- package/src/BottomSheet/components/SheetTitle/SheetTitle.tsx +21 -0
- package/src/BottomSheet/components/index.tsx +5 -0
- package/src/BottomSheet/hooks/index.tsx +13 -0
- package/src/BottomSheet/hooks/useAriaHider.tsx +91 -0
- package/src/BottomSheet/hooks/useBottomSheetServices.tsx +224 -0
- package/src/BottomSheet/hooks/useDragHandler.tsx +282 -0
- package/src/BottomSheet/hooks/useFocusTrap.tsx +113 -0
- package/src/BottomSheet/hooks/useLayoutEffect.tsx +4 -0
- package/src/BottomSheet/hooks/useOptimizedResizeObserver.tsx +94 -0
- package/src/BottomSheet/hooks/useOptimizedScrollState.tsx +87 -0
- package/src/BottomSheet/hooks/useReady.tsx +34 -0
- package/src/BottomSheet/hooks/useReducedMotion.tsx +22 -0
- package/src/BottomSheet/hooks/useScrollLock.tsx +143 -0
- package/src/BottomSheet/hooks/useSnapPoints.tsx +355 -0
- package/src/BottomSheet/hooks/useSpring.tsx +47 -0
- package/src/BottomSheet/hooks/useSpringInterpolationsTranslate3d.tsx +101 -0
- package/src/BottomSheet/index.tsx +237 -0
- package/src/BottomSheet/state/atoms.ts +147 -0
- package/src/BottomSheet/state/useBottomSheetStateMachine.ts +246 -0
- package/src/BottomSheet/types.ts +172 -0
- package/src/BottomSheet/utils.ts +65 -0
- package/src/Breadcrumbs/Breadcrumbs.tsx +126 -0
- package/src/Button/Button.tsx +164 -0
- package/src/Button/Button.types.ts +80 -0
- package/src/Button/buttonColorClasses.ts +58 -0
- package/src/Callout/Callout.tsx +136 -0
- package/src/Callout/Callout.types.ts +29 -0
- package/src/Callout/components/CalloutIcon/CalloutIcon.tsx +56 -0
- package/src/Card/CardGrid.tsx +263 -0
- package/src/Card/SingleCard.tsx +22 -0
- package/src/Card/cardFactory.tsx +176 -0
- package/src/Card/components/createBadge.tsx +34 -0
- package/src/Card/components/createFavoriteButton.tsx +40 -0
- package/src/Card/components/createImage.tsx +64 -0
- package/src/Card/components/createInfo.tsx +84 -0
- package/src/Card/components/createName.tsx +63 -0
- package/src/Card/components/createPriceStatus.tsx +100 -0
- package/src/Card/components/types.ts +4 -0
- package/src/Card/hooks/useCardVisibilityTracking.ts +82 -0
- package/src/Card/sharedProps.ts +12 -0
- package/src/Card/types.ts +62 -0
- package/src/Carousel/Carousel.tsx +513 -0
- package/src/Carousel/Carousel.types.ts +43 -0
- package/src/Carousel/Carousel.utils.ts +63 -0
- package/src/Carousel/components/DotButton/DotButton.tsx +42 -0
- package/src/Carousel/components/NavigationButtons/NavigationButtons.tsx +77 -0
- package/src/Carousel/components/TitleSection/TitleSection.tsx +61 -0
- package/src/Carousel/components/TitleSection/components/SubHeaderLeft/SubHeaderLeft.tsx +53 -0
- package/src/Carousel/components/TitleSection/components/Title/Title.tsx +46 -0
- package/src/Carousel/index.ts +2 -0
- package/src/Carousel/testUtils.ts +10 -0
- package/src/Chips/Chip.tsx +153 -0
- package/src/Chips/ChipGroup.tsx +173 -0
- package/src/Chips/SuggestionChip.tsx +15 -0
- package/src/Chips/chipTypes.ts +113 -0
- package/src/Chips/index.ts +4 -0
- package/src/ChoiceListItem/Checkbox.tsx +69 -0
- package/src/ChoiceListItem/Radio.tsx +61 -0
- package/src/ChoiceListItem/choiceListItem.tsx +99 -0
- package/src/ChoiceListItem/common.tsx +148 -0
- package/src/ChoiceListItem/index.ts +3 -0
- package/src/Collapsible/Collapsible.tsx +58 -0
- package/src/Confetti/Confetti.tsx +270 -0
- package/src/Confetti/index.ts +2 -0
- package/src/ContentPager/ContentPager.tsx +189 -0
- package/src/ContentPager/components/Page.tsx +24 -0
- package/src/CookieConsent/components/CookieCategoryRow/CookieCategoryRow.tsx +30 -0
- package/src/CookieConsent/components/CookieConsent/CookieConsent.tsx +74 -0
- package/src/CookieConsent/components/CookieConsentBanner/CookieConsentBanner.tsx +51 -0
- package/src/CookieConsent/components/CookieConsentModal/CookieConsentModal.tsx +64 -0
- package/src/CookieConsent/hooks/useCookieConsent.ts +170 -0
- package/src/CookieConsent/hooks/useCookieConsentState.ts +142 -0
- package/src/CookieConsent/index.ts +16 -0
- package/src/CookieConsent/types/cookieConsent.types.ts +79 -0
- package/src/CookieConsent/types/index.ts +7 -0
- package/src/Countdown/Countdown.tsx +161 -0
- package/src/Countdown/Countdown.types.ts +4 -0
- package/src/Countdown/hooks/useGetCountdown.ts +103 -0
- package/src/DateTimeInput/dateInput/DateInput.tsx +199 -0
- package/src/DateTimeInput/datePicker/DatePicker.tsx +138 -0
- package/src/DateTimeInput/datePicker/components/calendar/Calendar.tsx +72 -0
- package/src/DateTimeInput/datePicker/index.ts +2 -0
- package/src/DateTimeInput/timeInput/TimeInput.tsx +128 -0
- package/src/DateTimeInput/timePicker/TimePicker.tsx +118 -0
- package/src/DateTimeInput/timePicker/components/TimePopover/AmPmSwitch.tsx +103 -0
- package/src/DateTimeInput/timePicker/components/TimePopover/TimeFieldInput.tsx +26 -0
- package/src/DateTimeInput/timePicker/components/TimePopover/TimePopover.tsx +84 -0
- package/src/DateTimeInput/timePicker/components/TimePopover/TimePopover.utils.ts +67 -0
- package/src/DateTimeInput/timePicker/components/TimePopover/TimePopoverActions.tsx +26 -0
- package/src/DateTimeInput/timePicker/index.ts +2 -0
- package/src/DateTimeInput/utils/getDisplayDate.ts +15 -0
- package/src/DateTimeInput/utils/getDisplayTime.ts +15 -0
- package/src/DateTimeInput/utils/index.ts +2 -0
- package/src/DateTimeInput/utils/parseTimeValue.ts +54 -0
- package/src/Drawer/Drawer.tsx +443 -0
- package/src/Drawer/atoms.ts +4 -0
- package/src/Drawer/components/DialogActions/DialogActions.tsx +33 -0
- package/src/Drawer/components/DialogContent/DialogContent.tsx +80 -0
- package/src/Drawer/components/DialogHeader/DialogHeader.tsx +68 -0
- package/src/EducationalPopover/EducationalPopover.tsx +174 -0
- package/src/FavoriteButton/FavoriteButton.tsx +64 -0
- package/src/FavoriteButton/components/IconOnlyFavoriteButton/IconOnlyFavoriteButton.tsx +83 -0
- package/src/FavoriteButton/components/LabeledAnimatedFavoriteButton/LabeledAnimatedFavoriteButton.tsx +186 -0
- package/src/FavoriteButton/components/LabeledFavoriteButton/LabeledFavoriteButton.tsx +71 -0
- package/src/FavoriteButton/components/SmallHeartStraightIcon/SmallHeartStraightIcon.tsx +14 -0
- package/src/FavoriteButton/hooks/useFavoriteButtonState.ts +30 -0
- package/src/FavoriteButton/index.ts +2 -0
- package/src/FavoriteButton/types/favoriteButton.ts +87 -0
- package/src/FeatureFlags/devTools/FeatureFlagDevToolsUI.tsx +226 -0
- package/src/FeatureFlags/devTools/getFeatureFlagCookieOverrides.ts +30 -0
- package/src/FeatureFlags/devTools/utils/cookies.ts +169 -0
- package/src/FeatureFlags/hooks/index.ts +2 -0
- package/src/FeatureFlags/hooks/useFeatureFlag.tsx +19 -0
- package/src/FeatureFlags/hooks/useFeatureFlags.tsx +15 -0
- package/src/FileUpload/components/FileCard/FileCard.tsx +50 -0
- package/src/FileUpload/components/FileDropzone/FileDropzone.tsx +221 -0
- package/src/FileUpload/components/FileDropzone/components/DropzoneContent/DropzoneContent.tsx +28 -0
- package/src/FileUpload/components/FileDropzone/components/DropzoneContent/DropzoneText.tsx +81 -0
- package/src/FileUpload/components/FileDropzone/components/FileDropzoneDebugger/FileDropzoneDebugger.tsx +40 -0
- package/src/FileUpload/components/FileDropzone/components/FileDropzoneDebugger/FileRejectionsDisplay.tsx +110 -0
- package/src/FileUpload/components/FileDropzoneOverlay/FileDropzoneOverlay.tsx +183 -0
- package/src/FileUpload/components/FileDropzoneOverlay/components/OverlayDropzoneContent.tsx +146 -0
- package/src/FileUpload/components/FileDropzoneOverlay/components/OverlayDropzoneDragText.tsx +42 -0
- package/src/FileUpload/components/FileDropzoneOverlay/styles.ts +79 -0
- package/src/FileUpload/components/FilePreviewList/FilePreviewList.tsx +251 -0
- package/src/FileUpload/components/FilePreviewList/virtualizerComponents/FilePreviewVirtualizedList/FilePreviewVirtualizedList.tsx +88 -0
- package/src/FileUpload/components/FileUpload/FileUpload.tsx +63 -0
- package/src/FileUpload/components/FileUploadCanvas/FileUploadCanvas.tsx +125 -0
- package/src/FileUpload/components/GridFileCard/GridFileCard.tsx +364 -0
- package/src/FileUpload/components/GridFileCard/utils/sortable.ts +48 -0
- package/src/FileUpload/components/ListFileCard/ListFileCard.tsx +259 -0
- package/src/FileUpload/components/types.ts +78 -0
- package/src/FileUpload/hooks/filePreview/useImageFilePreviewUrl.ts +62 -0
- package/src/FileUpload/hooks/index.ts +11 -0
- package/src/FileUpload/hooks/upload/useHandleDragEnter/useHandleDragEnter.ts +154 -0
- package/src/FileUpload/hooks/upload/useHandleDrop/createFileRejectionHelpers.ts +273 -0
- package/src/FileUpload/hooks/upload/useHandleDrop/useHandleDrop.ts +153 -0
- package/src/FileUpload/hooks/upload/useUploadAvailability/useUploadAvailability.ts +44 -0
- package/src/FileUpload/hooks/validation/createDropzoneValidator.ts +41 -0
- package/src/FileUpload/hooks/validation/useFileValidation.ts +25 -0
- package/src/FileUpload/hooks/validation/useFileValidationLogic.ts +107 -0
- package/src/FileUpload/hooks/validation/useValidationMessages.ts +92 -0
- package/src/FileUpload/hooks/validation/useValidationState.ts +171 -0
- package/src/FileUpload/index.ts +57 -0
- package/src/FileUpload/providers/FileUploadProvider.tsx +219 -0
- package/src/FileUpload/providers/UploadValidationProvider.tsx +159 -0
- package/src/FileUpload/testUtils/mockFilesAndImages.ts +64 -0
- package/src/FileUpload/testUtils/testUtils.ts +111 -0
- package/src/FileUpload/types/commonTypes.ts +267 -0
- package/src/FileUpload/types/index.ts +31 -0
- package/src/FileUpload/types/sharedTypes.ts +159 -0
- package/src/FileUpload/utils/constants.ts +79 -0
- package/src/FileUpload/utils/createMessageContext.ts +180 -0
- package/src/FileUpload/utils/getFileExtensionsFromAcceptedTypes.ts +73 -0
- package/src/FileUpload/utils/getFilePluralizationText.ts +68 -0
- package/src/FileUpload/utils/getMimeTypes.ts +26 -0
- package/src/FileUpload/utils/messageUtils.ts +41 -0
- package/src/FileUpload/utils/styles.ts +68 -0
- package/src/FormLabel/FormLabel.tsx +212 -0
- package/src/IconButton/IconButton.tsx +154 -0
- package/src/Icons/CreditCardIcon/CreditCardIcon.tsx +73 -0
- package/src/Icons/CreditCardIcon/cardIcons.tsx +270 -0
- package/src/Icons/IconBase.tsx +133 -0
- package/src/Icons/anyIcon.ts +3 -0
- package/src/Icons/generatedIcons/Archive.tsx +48 -0
- package/src/Icons/generatedIcons/ArrowClockwise.tsx +48 -0
- package/src/Icons/generatedIcons/ArrowDown.tsx +48 -0
- package/src/Icons/generatedIcons/ArrowLeft.tsx +48 -0
- package/src/Icons/generatedIcons/ArrowRight.tsx +48 -0
- package/src/Icons/generatedIcons/ArrowSquareOut.tsx +51 -0
- package/src/Icons/generatedIcons/ArrowSquareRight.tsx +51 -0
- package/src/Icons/generatedIcons/ArrowUp.tsx +48 -0
- package/src/Icons/generatedIcons/ArrowsCounterClockwise.tsx +48 -0
- package/src/Icons/generatedIcons/ArrowsLeftRight.tsx +48 -0
- package/src/Icons/generatedIcons/ArrowsOutCardinal.tsx +48 -0
- package/src/Icons/generatedIcons/Bank.tsx +48 -0
- package/src/Icons/generatedIcons/Bell.tsx +51 -0
- package/src/Icons/generatedIcons/BookBookmark.tsx +51 -0
- package/src/Icons/generatedIcons/BookmarksSimple.tsx +51 -0
- package/src/Icons/generatedIcons/Broadcast.tsx +48 -0
- package/src/Icons/generatedIcons/CalendarBlank.tsx +48 -0
- package/src/Icons/generatedIcons/CalendarStar.tsx +51 -0
- package/src/Icons/generatedIcons/Camera.tsx +51 -0
- package/src/Icons/generatedIcons/CaretDown.tsx +48 -0
- package/src/Icons/generatedIcons/CaretLeft.tsx +48 -0
- package/src/Icons/generatedIcons/CaretRight.tsx +48 -0
- package/src/Icons/generatedIcons/CaretUp.tsx +48 -0
- package/src/Icons/generatedIcons/Certificate.tsx +51 -0
- package/src/Icons/generatedIcons/ChartBar.tsx +48 -0
- package/src/Icons/generatedIcons/Check.tsx +51 -0
- package/src/Icons/generatedIcons/CheckCircle.tsx +48 -0
- package/src/Icons/generatedIcons/CirclesFour.tsx +51 -0
- package/src/Icons/generatedIcons/Clock.tsx +48 -0
- package/src/Icons/generatedIcons/ClockCountdown.tsx +48 -0
- package/src/Icons/generatedIcons/Close.tsx +51 -0
- package/src/Icons/generatedIcons/CloudArrowUp.tsx +51 -0
- package/src/Icons/generatedIcons/CloudWarning.tsx +51 -0
- package/src/Icons/generatedIcons/Code.tsx +48 -0
- package/src/Icons/generatedIcons/Compass.tsx +51 -0
- package/src/Icons/generatedIcons/Confetti.tsx +51 -0
- package/src/Icons/generatedIcons/Copy.tsx +48 -0
- package/src/Icons/generatedIcons/CornersOut.tsx +48 -0
- package/src/Icons/generatedIcons/CreditCard.tsx +48 -0
- package/src/Icons/generatedIcons/Crown.tsx +51 -0
- package/src/Icons/generatedIcons/CrownSimple.tsx +51 -0
- package/src/Icons/generatedIcons/CurrencyCircleDollar.tsx +48 -0
- package/src/Icons/generatedIcons/CurrencyDollarSimple.tsx +51 -0
- package/src/Icons/generatedIcons/Desktop.tsx +51 -0
- package/src/Icons/generatedIcons/Detective.tsx +51 -0
- package/src/Icons/generatedIcons/DotOutline.tsx +46 -0
- package/src/Icons/generatedIcons/DotsSixVertical.tsx +51 -0
- package/src/Icons/generatedIcons/DotsThreeOutline.tsx +51 -0
- package/src/Icons/generatedIcons/DotsThreeOutlineVertical.tsx +51 -0
- package/src/Icons/generatedIcons/DownloadSimple.tsx +51 -0
- package/src/Icons/generatedIcons/EnvelopeSimple.tsx +48 -0
- package/src/Icons/generatedIcons/Eraser.tsx +51 -0
- package/src/Icons/generatedIcons/Eye.tsx +51 -0
- package/src/Icons/generatedIcons/EyeSlash.tsx +51 -0
- package/src/Icons/generatedIcons/FacebookLogo.tsx +48 -0
- package/src/Icons/generatedIcons/FileArchive.tsx +48 -0
- package/src/Icons/generatedIcons/FileArrowDown.tsx +48 -0
- package/src/Icons/generatedIcons/FileCsv.tsx +48 -0
- package/src/Icons/generatedIcons/FilePdf.tsx +48 -0
- package/src/Icons/generatedIcons/FileText.tsx +48 -0
- package/src/Icons/generatedIcons/Files.tsx +51 -0
- package/src/Icons/generatedIcons/Fire.tsx +51 -0
- package/src/Icons/generatedIcons/Flag.tsx +51 -0
- package/src/Icons/generatedIcons/FlagBannerFold.tsx +48 -0
- package/src/Icons/generatedIcons/FloppyDisk.tsx +51 -0
- package/src/Icons/generatedIcons/Gauge.tsx +51 -0
- package/src/Icons/generatedIcons/Gavel.tsx +51 -0
- package/src/Icons/generatedIcons/Gear.tsx +51 -0
- package/src/Icons/generatedIcons/GlobeHemisphereWest.tsx +51 -0
- package/src/Icons/generatedIcons/GoogleLogo.tsx +48 -0
- package/src/Icons/generatedIcons/GridNine.tsx +51 -0
- package/src/Icons/generatedIcons/HandCoins.tsx +51 -0
- package/src/Icons/generatedIcons/HandbagSimple.tsx +51 -0
- package/src/Icons/generatedIcons/Headset.tsx +51 -0
- package/src/Icons/generatedIcons/HeartStraight.tsx +51 -0
- package/src/Icons/generatedIcons/HourglassLow.tsx +48 -0
- package/src/Icons/generatedIcons/House.tsx +51 -0
- package/src/Icons/generatedIcons/Image.tsx +51 -0
- package/src/Icons/generatedIcons/ImageSquare.tsx +51 -0
- package/src/Icons/generatedIcons/ImagesSquare.tsx +51 -0
- package/src/Icons/generatedIcons/Info.tsx +48 -0
- package/src/Icons/generatedIcons/InstagramLogo.tsx +51 -0
- package/src/Icons/generatedIcons/Lightning.tsx +48 -0
- package/src/Icons/generatedIcons/Link.tsx +51 -0
- package/src/Icons/generatedIcons/LinkedinLogo.tsx +51 -0
- package/src/Icons/generatedIcons/List.tsx +48 -0
- package/src/Icons/generatedIcons/Lock.tsx +51 -0
- package/src/Icons/generatedIcons/LockOpen.tsx +51 -0
- package/src/Icons/generatedIcons/MagnifyingGlass.tsx +48 -0
- package/src/Icons/generatedIcons/MapPin.tsx +51 -0
- package/src/Icons/generatedIcons/MapPinSimpleArea.tsx +48 -0
- package/src/Icons/generatedIcons/Medal.tsx +48 -0
- package/src/Icons/generatedIcons/Megaphone.tsx +48 -0
- package/src/Icons/generatedIcons/Minus.tsx +45 -0
- package/src/Icons/generatedIcons/Money.tsx +51 -0
- package/src/Icons/generatedIcons/Notches.tsx +48 -0
- package/src/Icons/generatedIcons/NotePencil.tsx +48 -0
- package/src/Icons/generatedIcons/Package.tsx +51 -0
- package/src/Icons/generatedIcons/PaintBrush.tsx +51 -0
- package/src/Icons/generatedIcons/PaperPlaneTilt.tsx +51 -0
- package/src/Icons/generatedIcons/Paperclip.tsx +51 -0
- package/src/Icons/generatedIcons/Pause.tsx +51 -0
- package/src/Icons/generatedIcons/PencilLine.tsx +51 -0
- package/src/Icons/generatedIcons/PencilRuler.tsx +51 -0
- package/src/Icons/generatedIcons/PencilSimple.tsx +51 -0
- package/src/Icons/generatedIcons/Phone.tsx +51 -0
- package/src/Icons/generatedIcons/PinterestLogo.tsx +51 -0
- package/src/Icons/generatedIcons/Play.tsx +51 -0
- package/src/Icons/generatedIcons/Plus.tsx +51 -0
- package/src/Icons/generatedIcons/PlusCircle.tsx +48 -0
- package/src/Icons/generatedIcons/Printer.tsx +51 -0
- package/src/Icons/generatedIcons/Question.tsx +48 -0
- package/src/Icons/generatedIcons/Receipt.tsx +51 -0
- package/src/Icons/generatedIcons/Rows.tsx +51 -0
- package/src/Icons/generatedIcons/SealCheck.tsx +51 -0
- package/src/Icons/generatedIcons/SelectionSlash.tsx +48 -0
- package/src/Icons/generatedIcons/ShareNetwork.tsx +51 -0
- package/src/Icons/generatedIcons/ShieldCheck.tsx +51 -0
- package/src/Icons/generatedIcons/ShieldStar.tsx +51 -0
- package/src/Icons/generatedIcons/ShoppingCart.tsx +48 -0
- package/src/Icons/generatedIcons/ShuffleAngular.tsx +48 -0
- package/src/Icons/generatedIcons/SidebarSimple.tsx +48 -0
- package/src/Icons/generatedIcons/SlidersHorizontal.tsx +51 -0
- package/src/Icons/generatedIcons/Smiley.tsx +48 -0
- package/src/Icons/generatedIcons/Sparkle.tsx +51 -0
- package/src/Icons/generatedIcons/SpinnerGap.tsx +48 -0
- package/src/Icons/generatedIcons/StackPlus.tsx +48 -0
- package/src/Icons/generatedIcons/Star.tsx +51 -0
- package/src/Icons/generatedIcons/Storefront.tsx +51 -0
- package/src/Icons/generatedIcons/Swap.tsx +51 -0
- package/src/Icons/generatedIcons/Tag.tsx +51 -0
- package/src/Icons/generatedIcons/ThumbsDown.tsx +48 -0
- package/src/Icons/generatedIcons/ThumbsUp.tsx +48 -0
- package/src/Icons/generatedIcons/Toolbox.tsx +48 -0
- package/src/Icons/generatedIcons/Trash.tsx +48 -0
- package/src/Icons/generatedIcons/TrendUp.tsx +48 -0
- package/src/Icons/generatedIcons/Trophy.tsx +51 -0
- package/src/Icons/generatedIcons/Truck.tsx +51 -0
- package/src/Icons/generatedIcons/UploadSimple.tsx +51 -0
- package/src/Icons/generatedIcons/User.tsx +48 -0
- package/src/Icons/generatedIcons/Users.tsx +48 -0
- package/src/Icons/generatedIcons/UsersThree.tsx +51 -0
- package/src/Icons/generatedIcons/VideoCamera.tsx +51 -0
- package/src/Icons/generatedIcons/Warning.tsx +51 -0
- package/src/Icons/generatedIcons/WarningCircle.tsx +48 -0
- package/src/Icons/generatedIcons/WifiHigh.tsx +51 -0
- package/src/Icons/generatedIcons/XCircle.tsx +48 -0
- package/src/Icons/generatedIcons/XLogo.tsx +48 -0
- package/src/Icons/generatedIcons/YoutubeLogo.tsx +51 -0
- package/src/Icons/importedIcons.ts +152 -0
- package/src/Icons/index.ts +149 -0
- package/src/Icons/socialIcons/appleSocialIcon.tsx +50 -0
- package/src/Icons/socialIcons/facebookSocialIcon.tsx +41 -0
- package/src/Icons/socialIcons/googleSocialIcon.tsx +134 -0
- package/src/ImageCluster/ImageCluster.tsx +125 -0
- package/src/ImageSlider/ImageSlider.tsx +584 -0
- package/src/ImageSlider/ImageSlider.types.ts +90 -0
- package/src/ImageSlider/components/IndexIndicator/IndexIndicator.tsx +21 -0
- package/src/ImageSlider/components/NavigationButtons/NavigationButtons.tsx +113 -0
- package/src/ImageSlider/components/ResponsiveImage/ResponsiveImage.tsx +114 -0
- package/src/ImageSlider/components/ResponsiveImage/index.ts +1 -0
- package/src/ImageSlider/components/Thumbnails/Thumbnails.tsx +184 -0
- package/src/ImageSlider/constants.ts +59 -0
- package/src/ImageSlider/hooks/index.ts +3 -0
- package/src/ImageSlider/hooks/useImageSlider.ts +57 -0
- package/src/ImageSlider/hooks/useImageSliderNavigation.ts +133 -0
- package/src/ImageSlider/hooks/useImageSliderScrollHandler.ts +171 -0
- package/src/ImageSlider/index.ts +3 -0
- package/src/ImageSlider/utils/imageOptimization.ts +97 -0
- package/src/ImageSlider/utils/index.ts +1 -0
- package/src/InlineNotification/InlineNotification.tsx +95 -0
- package/src/JumpMenu/JumpMenu.tsx +395 -0
- package/src/JumpMenu/components/JumpMenuItem/JumpMenuItem.tsx +65 -0
- package/src/JumpMenu/hooks/useContainerTracking.ts +171 -0
- package/src/JumpMenu/hooks/useIntersectionObserver.ts +77 -0
- package/src/JumpMenu/hooks/useKeyboardNavigation.ts +102 -0
- package/src/JumpMenu/hooks/useResizeObserver.ts +53 -0
- package/src/JumpMenu/hooks/useSectionObserver.ts +102 -0
- package/src/JumpMenu/index.ts +2 -0
- package/src/JumpMenu/types/index.ts +19 -0
- package/src/Loading/Loading.tsx +39 -0
- package/src/Loading/components/LoadingDot/LoadingDot.tsx +16 -0
- package/src/LoadingSpinner/LoadingSpinner.tsx +20 -0
- package/src/Menu/Menu.tsx +372 -0
- package/src/Menu/components/MenuDivider/MenuDivider.tsx +5 -0
- package/src/Menu/components/MenuItem/MenuItem.tsx +298 -0
- package/src/Menu/context/menuContext.tsx +20 -0
- package/src/Menu/hooks/useMenu.tsx +18 -0
- package/src/Menu/index.ts +3 -0
- package/src/Modal/ComposableModal.tsx +321 -0
- package/src/Modal/Modal.tsx +231 -0
- package/src/Modal/components/BackButton/BackButton.tsx +43 -0
- package/src/Modal/components/Backdrop/Backdrop.tsx +62 -0
- package/src/Modal/components/CloseButton/CloseButton.tsx +55 -0
- package/src/Modal/components/ModalActions/ModalActions.tsx +135 -0
- package/src/Modal/components/ModalContent/ModalContent.tsx +163 -0
- package/src/Modal/components/ModalHeader/ModalHeader.tsx +84 -0
- package/src/Modal/components/ModalHeader/hooks/useHeaderAnimation.tsx +49 -0
- package/src/Modal/components/ModalProgressSteps/ModalProgressSteps.tsx +26 -0
- package/src/Modal/components/ModalSubTitle/ModalSubTitle.tsx +29 -0
- package/src/Modal/components/ModalTitle/ModalTitle.tsx +22 -0
- package/src/Modal/components/PreventModalScroll/PreventModalScroll.tsx +106 -0
- package/src/Modal/components/index.ts +12 -0
- package/src/Modal/context.ts +33 -0
- package/src/Modal/hooks/useCloseModal.ts +140 -0
- package/src/NotificationBadge/NotificationBadge.tsx +34 -0
- package/src/Pagination/AdvancedPagination.tsx +48 -0
- package/src/Pagination/Pagination.tsx +216 -0
- package/src/Pagination/components/AdvancedPaginator/AdvancedPaginator.tsx +52 -0
- package/src/Pagination/components/AdvancedPaginator/components/PageSelect/PageSelect.tsx +43 -0
- package/src/Pagination/components/ItemCountDisplay/ItemCountDisplay.tsx +32 -0
- package/src/Pagination/components/ItemCountSelect/ItemCountSelect.tsx +33 -0
- package/src/Pagination/index.tsx +3 -0
- package/src/Pagination/paginationProvider.tsx +234 -0
- package/src/Pagination/utils.tsx +36 -0
- package/src/PhoneInput/PhoneInput.tsx +515 -0
- package/src/PhoneInput/useDropdownLogic.tsx +163 -0
- package/src/ProgressCircle/ProgressCircle.tsx +246 -0
- package/src/ProgressCircle/hooks/useProgressStatusTransitions.ts +49 -0
- package/src/ProgressCircle/utils/progressCircle.constants.ts +27 -0
- package/src/ProgressSteps/ProgressSteps.tsx +160 -0
- package/src/SaveConfetti/SaveConfetti.tsx +277 -0
- package/src/SaveConfetti/index.ts +2 -0
- package/src/SearchInput/SearchInput.tsx +237 -0
- package/src/SegmentedControl/SegmentedControl.tsx +111 -0
- package/src/SegmentedControl/SegmentedControlGroup.tsx +94 -0
- package/src/SegmentedControl/index.ts +4 -0
- package/src/Select/Select.tsx +154 -0
- package/src/Select/SelectAsync.tsx +13 -0
- package/src/Select/SelectAsyncCreatable.tsx +14 -0
- package/src/Select/SelectCreatable.tsx +12 -0
- package/src/Select/reexportedComponents.tsx +5 -0
- package/src/Select/selectComponents.tsx +305 -0
- package/src/Skeleton/Skeleton.tsx +13 -0
- package/src/SplitButton/SplitButton.tsx +298 -0
- package/src/SplitButton/SplitButtonTrigger.tsx +55 -0
- package/src/StarRating/StarRating.tsx +165 -0
- package/src/StarRating/components/StarComponent/StarComponent.tsx +44 -0
- package/src/Table/Table.tsx +474 -0
- package/src/Table/components/TableHeader/TableHeader.tsx +166 -0
- package/src/Table/components/TablePagination/TablePagination.tsx +18 -0
- package/src/Table/components/TablePagination/components/ItemCountDisplay/ItemCountDisplay.tsx +17 -0
- package/src/Table/components/TablePagination/components/ItemCountSelect/ItemCountSelect.tsx +31 -0
- package/src/Table/components/TablePagination/components/TablePaginator/TablePaginator.tsx +37 -0
- package/src/Table/components/TablePagination/components/TablePaginator/components/PageSelect/PageSelect.tsx +32 -0
- package/src/Table/components/TableRow/TableRows.tsx +147 -0
- package/src/Table/components/TableRow/components/TableRowCell/TableRowCell.tsx +49 -0
- package/src/Table/components/TableShadow/TableShadow.tsx +46 -0
- package/src/Table/index.ts +2 -0
- package/src/Table/sharedState.ts +30 -0
- package/src/Table/sharedStyles.ts +1 -0
- package/src/Table/types.ts +55 -0
- package/src/Tabs/Tabs.tsx +358 -0
- package/src/TextArea/TextArea.tsx +159 -0
- package/src/TextInput/TextInput.tsx +173 -0
- package/src/Toast/Toast.tsx +64 -0
- package/src/Toast/components/ToastContainer/ToastContainer.tsx +48 -0
- package/src/Toast/index.ts +2 -0
- package/src/Toast/types/role.ts +1 -0
- package/src/Toast/utils/getIcon.tsx +41 -0
- package/src/ToggleSwitch/ToggleSwitch.tsx +188 -0
- package/src/Tooltip/InfoIconTooltip.tsx +47 -0
- package/src/Tooltip/Tooltip.tsx +41 -0
- package/src/Typography/InlineButton/InlineButton.tsx +167 -0
- package/src/Typography/Links/Links.tsx +113 -0
- package/src/Typography/Text/Text.tsx +239 -0
- package/src/ViewMore/ViewMore.tsx +226 -0
- package/src/WebRTCPlayer/WebRTCPlayer.tsx +325 -0
- package/src/WebRTCPlayer/adaptor/NativeWebRTCAdaptor.ts +588 -0
- package/src/WebRTCPlayer/hooks/useWebRTCStream.ts +571 -0
- package/src/WebRTCPlayer/index.ts +22 -0
- package/src/WebRTCPlayer/types.ts +95 -0
- package/src/breakpoints/index.tsx +1 -0
- package/src/breakpoints/utils.tsx +50 -0
- package/src/declarations.d.ts +7 -0
- package/src/grid/gridHighlighter.tsx +83 -0
- package/src/grid/index.ts +3 -0
- package/src/grid/pageGrid.tsx +37 -0
- package/src/grid/useSubGridCSS.tsx +214 -0
- package/src/hooks/useHorizontalScrollFade.ts +44 -0
- package/src/hooks/usePrevious.ts +14 -0
- package/src/index.ts +351 -0
- package/src/intl/index.ts +4 -0
- package/src/intl/utils.ts +67 -0
- package/src/mixins/horizontalScrollFadeMixin.ts +56 -0
- package/src/mixins/index.ts +18 -0
- package/src/mixins/propMixins.ts +389 -0
- package/src/providers/createContextProvider.ts +22 -0
- package/src/providers/designSystemProvider.tsx +218 -0
- package/src/providers/errorBoundaryProvider.tsx +179 -0
- package/src/providers/featureFlagProvider.tsx +18 -0
- package/src/providers/gridSizeProvider.tsx +23 -0
- package/src/providers/index.ts +12 -0
- package/src/providers/linkProvider.tsx +32 -0
- package/src/providers/normalize.tsx +93 -0
- package/src/providers/targets/DatePickerTarget.tsx +10 -0
- package/src/providers/targets/ModalTarget.tsx +14 -0
- package/src/providers/targets/TimePickerTarget.tsx +10 -0
- package/src/providers/themeContext.tsx +24 -0
- package/src/providers/windowSizeProvider.tsx +125 -0
- package/src/spacing/index.ts +1 -0
- package/src/spacing/spacing.ts +11 -0
- package/src/utils/countriesWithISOCodes.ts +1419 -0
- package/src/utils/dateTimeFormat.ts +257 -0
- package/src/utils/effectEventListener.ts +11 -0
- package/src/utils/formatFileSize.ts +18 -0
- package/src/utils/isClientSide.ts +1 -0
- package/src/utils/keepTransition.ts +15 -0
- package/src/utils/nodeEnv.ts +9 -0
- package/src/utils/smoothScrollTo.ts +65 -0
- package/src/utils/utilityTypes.ts +13 -0
- package/table.cjs +1 -1
- package/table.mjs +1 -1
- package/tabs.cjs +1 -1
- package/tabs.cjs.map +1 -1
- package/tabs.mjs +1 -1
- package/tabs.mjs.map +1 -1
- package/textArea.cjs.map +1 -1
- package/textArea.mjs.map +1 -1
- package/viewMore.cjs +1 -1
- package/viewMore.mjs +1 -1
- package/BottomSheet-ZV_eq3xt.mjs.map +0 -1
- package/BottomSheet-emWP9Fct.cjs.map +0 -1
- package/FavoriteButton-CC3qL0lR.mjs.map +0 -1
- package/FavoriteButton-DliYzkfu.cjs.map +0 -1
- package/FileUpload--e_UJ_ek.cjs.map +0 -1
- package/FileUpload-p_pl9NXr.mjs.map +0 -1
- package/ImageSlider-BidXfnLj.cjs.map +0 -1
- package/ImageSlider-CDrg_TbL.mjs.map +0 -1
- package/Menu-ClUogmwE.cjs.map +0 -1
- package/Menu-Cxu8CaX1.mjs.map +0 -1
- package/Modal-CiBqXyiK.cjs.map +0 -1
- package/Select-BXDjzyDs.cjs.map +0 -1
- package/Select-BkZu8OLs.mjs.map +0 -1
- package/ViewMore-BBoUvo7p.cjs.map +0 -1
- package/ViewMore-BrZPuE4E.mjs.map +0 -1
- package/buttonColorClasses-B7OU4aQA.mjs.map +0 -1
- package/buttonColorClasses-C3hg1at8.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineButton.cjs","names":[],"sources":["../../src/Typography/InlineButton/InlineButton.tsx"],"sourcesContent":["import { cn } from '@evolve.ui/theme-system';\nimport { forwardRef, HTMLProps, MouseEventHandler, ReactNode, useCallback } from 'react';\n\nimport { AnyIcon } from '../../Icons/anyIcon';\n\ntype InlineButtonStyle = 'primary' | 'critical' | 'neutral' | 'inverse';\n\ntype InlineStyles = {\n inlineStyles?: HTMLProps<HTMLDivElement>['style'];\n};\n\nconst downSizeIconSize = {\n md: 'sm',\n sm: 'xs',\n xs: 'xs',\n} as const;\n\ntype Props = {\n children: ReactNode;\n /**\n * Optional className to add to the button.\n */\n className?: string;\n /**\n * Optional icon to show alongside the component.\n *\n * Usage:\n * ```tsx\n * <InlineButton icon={Info} />\n * ```\n */\n icon?: AnyIcon;\n /**\n * Optional location for the icon's rendering. Requires `icon` prop to do anything\n *\n * Usage:\n * ```tsx\n * <InlineButton icon={Info} iconPlacement=\"right\" />\n * ```\n *\n * @default 'left'\n */\n iconPlacement?: 'left' | 'right';\n /**\n * Optional style for the icon's rendering.\n */\n iconStyle?: 'fill' | 'bold' | 'regular' | 'duotone';\n /**\n * Optional loading state trigger. Disables button and adds a loading state.\n *\n * @default false\n */\n loading?: boolean;\n /**\n * The size of the inline button to render.\n *\n * sm = small\n * md = medium (default)\n */\n size?: 'md' | 'sm' | 'xs';\n /**\n * Button style. This matches a color palette in the theme.\n *\n * @default 'primary'\n */\n style?: InlineButtonStyle;\n /**\n * The type of the button.\n *\n * @default 'button'\n */\n type?: 'button' | 'reset' | 'submit';\n} & Omit<HTMLProps<HTMLButtonElement>, 'style' | 'size' | 'as'> &\n InlineStyles;\n\nexport const InlineButton = forwardRef<HTMLButtonElement, Props>(\n (\n {\n children,\n className,\n disabled = false,\n icon: Icon,\n iconPlacement = 'left',\n iconStyle,\n loading = false,\n onClick: onClickProp,\n size = 'md',\n style = 'primary',\n ...rest\n },\n ref\n ) => {\n const onClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n (e) => {\n if (!disabled && !loading && onClickProp) {\n onClickProp(e);\n }\n\n // Handle the case where the button is in a Form and shouldnt trigger the form's onSubmit callback\n if (disabled || loading) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [disabled, loading, onClickProp]\n );\n\n return (\n <button\n aria-busy={loading}\n aria-live=\"polite\"\n className={cn(\n // GENERAL\n 'hui-text-body-primary inline-flex w-min cursor-pointer items-center gap-2xs whitespace-nowrap border-none bg-transparent p-0 tracking-[0.5px] outline-none',\n // FOCUS\n '
|
|
1
|
+
{"version":3,"file":"InlineButton.cjs","names":[],"sources":["../../src/Typography/InlineButton/InlineButton.tsx"],"sourcesContent":["import { cn } from '@evolve.ui/theme-system';\nimport { forwardRef, HTMLProps, MouseEventHandler, ReactNode, useCallback } from 'react';\n\nimport { AnyIcon } from '../../Icons/anyIcon';\n\ntype InlineButtonStyle = 'primary' | 'critical' | 'neutral' | 'inverse';\n\ntype InlineStyles = {\n inlineStyles?: HTMLProps<HTMLDivElement>['style'];\n};\n\nconst downSizeIconSize = {\n md: 'sm',\n sm: 'xs',\n xs: 'xs',\n} as const;\n\ntype Props = {\n children: ReactNode;\n /**\n * Optional className to add to the button.\n */\n className?: string;\n /**\n * Optional icon to show alongside the component.\n *\n * Usage:\n * ```tsx\n * <InlineButton icon={Info} />\n * ```\n */\n icon?: AnyIcon;\n /**\n * Optional location for the icon's rendering. Requires `icon` prop to do anything\n *\n * Usage:\n * ```tsx\n * <InlineButton icon={Info} iconPlacement=\"right\" />\n * ```\n *\n * @default 'left'\n */\n iconPlacement?: 'left' | 'right';\n /**\n * Optional style for the icon's rendering.\n */\n iconStyle?: 'fill' | 'bold' | 'regular' | 'duotone';\n /**\n * Optional loading state trigger. Disables button and adds a loading state.\n *\n * @default false\n */\n loading?: boolean;\n /**\n * The size of the inline button to render.\n *\n * sm = small\n * md = medium (default)\n */\n size?: 'md' | 'sm' | 'xs';\n /**\n * Button style. This matches a color palette in the theme.\n *\n * @default 'primary'\n */\n style?: InlineButtonStyle;\n /**\n * The type of the button.\n *\n * @default 'button'\n */\n type?: 'button' | 'reset' | 'submit';\n} & Omit<HTMLProps<HTMLButtonElement>, 'style' | 'size' | 'as'> &\n InlineStyles;\n\nexport const InlineButton = forwardRef<HTMLButtonElement, Props>(\n (\n {\n children,\n className,\n disabled = false,\n icon: Icon,\n iconPlacement = 'left',\n iconStyle,\n loading = false,\n onClick: onClickProp,\n size = 'md',\n style = 'primary',\n ...rest\n },\n ref\n ) => {\n const onClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n (e) => {\n if (!disabled && !loading && onClickProp) {\n onClickProp(e);\n }\n\n // Handle the case where the button is in a Form and shouldnt trigger the form's onSubmit callback\n if (disabled || loading) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [disabled, loading, onClickProp]\n );\n\n return (\n <button\n aria-busy={loading}\n aria-live=\"polite\"\n className={cn(\n // GENERAL\n 'hui-text-body-primary inline-flex w-min cursor-pointer items-center gap-2xs whitespace-nowrap border-none bg-transparent p-0 tracking-[0.5px] outline-none',\n // FOCUS — the base `outline-none` above is unvariant (0,1,0), so the bare ring\n // (0,2,0) still wins after de-prefixing (DS-98 Phase 0).\n 'hui-focus-visible-outline focus-visible:underline',\n {\n 'hui-focus-visible-outline-inverse': style === 'inverse',\n },\n // HOVER\n 'hover:underline',\n { 'hover:no-underline': disabled || loading },\n // DISABLED\n 'disabled:cursor-not-allowed disabled:text-text-disabled',\n // SIZE\n 'h-[24px] text-base',\n {\n 'h-[20px] text-xs leading-4': size === 'xs',\n 'h-[22px] text-sm leading-5': size === 'sm',\n },\n // STYLE\n {\n 'text-link-primary hover:text-primary-700 active:text-primary-900': style === 'primary',\n 'text-link-secondary hover:text-surface-700 active:text-surface-900': style === 'neutral',\n 'text-text-critical hover:text-critical-700 active:text-critical-900': style === 'critical',\n 'text-text-inverse hover:text-surface-100 active:text-surface-200': style === 'inverse',\n },\n className\n )}\n data-hui-id=\"InlineButton\"\n disabled={disabled || loading}\n onClick={onClick}\n ref={ref}\n {...rest}\n >\n {Icon && iconPlacement === 'left' && (\n <Icon\n color=\"inherit\"\n size={downSizeIconSize[size]}\n style={iconStyle}\n />\n )}\n {children}\n {Icon && iconPlacement === 'right' && (\n <Icon\n color=\"inherit\"\n size={downSizeIconSize[size]}\n style={iconStyle}\n />\n )}\n </button>\n );\n }\n);\n\nInlineButton.displayName = 'InlineButton';\n"],"mappings":";;;;;;;;AAWA,MAAM,mBAAmB;CACrB,IAAI;CACJ,IAAI;CACJ,IAAI;AACR;AA4DA,MAAa,gBAAA,GAAA,MAAA,WAAA,EAEL,EACI,UACA,WACA,WAAW,OACX,MAAM,MACN,gBAAgB,QAChB,WACA,UAAU,OACV,SAAS,aACT,OAAO,MACP,QAAQ,WACR,GAAG,QAEP,QACC;CACD,MAAM,WAAA,GAAA,MAAA,YAAA,EACD,MAAM;EACH,IAAI,CAAC,YAAY,CAAC,WAAW,aACzB,YAAY,CAAC;EAIjB,IAAI,YAAY,SAAS;GACrB,EAAE,eAAe;GACjB,EAAE,gBAAgB;EACtB;CACJ,GACA;EAAC;EAAU;EAAS;CAAW,CACnC;CAEA,OACI,iBAAA,GAAA,kBAAA,KAAA,CAAC,UAAD;EACI,aAAW;EACX,aAAU;EACV,YAAA,GAAA,wBAAA,GAAA,CAEI,8JAGA,qDACA,EACI,qCAAqC,UAAU,UACnD,GAEA,mBACA,EAAE,sBAAsB,YAAY,QAAQ,GAE5C,2DAEA,sBACA;GACI,8BAA8B,SAAS;GACvC,8BAA8B,SAAS;EAC3C,GAEA;GACI,oEAAoE,UAAU;GAC9E,sEAAsE,UAAU;GAChF,uEAAuE,UAAU;GACjF,oEAAoE,UAAU;EAClF,GACA,SACJ;EACA,eAAY;EACZ,UAAU,YAAY;EACb;EACJ;EACL,GAAI;YApCR;GAsCK,QAAQ,kBAAkB,UACvB,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;IACI,OAAM;IACN,MAAM,iBAAiB;IACvB,OAAO;GACV,CAAA;GAEJ;GACA,QAAQ,kBAAkB,WACvB,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;IACI,OAAM;IACN,MAAM,iBAAiB;IACvB,OAAO;GACV,CAAA;EAED;;AAEhB,CACJ;AAEA,aAAa,cAAc"}
|
|
@@ -23,7 +23,7 @@ const InlineButton = forwardRef(({ children, className, disabled = false, icon:
|
|
|
23
23
|
return /* @__PURE__ */ jsxs("button", {
|
|
24
24
|
"aria-busy": loading,
|
|
25
25
|
"aria-live": "polite",
|
|
26
|
-
className: cn("hui-text-body-primary inline-flex w-min cursor-pointer items-center gap-2xs whitespace-nowrap border-none bg-transparent p-0 tracking-[0.5px] outline-none", "
|
|
26
|
+
className: cn("hui-text-body-primary inline-flex w-min cursor-pointer items-center gap-2xs whitespace-nowrap border-none bg-transparent p-0 tracking-[0.5px] outline-none", "hui-focus-visible-outline focus-visible:underline", { "hui-focus-visible-outline-inverse": style === "inverse" }, "hover:underline", { "hover:no-underline": disabled || loading }, "disabled:cursor-not-allowed disabled:text-text-disabled", "h-[24px] text-base", {
|
|
27
27
|
"h-[20px] text-xs leading-4": size === "xs",
|
|
28
28
|
"h-[22px] text-sm leading-5": size === "sm"
|
|
29
29
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineButton.mjs","names":[],"sources":["../../src/Typography/InlineButton/InlineButton.tsx"],"sourcesContent":["import { cn } from '@evolve.ui/theme-system';\nimport { forwardRef, HTMLProps, MouseEventHandler, ReactNode, useCallback } from 'react';\n\nimport { AnyIcon } from '../../Icons/anyIcon';\n\ntype InlineButtonStyle = 'primary' | 'critical' | 'neutral' | 'inverse';\n\ntype InlineStyles = {\n inlineStyles?: HTMLProps<HTMLDivElement>['style'];\n};\n\nconst downSizeIconSize = {\n md: 'sm',\n sm: 'xs',\n xs: 'xs',\n} as const;\n\ntype Props = {\n children: ReactNode;\n /**\n * Optional className to add to the button.\n */\n className?: string;\n /**\n * Optional icon to show alongside the component.\n *\n * Usage:\n * ```tsx\n * <InlineButton icon={Info} />\n * ```\n */\n icon?: AnyIcon;\n /**\n * Optional location for the icon's rendering. Requires `icon` prop to do anything\n *\n * Usage:\n * ```tsx\n * <InlineButton icon={Info} iconPlacement=\"right\" />\n * ```\n *\n * @default 'left'\n */\n iconPlacement?: 'left' | 'right';\n /**\n * Optional style for the icon's rendering.\n */\n iconStyle?: 'fill' | 'bold' | 'regular' | 'duotone';\n /**\n * Optional loading state trigger. Disables button and adds a loading state.\n *\n * @default false\n */\n loading?: boolean;\n /**\n * The size of the inline button to render.\n *\n * sm = small\n * md = medium (default)\n */\n size?: 'md' | 'sm' | 'xs';\n /**\n * Button style. This matches a color palette in the theme.\n *\n * @default 'primary'\n */\n style?: InlineButtonStyle;\n /**\n * The type of the button.\n *\n * @default 'button'\n */\n type?: 'button' | 'reset' | 'submit';\n} & Omit<HTMLProps<HTMLButtonElement>, 'style' | 'size' | 'as'> &\n InlineStyles;\n\nexport const InlineButton = forwardRef<HTMLButtonElement, Props>(\n (\n {\n children,\n className,\n disabled = false,\n icon: Icon,\n iconPlacement = 'left',\n iconStyle,\n loading = false,\n onClick: onClickProp,\n size = 'md',\n style = 'primary',\n ...rest\n },\n ref\n ) => {\n const onClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n (e) => {\n if (!disabled && !loading && onClickProp) {\n onClickProp(e);\n }\n\n // Handle the case where the button is in a Form and shouldnt trigger the form's onSubmit callback\n if (disabled || loading) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [disabled, loading, onClickProp]\n );\n\n return (\n <button\n aria-busy={loading}\n aria-live=\"polite\"\n className={cn(\n // GENERAL\n 'hui-text-body-primary inline-flex w-min cursor-pointer items-center gap-2xs whitespace-nowrap border-none bg-transparent p-0 tracking-[0.5px] outline-none',\n // FOCUS\n '
|
|
1
|
+
{"version":3,"file":"InlineButton.mjs","names":[],"sources":["../../src/Typography/InlineButton/InlineButton.tsx"],"sourcesContent":["import { cn } from '@evolve.ui/theme-system';\nimport { forwardRef, HTMLProps, MouseEventHandler, ReactNode, useCallback } from 'react';\n\nimport { AnyIcon } from '../../Icons/anyIcon';\n\ntype InlineButtonStyle = 'primary' | 'critical' | 'neutral' | 'inverse';\n\ntype InlineStyles = {\n inlineStyles?: HTMLProps<HTMLDivElement>['style'];\n};\n\nconst downSizeIconSize = {\n md: 'sm',\n sm: 'xs',\n xs: 'xs',\n} as const;\n\ntype Props = {\n children: ReactNode;\n /**\n * Optional className to add to the button.\n */\n className?: string;\n /**\n * Optional icon to show alongside the component.\n *\n * Usage:\n * ```tsx\n * <InlineButton icon={Info} />\n * ```\n */\n icon?: AnyIcon;\n /**\n * Optional location for the icon's rendering. Requires `icon` prop to do anything\n *\n * Usage:\n * ```tsx\n * <InlineButton icon={Info} iconPlacement=\"right\" />\n * ```\n *\n * @default 'left'\n */\n iconPlacement?: 'left' | 'right';\n /**\n * Optional style for the icon's rendering.\n */\n iconStyle?: 'fill' | 'bold' | 'regular' | 'duotone';\n /**\n * Optional loading state trigger. Disables button and adds a loading state.\n *\n * @default false\n */\n loading?: boolean;\n /**\n * The size of the inline button to render.\n *\n * sm = small\n * md = medium (default)\n */\n size?: 'md' | 'sm' | 'xs';\n /**\n * Button style. This matches a color palette in the theme.\n *\n * @default 'primary'\n */\n style?: InlineButtonStyle;\n /**\n * The type of the button.\n *\n * @default 'button'\n */\n type?: 'button' | 'reset' | 'submit';\n} & Omit<HTMLProps<HTMLButtonElement>, 'style' | 'size' | 'as'> &\n InlineStyles;\n\nexport const InlineButton = forwardRef<HTMLButtonElement, Props>(\n (\n {\n children,\n className,\n disabled = false,\n icon: Icon,\n iconPlacement = 'left',\n iconStyle,\n loading = false,\n onClick: onClickProp,\n size = 'md',\n style = 'primary',\n ...rest\n },\n ref\n ) => {\n const onClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n (e) => {\n if (!disabled && !loading && onClickProp) {\n onClickProp(e);\n }\n\n // Handle the case where the button is in a Form and shouldnt trigger the form's onSubmit callback\n if (disabled || loading) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [disabled, loading, onClickProp]\n );\n\n return (\n <button\n aria-busy={loading}\n aria-live=\"polite\"\n className={cn(\n // GENERAL\n 'hui-text-body-primary inline-flex w-min cursor-pointer items-center gap-2xs whitespace-nowrap border-none bg-transparent p-0 tracking-[0.5px] outline-none',\n // FOCUS — the base `outline-none` above is unvariant (0,1,0), so the bare ring\n // (0,2,0) still wins after de-prefixing (DS-98 Phase 0).\n 'hui-focus-visible-outline focus-visible:underline',\n {\n 'hui-focus-visible-outline-inverse': style === 'inverse',\n },\n // HOVER\n 'hover:underline',\n { 'hover:no-underline': disabled || loading },\n // DISABLED\n 'disabled:cursor-not-allowed disabled:text-text-disabled',\n // SIZE\n 'h-[24px] text-base',\n {\n 'h-[20px] text-xs leading-4': size === 'xs',\n 'h-[22px] text-sm leading-5': size === 'sm',\n },\n // STYLE\n {\n 'text-link-primary hover:text-primary-700 active:text-primary-900': style === 'primary',\n 'text-link-secondary hover:text-surface-700 active:text-surface-900': style === 'neutral',\n 'text-text-critical hover:text-critical-700 active:text-critical-900': style === 'critical',\n 'text-text-inverse hover:text-surface-100 active:text-surface-200': style === 'inverse',\n },\n className\n )}\n data-hui-id=\"InlineButton\"\n disabled={disabled || loading}\n onClick={onClick}\n ref={ref}\n {...rest}\n >\n {Icon && iconPlacement === 'left' && (\n <Icon\n color=\"inherit\"\n size={downSizeIconSize[size]}\n style={iconStyle}\n />\n )}\n {children}\n {Icon && iconPlacement === 'right' && (\n <Icon\n color=\"inherit\"\n size={downSizeIconSize[size]}\n style={iconStyle}\n />\n )}\n </button>\n );\n }\n);\n\nInlineButton.displayName = 'InlineButton';\n"],"mappings":";;;;AAWA,MAAM,mBAAmB;CACrB,IAAI;CACJ,IAAI;CACJ,IAAI;AACR;AA4DA,MAAa,eAAe,YAEpB,EACI,UACA,WACA,WAAW,OACX,MAAM,MACN,gBAAgB,QAChB,WACA,UAAU,OACV,SAAS,aACT,OAAO,MACP,QAAQ,WACR,GAAG,QAEP,QACC;CACD,MAAM,UAAgD,aACjD,MAAM;EACH,IAAI,CAAC,YAAY,CAAC,WAAW,aACzB,YAAY,CAAC;EAIjB,IAAI,YAAY,SAAS;GACrB,EAAE,eAAe;GACjB,EAAE,gBAAgB;EACtB;CACJ,GACA;EAAC;EAAU;EAAS;CAAW,CACnC;CAEA,OACI,qBAAC,UAAD;EACI,aAAW;EACX,aAAU;EACV,WAAW,GAEP,8JAGA,qDACA,EACI,qCAAqC,UAAU,UACnD,GAEA,mBACA,EAAE,sBAAsB,YAAY,QAAQ,GAE5C,2DAEA,sBACA;GACI,8BAA8B,SAAS;GACvC,8BAA8B,SAAS;EAC3C,GAEA;GACI,oEAAoE,UAAU;GAC9E,sEAAsE,UAAU;GAChF,uEAAuE,UAAU;GACjF,oEAAoE,UAAU;EAClF,GACA,SACJ;EACA,eAAY;EACZ,UAAU,YAAY;EACb;EACJ;EACL,GAAI;YApCR;GAsCK,QAAQ,kBAAkB,UACvB,oBAAC,MAAD;IACI,OAAM;IACN,MAAM,iBAAiB;IACvB,OAAO;GACV,CAAA;GAEJ;GACA,QAAQ,kBAAkB,WACvB,oBAAC,MAAD;IACI,OAAM;IACN,MAAM,iBAAiB;IACvB,OAAO;GACV,CAAA;EAED;;AAEhB,CACJ;AAEA,aAAa,cAAc"}
|
|
@@ -19,6 +19,15 @@ const easeInOutCubic = (t) => {
|
|
|
19
19
|
* @param targetY - The target vertical scroll position in pixels
|
|
20
20
|
* @param duration - The duration of the scroll animation in milliseconds (defaults to 300ms)
|
|
21
21
|
*
|
|
22
|
+
* Under `prefers-reduced-motion: reduce` this jumps straight to the target instead of easing.
|
|
23
|
+
* The preference is read once, at call time, so toggling it mid-scroll will not interrupt a
|
|
24
|
+
* scroll already in flight — deliberate, since the scroll is at most a few hundred milliseconds.
|
|
25
|
+
*
|
|
26
|
+
* The `typeof` check is required rather than defensive: jsdom does not implement `matchMedia`,
|
|
27
|
+
* so an unguarded call would throw in tests. (`window` itself is not guarded because this
|
|
28
|
+
* function already dereferences `window.scrollY` unconditionally and only runs from event
|
|
29
|
+
* handlers.)
|
|
30
|
+
*
|
|
22
31
|
* @example
|
|
23
32
|
* ```tsx
|
|
24
33
|
* // Scroll to 500px from the top over 300ms
|
|
@@ -33,6 +42,10 @@ const easeInOutCubic = (t) => {
|
|
|
33
42
|
* ```
|
|
34
43
|
*/
|
|
35
44
|
const smoothScrollTo = (targetY, duration = 300) => {
|
|
45
|
+
if (typeof window.matchMedia === "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
|
|
46
|
+
window.scrollTo(0, targetY);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
36
49
|
const startY = window.scrollY;
|
|
37
50
|
const distance = targetY - startY;
|
|
38
51
|
const startTime = performance.now();
|
|
@@ -135,4 +148,4 @@ Object.defineProperty(exports, "ViewMore", {
|
|
|
135
148
|
}
|
|
136
149
|
});
|
|
137
150
|
|
|
138
|
-
//# sourceMappingURL=ViewMore-
|
|
151
|
+
//# sourceMappingURL=ViewMore-BcoSRZSl.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewMore-BcoSRZSl.cjs","names":["effectEventListener","InlineButton","CaretUp","CaretDown"],"sources":["../src/utils/smoothScrollTo.ts","../src/ViewMore/ViewMore.tsx"],"sourcesContent":["/**\n * Easing function for smooth scroll animation\n * Uses cubic easing in-out curve\n * @param t - Progress value between 0 and 1\n * @returns Eased progress value\n */\nconst easeInOutCubic = (t: number): number => {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n};\n\n/**\n * Smoothly scrolls the window to a specific vertical position using requestAnimationFrame\n * @param targetY - The target vertical scroll position in pixels\n * @param duration - The duration of the scroll animation in milliseconds (defaults to 300ms)\n *\n * Under `prefers-reduced-motion: reduce` this jumps straight to the target instead of easing.\n * The preference is read once, at call time, so toggling it mid-scroll will not interrupt a\n * scroll already in flight — deliberate, since the scroll is at most a few hundred milliseconds.\n *\n * The `typeof` check is required rather than defensive: jsdom does not implement `matchMedia`,\n * so an unguarded call would throw in tests. (`window` itself is not guarded because this\n * function already dereferences `window.scrollY` unconditionally and only runs from event\n * handlers.)\n *\n * @example\n * ```tsx\n * // Scroll to 500px from the top over 300ms\n * smoothScrollTo(500);\n *\n * // Scroll to top of an element with custom duration\n * const element = document.getElementById('my-element');\n * if (element) {\n * const targetY = element.getBoundingClientRect().top + window.scrollY;\n * smoothScrollTo(targetY, 500);\n * }\n * ```\n */\nexport const smoothScrollTo = (targetY: number, duration: number = 300): void => {\n const prefersReducedMotion =\n typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n if (prefersReducedMotion) {\n window.scrollTo(0, targetY);\n\n return;\n }\n\n const startY = window.scrollY;\n const distance = targetY - startY;\n const startTime = performance.now();\n\n const scroll = (currentTime: number) => {\n const elapsed = currentTime - startTime;\n const progress = Math.min(elapsed / duration, 1);\n const easeProgress = easeInOutCubic(progress);\n\n window.scrollTo(0, startY + distance * easeProgress);\n\n if (progress < 1) {\n requestAnimationFrame(scroll);\n }\n };\n\n requestAnimationFrame(scroll);\n};\n","import { cn, wrapVarRgb } from '@evolve.ui/theme-system';\nimport { MouseEvent, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { CaretDown, CaretUp } from '../Icons';\nimport { InlineButton } from '../Typography/InlineButton/InlineButton';\nimport { effectEventListener } from '../utils/effectEventListener';\nimport { smoothScrollTo } from '../utils/smoothScrollTo';\n\nconst SCROLL_TOP_OFFSET = 100;\nconst SCROLL_DURATION = 200;\n\ntype Props = {\n /**\n * Determines whether to center the inline button.\n */\n centerInlineButton?: boolean;\n /**\n * The inner text description or content to display.\n *\n */\n children: React.ReactNode;\n className?: string;\n /**\n * Custom text for the collapse button.\n *\n * @default 'Read Less'\n */\n collapseText?: string;\n /**\n * Whether the view more should be expanded by default.\n *\n * @default false\n */\n defaultExpanded?: boolean;\n /**\n * Prevents expansion/collapse while still allowing onClick callback to fire.\n * Useful when you want to control the expansion behavior externally.\n *\n * @default false\n */\n disableExpand?: boolean;\n /**\n * Custom text for the expand button.\n *\n * @default 'Read More'\n */\n expandText?: string;\n /**\n * Custom fade color.\n */\n fadeBackgroundColor?: string;\n /**\n * Callback function that is called when the view more is expanded or collapsed.\n */\n onChange?: (isExpanded: boolean) => void;\n /**\n * Callback function that is called when the view more button is clicked.\n * Can be used to track analytics or trigger other actions when the view more is interacted with.\n * Use the `disableExpand` prop if you want to prevent the default expansion/collapse behavior.\n */\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Determines whether to remove the fade background color.\n */\n removeFadeBackgroundColor?: boolean;\n /**\n * Whether to display caret icons (CaretDown/CaretUp) alongside the button text.\n *\n * @default false\n */\n showIcon?: boolean;\n /**\n * Number in pixels at which the text description will cut off and show the expand toggle.\n *\n * @default 150\n */\n textCutoffHeight?: number;\n /**\n * Determines whether to use a weak inline button.\n */\n useWeakInlineButton?: boolean;\n};\n\nexport const ViewMore = ({\n centerInlineButton,\n children,\n className,\n collapseText = 'Read Less',\n defaultExpanded = false,\n disableExpand = false,\n expandText = 'Read More',\n fadeBackgroundColor,\n onChange,\n onClick,\n removeFadeBackgroundColor,\n showIcon = false,\n textCutoffHeight = 150,\n useWeakInlineButton,\n}: Props) => {\n const [isExpanded, setIsExpanded] = useState<boolean>(defaultExpanded);\n // Set initial height for SSR-friendly rendering:\n // - When expanded: Use large value (9999px) to show all content before useEffect measures actual height\n // - When collapsed: Use textCutoffHeight to truncate content appropriately\n const [height, setHeight] = useState<number>(defaultExpanded ? 9999 : textCutoffHeight);\n const [showViewToggle, setShowViewToggle] = useState<boolean>(false);\n const [enableTransitions, setEnableTransitions] = useState<boolean>(false);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n\n const toggleDescription = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n\n // If disableExpand is true, call onClick but don't toggle the expansion\n if (disableExpand) {\n return;\n }\n\n // Enable transitions on first user interaction\n setEnableTransitions(true);\n\n setIsExpanded((prevIsExpanded) => {\n const newHeight = prevIsExpanded\n ? textCutoffHeight\n : (contentRef.current?.scrollHeight ?? textCutoffHeight);\n setHeight(newHeight);\n onChange?.(!prevIsExpanded);\n\n // Scroll to top when collapsing with custom smooth scroll to match 300ms transition\n if (prevIsExpanded && containerRef.current) {\n const top = containerRef.current.getBoundingClientRect().top + window.scrollY - SCROLL_TOP_OFFSET;\n smoothScrollTo(top, SCROLL_DURATION);\n }\n\n return !prevIsExpanded;\n });\n },\n [textCutoffHeight, onChange, onClick, disableExpand]\n );\n\n const updateView = useCallback(() => {\n if (!contentRef.current) {\n return;\n }\n\n const scrollHeight = contentRef.current.scrollHeight;\n const shouldShowToggle = scrollHeight > textCutoffHeight;\n setShowViewToggle(shouldShowToggle);\n setHeight(isExpanded || !shouldShowToggle ? scrollHeight : textCutoffHeight);\n }, [isExpanded, textCutoffHeight]);\n\n useEffect(() => {\n if (!contentRef.current) {\n return;\n }\n updateView();\n\n const cleanupResizeListener = effectEventListener(window, 'resize', updateView);\n\n // Add ResizeObserver to detect content height changes\n const resizeObserver = new ResizeObserver(updateView);\n resizeObserver.observe(contentRef.current);\n\n return () => {\n cleanupResizeListener();\n resizeObserver.disconnect();\n };\n }, [updateView, children]);\n\n return (\n <div className={cn(className, 'flex flex-col gap-xs')}>\n <div\n className={cn('relative overflow-hidden', {\n 'transition-all duration-300 ease-in-out': enableTransitions,\n })}\n data-testid=\"description-container\"\n ref={containerRef}\n style={{\n height: showViewToggle ? `${height}px` : 'auto',\n maxHeight: showViewToggle || isExpanded ? undefined : `${textCutoffHeight}px`,\n }}\n >\n <div ref={contentRef}>{children}</div>\n {showViewToggle && !removeFadeBackgroundColor && !isExpanded && (\n <div\n className=\"absolute bottom-0 left-0 right-0 h-xl w-full\"\n style={{\n background: fadeBackgroundColor\n ? `linear-gradient(to bottom, transparent, ${fadeBackgroundColor})`\n : `linear-gradient(to bottom, transparent, ${wrapVarRgb('--color-background-primary')})`,\n }}\n />\n )}\n </div>\n {showViewToggle && (\n <div\n className={cn('w-full', {\n 'text-center': centerInlineButton,\n })}\n >\n {useWeakInlineButton ? (\n <InlineButton\n className=\"w-fit\"\n icon={showIcon ? (isExpanded ? CaretUp : CaretDown) : undefined}\n iconPlacement=\"right\"\n onClick={toggleDescription}\n style=\"neutral\"\n >\n {isExpanded ? collapseText : expandText}\n </InlineButton>\n ) : (\n <InlineButton\n className=\"w-fit\"\n icon={showIcon ? (isExpanded ? CaretUp : CaretDown) : undefined}\n iconPlacement=\"right\"\n onClick={toggleDescription}\n >\n {isExpanded ? collapseText : expandText}\n </InlineButton>\n )}\n </div>\n )}\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -19,6 +19,15 @@ const easeInOutCubic = (t) => {
|
|
|
19
19
|
* @param targetY - The target vertical scroll position in pixels
|
|
20
20
|
* @param duration - The duration of the scroll animation in milliseconds (defaults to 300ms)
|
|
21
21
|
*
|
|
22
|
+
* Under `prefers-reduced-motion: reduce` this jumps straight to the target instead of easing.
|
|
23
|
+
* The preference is read once, at call time, so toggling it mid-scroll will not interrupt a
|
|
24
|
+
* scroll already in flight — deliberate, since the scroll is at most a few hundred milliseconds.
|
|
25
|
+
*
|
|
26
|
+
* The `typeof` check is required rather than defensive: jsdom does not implement `matchMedia`,
|
|
27
|
+
* so an unguarded call would throw in tests. (`window` itself is not guarded because this
|
|
28
|
+
* function already dereferences `window.scrollY` unconditionally and only runs from event
|
|
29
|
+
* handlers.)
|
|
30
|
+
*
|
|
22
31
|
* @example
|
|
23
32
|
* ```tsx
|
|
24
33
|
* // Scroll to 500px from the top over 300ms
|
|
@@ -33,6 +42,10 @@ const easeInOutCubic = (t) => {
|
|
|
33
42
|
* ```
|
|
34
43
|
*/
|
|
35
44
|
const smoothScrollTo = (targetY, duration = 300) => {
|
|
45
|
+
if (typeof window.matchMedia === "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
|
|
46
|
+
window.scrollTo(0, targetY);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
36
49
|
const startY = window.scrollY;
|
|
37
50
|
const distance = targetY - startY;
|
|
38
51
|
const startTime = performance.now();
|
|
@@ -130,4 +143,4 @@ const ViewMore = ({ centerInlineButton, children, className, collapseText = "Rea
|
|
|
130
143
|
//#endregion
|
|
131
144
|
export { ViewMore as t };
|
|
132
145
|
|
|
133
|
-
//# sourceMappingURL=ViewMore-
|
|
146
|
+
//# sourceMappingURL=ViewMore-Be0TQZ_2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewMore-Be0TQZ_2.mjs","names":[],"sources":["../src/utils/smoothScrollTo.ts","../src/ViewMore/ViewMore.tsx"],"sourcesContent":["/**\n * Easing function for smooth scroll animation\n * Uses cubic easing in-out curve\n * @param t - Progress value between 0 and 1\n * @returns Eased progress value\n */\nconst easeInOutCubic = (t: number): number => {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n};\n\n/**\n * Smoothly scrolls the window to a specific vertical position using requestAnimationFrame\n * @param targetY - The target vertical scroll position in pixels\n * @param duration - The duration of the scroll animation in milliseconds (defaults to 300ms)\n *\n * Under `prefers-reduced-motion: reduce` this jumps straight to the target instead of easing.\n * The preference is read once, at call time, so toggling it mid-scroll will not interrupt a\n * scroll already in flight — deliberate, since the scroll is at most a few hundred milliseconds.\n *\n * The `typeof` check is required rather than defensive: jsdom does not implement `matchMedia`,\n * so an unguarded call would throw in tests. (`window` itself is not guarded because this\n * function already dereferences `window.scrollY` unconditionally and only runs from event\n * handlers.)\n *\n * @example\n * ```tsx\n * // Scroll to 500px from the top over 300ms\n * smoothScrollTo(500);\n *\n * // Scroll to top of an element with custom duration\n * const element = document.getElementById('my-element');\n * if (element) {\n * const targetY = element.getBoundingClientRect().top + window.scrollY;\n * smoothScrollTo(targetY, 500);\n * }\n * ```\n */\nexport const smoothScrollTo = (targetY: number, duration: number = 300): void => {\n const prefersReducedMotion =\n typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n if (prefersReducedMotion) {\n window.scrollTo(0, targetY);\n\n return;\n }\n\n const startY = window.scrollY;\n const distance = targetY - startY;\n const startTime = performance.now();\n\n const scroll = (currentTime: number) => {\n const elapsed = currentTime - startTime;\n const progress = Math.min(elapsed / duration, 1);\n const easeProgress = easeInOutCubic(progress);\n\n window.scrollTo(0, startY + distance * easeProgress);\n\n if (progress < 1) {\n requestAnimationFrame(scroll);\n }\n };\n\n requestAnimationFrame(scroll);\n};\n","import { cn, wrapVarRgb } from '@evolve.ui/theme-system';\nimport { MouseEvent, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { CaretDown, CaretUp } from '../Icons';\nimport { InlineButton } from '../Typography/InlineButton/InlineButton';\nimport { effectEventListener } from '../utils/effectEventListener';\nimport { smoothScrollTo } from '../utils/smoothScrollTo';\n\nconst SCROLL_TOP_OFFSET = 100;\nconst SCROLL_DURATION = 200;\n\ntype Props = {\n /**\n * Determines whether to center the inline button.\n */\n centerInlineButton?: boolean;\n /**\n * The inner text description or content to display.\n *\n */\n children: React.ReactNode;\n className?: string;\n /**\n * Custom text for the collapse button.\n *\n * @default 'Read Less'\n */\n collapseText?: string;\n /**\n * Whether the view more should be expanded by default.\n *\n * @default false\n */\n defaultExpanded?: boolean;\n /**\n * Prevents expansion/collapse while still allowing onClick callback to fire.\n * Useful when you want to control the expansion behavior externally.\n *\n * @default false\n */\n disableExpand?: boolean;\n /**\n * Custom text for the expand button.\n *\n * @default 'Read More'\n */\n expandText?: string;\n /**\n * Custom fade color.\n */\n fadeBackgroundColor?: string;\n /**\n * Callback function that is called when the view more is expanded or collapsed.\n */\n onChange?: (isExpanded: boolean) => void;\n /**\n * Callback function that is called when the view more button is clicked.\n * Can be used to track analytics or trigger other actions when the view more is interacted with.\n * Use the `disableExpand` prop if you want to prevent the default expansion/collapse behavior.\n */\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Determines whether to remove the fade background color.\n */\n removeFadeBackgroundColor?: boolean;\n /**\n * Whether to display caret icons (CaretDown/CaretUp) alongside the button text.\n *\n * @default false\n */\n showIcon?: boolean;\n /**\n * Number in pixels at which the text description will cut off and show the expand toggle.\n *\n * @default 150\n */\n textCutoffHeight?: number;\n /**\n * Determines whether to use a weak inline button.\n */\n useWeakInlineButton?: boolean;\n};\n\nexport const ViewMore = ({\n centerInlineButton,\n children,\n className,\n collapseText = 'Read Less',\n defaultExpanded = false,\n disableExpand = false,\n expandText = 'Read More',\n fadeBackgroundColor,\n onChange,\n onClick,\n removeFadeBackgroundColor,\n showIcon = false,\n textCutoffHeight = 150,\n useWeakInlineButton,\n}: Props) => {\n const [isExpanded, setIsExpanded] = useState<boolean>(defaultExpanded);\n // Set initial height for SSR-friendly rendering:\n // - When expanded: Use large value (9999px) to show all content before useEffect measures actual height\n // - When collapsed: Use textCutoffHeight to truncate content appropriately\n const [height, setHeight] = useState<number>(defaultExpanded ? 9999 : textCutoffHeight);\n const [showViewToggle, setShowViewToggle] = useState<boolean>(false);\n const [enableTransitions, setEnableTransitions] = useState<boolean>(false);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n\n const toggleDescription = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n\n // If disableExpand is true, call onClick but don't toggle the expansion\n if (disableExpand) {\n return;\n }\n\n // Enable transitions on first user interaction\n setEnableTransitions(true);\n\n setIsExpanded((prevIsExpanded) => {\n const newHeight = prevIsExpanded\n ? textCutoffHeight\n : (contentRef.current?.scrollHeight ?? textCutoffHeight);\n setHeight(newHeight);\n onChange?.(!prevIsExpanded);\n\n // Scroll to top when collapsing with custom smooth scroll to match 300ms transition\n if (prevIsExpanded && containerRef.current) {\n const top = containerRef.current.getBoundingClientRect().top + window.scrollY - SCROLL_TOP_OFFSET;\n smoothScrollTo(top, SCROLL_DURATION);\n }\n\n return !prevIsExpanded;\n });\n },\n [textCutoffHeight, onChange, onClick, disableExpand]\n );\n\n const updateView = useCallback(() => {\n if (!contentRef.current) {\n return;\n }\n\n const scrollHeight = contentRef.current.scrollHeight;\n const shouldShowToggle = scrollHeight > textCutoffHeight;\n setShowViewToggle(shouldShowToggle);\n setHeight(isExpanded || !shouldShowToggle ? scrollHeight : textCutoffHeight);\n }, [isExpanded, textCutoffHeight]);\n\n useEffect(() => {\n if (!contentRef.current) {\n return;\n }\n updateView();\n\n const cleanupResizeListener = effectEventListener(window, 'resize', updateView);\n\n // Add ResizeObserver to detect content height changes\n const resizeObserver = new ResizeObserver(updateView);\n resizeObserver.observe(contentRef.current);\n\n return () => {\n cleanupResizeListener();\n resizeObserver.disconnect();\n };\n }, [updateView, children]);\n\n return (\n <div className={cn(className, 'flex flex-col gap-xs')}>\n <div\n className={cn('relative overflow-hidden', {\n 'transition-all duration-300 ease-in-out': enableTransitions,\n })}\n data-testid=\"description-container\"\n ref={containerRef}\n style={{\n height: showViewToggle ? `${height}px` : 'auto',\n maxHeight: showViewToggle || isExpanded ? undefined : `${textCutoffHeight}px`,\n }}\n >\n <div ref={contentRef}>{children}</div>\n {showViewToggle && !removeFadeBackgroundColor && !isExpanded && (\n <div\n className=\"absolute bottom-0 left-0 right-0 h-xl w-full\"\n style={{\n background: fadeBackgroundColor\n ? `linear-gradient(to bottom, transparent, ${fadeBackgroundColor})`\n : `linear-gradient(to bottom, transparent, ${wrapVarRgb('--color-background-primary')})`,\n }}\n />\n )}\n </div>\n {showViewToggle && (\n <div\n className={cn('w-full', {\n 'text-center': centerInlineButton,\n })}\n >\n {useWeakInlineButton ? (\n <InlineButton\n className=\"w-fit\"\n icon={showIcon ? (isExpanded ? CaretUp : CaretDown) : undefined}\n iconPlacement=\"right\"\n onClick={toggleDescription}\n style=\"neutral\"\n >\n {isExpanded ? collapseText : expandText}\n </InlineButton>\n ) : (\n <InlineButton\n className=\"w-fit\"\n icon={showIcon ? (isExpanded ? CaretUp : CaretDown) : undefined}\n iconPlacement=\"right\"\n onClick={toggleDescription}\n >\n {isExpanded ? collapseText : expandText}\n </InlineButton>\n )}\n </div>\n )}\n </div>\n );\n};\n"],"mappings":"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"}
|
package/bottomSheet.cjs
CHANGED
|
@@ -3,5 +3,5 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
__esModule: { value: true },
|
|
4
4
|
[Symbol.toStringTag]: { value: "Module" }
|
|
5
5
|
});
|
|
6
|
-
const require_BottomSheet = require("./BottomSheet-
|
|
6
|
+
const require_BottomSheet = require("./BottomSheet-D5w0WZDl.cjs");
|
|
7
7
|
exports.BottomSheet = require_BottomSheet.BottomSheet;
|
package/bottomSheet.mjs
CHANGED
|
@@ -7,15 +7,15 @@ let _evolve_ui_theme_system = require("@evolve.ui/theme-system");
|
|
|
7
7
|
const filledPrimaryClasses = (0, _evolve_ui_theme_system.cn)("bg-primary-500 text-text-inverse outline-transparent hover:bg-primary-700 active:bg-primary-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-primary-500 aria-busy:text-transparent");
|
|
8
8
|
const filledCriticalClasses = (0, _evolve_ui_theme_system.cn)("bg-critical-500 text-text-inverse outline-transparent hover:bg-critical-700 active:bg-critical-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-critical-500 aria-busy:text-transparent");
|
|
9
9
|
const filledNeutralClasses = (0, _evolve_ui_theme_system.cn)("bg-surface-500 text-text-inverse outline-transparent hover:bg-surface-700 active:bg-surface-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-surface-500 aria-busy:text-transparent");
|
|
10
|
-
const filledInverseClasses = (0, _evolve_ui_theme_system.cn)("bg-surface-50 text-primary-500 outline-transparent
|
|
10
|
+
const filledInverseClasses = (0, _evolve_ui_theme_system.cn)("hui-focus-visible-outline-inverse bg-surface-50 text-primary-500 outline-transparent hover:bg-surface-100 active:bg-surface-200 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:text-transparent");
|
|
11
11
|
const outlinedNeutralClasses = (0, _evolve_ui_theme_system.cn)("bg-background-primary text-surface-500 outline outline-1 outline-current hover:bg-surface-100 hover:text-surface-700 active:bg-surface-200 active:text-surface-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-surface-500");
|
|
12
12
|
const outlinedPrimaryClasses = (0, _evolve_ui_theme_system.cn)("bg-background-primary text-primary-500 outline outline-1 outline-current hover:bg-primary-100 hover:text-primary-700 active:bg-primary-200 active:text-primary-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-primary-500");
|
|
13
13
|
const outlinedCriticalClasses = (0, _evolve_ui_theme_system.cn)("bg-background-primary text-critical-500 outline outline-1 outline-current hover:bg-critical-100 hover:text-critical-700 active:bg-critical-200 active:text-critical-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-critical-500");
|
|
14
|
-
const outlinedInverseClasses = (0, _evolve_ui_theme_system.cn)("outline-solid bg-transparent text-icon-inverse outline outline-1 outline-surface-50
|
|
14
|
+
const outlinedInverseClasses = (0, _evolve_ui_theme_system.cn)("outline-solid hui-focus-visible-outline-inverse bg-transparent text-icon-inverse outline outline-1 outline-surface-50 hover:bg-background-hover-inverse active:bg-background-pressed-inverse disabled:cursor-not-allowed disabled:text-text-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:text-transparent");
|
|
15
15
|
const transparentPrimaryClasses = (0, _evolve_ui_theme_system.cn)("bg-transparent text-primary-500 outline-transparent hover:bg-background-hover hover:text-primary-700 active:bg-background-pressed active:text-primary-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent");
|
|
16
16
|
const transparentCriticalClasses = (0, _evolve_ui_theme_system.cn)("bg-transparent text-critical-500 outline-transparent hover:bg-background-hover hover:text-critical-700 active:bg-background-pressed active:text-critical-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent");
|
|
17
17
|
const transparentNeutralClasses = (0, _evolve_ui_theme_system.cn)("bg-transparent text-surface-500 outline-transparent hover:bg-background-hover hover:text-surface-700 active:bg-background-pressed active:text-surface-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent");
|
|
18
|
-
const transparentInverseClasses = (0, _evolve_ui_theme_system.cn)("bg-transparent text-icon-inverse outline-transparent
|
|
18
|
+
const transparentInverseClasses = (0, _evolve_ui_theme_system.cn)("hui-focus-visible-outline-inverse bg-transparent text-icon-inverse outline-transparent hover:bg-background-hover-inverse active:bg-background-pressed-inverse disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:text-transparent");
|
|
19
19
|
//#endregion
|
|
20
20
|
Object.defineProperty(exports, "filledCriticalClasses", {
|
|
21
21
|
enumerable: true,
|
|
@@ -90,4 +90,4 @@ Object.defineProperty(exports, "transparentPrimaryClasses", {
|
|
|
90
90
|
}
|
|
91
91
|
});
|
|
92
92
|
|
|
93
|
-
//# sourceMappingURL=buttonColorClasses-
|
|
93
|
+
//# sourceMappingURL=buttonColorClasses-CQQmLYfk.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buttonColorClasses-CQQmLYfk.cjs","names":[],"sources":["../src/Button/buttonColorClasses.ts"],"sourcesContent":["import { cn } from '@evolve.ui/theme-system';\n\n/**\n * Color class constants shared between Button and IconButton components.\n * Each constant represents a combination of variant (filled/outlined/transparent) and style (primary/critical/neutral/inverse).\n */\n\nexport const filledPrimaryClasses = cn(\n 'bg-primary-500 text-text-inverse outline-transparent hover:bg-primary-700 active:bg-primary-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-primary-500 aria-busy:text-transparent'\n);\n\nexport const filledCriticalClasses = cn(\n 'bg-critical-500 text-text-inverse outline-transparent hover:bg-critical-700 active:bg-critical-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-critical-500 aria-busy:text-transparent'\n);\n\nexport const filledNeutralClasses = cn(\n 'bg-surface-500 text-text-inverse outline-transparent hover:bg-surface-700 active:bg-surface-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-surface-500 aria-busy:text-transparent'\n);\n\nexport const filledInverseClasses = cn(\n 'hui-focus-visible-outline-inverse bg-surface-50 text-primary-500 outline-transparent hover:bg-surface-100 active:bg-surface-200 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:text-transparent'\n);\n\nexport const outlinedNeutralClasses = cn(\n 'bg-background-primary text-surface-500 outline outline-1 outline-current hover:bg-surface-100 hover:text-surface-700 active:bg-surface-200 active:text-surface-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-surface-500'\n);\nexport const outlinedPrimaryClasses = cn(\n 'bg-background-primary text-primary-500 outline outline-1 outline-current hover:bg-primary-100 hover:text-primary-700 active:bg-primary-200 active:text-primary-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-primary-500'\n);\n\nexport const outlinedCriticalClasses = cn(\n 'bg-background-primary text-critical-500 outline outline-1 outline-current hover:bg-critical-100 hover:text-critical-700 active:bg-critical-200 active:text-critical-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-critical-500'\n);\n\nexport const outlinedInverseClasses = cn(\n // Atomic (DS-98): de-prefixing the ring and deleting the bare-focus outline-color are one edit.\n // The latter is deleted rather than de-prefixed — this string carries a static `outline outline-1\n // outline-surface-50`, so an unconditional outline-color would permanently recolour the resting\n // outline; it also recoloured it on mouse click, which is the SA-07 defect. The -inverse ring\n // already sets that colour at :focus-visible.\n 'outline-solid hui-focus-visible-outline-inverse bg-transparent text-icon-inverse outline outline-1 outline-surface-50 hover:bg-background-hover-inverse active:bg-background-pressed-inverse disabled:cursor-not-allowed disabled:text-text-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:text-transparent'\n);\n\nexport const transparentPrimaryClasses = cn(\n 'bg-transparent text-primary-500 outline-transparent hover:bg-background-hover hover:text-primary-700 active:bg-background-pressed active:text-primary-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent'\n);\n\nexport const transparentCriticalClasses = cn(\n 'bg-transparent text-critical-500 outline-transparent hover:bg-background-hover hover:text-critical-700 active:bg-background-pressed active:text-critical-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent'\n);\n\nexport const transparentNeutralClasses = cn(\n 'bg-transparent text-surface-500 outline-transparent hover:bg-background-hover hover:text-surface-700 active:bg-background-pressed active:text-surface-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent'\n);\n\nexport const transparentInverseClasses = cn(\n 'hui-focus-visible-outline-inverse bg-transparent text-icon-inverse outline-transparent hover:bg-background-hover-inverse active:bg-background-pressed-inverse disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:text-transparent'\n);\n"],"mappings":";;;;;;AAOA,MAAa,wBAAA,GAAA,wBAAA,GAAA,CACT,8OACJ;AAEA,MAAa,yBAAA,GAAA,wBAAA,GAAA,CACT,kPACJ;AAEA,MAAa,wBAAA,GAAA,wBAAA,GAAA,CACT,8OACJ;AAEA,MAAa,wBAAA,GAAA,wBAAA,GAAA,CACT,qPACJ;AAEA,MAAa,0BAAA,GAAA,wBAAA,GAAA,CACT,uXACJ;AACA,MAAa,0BAAA,GAAA,wBAAA,GAAA,CACT,uXACJ;AAEA,MAAa,2BAAA,GAAA,wBAAA,GAAA,CACT,6XACJ;AAEA,MAAa,0BAAA,GAAA,wBAAA,GAAA,CAMT,+UACJ;AAEA,MAAa,6BAAA,GAAA,wBAAA,GAAA,CACT,uSACJ;AAEA,MAAa,8BAAA,GAAA,wBAAA,GAAA,CACT,0SACJ;AAEA,MAAa,6BAAA,GAAA,wBAAA,GAAA,CACT,uSACJ;AAEA,MAAa,6BAAA,GAAA,wBAAA,GAAA,CACT,2QACJ"}
|
|
@@ -7,16 +7,16 @@ import { cn } from "@evolve.ui/theme-system";
|
|
|
7
7
|
const filledPrimaryClasses = cn("bg-primary-500 text-text-inverse outline-transparent hover:bg-primary-700 active:bg-primary-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-primary-500 aria-busy:text-transparent");
|
|
8
8
|
const filledCriticalClasses = cn("bg-critical-500 text-text-inverse outline-transparent hover:bg-critical-700 active:bg-critical-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-critical-500 aria-busy:text-transparent");
|
|
9
9
|
const filledNeutralClasses = cn("bg-surface-500 text-text-inverse outline-transparent hover:bg-surface-700 active:bg-surface-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-surface-500 aria-busy:text-transparent");
|
|
10
|
-
const filledInverseClasses = cn("bg-surface-50 text-primary-500 outline-transparent
|
|
10
|
+
const filledInverseClasses = cn("hui-focus-visible-outline-inverse bg-surface-50 text-primary-500 outline-transparent hover:bg-surface-100 active:bg-surface-200 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:text-transparent");
|
|
11
11
|
const outlinedNeutralClasses = cn("bg-background-primary text-surface-500 outline outline-1 outline-current hover:bg-surface-100 hover:text-surface-700 active:bg-surface-200 active:text-surface-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-surface-500");
|
|
12
12
|
const outlinedPrimaryClasses = cn("bg-background-primary text-primary-500 outline outline-1 outline-current hover:bg-primary-100 hover:text-primary-700 active:bg-primary-200 active:text-primary-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-primary-500");
|
|
13
13
|
const outlinedCriticalClasses = cn("bg-background-primary text-critical-500 outline outline-1 outline-current hover:bg-critical-100 hover:text-critical-700 active:bg-critical-200 active:text-critical-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-critical-500");
|
|
14
|
-
const outlinedInverseClasses = cn("outline-solid bg-transparent text-icon-inverse outline outline-1 outline-surface-50
|
|
14
|
+
const outlinedInverseClasses = cn("outline-solid hui-focus-visible-outline-inverse bg-transparent text-icon-inverse outline outline-1 outline-surface-50 hover:bg-background-hover-inverse active:bg-background-pressed-inverse disabled:cursor-not-allowed disabled:text-text-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:text-transparent");
|
|
15
15
|
const transparentPrimaryClasses = cn("bg-transparent text-primary-500 outline-transparent hover:bg-background-hover hover:text-primary-700 active:bg-background-pressed active:text-primary-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent");
|
|
16
16
|
const transparentCriticalClasses = cn("bg-transparent text-critical-500 outline-transparent hover:bg-background-hover hover:text-critical-700 active:bg-background-pressed active:text-critical-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent");
|
|
17
17
|
const transparentNeutralClasses = cn("bg-transparent text-surface-500 outline-transparent hover:bg-background-hover hover:text-surface-700 active:bg-background-pressed active:text-surface-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent");
|
|
18
|
-
const transparentInverseClasses = cn("bg-transparent text-icon-inverse outline-transparent
|
|
18
|
+
const transparentInverseClasses = cn("hui-focus-visible-outline-inverse bg-transparent text-icon-inverse outline-transparent hover:bg-background-hover-inverse active:bg-background-pressed-inverse disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:text-transparent");
|
|
19
19
|
//#endregion
|
|
20
20
|
export { outlinedCriticalClasses as a, outlinedPrimaryClasses as c, transparentNeutralClasses as d, transparentPrimaryClasses as f, filledPrimaryClasses as i, transparentCriticalClasses as l, filledInverseClasses as n, outlinedInverseClasses as o, filledNeutralClasses as r, outlinedNeutralClasses as s, filledCriticalClasses as t, transparentInverseClasses as u };
|
|
21
21
|
|
|
22
|
-
//# sourceMappingURL=buttonColorClasses-
|
|
22
|
+
//# sourceMappingURL=buttonColorClasses-CQnqAJXl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buttonColorClasses-CQnqAJXl.mjs","names":[],"sources":["../src/Button/buttonColorClasses.ts"],"sourcesContent":["import { cn } from '@evolve.ui/theme-system';\n\n/**\n * Color class constants shared between Button and IconButton components.\n * Each constant represents a combination of variant (filled/outlined/transparent) and style (primary/critical/neutral/inverse).\n */\n\nexport const filledPrimaryClasses = cn(\n 'bg-primary-500 text-text-inverse outline-transparent hover:bg-primary-700 active:bg-primary-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-primary-500 aria-busy:text-transparent'\n);\n\nexport const filledCriticalClasses = cn(\n 'bg-critical-500 text-text-inverse outline-transparent hover:bg-critical-700 active:bg-critical-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-critical-500 aria-busy:text-transparent'\n);\n\nexport const filledNeutralClasses = cn(\n 'bg-surface-500 text-text-inverse outline-transparent hover:bg-surface-700 active:bg-surface-900 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:bg-surface-500 aria-busy:text-transparent'\n);\n\nexport const filledInverseClasses = cn(\n 'hui-focus-visible-outline-inverse bg-surface-50 text-primary-500 outline-transparent hover:bg-surface-100 active:bg-surface-200 disabled:cursor-not-allowed disabled:bg-background-disabled aria-busy:cursor-not-allowed aria-busy:text-transparent'\n);\n\nexport const outlinedNeutralClasses = cn(\n 'bg-background-primary text-surface-500 outline outline-1 outline-current hover:bg-surface-100 hover:text-surface-700 active:bg-surface-200 active:text-surface-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-surface-500'\n);\nexport const outlinedPrimaryClasses = cn(\n 'bg-background-primary text-primary-500 outline outline-1 outline-current hover:bg-primary-100 hover:text-primary-700 active:bg-primary-200 active:text-primary-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-primary-500'\n);\n\nexport const outlinedCriticalClasses = cn(\n 'bg-background-primary text-critical-500 outline outline-1 outline-current hover:bg-critical-100 hover:text-critical-700 active:bg-critical-200 active:text-critical-900 disabled:cursor-not-allowed disabled:bg-background-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:bg-background-primary aria-busy:text-transparent aria-busy:outline-critical-500'\n);\n\nexport const outlinedInverseClasses = cn(\n // Atomic (DS-98): de-prefixing the ring and deleting the bare-focus outline-color are one edit.\n // The latter is deleted rather than de-prefixed — this string carries a static `outline outline-1\n // outline-surface-50`, so an unconditional outline-color would permanently recolour the resting\n // outline; it also recoloured it on mouse click, which is the SA-07 defect. The -inverse ring\n // already sets that colour at :focus-visible.\n 'outline-solid hui-focus-visible-outline-inverse bg-transparent text-icon-inverse outline outline-1 outline-surface-50 hover:bg-background-hover-inverse active:bg-background-pressed-inverse disabled:cursor-not-allowed disabled:text-text-disabled disabled:outline-border-disabled aria-busy:cursor-not-allowed aria-busy:text-transparent'\n);\n\nexport const transparentPrimaryClasses = cn(\n 'bg-transparent text-primary-500 outline-transparent hover:bg-background-hover hover:text-primary-700 active:bg-background-pressed active:text-primary-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent'\n);\n\nexport const transparentCriticalClasses = cn(\n 'bg-transparent text-critical-500 outline-transparent hover:bg-background-hover hover:text-critical-700 active:bg-background-pressed active:text-critical-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent'\n);\n\nexport const transparentNeutralClasses = cn(\n 'bg-transparent text-surface-500 outline-transparent hover:bg-background-hover hover:text-surface-700 active:bg-background-pressed active:text-surface-900 disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:bg-background-pressed aria-busy:text-transparent'\n);\n\nexport const transparentInverseClasses = cn(\n 'hui-focus-visible-outline-inverse bg-transparent text-icon-inverse outline-transparent hover:bg-background-hover-inverse active:bg-background-pressed-inverse disabled:cursor-not-allowed disabled:bg-transparent aria-busy:cursor-not-allowed aria-busy:text-transparent'\n);\n"],"mappings":";;;;;;AAOA,MAAa,uBAAuB,GAChC,8OACJ;AAEA,MAAa,wBAAwB,GACjC,kPACJ;AAEA,MAAa,uBAAuB,GAChC,8OACJ;AAEA,MAAa,uBAAuB,GAChC,qPACJ;AAEA,MAAa,yBAAyB,GAClC,uXACJ;AACA,MAAa,yBAAyB,GAClC,uXACJ;AAEA,MAAa,0BAA0B,GACnC,6XACJ;AAEA,MAAa,yBAAyB,GAMlC,+UACJ;AAEA,MAAa,4BAA4B,GACrC,uSACJ;AAEA,MAAa,6BAA6B,GACtC,0SACJ;AAEA,MAAa,4BAA4B,GACrC,uSACJ;AAEA,MAAa,4BAA4B,GACrC,2QACJ"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
__esModule: { value: true },
|
|
4
4
|
[Symbol.toStringTag]: { value: "Module" }
|
|
5
5
|
});
|
|
6
|
-
const require_FavoriteButton = require("../../FavoriteButton-
|
|
6
|
+
const require_FavoriteButton = require("../../FavoriteButton-BkIaWfgD.cjs");
|
|
7
7
|
let react = require("react");
|
|
8
8
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
9
|
//#region src/Card/components/createFavoriteButton.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { t as FavoriteButton } from "../../FavoriteButton-
|
|
2
|
+
import { t as FavoriteButton } from "../../FavoriteButton-7nK77lQP.mjs";
|
|
3
3
|
import { useCallback } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region src/Card/components/createFavoriteButton.tsx
|
package/cookieConsent.cjs
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
__esModule: { value: true },
|
|
4
4
|
[Symbol.toStringTag]: { value: "Module" }
|
|
5
5
|
});
|
|
6
|
-
const require_CookieConsent = require("./CookieConsent-
|
|
6
|
+
const require_CookieConsent = require("./CookieConsent-BSXJHMwX.cjs");
|
|
7
7
|
exports.ConsentSource = require_CookieConsent.ConsentSource;
|
|
8
8
|
exports.CookieConsent = require_CookieConsent.CookieConsent;
|
|
9
9
|
exports.DEFAULT_CONSENT_STORAGE_KEY = require_CookieConsent.DEFAULT_CONSENT_STORAGE_KEY;
|
package/cookieConsent.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { a as DEFAULT_COOKIE_CATEGORIES, i as ConsentSource, n as DEFAULT_CONSENT_STORAGE_KEY, r as useCookieConsent, t as CookieConsent } from "./CookieConsent-
|
|
2
|
+
import { a as DEFAULT_COOKIE_CATEGORIES, i as ConsentSource, n as DEFAULT_CONSENT_STORAGE_KEY, r as useCookieConsent, t as CookieConsent } from "./CookieConsent-B9dg9WdC.mjs";
|
|
3
3
|
export { ConsentSource, CookieConsent, DEFAULT_CONSENT_STORAGE_KEY, DEFAULT_COOKIE_CATEGORIES, useCookieConsent };
|
package/drawer.cjs
CHANGED
|
@@ -3,5 +3,5 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
__esModule: { value: true },
|
|
4
4
|
[Symbol.toStringTag]: { value: "Module" }
|
|
5
5
|
});
|
|
6
|
-
const require_Drawer = require("./Drawer-
|
|
6
|
+
const require_Drawer = require("./Drawer-3rA9dGCl.cjs");
|
|
7
7
|
exports.Drawer = require_Drawer.Drawer;
|
package/drawer.mjs
CHANGED