@arc-ui/components 12.0.0-alpha.0 → 12.0.0-beta.10
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/dist/Alert/Alert.cjs.js +9 -14
- package/dist/Alert/Alert.esm.js +8 -13
- package/dist/Alert/styles.css +1 -0
- package/dist/Align/Align.cjs.js +6 -7
- package/dist/Align/Align.esm.js +1 -2
- package/dist/Align/styles.css +1 -0
- package/dist/AppButton/AppButton.cjs.js +74 -0
- package/dist/AppButton/AppButton.esm.js +66 -0
- package/dist/AppButton/package.json +7 -0
- package/dist/AppButton/styles.css +1 -0
- package/dist/Avatar/Avatar.cjs.js +17 -0
- package/dist/Avatar/Avatar.esm.js +9 -0
- package/dist/Avatar/package.json +7 -0
- package/dist/Avatar/styles.css +1 -0
- package/dist/AvatarGroup/AvatarGroup.cjs.js +37 -0
- package/dist/AvatarGroup/AvatarGroup.esm.js +29 -0
- package/dist/AvatarGroup/package.json +7 -0
- package/dist/AvatarGroup/styles.css +1 -0
- package/dist/Badge/Badge.cjs.js +5 -28
- package/dist/Badge/Badge.esm.js +4 -27
- package/dist/Badge/styles.css +1 -0
- package/dist/Banner/Banner.cjs.js +21 -0
- package/dist/Banner/Banner.esm.js +13 -0
- package/dist/Banner/package.json +7 -0
- package/dist/Banner/styles.css +1 -0
- package/dist/BannerWithTabs/BannerWithTabs.cjs.js +62 -0
- package/dist/BannerWithTabs/BannerWithTabs.esm.js +54 -0
- package/dist/BannerWithTabs/package.json +7 -0
- package/dist/BannerWithTabs/styles.css +1 -0
- package/dist/Box/Box.cjs.js +6 -25
- package/dist/Box/Box.esm.js +5 -24
- package/dist/Box/styles.css +1 -0
- package/dist/BrandLogo/BrandLogo.cjs.js +3 -4
- package/dist/BrandLogo/BrandLogo.esm.js +3 -4
- package/dist/BrandLogo/styles.css +1 -0
- package/dist/Breadcrumbs/Breadcrumbs.cjs.js +7 -6
- package/dist/Breadcrumbs/Breadcrumbs.esm.js +7 -6
- package/dist/Breadcrumbs/styles.css +1 -0
- package/dist/Button/Button.cjs.js +5 -6
- package/dist/Button/Button.esm.js +5 -6
- package/dist/Button/styles.css +1 -0
- package/dist/ButtonV2/ButtonV2.cjs.js +15 -0
- package/dist/ButtonV2/ButtonV2.esm.js +7 -0
- package/dist/ButtonV2/package.json +7 -0
- package/dist/ButtonV2/styles.css +1 -0
- package/dist/Calendar/Calendar.cjs.js +21 -0
- package/dist/Calendar/Calendar.esm.js +13 -0
- package/dist/Calendar/package.json +7 -0
- package/dist/Calendar/styles.css +1 -0
- package/dist/CardFooter/CardFooter.cjs.js +17 -0
- package/dist/CardFooter/CardFooter.esm.js +9 -0
- package/dist/CardFooter/package.json +7 -0
- package/dist/CardFooter/styles.css +1 -0
- package/dist/CardHeading/CardHeading.cjs.js +14 -0
- package/dist/CardHeading/CardHeading.esm.js +6 -0
- package/dist/CardHeading/package.json +7 -0
- package/dist/CardHeading/styles.css +1 -0
- package/dist/Carousel/Carousel.cjs.js +1921 -0
- package/dist/Carousel/Carousel.esm.js +1913 -0
- package/dist/Carousel/package.json +7 -0
- package/dist/Carousel/styles.css +1 -0
- package/dist/Checkbox/Checkbox.cjs.js +8 -8
- package/dist/Checkbox/Checkbox.esm.js +8 -8
- package/dist/Checkbox/styles.css +1 -0
- package/dist/Columns/Columns.cjs.js +2 -3
- package/dist/Columns/Columns.esm.js +2 -3
- package/dist/Columns/styles.css +1 -0
- package/dist/ConditionalWrapper/ConditionalWrapper.cjs.js +10 -0
- package/dist/ConditionalWrapper/ConditionalWrapper.esm.js +2 -0
- package/dist/ConditionalWrapper/package.json +7 -0
- package/dist/ContentSwitcher/ContentSwitcher.cjs.js +20 -0
- package/dist/ContentSwitcher/ContentSwitcher.esm.js +12 -0
- package/dist/ContentSwitcher/package.json +7 -0
- package/dist/ContentSwitcher/styles.css +1 -0
- package/dist/ContentSwitcherDropdown/ContentSwitcherDropdown.cjs.js +23 -0
- package/dist/ContentSwitcherDropdown/ContentSwitcherDropdown.esm.js +15 -0
- package/dist/ContentSwitcherDropdown/package.json +7 -0
- package/dist/ContentSwitcherDropdown/styles.css +1 -0
- package/dist/DatePicker/DatePicker.cjs.js +36 -0
- package/dist/DatePicker/DatePicker.esm.js +23 -0
- package/dist/DatePicker/package.json +7 -0
- package/dist/DatePicker/styles.css +1 -0
- package/dist/Disclosure/Disclosure.cjs.js +13 -11
- package/dist/Disclosure/Disclosure.esm.js +11 -9
- package/dist/Disclosure/styles.css +1 -0
- package/dist/DisclosureMini/DisclosureMini.cjs.js +5 -6
- package/dist/DisclosureMini/DisclosureMini.esm.js +5 -6
- package/dist/DisclosureMini/styles.css +1 -0
- package/dist/Download/Download.cjs.js +16 -0
- package/dist/Download/Download.esm.js +8 -0
- package/dist/Download/package.json +7 -0
- package/dist/Download/styles.css +1 -0
- package/dist/Elevation/Elevation.cjs.js +4 -4
- package/dist/Elevation/Elevation.esm.js +1 -1
- package/dist/Elevation/styles.css +1 -0
- package/dist/Filter/Filter.cjs.js +4 -3
- package/dist/Filter/Filter.esm.js +4 -3
- package/dist/Filter/styles.css +1 -0
- package/dist/FormControl/FormControl.cjs.js +7 -7
- package/dist/FormControl/FormControl.esm.js +7 -7
- package/dist/FormControl/styles.css +1 -0
- package/dist/Grid/Grid.cjs.js +12 -0
- package/dist/Grid/Grid.esm.js +4 -0
- package/dist/Grid/package.json +7 -0
- package/dist/Grid/styles.css +1 -0
- package/dist/Group/Group.cjs.js +3 -3
- package/dist/Group/Group.esm.js +3 -3
- package/dist/Group/styles.css +1 -0
- package/dist/Heading/Heading.cjs.js +3 -4
- package/dist/Heading/Heading.esm.js +3 -4
- package/dist/Heading/styles.css +1 -0
- package/dist/HeroBanner/HeroBanner.cjs.js +28 -0
- package/dist/HeroBanner/HeroBanner.esm.js +20 -0
- package/dist/HeroBanner/package.json +7 -0
- package/dist/HeroButton/HeroButton.cjs.js +15 -0
- package/dist/HeroButton/HeroButton.esm.js +7 -0
- package/dist/HeroButton/package.json +7 -0
- package/dist/HeroButton/styles.css +1 -0
- package/dist/Hidden/Hidden.cjs.js +24 -0
- package/dist/Hidden/Hidden.esm.js +16 -0
- package/dist/Hidden/package.json +7 -0
- package/dist/Hidden/styles.css +1 -0
- package/dist/Icon/Icon.cjs.js +3 -4
- package/dist/Icon/Icon.esm.js +3 -4
- package/dist/Icon/styles.css +1 -0
- package/dist/Image/Image.cjs.js +2 -3
- package/dist/Image/Image.esm.js +2 -3
- package/dist/Image/styles.css +1 -0
- package/dist/ImpactCard/ImpactCard.cjs.js +43 -0
- package/dist/ImpactCard/ImpactCard.esm.js +35 -0
- package/dist/ImpactCard/package.json +7 -0
- package/dist/ImpactCard/styles.css +1 -0
- package/dist/InformationCard/InformationCard.cjs.js +60 -0
- package/dist/InformationCard/InformationCard.esm.js +52 -0
- package/dist/InformationCard/package.json +7 -0
- package/dist/InformationCard/styles.css +1 -0
- package/dist/Link/Link.cjs.js +75 -0
- package/dist/Link/Link.esm.js +67 -0
- package/dist/Link/package.json +7 -0
- package/dist/Link/styles.css +1 -0
- package/dist/Markup/Markup.cjs.js +5 -5
- package/dist/Markup/Markup.esm.js +2 -2
- package/dist/Markup/styles.css +1 -0
- package/dist/MediaCard/MediaCard.cjs.js +26 -0
- package/dist/MediaCard/MediaCard.esm.js +18 -0
- package/dist/MediaCard/package.json +7 -0
- package/dist/MediaCard/styles.css +1 -0
- package/dist/Modal/Modal.cjs.js +341 -547
- package/dist/Modal/Modal.esm.js +323 -547
- package/dist/Modal/styles.css +1 -0
- package/dist/PageBanner/PageBanner.cjs.js +28 -0
- package/dist/PageBanner/PageBanner.esm.js +20 -0
- package/dist/PageBanner/package.json +7 -0
- package/dist/Pagination/Pagination.cjs.js +8 -12
- package/dist/Pagination/Pagination.esm.js +6 -10
- package/dist/Pagination/styles.css +1 -0
- package/dist/PaginationSimple/PaginationSimple.cjs.js +91 -26
- package/dist/PaginationSimple/PaginationSimple.esm.js +90 -25
- package/dist/PaginationSimple/styles.css +1 -0
- package/dist/Poster/Poster.cjs.js +4 -5
- package/dist/Poster/Poster.esm.js +4 -5
- package/dist/Poster/styles.css +1 -0
- package/dist/ProgressBar/ProgressBar.cjs.js +19 -17
- package/dist/ProgressBar/ProgressBar.esm.js +16 -14
- package/dist/ProgressBar/styles.css +1 -0
- package/dist/ProgressStepper/ProgressStepper.cjs.js +5 -7
- package/dist/ProgressStepper/ProgressStepper.esm.js +5 -7
- package/dist/ProgressStepper/styles.css +1 -0
- package/dist/RadioGroup/RadioGroup.cjs.js +9 -8
- package/dist/RadioGroup/RadioGroup.esm.js +8 -8
- package/dist/RadioGroup/styles.css +1 -0
- package/dist/Rule/Rule.cjs.js +14 -4
- package/dist/Rule/Rule.esm.js +15 -5
- package/dist/Rule/styles.css +1 -0
- package/dist/ScrollToTop/ScrollToTop.cjs.js +27 -10
- package/dist/ScrollToTop/ScrollToTop.esm.js +24 -7
- package/dist/ScrollToTop/styles.css +1 -0
- package/dist/Section/Section.cjs.js +2 -2
- package/dist/Section/Section.esm.js +2 -2
- package/dist/Section/styles.css +1 -0
- package/dist/Select/Select.cjs.js +52 -1726
- package/dist/Select/Select.esm.js +53 -1708
- package/dist/Select/styles.css +1 -0
- package/dist/SiteFooter/SiteFooter.cjs.js +9 -33
- package/dist/SiteFooter/SiteFooter.esm.js +9 -33
- package/dist/SiteFooter/styles.css +1 -0
- package/dist/SiteHeaderV2/SiteHeaderV2.cjs.js +24 -0
- package/dist/SiteHeaderV2/SiteHeaderV2.esm.js +16 -0
- package/dist/SiteHeaderV2/package.json +7 -0
- package/dist/SiteHeaderV2/styles.css +1 -0
- package/dist/SkipLink/SkipLink.cjs.js +24 -0
- package/dist/SkipLink/SkipLink.esm.js +16 -0
- package/dist/SkipLink/package.json +7 -0
- package/dist/SkipLink/styles.css +1 -0
- package/dist/Spinner/Spinner.cjs.js +12 -0
- package/dist/Spinner/Spinner.esm.js +4 -0
- package/dist/Spinner/package.json +7 -0
- package/dist/Spinner/styles.css +1 -0
- package/dist/Surface/Surface.cjs.js +2 -2
- package/dist/Surface/Surface.esm.js +2 -2
- package/dist/Surface/styles.css +1 -0
- package/dist/Switch/Switch.cjs.js +26 -73
- package/dist/Switch/Switch.esm.js +16 -63
- package/dist/Switch/styles.css +1 -0
- package/dist/Tabs/Tabs.cjs.js +9 -10
- package/dist/Tabs/Tabs.esm.js +9 -10
- package/dist/Tabs/styles.css +1 -0
- package/dist/Tag/Tag.cjs.js +51 -17
- package/dist/Tag/Tag.esm.js +50 -16
- package/dist/Tag/styles.css +1 -0
- package/dist/Text/Text.cjs.js +3 -4
- package/dist/Text/Text.esm.js +3 -4
- package/dist/Text/styles.css +1 -0
- package/dist/TextArea/TextArea.cjs.js +70 -45
- package/dist/TextArea/TextArea.esm.js +70 -45
- package/dist/TextArea/styles.css +1 -0
- package/dist/TextInput/TextInput.cjs.js +8 -9
- package/dist/TextInput/TextInput.esm.js +8 -9
- package/dist/TextInput/styles.css +1 -0
- package/dist/Theme/Theme.cjs.js +16 -4
- package/dist/Theme/Theme.esm.js +16 -4
- package/dist/Theme/styles.css +1 -0
- package/dist/ThemeIcon/ThemeIcon.cjs.js +13 -0
- package/dist/ThemeIcon/ThemeIcon.esm.js +5 -0
- package/dist/ThemeIcon/package.json +7 -0
- package/dist/ThemeIcon/styles.css +1 -0
- package/dist/Toast/Toast.cjs.js +8 -9
- package/dist/Toast/Toast.esm.js +8 -9
- package/dist/Toast/styles.css +1 -0
- package/dist/Truncate/Truncate.cjs.js +3 -3
- package/dist/Truncate/Truncate.esm.js +3 -3
- package/dist/Truncate/styles.css +1 -0
- package/dist/TypographyCard/TypographyCard.cjs.js +40 -0
- package/dist/TypographyCard/TypographyCard.esm.js +32 -0
- package/dist/TypographyCard/package.json +7 -0
- package/dist/TypographyCard/styles.css +1 -0
- package/dist/UniversalHeader/UniversalHeader.cjs.js +3 -3
- package/dist/UniversalHeader/UniversalHeader.esm.js +3 -3
- package/dist/UniversalHeader/styles.css +1 -0
- package/dist/VerticalSpace/VerticalSpace.cjs.js +2 -2
- package/dist/VerticalSpace/VerticalSpace.esm.js +2 -2
- package/dist/VerticalSpace/styles.css +1 -0
- package/dist/VideoPlayer/VideoPlayer.cjs.js +3025 -0
- package/dist/VideoPlayer/VideoPlayer.esm.js +3017 -0
- package/dist/VideoPlayer/package.json +7 -0
- package/dist/VideoPlayer/styles.css +1 -0
- package/dist/Visible/Visible.cjs.js +24 -0
- package/dist/Visible/Visible.esm.js +16 -0
- package/dist/Visible/package.json +7 -0
- package/dist/Visible/styles.css +1 -0
- package/dist/VisuallyHidden/VisuallyHidden.cjs.js +2 -1
- package/dist/VisuallyHidden/VisuallyHidden.esm.js +2 -1
- package/dist/VisuallyHidden/styles.css +1 -0
- package/dist/_shared/cjs/Avatar-d37e7dee.js +48 -0
- package/dist/_shared/cjs/Badge-e5e57c0d.js +17 -0
- package/dist/_shared/cjs/Banner-a28364b4.js +66 -0
- package/dist/_shared/cjs/Box-a8f42d4f.js +29 -0
- package/dist/_shared/cjs/{BrandLogo-aea340c8.js → BrandLogo-5aef900a.js} +6 -7
- package/dist/_shared/cjs/{Breadcrumbs-f3385e2e.js → Breadcrumbs-edf76698.js} +18 -17
- package/dist/_shared/cjs/BtIconArrowRight.esm-6053bb79.js +30 -0
- package/dist/_shared/cjs/BtIconChevronRight2Px.esm-2e4d117e.js +44 -0
- package/dist/_shared/cjs/BtIconChevronRightMid.esm-3e8d18a9.js +28 -0
- package/dist/_shared/cjs/BtIconPlayFill.esm-b8997cfc.js +30 -0
- package/dist/_shared/cjs/{Button-5c958ce9.js → Button-82df14c9.js} +11 -12
- package/dist/_shared/cjs/ButtonV2-0679b44b.js +53 -0
- package/dist/_shared/cjs/Calendar-d2511ee9.js +1927 -0
- package/dist/_shared/cjs/CardFooter-facb09e6.js +79 -0
- package/dist/_shared/cjs/CardHeading-a7d8d472.js +16 -0
- package/dist/_shared/cjs/Checkbox-d34c19c4.js +70 -0
- package/dist/_shared/cjs/{Columns-ae4f8cef.js → Columns-e5f9406b.js} +8 -16
- package/dist/_shared/cjs/Combination-06cc56d0.js +1203 -0
- package/dist/_shared/cjs/ConditionalWrapper-bf944594.js +14 -0
- package/dist/_shared/cjs/ContentSwitcher-df2381c9.js +99 -0
- package/dist/_shared/cjs/ContentSwitcherDropdown-91856b98.js +64 -0
- package/dist/_shared/cjs/DatePicker-3abcf361.js +939 -0
- package/dist/_shared/cjs/{DisclosureMini-145105a4.js → DisclosureMini-64a1c682.js} +10 -13
- package/dist/_shared/cjs/Download-45dc0d20.js +43 -0
- package/dist/_shared/cjs/{Filter-1bde635c.js → Filter-c93d809e.js} +32 -24
- package/dist/_shared/cjs/{FormControl-30f2330f.js → FormControl-09c28bbb.js} +31 -16
- package/dist/_shared/cjs/Grid-102905c8.js +45 -0
- package/dist/_shared/cjs/{Group-0429741a.js → Group-33f84a2f.js} +8 -15
- package/dist/_shared/cjs/{Heading-27cba320.js → Heading-b4b65724.js} +8 -8
- package/dist/_shared/cjs/HeroButton-db55ff2a.js +126 -0
- package/dist/_shared/cjs/Icon-5dd78f2b.js +47 -0
- package/dist/_shared/cjs/Image-bb696c61.js +55 -0
- package/dist/_shared/cjs/MediaCard-158890b3.js +65 -0
- package/dist/_shared/cjs/{Poster-499b78da.js → Poster-11d2f8af.js} +13 -14
- package/dist/_shared/cjs/Preview-0bf3f6e8.js +167 -0
- package/dist/_shared/cjs/ProgressStepper-65294193.js +97 -0
- package/dist/_shared/cjs/RadioGroup-4fe1c546.js +85 -0
- package/dist/_shared/cjs/{Section-59804166.js → Section-4415d756.js} +4 -4
- package/dist/_shared/cjs/{SiteFooter-0638c27c.js → SiteFooter-e741eb87.js} +13 -12
- package/dist/_shared/cjs/SiteHeaderV2-e0ae0718.js +654 -0
- package/dist/_shared/cjs/Spinner-0f578e7f.js +24 -0
- package/dist/_shared/cjs/Surface-ca708a8c.js +175 -0
- package/dist/_shared/cjs/Tabs-a587b50f.js +90 -0
- package/dist/_shared/cjs/{Text-606ca3a2.js → Text-1b3e4fb6.js} +7 -7
- package/dist/_shared/cjs/TextInput-5e533805.js +103 -0
- package/dist/_shared/cjs/{ThemeIcon-9534f091.js → ThemeIcon-cf6ddb34.js} +6 -7
- package/dist/_shared/cjs/{Toast-6d4021d7.js → Toast-e088fa5d.js} +282 -44
- package/dist/_shared/cjs/UniversalHeader-de415648.js +29 -0
- package/dist/_shared/cjs/{VerticalSpace-dc53bb70.js → VerticalSpace-a5cf4d4e.js} +8 -8
- package/dist/_shared/cjs/VisuallyHidden-c691ea4d.js +18 -0
- package/dist/_shared/cjs/_commonjsHelpers-56412ec5.js +21 -0
- package/dist/_shared/cjs/{index-38d3848e.js → component-aa9fcdbb.js} +154 -435
- package/dist/_shared/cjs/{debounce-123468fb.js → debounce-a74c28cf.js} +2 -2
- package/dist/_shared/cjs/floating-ui.react-dom-08b8b87c.js +1908 -0
- package/dist/_shared/cjs/{Tabs-ade6d6b6.js → index-1e7a1fce.js} +20 -109
- package/dist/_shared/cjs/index-28fbfd5b.js +2206 -0
- package/dist/_shared/cjs/index-2bf59363.js +44 -0
- package/dist/_shared/cjs/index-527f962b.js +131 -0
- package/dist/_shared/cjs/index-568ebc78.js +2204 -0
- package/dist/_shared/cjs/{index.module-7d7228b3.js → index-76f7dd53.js} +32 -34
- package/dist/_shared/cjs/{index-d75774a9.js → index-879e71ee.js} +8 -1
- package/dist/_shared/cjs/index-ba3141f5.js +72 -0
- package/dist/_shared/cjs/{index-23b4f49f.js → index-dbc843d3.js} +1 -1
- package/dist/_shared/cjs/index.es-0c2c97f4.js +355 -0
- package/dist/_shared/cjs/index.es-0f681622.js +13 -0
- package/dist/_shared/cjs/{index.es-77def0c9.js → use-media-query-d34c83b9.js} +0 -9
- package/dist/_shared/esm/Avatar-f9df2686.js +42 -0
- package/dist/_shared/esm/Badge-ec093004.js +11 -0
- package/dist/_shared/esm/Banner-1b709fc7.js +60 -0
- package/dist/_shared/esm/Box-0516cf8c.js +23 -0
- package/dist/_shared/esm/{BrandLogo-1af78f76.js → BrandLogo-640e58ed.js} +2 -3
- package/dist/_shared/esm/{Breadcrumbs-c4b65cff.js → Breadcrumbs-58ab8ba0.js} +16 -15
- package/dist/_shared/esm/BtIconArrowRight.esm-93da96bb.js +24 -0
- package/dist/_shared/esm/BtIconChevronRight2Px.esm-c939e317.js +37 -0
- package/dist/_shared/esm/BtIconChevronRightMid.esm-4764708f.js +22 -0
- package/dist/_shared/esm/BtIconPlayFill.esm-05fc0344.js +24 -0
- package/dist/_shared/esm/{Button-c3348ed8.js → Button-6d09ead2.js} +5 -6
- package/dist/_shared/esm/ButtonV2-b35cea64.js +47 -0
- package/dist/_shared/esm/Calendar-d56cdead.js +1918 -0
- package/dist/_shared/esm/CardFooter-97261b1c.js +73 -0
- package/dist/_shared/esm/CardHeading-4e020d2e.js +10 -0
- package/dist/_shared/esm/Checkbox-a687c6cd.js +64 -0
- package/dist/_shared/esm/{Columns-d96b7425.js → Columns-767e7860.js} +2 -10
- package/dist/_shared/esm/Combination-71be1a15.js +1163 -0
- package/dist/_shared/esm/ConditionalWrapper-b85979de.js +8 -0
- package/dist/_shared/esm/ContentSwitcher-bc952e2f.js +93 -0
- package/dist/_shared/esm/ContentSwitcherDropdown-1675387e.js +58 -0
- package/dist/_shared/esm/DatePicker-dd060b1c.js +910 -0
- package/dist/_shared/esm/{DisclosureMini-bf95a9db.js → DisclosureMini-9caa350c.js} +8 -11
- package/dist/_shared/esm/Download-07f5e3dd.js +37 -0
- package/dist/_shared/esm/{Filter-58a42358.js → Filter-284297be.js} +29 -21
- package/dist/_shared/esm/{FormControl-433228f5.js → FormControl-350bb1c8.js} +29 -14
- package/dist/_shared/esm/Grid-5d1afe1a.js +39 -0
- package/dist/_shared/esm/{Group-73fdb896.js → Group-64dee285.js} +3 -10
- package/dist/_shared/esm/{Heading-d16e0e53.js → Heading-e83f0d49.js} +5 -5
- package/dist/_shared/esm/HeroButton-32fec849.js +120 -0
- package/dist/_shared/esm/Icon-6fef56b3.js +41 -0
- package/dist/_shared/esm/{Image-12fbd327.js → Image-45c7760b.js} +14 -5
- package/dist/_shared/esm/MediaCard-38c7a943.js +59 -0
- package/dist/_shared/esm/{Poster-699dc89b.js → Poster-f248e28b.js} +6 -7
- package/dist/_shared/esm/Preview-43b2a75d.js +161 -0
- package/dist/_shared/esm/ProgressStepper-9bb4706f.js +91 -0
- package/dist/_shared/esm/RadioGroup-84c7ca35.js +78 -0
- package/dist/_shared/esm/{Section-73781b56.js → Section-3ab74edb.js} +1 -1
- package/dist/_shared/esm/{SiteFooter-d21da7ab.js → SiteFooter-7317b40e.js} +9 -8
- package/dist/_shared/esm/SiteHeaderV2-6d4af7e5.js +648 -0
- package/dist/_shared/esm/Spinner-7c6f320f.js +18 -0
- package/dist/_shared/esm/Surface-201aa0d6.js +165 -0
- package/dist/_shared/esm/Tabs-ab8e189d.js +84 -0
- package/dist/_shared/esm/{Text-14f586ac.js → Text-dc3f9cb5.js} +5 -5
- package/dist/_shared/esm/TextInput-0707edc3.js +96 -0
- package/dist/_shared/esm/{ThemeIcon-eab5a4d0.js → ThemeIcon-69de5351.js} +2 -3
- package/dist/_shared/esm/{Toast-dce2d01e.js → Toast-e3ab54f9.js} +260 -23
- package/dist/_shared/esm/{UniversalHeader-b4c1577c.js → UniversalHeader-15169a0d.js} +9 -14
- package/dist/_shared/esm/{VerticalSpace-43cd9138.js → VerticalSpace-4b6b7468.js} +5 -5
- package/dist/_shared/esm/VisuallyHidden-59f004f5.js +12 -0
- package/dist/_shared/esm/_commonjsHelpers-0109d574.js +18 -0
- package/dist/_shared/esm/{index-ffd720d0.js → component-4448135f.js} +144 -432
- package/dist/_shared/esm/{debounce-6fed6b84.js → debounce-c8e41002.js} +1 -1
- package/dist/_shared/esm/floating-ui.react-dom-1bb71aae.js +1878 -0
- package/dist/_shared/esm/index-0ae42785.js +2169 -0
- package/dist/_shared/esm/{index-3147c5b0.js → index-13458236.js} +9 -2
- package/dist/_shared/esm/{index-65264b4e.js → index-2403936c.js} +1 -1
- package/dist/_shared/esm/index-6bdce6c5.js +69 -0
- package/dist/_shared/esm/index-7868cc59.js +129 -0
- package/dist/_shared/esm/{index.module-50b2c98a.js → index-7f23bb37.js} +28 -30
- package/dist/_shared/esm/index-a41a5e50.js +41 -0
- package/dist/_shared/esm/{Tabs-39d24a7d.js → index-b051f161.js} +6 -94
- package/dist/_shared/esm/index-ce6dee84.js +2197 -0
- package/dist/_shared/esm/index.es-be971b8d.js +9 -0
- package/dist/_shared/esm/index.es-fc59ba8f.js +348 -0
- package/dist/_shared/esm/{index.es-00cb3bcb.js → use-media-query-d3622da8.js} +1 -8
- package/dist/index.es.js +18793 -37648
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +18806 -37643
- package/dist/index.js.map +1 -1
- package/dist/styles.css +9 -38
- package/dist/types/components/Alert/Alert.d.ts +1 -1
- package/dist/types/components/AppButton/AppButton.d.ts +9 -0
- package/dist/types/components/AppButton/icons/AppStore.d.ts +2 -0
- package/dist/types/components/AppButton/icons/GooglePlay.d.ts +2 -0
- package/dist/types/components/AppButton/index.d.ts +1 -0
- package/dist/types/components/Avatar/Avatar.d.ts +14 -0
- package/dist/types/components/Avatar/components/AvatarContent/AvatarContent.d.ts +9 -0
- package/dist/types/components/Avatar/index.d.ts +1 -0
- package/dist/types/components/Avatar/types/avatar-icon-size.d.ts +1 -0
- package/dist/types/components/Avatar/types/avatar-image.d.ts +2 -0
- package/dist/types/components/Avatar/types/avatar-size.d.ts +1 -0
- package/dist/types/components/Avatar/types/avatar-text-size.d.ts +2 -0
- package/dist/types/components/AvatarGroup/AvatarGroup.d.ts +14 -0
- package/dist/types/components/AvatarGroup/index.d.ts +1 -0
- package/dist/types/components/AvatarGroup/types/group-avatar.d.ts +2 -0
- package/dist/types/components/AvatarGroup/utils/get-avatars.d.ts +2 -0
- package/dist/types/components/Badge/Badge.d.ts +1 -9
- package/dist/types/components/Banner/Banner.d.ts +68 -0
- package/dist/types/components/Banner/index.d.ts +1 -0
- package/dist/types/components/BannerWithTabs/BannerWithTabs.d.ts +17 -0
- package/dist/types/components/BannerWithTabs/index.d.ts +1 -0
- package/dist/types/components/Box/Box.d.ts +4 -0
- package/dist/types/components/Button/Button.d.ts +1 -1
- package/dist/types/components/ButtonV2/ButtonV2.d.ts +79 -0
- package/dist/types/components/ButtonV2/index.d.ts +1 -0
- package/dist/types/components/Calendar/Calendar.d.ts +50 -0
- package/dist/types/components/Calendar/Calendar.provider.d.ts +21 -0
- package/dist/types/components/Calendar/components/CalendarDateSelect/CalendarDateSelect.d.ts +15 -0
- package/dist/types/components/Calendar/components/CalendarDateSelect/index.d.ts +1 -0
- package/dist/types/components/Calendar/components/CalendarDayGrid/CalendarDayGrid.d.ts +6 -0
- package/dist/types/components/Calendar/components/CalendarDayGrid/index.d.ts +1 -0
- package/dist/types/components/Calendar/components/CalendarDayNumber/CalendarDayNumber.d.ts +8 -0
- package/dist/types/components/Calendar/components/CalendarDayNumber/index.d.ts +1 -0
- package/dist/types/components/Calendar/components/CalendarDoubleMonthView/CalendarDoubleMonthView.d.ts +9 -0
- package/dist/types/components/Calendar/components/CalendarDoubleMonthView/index.d.ts +1 -0
- package/dist/types/components/Calendar/components/CalendarFooter/CalendarFooter.d.ts +6 -0
- package/dist/types/components/Calendar/components/CalendarFooter/index.d.ts +1 -0
- package/dist/types/components/Calendar/components/CalendarMonthView/CalendarMonthView.d.ts +9 -0
- package/dist/types/components/Calendar/components/CalendarMonthView/index.d.ts +1 -0
- package/dist/types/components/Calendar/components/CalendarMonthYearView/CalendarMonthYearView.d.ts +11 -0
- package/dist/types/components/Calendar/components/CalendarMonthYearView/index.d.ts +1 -0
- package/dist/types/components/Calendar/components/CalendarNavButton/CalendarNavButton.d.ts +10 -0
- package/dist/types/components/Calendar/components/CalendarNavButton/index.d.ts +1 -0
- package/dist/types/components/Calendar/components/CalendarWrapper/CalendarWrapper.d.ts +5 -0
- package/dist/types/components/Calendar/components/CalendarWrapper/index.d.ts +1 -0
- package/dist/types/components/Calendar/components/index.d.ts +6 -0
- package/dist/types/components/Calendar/constants/day-names.d.ts +5 -0
- package/dist/types/components/Calendar/constants/index.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/contains-date.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/contains-date.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/date-without-time.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/date-without-time.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/get-calendar-type.d.ts +2 -0
- package/dist/types/components/Calendar/helpers/get-calendar-type.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/get-dates-in-month.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/get-dates-in-month.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/get-double-month-display-range.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/get-double-month-display-range.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/get-focus-date.d.ts +5 -0
- package/dist/types/components/Calendar/helpers/get-focus-date.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/get-highlighted-range.d.ts +6 -0
- package/dist/types/components/Calendar/helpers/get-highlighted-range.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/get-keydown-date.d.ts +6 -0
- package/dist/types/components/Calendar/helpers/get-keydown-date.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/index.d.ts +13 -0
- package/dist/types/components/Calendar/helpers/is-day.d.ts +2 -0
- package/dist/types/components/Calendar/helpers/is-day.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/is-disabled-date.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/is-disabled-date.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/is-month-after-max-date.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/is-month-after-max-date.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/is-month-before-min-date.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/is-month-before-min-date.test.d.ts +1 -0
- package/dist/types/components/Calendar/helpers/process-selected-range.d.ts +9 -0
- package/dist/types/components/Calendar/helpers/process-selected-range.test.d.ts +1 -0
- package/dist/types/components/Calendar/index.d.ts +2 -0
- package/dist/types/components/Calendar/state/handlers/calendar-keydown-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/handlers/day-grid-leave-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/handlers/day-number-select-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/handlers/default-handler.d.ts +2 -0
- package/dist/types/components/Calendar/state/handlers/dropdown-change-month-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/handlers/dropdown-change-year-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/handlers/highlight-range-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/handlers/index.d.ts +12 -0
- package/dist/types/components/Calendar/state/handlers/range-select-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/handlers/show-next-double-month-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/handlers/show-next-month-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/handlers/show-previous-double-month-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/handlers/show-previous-month-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/index.d.ts +2 -0
- package/dist/types/components/Calendar/state/reducer.d.ts +3 -0
- package/dist/types/components/Calendar/state/reducer.test.d.ts +1 -0
- package/dist/types/components/Calendar/state/types/actions.d.ts +81 -0
- package/dist/types/components/Calendar/state/types/state-handler.d.ts +3 -0
- package/dist/types/components/Calendar/state/types/state.d.ts +5 -0
- package/dist/types/components/Calendar/types/calendar-type.d.ts +1 -0
- package/dist/types/components/Calendar/types/date-select-value.d.ts +2 -0
- package/dist/types/components/Calendar/types/index.d.ts +6 -0
- package/dist/types/components/Calendar/types/key-names.d.ts +13 -0
- package/dist/types/components/Calendar/types/range-selection.d.ts +10 -0
- package/dist/types/components/Calendar/types/selection-type.d.ts +1 -0
- package/dist/types/components/Calendar/types/week-days.d.ts +18 -0
- package/dist/types/components/CardFooter/CardFooter.d.ts +11 -0
- package/dist/types/components/CardFooter/index.d.ts +1 -0
- package/dist/types/components/CardHeading/CardHeading.d.ts +19 -0
- package/dist/types/components/CardHeading/index.d.ts +1 -0
- package/dist/types/components/Carousel/Carousel.d.ts +34 -0
- package/dist/types/components/Carousel/components/DotButton.d.ts +10 -0
- package/dist/types/components/Carousel/constants/breakpoints.d.ts +5 -0
- package/dist/types/components/Carousel/helpers/get-options.d.ts +3 -0
- package/dist/types/components/Carousel/helpers/get-slide-width.d.ts +12 -0
- package/dist/types/components/Carousel/index.d.ts +1 -0
- package/dist/types/components/Carousel/types/breakpoints.d.ts +1 -0
- package/dist/types/components/Carousel/types/keynames.d.ts +5 -0
- package/dist/types/components/Carousel/types/responsive.d.ts +3 -0
- package/dist/types/components/Carousel/types/screen-sizes.d.ts +2 -0
- package/dist/types/components/Carousel/types/slide-config.d.ts +5 -0
- package/dist/types/components/Checkbox/Checkbox.d.ts +8 -5
- package/dist/types/components/ConditionalWrapper/ConditionalWrapper.d.ts +7 -0
- package/dist/types/components/ConditionalWrapper/index.d.ts +1 -0
- package/dist/types/components/ContentSwitcher/ContentSwitcher.d.ts +32 -0
- package/dist/types/components/ContentSwitcher/ContentSwitcherContent/ContentSwitcherContent.d.ts +12 -0
- package/dist/types/components/ContentSwitcher/ContentSwitcherContent/index.d.ts +1 -0
- package/dist/types/components/ContentSwitcher/ContentSwitcherList/ContentSwitcherList.d.ts +24 -0
- package/dist/types/components/ContentSwitcher/ContentSwitcherList/index.d.ts +1 -0
- package/dist/types/components/ContentSwitcher/ContentSwitcherTab/ContentSwitcherTab.d.ts +17 -0
- package/dist/types/components/ContentSwitcher/ContentSwitcherTab/index.d.ts +1 -0
- package/dist/types/components/ContentSwitcher/index.d.ts +1 -0
- package/dist/types/components/ContentSwitcherDropdown/ContentSwitcherDropdown.d.ts +57 -0
- package/dist/types/components/ContentSwitcherDropdown/index.d.ts +1 -0
- package/dist/types/components/DatePicker/DatePicker.d.ts +20 -0
- package/dist/types/components/DatePicker/constants/date-format.d.ts +1 -0
- package/dist/types/components/DatePicker/constants/index.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/convert-date-string-to-date.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/convert-date-string-to-date.test.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/convert-range-string-to-dates.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/convert-range-string-to-dates.test.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/format-date.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/format-date.test.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/index.d.ts +8 -0
- package/dist/types/components/DatePicker/helpers/is-date-valid.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/is-date-valid.test.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/is-disabled-date.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/is-disabled-date.test.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/is-range-valid.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/is-range-valid.test.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/parse-date-string.d.ts +5 -0
- package/dist/types/components/DatePicker/helpers/parse-date-string.test.d.ts +1 -0
- package/dist/types/components/DatePicker/helpers/parse-range-string.d.ts +14 -0
- package/dist/types/components/DatePicker/helpers/parse-range-string.test.d.ts +1 -0
- package/dist/types/components/DatePicker/index.d.ts +6 -0
- package/dist/types/components/Disclosure/Disclosure.d.ts +1 -2
- package/dist/types/components/Disclosure/index.d.ts +1 -1
- package/dist/types/components/DisclosureMini/DisclosureMini.d.ts +1 -2
- package/dist/types/components/Download/Download.d.ts +41 -0
- package/dist/types/components/Download/index.d.ts +1 -0
- package/dist/types/components/Filter/Filter.d.ts +1 -1
- package/dist/types/components/Filter/FilterItems/FilterItems.d.ts +4 -0
- package/dist/types/components/FormControl/FormControl.d.ts +5 -1
- package/dist/types/components/Grid/Grid.constants.d.ts +1 -0
- package/dist/types/components/Grid/Grid.d.ts +28 -0
- package/dist/types/components/Grid/Grid.types.d.ts +10 -0
- package/dist/types/components/Grid/components/Col/Col.d.ts +10 -0
- package/dist/types/components/Grid/components/Col/index.d.ts +1 -0
- package/dist/types/components/Grid/components/Row/Row.d.ts +10 -0
- package/dist/types/components/Grid/components/Row/index.d.ts +1 -0
- package/dist/types/components/Grid/index.d.ts +2 -0
- package/dist/types/components/Heading/Heading.d.ts +4 -0
- package/dist/types/components/Heading/index.d.ts +1 -1
- package/dist/types/components/HeroBanner/HeroBanner.d.ts +5 -0
- package/dist/types/components/HeroBanner/index.d.ts +1 -0
- package/dist/types/components/HeroButton/HeroButton.d.ts +66 -0
- package/dist/types/components/HeroButton/index.d.ts +1 -0
- package/dist/types/components/Hidden/Hidden.d.ts +11 -0
- package/dist/types/components/Hidden/index.d.ts +1 -0
- package/dist/types/components/Icon/Icon.d.ts +6 -2
- package/dist/types/components/Image/Image.d.ts +4 -0
- package/dist/types/components/ImpactCard/ImpactCard.d.ts +58 -0
- package/dist/types/components/ImpactCard/index.d.ts +1 -0
- package/dist/types/components/InformationCard/InformationCard.d.ts +62 -0
- package/dist/types/components/InformationCard/index.d.ts +1 -0
- package/dist/types/components/Link/Link.d.ts +52 -0
- package/dist/types/components/Link/index.d.ts +1 -0
- package/dist/types/components/MediaCard/MediaCard.d.ts +27 -28
- package/dist/types/components/MediaCard/index.d.ts +1 -1
- package/dist/types/components/MediaCard/types/index.d.ts +2 -0
- package/dist/types/components/MediaCard/types/media-card-image.d.ts +4 -0
- package/dist/types/components/MediaCard/types/media-card-video.d.ts +4 -0
- package/dist/types/components/Modal/Modal.d.ts +3 -3
- package/dist/types/components/PageBanner/PageBanner.d.ts +5 -0
- package/dist/types/components/PageBanner/index.d.ts +1 -0
- package/dist/types/components/Pagination/Pagination.d.ts +1 -1
- package/dist/types/components/PaginationSimple/PaginationSimple.d.ts +26 -10
- package/dist/types/components/Poster/Poster.d.ts +1 -1
- package/dist/types/components/ProgressBar/ProgressBar.d.ts +4 -0
- package/dist/types/components/ProgressStepper/ProgressStepper.d.ts +2 -2
- package/dist/types/components/ProgressStepper/ProgressStepperItem/ProgressStepperItem.d.ts +3 -7
- package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Complete.d.ts +2 -0
- package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Current.d.ts +2 -0
- package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Error.d.ts +2 -0
- package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Warning.d.ts +2 -0
- package/dist/types/components/RadioGroup/RadioButton/RadioButton.d.ts +17 -23
- package/dist/types/components/RadioGroup/RadioButtonGroupInput/RadioButtonGroupInput.d.ts +36 -0
- package/dist/types/components/RadioGroup/RadioButtonGroupInput/index.d.ts +1 -0
- package/dist/types/components/RadioGroup/RadioGroup.d.ts +11 -3
- package/dist/types/components/RadioGroup/context.d.ts +1 -1
- package/dist/types/components/RadioGroup/index.d.ts +1 -0
- package/dist/types/components/Rule/Rule.d.ts +2 -1
- package/dist/types/components/Select/Select.d.ts +53 -0
- package/dist/types/components/SiteFooter/index.d.ts +0 -1
- package/dist/types/components/SiteHeaderV2/SiteHeaderV2.d.ts +82 -0
- package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/BackButton/BackButton.d.ts +1 -0
- package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Column/Column.d.ts +1 -1
- package/dist/types/components/SiteHeaderV2/components/HorizontalPanel/HorizontalPanel.d.ts +13 -0
- package/dist/types/components/SiteHeaderV2/components/HorizontalPanel/index.d.ts +1 -0
- package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/ItemGroup/ItemGroup.d.ts +1 -0
- package/dist/types/components/SiteHeaderV2/components/ItemGroup/index.d.ts +1 -0
- package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/NavItem/NavItem.d.ts +5 -6
- package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/NavItem/NavItemWithSubNav.d.ts +13 -4
- package/dist/types/components/SiteHeaderV2/components/NavItem/index.d.ts +2 -0
- package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/NodeItem/NodeItem.d.ts +1 -1
- package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Panel/Panel.d.ts +8 -2
- package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/SubNavItem/SubNavItem.d.ts +5 -7
- package/dist/types/components/SiteHeaderV2/components/SubNavItem/index.d.ts +1 -0
- package/dist/types/components/SiteHeaderV2/components/VerticalDivider/VerticalDivider.d.ts +2 -0
- package/dist/types/components/SiteHeaderV2/components/VerticalDivider/index.d.ts +1 -0
- package/dist/types/components/SiteHeaderV2/index.d.ts +1 -0
- package/dist/types/components/SkipLink/SkipLink.d.ts +12 -0
- package/dist/types/components/SkipLink/SkipLinkItem/SkipLinkItem.d.ts +16 -0
- package/dist/types/components/SkipLink/index.d.ts +1 -0
- package/dist/types/components/Spinner/Spinner.d.ts +16 -0
- package/dist/types/components/Spinner/index.d.ts +1 -0
- package/dist/types/components/Surface/Surface.d.ts +7 -3
- package/dist/types/components/Switch/Switch.d.ts +6 -2
- package/dist/types/components/Tabs/Tabs.d.ts +1 -0
- package/dist/types/components/Tabs/TabsList/TabsList.d.ts +5 -0
- package/dist/types/components/Tag/Tag.d.ts +5 -1
- package/dist/types/components/Text/Text.d.ts +4 -0
- package/dist/types/components/TextArea/TextArea.d.ts +17 -0
- package/dist/types/components/TextInput/TextInput.d.ts +46 -6
- package/dist/types/components/Theme/Theme.d.ts +11 -3
- package/dist/types/components/Theme/index.d.ts +1 -1
- package/dist/types/components/ThemeIcon/icon-names.d.ts +1 -1
- package/dist/types/components/Toast/Toast.d.ts +1 -1
- package/dist/types/components/Truncate/Truncate.d.ts +1 -1
- package/dist/types/components/TypographyCard/TypographyCard.d.ts +58 -0
- package/dist/types/components/TypographyCard/index.d.ts +1 -0
- package/dist/types/components/UniversalHeader/UniversalHeader.d.ts +4 -0
- package/dist/types/components/VideoPlayer/VideoPlayer.d.ts +27 -0
- package/dist/types/components/VideoPlayer/index.d.ts +1 -0
- package/dist/types/components/Visible/Visible.d.ts +11 -0
- package/dist/types/components/Visible/index.d.ts +1 -0
- package/dist/types/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/types/components/index.d.ts +24 -5
- package/dist/types/helpers/get-theme-img.d.ts +6 -0
- package/dist/types/helpers/index.d.ts +1 -2
- package/dist/types/hooks/index.d.ts +2 -4
- package/dist/types/hooks/private/index.d.ts +5 -0
- package/dist/types/hooks/private/use-aria-describedby/index.d.ts +1 -0
- package/dist/types/hooks/private/use-interaction-mode/index.d.ts +1 -0
- package/dist/types/hooks/private/use-numeric-input/index.d.ts +1 -0
- package/dist/types/hooks/{use-numeric-input.d.ts → private/use-numeric-input/use-numeric-input.d.ts} +3 -3
- package/dist/types/hooks/private/use-pagination/index.d.ts +1 -0
- package/dist/types/hooks/private/use-theme-element/index.d.ts +1 -0
- package/dist/types/hooks/public/index.d.ts +1 -0
- package/dist/types/hooks/public/use-media-query/index.d.ts +1 -0
- package/dist/types/hooks/{use-media-query.d.ts → public/use-media-query/use-media-query.d.ts} +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/styles.d.ts +29 -6
- package/dist/types/types/auto-complete-types.d.ts +1 -0
- package/dist/use-media-query/package.json +7 -0
- package/dist/use-media-query/use-media-query.cjs.js +10 -0
- package/dist/use-media-query/use-media-query.esm.js +2 -0
- package/package.json +64 -40
- package/dist/Base/Base.cjs.js +0 -11
- package/dist/Base/Base.esm.js +0 -3
- package/dist/Base/package.json +0 -7
- package/dist/Card/Card.cjs.js +0 -18
- package/dist/Card/Card.esm.js +0 -10
- package/dist/Card/package.json +0 -7
- package/dist/Clock/Clock.cjs.js +0 -43
- package/dist/Clock/Clock.esm.js +0 -34
- package/dist/Clock/package.json +0 -7
- package/dist/SiteHeader/SiteHeader.cjs.js +0 -22
- package/dist/SiteHeader/SiteHeader.esm.js +0 -13
- package/dist/SiteHeader/package.json +0 -7
- package/dist/_shared/cjs/Base-f5a86eed.js +0 -22
- package/dist/_shared/cjs/Card-eb1c20c1.js +0 -121
- package/dist/_shared/cjs/Checkbox-5f14bb0d.js +0 -61
- package/dist/_shared/cjs/Icon-a47b6c0a.js +0 -33
- package/dist/_shared/cjs/Image-e873b8fc.js +0 -46
- package/dist/_shared/cjs/ProgressStepper-74ee1eec.js +0 -88
- package/dist/_shared/cjs/RadioGroup-9bc96f6a.js +0 -69
- package/dist/_shared/cjs/SiteHeader.rehydrator-42c4a0e0.js +0 -670
- package/dist/_shared/cjs/Surface-038db6e1.js +0 -57
- package/dist/_shared/cjs/TextInput-a5f72f6f.js +0 -81
- package/dist/_shared/cjs/UniversalHeader-5e43d320.js +0 -34
- package/dist/_shared/cjs/VisuallyHidden-e2c8b291.js +0 -17
- package/dist/_shared/cjs/extends-8c5e4b48.js +0 -18
- package/dist/_shared/cjs/filter-data-attrs-1c9a530c.js +0 -227
- package/dist/_shared/cjs/index-4aa11039.js +0 -490
- package/dist/_shared/cjs/index-4dd46cbe.js +0 -289
- package/dist/_shared/cjs/suffix-modifier-64dcd338.js +0 -19
- package/dist/_shared/esm/Base-f200653c.js +0 -15
- package/dist/_shared/esm/Card-45e8e10a.js +0 -115
- package/dist/_shared/esm/Checkbox-2a623386.js +0 -55
- package/dist/_shared/esm/Icon-9ecaaeab.js +0 -27
- package/dist/_shared/esm/ProgressStepper-5de34269.js +0 -82
- package/dist/_shared/esm/RadioGroup-002a32ba.js +0 -63
- package/dist/_shared/esm/SiteHeader.rehydrator-97900e11.js +0 -663
- package/dist/_shared/esm/Surface-0ca6817d.js +0 -48
- package/dist/_shared/esm/TextInput-28f18769.js +0 -75
- package/dist/_shared/esm/VisuallyHidden-b9eebf71.js +0 -11
- package/dist/_shared/esm/extends-8cc61aad.js +0 -16
- package/dist/_shared/esm/filter-data-attrs-ea8f4ed4.js +0 -220
- package/dist/_shared/esm/index-4f8d3888.js +0 -280
- package/dist/_shared/esm/index-87a828b8.js +0 -479
- package/dist/_shared/esm/suffix-modifier-3d548e45.js +0 -17
- package/dist/types/components/Base/Base.d.ts +0 -16
- package/dist/types/components/Base/index.d.ts +0 -1
- package/dist/types/components/Card/Card.d.ts +0 -128
- package/dist/types/components/Card/index.d.ts +0 -1
- package/dist/types/components/Clock/Clock.d.ts +0 -12
- package/dist/types/components/Clock/Clock.rehydrator.d.ts +0 -2
- package/dist/types/components/Clock/index.d.ts +0 -2
- package/dist/types/components/MediaCard/MediaCard.stories-wip.d.ts +0 -15
- package/dist/types/components/SiteFooter/SiteFooter.rehydrator.d.ts +0 -2
- package/dist/types/components/SiteHeader/SiteHeader.d.ts +0 -75
- package/dist/types/components/SiteHeader/SiteHeader.rehydrator.d.ts +0 -8
- package/dist/types/components/SiteHeader/components/ItemGroup/ItemGroup.rehydrator.d.ts +0 -2
- package/dist/types/components/SiteHeader/components/ItemGroup/index.d.ts +0 -2
- package/dist/types/components/SiteHeader/components/NavItem/NavItem.rehydrator.d.ts +0 -2
- package/dist/types/components/SiteHeader/components/NavItem/NavItemWithSubNav.rehydrator.d.ts +0 -2
- package/dist/types/components/SiteHeader/components/NavItem/index.d.ts +0 -4
- package/dist/types/components/SiteHeader/components/SubNavItem/SubNavItem.rehydrator.d.ts +0 -2
- package/dist/types/components/SiteHeader/components/SubNavItem/index.d.ts +0 -2
- package/dist/types/components/SiteHeader/index.d.ts +0 -2
- package/dist/types/helpers/filter-data-attrs.d.ts +0 -1
- package/dist/types/helpers/suffix-modifier.d.ts +0 -9
- /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/BackButton/index.d.ts +0 -0
- /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Column/index.d.ts +0 -0
- /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Item/Item.d.ts +0 -0
- /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Item/index.d.ts +0 -0
- /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/MenuButton/MenuButton.d.ts +0 -0
- /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/MenuButton/index.d.ts +0 -0
- /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Panel/index.d.ts +0 -0
- /package/dist/types/hooks/{use-aria-describedby.d.ts → private/use-aria-describedby/use-aria-describedby.d.ts} +0 -0
- /package/dist/types/hooks/{use-interaction-mode.d.ts → private/use-interaction-mode/use-interaction-mode.d.ts} +0 -0
- /package/dist/types/hooks/{use-pagination.d.ts → private/use-pagination/use-pagination.d.ts} +0 -0
|
@@ -2,1717 +2,42 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var index_es = require('../_shared/cjs/index.es-0c2c97f4.js');
|
|
6
6
|
var index$1 = require('../_shared/cjs/index-9947ac13.js');
|
|
7
7
|
var React = require('react');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
require('../_shared/cjs/
|
|
17
|
-
require('../_shared/cjs/
|
|
18
|
-
require('../_shared/cjs/
|
|
8
|
+
var index = require('../_shared/cjs/index-568ebc78.js');
|
|
9
|
+
var component = require('../_shared/cjs/component-aa9fcdbb.js');
|
|
10
|
+
var FormControl = require('../_shared/cjs/FormControl-09c28bbb.js');
|
|
11
|
+
var Surface = require('../_shared/cjs/Surface-ca708a8c.js');
|
|
12
|
+
var ThemeIcon = require('../_shared/cjs/ThemeIcon-cf6ddb34.js');
|
|
13
|
+
require('../_shared/cjs/index-76f7dd53.js');
|
|
14
|
+
require('react-dom');
|
|
15
|
+
require('../_shared/cjs/index-dbc843d3.js');
|
|
16
|
+
require('../_shared/cjs/index-879e71ee.js');
|
|
17
|
+
require('../_shared/cjs/index-2bf59363.js');
|
|
18
|
+
require('../_shared/cjs/floating-ui.react-dom-08b8b87c.js');
|
|
19
|
+
require('../_shared/cjs/index-ba3141f5.js');
|
|
20
|
+
require('../_shared/cjs/DisclosureMini-64a1c682.js');
|
|
21
|
+
require('../_shared/cjs/Text-1b3e4fb6.js');
|
|
22
|
+
require('../_shared/cjs/VisuallyHidden-c691ea4d.js');
|
|
19
23
|
|
|
20
24
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
21
25
|
|
|
22
|
-
function _interopNamespace(e) {
|
|
23
|
-
if (e && e.__esModule) return e;
|
|
24
|
-
var n = Object.create(null);
|
|
25
|
-
if (e) {
|
|
26
|
-
Object.keys(e).forEach(function (k) {
|
|
27
|
-
if (k !== 'default') {
|
|
28
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
29
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
30
|
-
enumerable: true,
|
|
31
|
-
get: function () { return e[k]; }
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
n["default"] = e;
|
|
37
|
-
return Object.freeze(n);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
26
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
41
|
-
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
42
|
-
var $7SXl2$reactdom__default = /*#__PURE__*/_interopDefaultLegacy($7SXl2$reactdom);
|
|
43
|
-
|
|
44
|
-
function $ae6933e535247d3d$export$7d15b64cf5a3a4c4(value, [min, max]) {
|
|
45
|
-
return Math.min(max, Math.max(min, value));
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// We have resorted to returning slots directly rather than exposing primitives that can then
|
|
49
|
-
// be slotted like `<CollectionItem as={Slot}>…</CollectionItem>`.
|
|
50
|
-
// This is because we encountered issues with generic types that cannot be statically analysed
|
|
51
|
-
// due to creating them dynamically via createCollection.
|
|
52
|
-
function $e02a7d9cb1dc128c$export$c74125a8e3af6bb2(name) {
|
|
53
|
-
/* -----------------------------------------------------------------------------------------------
|
|
54
|
-
* CollectionProvider
|
|
55
|
-
* ---------------------------------------------------------------------------------------------*/ const PROVIDER_NAME = name + 'CollectionProvider';
|
|
56
|
-
const [createCollectionContext, createCollectionScope] = index_module.$c512c27ab02ef895$export$50c7b4e9d9f19c1(PROVIDER_NAME);
|
|
57
|
-
const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {
|
|
58
|
-
collectionRef: {
|
|
59
|
-
current: null
|
|
60
|
-
},
|
|
61
|
-
itemMap: new Map()
|
|
62
|
-
});
|
|
63
|
-
const CollectionProvider = (props)=>{
|
|
64
|
-
const { scope: scope , children: children } = props;
|
|
65
|
-
const ref = React__default["default"].useRef(null);
|
|
66
|
-
const itemMap = React__default["default"].useRef(new Map()).current;
|
|
67
|
-
return /*#__PURE__*/ React__default["default"].createElement(CollectionProviderImpl, {
|
|
68
|
-
scope: scope,
|
|
69
|
-
itemMap: itemMap,
|
|
70
|
-
collectionRef: ref
|
|
71
|
-
}, children);
|
|
72
|
-
};
|
|
73
|
-
/* -----------------------------------------------------------------------------------------------
|
|
74
|
-
* CollectionSlot
|
|
75
|
-
* ---------------------------------------------------------------------------------------------*/ const COLLECTION_SLOT_NAME = name + 'CollectionSlot';
|
|
76
|
-
const CollectionSlot = /*#__PURE__*/ React__default["default"].forwardRef((props, forwardedRef)=>{
|
|
77
|
-
const { scope: scope , children: children } = props;
|
|
78
|
-
const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
|
|
79
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.collectionRef);
|
|
80
|
-
return /*#__PURE__*/ React__default["default"].createElement(index_module.$5e63c961fc1ce211$export$8c6ed5c666ac1360, {
|
|
81
|
-
ref: composedRefs
|
|
82
|
-
}, children);
|
|
83
|
-
});
|
|
84
|
-
/* -----------------------------------------------------------------------------------------------
|
|
85
|
-
* CollectionItem
|
|
86
|
-
* ---------------------------------------------------------------------------------------------*/ const ITEM_SLOT_NAME = name + 'CollectionItemSlot';
|
|
87
|
-
const ITEM_DATA_ATTR = 'data-radix-collection-item';
|
|
88
|
-
const CollectionItemSlot = /*#__PURE__*/ React__default["default"].forwardRef((props, forwardedRef)=>{
|
|
89
|
-
const { scope: scope , children: children , ...itemData } = props;
|
|
90
|
-
const ref = React__default["default"].useRef(null);
|
|
91
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);
|
|
92
|
-
const context = useCollectionContext(ITEM_SLOT_NAME, scope);
|
|
93
|
-
React__default["default"].useEffect(()=>{
|
|
94
|
-
context.itemMap.set(ref, {
|
|
95
|
-
ref: ref,
|
|
96
|
-
...itemData
|
|
97
|
-
});
|
|
98
|
-
return ()=>void context.itemMap.delete(ref)
|
|
99
|
-
;
|
|
100
|
-
});
|
|
101
|
-
return /*#__PURE__*/ React__default["default"].createElement(index_module.$5e63c961fc1ce211$export$8c6ed5c666ac1360, {
|
|
102
|
-
[ITEM_DATA_ATTR]: '',
|
|
103
|
-
ref: composedRefs
|
|
104
|
-
}, children);
|
|
105
|
-
});
|
|
106
|
-
/* -----------------------------------------------------------------------------------------------
|
|
107
|
-
* useCollection
|
|
108
|
-
* ---------------------------------------------------------------------------------------------*/ function useCollection(scope) {
|
|
109
|
-
const context = useCollectionContext(name + 'CollectionConsumer', scope);
|
|
110
|
-
const getItems = React__default["default"].useCallback(()=>{
|
|
111
|
-
const collectionNode = context.collectionRef.current;
|
|
112
|
-
if (!collectionNode) return [];
|
|
113
|
-
const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));
|
|
114
|
-
const items = Array.from(context.itemMap.values());
|
|
115
|
-
const orderedItems = items.sort((a, b)=>orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)
|
|
116
|
-
);
|
|
117
|
-
return orderedItems;
|
|
118
|
-
}, [
|
|
119
|
-
context.collectionRef,
|
|
120
|
-
context.itemMap
|
|
121
|
-
]);
|
|
122
|
-
return getItems;
|
|
123
|
-
}
|
|
124
|
-
return [
|
|
125
|
-
{
|
|
126
|
-
Provider: CollectionProvider,
|
|
127
|
-
Slot: CollectionSlot,
|
|
128
|
-
ItemSlot: CollectionItemSlot
|
|
129
|
-
},
|
|
130
|
-
useCollection,
|
|
131
|
-
createCollectionScope
|
|
132
|
-
];
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const $f631663db3294ace$var$DirectionContext = /*#__PURE__*/ React.createContext(undefined);
|
|
136
|
-
/* -----------------------------------------------------------------------------------------------*/ function $f631663db3294ace$export$b39126d51d94e6f3(localDir) {
|
|
137
|
-
const globalDir = React.useContext($f631663db3294ace$var$DirectionContext);
|
|
138
|
-
return localDir || globalDir || 'ltr';
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Listens for when the escape key is down
|
|
143
|
-
*/ function $addc16e1bbe58fd0$export$3a72a57244d6e765(onEscapeKeyDownProp, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {
|
|
144
|
-
const onEscapeKeyDown = index_module.$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onEscapeKeyDownProp);
|
|
145
|
-
React.useEffect(()=>{
|
|
146
|
-
const handleKeyDown = (event)=>{
|
|
147
|
-
if (event.key === 'Escape') onEscapeKeyDown(event);
|
|
148
|
-
};
|
|
149
|
-
ownerDocument.addEventListener('keydown', handleKeyDown);
|
|
150
|
-
return ()=>ownerDocument.removeEventListener('keydown', handleKeyDown)
|
|
151
|
-
;
|
|
152
|
-
}, [
|
|
153
|
-
onEscapeKeyDown,
|
|
154
|
-
ownerDocument
|
|
155
|
-
]);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
const $5cb92bef7577960e$var$CONTEXT_UPDATE = 'dismissableLayer.update';
|
|
159
|
-
const $5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';
|
|
160
|
-
const $5cb92bef7577960e$var$FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';
|
|
161
|
-
let $5cb92bef7577960e$var$originalBodyPointerEvents;
|
|
162
|
-
const $5cb92bef7577960e$var$DismissableLayerContext = /*#__PURE__*/ React.createContext({
|
|
163
|
-
layers: new Set(),
|
|
164
|
-
layersWithOutsidePointerEventsDisabled: new Set(),
|
|
165
|
-
branches: new Set()
|
|
166
|
-
});
|
|
167
|
-
const $5cb92bef7577960e$export$177fb62ff3ec1f22 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
168
|
-
var _node$ownerDocument;
|
|
169
|
-
const { disableOutsidePointerEvents: disableOutsidePointerEvents = false , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , onDismiss: onDismiss , ...layerProps } = props;
|
|
170
|
-
const context = React.useContext($5cb92bef7577960e$var$DismissableLayerContext);
|
|
171
|
-
const [node1, setNode] = React.useState(null);
|
|
172
|
-
const ownerDocument = (_node$ownerDocument = node1 === null || node1 === void 0 ? void 0 : node1.ownerDocument) !== null && _node$ownerDocument !== void 0 ? _node$ownerDocument : globalThis === null || globalThis === void 0 ? void 0 : globalThis.document;
|
|
173
|
-
const [, force] = React.useState({});
|
|
174
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node)=>setNode(node)
|
|
175
|
-
);
|
|
176
|
-
const layers = Array.from(context.layers);
|
|
177
|
-
const [highestLayerWithOutsidePointerEventsDisabled] = [
|
|
178
|
-
...context.layersWithOutsidePointerEventsDisabled
|
|
179
|
-
].slice(-1); // prettier-ignore
|
|
180
|
-
const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); // prettier-ignore
|
|
181
|
-
const index = node1 ? layers.indexOf(node1) : -1;
|
|
182
|
-
const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
|
|
183
|
-
const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
|
|
184
|
-
const pointerDownOutside = $5cb92bef7577960e$var$usePointerDownOutside((event)=>{
|
|
185
|
-
const target = event.target;
|
|
186
|
-
const isPointerDownOnBranch = [
|
|
187
|
-
...context.branches
|
|
188
|
-
].some((branch)=>branch.contains(target)
|
|
189
|
-
);
|
|
190
|
-
if (!isPointerEventsEnabled || isPointerDownOnBranch) return;
|
|
191
|
-
onPointerDownOutside === null || onPointerDownOutside === void 0 || onPointerDownOutside(event);
|
|
192
|
-
onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);
|
|
193
|
-
if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();
|
|
194
|
-
}, ownerDocument);
|
|
195
|
-
const focusOutside = $5cb92bef7577960e$var$useFocusOutside((event)=>{
|
|
196
|
-
const target = event.target;
|
|
197
|
-
const isFocusInBranch = [
|
|
198
|
-
...context.branches
|
|
199
|
-
].some((branch)=>branch.contains(target)
|
|
200
|
-
);
|
|
201
|
-
if (isFocusInBranch) return;
|
|
202
|
-
onFocusOutside === null || onFocusOutside === void 0 || onFocusOutside(event);
|
|
203
|
-
onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);
|
|
204
|
-
if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();
|
|
205
|
-
}, ownerDocument);
|
|
206
|
-
$addc16e1bbe58fd0$export$3a72a57244d6e765((event)=>{
|
|
207
|
-
const isHighestLayer = index === context.layers.size - 1;
|
|
208
|
-
if (!isHighestLayer) return;
|
|
209
|
-
onEscapeKeyDown === null || onEscapeKeyDown === void 0 || onEscapeKeyDown(event);
|
|
210
|
-
if (!event.defaultPrevented && onDismiss) {
|
|
211
|
-
event.preventDefault();
|
|
212
|
-
onDismiss();
|
|
213
|
-
}
|
|
214
|
-
}, ownerDocument);
|
|
215
|
-
React.useEffect(()=>{
|
|
216
|
-
if (!node1) return;
|
|
217
|
-
if (disableOutsidePointerEvents) {
|
|
218
|
-
if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
|
|
219
|
-
$5cb92bef7577960e$var$originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
|
|
220
|
-
ownerDocument.body.style.pointerEvents = 'none';
|
|
221
|
-
}
|
|
222
|
-
context.layersWithOutsidePointerEventsDisabled.add(node1);
|
|
223
|
-
}
|
|
224
|
-
context.layers.add(node1);
|
|
225
|
-
$5cb92bef7577960e$var$dispatchUpdate();
|
|
226
|
-
return ()=>{
|
|
227
|
-
if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) ownerDocument.body.style.pointerEvents = $5cb92bef7577960e$var$originalBodyPointerEvents;
|
|
228
|
-
};
|
|
229
|
-
}, [
|
|
230
|
-
node1,
|
|
231
|
-
ownerDocument,
|
|
232
|
-
disableOutsidePointerEvents,
|
|
233
|
-
context
|
|
234
|
-
]);
|
|
235
|
-
/**
|
|
236
|
-
* We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect
|
|
237
|
-
* because a change to `disableOutsidePointerEvents` would remove this layer from the stack
|
|
238
|
-
* and add it to the end again so the layering order wouldn't be _creation order_.
|
|
239
|
-
* We only want them to be removed from context stacks when unmounted.
|
|
240
|
-
*/ React.useEffect(()=>{
|
|
241
|
-
return ()=>{
|
|
242
|
-
if (!node1) return;
|
|
243
|
-
context.layers.delete(node1);
|
|
244
|
-
context.layersWithOutsidePointerEventsDisabled.delete(node1);
|
|
245
|
-
$5cb92bef7577960e$var$dispatchUpdate();
|
|
246
|
-
};
|
|
247
|
-
}, [
|
|
248
|
-
node1,
|
|
249
|
-
context
|
|
250
|
-
]);
|
|
251
|
-
React.useEffect(()=>{
|
|
252
|
-
const handleUpdate = ()=>force({})
|
|
253
|
-
;
|
|
254
|
-
document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate);
|
|
255
|
-
return ()=>document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate)
|
|
256
|
-
;
|
|
257
|
-
}, []);
|
|
258
|
-
return /*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends._extends({}, layerProps, {
|
|
259
|
-
ref: composedRefs,
|
|
260
|
-
style: {
|
|
261
|
-
pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? 'auto' : 'none' : undefined,
|
|
262
|
-
...props.style
|
|
263
|
-
},
|
|
264
|
-
onFocusCapture: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocusCapture, focusOutside.onFocusCapture),
|
|
265
|
-
onBlurCapture: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onBlurCapture, focusOutside.onBlurCapture),
|
|
266
|
-
onPointerDownCapture: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)
|
|
267
|
-
}));
|
|
268
|
-
});
|
|
269
|
-
/* -----------------------------------------------------------------------------------------------*/ /**
|
|
270
|
-
* Listens for `pointerdown` outside a react subtree. We use `pointerdown` rather than `pointerup`
|
|
271
|
-
* to mimic layer dismissing behaviour present in OS.
|
|
272
|
-
* Returns props to pass to the node we want to check for outside events.
|
|
273
|
-
*/ function $5cb92bef7577960e$var$usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {
|
|
274
|
-
const handlePointerDownOutside = index_module.$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onPointerDownOutside);
|
|
275
|
-
const isPointerInsideReactTreeRef = React.useRef(false);
|
|
276
|
-
const handleClickRef = React.useRef(()=>{});
|
|
277
|
-
React.useEffect(()=>{
|
|
278
|
-
const handlePointerDown = (event)=>{
|
|
279
|
-
if (event.target && !isPointerInsideReactTreeRef.current) {
|
|
280
|
-
const eventDetail = {
|
|
281
|
-
originalEvent: event
|
|
282
|
-
};
|
|
283
|
-
function handleAndDispatchPointerDownOutsideEvent() {
|
|
284
|
-
$5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {
|
|
285
|
-
discrete: true
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* On touch devices, we need to wait for a click event because browsers implement
|
|
290
|
-
* a ~350ms delay between the time the user stops touching the display and when the
|
|
291
|
-
* browser executres events. We need to ensure we don't reactivate pointer-events within
|
|
292
|
-
* this timeframe otherwise the browser may execute events that should have been prevented.
|
|
293
|
-
*
|
|
294
|
-
* Additionally, this also lets us deal automatically with cancellations when a click event
|
|
295
|
-
* isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.
|
|
296
|
-
*
|
|
297
|
-
* This is why we also continuously remove the previous listener, because we cannot be
|
|
298
|
-
* certain that it was raised, and therefore cleaned-up.
|
|
299
|
-
*/ if (event.pointerType === 'touch') {
|
|
300
|
-
ownerDocument.removeEventListener('click', handleClickRef.current);
|
|
301
|
-
handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;
|
|
302
|
-
ownerDocument.addEventListener('click', handleClickRef.current, {
|
|
303
|
-
once: true
|
|
304
|
-
});
|
|
305
|
-
} else handleAndDispatchPointerDownOutsideEvent();
|
|
306
|
-
}
|
|
307
|
-
isPointerInsideReactTreeRef.current = false;
|
|
308
|
-
};
|
|
309
|
-
/**
|
|
310
|
-
* if this hook executes in a component that mounts via a `pointerdown` event, the event
|
|
311
|
-
* would bubble up to the document and trigger a `pointerDownOutside` event. We avoid
|
|
312
|
-
* this by delaying the event listener registration on the document.
|
|
313
|
-
* This is not React specific, but rather how the DOM works, ie:
|
|
314
|
-
* ```
|
|
315
|
-
* button.addEventListener('pointerdown', () => {
|
|
316
|
-
* console.log('I will log');
|
|
317
|
-
* document.addEventListener('pointerdown', () => {
|
|
318
|
-
* console.log('I will also log');
|
|
319
|
-
* })
|
|
320
|
-
* });
|
|
321
|
-
*/ const timerId = window.setTimeout(()=>{
|
|
322
|
-
ownerDocument.addEventListener('pointerdown', handlePointerDown);
|
|
323
|
-
}, 0);
|
|
324
|
-
return ()=>{
|
|
325
|
-
window.clearTimeout(timerId);
|
|
326
|
-
ownerDocument.removeEventListener('pointerdown', handlePointerDown);
|
|
327
|
-
ownerDocument.removeEventListener('click', handleClickRef.current);
|
|
328
|
-
};
|
|
329
|
-
}, [
|
|
330
|
-
ownerDocument,
|
|
331
|
-
handlePointerDownOutside
|
|
332
|
-
]);
|
|
333
|
-
return {
|
|
334
|
-
// ensures we check React component tree (not just DOM tree)
|
|
335
|
-
onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true
|
|
336
|
-
};
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* Listens for when focus happens outside a react subtree.
|
|
340
|
-
* Returns props to pass to the root (node) of the subtree we want to check.
|
|
341
|
-
*/ function $5cb92bef7577960e$var$useFocusOutside(onFocusOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {
|
|
342
|
-
const handleFocusOutside = index_module.$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onFocusOutside);
|
|
343
|
-
const isFocusInsideReactTreeRef = React.useRef(false);
|
|
344
|
-
React.useEffect(()=>{
|
|
345
|
-
const handleFocus = (event)=>{
|
|
346
|
-
if (event.target && !isFocusInsideReactTreeRef.current) {
|
|
347
|
-
const eventDetail = {
|
|
348
|
-
originalEvent: event
|
|
349
|
-
};
|
|
350
|
-
$5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {
|
|
351
|
-
discrete: false
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
};
|
|
355
|
-
ownerDocument.addEventListener('focusin', handleFocus);
|
|
356
|
-
return ()=>ownerDocument.removeEventListener('focusin', handleFocus)
|
|
357
|
-
;
|
|
358
|
-
}, [
|
|
359
|
-
ownerDocument,
|
|
360
|
-
handleFocusOutside
|
|
361
|
-
]);
|
|
362
|
-
return {
|
|
363
|
-
onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true
|
|
364
|
-
,
|
|
365
|
-
onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false
|
|
366
|
-
};
|
|
367
|
-
}
|
|
368
|
-
function $5cb92bef7577960e$var$dispatchUpdate() {
|
|
369
|
-
const event = new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE);
|
|
370
|
-
document.dispatchEvent(event);
|
|
371
|
-
}
|
|
372
|
-
function $5cb92bef7577960e$var$handleAndDispatchCustomEvent(name, handler, detail, { discrete: discrete }) {
|
|
373
|
-
const target = detail.originalEvent.target;
|
|
374
|
-
const event = new CustomEvent(name, {
|
|
375
|
-
bubbles: false,
|
|
376
|
-
cancelable: true,
|
|
377
|
-
detail: detail
|
|
378
|
-
});
|
|
379
|
-
if (handler) target.addEventListener(name, handler, {
|
|
380
|
-
once: true
|
|
381
|
-
});
|
|
382
|
-
if (discrete) index_module.$8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event);
|
|
383
|
-
else target.dispatchEvent(event);
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
/** Number of components which have requested interest to have focus guards */ let $3db38b7d1fb3fe6a$var$count = 0;
|
|
387
|
-
/**
|
|
388
|
-
* Injects a pair of focus guards at the edges of the whole DOM tree
|
|
389
|
-
* to ensure `focusin` & `focusout` events can be caught consistently.
|
|
390
|
-
*/ function $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c() {
|
|
391
|
-
React.useEffect(()=>{
|
|
392
|
-
var _edgeGuards$, _edgeGuards$2;
|
|
393
|
-
const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');
|
|
394
|
-
document.body.insertAdjacentElement('afterbegin', (_edgeGuards$ = edgeGuards[0]) !== null && _edgeGuards$ !== void 0 ? _edgeGuards$ : $3db38b7d1fb3fe6a$var$createFocusGuard());
|
|
395
|
-
document.body.insertAdjacentElement('beforeend', (_edgeGuards$2 = edgeGuards[1]) !== null && _edgeGuards$2 !== void 0 ? _edgeGuards$2 : $3db38b7d1fb3fe6a$var$createFocusGuard());
|
|
396
|
-
$3db38b7d1fb3fe6a$var$count++;
|
|
397
|
-
return ()=>{
|
|
398
|
-
if ($3db38b7d1fb3fe6a$var$count === 1) document.querySelectorAll('[data-radix-focus-guard]').forEach((node)=>node.remove()
|
|
399
|
-
);
|
|
400
|
-
$3db38b7d1fb3fe6a$var$count--;
|
|
401
|
-
};
|
|
402
|
-
}, []);
|
|
403
|
-
}
|
|
404
|
-
function $3db38b7d1fb3fe6a$var$createFocusGuard() {
|
|
405
|
-
const element = document.createElement('span');
|
|
406
|
-
element.setAttribute('data-radix-focus-guard', '');
|
|
407
|
-
element.tabIndex = 0;
|
|
408
|
-
element.style.cssText = 'outline: none; opacity: 0; position: fixed; pointer-events: none';
|
|
409
|
-
return element;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
const $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';
|
|
413
|
-
const $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';
|
|
414
|
-
const $d3863c46a17e8a28$var$EVENT_OPTIONS = {
|
|
415
|
-
bubbles: false,
|
|
416
|
-
cancelable: true
|
|
417
|
-
};
|
|
418
|
-
const $d3863c46a17e8a28$export$20e40289641fbbb6 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
419
|
-
const { loop: loop = false , trapped: trapped = false , onMountAutoFocus: onMountAutoFocusProp , onUnmountAutoFocus: onUnmountAutoFocusProp , ...scopeProps } = props;
|
|
420
|
-
const [container1, setContainer] = React.useState(null);
|
|
421
|
-
const onMountAutoFocus = index_module.$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onMountAutoFocusProp);
|
|
422
|
-
const onUnmountAutoFocus = index_module.$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onUnmountAutoFocusProp);
|
|
423
|
-
const lastFocusedElementRef = React.useRef(null);
|
|
424
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node)=>setContainer(node)
|
|
425
|
-
);
|
|
426
|
-
const focusScope = React.useRef({
|
|
427
|
-
paused: false,
|
|
428
|
-
pause () {
|
|
429
|
-
this.paused = true;
|
|
430
|
-
},
|
|
431
|
-
resume () {
|
|
432
|
-
this.paused = false;
|
|
433
|
-
}
|
|
434
|
-
}).current; // Takes care of trapping focus if focus is moved outside programmatically for example
|
|
435
|
-
React.useEffect(()=>{
|
|
436
|
-
if (trapped) {
|
|
437
|
-
function handleFocusIn(event) {
|
|
438
|
-
if (focusScope.paused || !container1) return;
|
|
439
|
-
const target = event.target;
|
|
440
|
-
if (container1.contains(target)) lastFocusedElementRef.current = target;
|
|
441
|
-
else $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {
|
|
442
|
-
select: true
|
|
443
|
-
});
|
|
444
|
-
}
|
|
445
|
-
function handleFocusOut(event) {
|
|
446
|
-
if (focusScope.paused || !container1) return;
|
|
447
|
-
if (!container1.contains(event.relatedTarget)) $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {
|
|
448
|
-
select: true
|
|
449
|
-
});
|
|
450
|
-
}
|
|
451
|
-
document.addEventListener('focusin', handleFocusIn);
|
|
452
|
-
document.addEventListener('focusout', handleFocusOut);
|
|
453
|
-
return ()=>{
|
|
454
|
-
document.removeEventListener('focusin', handleFocusIn);
|
|
455
|
-
document.removeEventListener('focusout', handleFocusOut);
|
|
456
|
-
};
|
|
457
|
-
}
|
|
458
|
-
}, [
|
|
459
|
-
trapped,
|
|
460
|
-
container1,
|
|
461
|
-
focusScope.paused
|
|
462
|
-
]);
|
|
463
|
-
React.useEffect(()=>{
|
|
464
|
-
if (container1) {
|
|
465
|
-
$d3863c46a17e8a28$var$focusScopesStack.add(focusScope);
|
|
466
|
-
const previouslyFocusedElement = document.activeElement;
|
|
467
|
-
const hasFocusedCandidate = container1.contains(previouslyFocusedElement);
|
|
468
|
-
if (!hasFocusedCandidate) {
|
|
469
|
-
const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);
|
|
470
|
-
container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
|
|
471
|
-
container1.dispatchEvent(mountEvent);
|
|
472
|
-
if (!mountEvent.defaultPrevented) {
|
|
473
|
-
$d3863c46a17e8a28$var$focusFirst($d3863c46a17e8a28$var$removeLinks($d3863c46a17e8a28$var$getTabbableCandidates(container1)), {
|
|
474
|
-
select: true
|
|
475
|
-
});
|
|
476
|
-
if (document.activeElement === previouslyFocusedElement) $d3863c46a17e8a28$var$focus(container1);
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
return ()=>{
|
|
480
|
-
container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus); // We hit a react bug (fixed in v17) with focusing in unmount.
|
|
481
|
-
// We need to delay the focus a little to get around it for now.
|
|
482
|
-
// See: https://github.com/facebook/react/issues/17894
|
|
483
|
-
setTimeout(()=>{
|
|
484
|
-
const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);
|
|
485
|
-
container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
|
|
486
|
-
container1.dispatchEvent(unmountEvent);
|
|
487
|
-
if (!unmountEvent.defaultPrevented) $d3863c46a17e8a28$var$focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {
|
|
488
|
-
select: true
|
|
489
|
-
});
|
|
490
|
-
// we need to remove the listener after we `dispatchEvent`
|
|
491
|
-
container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
|
|
492
|
-
$d3863c46a17e8a28$var$focusScopesStack.remove(focusScope);
|
|
493
|
-
}, 0);
|
|
494
|
-
};
|
|
495
|
-
}
|
|
496
|
-
}, [
|
|
497
|
-
container1,
|
|
498
|
-
onMountAutoFocus,
|
|
499
|
-
onUnmountAutoFocus,
|
|
500
|
-
focusScope
|
|
501
|
-
]); // Takes care of looping focus (when tabbing whilst at the edges)
|
|
502
|
-
const handleKeyDown = React.useCallback((event)=>{
|
|
503
|
-
if (!loop && !trapped) return;
|
|
504
|
-
if (focusScope.paused) return;
|
|
505
|
-
const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;
|
|
506
|
-
const focusedElement = document.activeElement;
|
|
507
|
-
if (isTabKey && focusedElement) {
|
|
508
|
-
const container = event.currentTarget;
|
|
509
|
-
const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges(container);
|
|
510
|
-
const hasTabbableElementsInside = first && last; // we can only wrap focus if we have tabbable edges
|
|
511
|
-
if (!hasTabbableElementsInside) {
|
|
512
|
-
if (focusedElement === container) event.preventDefault();
|
|
513
|
-
} else {
|
|
514
|
-
if (!event.shiftKey && focusedElement === last) {
|
|
515
|
-
event.preventDefault();
|
|
516
|
-
if (loop) $d3863c46a17e8a28$var$focus(first, {
|
|
517
|
-
select: true
|
|
518
|
-
});
|
|
519
|
-
} else if (event.shiftKey && focusedElement === first) {
|
|
520
|
-
event.preventDefault();
|
|
521
|
-
if (loop) $d3863c46a17e8a28$var$focus(last, {
|
|
522
|
-
select: true
|
|
523
|
-
});
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
}
|
|
527
|
-
}, [
|
|
528
|
-
loop,
|
|
529
|
-
trapped,
|
|
530
|
-
focusScope.paused
|
|
531
|
-
]);
|
|
532
|
-
return /*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends._extends({
|
|
533
|
-
tabIndex: -1
|
|
534
|
-
}, scopeProps, {
|
|
535
|
-
ref: composedRefs,
|
|
536
|
-
onKeyDown: handleKeyDown
|
|
537
|
-
}));
|
|
538
|
-
});
|
|
539
|
-
/* -------------------------------------------------------------------------------------------------
|
|
540
|
-
* Utils
|
|
541
|
-
* -----------------------------------------------------------------------------------------------*/ /**
|
|
542
|
-
* Attempts focusing the first element in a list of candidates.
|
|
543
|
-
* Stops when focus has actually moved.
|
|
544
|
-
*/ function $d3863c46a17e8a28$var$focusFirst(candidates, { select: select = false } = {}) {
|
|
545
|
-
const previouslyFocusedElement = document.activeElement;
|
|
546
|
-
for (const candidate of candidates){
|
|
547
|
-
$d3863c46a17e8a28$var$focus(candidate, {
|
|
548
|
-
select: select
|
|
549
|
-
});
|
|
550
|
-
if (document.activeElement !== previouslyFocusedElement) return;
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
/**
|
|
554
|
-
* Returns the first and last tabbable elements inside a container.
|
|
555
|
-
*/ function $d3863c46a17e8a28$var$getTabbableEdges(container) {
|
|
556
|
-
const candidates = $d3863c46a17e8a28$var$getTabbableCandidates(container);
|
|
557
|
-
const first = $d3863c46a17e8a28$var$findVisible(candidates, container);
|
|
558
|
-
const last = $d3863c46a17e8a28$var$findVisible(candidates.reverse(), container);
|
|
559
|
-
return [
|
|
560
|
-
first,
|
|
561
|
-
last
|
|
562
|
-
];
|
|
563
|
-
}
|
|
564
|
-
/**
|
|
565
|
-
* Returns a list of potential tabbable candidates.
|
|
566
|
-
*
|
|
567
|
-
* NOTE: This is only a close approximation. For example it doesn't take into account cases like when
|
|
568
|
-
* elements are not visible. This cannot be worked out easily by just reading a property, but rather
|
|
569
|
-
* necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.
|
|
570
|
-
*
|
|
571
|
-
* See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
|
|
572
|
-
* Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1
|
|
573
|
-
*/ function $d3863c46a17e8a28$var$getTabbableCandidates(container) {
|
|
574
|
-
const nodes = [];
|
|
575
|
-
const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
|
|
576
|
-
acceptNode: (node)=>{
|
|
577
|
-
const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';
|
|
578
|
-
if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; // `.tabIndex` is not the same as the `tabindex` attribute. It works on the
|
|
579
|
-
// runtime's understanding of tabbability, so this automatically accounts
|
|
580
|
-
// for any kind of element that could be tabbed to.
|
|
581
|
-
return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
|
|
582
|
-
}
|
|
583
|
-
});
|
|
584
|
-
while(walker.nextNode())nodes.push(walker.currentNode); // we do not take into account the order of nodes with positive `tabIndex` as it
|
|
585
|
-
// hinders accessibility to have tab order different from visual order.
|
|
586
|
-
return nodes;
|
|
587
|
-
}
|
|
588
|
-
/**
|
|
589
|
-
* Returns the first visible element in a list.
|
|
590
|
-
* NOTE: Only checks visibility up to the `container`.
|
|
591
|
-
*/ function $d3863c46a17e8a28$var$findVisible(elements, container) {
|
|
592
|
-
for (const element of elements){
|
|
593
|
-
// we stop checking if it's hidden at the `container` level (excluding)
|
|
594
|
-
if (!$d3863c46a17e8a28$var$isHidden(element, {
|
|
595
|
-
upTo: container
|
|
596
|
-
})) return element;
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
function $d3863c46a17e8a28$var$isHidden(node, { upTo: upTo }) {
|
|
600
|
-
if (getComputedStyle(node).visibility === 'hidden') return true;
|
|
601
|
-
while(node){
|
|
602
|
-
// we stop at `upTo` (excluding it)
|
|
603
|
-
if (upTo !== undefined && node === upTo) return false;
|
|
604
|
-
if (getComputedStyle(node).display === 'none') return true;
|
|
605
|
-
node = node.parentElement;
|
|
606
|
-
}
|
|
607
|
-
return false;
|
|
608
|
-
}
|
|
609
|
-
function $d3863c46a17e8a28$var$isSelectableInput(element) {
|
|
610
|
-
return element instanceof HTMLInputElement && 'select' in element;
|
|
611
|
-
}
|
|
612
|
-
function $d3863c46a17e8a28$var$focus(element, { select: select = false } = {}) {
|
|
613
|
-
// only focus if that element is focusable
|
|
614
|
-
if (element && element.focus) {
|
|
615
|
-
const previouslyFocusedElement = document.activeElement; // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users
|
|
616
|
-
element.focus({
|
|
617
|
-
preventScroll: true
|
|
618
|
-
}); // only select if its not the same element, it supports selection and we need to select
|
|
619
|
-
if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput(element) && select) element.select();
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
/* -------------------------------------------------------------------------------------------------
|
|
623
|
-
* FocusScope stack
|
|
624
|
-
* -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$focusScopesStack = $d3863c46a17e8a28$var$createFocusScopesStack();
|
|
625
|
-
function $d3863c46a17e8a28$var$createFocusScopesStack() {
|
|
626
|
-
/** A stack of focus scopes, with the active one at the top */ let stack = [];
|
|
627
|
-
return {
|
|
628
|
-
add (focusScope) {
|
|
629
|
-
// pause the currently active focus scope (at the top of the stack)
|
|
630
|
-
const activeFocusScope = stack[0];
|
|
631
|
-
if (focusScope !== activeFocusScope) activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();
|
|
632
|
-
// remove in case it already exists (because we'll re-add it at the top of the stack)
|
|
633
|
-
stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);
|
|
634
|
-
stack.unshift(focusScope);
|
|
635
|
-
},
|
|
636
|
-
remove (focusScope) {
|
|
637
|
-
var _stack$;
|
|
638
|
-
stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);
|
|
639
|
-
(_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();
|
|
640
|
-
}
|
|
641
|
-
};
|
|
642
|
-
}
|
|
643
|
-
function $d3863c46a17e8a28$var$arrayRemove(array, item) {
|
|
644
|
-
const updatedArray = [
|
|
645
|
-
...array
|
|
646
|
-
];
|
|
647
|
-
const index = updatedArray.indexOf(item);
|
|
648
|
-
if (index !== -1) updatedArray.splice(index, 1);
|
|
649
|
-
return updatedArray;
|
|
650
|
-
}
|
|
651
|
-
function $d3863c46a17e8a28$var$removeLinks(items) {
|
|
652
|
-
return items.filter((item)=>item.tagName !== 'A'
|
|
653
|
-
);
|
|
654
|
-
}
|
|
655
|
-
|
|
656
|
-
const $1746a345f3d73bb7$var$useReactId = React__namespace['useId'.toString()] || (()=>undefined
|
|
657
|
-
);
|
|
658
|
-
let $1746a345f3d73bb7$var$count = 0;
|
|
659
|
-
function $1746a345f3d73bb7$export$f680877a34711e37(deterministicId) {
|
|
660
|
-
const [id, setId] = React__namespace.useState($1746a345f3d73bb7$var$useReactId()); // React versions older than 18 will have client-side ids only.
|
|
661
|
-
index_module.$9f79659886946c16$export$e5c5a5f917a5871c(()=>{
|
|
662
|
-
if (!deterministicId) setId((reactId)=>reactId !== null && reactId !== void 0 ? reactId : String($1746a345f3d73bb7$var$count++)
|
|
663
|
-
);
|
|
664
|
-
}, [
|
|
665
|
-
deterministicId
|
|
666
|
-
]);
|
|
667
|
-
return deterministicId || (id ? `radix-${id}` : '');
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
const $f1701beae083dbae$export$602eac185826482c = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
671
|
-
var _globalThis$document;
|
|
672
|
-
const { container: container = globalThis === null || globalThis === void 0 ? void 0 : (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.body , ...portalProps } = props;
|
|
673
|
-
return container ? /*#__PURE__*/ $7SXl2$reactdom__default["default"].createPortal(/*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends._extends({}, portalProps, {
|
|
674
|
-
ref: forwardedRef
|
|
675
|
-
})), container) : null;
|
|
676
|
-
});
|
|
677
|
-
|
|
678
|
-
const $ea1ef594cf570d83$export$439d29a4e110a164 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
679
|
-
return /*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends._extends({}, props, {
|
|
680
|
-
ref: forwardedRef,
|
|
681
|
-
style: {
|
|
682
|
-
// See: https://github.com/twbs/bootstrap/blob/master/scss/mixins/_screen-reader.scss
|
|
683
|
-
position: 'absolute',
|
|
684
|
-
border: 0,
|
|
685
|
-
width: 1,
|
|
686
|
-
height: 1,
|
|
687
|
-
padding: 0,
|
|
688
|
-
margin: -1,
|
|
689
|
-
overflow: 'hidden',
|
|
690
|
-
clip: 'rect(0, 0, 0, 0)',
|
|
691
|
-
whiteSpace: 'nowrap',
|
|
692
|
-
wordWrap: 'normal',
|
|
693
|
-
...props.style
|
|
694
|
-
}
|
|
695
|
-
}));
|
|
696
|
-
});
|
|
697
|
-
|
|
698
|
-
const $cc7e05a45900e73f$var$OPEN_KEYS = [
|
|
699
|
-
' ',
|
|
700
|
-
'Enter',
|
|
701
|
-
'ArrowUp',
|
|
702
|
-
'ArrowDown'
|
|
703
|
-
];
|
|
704
|
-
const $cc7e05a45900e73f$var$SELECTION_KEYS = [
|
|
705
|
-
' ',
|
|
706
|
-
'Enter'
|
|
707
|
-
];
|
|
708
|
-
/* -------------------------------------------------------------------------------------------------
|
|
709
|
-
* Select
|
|
710
|
-
* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$SELECT_NAME = 'Select';
|
|
711
|
-
const [$cc7e05a45900e73f$var$Collection, $cc7e05a45900e73f$var$useCollection, $cc7e05a45900e73f$var$createCollectionScope] = $e02a7d9cb1dc128c$export$c74125a8e3af6bb2($cc7e05a45900e73f$var$SELECT_NAME);
|
|
712
|
-
const [$cc7e05a45900e73f$var$createSelectContext, $cc7e05a45900e73f$export$286727a75dc039bd] = index_module.$c512c27ab02ef895$export$50c7b4e9d9f19c1($cc7e05a45900e73f$var$SELECT_NAME, [
|
|
713
|
-
$cc7e05a45900e73f$var$createCollectionScope
|
|
714
|
-
]);
|
|
715
|
-
const [$cc7e05a45900e73f$var$SelectProvider, $cc7e05a45900e73f$var$useSelectContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);
|
|
716
|
-
const [$cc7e05a45900e73f$var$SelectNativeOptionsProvider, $cc7e05a45900e73f$var$useSelectNativeOptionsContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);
|
|
717
|
-
const $cc7e05a45900e73f$export$ef9b1a59e592288f = (props)=>{
|
|
718
|
-
const { __scopeSelect: __scopeSelect , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , value: valueProp , defaultValue: defaultValue , onValueChange: onValueChange , dir: dir , name: name , autoComplete: autoComplete , disabled: disabled , required: required } = props;
|
|
719
|
-
const [trigger, setTrigger] = React.useState(null);
|
|
720
|
-
const [valueNode, setValueNode] = React.useState(null);
|
|
721
|
-
const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);
|
|
722
|
-
const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);
|
|
723
|
-
const [open = false, setOpen] = index_module.$71cd76cc60e0454e$export$6f32135080cb4c3({
|
|
724
|
-
prop: openProp,
|
|
725
|
-
defaultProp: defaultOpen,
|
|
726
|
-
onChange: onOpenChange
|
|
727
|
-
});
|
|
728
|
-
const [value, setValue] = index_module.$71cd76cc60e0454e$export$6f32135080cb4c3({
|
|
729
|
-
prop: valueProp,
|
|
730
|
-
defaultProp: defaultValue,
|
|
731
|
-
onChange: onValueChange
|
|
732
|
-
});
|
|
733
|
-
const triggerPointerDownPosRef = React.useRef(null); // We set this to true by default so that events bubble to forms without JS (SSR)
|
|
734
|
-
const isFormControl = trigger ? Boolean(trigger.closest('form')) : true;
|
|
735
|
-
const [nativeOptionsSet, setNativeOptionsSet] = React.useState(new Set()); // The native `select` only associates the correct default value if the corresponding
|
|
736
|
-
// `option` is rendered as a child **at the same time** as itself.
|
|
737
|
-
// Because it might take a few renders for our items to gather the information to build
|
|
738
|
-
// the native `option`(s), we generate a key on the `select` to make sure React re-builds it
|
|
739
|
-
// each time the options change.
|
|
740
|
-
const nativeSelectKey = Array.from(nativeOptionsSet).map((option)=>option.props.value
|
|
741
|
-
).join(';');
|
|
742
|
-
return /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$SelectProvider, {
|
|
743
|
-
required: required,
|
|
744
|
-
scope: __scopeSelect,
|
|
745
|
-
trigger: trigger,
|
|
746
|
-
onTriggerChange: setTrigger,
|
|
747
|
-
valueNode: valueNode,
|
|
748
|
-
onValueNodeChange: setValueNode,
|
|
749
|
-
valueNodeHasChildren: valueNodeHasChildren,
|
|
750
|
-
onValueNodeHasChildrenChange: setValueNodeHasChildren,
|
|
751
|
-
contentId: $1746a345f3d73bb7$export$f680877a34711e37(),
|
|
752
|
-
value: value,
|
|
753
|
-
onValueChange: setValue,
|
|
754
|
-
open: open,
|
|
755
|
-
onOpenChange: setOpen,
|
|
756
|
-
dir: direction,
|
|
757
|
-
triggerPointerDownPosRef: triggerPointerDownPosRef,
|
|
758
|
-
disabled: disabled
|
|
759
|
-
}, /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$Collection.Provider, {
|
|
760
|
-
scope: __scopeSelect
|
|
761
|
-
}, /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$SelectNativeOptionsProvider, {
|
|
762
|
-
scope: props.__scopeSelect,
|
|
763
|
-
onNativeOptionAdd: React.useCallback((option)=>{
|
|
764
|
-
setNativeOptionsSet((prev)=>new Set(prev).add(option)
|
|
765
|
-
);
|
|
766
|
-
}, []),
|
|
767
|
-
onNativeOptionRemove: React.useCallback((option)=>{
|
|
768
|
-
setNativeOptionsSet((prev)=>{
|
|
769
|
-
const optionsSet = new Set(prev);
|
|
770
|
-
optionsSet.delete(option);
|
|
771
|
-
return optionsSet;
|
|
772
|
-
});
|
|
773
|
-
}, [])
|
|
774
|
-
}, children)), isFormControl ? /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$BubbleSelect, {
|
|
775
|
-
key: nativeSelectKey,
|
|
776
|
-
"aria-hidden": true,
|
|
777
|
-
required: required,
|
|
778
|
-
tabIndex: -1,
|
|
779
|
-
name: name,
|
|
780
|
-
autoComplete: autoComplete,
|
|
781
|
-
value: value // enable form autofill
|
|
782
|
-
,
|
|
783
|
-
onChange: (event)=>setValue(event.target.value)
|
|
784
|
-
,
|
|
785
|
-
disabled: disabled
|
|
786
|
-
}, value === undefined ? /*#__PURE__*/ React.createElement("option", {
|
|
787
|
-
value: ""
|
|
788
|
-
}) : null, Array.from(nativeOptionsSet)) : null);
|
|
789
|
-
};
|
|
790
|
-
/* -------------------------------------------------------------------------------------------------
|
|
791
|
-
* SelectTrigger
|
|
792
|
-
* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$TRIGGER_NAME = 'SelectTrigger';
|
|
793
|
-
const $cc7e05a45900e73f$export$3ac1e88a1c0b9f1 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
794
|
-
const { __scopeSelect: __scopeSelect , disabled: disabled = false , ...triggerProps } = props;
|
|
795
|
-
const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$TRIGGER_NAME, __scopeSelect);
|
|
796
|
-
const isDisabled = context.disabled || disabled;
|
|
797
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.onTriggerChange);
|
|
798
|
-
const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);
|
|
799
|
-
const [searchRef, handleTypeaheadSearch, resetTypeahead] = $cc7e05a45900e73f$var$useTypeaheadSearch((search)=>{
|
|
800
|
-
const enabledItems = getItems().filter((item)=>!item.disabled
|
|
801
|
-
);
|
|
802
|
-
const currentItem = enabledItems.find((item)=>item.value === context.value
|
|
803
|
-
);
|
|
804
|
-
const nextItem = $cc7e05a45900e73f$var$findNextItem(enabledItems, search, currentItem);
|
|
805
|
-
if (nextItem !== undefined) context.onValueChange(nextItem.value);
|
|
806
|
-
});
|
|
807
|
-
const handleOpen = ()=>{
|
|
808
|
-
if (!isDisabled) {
|
|
809
|
-
context.onOpenChange(true); // reset typeahead when we open
|
|
810
|
-
resetTypeahead();
|
|
811
|
-
}
|
|
812
|
-
};
|
|
813
|
-
return /*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends._extends({
|
|
814
|
-
type: "button",
|
|
815
|
-
role: "combobox",
|
|
816
|
-
"aria-controls": context.contentId,
|
|
817
|
-
"aria-expanded": context.open,
|
|
818
|
-
"aria-required": context.required,
|
|
819
|
-
"aria-autocomplete": "none",
|
|
820
|
-
dir: context.dir,
|
|
821
|
-
"data-state": context.open ? 'open' : 'closed',
|
|
822
|
-
disabled: isDisabled,
|
|
823
|
-
"data-disabled": isDisabled ? '' : undefined,
|
|
824
|
-
"data-placeholder": context.value === undefined ? '' : undefined
|
|
825
|
-
}, triggerProps, {
|
|
826
|
-
ref: composedRefs // Enable compatibility with native label or custom `Label` "click" for Safari:
|
|
827
|
-
,
|
|
828
|
-
onClick: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(triggerProps.onClick, (event)=>{
|
|
829
|
-
// Whilst browsers generally have no issue focusing the trigger when clicking
|
|
830
|
-
// on a label, Safari seems to struggle with the fact that there's no `onClick`.
|
|
831
|
-
// We force `focus` in this case. Note: this doesn't create any other side-effect
|
|
832
|
-
// because we are preventing default in `onPointerDown` so effectively
|
|
833
|
-
// this only runs for a label "click"
|
|
834
|
-
event.currentTarget.focus();
|
|
835
|
-
}),
|
|
836
|
-
onPointerDown: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(triggerProps.onPointerDown, (event)=>{
|
|
837
|
-
// prevent implicit pointer capture
|
|
838
|
-
// https://www.w3.org/TR/pointerevents3/#implicit-pointer-capture
|
|
839
|
-
const target = event.target;
|
|
840
|
-
if (target.hasPointerCapture(event.pointerId)) target.releasePointerCapture(event.pointerId);
|
|
841
|
-
// only call handler if it's the left button (mousedown gets triggered by all mouse buttons)
|
|
842
|
-
// but not when the control key is pressed (avoiding MacOS right click)
|
|
843
|
-
if (event.button === 0 && event.ctrlKey === false) {
|
|
844
|
-
handleOpen();
|
|
845
|
-
context.triggerPointerDownPosRef.current = {
|
|
846
|
-
x: Math.round(event.pageX),
|
|
847
|
-
y: Math.round(event.pageY)
|
|
848
|
-
}; // prevent trigger from stealing focus from the active item after opening.
|
|
849
|
-
event.preventDefault();
|
|
850
|
-
}
|
|
851
|
-
}),
|
|
852
|
-
onKeyDown: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(triggerProps.onKeyDown, (event)=>{
|
|
853
|
-
const isTypingAhead = searchRef.current !== '';
|
|
854
|
-
const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
|
|
855
|
-
if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);
|
|
856
|
-
if (isTypingAhead && event.key === ' ') return;
|
|
857
|
-
if ($cc7e05a45900e73f$var$OPEN_KEYS.includes(event.key)) {
|
|
858
|
-
handleOpen();
|
|
859
|
-
event.preventDefault();
|
|
860
|
-
}
|
|
861
|
-
})
|
|
862
|
-
}));
|
|
863
|
-
});
|
|
864
|
-
/* -------------------------------------------------------------------------------------------------
|
|
865
|
-
* SelectValue
|
|
866
|
-
* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$VALUE_NAME = 'SelectValue';
|
|
867
|
-
const $cc7e05a45900e73f$export$e288731fd71264f0 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
868
|
-
// We ignore `className` and `style` as this part shouldn't be styled.
|
|
869
|
-
const { __scopeSelect: __scopeSelect , className: className , style: style , children: children , placeholder: placeholder , ...valueProps } = props;
|
|
870
|
-
const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$VALUE_NAME, __scopeSelect);
|
|
871
|
-
const { onValueNodeHasChildrenChange: onValueNodeHasChildrenChange } = context;
|
|
872
|
-
const hasChildren = children !== undefined;
|
|
873
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.onValueNodeChange);
|
|
874
|
-
index_module.$9f79659886946c16$export$e5c5a5f917a5871c(()=>{
|
|
875
|
-
onValueNodeHasChildrenChange(hasChildren);
|
|
876
|
-
}, [
|
|
877
|
-
onValueNodeHasChildrenChange,
|
|
878
|
-
hasChildren
|
|
879
|
-
]);
|
|
880
|
-
return /*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends._extends({}, valueProps, {
|
|
881
|
-
ref: composedRefs // we don't want events from the portalled `SelectValue` children to bubble
|
|
882
|
-
,
|
|
883
|
-
style: {
|
|
884
|
-
pointerEvents: 'none'
|
|
885
|
-
}
|
|
886
|
-
}), context.value === undefined && placeholder !== undefined ? placeholder : children);
|
|
887
|
-
});
|
|
888
|
-
const $cc7e05a45900e73f$export$99b400cabb58c515 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
889
|
-
const { __scopeSelect: __scopeSelect , children: children , ...iconProps } = props;
|
|
890
|
-
return /*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends._extends({
|
|
891
|
-
"aria-hidden": true
|
|
892
|
-
}, iconProps, {
|
|
893
|
-
ref: forwardedRef
|
|
894
|
-
}), children || '▼');
|
|
895
|
-
});
|
|
896
|
-
const $cc7e05a45900e73f$export$b2af6c9944296213 = (props)=>{
|
|
897
|
-
return /*#__PURE__*/ React.createElement($f1701beae083dbae$export$602eac185826482c, _extends._extends({
|
|
898
|
-
asChild: true
|
|
899
|
-
}, props));
|
|
900
|
-
};
|
|
901
|
-
/* -------------------------------------------------------------------------------------------------
|
|
902
|
-
* SelectContent
|
|
903
|
-
* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$CONTENT_NAME = 'SelectContent';
|
|
904
|
-
const $cc7e05a45900e73f$export$c973a4b3cb86a03d = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
905
|
-
const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, props.__scopeSelect);
|
|
906
|
-
const [fragment, setFragment] = React.useState(); // setting the fragment in `useLayoutEffect` as `DocumentFragment` doesn't exist on the server
|
|
907
|
-
index_module.$9f79659886946c16$export$e5c5a5f917a5871c(()=>{
|
|
908
|
-
setFragment(new DocumentFragment());
|
|
909
|
-
}, []);
|
|
910
|
-
return /*#__PURE__*/ React.createElement(React.Fragment, null, context.open ? /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$SelectContentImpl, _extends._extends({}, props, {
|
|
911
|
-
ref: forwardedRef
|
|
912
|
-
})) : fragment ? /*#__PURE__*/ $7SXl2$reactdom.createPortal(/*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$SelectContentProvider, {
|
|
913
|
-
scope: props.__scopeSelect
|
|
914
|
-
}, /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$Collection.Slot, {
|
|
915
|
-
scope: props.__scopeSelect
|
|
916
|
-
}, /*#__PURE__*/ React.createElement("div", null, props.children))), fragment) : null);
|
|
917
|
-
});
|
|
918
|
-
const $cc7e05a45900e73f$var$CONTENT_MARGIN = 10;
|
|
919
|
-
const [$cc7e05a45900e73f$var$SelectContentProvider, $cc7e05a45900e73f$var$useSelectContentContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$CONTENT_NAME);
|
|
920
|
-
const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
921
|
-
const { __scopeSelect: __scopeSelect , onCloseAutoFocus: onCloseAutoFocus , ...contentProps } = props;
|
|
922
|
-
const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);
|
|
923
|
-
const [contentWrapper, setContentWrapper] = React.useState(null);
|
|
924
|
-
const [content, setContent] = React.useState(null);
|
|
925
|
-
const [viewport, setViewport] = React.useState(null);
|
|
926
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node)=>setContent(node)
|
|
927
|
-
);
|
|
928
|
-
const [selectedItem, setSelectedItem] = React.useState(null);
|
|
929
|
-
const [selectedItemText, setSelectedItemText] = React.useState(null);
|
|
930
|
-
const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);
|
|
931
|
-
const [isPositioned, setIsPositioned] = React.useState(false);
|
|
932
|
-
const shouldRepositionRef = React.useRef(true);
|
|
933
|
-
const shouldExpandOnScrollRef = React.useRef(false);
|
|
934
|
-
const firstValidItemFoundRef = React.useRef(false); // aria-hide everything except the content (better supported equivalent to setting aria-modal)
|
|
935
|
-
React.useEffect(()=>{
|
|
936
|
-
if (content) return index.hideOthers(content);
|
|
937
|
-
}, [
|
|
938
|
-
content
|
|
939
|
-
]); // Make sure the whole tree has focus guards as our `Select` may be
|
|
940
|
-
// the last element in the DOM (because of the `Portal`)
|
|
941
|
-
$3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();
|
|
942
|
-
const [contentZIndex, setContentZIndex] = React.useState();
|
|
943
|
-
index_module.$9f79659886946c16$export$e5c5a5f917a5871c(()=>{
|
|
944
|
-
if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
|
|
945
|
-
}, [
|
|
946
|
-
content
|
|
947
|
-
]);
|
|
948
|
-
const focusFirst = React.useCallback((candidates)=>{
|
|
949
|
-
const [firstItem, ...restItems] = getItems().map((item)=>item.ref.current
|
|
950
|
-
);
|
|
951
|
-
const [lastItem] = restItems.slice(-1);
|
|
952
|
-
const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
|
|
953
|
-
for (const candidate of candidates){
|
|
954
|
-
// if focus is already where we want to go, we don't want to keep going through the candidates
|
|
955
|
-
if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;
|
|
956
|
-
candidate === null || candidate === void 0 || candidate.scrollIntoView({
|
|
957
|
-
block: 'nearest'
|
|
958
|
-
}); // viewport might have padding so scroll to its edges when focusing first/last items.
|
|
959
|
-
if (candidate === firstItem && viewport) viewport.scrollTop = 0;
|
|
960
|
-
if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;
|
|
961
|
-
candidate === null || candidate === void 0 || candidate.focus();
|
|
962
|
-
if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;
|
|
963
|
-
}
|
|
964
|
-
}, [
|
|
965
|
-
getItems,
|
|
966
|
-
viewport
|
|
967
|
-
]);
|
|
968
|
-
const position = React.useCallback(()=>{
|
|
969
|
-
if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {
|
|
970
|
-
const triggerRect = context.trigger.getBoundingClientRect(); // -----------------------------------------------------------------------------------------
|
|
971
|
-
// Horizontal positioning
|
|
972
|
-
// -----------------------------------------------------------------------------------------
|
|
973
|
-
const contentRect = content.getBoundingClientRect();
|
|
974
|
-
const valueNodeRect = context.valueNode.getBoundingClientRect();
|
|
975
|
-
const itemTextRect = selectedItemText.getBoundingClientRect();
|
|
976
|
-
if (context.dir !== 'rtl') {
|
|
977
|
-
const itemTextOffset = itemTextRect.left - contentRect.left;
|
|
978
|
-
const left = valueNodeRect.left - itemTextOffset;
|
|
979
|
-
const leftDelta = triggerRect.left - left;
|
|
980
|
-
const minContentWidth = triggerRect.width + leftDelta;
|
|
981
|
-
const contentWidth = Math.max(minContentWidth, contentRect.width);
|
|
982
|
-
const rightEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;
|
|
983
|
-
const clampedLeft = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(left, [
|
|
984
|
-
$cc7e05a45900e73f$var$CONTENT_MARGIN,
|
|
985
|
-
rightEdge - contentWidth
|
|
986
|
-
]);
|
|
987
|
-
contentWrapper.style.minWidth = minContentWidth + 'px';
|
|
988
|
-
contentWrapper.style.left = clampedLeft + 'px';
|
|
989
|
-
} else {
|
|
990
|
-
const itemTextOffset = contentRect.right - itemTextRect.right;
|
|
991
|
-
const right = window.innerWidth - valueNodeRect.right - itemTextOffset;
|
|
992
|
-
const rightDelta = window.innerWidth - triggerRect.right - right;
|
|
993
|
-
const minContentWidth = triggerRect.width + rightDelta;
|
|
994
|
-
const contentWidth = Math.max(minContentWidth, contentRect.width);
|
|
995
|
-
const leftEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;
|
|
996
|
-
const clampedRight = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(right, [
|
|
997
|
-
$cc7e05a45900e73f$var$CONTENT_MARGIN,
|
|
998
|
-
leftEdge - contentWidth
|
|
999
|
-
]);
|
|
1000
|
-
contentWrapper.style.minWidth = minContentWidth + 'px';
|
|
1001
|
-
contentWrapper.style.right = clampedRight + 'px';
|
|
1002
|
-
} // -----------------------------------------------------------------------------------------
|
|
1003
|
-
// Vertical positioning
|
|
1004
|
-
// -----------------------------------------------------------------------------------------
|
|
1005
|
-
const items = getItems();
|
|
1006
|
-
const availableHeight = window.innerHeight - $cc7e05a45900e73f$var$CONTENT_MARGIN * 2;
|
|
1007
|
-
const itemsHeight = viewport.scrollHeight;
|
|
1008
|
-
const contentStyles = window.getComputedStyle(content);
|
|
1009
|
-
const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);
|
|
1010
|
-
const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);
|
|
1011
|
-
const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);
|
|
1012
|
-
const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);
|
|
1013
|
-
const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth; // prettier-ignore
|
|
1014
|
-
const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);
|
|
1015
|
-
const viewportStyles = window.getComputedStyle(viewport);
|
|
1016
|
-
const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);
|
|
1017
|
-
const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);
|
|
1018
|
-
const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - $cc7e05a45900e73f$var$CONTENT_MARGIN;
|
|
1019
|
-
const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;
|
|
1020
|
-
const selectedItemHalfHeight = selectedItem.offsetHeight / 2;
|
|
1021
|
-
const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;
|
|
1022
|
-
const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;
|
|
1023
|
-
const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;
|
|
1024
|
-
const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;
|
|
1025
|
-
if (willAlignWithoutTopOverflow) {
|
|
1026
|
-
const isLastItem = selectedItem === items[items.length - 1].ref.current;
|
|
1027
|
-
contentWrapper.style.bottom = "0px";
|
|
1028
|
-
const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;
|
|
1029
|
-
const clampedTriggerMiddleToBottomEdge = Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);
|
|
1030
|
-
const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;
|
|
1031
|
-
contentWrapper.style.height = height + 'px';
|
|
1032
|
-
} else {
|
|
1033
|
-
const isFirstItem = selectedItem === items[0].ref.current;
|
|
1034
|
-
contentWrapper.style.top = "0px";
|
|
1035
|
-
const clampedTopEdgeToTriggerMiddle = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.offsetTop + (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight);
|
|
1036
|
-
const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;
|
|
1037
|
-
contentWrapper.style.height = height + 'px';
|
|
1038
|
-
viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;
|
|
1039
|
-
}
|
|
1040
|
-
contentWrapper.style.margin = `${$cc7e05a45900e73f$var$CONTENT_MARGIN}px 0`;
|
|
1041
|
-
contentWrapper.style.minHeight = minContentHeight + 'px';
|
|
1042
|
-
contentWrapper.style.maxHeight = availableHeight + 'px'; // -----------------------------------------------------------------------------------------
|
|
1043
|
-
setIsPositioned(true); // we don't want the initial scroll position adjustment to trigger "expand on scroll"
|
|
1044
|
-
// so we explicitly turn it on only after they've registered.
|
|
1045
|
-
requestAnimationFrame(()=>shouldExpandOnScrollRef.current = true
|
|
1046
|
-
);
|
|
1047
|
-
}
|
|
1048
|
-
}, [
|
|
1049
|
-
getItems,
|
|
1050
|
-
context.trigger,
|
|
1051
|
-
context.valueNode,
|
|
1052
|
-
contentWrapper,
|
|
1053
|
-
content,
|
|
1054
|
-
viewport,
|
|
1055
|
-
selectedItem,
|
|
1056
|
-
selectedItemText,
|
|
1057
|
-
context.dir
|
|
1058
|
-
]);
|
|
1059
|
-
index_module.$9f79659886946c16$export$e5c5a5f917a5871c(()=>position()
|
|
1060
|
-
, [
|
|
1061
|
-
position
|
|
1062
|
-
]);
|
|
1063
|
-
const focusSelectedItem = React.useCallback(()=>focusFirst([
|
|
1064
|
-
selectedItem,
|
|
1065
|
-
content
|
|
1066
|
-
])
|
|
1067
|
-
, [
|
|
1068
|
-
focusFirst,
|
|
1069
|
-
selectedItem,
|
|
1070
|
-
content
|
|
1071
|
-
]); // Since this is not dependent on layout, we want to ensure this runs at the same time as
|
|
1072
|
-
// other effects across components. Hence why we don't call `focusSelectedItem` inside `position`.
|
|
1073
|
-
React.useEffect(()=>{
|
|
1074
|
-
if (isPositioned) focusSelectedItem();
|
|
1075
|
-
}, [
|
|
1076
|
-
isPositioned,
|
|
1077
|
-
focusSelectedItem
|
|
1078
|
-
]); // When the viewport becomes scrollable at the top, the scroll up button will mount.
|
|
1079
|
-
// Because it is part of the normal flow, it will push down the viewport, thus throwing our
|
|
1080
|
-
// trigger => selectedItem alignment off by the amount the viewport was pushed down.
|
|
1081
|
-
// We wait for this to happen and then re-run the positining logic one more time to account for it.
|
|
1082
|
-
const handleScrollButtonChange = React.useCallback((node)=>{
|
|
1083
|
-
if (node && shouldRepositionRef.current === true) {
|
|
1084
|
-
position();
|
|
1085
|
-
focusSelectedItem();
|
|
1086
|
-
shouldRepositionRef.current = false;
|
|
1087
|
-
}
|
|
1088
|
-
}, [
|
|
1089
|
-
position,
|
|
1090
|
-
focusSelectedItem
|
|
1091
|
-
]); // prevent selecting items on `pointerup` in some cases after opening from `pointerdown`
|
|
1092
|
-
// and close on `pointerup` outside.
|
|
1093
|
-
const { onOpenChange: onOpenChange , triggerPointerDownPosRef: triggerPointerDownPosRef } = context;
|
|
1094
|
-
React.useEffect(()=>{
|
|
1095
|
-
if (content) {
|
|
1096
|
-
let pointerMoveDelta = {
|
|
1097
|
-
x: 0,
|
|
1098
|
-
y: 0
|
|
1099
|
-
};
|
|
1100
|
-
const handlePointerMove = (event)=>{
|
|
1101
|
-
var _triggerPointerDownPo, _triggerPointerDownPo2, _triggerPointerDownPo3, _triggerPointerDownPo4;
|
|
1102
|
-
pointerMoveDelta = {
|
|
1103
|
-
x: Math.abs(Math.round(event.pageX) - ((_triggerPointerDownPo = (_triggerPointerDownPo2 = triggerPointerDownPosRef.current) === null || _triggerPointerDownPo2 === void 0 ? void 0 : _triggerPointerDownPo2.x) !== null && _triggerPointerDownPo !== void 0 ? _triggerPointerDownPo : 0)),
|
|
1104
|
-
y: Math.abs(Math.round(event.pageY) - ((_triggerPointerDownPo3 = (_triggerPointerDownPo4 = triggerPointerDownPosRef.current) === null || _triggerPointerDownPo4 === void 0 ? void 0 : _triggerPointerDownPo4.y) !== null && _triggerPointerDownPo3 !== void 0 ? _triggerPointerDownPo3 : 0))
|
|
1105
|
-
};
|
|
1106
|
-
};
|
|
1107
|
-
const handlePointerUp = (event)=>{
|
|
1108
|
-
// If the pointer hasn't moved by a certain threshold then we prevent selecting item on `pointerup`.
|
|
1109
|
-
if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) event.preventDefault();
|
|
1110
|
-
else // otherwise, if the event was outside the content, close.
|
|
1111
|
-
if (!content.contains(event.target)) onOpenChange(false);
|
|
1112
|
-
document.removeEventListener('pointermove', handlePointerMove);
|
|
1113
|
-
triggerPointerDownPosRef.current = null;
|
|
1114
|
-
};
|
|
1115
|
-
if (triggerPointerDownPosRef.current !== null) {
|
|
1116
|
-
document.addEventListener('pointermove', handlePointerMove);
|
|
1117
|
-
document.addEventListener('pointerup', handlePointerUp, {
|
|
1118
|
-
capture: true,
|
|
1119
|
-
once: true
|
|
1120
|
-
});
|
|
1121
|
-
}
|
|
1122
|
-
return ()=>{
|
|
1123
|
-
document.removeEventListener('pointermove', handlePointerMove);
|
|
1124
|
-
document.removeEventListener('pointerup', handlePointerUp, {
|
|
1125
|
-
capture: true
|
|
1126
|
-
});
|
|
1127
|
-
};
|
|
1128
|
-
}
|
|
1129
|
-
}, [
|
|
1130
|
-
content,
|
|
1131
|
-
onOpenChange,
|
|
1132
|
-
triggerPointerDownPosRef
|
|
1133
|
-
]);
|
|
1134
|
-
React.useEffect(()=>{
|
|
1135
|
-
const close = ()=>onOpenChange(false)
|
|
1136
|
-
;
|
|
1137
|
-
window.addEventListener('blur', close);
|
|
1138
|
-
window.addEventListener('resize', close);
|
|
1139
|
-
return ()=>{
|
|
1140
|
-
window.removeEventListener('blur', close);
|
|
1141
|
-
window.removeEventListener('resize', close);
|
|
1142
|
-
};
|
|
1143
|
-
}, [
|
|
1144
|
-
onOpenChange
|
|
1145
|
-
]);
|
|
1146
|
-
const [searchRef, handleTypeaheadSearch] = $cc7e05a45900e73f$var$useTypeaheadSearch((search)=>{
|
|
1147
|
-
const enabledItems = getItems().filter((item)=>!item.disabled
|
|
1148
|
-
);
|
|
1149
|
-
const currentItem = enabledItems.find((item)=>item.ref.current === document.activeElement
|
|
1150
|
-
);
|
|
1151
|
-
const nextItem = $cc7e05a45900e73f$var$findNextItem(enabledItems, search, currentItem);
|
|
1152
|
-
if (nextItem) /**
|
|
1153
|
-
* Imperative focus during keydown is risky so we prevent React's batching updates
|
|
1154
|
-
* to avoid potential bugs. See: https://github.com/facebook/react/issues/20332
|
|
1155
|
-
*/ setTimeout(()=>nextItem.ref.current.focus()
|
|
1156
|
-
);
|
|
1157
|
-
});
|
|
1158
|
-
const itemRefCallback = React.useCallback((node, value, disabled)=>{
|
|
1159
|
-
const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
|
|
1160
|
-
const isSelectedItem = context.value !== undefined && context.value === value;
|
|
1161
|
-
if (isSelectedItem || isFirstValidItem) {
|
|
1162
|
-
setSelectedItem(node);
|
|
1163
|
-
if (isFirstValidItem) firstValidItemFoundRef.current = true;
|
|
1164
|
-
}
|
|
1165
|
-
}, [
|
|
1166
|
-
context.value
|
|
1167
|
-
]);
|
|
1168
|
-
const handleItemLeave = React.useCallback(()=>content === null || content === void 0 ? void 0 : content.focus()
|
|
1169
|
-
, [
|
|
1170
|
-
content
|
|
1171
|
-
]);
|
|
1172
|
-
const itemTextRefCallback = React.useCallback((node, value, disabled)=>{
|
|
1173
|
-
const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
|
|
1174
|
-
const isSelectedItem = context.value !== undefined && context.value === value;
|
|
1175
|
-
if (isSelectedItem || isFirstValidItem) setSelectedItemText(node);
|
|
1176
|
-
}, [
|
|
1177
|
-
context.value
|
|
1178
|
-
]);
|
|
1179
|
-
return /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$SelectContentProvider, {
|
|
1180
|
-
scope: __scopeSelect,
|
|
1181
|
-
contentWrapper: contentWrapper,
|
|
1182
|
-
content: content,
|
|
1183
|
-
viewport: viewport,
|
|
1184
|
-
onViewportChange: setViewport,
|
|
1185
|
-
itemRefCallback: itemRefCallback,
|
|
1186
|
-
selectedItem: selectedItem,
|
|
1187
|
-
onItemLeave: handleItemLeave,
|
|
1188
|
-
itemTextRefCallback: itemTextRefCallback,
|
|
1189
|
-
selectedItemText: selectedItemText,
|
|
1190
|
-
onScrollButtonChange: handleScrollButtonChange,
|
|
1191
|
-
isPositioned: isPositioned,
|
|
1192
|
-
shouldExpandOnScrollRef: shouldExpandOnScrollRef,
|
|
1193
|
-
searchRef: searchRef
|
|
1194
|
-
}, /*#__PURE__*/ React.createElement(index.$01b9c$RemoveScroll, {
|
|
1195
|
-
as: index_module.$5e63c961fc1ce211$export$8c6ed5c666ac1360,
|
|
1196
|
-
allowPinchZoom: true
|
|
1197
|
-
}, /*#__PURE__*/ React.createElement("div", {
|
|
1198
|
-
ref: setContentWrapper,
|
|
1199
|
-
style: {
|
|
1200
|
-
display: 'flex',
|
|
1201
|
-
flexDirection: 'column',
|
|
1202
|
-
position: 'fixed',
|
|
1203
|
-
zIndex: contentZIndex
|
|
1204
|
-
}
|
|
1205
|
-
}, /*#__PURE__*/ React.createElement($d3863c46a17e8a28$export$20e40289641fbbb6, {
|
|
1206
|
-
asChild: true // we make sure we're not trapping once it's been closed
|
|
1207
|
-
,
|
|
1208
|
-
trapped: context.open,
|
|
1209
|
-
onMountAutoFocus: (event)=>{
|
|
1210
|
-
// we prevent open autofocus because we manually focus the selected item
|
|
1211
|
-
event.preventDefault();
|
|
1212
|
-
},
|
|
1213
|
-
onUnmountAutoFocus: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(onCloseAutoFocus, (event)=>{
|
|
1214
|
-
var _context$trigger;
|
|
1215
|
-
(_context$trigger = context.trigger) === null || _context$trigger === void 0 || _context$trigger.focus({
|
|
1216
|
-
preventScroll: true
|
|
1217
|
-
});
|
|
1218
|
-
event.preventDefault();
|
|
1219
|
-
})
|
|
1220
|
-
}, /*#__PURE__*/ React.createElement($5cb92bef7577960e$export$177fb62ff3ec1f22, _extends._extends({
|
|
1221
|
-
role: "listbox",
|
|
1222
|
-
id: context.contentId,
|
|
1223
|
-
"data-state": context.open ? 'open' : 'closed',
|
|
1224
|
-
dir: context.dir,
|
|
1225
|
-
onContextMenu: (event)=>event.preventDefault()
|
|
1226
|
-
}, contentProps, {
|
|
1227
|
-
ref: composedRefs,
|
|
1228
|
-
style: {
|
|
1229
|
-
display: 'flex',
|
|
1230
|
-
flexDirection: 'column',
|
|
1231
|
-
// When we get the height of the content, it includes borders. If we were to set
|
|
1232
|
-
// the height without having `boxSizing: 'border-box'` it would be too big.
|
|
1233
|
-
boxSizing: 'border-box',
|
|
1234
|
-
maxHeight: '100%',
|
|
1235
|
-
outline: 'none',
|
|
1236
|
-
...contentProps.style
|
|
1237
|
-
},
|
|
1238
|
-
disableOutsidePointerEvents: true // When focus is trapped, a focusout event may still happen.
|
|
1239
|
-
,
|
|
1240
|
-
onFocusOutside: (event)=>event.preventDefault()
|
|
1241
|
-
,
|
|
1242
|
-
onDismiss: ()=>context.onOpenChange(false)
|
|
1243
|
-
,
|
|
1244
|
-
onKeyDown: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(contentProps.onKeyDown, (event)=>{
|
|
1245
|
-
const isModifierKey = event.ctrlKey || event.altKey || event.metaKey; // select should not be navigated using tab key so we prevent it
|
|
1246
|
-
if (event.key === 'Tab') event.preventDefault();
|
|
1247
|
-
if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);
|
|
1248
|
-
if ([
|
|
1249
|
-
'ArrowUp',
|
|
1250
|
-
'ArrowDown',
|
|
1251
|
-
'Home',
|
|
1252
|
-
'End'
|
|
1253
|
-
].includes(event.key)) {
|
|
1254
|
-
const items = getItems().filter((item)=>!item.disabled
|
|
1255
|
-
);
|
|
1256
|
-
let candidateNodes = items.map((item)=>item.ref.current
|
|
1257
|
-
);
|
|
1258
|
-
if ([
|
|
1259
|
-
'ArrowUp',
|
|
1260
|
-
'End'
|
|
1261
|
-
].includes(event.key)) candidateNodes = candidateNodes.slice().reverse();
|
|
1262
|
-
if ([
|
|
1263
|
-
'ArrowUp',
|
|
1264
|
-
'ArrowDown'
|
|
1265
|
-
].includes(event.key)) {
|
|
1266
|
-
const currentElement = event.target;
|
|
1267
|
-
const currentIndex = candidateNodes.indexOf(currentElement);
|
|
1268
|
-
candidateNodes = candidateNodes.slice(currentIndex + 1);
|
|
1269
|
-
}
|
|
1270
|
-
/**
|
|
1271
|
-
* Imperative focus during keydown is risky so we prevent React's batching updates
|
|
1272
|
-
* to avoid potential bugs. See: https://github.com/facebook/react/issues/20332
|
|
1273
|
-
*/ setTimeout(()=>focusFirst(candidateNodes)
|
|
1274
|
-
);
|
|
1275
|
-
event.preventDefault();
|
|
1276
|
-
}
|
|
1277
|
-
})
|
|
1278
|
-
}))))));
|
|
1279
|
-
});
|
|
1280
|
-
/* -------------------------------------------------------------------------------------------------
|
|
1281
|
-
* SelectViewport
|
|
1282
|
-
* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$VIEWPORT_NAME = 'SelectViewport';
|
|
1283
|
-
const $cc7e05a45900e73f$export$9ed6e7b40248d36d = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
1284
|
-
const { __scopeSelect: __scopeSelect , ...viewportProps } = props;
|
|
1285
|
-
const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$VIEWPORT_NAME, __scopeSelect);
|
|
1286
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentContext.onViewportChange);
|
|
1287
|
-
const prevScrollTopRef = React.useRef(0);
|
|
1288
|
-
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("style", {
|
|
1289
|
-
dangerouslySetInnerHTML: {
|
|
1290
|
-
__html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`
|
|
1291
|
-
}
|
|
1292
|
-
}), /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$Collection.Slot, {
|
|
1293
|
-
scope: __scopeSelect
|
|
1294
|
-
}, /*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends._extends({
|
|
1295
|
-
"data-radix-select-viewport": "",
|
|
1296
|
-
role: "presentation"
|
|
1297
|
-
}, viewportProps, {
|
|
1298
|
-
ref: composedRefs,
|
|
1299
|
-
style: {
|
|
1300
|
-
// we use position: 'relative' here on the `viewport` so that when we call
|
|
1301
|
-
// `selectedItem.offsetTop` in calculations, the offset is relative to the viewport
|
|
1302
|
-
// (independent of the scrollUpButton).
|
|
1303
|
-
position: 'relative',
|
|
1304
|
-
flex: 1,
|
|
1305
|
-
overflow: 'auto',
|
|
1306
|
-
...viewportProps.style
|
|
1307
|
-
},
|
|
1308
|
-
onScroll: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(viewportProps.onScroll, (event)=>{
|
|
1309
|
-
const viewport = event.currentTarget;
|
|
1310
|
-
const { contentWrapper: contentWrapper , shouldExpandOnScrollRef: shouldExpandOnScrollRef } = contentContext;
|
|
1311
|
-
if (shouldExpandOnScrollRef !== null && shouldExpandOnScrollRef !== void 0 && shouldExpandOnScrollRef.current && contentWrapper) {
|
|
1312
|
-
const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);
|
|
1313
|
-
if (scrolledBy > 0) {
|
|
1314
|
-
const availableHeight = window.innerHeight - $cc7e05a45900e73f$var$CONTENT_MARGIN * 2;
|
|
1315
|
-
const cssMinHeight = parseFloat(contentWrapper.style.minHeight);
|
|
1316
|
-
const cssHeight = parseFloat(contentWrapper.style.height);
|
|
1317
|
-
const prevHeight = Math.max(cssMinHeight, cssHeight);
|
|
1318
|
-
if (prevHeight < availableHeight) {
|
|
1319
|
-
const nextHeight = prevHeight + scrolledBy;
|
|
1320
|
-
const clampedNextHeight = Math.min(availableHeight, nextHeight);
|
|
1321
|
-
const heightDiff = nextHeight - clampedNextHeight;
|
|
1322
|
-
contentWrapper.style.height = clampedNextHeight + 'px';
|
|
1323
|
-
if (contentWrapper.style.bottom === '0px') {
|
|
1324
|
-
viewport.scrollTop = heightDiff > 0 ? heightDiff : 0; // ensure the content stays pinned to the bottom
|
|
1325
|
-
contentWrapper.style.justifyContent = 'flex-end';
|
|
1326
|
-
}
|
|
1327
|
-
}
|
|
1328
|
-
}
|
|
1329
|
-
}
|
|
1330
|
-
prevScrollTopRef.current = viewport.scrollTop;
|
|
1331
|
-
})
|
|
1332
|
-
}))));
|
|
1333
|
-
});
|
|
1334
|
-
/* -------------------------------------------------------------------------------------------------
|
|
1335
|
-
* SelectGroup
|
|
1336
|
-
* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$GROUP_NAME = 'SelectGroup';
|
|
1337
|
-
$cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$GROUP_NAME);
|
|
1338
|
-
/* -------------------------------------------------------------------------------------------------
|
|
1339
|
-
* SelectItem
|
|
1340
|
-
* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$ITEM_NAME = 'SelectItem';
|
|
1341
|
-
const [$cc7e05a45900e73f$var$SelectItemContextProvider, $cc7e05a45900e73f$var$useSelectItemContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$ITEM_NAME);
|
|
1342
|
-
const $cc7e05a45900e73f$export$13ef48a934230896 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
1343
|
-
const { __scopeSelect: __scopeSelect , value: value , disabled: disabled = false , textValue: textValueProp , ...itemProps } = props;
|
|
1344
|
-
const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$ITEM_NAME, __scopeSelect);
|
|
1345
|
-
const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$ITEM_NAME, __scopeSelect);
|
|
1346
|
-
const isSelected = context.value === value;
|
|
1347
|
-
const [textValue, setTextValue] = React.useState(textValueProp !== null && textValueProp !== void 0 ? textValueProp : '');
|
|
1348
|
-
const [isFocused, setIsFocused] = React.useState(false);
|
|
1349
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node)=>{
|
|
1350
|
-
var _contentContext$itemR;
|
|
1351
|
-
return (_contentContext$itemR = contentContext.itemRefCallback) === null || _contentContext$itemR === void 0 ? void 0 : _contentContext$itemR.call(contentContext, node, value, disabled);
|
|
1352
|
-
});
|
|
1353
|
-
const textId = $1746a345f3d73bb7$export$f680877a34711e37();
|
|
1354
|
-
const handleSelect = ()=>{
|
|
1355
|
-
if (!disabled) {
|
|
1356
|
-
context.onValueChange(value);
|
|
1357
|
-
context.onOpenChange(false);
|
|
1358
|
-
}
|
|
1359
|
-
};
|
|
1360
|
-
return /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$SelectItemContextProvider, {
|
|
1361
|
-
scope: __scopeSelect,
|
|
1362
|
-
value: value,
|
|
1363
|
-
disabled: disabled,
|
|
1364
|
-
textId: textId,
|
|
1365
|
-
isSelected: isSelected,
|
|
1366
|
-
onItemTextChange: React.useCallback((node)=>{
|
|
1367
|
-
setTextValue((prevTextValue)=>{
|
|
1368
|
-
var _node$textContent;
|
|
1369
|
-
return prevTextValue || ((_node$textContent = node === null || node === void 0 ? void 0 : node.textContent) !== null && _node$textContent !== void 0 ? _node$textContent : '').trim();
|
|
1370
|
-
});
|
|
1371
|
-
}, [])
|
|
1372
|
-
}, /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$Collection.ItemSlot, {
|
|
1373
|
-
scope: __scopeSelect,
|
|
1374
|
-
value: value,
|
|
1375
|
-
disabled: disabled,
|
|
1376
|
-
textValue: textValue
|
|
1377
|
-
}, /*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends._extends({
|
|
1378
|
-
role: "option",
|
|
1379
|
-
"aria-labelledby": textId,
|
|
1380
|
-
"data-highlighted": isFocused ? '' : undefined // `isFocused` caveat fixes stuttering in VoiceOver
|
|
1381
|
-
,
|
|
1382
|
-
"aria-selected": isSelected && isFocused,
|
|
1383
|
-
"data-state": isSelected ? 'checked' : 'unchecked',
|
|
1384
|
-
"aria-disabled": disabled || undefined,
|
|
1385
|
-
"data-disabled": disabled ? '' : undefined,
|
|
1386
|
-
tabIndex: disabled ? undefined : -1
|
|
1387
|
-
}, itemProps, {
|
|
1388
|
-
ref: composedRefs,
|
|
1389
|
-
onFocus: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onFocus, ()=>setIsFocused(true)
|
|
1390
|
-
),
|
|
1391
|
-
onBlur: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onBlur, ()=>setIsFocused(false)
|
|
1392
|
-
),
|
|
1393
|
-
onPointerUp: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onPointerUp, handleSelect),
|
|
1394
|
-
onPointerMove: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onPointerMove, (event)=>{
|
|
1395
|
-
if (disabled) {
|
|
1396
|
-
var _contentContext$onIte;
|
|
1397
|
-
(_contentContext$onIte = contentContext.onItemLeave) === null || _contentContext$onIte === void 0 || _contentContext$onIte.call(contentContext);
|
|
1398
|
-
} else // even though safari doesn't support this option, it's acceptable
|
|
1399
|
-
// as it only means it might scroll a few pixels when using the pointer.
|
|
1400
|
-
event.currentTarget.focus({
|
|
1401
|
-
preventScroll: true
|
|
1402
|
-
});
|
|
1403
|
-
}),
|
|
1404
|
-
onPointerLeave: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onPointerLeave, (event)=>{
|
|
1405
|
-
if (event.currentTarget === document.activeElement) {
|
|
1406
|
-
var _contentContext$onIte2;
|
|
1407
|
-
(_contentContext$onIte2 = contentContext.onItemLeave) === null || _contentContext$onIte2 === void 0 || _contentContext$onIte2.call(contentContext);
|
|
1408
|
-
}
|
|
1409
|
-
}),
|
|
1410
|
-
onKeyDown: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onKeyDown, (event)=>{
|
|
1411
|
-
var _contentContext$searc;
|
|
1412
|
-
const isTypingAhead = ((_contentContext$searc = contentContext.searchRef) === null || _contentContext$searc === void 0 ? void 0 : _contentContext$searc.current) !== '';
|
|
1413
|
-
if (isTypingAhead && event.key === ' ') return;
|
|
1414
|
-
if ($cc7e05a45900e73f$var$SELECTION_KEYS.includes(event.key)) handleSelect(); // prevent page scroll if using the space key to select an item
|
|
1415
|
-
if (event.key === ' ') event.preventDefault();
|
|
1416
|
-
})
|
|
1417
|
-
}))));
|
|
1418
|
-
});
|
|
1419
|
-
/* -------------------------------------------------------------------------------------------------
|
|
1420
|
-
* SelectItemText
|
|
1421
|
-
* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$ITEM_TEXT_NAME = 'SelectItemText';
|
|
1422
|
-
const $cc7e05a45900e73f$export$3572fb0fb821ff49 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
1423
|
-
// We ignore `className` and `style` as this part shouldn't be styled.
|
|
1424
|
-
const { __scopeSelect: __scopeSelect , className: className , style: style , ...itemTextProps } = props;
|
|
1425
|
-
const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);
|
|
1426
|
-
const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);
|
|
1427
|
-
const itemContext = $cc7e05a45900e73f$var$useSelectItemContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);
|
|
1428
|
-
const nativeOptionsContext = $cc7e05a45900e73f$var$useSelectNativeOptionsContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);
|
|
1429
|
-
const [itemTextNode, setItemTextNode] = React.useState(null);
|
|
1430
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node)=>setItemTextNode(node)
|
|
1431
|
-
, itemContext.onItemTextChange, (node)=>{
|
|
1432
|
-
var _contentContext$itemT;
|
|
1433
|
-
return (_contentContext$itemT = contentContext.itemTextRefCallback) === null || _contentContext$itemT === void 0 ? void 0 : _contentContext$itemT.call(contentContext, node, itemContext.value, itemContext.disabled);
|
|
1434
|
-
});
|
|
1435
|
-
const textContent = itemTextNode === null || itemTextNode === void 0 ? void 0 : itemTextNode.textContent;
|
|
1436
|
-
const nativeOption = React.useMemo(()=>/*#__PURE__*/ React.createElement("option", {
|
|
1437
|
-
key: itemContext.value,
|
|
1438
|
-
value: itemContext.value,
|
|
1439
|
-
disabled: itemContext.disabled
|
|
1440
|
-
}, textContent)
|
|
1441
|
-
, [
|
|
1442
|
-
itemContext.disabled,
|
|
1443
|
-
itemContext.value,
|
|
1444
|
-
textContent
|
|
1445
|
-
]);
|
|
1446
|
-
const { onNativeOptionAdd: onNativeOptionAdd , onNativeOptionRemove: onNativeOptionRemove } = nativeOptionsContext;
|
|
1447
|
-
index_module.$9f79659886946c16$export$e5c5a5f917a5871c(()=>{
|
|
1448
|
-
onNativeOptionAdd(nativeOption);
|
|
1449
|
-
return ()=>onNativeOptionRemove(nativeOption)
|
|
1450
|
-
;
|
|
1451
|
-
}, [
|
|
1452
|
-
onNativeOptionAdd,
|
|
1453
|
-
onNativeOptionRemove,
|
|
1454
|
-
nativeOption
|
|
1455
|
-
]);
|
|
1456
|
-
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends._extends({
|
|
1457
|
-
id: itemContext.textId
|
|
1458
|
-
}, itemTextProps, {
|
|
1459
|
-
ref: composedRefs
|
|
1460
|
-
})), itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? /*#__PURE__*/ $7SXl2$reactdom.createPortal(itemTextProps.children, context.valueNode) : null);
|
|
1461
|
-
});
|
|
1462
|
-
/* -------------------------------------------------------------------------------------------------
|
|
1463
|
-
* SelectItemIndicator
|
|
1464
|
-
* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$ITEM_INDICATOR_NAME = 'SelectItemIndicator';
|
|
1465
|
-
const $cc7e05a45900e73f$export$6b9198de19accfe6 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
1466
|
-
const { __scopeSelect: __scopeSelect , ...itemIndicatorProps } = props;
|
|
1467
|
-
const itemContext = $cc7e05a45900e73f$var$useSelectItemContext($cc7e05a45900e73f$var$ITEM_INDICATOR_NAME, __scopeSelect);
|
|
1468
|
-
return itemContext.isSelected ? /*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends._extends({
|
|
1469
|
-
"aria-hidden": true
|
|
1470
|
-
}, itemIndicatorProps, {
|
|
1471
|
-
ref: forwardedRef
|
|
1472
|
-
})) : null;
|
|
1473
|
-
});
|
|
1474
|
-
/* -------------------------------------------------------------------------------------------------
|
|
1475
|
-
* SelectScrollUpButton
|
|
1476
|
-
* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME = 'SelectScrollUpButton';
|
|
1477
|
-
const $cc7e05a45900e73f$export$d8117927658af6d7 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
1478
|
-
const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
|
|
1479
|
-
const [canScrollUp1, setCanScrollUp] = React.useState(false);
|
|
1480
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentContext.onScrollButtonChange);
|
|
1481
|
-
index_module.$9f79659886946c16$export$e5c5a5f917a5871c(()=>{
|
|
1482
|
-
if (contentContext.viewport && contentContext.isPositioned) {
|
|
1483
|
-
const viewport = contentContext.viewport;
|
|
1484
|
-
function handleScroll() {
|
|
1485
|
-
const canScrollUp = viewport.scrollTop > 0;
|
|
1486
|
-
setCanScrollUp(canScrollUp);
|
|
1487
|
-
}
|
|
1488
|
-
handleScroll();
|
|
1489
|
-
viewport.addEventListener('scroll', handleScroll);
|
|
1490
|
-
return ()=>viewport.removeEventListener('scroll', handleScroll)
|
|
1491
|
-
;
|
|
1492
|
-
}
|
|
1493
|
-
}, [
|
|
1494
|
-
contentContext.viewport,
|
|
1495
|
-
contentContext.isPositioned
|
|
1496
|
-
]);
|
|
1497
|
-
return canScrollUp1 ? /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$SelectScrollButtonImpl, _extends._extends({}, props, {
|
|
1498
|
-
ref: composedRefs,
|
|
1499
|
-
onAutoScroll: ()=>{
|
|
1500
|
-
const { viewport: viewport , selectedItem: selectedItem } = contentContext;
|
|
1501
|
-
if (viewport && selectedItem) viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;
|
|
1502
|
-
}
|
|
1503
|
-
})) : null;
|
|
1504
|
-
});
|
|
1505
|
-
/* -------------------------------------------------------------------------------------------------
|
|
1506
|
-
* SelectScrollDownButton
|
|
1507
|
-
* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME = 'SelectScrollDownButton';
|
|
1508
|
-
const $cc7e05a45900e73f$export$ff951e476c12189 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
1509
|
-
const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
|
|
1510
|
-
const [canScrollDown1, setCanScrollDown] = React.useState(false);
|
|
1511
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentContext.onScrollButtonChange);
|
|
1512
|
-
index_module.$9f79659886946c16$export$e5c5a5f917a5871c(()=>{
|
|
1513
|
-
if (contentContext.viewport && contentContext.isPositioned) {
|
|
1514
|
-
const viewport = contentContext.viewport;
|
|
1515
|
-
function handleScroll() {
|
|
1516
|
-
const maxScroll = viewport.scrollHeight - viewport.clientHeight; // we use Math.ceil here because if the UI is zoomed-in
|
|
1517
|
-
// `scrollTop` is not always reported as an integer
|
|
1518
|
-
const canScrollDown = Math.ceil(viewport.scrollTop) < maxScroll;
|
|
1519
|
-
setCanScrollDown(canScrollDown);
|
|
1520
|
-
}
|
|
1521
|
-
handleScroll();
|
|
1522
|
-
viewport.addEventListener('scroll', handleScroll);
|
|
1523
|
-
return ()=>viewport.removeEventListener('scroll', handleScroll)
|
|
1524
|
-
;
|
|
1525
|
-
}
|
|
1526
|
-
}, [
|
|
1527
|
-
contentContext.viewport,
|
|
1528
|
-
contentContext.isPositioned
|
|
1529
|
-
]);
|
|
1530
|
-
return canScrollDown1 ? /*#__PURE__*/ React.createElement($cc7e05a45900e73f$var$SelectScrollButtonImpl, _extends._extends({}, props, {
|
|
1531
|
-
ref: composedRefs,
|
|
1532
|
-
onAutoScroll: ()=>{
|
|
1533
|
-
const { viewport: viewport , selectedItem: selectedItem } = contentContext;
|
|
1534
|
-
if (viewport && selectedItem) viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;
|
|
1535
|
-
}
|
|
1536
|
-
})) : null;
|
|
1537
|
-
});
|
|
1538
|
-
const $cc7e05a45900e73f$var$SelectScrollButtonImpl = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
1539
|
-
const { __scopeSelect: __scopeSelect , onAutoScroll: onAutoScroll , ...scrollIndicatorProps } = props;
|
|
1540
|
-
const contentContext = $cc7e05a45900e73f$var$useSelectContentContext('SelectScrollButton', __scopeSelect);
|
|
1541
|
-
const autoScrollTimerRef = React.useRef(null);
|
|
1542
|
-
const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);
|
|
1543
|
-
const clearAutoScrollTimer = React.useCallback(()=>{
|
|
1544
|
-
if (autoScrollTimerRef.current !== null) {
|
|
1545
|
-
window.clearInterval(autoScrollTimerRef.current);
|
|
1546
|
-
autoScrollTimerRef.current = null;
|
|
1547
|
-
}
|
|
1548
|
-
}, []);
|
|
1549
|
-
React.useEffect(()=>{
|
|
1550
|
-
return ()=>clearAutoScrollTimer()
|
|
1551
|
-
;
|
|
1552
|
-
}, [
|
|
1553
|
-
clearAutoScrollTimer
|
|
1554
|
-
]); // When the viewport becomes scrollable on either side, the relevant scroll button will mount.
|
|
1555
|
-
// Because it is part of the normal flow, it will push down (top button) or shrink (bottom button)
|
|
1556
|
-
// the viewport, potentially causing the active item to now be partially out of view.
|
|
1557
|
-
// We re-run the `scrollIntoView` logic to make sure it stays within the viewport.
|
|
1558
|
-
index_module.$9f79659886946c16$export$e5c5a5f917a5871c(()=>{
|
|
1559
|
-
var _activeItem$ref$curre;
|
|
1560
|
-
const activeItem = getItems().find((item)=>item.ref.current === document.activeElement
|
|
1561
|
-
);
|
|
1562
|
-
activeItem === null || activeItem === void 0 || (_activeItem$ref$curre = activeItem.ref.current) === null || _activeItem$ref$curre === void 0 || _activeItem$ref$curre.scrollIntoView({
|
|
1563
|
-
block: 'nearest'
|
|
1564
|
-
});
|
|
1565
|
-
}, [
|
|
1566
|
-
getItems
|
|
1567
|
-
]);
|
|
1568
|
-
return /*#__PURE__*/ React.createElement(index_module.$8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends._extends({
|
|
1569
|
-
"aria-hidden": true
|
|
1570
|
-
}, scrollIndicatorProps, {
|
|
1571
|
-
ref: forwardedRef,
|
|
1572
|
-
style: {
|
|
1573
|
-
flexShrink: 0,
|
|
1574
|
-
...scrollIndicatorProps.style
|
|
1575
|
-
},
|
|
1576
|
-
onPointerMove: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(scrollIndicatorProps.onPointerMove, ()=>{
|
|
1577
|
-
var _contentContext$onIte3;
|
|
1578
|
-
(_contentContext$onIte3 = contentContext.onItemLeave) === null || _contentContext$onIte3 === void 0 || _contentContext$onIte3.call(contentContext);
|
|
1579
|
-
if (autoScrollTimerRef.current === null) autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);
|
|
1580
|
-
}),
|
|
1581
|
-
onPointerLeave: index_module.$e42e1063c40fb3ef$export$b9ecd428b558ff10(scrollIndicatorProps.onPointerLeave, ()=>{
|
|
1582
|
-
clearAutoScrollTimer();
|
|
1583
|
-
})
|
|
1584
|
-
}));
|
|
1585
|
-
});
|
|
1586
|
-
/* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$BubbleSelect = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
1587
|
-
const { value: value , ...selectProps } = props;
|
|
1588
|
-
const ref = React.useRef(null);
|
|
1589
|
-
const composedRefs = index_module.$6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);
|
|
1590
|
-
const prevValue = index_module.$010c2913dbd2fe3d$export$5cae361ad82dce8b(value); // Bubble value change to parents (e.g form change event)
|
|
1591
|
-
React.useEffect(()=>{
|
|
1592
|
-
const select = ref.current;
|
|
1593
|
-
const selectProto = window.HTMLSelectElement.prototype;
|
|
1594
|
-
const descriptor = Object.getOwnPropertyDescriptor(selectProto, 'value');
|
|
1595
|
-
const setValue = descriptor.set;
|
|
1596
|
-
if (prevValue !== value && setValue) {
|
|
1597
|
-
const event = new Event('change', {
|
|
1598
|
-
bubbles: true
|
|
1599
|
-
});
|
|
1600
|
-
setValue.call(select, value);
|
|
1601
|
-
select.dispatchEvent(event);
|
|
1602
|
-
}
|
|
1603
|
-
}, [
|
|
1604
|
-
prevValue,
|
|
1605
|
-
value
|
|
1606
|
-
]);
|
|
1607
|
-
/**
|
|
1608
|
-
* We purposefully use a `select` here to support form autofill as much
|
|
1609
|
-
* as possible.
|
|
1610
|
-
*
|
|
1611
|
-
* We purposefully do not add the `value` attribute here to allow the value
|
|
1612
|
-
* to be set programatically and bubble to any parent form `onChange` event.
|
|
1613
|
-
* Adding the `value` will cause React to consider the programatic
|
|
1614
|
-
* dispatch a duplicate and it will get swallowed.
|
|
1615
|
-
*
|
|
1616
|
-
* We use `VisuallyHidden` rather than `display: "none"` because Safari autofill
|
|
1617
|
-
* won't work otherwise.
|
|
1618
|
-
*/ return /*#__PURE__*/ React.createElement($ea1ef594cf570d83$export$439d29a4e110a164, {
|
|
1619
|
-
asChild: true
|
|
1620
|
-
}, /*#__PURE__*/ React.createElement("select", _extends._extends({}, selectProps, {
|
|
1621
|
-
ref: composedRefs,
|
|
1622
|
-
defaultValue: value
|
|
1623
|
-
})));
|
|
1624
|
-
});
|
|
1625
|
-
$cc7e05a45900e73f$var$BubbleSelect.displayName = 'BubbleSelect';
|
|
1626
|
-
function $cc7e05a45900e73f$var$useTypeaheadSearch(onSearchChange) {
|
|
1627
|
-
const handleSearchChange = index_module.$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onSearchChange);
|
|
1628
|
-
const searchRef = React.useRef('');
|
|
1629
|
-
const timerRef = React.useRef(0);
|
|
1630
|
-
const handleTypeaheadSearch = React.useCallback((key)=>{
|
|
1631
|
-
const search = searchRef.current + key;
|
|
1632
|
-
handleSearchChange(search);
|
|
1633
|
-
(function updateSearch(value) {
|
|
1634
|
-
searchRef.current = value;
|
|
1635
|
-
window.clearTimeout(timerRef.current); // Reset `searchRef` 1 second after it was last updated
|
|
1636
|
-
if (value !== '') timerRef.current = window.setTimeout(()=>updateSearch('')
|
|
1637
|
-
, 1000);
|
|
1638
|
-
})(search);
|
|
1639
|
-
}, [
|
|
1640
|
-
handleSearchChange
|
|
1641
|
-
]);
|
|
1642
|
-
const resetTypeahead = React.useCallback(()=>{
|
|
1643
|
-
searchRef.current = '';
|
|
1644
|
-
window.clearTimeout(timerRef.current);
|
|
1645
|
-
}, []);
|
|
1646
|
-
React.useEffect(()=>{
|
|
1647
|
-
return ()=>window.clearTimeout(timerRef.current)
|
|
1648
|
-
;
|
|
1649
|
-
}, []);
|
|
1650
|
-
return [
|
|
1651
|
-
searchRef,
|
|
1652
|
-
handleTypeaheadSearch,
|
|
1653
|
-
resetTypeahead
|
|
1654
|
-
];
|
|
1655
|
-
}
|
|
1656
|
-
/**
|
|
1657
|
-
* This is the "meat" of the typeahead matching logic. It takes in a list of items,
|
|
1658
|
-
* the search and the current item, and returns the next item (or `undefined`).
|
|
1659
|
-
*
|
|
1660
|
-
* We normalize the search because if a user has repeatedly pressed a character,
|
|
1661
|
-
* we want the exact same behavior as if we only had that one character
|
|
1662
|
-
* (ie. cycle through items starting with that character)
|
|
1663
|
-
*
|
|
1664
|
-
* We also reorder the items by wrapping the array around the current item.
|
|
1665
|
-
* This is so we always look forward from the current item, and picking the first
|
|
1666
|
-
* item will always be the correct one.
|
|
1667
|
-
*
|
|
1668
|
-
* Finally, if the normalized search is exactly one character, we exclude the
|
|
1669
|
-
* current item from the values because otherwise it would be the first to match always
|
|
1670
|
-
* and focus would never move. This is as opposed to the regular case, where we
|
|
1671
|
-
* don't want focus to move if the current item still matches.
|
|
1672
|
-
*/ function $cc7e05a45900e73f$var$findNextItem(items, search, currentItem) {
|
|
1673
|
-
const isRepeated = search.length > 1 && Array.from(search).every((char)=>char === search[0]
|
|
1674
|
-
);
|
|
1675
|
-
const normalizedSearch = isRepeated ? search[0] : search;
|
|
1676
|
-
const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;
|
|
1677
|
-
let wrappedItems = $cc7e05a45900e73f$var$wrapArray(items, Math.max(currentItemIndex, 0));
|
|
1678
|
-
const excludeCurrentItem = normalizedSearch.length === 1;
|
|
1679
|
-
if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v)=>v !== currentItem
|
|
1680
|
-
);
|
|
1681
|
-
const nextItem = wrappedItems.find((item)=>item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())
|
|
1682
|
-
);
|
|
1683
|
-
return nextItem !== currentItem ? nextItem : undefined;
|
|
1684
|
-
}
|
|
1685
|
-
/**
|
|
1686
|
-
* Wraps an array around itself at a given start index
|
|
1687
|
-
* Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`
|
|
1688
|
-
*/ function $cc7e05a45900e73f$var$wrapArray(array, startIndex) {
|
|
1689
|
-
return array.map((_, index)=>array[(startIndex + index) % array.length]
|
|
1690
|
-
);
|
|
1691
|
-
}
|
|
1692
|
-
const $cc7e05a45900e73f$export$be92b6f5f03c0fe9 = $cc7e05a45900e73f$export$ef9b1a59e592288f;
|
|
1693
|
-
const $cc7e05a45900e73f$export$41fb9f06171c75f4 = $cc7e05a45900e73f$export$3ac1e88a1c0b9f1;
|
|
1694
|
-
const $cc7e05a45900e73f$export$4c8d1a57a761ef94 = $cc7e05a45900e73f$export$e288731fd71264f0;
|
|
1695
|
-
const $cc7e05a45900e73f$export$f04a61298a47a40f = $cc7e05a45900e73f$export$99b400cabb58c515;
|
|
1696
|
-
const $cc7e05a45900e73f$export$602eac185826482c = $cc7e05a45900e73f$export$b2af6c9944296213;
|
|
1697
|
-
const $cc7e05a45900e73f$export$7c6e2c02157bb7d2 = $cc7e05a45900e73f$export$c973a4b3cb86a03d;
|
|
1698
|
-
const $cc7e05a45900e73f$export$d5c6c08dc2d3ca7 = $cc7e05a45900e73f$export$9ed6e7b40248d36d;
|
|
1699
|
-
const $cc7e05a45900e73f$export$6d08773d2e66f8f2 = $cc7e05a45900e73f$export$13ef48a934230896;
|
|
1700
|
-
const $cc7e05a45900e73f$export$d6e5bf9c43ea9319 = $cc7e05a45900e73f$export$3572fb0fb821ff49;
|
|
1701
|
-
const $cc7e05a45900e73f$export$c3468e2714d175fa = $cc7e05a45900e73f$export$6b9198de19accfe6;
|
|
1702
|
-
const $cc7e05a45900e73f$export$2f60d3ec9ad468f2 = $cc7e05a45900e73f$export$d8117927658af6d7;
|
|
1703
|
-
const $cc7e05a45900e73f$export$bf1aedc3039c8d63 = $cc7e05a45900e73f$export$ff951e476c12189;
|
|
1704
27
|
|
|
1705
28
|
/** Use `Select` to choose from a dropdown list of options. */
|
|
1706
29
|
var Select = function (_a) {
|
|
1707
30
|
var _b;
|
|
1708
|
-
var isRequired = _a.isRequired, isDisabled = _a.isDisabled, placeholder = _a.placeholder, label = _a.label, _c = _a.ariaLabel, ariaLabel = _c === void 0 ? label : _c, options = _a.options, onOpenChange = _a.onOpenChange, isDefaultOpen = _a.isDefaultOpen, defaultValue = _a.defaultValue, errorMessage = _a.errorMessage, labelSize = _a.labelSize, helper = _a.helper, name = _a.name, isFluid = _a.isFluid, onBlur = _a.onBlur, onChange = _a.onChange, disclosureTitle = _a.disclosureTitle, disclosureText = _a.disclosureText, onClickDisclosure = _a.onClickDisclosure, _d = _a.selectSize, selectSize = _d === void 0 ? "m" : _d, props =
|
|
31
|
+
var isRequired = _a.isRequired, isDisabled = _a.isDisabled, placeholder = _a.placeholder, label = _a.label, value = _a.value, _c = _a.ariaLabel, ariaLabel = _c === void 0 ? label : _c, options = _a.options, onOpenChange = _a.onOpenChange, isDefaultOpen = _a.isDefaultOpen, defaultValue = _a.defaultValue, errorMessage = _a.errorMessage, labelSize = _a.labelSize, helper = _a.helper, hideLabel = _a.hideLabel, name = _a.name, width = _a.width, isFluid = _a.isFluid, onBlur = _a.onBlur, onChange = _a.onChange, disclosureTitle = _a.disclosureTitle, disclosureText = _a.disclosureText, onClickDisclosure = _a.onClickDisclosure, _d = _a.selectSize, selectSize = _d === void 0 ? "m" : _d, props = index_es.__rest(_a, ["isRequired", "isDisabled", "placeholder", "label", "value", "ariaLabel", "options", "onOpenChange", "isDefaultOpen", "defaultValue", "errorMessage", "labelSize", "helper", "hideLabel", "name", "width", "isFluid", "onBlur", "onChange", "disclosureTitle", "disclosureText", "onClickDisclosure", "selectSize"]);
|
|
1709
32
|
var id = React.useId();
|
|
1710
|
-
var
|
|
33
|
+
var _e = component.useThemeElement(), themeElement = _e[0], setThemeElement = _e[1];
|
|
1711
34
|
var surface = React.useContext(Surface.Context).surface;
|
|
1712
|
-
var
|
|
35
|
+
var _f = React.useState(defaultValue), uncontrolledValue = _f[0], setUncontrolledValue = _f[1];
|
|
36
|
+
var isControlled = typeof value !== "undefined";
|
|
37
|
+
var selectValue = isControlled ? value : uncontrolledValue;
|
|
1713
38
|
var onValueChange = function (value) {
|
|
1714
39
|
onChange && onChange(value);
|
|
1715
|
-
|
|
40
|
+
setUncontrolledValue(value);
|
|
1716
41
|
};
|
|
1717
42
|
var getSelectedValueName = function (value) {
|
|
1718
43
|
var _a;
|
|
@@ -1728,35 +53,36 @@ var Select = function (_a) {
|
|
|
1728
53
|
return 20;
|
|
1729
54
|
}
|
|
1730
55
|
};
|
|
1731
|
-
return (React__default["default"].createElement(FormControl.FormControl, { errorMessage: errorMessage, helper: helper, htmlFor: id, label: label, labelSize: labelSize, requirementStatus: isRequired ? "required" : "optional", isDisabled: isDisabled, disclosureText: disclosureText, disclosureTitle: disclosureTitle, onClickDisclosure: onClickDisclosure },
|
|
1732
|
-
React__default["default"].createElement(
|
|
1733
|
-
React__default["default"].createElement(
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
React__default["default"].createElement(
|
|
1743
|
-
|
|
1744
|
-
React__default["default"].createElement(
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
React__default["default"].createElement(
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
React__default["default"].createElement(
|
|
1753
|
-
React__default["default"].createElement(
|
|
1754
|
-
React__default["default"].createElement(
|
|
1755
|
-
|
|
1756
|
-
React__default["default"].createElement(
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
React__default["default"].createElement(
|
|
56
|
+
return (React__default["default"].createElement(FormControl.FormControl, { errorMessage: errorMessage, helper: helper, htmlFor: id, label: label, hideLabel: hideLabel, labelSize: labelSize, requirementStatus: isRequired ? "required" : "optional", isDisabled: isDisabled, disclosureText: disclosureText, disclosureTitle: disclosureTitle, onClickDisclosure: onClickDisclosure },
|
|
57
|
+
React__default["default"].createElement(index.$cc7e05a45900e73f$export$be92b6f5f03c0fe9, { name: name, required: isRequired, disabled: isDisabled, defaultOpen: isDefaultOpen, value: selectValue, onOpenChange: onOpenChange, onValueChange: function (value) { return onValueChange(value); } },
|
|
58
|
+
React__default["default"].createElement("div", { ref: setThemeElement, className: "arc-Select-wrapper" },
|
|
59
|
+
React__default["default"].createElement(index.$cc7e05a45900e73f$export$41fb9f06171c75f4, index_es.__assign({ id: id, name: name, onBlur: onBlur, "aria-label": ariaLabel, style: { width: width }, className: index$1.classNames("arc-Select-trigger", (_b = {
|
|
60
|
+
"arc-Select-trigger--constrained": !isFluid,
|
|
61
|
+
"arc-Select-trigger--onDarkSurface": surface === "dark",
|
|
62
|
+
"arc-Select-trigger--invalid": errorMessage
|
|
63
|
+
},
|
|
64
|
+
_b["arc-Select-trigger--size".concat(selectSize && selectSize.toUpperCase())] = selectSize && selectSize !== "m",
|
|
65
|
+
_b)), "aria-describedby": id + (disclosureText ? "-disclosure" : "-helper") }, index_es.filterDataAttrs(props)),
|
|
66
|
+
React__default["default"].createElement(index.$cc7e05a45900e73f$export$4c8d1a57a761ef94, { className: "arc-Select-triggerText", placeholder: placeholder, "aria-label": getSelectedValueName(uncontrolledValue) }),
|
|
67
|
+
React__default["default"].createElement(index.$cc7e05a45900e73f$export$f04a61298a47a40f, { className: "arc-Select-triggerIcon" },
|
|
68
|
+
React__default["default"].createElement(ThemeIcon.ThemeIcon, { size: getIconSize(selectSize), icon: "selectTrigger" }))),
|
|
69
|
+
React__default["default"].createElement(index.$cc7e05a45900e73f$export$602eac185826482c, { container: themeElement },
|
|
70
|
+
React__default["default"].createElement(index.$cc7e05a45900e73f$export$7c6e2c02157bb7d2, { sideOffset: 5, position: "popper", className: index$1.classNames("arc-Select-content", {
|
|
71
|
+
"arc-Select-content--onDarkSurface": surface === "dark"
|
|
72
|
+
}) },
|
|
73
|
+
React__default["default"].createElement(index.$cc7e05a45900e73f$export$2f60d3ec9ad468f2, { className: "arc-Select-scrollButton" },
|
|
74
|
+
React__default["default"].createElement(ThemeIcon.ThemeIcon, { size: 16, icon: "selectScrollUp" })),
|
|
75
|
+
React__default["default"].createElement(index.$cc7e05a45900e73f$export$d5c6c08dc2d3ca7, null, options.map(function (_a, i) {
|
|
76
|
+
var name = _a.name, value = _a.value;
|
|
77
|
+
return (React__default["default"].createElement(index.$cc7e05a45900e73f$export$6d08773d2e66f8f2, { className: "arc-Select-item", key: "select-item-".concat(i), value: value },
|
|
78
|
+
React__default["default"].createElement("div", { className: "arc-Select-itemTextWrapper" },
|
|
79
|
+
React__default["default"].createElement(index.$cc7e05a45900e73f$export$d6e5bf9c43ea9319, { asChild: true },
|
|
80
|
+
React__default["default"].createElement("span", { className: "arc-Select-itemText" }, name))),
|
|
81
|
+
React__default["default"].createElement(index.$cc7e05a45900e73f$export$c3468e2714d175fa, null,
|
|
82
|
+
React__default["default"].createElement(ThemeIcon.ThemeIcon, { size: 20, icon: "selectIndicator" }))));
|
|
83
|
+
})),
|
|
84
|
+
React__default["default"].createElement(index.$cc7e05a45900e73f$export$bf1aedc3039c8d63, { className: "arc-Select-scrollButton" },
|
|
85
|
+
React__default["default"].createElement(ThemeIcon.ThemeIcon, { size: 16, icon: "selectScrollDown" }))))))));
|
|
1760
86
|
};
|
|
1761
87
|
|
|
1762
88
|
exports.Select = Select;
|