@moda/om 16.1.1 → 16.3.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 +21 -0
- package/dist/index.cjs.js +344 -297
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +343 -296
- package/dist/index.esm.js.map +1 -1
- package/dist/{__mocks__ → src/__mocks__}/Icon.d.ts +0 -0
- package/dist/{components → src/components}/AspectRatioBox/AspectRatioBox.d.ts +0 -0
- package/dist/{components → src/components}/AspectRatioBox/AspectRatioBox.stories.d.ts +0 -0
- package/dist/{components → src/components}/AspectRatioBox/AspectRatioBox.test.d.ts +0 -0
- package/dist/{components → src/components}/AspectRatioBox/index.d.ts +0 -0
- package/dist/{components → src/components}/Badge/Badge.d.ts +0 -0
- package/dist/{components → src/components}/Badge/Badge.stories.d.ts +0 -0
- package/dist/{components → src/components}/Badge/Badge.test.d.ts +0 -0
- package/dist/{components → src/components}/Badge/index.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/Breadcrumb/Breadcrumb.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/Breadcrumb/index.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/Breadcrumbs.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/Breadcrumbs.stories.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/Breadcrumbs.test.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/index.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/Breakpoint.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/Breakpoint.stories.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/Breakpoint.test.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/BreakpointProvider.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/generateMediaQuery.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/generateMediaQuery.test.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/index.d.ts +0 -0
- package/dist/{components → src/components}/Button/Button.d.ts +0 -0
- package/dist/{components → src/components}/Button/Button.stories.d.ts +0 -0
- package/dist/{components → src/components}/Button/Button.test.d.ts +0 -0
- package/dist/{components → src/components}/Button/index.d.ts +0 -0
- package/dist/{components → src/components}/Checkbox/Checkbox.d.ts +0 -0
- package/dist/{components → src/components}/Checkbox/Checkbox.stories.d.ts +0 -0
- package/dist/{components → src/components}/Checkbox/Checkbox.test.d.ts +0 -0
- package/dist/{components → src/components}/Checkbox/index.d.ts +0 -0
- package/dist/{components → src/components}/Clickable/Clickable.d.ts +0 -0
- package/dist/{components → src/components}/Clickable/Clickable.stories.d.ts +0 -0
- package/dist/{components → src/components}/Clickable/Clickable.test.d.ts +0 -0
- package/dist/{components → src/components}/Clickable/index.d.ts +0 -0
- package/dist/{components → src/components}/ColorSwatch/ColorSwatch.d.ts +0 -0
- package/dist/{components → src/components}/ColorSwatch/ColorSwatch.stories.d.ts +0 -0
- package/dist/{components → src/components}/ColorSwatch/ColorSwatch.test.d.ts +0 -0
- package/dist/{components → src/components}/ColorSwatch/index.d.ts +0 -0
- package/dist/{components → src/components}/ColorSwatch/skuColors.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/Constrain.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/Constrain.stories.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/Constrain.test.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/ExceedConstrain.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/ExceedConstrain.stories.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/index.d.ts +0 -0
- package/dist/{components → src/components}/ControlLink/ControlLink.d.ts +0 -0
- package/dist/{components → src/components}/ControlLink/ControlLink.stories.d.ts +0 -0
- package/dist/{components → src/components}/ControlLink/ControlLink.test.d.ts +0 -0
- package/dist/{components → src/components}/ControlLink/index.d.ts +0 -0
- package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInput.d.ts +0 -0
- package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInput.stories.d.ts +0 -0
- package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInput.test.d.ts +0 -0
- package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInputField.d.ts +0 -0
- package/dist/{components → src/components}/CreditCardNumberInput/index.d.ts +0 -0
- package/dist/{components → src/components}/DefinitionList/DefinitionList.d.ts +0 -0
- package/dist/{components → src/components}/DefinitionList/DefinitionList.stories.d.ts +0 -0
- package/dist/{components → src/components}/DefinitionList/DefinitionList.test.d.ts +0 -0
- package/dist/{components → src/components}/DefinitionList/index.d.ts +0 -0
- package/dist/{components → src/components}/Divider/Divider.d.ts +0 -0
- package/dist/{components → src/components}/Divider/Divider.stories.d.ts +0 -0
- package/dist/{components → src/components}/Divider/Divider.test.d.ts +0 -0
- package/dist/{components → src/components}/Divider/NoLineDivider.d.ts +0 -0
- package/dist/{components → src/components}/Divider/TwoLineDivider.d.ts +0 -0
- package/dist/{components → src/components}/Divider/index.d.ts +0 -0
- package/dist/{components → src/components}/Expandable/Expandable.d.ts +0 -0
- package/dist/{components → src/components}/Expandable/Expandable.stories.d.ts +0 -0
- package/dist/{components → src/components}/Expandable/Expandable.test.d.ts +0 -0
- package/dist/{components → src/components}/Expandable/index.d.ts +0 -0
- package/dist/{components → src/components}/Field/Field.d.ts +0 -0
- package/dist/{components → src/components}/Field/Field.stories.d.ts +0 -0
- package/dist/{components → src/components}/Field/Field.test.d.ts +0 -0
- package/dist/{components → src/components}/Field/index.d.ts +0 -0
- package/dist/{components → src/components}/Label/Label.d.ts +0 -0
- package/dist/{components → src/components}/Label/Label.stories.d.ts +0 -0
- package/dist/{components → src/components}/Label/Label.test.d.ts +0 -0
- package/dist/{components → src/components}/Label/index.d.ts +0 -0
- package/dist/{components → src/components}/Loading/Loading.d.ts +0 -0
- package/dist/{components → src/components}/Loading/Loading.stories.d.ts +0 -0
- package/dist/{components → src/components}/Loading/Loading.test.d.ts +0 -0
- package/dist/{components → src/components}/Loading/index.d.ts +0 -0
- package/dist/{components → src/components}/LoadingBalls/LoadingBalls.d.ts +0 -0
- package/dist/{components → src/components}/LoadingBalls/LoadingBalls.stories.d.ts +0 -0
- package/dist/{components → src/components}/LoadingBalls/index.d.ts +0 -0
- package/dist/{components → src/components}/Modal/Modal.d.ts +0 -0
- package/dist/{components → src/components}/Modal/Modal.stories.d.ts +0 -0
- package/dist/{components → src/components}/Modal/Modal.test.d.ts +0 -0
- package/dist/{components → src/components}/Modal/index.d.ts +0 -0
- package/dist/{components → src/components}/ModalOverlay/ModalOverlay.d.ts +0 -0
- package/dist/{components → src/components}/ModalOverlay/ModalOverlay.stories.d.ts +0 -0
- package/dist/{components → src/components}/ModalOverlay/ModalOverlay.test.d.ts +0 -0
- package/dist/{components → src/components}/ModalOverlay/index.d.ts +0 -0
- package/dist/{components → src/components}/Overlay/Overlay.d.ts +0 -0
- package/dist/{components → src/components}/Overlay/Overlay.stories.d.ts +0 -0
- package/dist/{components → src/components}/Overlay/Overlay.test.d.ts +0 -0
- package/dist/{components → src/components}/Overlay/index.d.ts +0 -0
- package/dist/{components → src/components}/Paginator/Paginator.d.ts +0 -0
- package/dist/{components → src/components}/Paginator/Paginator.stories.d.ts +0 -0
- package/dist/{components → src/components}/Paginator/index.d.ts +0 -0
- package/dist/{components → src/components}/PasswordInput/PasswordInput.d.ts +0 -0
- package/dist/{components → src/components}/PasswordInput/PasswordInput.stories.d.ts +0 -0
- package/dist/{components → src/components}/PasswordInput/index.d.ts +0 -0
- package/dist/{components → src/components}/Popover/Popover.d.ts +0 -0
- package/dist/{components → src/components}/Popover/Popover.stories.d.ts +0 -0
- package/dist/{components → src/components}/Popover/Popover.test.d.ts +0 -0
- package/dist/{components → src/components}/Popover/index.d.ts +0 -0
- package/dist/{components → src/components}/PromoBanner/PromoBanner.d.ts +0 -0
- package/dist/{components → src/components}/PromoBanner/PromoBanner.stories.d.ts +0 -0
- package/dist/{components → src/components}/PromoBanner/PromoBanner.test.d.ts +0 -0
- package/dist/{components → src/components}/PromoBanner/index.d.ts +0 -0
- package/dist/{components → src/components}/RadioButton/RadioButton.d.ts +0 -0
- package/dist/{components → src/components}/RadioButton/RadioButton.stories.d.ts +0 -0
- package/dist/{components → src/components}/RadioButton/RadioButton.test.d.ts +0 -0
- package/dist/{components → src/components}/RadioButton/index.d.ts +0 -0
- package/dist/{components → src/components}/SearchInput/SearchInput.d.ts +0 -0
- package/dist/{components → src/components}/SearchInput/SearchInput.stories.d.ts +0 -0
- package/dist/{components → src/components}/SearchInput/SearchInput.test.d.ts +0 -0
- package/dist/{components → src/components}/SearchInput/index.d.ts +0 -0
- package/dist/{components → src/components}/Select/MultiSelect.d.ts +0 -0
- package/dist/{components → src/components}/Select/Select.d.ts +1 -0
- package/dist/{components → src/components}/Select/Select.stories.d.ts +0 -0
- package/dist/{components → src/components}/Select/Select.test.d.ts +0 -0
- package/dist/{components → src/components}/Select/SelectLabel.d.ts +0 -0
- package/dist/{components → src/components}/Select/SelectOption.d.ts +1 -0
- package/dist/{components → src/components}/Select/SelectOptions.d.ts +1 -0
- package/dist/{components → src/components}/Select/index.d.ts +0 -0
- package/dist/{components → src/components}/Select/useSelect.d.ts +0 -0
- package/dist/{components → src/components}/SelectableButton/SelectableButton.d.ts +0 -0
- package/dist/{components → src/components}/SelectableButton/SelectableButton.stories.d.ts +0 -0
- package/dist/{components → src/components}/SelectableButton/SelectableButton.test.d.ts +0 -0
- package/dist/{components → src/components}/SelectableButton/index.d.ts +0 -0
- package/dist/{components → src/components}/Shape/ArcWindow.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Bradley.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Brancusi.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Circle.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Diamond.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Keyhole.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Mirror.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Oval.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Shape.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Shape.stories.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Triangle.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Window.d.ts +0 -0
- package/dist/{components → src/components}/Shape/index.d.ts +0 -0
- package/dist/{components → src/components}/Stack/Stack.d.ts +0 -0
- package/dist/{components → src/components}/Stack/Stack.stories.d.ts +0 -0
- package/dist/{components → src/components}/Stack/Stack.test.d.ts +0 -0
- package/dist/{components → src/components}/Stack/index.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/Tab.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/TabList.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/TabPanel.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/TabPanels.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/Tabs.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/Tabs.stories.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/Tabs.test.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/index.d.ts +0 -0
- package/dist/{components → src/components}/Tag/Tag.d.ts +0 -0
- package/dist/{components → src/components}/Tag/Tag.stories.d.ts +0 -0
- package/dist/{components → src/components}/Tag/Tag.test.d.ts +0 -0
- package/dist/{components → src/components}/Tag/index.d.ts +0 -0
- package/dist/{components → src/components}/Text/Text.d.ts +0 -0
- package/dist/{components → src/components}/Text/Text.stories.d.ts +0 -0
- package/dist/{components → src/components}/Text/Text.test.d.ts +0 -0
- package/dist/{components → src/components}/Text/index.d.ts +0 -0
- package/dist/{components → src/components}/TextInput/TextInput.d.ts +0 -0
- package/dist/{components → src/components}/TextInput/TextInput.stories.d.ts +0 -0
- package/dist/{components → src/components}/TextInput/TextInput.test.d.ts +0 -0
- package/dist/{components → src/components}/TextInput/index.d.ts +0 -0
- package/dist/{components → src/components}/Textarea/Textarea.d.ts +0 -0
- package/dist/{components → src/components}/Textarea/Textarea.stories.d.ts +0 -0
- package/dist/{components → src/components}/Textarea/Textarea.test.d.ts +0 -0
- package/dist/{components → src/components}/Textarea/index.d.ts +0 -0
- package/dist/{components → src/components}/Toast/Toast.d.ts +0 -0
- package/dist/{components → src/components}/Toast/Toast.stories.d.ts +0 -0
- package/dist/{components → src/components}/Toast/Toast.test.d.ts +0 -0
- package/dist/{components → src/components}/Toast/index.d.ts +0 -0
- package/dist/{components → src/components}/VerticalDivider/VerticalDivider.d.ts +0 -0
- package/dist/{components → src/components}/VerticalDivider/VerticalDivider.stories.d.ts +0 -0
- package/dist/{components → src/components}/VerticalDivider/VerticalDivider.test.d.ts +0 -0
- package/dist/{components → src/components}/VerticalDivider/index.d.ts +0 -0
- package/dist/{components → src/components}/index.d.ts +0 -0
- package/dist/{hooks → src/hooks}/index.d.ts +0 -0
- package/dist/{hooks → src/hooks}/useBreakpoint.d.ts +0 -0
- package/dist/{hooks → src/hooks}/useClickOutside.d.ts +0 -0
- package/dist/{hooks → src/hooks}/useKeyboardListNavigation.d.ts +0 -0
- package/dist/{hooks → src/hooks}/useKeyboardListNavigation.spec.d.ts +0 -0
- package/dist/{hooks → src/hooks}/useUpdateEffect.d.ts +0 -0
- package/dist/{index.d.ts → src/index.d.ts} +0 -0
- package/dist/{mixins → src/mixins}/font-smoothing/font-smoothing.stories.d.ts +0 -0
- package/dist/{mixins → src/mixins}/overflow-scroll/overflow-scroll.stories.d.ts +0 -0
- package/dist/{mixins → src/mixins}/stack/stack.stories.d.ts +0 -0
- package/dist/{mixins → src/mixins}/thin-underline/thin-underline.stories.d.ts +0 -0
- package/dist/{mixins → src/mixins}/visually-hidden/visually-hidden.stories.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/State.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/States.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/StatesProps.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/index.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/isRenderProps.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/stringifyProps.d.ts +0 -0
- package/dist/{utilities → src/utilities}/index.d.ts +0 -0
- package/dist/{utilities → src/utilities}/omit.d.ts +0 -0
- package/dist/{utilities → src/utilities}/sample.d.ts +0 -0
- package/dist/styles.css +1 -1
- package/dist/test/mocks/matchMedia.d.ts +1 -0
- package/dist/test/setupTests.d.ts +3 -0
- package/package.json +30 -19
- package/src/components/AspectRatioBox/AspectRatioBox.test.tsx +3 -3
- package/src/components/AspectRatioBox/AspectRatioBox.tsx +4 -4
- package/src/components/AspectRatioBox/index.ts +1 -1
- package/src/components/Badge/Badge.stories.tsx +5 -5
- package/src/components/Badge/Badge.test.tsx +5 -12
- package/src/components/Breadcrumbs/Breadcrumb/Breadcrumb.tsx +6 -6
- package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +6 -6
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +7 -7
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +1 -1
- package/src/components/Breakpoint/Breakpoint.stories.tsx +10 -9
- package/src/components/Breakpoint/Breakpoint.test.tsx +7 -8
- package/src/components/Breakpoint/generateMediaQuery.ts +5 -4
- package/src/components/Button/Button.stories.tsx +4 -4
- package/src/components/Button/Button.test.tsx +14 -3
- package/src/components/Checkbox/Checkbox.stories.tsx +5 -5
- package/src/components/Checkbox/Checkbox.test.tsx +12 -14
- package/src/components/Checkbox/Checkbox.tsx +4 -4
- package/src/components/Clickable/Clickable.stories.tsx +3 -3
- package/src/components/Clickable/Clickable.test.tsx +3 -3
- package/src/components/ColorSwatch/ColorSwatch.stories.tsx +11 -11
- package/src/components/ColorSwatch/ColorSwatch.test.tsx +3 -5
- package/src/components/ColorSwatch/ColorSwatch.tsx +1 -1
- package/src/components/Constrain/Constrain.stories.tsx +1 -1
- package/src/components/Constrain/Constrain.test.tsx +4 -4
- package/src/components/Constrain/ExceedConstrain.stories.tsx +2 -2
- package/src/components/ControlLink/ControlLink.stories.tsx +1 -1
- package/src/components/ControlLink/ControlLink.test.tsx +10 -12
- package/src/components/ControlLink/index.ts +1 -1
- package/src/components/CreditCardNumberInput/CreditCardNumberInput.stories.tsx +1 -1
- package/src/components/CreditCardNumberInput/CreditCardNumberInput.test.tsx +16 -16
- package/src/components/CreditCardNumberInput/CreditCardNumberInput.tsx +1 -0
- package/src/components/DefinitionList/DefinitionList.stories.tsx +3 -3
- package/src/components/DefinitionList/DefinitionList.test.tsx +4 -3
- package/src/components/Divider/Divider.stories.tsx +4 -4
- package/src/components/Divider/Divider.test.tsx +5 -4
- package/src/components/Divider/Divider.tsx +1 -1
- package/src/components/Divider/NoLineDivider.tsx +1 -1
- package/src/components/Divider/TwoLineDivider.tsx +1 -1
- package/src/components/Expandable/Expandable.stories.tsx +8 -8
- package/src/components/Expandable/Expandable.test.tsx +17 -6
- package/src/components/Expandable/Expandable.tsx +3 -2
- package/src/components/Field/Field.stories.tsx +4 -4
- package/src/components/Field/Field.test.tsx +25 -34
- package/src/components/Field/Field.tsx +5 -5
- package/src/components/Field/index.ts +1 -0
- package/src/components/Label/Label.test.tsx +3 -3
- package/src/components/Loading/Loading.test.tsx +3 -5
- package/src/components/Loading/Loading.tsx +2 -1
- package/src/components/Modal/Modal.test.tsx +8 -9
- package/src/components/ModalOverlay/ModalOverlay.test.tsx +11 -11
- package/src/components/ModalOverlay/ModalOverlay.tsx +2 -2
- package/src/components/Overlay/Overlay.stories.tsx +1 -1
- package/src/components/Overlay/Overlay.test.tsx +3 -3
- package/src/components/Paginator/Paginator.tsx +3 -3
- package/src/components/PasswordInput/PasswordInput.stories.tsx +1 -1
- package/src/components/PasswordInput/PasswordInput.tsx +6 -6
- package/src/components/Popover/Popover.stories.tsx +1 -1
- package/src/components/Popover/Popover.test.tsx +9 -6
- package/src/components/Popover/Popover.tsx +10 -7
- package/src/components/PromoBanner/PromoBanner.stories.tsx +9 -9
- package/src/components/PromoBanner/PromoBanner.test.tsx +3 -3
- package/src/components/PromoBanner/PromoBanner.tsx +1 -1
- package/src/components/RadioButton/RadioButton.stories.tsx +2 -2
- package/src/components/RadioButton/RadioButton.test.tsx +6 -10
- package/src/components/RadioButton/RadioButton.tsx +4 -4
- package/src/components/SearchInput/SearchInput.stories.tsx +2 -2
- package/src/components/SearchInput/SearchInput.test.tsx +10 -6
- package/src/components/SearchInput/SearchInput.tsx +3 -3
- package/src/components/Select/MultiSelect.tsx +7 -7
- package/src/components/Select/Select.stories.tsx +17 -15
- package/src/components/Select/Select.test.tsx +21 -21
- package/src/components/Select/Select.tsx +17 -8
- package/src/components/Select/SelectOption.tsx +5 -2
- package/src/components/Select/SelectOptions.tsx +8 -5
- package/src/components/SelectableButton/SelectableButton.stories.tsx +1 -1
- package/src/components/SelectableButton/SelectableButton.test.tsx +3 -3
- package/src/components/Shape/ArcWindow.tsx +10 -10
- package/src/components/Shape/Bradley.tsx +4 -4
- package/src/components/Shape/Brancusi.tsx +4 -4
- package/src/components/Shape/Circle.tsx +10 -10
- package/src/components/Shape/Diamond.tsx +10 -10
- package/src/components/Shape/Keyhole.tsx +4 -4
- package/src/components/Shape/Mirror.tsx +4 -4
- package/src/components/Shape/Oval.tsx +4 -4
- package/src/components/Shape/Triangle.tsx +7 -7
- package/src/components/Shape/Window.tsx +4 -4
- package/src/components/Stack/Stack.stories.tsx +3 -3
- package/src/components/Stack/Stack.test.tsx +7 -5
- package/src/components/Tabs/TabList.tsx +1 -1
- package/src/components/Tabs/TabPanel.tsx +1 -1
- package/src/components/Tabs/TabPanels.tsx +1 -1
- package/src/components/Tabs/Tabs.stories.tsx +2 -2
- package/src/components/Tabs/Tabs.test.tsx +6 -7
- package/src/components/Tabs/Tabs.tsx +7 -1
- package/src/components/Tag/Tag.test.tsx +1 -1
- package/src/components/Tag/Tag.tsx +6 -5
- package/src/components/Text/Text.stories.tsx +5 -5
- package/src/components/Text/Text.test.tsx +4 -6
- package/src/components/TextInput/TextInput.stories.tsx +1 -1
- package/src/components/TextInput/TextInput.test.tsx +4 -5
- package/src/components/Textarea/Textarea.stories.tsx +1 -1
- package/src/components/Textarea/Textarea.test.tsx +11 -16
- package/src/components/Toast/Toast.stories.tsx +1 -1
- package/src/components/Toast/Toast.test.tsx +2 -2
- package/src/components/Toast/Toast.tsx +6 -6
- package/src/components/VerticalDivider/VerticalDivider.stories.tsx +3 -3
- package/src/components/VerticalDivider/VerticalDivider.test.tsx +6 -7
- package/src/hooks/useKeyboardListNavigation.spec.ts +26 -64
- package/src/hooks/useKeyboardListNavigation.ts +2 -0
- package/src/hooks/useUpdateEffect.ts +1 -0
- package/src/index.ts +2 -2
- package/src/mixins/font-smoothing/font-smoothing.stories.tsx +8 -8
- package/src/mixins/overflow-scroll/overflow-scroll.stories.tsx +2 -2
- package/src/mixins/stack/stack.stories.tsx +5 -6
- package/src/mixins/thin-underline/thin-underline.stories.tsx +1 -1
- package/src/mixins/visually-hidden/visually-hidden.stories.tsx +1 -1
- package/src/utilities/States/State.tsx +3 -2
- package/src/utilities/States/States.tsx +4 -3
- package/src/utilities/States/StatesProps.tsx +5 -2
- package/src/utilities/States/isRenderProps.ts +1 -0
- package/src/utilities/States/stringifyProps.tsx +1 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import { fireEvent } from '@testing-library/react';
|
|
3
|
-
import { useKeyboardListNavigation } from './useKeyboardListNavigation';
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-magic-numbers */
|
|
2
|
+
import { renderHook, fireEvent } from '@testing-library/react';
|
|
4
3
|
import { useRef } from 'react';
|
|
4
|
+
import { useKeyboardListNavigation } from './useKeyboardListNavigation';
|
|
5
5
|
|
|
6
6
|
describe('useKeyboardListNavigation', () => {
|
|
7
7
|
const list = ['first', 'second', 'third', 'fourth'];
|
|
@@ -32,9 +32,7 @@ describe('useKeyboardListNavigation', () => {
|
|
|
32
32
|
expect(result.current.index).toBe(0);
|
|
33
33
|
expect(result.current.selected).toBe('first');
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
37
|
-
});
|
|
35
|
+
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
38
36
|
|
|
39
37
|
expect(result.current.cursor).toBe(1);
|
|
40
38
|
expect(result.current.index).toBe(1);
|
|
@@ -48,10 +46,8 @@ describe('useKeyboardListNavigation', () => {
|
|
|
48
46
|
expect(result.current.index).toBe(0);
|
|
49
47
|
expect(result.current.selected).toBe('first');
|
|
50
48
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
54
|
-
});
|
|
49
|
+
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
50
|
+
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
55
51
|
|
|
56
52
|
expect(result.current.cursor).toBe(2);
|
|
57
53
|
expect(result.current.index).toBe(2);
|
|
@@ -65,9 +61,7 @@ describe('useKeyboardListNavigation', () => {
|
|
|
65
61
|
expect(result.current.index).toBe(0);
|
|
66
62
|
expect(result.current.selected).toBe('first');
|
|
67
63
|
|
|
68
|
-
|
|
69
|
-
fireEvent.keyDown(window, { key: 'ArrowUp' });
|
|
70
|
-
});
|
|
64
|
+
fireEvent.keyDown(window, { key: 'ArrowUp' });
|
|
71
65
|
|
|
72
66
|
expect(result.current.cursor).toBe(-1);
|
|
73
67
|
expect(result.current.index).toBe(3);
|
|
@@ -81,26 +75,20 @@ describe('useKeyboardListNavigation', () => {
|
|
|
81
75
|
expect(result.current.index).toBe(0);
|
|
82
76
|
expect(result.current.selected).toBe('first');
|
|
83
77
|
|
|
84
|
-
|
|
85
|
-
fireEvent.keyDown(window, { key: 'End' });
|
|
86
|
-
});
|
|
78
|
+
fireEvent.keyDown(window, { key: 'End' });
|
|
87
79
|
|
|
88
80
|
expect(result.current.cursor).toBe(3);
|
|
89
81
|
expect(result.current.index).toBe(3);
|
|
90
82
|
expect(result.current.selected).toBe('fourth');
|
|
91
83
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
fireEvent.keyDown(window, { key: 'ArrowUp' });
|
|
95
|
-
});
|
|
84
|
+
fireEvent.keyDown(window, { key: 'ArrowUp' });
|
|
85
|
+
fireEvent.keyDown(window, { key: 'ArrowUp' });
|
|
96
86
|
|
|
97
87
|
expect(result.current.cursor).toBe(1);
|
|
98
88
|
expect(result.current.index).toBe(1);
|
|
99
89
|
expect(result.current.selected).toBe('second');
|
|
100
90
|
|
|
101
|
-
|
|
102
|
-
fireEvent.keyDown(window, { key: 'End' });
|
|
103
|
-
});
|
|
91
|
+
fireEvent.keyDown(window, { key: 'End' });
|
|
104
92
|
|
|
105
93
|
expect(result.current.cursor).toBe(3);
|
|
106
94
|
expect(result.current.index).toBe(3);
|
|
@@ -120,26 +108,20 @@ describe('useKeyboardListNavigation', () => {
|
|
|
120
108
|
expect(result.current.index).toBe(-1);
|
|
121
109
|
expect(result.current.selected).toBeUndefined();
|
|
122
110
|
|
|
123
|
-
|
|
124
|
-
fireEvent.keyDown(window, { key: 'Home' });
|
|
125
|
-
});
|
|
111
|
+
fireEvent.keyDown(window, { key: 'Home' });
|
|
126
112
|
|
|
127
113
|
expect(result.current.cursor).toBe(0);
|
|
128
114
|
expect(result.current.index).toBe(0);
|
|
129
115
|
expect(result.current.selected).toBe('first');
|
|
130
116
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
fireEvent.keyDown(window, { key: 'ArrowUp' });
|
|
134
|
-
});
|
|
117
|
+
fireEvent.keyDown(window, { key: 'ArrowUp' });
|
|
118
|
+
fireEvent.keyDown(window, { key: 'ArrowUp' });
|
|
135
119
|
|
|
136
120
|
expect(result.current.cursor).toBe(-2);
|
|
137
121
|
expect(result.current.index).toBe(2);
|
|
138
122
|
expect(result.current.selected).toBe('third');
|
|
139
123
|
|
|
140
|
-
|
|
141
|
-
fireEvent.keyDown(window, { key: 'Home' });
|
|
142
|
-
});
|
|
124
|
+
fireEvent.keyDown(window, { key: 'Home' });
|
|
143
125
|
|
|
144
126
|
expect(result.current.cursor).toBe(0);
|
|
145
127
|
expect(result.current.index).toBe(0);
|
|
@@ -158,9 +140,7 @@ describe('useKeyboardListNavigation', () => {
|
|
|
158
140
|
expect(result.current.index).toBe(0);
|
|
159
141
|
expect(result.current.selected).toBe('first');
|
|
160
142
|
|
|
161
|
-
|
|
162
|
-
fireEvent.keyDown(window, { key: 't' });
|
|
163
|
-
});
|
|
143
|
+
fireEvent.keyDown(window, { key: 't' });
|
|
164
144
|
|
|
165
145
|
expect(result.current.cursor).toBe(2);
|
|
166
146
|
expect(result.current.index).toBe(2);
|
|
@@ -171,9 +151,7 @@ describe('useKeyboardListNavigation', () => {
|
|
|
171
151
|
const onEnter = jest.fn();
|
|
172
152
|
renderHook(() => useKeyboardListNavigation({ list, onEnter }));
|
|
173
153
|
|
|
174
|
-
|
|
175
|
-
fireEvent.keyDown(window, { key: 'Enter' });
|
|
176
|
-
});
|
|
154
|
+
fireEvent.keyDown(window, { key: 'Enter' });
|
|
177
155
|
|
|
178
156
|
expect(onEnter).toBeCalledTimes(1);
|
|
179
157
|
expect(onEnter).toHaveBeenCalledWith({
|
|
@@ -183,14 +161,10 @@ describe('useKeyboardListNavigation', () => {
|
|
|
183
161
|
state: { cursor: 0, interactive: false, length: 4 }
|
|
184
162
|
});
|
|
185
163
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
189
|
-
});
|
|
164
|
+
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
165
|
+
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
190
166
|
|
|
191
|
-
|
|
192
|
-
fireEvent.keyDown(window, { key: 'Enter' });
|
|
193
|
-
});
|
|
167
|
+
fireEvent.keyDown(window, { key: 'Enter' });
|
|
194
168
|
|
|
195
169
|
expect(onEnter).toBeCalledTimes(2);
|
|
196
170
|
expect(onEnter).toHaveBeenLastCalledWith({
|
|
@@ -210,15 +184,11 @@ describe('useKeyboardListNavigation', () => {
|
|
|
210
184
|
|
|
211
185
|
expect(result.current.cursor).toBe(0);
|
|
212
186
|
|
|
213
|
-
|
|
214
|
-
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
215
|
-
});
|
|
187
|
+
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
216
188
|
|
|
217
189
|
expect(result.current.cursor).toBe(0);
|
|
218
190
|
|
|
219
|
-
|
|
220
|
-
fireEvent.keyDown(div, { key: 'ArrowDown' });
|
|
221
|
-
});
|
|
191
|
+
fireEvent.keyDown(div, { key: 'ArrowDown' });
|
|
222
192
|
|
|
223
193
|
expect(result.current.cursor).toBe(1);
|
|
224
194
|
});
|
|
@@ -237,9 +207,7 @@ describe('useKeyboardListNavigation', () => {
|
|
|
237
207
|
expect(result.current.index).toBe(-1);
|
|
238
208
|
expect(result.current.selected).toBeUndefined();
|
|
239
209
|
|
|
240
|
-
|
|
241
|
-
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
242
|
-
});
|
|
210
|
+
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
243
211
|
|
|
244
212
|
expect(result.current.cursor).toBe(0);
|
|
245
213
|
expect(result.current.index).toBe(0);
|
|
@@ -250,19 +218,13 @@ describe('useKeyboardListNavigation', () => {
|
|
|
250
218
|
const onEnter = jest.fn();
|
|
251
219
|
renderHook(() => useKeyboardListNavigation({ list, onEnter, waitForInteractive: true }));
|
|
252
220
|
|
|
253
|
-
|
|
254
|
-
fireEvent.keyDown(window, { key: 'Enter' });
|
|
255
|
-
});
|
|
221
|
+
fireEvent.keyDown(window, { key: 'Enter' });
|
|
256
222
|
|
|
257
223
|
expect(onEnter).toBeCalledTimes(0);
|
|
258
224
|
|
|
259
|
-
|
|
260
|
-
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
261
|
-
});
|
|
225
|
+
fireEvent.keyDown(window, { key: 'ArrowDown' });
|
|
262
226
|
|
|
263
|
-
|
|
264
|
-
fireEvent.keyDown(window, { key: 'Enter' });
|
|
265
|
-
});
|
|
227
|
+
fireEvent.keyDown(window, { key: 'Enter' });
|
|
266
228
|
|
|
267
229
|
expect(onEnter).toBeCalledTimes(1);
|
|
268
230
|
});
|
|
@@ -56,6 +56,7 @@ export type UseKeyboardListNavigationProps<T> = {
|
|
|
56
56
|
index: number;
|
|
57
57
|
}): void;
|
|
58
58
|
extractValue?(item: T): string;
|
|
59
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
59
60
|
ref?: React.MutableRefObject<any>;
|
|
60
61
|
};
|
|
61
62
|
|
|
@@ -138,6 +139,7 @@ export const useKeyboardListNavigation = <T>({
|
|
|
138
139
|
};
|
|
139
140
|
}, [handleKeyDown, ref, idleTimeout]);
|
|
140
141
|
|
|
142
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
141
143
|
useEffect(() => dispatch({ type: 'RESET', payload: { defaultCursor } }), [list.length]);
|
|
142
144
|
|
|
143
145
|
const interactiveIndex = waitForInteractive && !state.interactive ? -1 : index;
|
package/src/index.ts
CHANGED
|
@@ -2,6 +2,8 @@ import 'focus-visible';
|
|
|
2
2
|
|
|
3
3
|
import { colors, typography, space, breakpoints } from '@moda/tokens';
|
|
4
4
|
|
|
5
|
+
import { States } from './utilities';
|
|
6
|
+
|
|
5
7
|
export const tokens = {
|
|
6
8
|
colors,
|
|
7
9
|
typography,
|
|
@@ -14,6 +16,4 @@ export { FocusOn } from 'react-focus-on';
|
|
|
14
16
|
export * from './components';
|
|
15
17
|
export * from './hooks';
|
|
16
18
|
|
|
17
|
-
import { States } from './utilities';
|
|
18
|
-
|
|
19
19
|
export const Utilities = { States };
|
|
@@ -9,22 +9,22 @@ export default { title: 'Mixins/font-smoothing' };
|
|
|
9
9
|
|
|
10
10
|
export const Default = () => (
|
|
11
11
|
<Stack space={3}>
|
|
12
|
-
<div className=
|
|
13
|
-
<Text treatment=
|
|
12
|
+
<div className="Story Mixins font-smoothing--antialiased">
|
|
13
|
+
<Text treatment="eyebrow">@include font-smoothing(antialiased);</Text>
|
|
14
14
|
</div>
|
|
15
15
|
|
|
16
|
-
<div className=
|
|
17
|
-
<Text treatment=
|
|
16
|
+
<div className="Story Mixins font-smoothing--subpixel">
|
|
17
|
+
<Text treatment="eyebrow">@include font-smoothing(subpixel);</Text>
|
|
18
18
|
</div>
|
|
19
19
|
|
|
20
|
-
<div className=
|
|
21
|
-
<Text color=
|
|
20
|
+
<div className="Story Mixins font-smoothing--antialiased" style={{ backgroundColor: 'black' }}>
|
|
21
|
+
<Text color="snow" treatment="eyebrow">
|
|
22
22
|
@include font-smoothing(antialiased);
|
|
23
23
|
</Text>
|
|
24
24
|
</div>
|
|
25
25
|
|
|
26
|
-
<div className=
|
|
27
|
-
<Text color=
|
|
26
|
+
<div className="Story Mixins font-smoothing--subpixel" style={{ backgroundColor: 'black' }}>
|
|
27
|
+
<Text color="snow" treatment="eyebrow">
|
|
28
28
|
@include font-smoothing(subpixel);
|
|
29
29
|
</Text>
|
|
30
30
|
</div>
|
|
@@ -5,9 +5,9 @@ import './overflow-scroll.stories.scss';
|
|
|
5
5
|
export default { title: 'Mixins/overflow-scroll' };
|
|
6
6
|
|
|
7
7
|
export const Default = () => (
|
|
8
|
-
<div className=
|
|
8
|
+
<div className="Story Mixins overflow-scroll">Overflowed on the y axis!</div>
|
|
9
9
|
);
|
|
10
10
|
|
|
11
11
|
export const OverflowX = () => (
|
|
12
|
-
<div className=
|
|
12
|
+
<div className="Story Mixins overflow-scroll-x">Overflowed on the x axis!</div>
|
|
13
13
|
);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-magic-numbers */
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { space } from '@moda/tokens';
|
|
3
4
|
|
|
@@ -6,10 +7,8 @@ import './stack.stories.scss';
|
|
|
6
7
|
export default { title: 'Mixins/stack' };
|
|
7
8
|
|
|
8
9
|
export const Default = () => (
|
|
9
|
-
<div className=
|
|
10
|
-
<p>
|
|
11
|
-
Defaults to {`$space: 4`} === {space.scale[4]}
|
|
12
|
-
</p>
|
|
10
|
+
<div className="Story Mixins stack">
|
|
11
|
+
<p>Defaults to $space: 4 === {space.scale[4]}</p>
|
|
13
12
|
|
|
14
13
|
<span>Notice the different element tags</span>
|
|
15
14
|
|
|
@@ -18,8 +17,8 @@ export const Default = () => (
|
|
|
18
17
|
);
|
|
19
18
|
|
|
20
19
|
export const Horizontal = () => (
|
|
21
|
-
<div className=
|
|
22
|
-
<p>Accepts
|
|
20
|
+
<div className="Story Mixins stack stack--horizontal">
|
|
21
|
+
<p>Accepts $direction: horizontal</p>
|
|
23
22
|
|
|
24
23
|
<span>Notice the different element tags</span>
|
|
25
24
|
|
|
@@ -4,4 +4,4 @@ import './thin-underline.stories.scss';
|
|
|
4
4
|
|
|
5
5
|
export default { title: 'Mixins/thin-underline' };
|
|
6
6
|
|
|
7
|
-
export const Default = () => <div className=
|
|
7
|
+
export const Default = () => <div className="Story Mixins thin-underline">Hello</div>;
|
|
@@ -4,4 +4,4 @@ import './visually-hidden.stories.scss';
|
|
|
4
4
|
|
|
5
5
|
export default { title: 'Mixins/visually-hidden' };
|
|
6
6
|
|
|
7
|
-
export const Default = () => <div className=
|
|
7
|
+
export const Default = () => <div className="Story Mixins visually-hidden">Hello</div>;
|
|
@@ -4,6 +4,7 @@ import { StatesProps } from './StatesProps';
|
|
|
4
4
|
import './State.scss';
|
|
5
5
|
|
|
6
6
|
interface Props {
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
8
|
props: any;
|
|
8
9
|
children: JSX.Element | RenderProps;
|
|
9
10
|
}
|
|
@@ -13,10 +14,10 @@ export const State: React.FC<Props> = ({ props, children, ...rest }) => {
|
|
|
13
14
|
const innerChildren = isRenderProps(children) ? children(props) : children;
|
|
14
15
|
|
|
15
16
|
return (
|
|
16
|
-
<div className=
|
|
17
|
+
<div className="State" {...rest}>
|
|
17
18
|
{Specimen}
|
|
18
19
|
|
|
19
|
-
<code className=
|
|
20
|
+
<code className="State__props">
|
|
20
21
|
<StatesProps props={props}>{innerChildren}</StatesProps>
|
|
21
22
|
</code>
|
|
22
23
|
</div>
|
|
@@ -4,15 +4,16 @@ import { State } from './State';
|
|
|
4
4
|
import './States.scss';
|
|
5
5
|
|
|
6
6
|
export interface Props {
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
8
|
states?: any[];
|
|
8
9
|
children: JSX.Element | RenderProps;
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
export const States: React.FC<Props> = ({ states = [{}], children, ...rest }) => {
|
|
12
13
|
return (
|
|
13
|
-
<div className=
|
|
14
|
-
{states.map((props,
|
|
15
|
-
<State key={
|
|
14
|
+
<div className="States">
|
|
15
|
+
{states.map((props, index) => (
|
|
16
|
+
<State key={index} props={props} {...rest}>
|
|
16
17
|
{children}
|
|
17
18
|
</State>
|
|
18
19
|
))}
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Stack } from '../../components/Stack';
|
|
3
|
+
import { omit } from '../omit';
|
|
3
4
|
import { isRenderProps } from './isRenderProps';
|
|
4
5
|
import { stringifyProps } from './stringifyProps';
|
|
5
|
-
import { omit } from '../omit';
|
|
6
6
|
import './StatesProps.scss';
|
|
7
7
|
|
|
8
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
8
9
|
interface Props {
|
|
9
10
|
children: any;
|
|
10
11
|
props: any;
|
|
11
12
|
}
|
|
13
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
12
14
|
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
16
|
const isEmpty = (obj?: any) => Object.entries(obj || {}).length === 0;
|
|
14
17
|
|
|
15
18
|
export const StatesProps: React.FC<Props> = ({ props, children }) => {
|
|
16
19
|
const childrenProps = omit(children.props, ...Object.keys(props || {}));
|
|
17
20
|
|
|
18
21
|
return (
|
|
19
|
-
<Stack className=
|
|
22
|
+
<Stack className="StatesProps" space={2} direction="horizontal">
|
|
20
23
|
<span>{children.type.displayName || children.type.name}</span>
|
|
21
24
|
{!isEmpty(props) && <strong>{stringifyProps(props)}</strong>}
|
|
22
25
|
{!isRenderProps(children) && !isEmpty(childrenProps) && (
|
|
@@ -4,6 +4,7 @@ const truncate = (string: string, maxLength = 25) => {
|
|
|
4
4
|
return `${string.substring(0, maxLength)}${ellipsis ? '...' : ''}`;
|
|
5
5
|
};
|
|
6
6
|
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
8
|
export const stringifyProps = (props: any) => {
|
|
8
9
|
const stringifiedProps = Object.entries(props || {}).reduce((memo: string, [key, value]) => {
|
|
9
10
|
if (key === 'children') return `${memo} children={...}`;
|