@telus-uds/components-base 1.65.0 → 1.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -2
- package/lib/A11yInfoProvider/index.js +5 -20
- package/lib/A11yText/index.js +3 -17
- package/lib/ActivityIndicator/Spinner.js +2 -9
- package/lib/ActivityIndicator/Spinner.native.js +4 -27
- package/lib/ActivityIndicator/index.js +1 -13
- package/lib/ActivityIndicator/shared.js +0 -3
- package/lib/Autocomplete/Autocomplete.js +34 -85
- package/lib/Autocomplete/Loading.js +0 -10
- package/lib/Autocomplete/Suggestions.js +0 -11
- package/lib/Autocomplete/index.js +0 -3
- package/lib/BaseProvider/HydrationContext.js +4 -18
- package/lib/BaseProvider/index.js +0 -12
- package/lib/Box/Box.js +10 -35
- package/lib/Box/index.js +0 -3
- package/lib/Button/Button.js +4 -13
- package/lib/Button/ButtonBase.js +23 -55
- package/lib/Button/ButtonDropdown.js +7 -32
- package/lib/Button/ButtonGroup.js +15 -48
- package/lib/Button/ButtonLink.js +3 -17
- package/lib/Button/index.js +0 -5
- package/lib/Button/propTypes.js +0 -15
- package/lib/Card/Card.js +3 -14
- package/lib/Card/CardBase.js +5 -16
- package/lib/Card/PressableCardBase.js +7 -30
- package/lib/Card/index.js +0 -7
- package/lib/Carousel/Carousel.js +22 -115
- package/lib/Carousel/CarouselContext.js +0 -14
- package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +6 -18
- package/lib/Carousel/CarouselItem/CarouselItem.js +5 -20
- package/lib/Carousel/CarouselItem/index.js +0 -3
- package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -9
- package/lib/Carousel/CarouselStepTracker/index.js +0 -3
- package/lib/Carousel/CarouselTabs/CarouselTabs.js +5 -15
- package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -16
- package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -22
- package/lib/Carousel/CarouselTabs/index.js +0 -3
- package/lib/Carousel/CarouselThumbnail.js +1 -16
- package/lib/Carousel/CarouselThumbnailNavigation.js +0 -15
- package/lib/Carousel/index.js +0 -5
- package/lib/Checkbox/Checkbox.js +5 -44
- package/lib/Checkbox/CheckboxButton.js +7 -33
- package/lib/Checkbox/CheckboxGroup.js +5 -37
- package/lib/Checkbox/CheckboxInput.js +1 -11
- package/lib/Checkbox/CheckboxInput.native.js +0 -2
- package/lib/Checkbox/index.js +0 -4
- package/lib/CheckboxCard/CheckboxCard.js +4 -37
- package/lib/CheckboxCard/index.js +0 -3
- package/lib/CheckboxCardGroup/CheckboxCardGroup.js +215 -0
- package/lib/CheckboxCardGroup/index.js +10 -0
- package/lib/Divider/Divider.js +13 -24
- package/lib/Divider/index.js +0 -3
- package/lib/ExpandCollapse/Accordion.js +1 -9
- package/lib/ExpandCollapse/Control.js +10 -32
- package/lib/ExpandCollapse/ExpandCollapse.js +3 -19
- package/lib/ExpandCollapse/Panel.js +13 -38
- package/lib/ExpandCollapse/index.js +0 -5
- package/lib/Feedback/Feedback.js +13 -30
- package/lib/Feedback/index.js +0 -3
- package/lib/Fieldset/Fieldset.js +6 -37
- package/lib/Fieldset/FieldsetContainer.js +1 -10
- package/lib/Fieldset/FieldsetContainer.native.js +0 -8
- package/lib/Fieldset/Legend.js +1 -10
- package/lib/Fieldset/Legend.native.js +1 -13
- package/lib/Fieldset/index.js +0 -3
- package/lib/FlexGrid/Col/Col.js +10 -53
- package/lib/FlexGrid/Col/index.js +0 -3
- package/lib/FlexGrid/FlexGrid.js +3 -34
- package/lib/FlexGrid/Row/Row.js +0 -38
- package/lib/FlexGrid/Row/index.js +0 -3
- package/lib/FlexGrid/helpers/index.js +0 -4
- package/lib/FlexGrid/index.js +0 -3
- package/lib/FlexGrid/providers/GutterContext.js +0 -4
- package/lib/HorizontalScroll/HorizontalScroll.js +17 -45
- package/lib/HorizontalScroll/HorizontalScrollButton.js +1 -17
- package/lib/HorizontalScroll/ScrollViewEnd.js +5 -13
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +1 -10
- package/lib/HorizontalScroll/index.js +0 -7
- package/lib/HorizontalScroll/itemPositions.js +8 -19
- package/lib/Icon/Icon.js +4 -17
- package/lib/Icon/IconText.js +5 -25
- package/lib/Icon/index.js +0 -6
- package/lib/IconButton/IconButton.js +5 -37
- package/lib/IconButton/index.js +0 -3
- package/lib/InputLabel/InputLabel.js +4 -28
- package/lib/InputLabel/LabelContent.js +2 -8
- package/lib/InputLabel/LabelContent.native.js +0 -8
- package/lib/InputLabel/index.js +0 -3
- package/lib/InputSupports/InputSupports.js +0 -21
- package/lib/InputSupports/index.js +0 -3
- package/lib/InputSupports/useInputSupports.js +2 -6
- package/lib/Link/ChevronLink.js +7 -18
- package/lib/Link/InlinePressable.js +0 -10
- package/lib/Link/InlinePressable.native.js +5 -18
- package/lib/Link/Link.js +0 -8
- package/lib/Link/LinkBase.js +17 -47
- package/lib/Link/TextButton.js +3 -16
- package/lib/Link/index.js +0 -5
- package/lib/List/List.js +5 -21
- package/lib/List/ListItem.js +1 -11
- package/lib/List/ListItemBase.js +5 -34
- package/lib/List/ListItemContent.js +1 -14
- package/lib/List/ListItemMark.js +3 -23
- package/lib/List/PressableListItemBase.js +2 -28
- package/lib/List/index.js +0 -4
- package/lib/Listbox/GroupControl.js +0 -14
- package/lib/Listbox/Listbox.js +15 -40
- package/lib/Listbox/ListboxContext.js +0 -7
- package/lib/Listbox/ListboxGroup.js +7 -19
- package/lib/Listbox/ListboxItem.js +3 -17
- package/lib/Listbox/ListboxOverlay.js +4 -20
- package/lib/Listbox/PressableItem.js +3 -18
- package/lib/Listbox/index.js +0 -3
- package/lib/Modal/Modal.js +94 -45
- package/lib/Modal/ModalContent.js +184 -0
- package/lib/Modal/index.js +0 -3
- package/lib/MultiSelectFilter/ModalOverlay.js +1 -20
- package/lib/MultiSelectFilter/MultiSelectFilter.js +20 -69
- package/lib/MultiSelectFilter/index.js +0 -3
- package/lib/Notification/Notification.js +11 -38
- package/lib/Notification/index.js +0 -3
- package/lib/Pagination/PageButton.js +2 -22
- package/lib/Pagination/Pagination.js +21 -42
- package/lib/Pagination/SideButton.js +0 -24
- package/lib/Pagination/index.js +0 -3
- package/lib/Pagination/usePagination.js +4 -9
- package/lib/Progress/Progress.js +3 -17
- package/lib/Progress/ProgressBar.js +3 -25
- package/lib/Progress/ProgressBarBackground.js +0 -12
- package/lib/Progress/index.js +0 -4
- package/lib/QuickLinks/QuickLinks.js +1 -18
- package/lib/QuickLinks/QuickLinksCard.js +1 -11
- package/lib/QuickLinks/QuickLinksItem.js +3 -17
- package/lib/QuickLinks/index.js +0 -4
- package/lib/QuickLinksFeature/QuickLinksFeature.js +3 -20
- package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +7 -30
- package/lib/QuickLinksFeature/index.js +0 -4
- package/lib/Radio/Radio.js +5 -39
- package/lib/Radio/RadioButton.js +7 -26
- package/lib/Radio/RadioGroup.js +6 -39
- package/lib/Radio/RadioInput.js +1 -11
- package/lib/Radio/RadioInput.native.js +0 -2
- package/lib/Radio/index.js +0 -4
- package/lib/RadioCard/RadioCard.js +5 -38
- package/lib/RadioCard/RadioCardGroup.js +7 -38
- package/lib/RadioCard/index.js +0 -4
- package/lib/Responsive/Responsive.js +1 -14
- package/lib/Responsive/index.js +0 -3
- package/lib/Search/Search.js +22 -45
- package/lib/Search/index.js +0 -3
- package/lib/Select/Group.js +0 -8
- package/lib/Select/Group.native.js +0 -6
- package/lib/Select/Item.js +0 -7
- package/lib/Select/Item.native.js +0 -2
- package/lib/Select/Picker.js +0 -8
- package/lib/Select/Picker.native.js +6 -22
- package/lib/Select/Select.js +9 -52
- package/lib/Select/index.js +0 -5
- package/lib/SideNav/Item.js +5 -29
- package/lib/SideNav/ItemContent.js +1 -14
- package/lib/SideNav/ItemsGroup.js +9 -31
- package/lib/SideNav/SideNav.js +9 -33
- package/lib/SideNav/index.js +0 -2
- package/lib/Skeleton/Skeleton.js +10 -42
- package/lib/Skeleton/index.js +0 -3
- package/lib/Skeleton/skeletonWebAnimation.js +0 -2
- package/lib/Skeleton/useSkeletonNativeAnimation.js +1 -9
- package/lib/SkipLink/SkipLink.js +7 -27
- package/lib/SkipLink/index.js +0 -3
- package/lib/Spacer/Spacer.js +4 -20
- package/lib/Spacer/index.js +0 -3
- package/lib/StackView/StackView.js +3 -21
- package/lib/StackView/StackWrap.js +11 -21
- package/lib/StackView/StackWrap.native.js +0 -3
- package/lib/StackView/StackWrapBox.js +5 -21
- package/lib/StackView/StackWrapGap.js +1 -14
- package/lib/StackView/common.js +0 -6
- package/lib/StackView/getStackedContent.js +10 -21
- package/lib/StackView/index.js +0 -5
- package/lib/StepTracker/Step.js +3 -27
- package/lib/StepTracker/StepTracker.js +5 -32
- package/lib/StepTracker/index.js +0 -3
- package/lib/Tabs/Tabs.js +7 -30
- package/lib/Tabs/TabsItem.js +13 -38
- package/lib/Tabs/index.js +0 -3
- package/lib/Tags/Tags.js +9 -42
- package/lib/Tags/index.js +0 -3
- package/lib/TextInput/TextArea.js +11 -20
- package/lib/TextInput/TextInput.js +7 -16
- package/lib/TextInput/TextInputBase.js +106 -69
- package/lib/TextInput/index.js +0 -3
- package/lib/TextInput/propTypes.js +4 -7
- package/lib/ThemeProvider/ThemeProvider.js +10 -18
- package/lib/ThemeProvider/index.js +0 -9
- package/lib/ThemeProvider/useSetTheme.js +6 -9
- package/lib/ThemeProvider/useTheme.js +2 -7
- package/lib/ThemeProvider/useThemeTokens.js +1 -9
- package/lib/ThemeProvider/utils/index.js +0 -4
- package/lib/ThemeProvider/utils/styles.js +14 -35
- package/lib/ThemeProvider/utils/theme-tokens.js +15 -43
- package/lib/Timeline/Timeline.js +11 -27
- package/lib/Timeline/index.js +0 -3
- package/lib/ToggleSwitch/ToggleSwitch.js +12 -43
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +4 -38
- package/lib/ToggleSwitch/index.js +0 -3
- package/lib/Tooltip/Backdrop.js +4 -11
- package/lib/Tooltip/Backdrop.native.js +1 -14
- package/lib/Tooltip/Tooltip.js +9 -37
- package/lib/Tooltip/Tooltip.native.js +14 -45
- package/lib/Tooltip/getTooltipPosition.js +26 -31
- package/lib/Tooltip/index.js +0 -5
- package/lib/Tooltip/shared.js +0 -10
- package/lib/TooltipButton/TooltipButton.js +5 -20
- package/lib/TooltipButton/index.js +0 -3
- package/lib/Typography/Typography.js +15 -38
- package/lib/Typography/index.js +0 -3
- package/lib/Validator/Validator.js +10 -58
- package/lib/Validator/index.js +0 -3
- package/lib/ViewportProvider/ViewportProvider.js +1 -13
- package/lib/ViewportProvider/index.js +0 -5
- package/lib/ViewportProvider/useViewport.js +0 -4
- package/lib/ViewportProvider/useViewportListener.js +3 -12
- package/lib/index.js +8 -71
- package/lib/utils/BaseView/BaseView.js +3 -17
- package/lib/utils/BaseView/BaseView.native.js +0 -3
- package/lib/utils/BaseView/index.js +0 -3
- package/lib/utils/a11y/index.js +0 -4
- package/lib/utils/a11y/semantics.js +14 -32
- package/lib/utils/a11y/textSize.js +1 -8
- package/lib/utils/animation/index.js +0 -2
- package/lib/utils/animation/useVerticalExpandAnimation.js +5 -18
- package/lib/utils/children.js +16 -28
- package/lib/utils/containUniqueFields.js +2 -5
- package/lib/utils/floating-ui/index.js +0 -1
- package/lib/utils/floating-ui/index.native.js +0 -1
- package/lib/utils/hasOwnProperty.js +0 -1
- package/lib/utils/htmlAttrs.js +2 -4
- package/lib/utils/index.js +0 -31
- package/lib/utils/info/index.js +0 -4
- package/lib/utils/info/platform/index.js +0 -4
- package/lib/utils/info/versions.js +0 -3
- package/lib/utils/input.js +12 -24
- package/lib/utils/pressability.js +7 -21
- package/lib/utils/props/a11yProps.js +19 -25
- package/lib/utils/props/clickProps.js +0 -4
- package/lib/utils/props/componentPropType.js +0 -14
- package/lib/utils/props/copyPropTypes.js +0 -4
- package/lib/utils/props/getPropSelector.js +11 -12
- package/lib/utils/props/handlerProps.js +2 -23
- package/lib/utils/props/hrefAttrsProp.js +0 -4
- package/lib/utils/props/index.js +0 -22
- package/lib/utils/props/inputSupportsProps.js +0 -9
- package/lib/utils/props/linkProps.js +2 -12
- package/lib/utils/props/paddingProp.js +0 -3
- package/lib/utils/props/pressProps.js +2 -8
- package/lib/utils/props/rectProp.js +0 -3
- package/lib/utils/props/responsiveProps.js +1 -5
- package/lib/utils/props/selectSystemProps.js +4 -6
- package/lib/utils/props/spacingProps.js +3 -10
- package/lib/utils/props/textInputProps.js +11 -31
- package/lib/utils/props/textProps.js +6 -11
- package/lib/utils/props/tokens.js +7 -26
- package/lib/utils/props/variantProp.js +0 -3
- package/lib/utils/props/viewProps.js +0 -5
- package/lib/utils/ssr.js +13 -33
- package/lib/utils/useCopy.js +3 -6
- package/lib/utils/useHash.js +5 -10
- package/lib/utils/useHash.native.js +0 -2
- package/lib/utils/useOverlaidPosition.js +6 -29
- package/lib/utils/useResponsiveProp.js +6 -13
- package/lib/utils/useSafeLayoutEffect.js +5 -10
- package/lib/utils/useScrollBlocking.js +3 -11
- package/lib/utils/useScrollBlocking.native.js +0 -2
- package/lib/utils/useSpacingScale.js +5 -8
- package/lib/utils/useUniqueId.js +0 -4
- package/lib/utils/withLinkRouter.js +13 -18
- package/lib-module/A11yInfoProvider/index.js +5 -9
- package/lib-module/A11yText/index.js +3 -4
- package/lib-module/ActivityIndicator/Spinner.js +2 -2
- package/lib-module/ActivityIndicator/Spinner.native.js +4 -6
- package/lib-module/ActivityIndicator/index.js +1 -5
- package/lib-module/ActivityIndicator/shared.js +2 -1
- package/lib-module/Autocomplete/Autocomplete.js +34 -59
- package/lib-module/Autocomplete/Loading.js +0 -2
- package/lib-module/BaseProvider/HydrationContext.js +4 -7
- package/lib-module/BaseProvider/index.js +0 -3
- package/lib-module/Box/Box.js +10 -24
- package/lib-module/Button/Button.js +4 -2
- package/lib-module/Button/ButtonBase.js +23 -35
- package/lib-module/Button/ButtonDropdown.js +7 -16
- package/lib-module/Button/ButtonGroup.js +15 -32
- package/lib-module/Button/ButtonLink.js +3 -2
- package/lib-module/Button/propTypes.js +0 -7
- package/lib-module/Card/Card.js +3 -2
- package/lib-module/Card/CardBase.js +5 -4
- package/lib-module/Card/PressableCardBase.js +7 -11
- package/lib-module/Carousel/Carousel.js +22 -60
- package/lib-module/Carousel/CarouselContext.js +0 -5
- package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +7 -5
- package/lib-module/Carousel/CarouselItem/CarouselItem.js +5 -11
- package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +3 -4
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -6
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -10
- package/lib-module/Carousel/CarouselThumbnail.js +1 -7
- package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -2
- package/lib-module/Checkbox/Checkbox.js +5 -23
- package/lib-module/Checkbox/CheckboxButton.js +7 -17
- package/lib-module/Checkbox/CheckboxGroup.js +5 -23
- package/lib-module/Checkbox/CheckboxInput.js +1 -3
- package/lib-module/Checkbox/CheckboxInput.native.js +0 -1
- package/lib-module/CheckboxCard/CheckboxCard.js +4 -21
- package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +205 -0
- package/lib-module/CheckboxCardGroup/index.js +2 -0
- package/lib-module/Divider/Divider.js +13 -11
- package/lib-module/ExpandCollapse/Accordion.js +1 -1
- package/lib-module/ExpandCollapse/Control.js +10 -17
- package/lib-module/ExpandCollapse/ExpandCollapse.js +3 -9
- package/lib-module/ExpandCollapse/Panel.js +13 -23
- package/lib-module/Feedback/Feedback.js +13 -16
- package/lib-module/Fieldset/Fieldset.js +6 -25
- package/lib-module/Fieldset/FieldsetContainer.js +1 -1
- package/lib-module/Fieldset/FieldsetContainer.native.js +0 -1
- package/lib-module/Fieldset/Legend.js +1 -1
- package/lib-module/Fieldset/Legend.native.js +1 -1
- package/lib-module/FlexGrid/Col/Col.js +10 -37
- package/lib-module/FlexGrid/FlexGrid.js +3 -17
- package/lib-module/FlexGrid/Row/Row.js +0 -25
- package/lib-module/FlexGrid/helpers/index.js +0 -3
- package/lib-module/HorizontalScroll/HorizontalScroll.js +17 -27
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +1 -3
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -4
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -1
- package/lib-module/HorizontalScroll/itemPositions.js +11 -10
- package/lib-module/Icon/Icon.js +4 -8
- package/lib-module/Icon/IconText.js +6 -17
- package/lib-module/IconButton/IconButton.js +7 -20
- package/lib-module/InputLabel/InputLabel.js +4 -13
- package/lib-module/InputLabel/LabelContent.js +2 -1
- package/lib-module/InputLabel/LabelContent.native.js +0 -1
- package/lib-module/InputSupports/InputSupports.js +0 -9
- package/lib-module/InputSupports/useInputSupports.js +2 -4
- package/lib-module/Link/ChevronLink.js +7 -7
- package/lib-module/Link/InlinePressable.js +0 -2
- package/lib-module/Link/InlinePressable.native.js +4 -12
- package/lib-module/Link/LinkBase.js +17 -25
- package/lib-module/Link/TextButton.js +3 -5
- package/lib-module/List/List.js +5 -9
- package/lib-module/List/ListItem.js +1 -1
- package/lib-module/List/ListItemBase.js +5 -17
- package/lib-module/List/ListItemContent.js +1 -4
- package/lib-module/List/ListItemMark.js +3 -16
- package/lib-module/List/PressableListItemBase.js +2 -6
- package/lib-module/Listbox/GroupControl.js +0 -2
- package/lib-module/Listbox/Listbox.js +15 -23
- package/lib-module/Listbox/ListboxContext.js +0 -2
- package/lib-module/Listbox/ListboxGroup.js +6 -4
- package/lib-module/Listbox/ListboxItem.js +2 -1
- package/lib-module/Listbox/ListboxOverlay.js +3 -4
- package/lib-module/Listbox/PressableItem.js +2 -7
- package/lib-module/Modal/Modal.js +94 -25
- package/lib-module/Modal/ModalContent.js +175 -0
- package/lib-module/MultiSelectFilter/ModalOverlay.js +1 -4
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +20 -42
- package/lib-module/Notification/Notification.js +11 -22
- package/lib-module/Pagination/PageButton.js +2 -6
- package/lib-module/Pagination/Pagination.js +21 -21
- package/lib-module/Pagination/SideButton.js +3 -8
- package/lib-module/Pagination/usePagination.js +4 -8
- package/lib-module/Progress/Progress.js +3 -7
- package/lib-module/Progress/ProgressBar.js +3 -11
- package/lib-module/Progress/ProgressBarBackground.js +0 -2
- package/lib-module/QuickLinks/QuickLinks.js +1 -6
- package/lib-module/QuickLinks/QuickLinksCard.js +1 -3
- package/lib-module/QuickLinks/QuickLinksItem.js +3 -2
- package/lib-module/QuickLinksFeature/QuickLinksFeature.js +5 -9
- package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +9 -13
- package/lib-module/Radio/Radio.js +5 -22
- package/lib-module/Radio/RadioButton.js +8 -10
- package/lib-module/Radio/RadioGroup.js +6 -25
- package/lib-module/Radio/RadioInput.js +1 -3
- package/lib-module/Radio/RadioInput.native.js +0 -1
- package/lib-module/RadioCard/RadioCard.js +5 -21
- package/lib-module/RadioCard/RadioCardGroup.js +7 -25
- package/lib-module/Responsive/Responsive.js +1 -6
- package/lib-module/Search/Search.js +22 -31
- package/lib-module/Select/Group.js +0 -3
- package/lib-module/Select/Group.native.js +0 -3
- package/lib-module/Select/Item.js +0 -3
- package/lib-module/Select/Item.native.js +0 -1
- package/lib-module/Select/Picker.native.js +8 -10
- package/lib-module/Select/Select.js +10 -35
- package/lib-module/SideNav/Item.js +5 -16
- package/lib-module/SideNav/ItemContent.js +1 -2
- package/lib-module/SideNav/ItemsGroup.js +9 -19
- package/lib-module/SideNav/SideNav.js +9 -22
- package/lib-module/Skeleton/Skeleton.js +10 -25
- package/lib-module/Skeleton/skeletonWebAnimation.js +0 -1
- package/lib-module/Skeleton/useSkeletonNativeAnimation.js +1 -3
- package/lib-module/SkipLink/SkipLink.js +7 -9
- package/lib-module/Spacer/Spacer.js +4 -7
- package/lib-module/StackView/StackView.js +3 -7
- package/lib-module/StackView/StackWrap.js +13 -13
- package/lib-module/StackView/StackWrap.native.js +2 -1
- package/lib-module/StackView/StackWrapBox.js +5 -8
- package/lib-module/StackView/StackWrapGap.js +1 -1
- package/lib-module/StackView/getStackedContent.js +10 -10
- package/lib-module/StepTracker/Step.js +3 -14
- package/lib-module/StepTracker/StepTracker.js +5 -13
- package/lib-module/Tabs/Tabs.js +7 -16
- package/lib-module/Tabs/TabsItem.js +13 -16
- package/lib-module/Tags/Tags.js +9 -26
- package/lib-module/TextInput/TextArea.js +11 -8
- package/lib-module/TextInput/TextInput.js +7 -5
- package/lib-module/TextInput/TextInputBase.js +107 -51
- package/lib-module/TextInput/propTypes.js +7 -6
- package/lib-module/ThemeProvider/ThemeProvider.js +10 -9
- package/lib-module/ThemeProvider/useSetTheme.js +6 -7
- package/lib-module/ThemeProvider/useTheme.js +2 -5
- package/lib-module/ThemeProvider/useThemeTokens.js +1 -2
- package/lib-module/ThemeProvider/utils/styles.js +15 -27
- package/lib-module/ThemeProvider/utils/theme-tokens.js +15 -20
- package/lib-module/Timeline/Timeline.js +11 -17
- package/lib-module/ToggleSwitch/ToggleSwitch.js +13 -26
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +4 -23
- package/lib-module/Tooltip/Backdrop.js +4 -7
- package/lib-module/Tooltip/Backdrop.native.js +1 -4
- package/lib-module/Tooltip/Tooltip.js +9 -18
- package/lib-module/Tooltip/Tooltip.native.js +14 -23
- package/lib-module/Tooltip/getTooltipPosition.js +26 -30
- package/lib-module/Tooltip/shared.js +0 -6
- package/lib-module/TooltipButton/TooltipButton.js +5 -8
- package/lib-module/Typography/Typography.js +14 -22
- package/lib-module/Validator/Validator.js +10 -42
- package/lib-module/ViewportProvider/ViewportProvider.js +1 -3
- package/lib-module/ViewportProvider/useViewportListener.js +6 -8
- package/lib-module/index.js +1 -0
- package/lib-module/utils/BaseView/BaseView.js +3 -4
- package/lib-module/utils/BaseView/BaseView.native.js +0 -1
- package/lib-module/utils/a11y/semantics.js +14 -27
- package/lib-module/utils/a11y/textSize.js +1 -2
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +8 -11
- package/lib-module/utils/children.js +17 -19
- package/lib-module/utils/containUniqueFields.js +2 -4
- package/lib-module/utils/htmlAttrs.js +2 -1
- package/lib-module/utils/info/index.js +2 -1
- package/lib-module/utils/info/platform/index.js +4 -1
- package/lib-module/utils/info/versions.js +2 -1
- package/lib-module/utils/input.js +11 -19
- package/lib-module/utils/pressability.js +8 -7
- package/lib-module/utils/props/a11yProps.js +22 -20
- package/lib-module/utils/props/clickProps.js +0 -1
- package/lib-module/utils/props/componentPropType.js +0 -13
- package/lib-module/utils/props/getPropSelector.js +12 -8
- package/lib-module/utils/props/handlerProps.js +2 -19
- package/lib-module/utils/props/hrefAttrsProp.js +2 -2
- package/lib-module/utils/props/inputSupportsProps.js +0 -6
- package/lib-module/utils/props/linkProps.js +2 -3
- package/lib-module/utils/props/pressProps.js +2 -2
- package/lib-module/utils/props/responsiveProps.js +1 -3
- package/lib-module/utils/props/selectSystemProps.js +4 -5
- package/lib-module/utils/props/spacingProps.js +4 -3
- package/lib-module/utils/props/textInputProps.js +14 -27
- package/lib-module/utils/props/textProps.js +9 -7
- package/lib-module/utils/props/tokens.js +10 -13
- package/lib-module/utils/props/variantProp.js +1 -1
- package/lib-module/utils/props/viewProps.js +0 -1
- package/lib-module/utils/ssr.js +14 -18
- package/lib-module/utils/useCopy.js +3 -5
- package/lib-module/utils/useHash.js +5 -9
- package/lib-module/utils/useHash.native.js +0 -1
- package/lib-module/utils/useOverlaidPosition.js +6 -25
- package/lib-module/utils/useResponsiveProp.js +6 -7
- package/lib-module/utils/useSafeLayoutEffect.js +5 -7
- package/lib-module/utils/useScrollBlocking.js +3 -10
- package/lib-module/utils/useSpacingScale.js +4 -4
- package/lib-module/utils/useUniqueId.js +0 -2
- package/lib-module/utils/withLinkRouter.js +13 -10
- package/package.json +2 -2
- package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +230 -0
- package/src/CheckboxCardGroup/index.js +3 -0
- package/src/Modal/Modal.jsx +98 -5
- package/src/Modal/ModalContent.jsx +171 -0
- package/src/TextInput/TextInputBase.jsx +67 -12
- package/src/TextInput/propTypes.js +4 -0
- package/src/index.js +1 -0
- package/src/utils/props/textInputProps.js +1 -0
|
@@ -9,34 +9,34 @@ import StackView from '../StackView';
|
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
11
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
12
|
-
|
|
13
12
|
const selectStyles = tokens => selectTokens('Feedback', tokens);
|
|
14
|
-
|
|
15
13
|
const selectTitleTextStyles = (_ref, themeOptions) => {
|
|
16
14
|
let {
|
|
17
15
|
titleFontSize,
|
|
18
16
|
...tokens
|
|
19
17
|
} = _ref;
|
|
20
|
-
return applyTextStyles({
|
|
18
|
+
return applyTextStyles({
|
|
19
|
+
...selectTokens('Typography', {
|
|
20
|
+
...tokens,
|
|
21
21
|
fontSize: titleFontSize,
|
|
22
22
|
themeOptions
|
|
23
23
|
}),
|
|
24
24
|
themeOptions
|
|
25
25
|
});
|
|
26
26
|
};
|
|
27
|
-
|
|
28
27
|
const selectContentTextStyles = (_ref2, themeOptions) => {
|
|
29
28
|
let {
|
|
30
29
|
contentFontSize,
|
|
31
30
|
...tokens
|
|
32
31
|
} = _ref2;
|
|
33
|
-
return applyTextStyles({
|
|
32
|
+
return applyTextStyles({
|
|
33
|
+
...selectTokens('Typography', {
|
|
34
|
+
...tokens,
|
|
34
35
|
fontSize: contentFontSize
|
|
35
36
|
}),
|
|
36
37
|
themeOptions
|
|
37
38
|
});
|
|
38
39
|
};
|
|
39
|
-
|
|
40
40
|
const selectIconTokens = _ref3 => {
|
|
41
41
|
let {
|
|
42
42
|
iconSize,
|
|
@@ -47,7 +47,6 @@ const selectIconTokens = _ref3 => {
|
|
|
47
47
|
color: iconColor
|
|
48
48
|
};
|
|
49
49
|
};
|
|
50
|
-
|
|
51
50
|
const selectIconContainerStyles = _ref4 => {
|
|
52
51
|
let {
|
|
53
52
|
iconGap
|
|
@@ -56,6 +55,7 @@ const selectIconContainerStyles = _ref4 => {
|
|
|
56
55
|
paddingRight: iconGap
|
|
57
56
|
};
|
|
58
57
|
};
|
|
58
|
+
|
|
59
59
|
/**
|
|
60
60
|
* A feedback box commonly used with form fields.
|
|
61
61
|
*
|
|
@@ -74,8 +74,6 @@ const selectIconContainerStyles = _ref4 => {
|
|
|
74
74
|
* ### Accessibility
|
|
75
75
|
* All accessibility props set on this component will be applied to the outer container.
|
|
76
76
|
*/
|
|
77
|
-
|
|
78
|
-
|
|
79
77
|
const Feedback = /*#__PURE__*/forwardRef((_ref5, ref) => {
|
|
80
78
|
let {
|
|
81
79
|
title,
|
|
@@ -86,7 +84,8 @@ const Feedback = /*#__PURE__*/forwardRef((_ref5, ref) => {
|
|
|
86
84
|
variant,
|
|
87
85
|
...rest
|
|
88
86
|
} = _ref5;
|
|
89
|
-
const themeTokens = useThemeTokens('Feedback', tokens, {
|
|
87
|
+
const themeTokens = useThemeTokens('Feedback', tokens, {
|
|
88
|
+
...variant,
|
|
90
89
|
validation
|
|
91
90
|
});
|
|
92
91
|
const {
|
|
@@ -119,7 +118,8 @@ const Feedback = /*#__PURE__*/forwardRef((_ref5, ref) => {
|
|
|
119
118
|
style: staticStyles.title,
|
|
120
119
|
children: [IconComponent && /*#__PURE__*/_jsx(View, {
|
|
121
120
|
style: selectIconContainerStyles(themeTokens),
|
|
122
|
-
children: /*#__PURE__*/_jsx(IconComponent, {
|
|
121
|
+
children: /*#__PURE__*/_jsx(IconComponent, {
|
|
122
|
+
...selectIconTokens(themeTokens)
|
|
123
123
|
})
|
|
124
124
|
}), /*#__PURE__*/_jsx(Text, {
|
|
125
125
|
style: titleTextStyles,
|
|
@@ -133,23 +133,20 @@ const Feedback = /*#__PURE__*/forwardRef((_ref5, ref) => {
|
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
Feedback.displayName = 'Feedback';
|
|
136
|
-
Feedback.propTypes = {
|
|
137
|
-
|
|
136
|
+
Feedback.propTypes = {
|
|
137
|
+
...selectedSystemPropTypes,
|
|
138
138
|
/**
|
|
139
139
|
* Emphasized summary of the feedback. If an icon is set, it is rendered next to the title.
|
|
140
140
|
*/
|
|
141
141
|
title: PropTypes.string,
|
|
142
|
-
|
|
143
142
|
/**
|
|
144
143
|
* Feedback content rendered below the title. A render function `({textStyles, variant}) => {}` is supported.
|
|
145
144
|
*/
|
|
146
145
|
children: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.func]),
|
|
147
|
-
|
|
148
146
|
/**
|
|
149
147
|
* Use to visually mark the Feedback as valid or invalid.
|
|
150
148
|
*/
|
|
151
149
|
validation: PropTypes.oneOf(['error', 'success']),
|
|
152
|
-
|
|
153
150
|
/** @ignore */
|
|
154
151
|
id: PropTypes.string,
|
|
155
152
|
tokens: getTokensPropType('Feedback'),
|
|
@@ -7,13 +7,13 @@ import FieldsetContainer from './FieldsetContainer';
|
|
|
7
7
|
import { getStackedContent } from '../StackView';
|
|
8
8
|
import InputLabel from '../InputLabel';
|
|
9
9
|
import useInputSupports from '../InputSupports/useInputSupports';
|
|
10
|
+
|
|
10
11
|
/**
|
|
11
12
|
* An alternative to InputSupports for groups of input elements that, on web, are to be
|
|
12
13
|
* wrapped in a `<fieldset>` tag, with label content displated in a `<legend>` tag.
|
|
13
14
|
*
|
|
14
15
|
* Follows the same theming and most of the same props as InputSupports.
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
17
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
18
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
19
19
|
const Fieldset = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
@@ -36,15 +36,14 @@ const Fieldset = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
36
36
|
variant = {},
|
|
37
37
|
tokens = {}
|
|
38
38
|
} = _ref;
|
|
39
|
-
|
|
40
39
|
/* Fieldset tokenization:
|
|
41
40
|
- error variant can only be activated by passing showErrorBorder and also having validaton as 'error'
|
|
42
41
|
*/
|
|
43
42
|
const themeTokens = useThemeTokens('Fieldset', tokens, {
|
|
44
43
|
error: validation === 'error' && showErrorBorder,
|
|
45
44
|
...variant
|
|
46
|
-
});
|
|
47
|
-
|
|
45
|
+
});
|
|
46
|
+
// Skips `inputId` because a fieldset' legend describes multiple inputs
|
|
48
47
|
const {
|
|
49
48
|
hintId,
|
|
50
49
|
feedbackId,
|
|
@@ -55,7 +54,6 @@ const Fieldset = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
55
54
|
label: legend,
|
|
56
55
|
validation
|
|
57
56
|
});
|
|
58
|
-
|
|
59
57
|
const legendContent = legend && /*#__PURE__*/_jsx(InputLabel, {
|
|
60
58
|
copy: copy,
|
|
61
59
|
label: legend,
|
|
@@ -64,7 +62,6 @@ const Fieldset = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
64
62
|
hintId: hintId,
|
|
65
63
|
tooltip: tooltip
|
|
66
64
|
});
|
|
67
|
-
|
|
68
65
|
const feedbackContent = feedback && /*#__PURE__*/_jsx(Feedback, {
|
|
69
66
|
id: feedbackId,
|
|
70
67
|
title: feedback,
|
|
@@ -73,7 +70,6 @@ const Fieldset = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
73
70
|
icon: showIcon
|
|
74
71
|
}
|
|
75
72
|
});
|
|
76
|
-
|
|
77
73
|
const borderStyles = _ref2 => {
|
|
78
74
|
let {
|
|
79
75
|
outlineWidth,
|
|
@@ -103,16 +99,15 @@ const Fieldset = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
103
99
|
borderWidth: 0,
|
|
104
100
|
outlineStyle: validation === 'error' && showErrorBorder ? 'solid' : 'none'
|
|
105
101
|
};
|
|
106
|
-
};
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
// Some accessibility patterns depend on elements being direct children, e.g. fieldset -> legend,
|
|
107
105
|
// and on MacOS voiceover, radiogroup -> radio. To allow elements to be direct children of the
|
|
108
106
|
// fieldset as much as possible, but also allow different spacing within content and between
|
|
109
107
|
// fieldset / feedback / etc, wrap resolved children in a fragment, and stack with `preserveFragments`.
|
|
110
|
-
|
|
111
|
-
|
|
112
108
|
const childContent = /*#__PURE__*/_jsx(_Fragment, {
|
|
113
109
|
children: typeof children === 'function' ? children(a11yProps) : children
|
|
114
110
|
});
|
|
115
|
-
|
|
116
111
|
const orderedContent = feedbackPosition === 'bottom' ? [legendContent, feedbackContent, childContent] : [legendContent, childContent, feedbackContent];
|
|
117
112
|
const stackedContent = getStackedContent(orderedContent, {
|
|
118
113
|
space,
|
|
@@ -133,76 +128,62 @@ Fieldset.propTypes = {
|
|
|
133
128
|
variant: variantProp.propType,
|
|
134
129
|
tokens: getTokensPropType('Fieldset'),
|
|
135
130
|
children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
|
|
136
|
-
|
|
137
131
|
/**
|
|
138
132
|
* Whether the English or French copy will be used (e.g. for accessibility labels).
|
|
139
133
|
*/
|
|
140
134
|
copy: PropTypes.oneOf(['en', 'fr']),
|
|
141
|
-
|
|
142
135
|
/**
|
|
143
136
|
* The accessibility role of the `<fieldset>` element itself. Other React Native accessibility
|
|
144
137
|
* props are not supported because there is not an appropriate counterpart for Fieldsets.
|
|
145
138
|
*/
|
|
146
139
|
accessibilityRole: PropTypes.string,
|
|
147
|
-
|
|
148
140
|
/**
|
|
149
141
|
* The amout of space between legend, feedback and content; according to the theme's spacing scale.
|
|
150
142
|
* Either a number corresponding to a position on the theme's spacing scale (1 is smallest, 2 is second smallest, etc),
|
|
151
143
|
* or, a SpacingObject with viewport keys and options (see `useSpacingScale` for details).
|
|
152
144
|
*/
|
|
153
145
|
space: spacingProps.types.spacingValue,
|
|
154
|
-
|
|
155
146
|
/**
|
|
156
147
|
* The text for the fieldset's legend, describing the fieldset content.
|
|
157
148
|
*/
|
|
158
149
|
legend: PropTypes.string,
|
|
159
|
-
|
|
160
150
|
/**
|
|
161
151
|
* A short description of the expected input.
|
|
162
152
|
*/
|
|
163
153
|
hint: PropTypes.string,
|
|
164
|
-
|
|
165
154
|
/**
|
|
166
155
|
* Position of the hint relative to label.
|
|
167
156
|
*/
|
|
168
157
|
hintPosition: PropTypes.oneOf(['inline', 'below']),
|
|
169
|
-
|
|
170
158
|
/**
|
|
171
159
|
* A detailed description of validation error/success or additional instructions.
|
|
172
160
|
* Visual variant is determined based on the `validation` prop.
|
|
173
161
|
*/
|
|
174
162
|
feedback: PropTypes.string,
|
|
175
|
-
|
|
176
163
|
/**
|
|
177
164
|
* Position of the feedback block relative to the fieldset's content.
|
|
178
165
|
*/
|
|
179
166
|
feedbackPosition: PropTypes.oneOf(['above', 'below']),
|
|
180
|
-
|
|
181
167
|
/**
|
|
182
168
|
* If true, the fieldset is treated as inactive (setting `disabled` attribute on web).
|
|
183
169
|
*/
|
|
184
170
|
inactive: PropTypes.bool,
|
|
185
|
-
|
|
186
171
|
/**
|
|
187
172
|
* Content of an optional `Tooltip`. If set, a tooltip button will be shown next to the label.
|
|
188
173
|
*/
|
|
189
174
|
tooltip: PropTypes.string,
|
|
190
|
-
|
|
191
175
|
/**
|
|
192
176
|
* On web, this is passed to the `<fieldset>`'s `name` attribute.
|
|
193
177
|
*/
|
|
194
178
|
name: PropTypes.string,
|
|
195
|
-
|
|
196
179
|
/**
|
|
197
180
|
* Use to visually mark an input as valid or invalid.
|
|
198
181
|
*/
|
|
199
182
|
validation: PropTypes.oneOf(['error', 'success']),
|
|
200
|
-
|
|
201
183
|
/**
|
|
202
184
|
* Use to show error or success icon in the feedback
|
|
203
185
|
*/
|
|
204
186
|
showIcon: PropTypes.bool,
|
|
205
|
-
|
|
206
187
|
/**
|
|
207
188
|
* Use to show border in case of error for a group of components
|
|
208
189
|
*/
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React, { forwardRef } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import cssReset from './cssReset';
|
|
4
|
+
|
|
4
5
|
/**
|
|
5
6
|
* On Web, wraps children with a HTML `<fieldset>` and sets its attributes as necessary.
|
|
6
7
|
*/
|
|
7
|
-
|
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
9
|
const FieldsetContainer = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
10
10
|
let {
|
|
@@ -2,7 +2,6 @@ import React, { forwardRef } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import View from "react-native-web/dist/exports/View"; // No equivalent of `<fieldset>` on native, so just apply accessibility role to container.
|
|
4
4
|
// If a11y testing finds any additional handling is needed at the container level, add it here.
|
|
5
|
-
|
|
6
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
6
|
const FieldsetContainer = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
8
7
|
let {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React, { forwardRef } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import cssReset from './cssReset';
|
|
4
|
+
|
|
4
5
|
/**
|
|
5
6
|
* On Web, wraps children in HTML `<legend>` tag.
|
|
6
7
|
* On Native, `<legend>` does not exist, wraps in a width 100% block to follow <legend>'s behaviour in a flex.
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
const Legend = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
11
11
|
let {
|
|
@@ -2,11 +2,11 @@ import React, { forwardRef } from 'react';
|
|
|
2
2
|
import View from "react-native-web/dist/exports/View";
|
|
3
3
|
import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
+
|
|
5
6
|
/**
|
|
6
7
|
* On Web, wraps children in HTML `<legend>` tag.
|
|
7
8
|
* On Native, `<legend>` does not exist, wraps in a width 100% block to follow <legend>'s behaviour in a flex.
|
|
8
9
|
*/
|
|
9
|
-
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
11
|
const Legend = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
12
12
|
let {
|
|
@@ -28,30 +28,23 @@ const Col = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
28
28
|
const gutter = useContext(GutterContext);
|
|
29
29
|
const viewPort = useViewport();
|
|
30
30
|
const hiddenLevels = applyInheritance([xs, sm, md, lg, xl]);
|
|
31
|
-
|
|
32
31
|
const getHorizontalAlignLevel = () => {
|
|
33
32
|
if (typeof horizontalAlign === 'object') {
|
|
34
33
|
return applyInheritance([horizontalAlign.xs, horizontalAlign.sm, horizontalAlign.md, horizontalAlign.lg, horizontalAlign.xl]);
|
|
35
34
|
}
|
|
36
|
-
|
|
37
35
|
if (typeof horizontalAlign === 'string') {
|
|
38
36
|
return [horizontalAlign, horizontalAlign, horizontalAlign, horizontalAlign, horizontalAlign];
|
|
39
37
|
}
|
|
40
|
-
|
|
41
38
|
return ['inherit', 'inherit', 'inherit', 'inherit', 'inherit'];
|
|
42
39
|
};
|
|
43
|
-
|
|
44
40
|
const horizontalAlignLevel = getHorizontalAlignLevel();
|
|
45
|
-
|
|
46
41
|
const toPercent = num => {
|
|
47
42
|
return `${num / 12 * 100}%`;
|
|
48
43
|
};
|
|
49
|
-
|
|
50
44
|
const calculateWidth = value => {
|
|
51
45
|
if (typeof value === 'undefined') {
|
|
52
46
|
return {};
|
|
53
47
|
}
|
|
54
|
-
|
|
55
48
|
if (typeof value === 'number') {
|
|
56
49
|
const percent = toPercent(value);
|
|
57
50
|
return {
|
|
@@ -59,14 +52,12 @@ const Col = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
59
52
|
flexBasis: percent
|
|
60
53
|
};
|
|
61
54
|
}
|
|
62
|
-
|
|
63
55
|
return {
|
|
64
56
|
flexGrow: 1,
|
|
65
57
|
flexBasis: 0,
|
|
66
58
|
maxWidth: '100%'
|
|
67
59
|
};
|
|
68
60
|
};
|
|
69
|
-
|
|
70
61
|
const calculateOffset = value => {
|
|
71
62
|
if (typeof value === 'number') {
|
|
72
63
|
const percent = toPercent(value);
|
|
@@ -74,69 +65,62 @@ const Col = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
74
65
|
marginLeft: percent
|
|
75
66
|
};
|
|
76
67
|
}
|
|
77
|
-
|
|
78
68
|
return {};
|
|
79
69
|
};
|
|
80
|
-
|
|
81
70
|
const sizeStyles = sizes => {
|
|
82
71
|
const currViewport = Object.keys(sizes).find(key => key.startsWith(viewPort));
|
|
83
72
|
const currSize = sizes[currViewport];
|
|
84
|
-
return {
|
|
73
|
+
return {
|
|
74
|
+
...calculateWidth(currSize)
|
|
85
75
|
};
|
|
86
76
|
};
|
|
87
|
-
|
|
88
77
|
const offsetStyles = offsets => {
|
|
89
78
|
const currViewport = Object.keys(offsets).find(key => key.startsWith(viewPort));
|
|
90
79
|
const currOffset = offsets[currViewport];
|
|
91
|
-
return {
|
|
80
|
+
return {
|
|
81
|
+
...calculateOffset(currOffset)
|
|
92
82
|
};
|
|
93
83
|
};
|
|
94
|
-
|
|
95
84
|
const gutterPadding = {
|
|
96
85
|
paddingLeft: gutter ? 16 : 0,
|
|
97
86
|
paddingRight: gutter ? 16 : 0
|
|
98
87
|
};
|
|
99
|
-
let hidingStyles = {};
|
|
88
|
+
let hidingStyles = {};
|
|
89
|
+
|
|
90
|
+
// TODO: consider setting this to always 'flex' in a major release.
|
|
100
91
|
// `display: block` is invalid in native apps.
|
|
101
92
|
// See https://telusdigital.atlassian.net/browse/UDS1-92
|
|
102
|
-
|
|
103
93
|
const shown = !flex && Platform.OS === 'web' ? 'block' : 'flex';
|
|
104
|
-
|
|
105
94
|
if (viewPort === viewports.xs) {
|
|
106
95
|
hidingStyles = {
|
|
107
96
|
display: hiddenLevels[0] === 0 ? 'none' : shown,
|
|
108
97
|
textAlign: horizontalAlignLevel[0]
|
|
109
98
|
};
|
|
110
99
|
}
|
|
111
|
-
|
|
112
100
|
if (viewPort === viewports.sm) {
|
|
113
101
|
hidingStyles = {
|
|
114
102
|
display: hiddenLevels[1] === 0 ? 'none' : shown,
|
|
115
103
|
textAlign: horizontalAlignLevel[1]
|
|
116
104
|
};
|
|
117
105
|
}
|
|
118
|
-
|
|
119
106
|
if (viewPort === viewports.md) {
|
|
120
107
|
hidingStyles = {
|
|
121
108
|
display: hiddenLevels[2] === 0 ? 'none' : shown,
|
|
122
109
|
textAlign: horizontalAlignLevel[2]
|
|
123
110
|
};
|
|
124
111
|
}
|
|
125
|
-
|
|
126
112
|
if (viewPort === viewports.lg) {
|
|
127
113
|
hidingStyles = {
|
|
128
114
|
display: hiddenLevels[3] === 0 ? 'none' : shown,
|
|
129
115
|
textAlign: horizontalAlignLevel[3]
|
|
130
116
|
};
|
|
131
117
|
}
|
|
132
|
-
|
|
133
118
|
if (viewPort === viewports.xl) {
|
|
134
119
|
hidingStyles = {
|
|
135
120
|
display: hiddenLevels[4] === 0 ? 'none' : shown,
|
|
136
121
|
textAlign: horizontalAlignLevel[4]
|
|
137
122
|
};
|
|
138
123
|
}
|
|
139
|
-
|
|
140
124
|
const sizesArray = [xs, sm, md, lg, xl];
|
|
141
125
|
const offSetsArray = [xsOffset, smOffset, mdOffset, lgOffset, xlOffset];
|
|
142
126
|
const sizesWithIheritance = applyInheritance(sizesArray);
|
|
@@ -158,7 +142,8 @@ const Col = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
158
142
|
return /*#__PURE__*/_jsx(BaseView, {
|
|
159
143
|
ref: ref,
|
|
160
144
|
...viewProps,
|
|
161
|
-
style: [styles.col, gutterPadding, offsetStyles(offsets), sizeStyles(sizes), {
|
|
145
|
+
style: [styles.col, gutterPadding, offsetStyles(offsets), sizeStyles(sizes), {
|
|
146
|
+
...hidingStyles
|
|
162
147
|
}],
|
|
163
148
|
children: children
|
|
164
149
|
});
|
|
@@ -172,12 +157,12 @@ const styles = StyleSheet.create({
|
|
|
172
157
|
maxWidth: '100%'
|
|
173
158
|
}
|
|
174
159
|
});
|
|
160
|
+
|
|
175
161
|
/*
|
|
176
162
|
* We're disabling default props since passing undefined props to
|
|
177
163
|
* the react-flexbox-grid component sets up blank classes that may cause
|
|
178
164
|
* styling issues.
|
|
179
165
|
*/
|
|
180
|
-
|
|
181
166
|
Col.propTypes = {
|
|
182
167
|
/**
|
|
183
168
|
* Specify number of columns within the 'xs' breakpoint range. `0` hides the column.
|
|
@@ -187,7 +172,6 @@ Col.propTypes = {
|
|
|
187
172
|
*
|
|
188
173
|
*/
|
|
189
174
|
xs: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, true, false]),
|
|
190
|
-
|
|
191
175
|
/**
|
|
192
176
|
* Specify number of columns within the 'sm' breakpoint range. `0` hides the column.
|
|
193
177
|
*
|
|
@@ -196,7 +180,6 @@ Col.propTypes = {
|
|
|
196
180
|
*
|
|
197
181
|
*/
|
|
198
182
|
sm: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, true, false]),
|
|
199
|
-
|
|
200
183
|
/**
|
|
201
184
|
* Specify number of columns within the 'md' breakpoint range. `0` hides the column.
|
|
202
185
|
*
|
|
@@ -205,7 +188,6 @@ Col.propTypes = {
|
|
|
205
188
|
*
|
|
206
189
|
*/
|
|
207
190
|
md: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, true, false]),
|
|
208
|
-
|
|
209
191
|
/**
|
|
210
192
|
* Specify number of columns within the 'lg' breakpoint range. `0` hides the column.
|
|
211
193
|
*
|
|
@@ -214,7 +196,6 @@ Col.propTypes = {
|
|
|
214
196
|
*
|
|
215
197
|
*/
|
|
216
198
|
lg: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, true, false]),
|
|
217
|
-
|
|
218
199
|
/**
|
|
219
200
|
* Specify number of columns after the 'xl' breakpoint. `0` hides the column.
|
|
220
201
|
*
|
|
@@ -223,41 +204,34 @@ Col.propTypes = {
|
|
|
223
204
|
*
|
|
224
205
|
*/
|
|
225
206
|
xl: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, true, false]),
|
|
226
|
-
|
|
227
207
|
/**
|
|
228
208
|
* Offset the specified number of columns within the 'xs' breakpoint range. `0` hides the column.
|
|
229
209
|
*
|
|
230
210
|
*/
|
|
231
211
|
xsOffset: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
|
|
232
|
-
|
|
233
212
|
/**
|
|
234
213
|
* Offset the specified number of columns within the 'sm' breakpoint range.
|
|
235
214
|
*
|
|
236
215
|
*/
|
|
237
216
|
smOffset: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
|
|
238
|
-
|
|
239
217
|
/**
|
|
240
218
|
* Offset the specified number of columns within the 'md' breakpoint range.
|
|
241
219
|
*
|
|
242
220
|
*/
|
|
243
221
|
mdOffset: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
|
|
244
|
-
|
|
245
222
|
/**
|
|
246
223
|
* Offset the specified number of columns within the 'lg' breakpoint range.
|
|
247
224
|
*
|
|
248
225
|
*/
|
|
249
226
|
lgOffset: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
|
|
250
|
-
|
|
251
227
|
/**
|
|
252
228
|
* Offset the specified number of columns within the 'xl' breakpoint range.
|
|
253
229
|
*/
|
|
254
230
|
xlOffset: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
|
|
255
|
-
|
|
256
231
|
/**
|
|
257
232
|
* The columns of the Grid. Will typically be `FlexGrid.Col` components.
|
|
258
233
|
*/
|
|
259
234
|
children: PropTypes.node.isRequired,
|
|
260
|
-
|
|
261
235
|
/**
|
|
262
236
|
*
|
|
263
237
|
* Align content horizontally within the column.
|
|
@@ -265,7 +239,6 @@ Col.propTypes = {
|
|
|
265
239
|
* Accepts a `PropType.string` following the [responsive prop](#/Layout?id=responsive) structure.
|
|
266
240
|
*/
|
|
267
241
|
horizontalAlign: responsiveProps.getTypeOptionallyByViewport(PropTypes.oneOf(['left', 'center', 'right'])),
|
|
268
|
-
|
|
269
242
|
/**
|
|
270
243
|
* (web only) Stretches the column to fill vertical space using `display: flex`.
|
|
271
244
|
* In native apps, FlexGrid.Col behaves as if this is always true (as do all `View`s).
|
|
@@ -10,6 +10,7 @@ import GutterContext from './providers/GutterContext';
|
|
|
10
10
|
import applyInheritance from './helpers';
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
13
|
+
|
|
13
14
|
/**
|
|
14
15
|
* A mobile-first flexbox grid.
|
|
15
16
|
*/
|
|
@@ -36,32 +37,26 @@ const FlexGrid = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
36
37
|
const width = outsideGutter ? '100%' : 'auto';
|
|
37
38
|
let flexDirection;
|
|
38
39
|
let maxWidth;
|
|
39
|
-
|
|
40
40
|
if (viewPort === viewports.xs) {
|
|
41
41
|
// no maxWidth for xs
|
|
42
42
|
flexDirection = reverseLevel[0] ? 'column-reverse' : 'column';
|
|
43
43
|
}
|
|
44
|
-
|
|
45
44
|
if (viewPort === viewports.sm) {
|
|
46
45
|
maxWidth = limitWidth && viewports.map.get(viewports.sm);
|
|
47
46
|
flexDirection = reverseLevel[1] ? 'column-reverse' : 'column';
|
|
48
47
|
}
|
|
49
|
-
|
|
50
48
|
if (viewPort === viewports.md) {
|
|
51
49
|
maxWidth = limitWidth && viewports.map.get(viewports.md);
|
|
52
50
|
flexDirection = reverseLevel[2] ? 'column-reverse' : 'column';
|
|
53
51
|
}
|
|
54
|
-
|
|
55
52
|
if (viewPort === viewports.lg) {
|
|
56
53
|
maxWidth = limitWidth && viewports.map.get(viewports.lg);
|
|
57
54
|
flexDirection = reverseLevel[3] ? 'column-reverse' : 'column';
|
|
58
55
|
}
|
|
59
|
-
|
|
60
56
|
if (viewPort === viewports.xl) {
|
|
61
57
|
maxWidth = limitWidth && viewports.map.get(viewports.xl);
|
|
62
58
|
flexDirection = reverseLevel[4] ? 'column-reverse' : 'column';
|
|
63
59
|
}
|
|
64
|
-
|
|
65
60
|
const props = {
|
|
66
61
|
accessibilityRole,
|
|
67
62
|
...getA11yPropsFromHtmlTag(tag, accessibilityRole),
|
|
@@ -89,48 +84,40 @@ const styles = StyleSheet.create({
|
|
|
89
84
|
flexWrap: 'wrap'
|
|
90
85
|
}
|
|
91
86
|
});
|
|
92
|
-
FlexGrid.propTypes = {
|
|
93
|
-
|
|
87
|
+
FlexGrid.propTypes = {
|
|
88
|
+
...selectedSystemPropTypes,
|
|
94
89
|
/**
|
|
95
90
|
* Whether or not to give the grid a fixed width. This also centres the grid horizontally.
|
|
96
91
|
*/
|
|
97
92
|
limitWidth: PropTypes.bool,
|
|
98
|
-
|
|
99
93
|
/**
|
|
100
94
|
* Whether or not to include gutters in between columns.
|
|
101
95
|
*/
|
|
102
96
|
gutter: PropTypes.bool,
|
|
103
|
-
|
|
104
97
|
/**
|
|
105
98
|
* Whether or not to include gutter at the ends to the left and right of the FlexGrid
|
|
106
99
|
*/
|
|
107
100
|
outsideGutter: PropTypes.bool,
|
|
108
|
-
|
|
109
101
|
/**
|
|
110
102
|
* Choose if the item order should be reversed from the 'xs' breakpoint. When you pass in false, the order will be normal from the xs breakpoint. By default, it inherits the behaviour set by the preceding prop.
|
|
111
103
|
*/
|
|
112
104
|
xsReverse: PropTypes.bool,
|
|
113
|
-
|
|
114
105
|
/**
|
|
115
106
|
* Choose if the item order should be reversed from the 'sm' breakpoint. When you pass in false, the order will be normal from the sm breakpoint. By default, it inherits the behaviour set by the preceding prop.
|
|
116
107
|
*/
|
|
117
108
|
smReverse: PropTypes.bool,
|
|
118
|
-
|
|
119
109
|
/**
|
|
120
110
|
* Choose if the item order should be reversed from the 'md' breakpoint. When you pass in false, the order will be normal from the md breakpoint. By default, it inherits the behaviour set by the preceding prop.
|
|
121
111
|
*/
|
|
122
112
|
mdReverse: PropTypes.bool,
|
|
123
|
-
|
|
124
113
|
/**
|
|
125
114
|
* Choose if the item order should be reversed from the 'lg' breakpoint. When you pass in false, the order will be normal from the lg breakpoint. By default, it inherits the behaviour set by the preceding prop.
|
|
126
115
|
*/
|
|
127
116
|
lgReverse: PropTypes.bool,
|
|
128
|
-
|
|
129
117
|
/**
|
|
130
118
|
* Choose if the item order should be reversed from the 'xl' breakpoint. When you pass in false, the order will be normal from the xl breakpoint. By default, it inherits the behaviour set by the preceding prop.
|
|
131
119
|
*/
|
|
132
120
|
xlReverse: PropTypes.bool,
|
|
133
|
-
|
|
134
121
|
/**
|
|
135
122
|
* Optional semantic HTML tag, to apply to the container on web. Does not change styling.
|
|
136
123
|
*
|
|
@@ -138,7 +125,6 @@ FlexGrid.propTypes = { ...selectedSystemPropTypes,
|
|
|
138
125
|
* is not defined, the accessibilityRole will default to "heading".
|
|
139
126
|
*/
|
|
140
127
|
tag: PropTypes.oneOf(layoutTags),
|
|
141
|
-
|
|
142
128
|
/**
|
|
143
129
|
* The rows and columns of the Grid. Will typically be `FlexGrid.Row` and `FlexGrid.Col` components.
|
|
144
130
|
*/
|