@simplybusiness/mobius 3.4.4 → 3.5.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 +27 -4
- package/dist/cjs/components/Accordion/Accordion.js +2 -1
- package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
- package/dist/cjs/components/Accordion/Accordion.test.js +1 -1
- package/dist/cjs/components/Alert/Alert.js +6 -2
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.test.js +1 -1
- package/dist/cjs/components/Box/Box.js +1 -1
- package/dist/cjs/components/Box/Box.test.js +1 -1
- package/dist/cjs/components/Breadcrumbs/BreadcrumbItem.js +2 -1
- package/dist/cjs/components/Breadcrumbs/BreadcrumbItem.js.map +1 -1
- package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js +2 -1
- package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/cjs/components/Breadcrumbs/Breadcrumbs.test.js +1 -1
- package/dist/cjs/components/Button/Button.js +2 -1
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Button/Button.test.js +1 -1
- package/dist/cjs/components/Button/Loading.d.ts +2 -1
- package/dist/cjs/components/Button/Loading.js +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.js +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.test.js +1 -1
- package/dist/cjs/components/Checkbox/CheckboxContext.js +1 -0
- package/dist/cjs/components/Checkbox/CheckboxContext.js.map +1 -1
- package/dist/cjs/components/Checkbox/CheckboxGroup.js +2 -1
- package/dist/cjs/components/Checkbox/CheckboxGroup.js.map +1 -1
- package/dist/cjs/components/Checkbox/CheckboxGroup.test.js +1 -1
- package/dist/cjs/components/Checkbox/CheckboxGroupItem.js +2 -1
- package/dist/cjs/components/Checkbox/CheckboxGroupItem.js.map +1 -1
- package/dist/cjs/components/Checkbox/CheckboxItem.js +2 -1
- package/dist/cjs/components/Checkbox/CheckboxItem.js.map +1 -1
- package/dist/cjs/components/Chopin/Actions/Actions.js +1 -1
- package/dist/cjs/components/Chopin/Actions/Actions.test.js +1 -1
- package/dist/cjs/components/Chopin/Actions/LinkOrButton.d.ts +2 -1
- package/dist/cjs/components/Chopin/Actions/LinkOrButton.js +1 -1
- package/dist/cjs/components/Chopin/Actions/LinkOrButton.test.js +1 -1
- package/dist/cjs/components/Chopin/Footer/Address.js +1 -1
- package/dist/cjs/components/Chopin/Footer/Copyright.js +1 -1
- package/dist/cjs/components/Chopin/Footer/Footer.js +1 -1
- package/dist/cjs/components/Chopin/Footer/Footer.test.js +1 -1
- package/dist/cjs/components/Chopin/Footer/Legal.js +1 -1
- package/dist/cjs/components/Chopin/Header/ContactDetails.js +1 -1
- package/dist/cjs/components/Chopin/Header/Header.js +1 -1
- package/dist/cjs/components/Chopin/Header/Header.test.js +1 -1
- package/dist/cjs/components/Chopin/Header/Logo.js +1 -1
- package/dist/cjs/components/Chopin/PercentageTotalsQuestion/PercentageItem.d.ts +2 -1
- package/dist/cjs/components/Chopin/PercentageTotalsQuestion/PercentageItem.js +2 -1
- package/dist/cjs/components/Chopin/PercentageTotalsQuestion/PercentageItem.js.map +1 -1
- package/dist/cjs/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.d.ts +2 -1
- package/dist/cjs/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.js +2 -1
- package/dist/cjs/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.js.map +1 -1
- package/dist/cjs/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.test.js +1 -1
- package/dist/cjs/components/Chopin/Question/Question.d.ts +1 -1
- package/dist/cjs/components/Chopin/Question/Question.js +2 -1
- package/dist/cjs/components/Chopin/Question/Question.js.map +1 -1
- package/dist/cjs/components/Chopin/Question/Question.test.js +1 -1
- package/dist/cjs/components/Chopin/QuestionGroup/QuestionGroup.js +2 -1
- package/dist/cjs/components/Chopin/QuestionGroup/QuestionGroup.js.map +1 -1
- package/dist/cjs/components/Chopin/QuestionGroup/QuestionGroup.test.js +1 -1
- package/dist/cjs/components/Chopin/QuestionHelp/QuestionHelp.d.ts +1 -1
- package/dist/cjs/components/Chopin/QuestionHelp/QuestionHelp.js +2 -1
- package/dist/cjs/components/Chopin/QuestionHelp/QuestionHelp.js.map +1 -1
- package/dist/cjs/components/Chopin/QuestionHelp/QuestionHelp.test.js +1 -1
- package/dist/cjs/components/Chopin/Section/Section.js +1 -1
- package/dist/cjs/components/Chopin/Section/Section.test.js +1 -1
- package/dist/cjs/components/Chopin/Steps/StepItem.js +6 -2
- package/dist/cjs/components/Chopin/Steps/StepItem.js.map +1 -1
- package/dist/cjs/components/Chopin/Steps/Steps.js +1 -1
- package/dist/cjs/components/Chopin/Steps/Steps.test.js +1 -1
- package/dist/cjs/components/Chopin/Testimonial/Testimonial.js +1 -1
- package/dist/cjs/components/Chopin/Testimonial/Testimonial.test.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/Header/Header.d.ts +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/Header/Header.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.d.ts +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.test.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.js +2 -1
- package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.test.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.d.ts +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.js +2 -1
- package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.d.ts +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.js +2 -1
- package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.js +2 -1
- package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.test.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/types.d.ts +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js.map +1 -1
- package/dist/cjs/components/Container/Container.js +1 -1
- package/dist/cjs/components/Container/Container.test.js +1 -1
- package/dist/cjs/components/DataTable/DataTable.js +1 -1
- package/dist/cjs/components/DataTable/DataTable.test.js +1 -1
- package/dist/cjs/components/DataTable/FlexLayout.js +1 -1
- package/dist/cjs/components/DataTable/SortIcon.d.ts +2 -1
- package/dist/cjs/components/DataTable/SortIcon.js +1 -1
- package/dist/cjs/components/DataTable/TableLayout.js +1 -1
- package/dist/cjs/components/DatePicker/Calendar.d.ts +2 -1
- package/dist/cjs/components/DatePicker/Calendar.js +2 -1
- package/dist/cjs/components/DatePicker/Calendar.js.map +1 -1
- package/dist/cjs/components/DatePicker/CalendarButton.js +2 -1
- package/dist/cjs/components/DatePicker/CalendarButton.js.map +1 -1
- package/dist/cjs/components/DatePicker/CalendarCell.d.ts +2 -1
- package/dist/cjs/components/DatePicker/CalendarCell.js +2 -1
- package/dist/cjs/components/DatePicker/CalendarCell.js.map +1 -1
- package/dist/cjs/components/DatePicker/CalendarGrid.d.ts +2 -1
- package/dist/cjs/components/DatePicker/CalendarGrid.js +2 -1
- package/dist/cjs/components/DatePicker/CalendarGrid.js.map +1 -1
- package/dist/cjs/components/DatePicker/DateField.d.ts +2 -1
- package/dist/cjs/components/DatePicker/DateField.js +2 -1
- package/dist/cjs/components/DatePicker/DateField.js.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.d.ts +2 -1
- package/dist/cjs/components/DatePicker/DatePicker.js +3 -2
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/DatePicker/DateSegment.d.ts +2 -1
- package/dist/cjs/components/DatePicker/DateSegment.js +2 -1
- package/dist/cjs/components/DatePicker/DateSegment.js.map +1 -1
- package/dist/cjs/components/DatePicker/Popover.d.ts +1 -1
- package/dist/cjs/components/DatePicker/Popover.js +3 -2
- package/dist/cjs/components/DatePicker/Popover.js.map +1 -1
- package/dist/cjs/components/Divider/Divider.d.ts +2 -1
- package/dist/cjs/components/Divider/Divider.js +2 -1
- package/dist/cjs/components/Divider/Divider.js.map +1 -1
- package/dist/cjs/components/DropdownMenu/DropdownMenu.js +2 -1
- package/dist/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/cjs/components/DropdownMenu/DropdownMenu.test.js +1 -1
- package/dist/cjs/components/DropdownMenu/Item.js +1 -1
- package/dist/cjs/components/ErrorMessage/ErrorMessage.d.ts +2 -1
- package/dist/cjs/components/ErrorMessage/ErrorMessage.js +1 -1
- package/dist/cjs/components/ErrorMessage/ErrorMessage.test.js +1 -1
- package/dist/cjs/components/Fieldset/Fieldset.js +2 -1
- package/dist/cjs/components/Fieldset/Fieldset.js.map +1 -1
- package/dist/cjs/components/Fieldset/Fieldset.test.js +1 -1
- package/dist/cjs/components/Fieldset/stories/StyledLegend.d.ts +5 -2
- package/dist/cjs/components/Fieldset/stories/StyledLegend.js +9 -7
- package/dist/cjs/components/Fieldset/stories/StyledLegend.js.map +1 -1
- package/dist/cjs/components/Flex/Flex.js +2 -2
- package/dist/cjs/components/Flex/Flex.js.map +1 -1
- package/dist/cjs/components/Flex/Flex.test.js +1 -1
- package/dist/cjs/components/Grid/Grid.js +2 -2
- package/dist/cjs/components/Grid/Grid.js.map +1 -1
- package/dist/cjs/components/Grid/Grid.test.js +1 -1
- package/dist/cjs/components/Grid/Item.js +4 -2
- package/dist/cjs/components/Grid/Item.js.map +1 -1
- package/dist/cjs/components/Icon/Icon.js +1 -1
- package/dist/cjs/components/Icon/Icon.test.js +1 -1
- package/dist/cjs/components/Icon/IconFromName.js +1 -1
- package/dist/cjs/components/Icon/IconFromObject.js +2 -2
- package/dist/cjs/components/Icon/IconFromObject.js.map +1 -1
- package/dist/cjs/components/Image/Image.js +1 -1
- package/dist/cjs/components/Image/Image.test.js +1 -1
- package/dist/cjs/components/Label/Label.js +1 -1
- package/dist/cjs/components/Label/Label.test.js +1 -1
- package/dist/cjs/components/Link/Link.js +2 -1
- package/dist/cjs/components/Link/Link.js.map +1 -1
- package/dist/cjs/components/Link/Link.test.js +1 -1
- package/dist/cjs/components/LinkButton/LinkButton.d.ts +1 -1
- package/dist/cjs/components/LinkButton/LinkButton.js +1 -1
- package/dist/cjs/components/LinkButton/LinkButton.test.js +1 -1
- package/dist/cjs/components/List/List.js +1 -1
- package/dist/cjs/components/List/List.test.js +1 -1
- package/dist/cjs/components/List/ListItem.js +1 -1
- package/dist/cjs/components/LoadingIndicator/LoadingIndicator.js +1 -1
- package/dist/cjs/components/LoadingIndicator/LoadingIndicator.test.js +1 -1
- package/dist/cjs/components/MaskedField/MaskedField.d.ts +11 -0
- package/dist/cjs/components/MaskedField/MaskedField.js +46 -0
- package/dist/cjs/components/MaskedField/MaskedField.js.map +1 -0
- package/dist/cjs/components/MaskedField/MaskedField.test.d.ts +1 -0
- package/dist/cjs/components/MaskedField/MaskedField.test.js +69 -0
- package/dist/cjs/components/MaskedField/MaskedField.test.js.map +1 -0
- package/dist/cjs/components/MaskedField/index.d.ts +1 -0
- package/dist/cjs/components/MaskedField/index.js +18 -0
- package/dist/cjs/components/MaskedField/index.js.map +1 -0
- package/dist/cjs/components/MaskedField/inputFormatters.d.ts +10 -0
- package/dist/cjs/components/MaskedField/inputFormatters.js +39 -0
- package/dist/cjs/components/MaskedField/inputFormatters.js.map +1 -0
- package/dist/cjs/components/Modal/Content.js +1 -1
- package/dist/cjs/components/Modal/Header.js +1 -1
- package/dist/cjs/components/Modal/Modal.d.ts +1 -1
- package/dist/cjs/components/Modal/Modal.js +2 -1
- package/dist/cjs/components/Modal/Modal.js.map +1 -1
- package/dist/cjs/components/Modal/Modal.test.js +1 -1
- package/dist/cjs/components/Modal/index.d.ts +1 -1
- package/dist/cjs/components/NumberField/NumberField.js +2 -1
- package/dist/cjs/components/NumberField/NumberField.js.map +1 -1
- package/dist/cjs/components/NumberField/NumberField.test.js +1 -1
- package/dist/cjs/components/NumberField/NumberFieldButton.d.ts +2 -1
- package/dist/cjs/components/NumberField/NumberFieldButton.js +2 -1
- package/dist/cjs/components/NumberField/NumberFieldButton.js.map +1 -1
- package/dist/cjs/components/Option/Option.js +1 -1
- package/dist/cjs/components/PasswordField/PasswordField.d.ts +1 -1
- package/dist/cjs/components/PasswordField/PasswordField.js +2 -1
- package/dist/cjs/components/PasswordField/PasswordField.js.map +1 -1
- package/dist/cjs/components/PasswordField/PasswordField.test.js +1 -1
- package/dist/cjs/components/PasswordField/ShowHideButton.d.ts +2 -1
- package/dist/cjs/components/PasswordField/ShowHideButton.js +1 -1
- package/dist/cjs/components/Progress/Progress.js +3 -2
- package/dist/cjs/components/Progress/Progress.js.map +1 -1
- package/dist/cjs/components/Progress/Progress.test.js +1 -1
- package/dist/cjs/components/Radio/Radio.js +8 -2
- package/dist/cjs/components/Radio/Radio.js.map +1 -1
- package/dist/cjs/components/Radio/Radio.test.js +1 -1
- package/dist/cjs/components/Radio/RadioButton.js +8 -2
- package/dist/cjs/components/Radio/RadioButton.js.map +1 -1
- package/dist/cjs/components/Radio/RadioButton.test.js +1 -1
- package/dist/cjs/components/Radio/RadioContext.js +1 -0
- package/dist/cjs/components/Radio/RadioContext.js.map +1 -1
- package/dist/cjs/components/Radio/RadioGroup.js +2 -1
- package/dist/cjs/components/Radio/RadioGroup.js.map +1 -1
- package/dist/cjs/components/SVG/SVG.d.ts +1 -0
- package/dist/cjs/components/SVG/SVG.js +1 -1
- package/dist/cjs/components/SVG/SVG.js.map +1 -1
- package/dist/cjs/components/SVG/SVG.test.js +5 -5
- package/dist/cjs/components/SVG/SVG.test.js.map +1 -1
- package/dist/cjs/components/Segment/Segment.d.ts +1 -1
- package/dist/cjs/components/Segment/Segment.js +1 -1
- package/dist/cjs/components/Segment/SegmentGroup.d.ts +1 -1
- package/dist/cjs/components/Segment/SegmentGroup.js +1 -1
- package/dist/cjs/components/Select/Select.d.ts +1 -0
- package/dist/cjs/components/Select/Select.js +7 -2
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/Select/Select.test.js +1 -1
- package/dist/cjs/components/Slider/Slider.d.ts +2 -1
- package/dist/cjs/components/Slider/Slider.js +23 -14
- package/dist/cjs/components/Slider/Slider.js.map +1 -1
- package/dist/cjs/components/Slider/Slider.test.js +1 -1
- package/dist/cjs/components/Slider/Thumb.d.ts +1 -1
- package/dist/cjs/components/Slider/Thumb.js +9 -5
- package/dist/cjs/components/Slider/Thumb.js.map +1 -1
- package/dist/cjs/components/Table/Body.js +1 -1
- package/dist/cjs/components/Table/Cell.js +1 -1
- package/dist/cjs/components/Table/Foot.js +1 -1
- package/dist/cjs/components/Table/Head.js +1 -1
- package/dist/cjs/components/Table/HeaderCell.js +1 -1
- package/dist/cjs/components/Table/Row.js +1 -1
- package/dist/cjs/components/Table/Table.js +1 -1
- package/dist/cjs/components/Table/Table.test.js +1 -1
- package/dist/cjs/components/Text/Text.js +1 -1
- package/dist/cjs/components/Text/Text.test.js +1 -1
- package/dist/cjs/components/TextArea/TextArea.js +7 -2
- package/dist/cjs/components/TextArea/TextArea.js.map +1 -1
- package/dist/cjs/components/TextArea/TextArea.test.js +1 -1
- package/dist/cjs/components/TextAreaInput/TextAreaInput.js +1 -1
- package/dist/cjs/components/TextAreaInput/TextAreaInput.test.js +1 -1
- package/dist/cjs/components/TextField/TextField.js +7 -2
- package/dist/cjs/components/TextField/TextField.js.map +1 -1
- package/dist/cjs/components/TextField/TextField.test.js +1 -1
- package/dist/cjs/components/Title/Title.js +1 -1
- package/dist/cjs/components/Title/Title.test.js +1 -1
- package/dist/cjs/components/VisuallyHidden/index.js +1 -0
- package/dist/cjs/components/VisuallyHidden/index.js.map +1 -1
- package/dist/cjs/components/index.d.ts +6 -5
- package/dist/cjs/components/index.js +6 -5
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/contexts/ThemeContext/ThemeContext.d.ts +1 -1
- package/dist/cjs/contexts/ThemeContext/ThemeContext.js +2 -1
- package/dist/cjs/contexts/ThemeContext/ThemeContext.js.map +1 -1
- package/dist/cjs/contexts/ThemeContext/ThemeContext.test.js +1 -1
- package/dist/cjs/hooks/useBreakpoint/useBreakpoint.js +1 -0
- package/dist/cjs/hooks/useBreakpoint/useBreakpoint.js.map +1 -1
- package/dist/cjs/hooks/useBreakpoint/useBreakpoint.test.js +1 -1
- package/dist/cjs/hooks/useHideColumns/useHideColumns.js +1 -0
- package/dist/cjs/hooks/useHideColumns/useHideColumns.js.map +1 -1
- package/dist/cjs/hooks/useOnClickOutside/useOnClickOutside.js +1 -0
- package/dist/cjs/hooks/useOnClickOutside/useOnClickOutside.js.map +1 -1
- package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js +1 -0
- package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/components/Accordion/Accordion.js +2 -1
- package/dist/esm/components/Accordion/Accordion.js.map +1 -1
- package/dist/esm/components/Accordion/Accordion.test.js +1 -1
- package/dist/esm/components/Alert/Alert.js +6 -2
- package/dist/esm/components/Alert/Alert.js.map +1 -1
- package/dist/esm/components/Alert/Alert.test.js +1 -1
- package/dist/esm/components/Box/Box.js +1 -1
- package/dist/esm/components/Box/Box.test.js +1 -1
- package/dist/esm/components/Breadcrumbs/BreadcrumbItem.js +2 -1
- package/dist/esm/components/Breadcrumbs/BreadcrumbItem.js.map +1 -1
- package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +2 -1
- package/dist/esm/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/esm/components/Breadcrumbs/Breadcrumbs.test.js +1 -1
- package/dist/esm/components/Button/Button.js +2 -1
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/Button/Button.test.js +1 -1
- package/dist/esm/components/Button/Loading.js +1 -1
- package/dist/esm/components/Checkbox/Checkbox.js +1 -1
- package/dist/esm/components/Checkbox/Checkbox.test.js +1 -1
- package/dist/esm/components/Checkbox/CheckboxContext.js +1 -0
- package/dist/esm/components/Checkbox/CheckboxContext.js.map +1 -1
- package/dist/esm/components/Checkbox/CheckboxGroup.js +2 -1
- package/dist/esm/components/Checkbox/CheckboxGroup.js.map +1 -1
- package/dist/esm/components/Checkbox/CheckboxGroup.test.js +1 -1
- package/dist/esm/components/Checkbox/CheckboxGroupItem.js +2 -1
- package/dist/esm/components/Checkbox/CheckboxGroupItem.js.map +1 -1
- package/dist/esm/components/Checkbox/CheckboxItem.js +2 -1
- package/dist/esm/components/Checkbox/CheckboxItem.js.map +1 -1
- package/dist/esm/components/Chopin/Actions/Actions.js +1 -1
- package/dist/esm/components/Chopin/Actions/Actions.test.js +1 -1
- package/dist/esm/components/Chopin/Actions/LinkOrButton.js +1 -1
- package/dist/esm/components/Chopin/Actions/LinkOrButton.test.js +1 -1
- package/dist/esm/components/Chopin/Footer/Address.js +1 -1
- package/dist/esm/components/Chopin/Footer/Copyright.js +1 -1
- package/dist/esm/components/Chopin/Footer/Footer.js +1 -1
- package/dist/esm/components/Chopin/Footer/Footer.test.js +1 -1
- package/dist/esm/components/Chopin/Footer/Legal.js +1 -1
- package/dist/esm/components/Chopin/Header/ContactDetails.js +1 -1
- package/dist/esm/components/Chopin/Header/Header.js +1 -1
- package/dist/esm/components/Chopin/Header/Header.test.js +1 -1
- package/dist/esm/components/Chopin/Header/Logo.js +1 -1
- package/dist/esm/components/Chopin/PercentageTotalsQuestion/PercentageItem.js +2 -1
- package/dist/esm/components/Chopin/PercentageTotalsQuestion/PercentageItem.js.map +1 -1
- package/dist/esm/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.js +2 -1
- package/dist/esm/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.js.map +1 -1
- package/dist/esm/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.test.js +1 -1
- package/dist/esm/components/Chopin/Question/Question.js +2 -1
- package/dist/esm/components/Chopin/Question/Question.js.map +1 -1
- package/dist/esm/components/Chopin/Question/Question.test.js +1 -1
- package/dist/esm/components/Chopin/QuestionGroup/QuestionGroup.js +2 -1
- package/dist/esm/components/Chopin/QuestionGroup/QuestionGroup.js.map +1 -1
- package/dist/esm/components/Chopin/QuestionGroup/QuestionGroup.test.js +1 -1
- package/dist/esm/components/Chopin/QuestionHelp/QuestionHelp.js +2 -1
- package/dist/esm/components/Chopin/QuestionHelp/QuestionHelp.js.map +1 -1
- package/dist/esm/components/Chopin/QuestionHelp/QuestionHelp.test.js +1 -1
- package/dist/esm/components/Chopin/Section/Section.js +1 -1
- package/dist/esm/components/Chopin/Section/Section.test.js +1 -1
- package/dist/esm/components/Chopin/Steps/StepItem.js +6 -2
- package/dist/esm/components/Chopin/Steps/StepItem.js.map +1 -1
- package/dist/esm/components/Chopin/Steps/Steps.js +1 -1
- package/dist/esm/components/Chopin/Steps/Steps.test.js +1 -1
- package/dist/esm/components/Chopin/Testimonial/Testimonial.js +1 -1
- package/dist/esm/components/Chopin/Testimonial/Testimonial.test.js +1 -1
- package/dist/esm/components/Chopin/TradeSelector/Header/Header.js +1 -1
- package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.js +1 -1
- package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.test.js +1 -1
- package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.js +2 -1
- package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.test.js +1 -1
- package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.js +2 -1
- package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js +1 -1
- package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.js +2 -1
- package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js +1 -1
- package/dist/esm/components/Chopin/TradeSelector/TradeSelector.js +2 -1
- package/dist/esm/components/Chopin/TradeSelector/TradeSelector.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/TradeSelector.test.js +1 -1
- package/dist/esm/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js +1 -0
- package/dist/esm/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js.map +1 -1
- package/dist/esm/components/Container/Container.js +1 -1
- package/dist/esm/components/Container/Container.test.js +1 -1
- package/dist/esm/components/DataTable/DataTable.js +1 -1
- package/dist/esm/components/DataTable/DataTable.test.js +1 -1
- package/dist/esm/components/DataTable/FlexLayout.js +1 -1
- package/dist/esm/components/DataTable/SortIcon.js +1 -1
- package/dist/esm/components/DataTable/TableLayout.js +1 -1
- package/dist/esm/components/DatePicker/Calendar.js +2 -1
- package/dist/esm/components/DatePicker/Calendar.js.map +1 -1
- package/dist/esm/components/DatePicker/CalendarButton.js +2 -1
- package/dist/esm/components/DatePicker/CalendarButton.js.map +1 -1
- package/dist/esm/components/DatePicker/CalendarCell.js +2 -1
- package/dist/esm/components/DatePicker/CalendarCell.js.map +1 -1
- package/dist/esm/components/DatePicker/CalendarGrid.js +2 -1
- package/dist/esm/components/DatePicker/CalendarGrid.js.map +1 -1
- package/dist/esm/components/DatePicker/DateField.js +2 -1
- package/dist/esm/components/DatePicker/DateField.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +3 -2
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/DateSegment.js +2 -1
- package/dist/esm/components/DatePicker/DateSegment.js.map +1 -1
- package/dist/esm/components/DatePicker/Popover.js +3 -2
- package/dist/esm/components/DatePicker/Popover.js.map +1 -1
- package/dist/esm/components/Divider/Divider.js +2 -1
- package/dist/esm/components/Divider/Divider.js.map +1 -1
- package/dist/esm/components/DropdownMenu/DropdownMenu.js +2 -1
- package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/esm/components/DropdownMenu/DropdownMenu.test.js +1 -1
- package/dist/esm/components/DropdownMenu/Item.js +1 -1
- package/dist/esm/components/ErrorMessage/ErrorMessage.js +1 -1
- package/dist/esm/components/ErrorMessage/ErrorMessage.test.js +1 -1
- package/dist/esm/components/Fieldset/Fieldset.js +2 -1
- package/dist/esm/components/Fieldset/Fieldset.js.map +1 -1
- package/dist/esm/components/Fieldset/Fieldset.test.js +1 -1
- package/dist/esm/components/Fieldset/stories/StyledLegend.js +6 -6
- package/dist/esm/components/Fieldset/stories/StyledLegend.js.map +1 -1
- package/dist/esm/components/Flex/Flex.js +2 -2
- package/dist/esm/components/Flex/Flex.js.map +1 -1
- package/dist/esm/components/Flex/Flex.test.js +1 -1
- package/dist/esm/components/Grid/Grid.js +2 -2
- package/dist/esm/components/Grid/Grid.js.map +1 -1
- package/dist/esm/components/Grid/Grid.test.js +1 -1
- package/dist/esm/components/Grid/Item.js +4 -2
- package/dist/esm/components/Grid/Item.js.map +1 -1
- package/dist/esm/components/Icon/Icon.js +1 -1
- package/dist/esm/components/Icon/Icon.test.js +1 -1
- package/dist/esm/components/Icon/IconFromName.js +1 -1
- package/dist/esm/components/Icon/IconFromObject.js +2 -2
- package/dist/esm/components/Icon/IconFromObject.js.map +1 -1
- package/dist/esm/components/Image/Image.js +1 -1
- package/dist/esm/components/Image/Image.test.js +1 -1
- package/dist/esm/components/Label/Label.js +1 -1
- package/dist/esm/components/Label/Label.test.js +1 -1
- package/dist/esm/components/Link/Link.js +2 -1
- package/dist/esm/components/Link/Link.js.map +1 -1
- package/dist/esm/components/Link/Link.test.js +1 -1
- package/dist/esm/components/LinkButton/LinkButton.js +1 -1
- package/dist/esm/components/LinkButton/LinkButton.test.js +1 -1
- package/dist/esm/components/List/List.js +1 -1
- package/dist/esm/components/List/List.test.js +1 -1
- package/dist/esm/components/List/ListItem.js +1 -1
- package/dist/esm/components/LoadingIndicator/LoadingIndicator.js +1 -1
- package/dist/esm/components/LoadingIndicator/LoadingIndicator.test.js +1 -1
- package/dist/esm/components/MaskedField/MaskedField.js +40 -0
- package/dist/esm/components/MaskedField/MaskedField.js.map +1 -0
- package/dist/esm/components/MaskedField/MaskedField.test.js +64 -0
- package/dist/esm/components/MaskedField/MaskedField.test.js.map +1 -0
- package/dist/esm/components/MaskedField/index.js +2 -0
- package/dist/esm/components/MaskedField/index.js.map +1 -0
- package/dist/esm/components/MaskedField/inputFormatters.js +36 -0
- package/dist/esm/components/MaskedField/inputFormatters.js.map +1 -0
- package/dist/esm/components/Modal/Content.js +1 -1
- package/dist/esm/components/Modal/Header.js +1 -1
- package/dist/esm/components/Modal/Modal.js +2 -1
- package/dist/esm/components/Modal/Modal.js.map +1 -1
- package/dist/esm/components/Modal/Modal.test.js +1 -1
- package/dist/esm/components/NumberField/NumberField.js +2 -1
- package/dist/esm/components/NumberField/NumberField.js.map +1 -1
- package/dist/esm/components/NumberField/NumberField.test.js +1 -1
- package/dist/esm/components/NumberField/NumberFieldButton.js +2 -1
- package/dist/esm/components/NumberField/NumberFieldButton.js.map +1 -1
- package/dist/esm/components/Option/Option.js +1 -1
- package/dist/esm/components/PasswordField/PasswordField.js +2 -1
- package/dist/esm/components/PasswordField/PasswordField.js.map +1 -1
- package/dist/esm/components/PasswordField/PasswordField.test.js +1 -1
- package/dist/esm/components/PasswordField/ShowHideButton.js +1 -1
- package/dist/esm/components/Progress/Progress.js +3 -2
- package/dist/esm/components/Progress/Progress.js.map +1 -1
- package/dist/esm/components/Progress/Progress.test.js +1 -1
- package/dist/esm/components/Radio/Radio.js +8 -2
- package/dist/esm/components/Radio/Radio.js.map +1 -1
- package/dist/esm/components/Radio/Radio.test.js +1 -1
- package/dist/esm/components/Radio/RadioButton.js +8 -2
- package/dist/esm/components/Radio/RadioButton.js.map +1 -1
- package/dist/esm/components/Radio/RadioButton.test.js +1 -1
- package/dist/esm/components/Radio/RadioContext.js +1 -0
- package/dist/esm/components/Radio/RadioContext.js.map +1 -1
- package/dist/esm/components/Radio/RadioGroup.js +2 -1
- package/dist/esm/components/Radio/RadioGroup.js.map +1 -1
- package/dist/esm/components/SVG/SVG.js +1 -1
- package/dist/esm/components/SVG/SVG.js.map +1 -1
- package/dist/esm/components/SVG/SVG.test.js +5 -5
- package/dist/esm/components/SVG/SVG.test.js.map +1 -1
- package/dist/esm/components/Segment/Segment.js +1 -1
- package/dist/esm/components/Segment/SegmentGroup.js +1 -1
- package/dist/esm/components/Select/Select.js +7 -2
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Select/Select.test.js +1 -1
- package/dist/esm/components/Slider/Slider.js +23 -14
- package/dist/esm/components/Slider/Slider.js.map +1 -1
- package/dist/esm/components/Slider/Slider.test.js +1 -1
- package/dist/esm/components/Slider/Thumb.js +9 -5
- package/dist/esm/components/Slider/Thumb.js.map +1 -1
- package/dist/esm/components/Table/Body.js +1 -1
- package/dist/esm/components/Table/Cell.js +1 -1
- package/dist/esm/components/Table/Foot.js +1 -1
- package/dist/esm/components/Table/Head.js +1 -1
- package/dist/esm/components/Table/HeaderCell.js +1 -1
- package/dist/esm/components/Table/Row.js +1 -1
- package/dist/esm/components/Table/Table.js +1 -1
- package/dist/esm/components/Table/Table.test.js +1 -1
- package/dist/esm/components/Text/Text.js +1 -1
- package/dist/esm/components/Text/Text.test.js +1 -1
- package/dist/esm/components/TextArea/TextArea.js +7 -2
- package/dist/esm/components/TextArea/TextArea.js.map +1 -1
- package/dist/esm/components/TextArea/TextArea.test.js +1 -1
- package/dist/esm/components/TextAreaInput/TextAreaInput.js +1 -1
- package/dist/esm/components/TextAreaInput/TextAreaInput.test.js +1 -1
- package/dist/esm/components/TextField/TextField.js +7 -2
- package/dist/esm/components/TextField/TextField.js.map +1 -1
- package/dist/esm/components/TextField/TextField.test.js +1 -1
- package/dist/esm/components/Title/Title.js +1 -1
- package/dist/esm/components/Title/Title.test.js +1 -1
- package/dist/esm/components/VisuallyHidden/index.js +1 -0
- package/dist/esm/components/VisuallyHidden/index.js.map +1 -1
- package/dist/esm/components/index.js +6 -5
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/contexts/ThemeContext/ThemeContext.js +2 -1
- package/dist/esm/contexts/ThemeContext/ThemeContext.js.map +1 -1
- package/dist/esm/contexts/ThemeContext/ThemeContext.test.js +1 -1
- package/dist/esm/hooks/useBreakpoint/useBreakpoint.js +1 -0
- package/dist/esm/hooks/useBreakpoint/useBreakpoint.js.map +1 -1
- package/dist/esm/hooks/useBreakpoint/useBreakpoint.test.js +1 -1
- package/dist/esm/hooks/useHideColumns/useHideColumns.js +1 -0
- package/dist/esm/hooks/useHideColumns/useHideColumns.js.map +1 -1
- package/dist/esm/hooks/useOnClickOutside/useOnClickOutside.js +1 -0
- package/dist/esm/hooks/useOnClickOutside/useOnClickOutside.js.map +1 -1
- package/dist/esm/hooks/useWindowEvent/useWindowEvent.js +1 -0
- package/dist/esm/hooks/useWindowEvent/useWindowEvent.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/mobius.d.ts +25 -13
- package/package.json +5 -5
- package/src/components/Accordion/Accordion.tsx +2 -0
- package/src/components/Alert/Alert.tsx +6 -1
- package/src/components/Breadcrumbs/BreadcrumbItem.tsx +2 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +2 -0
- package/src/components/Button/Button.tsx +2 -0
- package/src/components/Checkbox/CheckboxContext.tsx +2 -0
- package/src/components/Checkbox/CheckboxGroup.tsx +2 -0
- package/src/components/Checkbox/CheckboxGroupItem.tsx +2 -0
- package/src/components/Checkbox/CheckboxItem.tsx +2 -0
- package/src/components/Chopin/PercentageTotalsQuestion/PercentageItem.tsx +2 -0
- package/src/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.tsx +2 -0
- package/src/components/Chopin/Question/Question.tsx +2 -0
- package/src/components/Chopin/QuestionGroup/QuestionGroup.tsx +2 -0
- package/src/components/Chopin/QuestionHelp/QuestionHelp.tsx +2 -0
- package/src/components/Chopin/Steps/StepItem.tsx +6 -1
- package/src/components/Chopin/TradeSelector/Listing/ListingItem.tsx +2 -0
- package/src/components/Chopin/TradeSelector/SearchResults/SearchResults.tsx +2 -0
- package/src/components/Chopin/TradeSelector/TradeInput/TradeInput.tsx +2 -0
- package/src/components/Chopin/TradeSelector/TradeSelector.tsx +2 -0
- package/src/components/Chopin/TradeSelector/types.ts +1 -0
- package/src/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.ts +2 -0
- package/src/components/DatePicker/Calendar.tsx +2 -0
- package/src/components/DatePicker/CalendarButton.tsx +2 -0
- package/src/components/DatePicker/CalendarCell.tsx +2 -0
- package/src/components/DatePicker/CalendarGrid.tsx +2 -0
- package/src/components/DatePicker/DateField.tsx +2 -0
- package/src/components/DatePicker/DatePicker.tsx +3 -1
- package/src/components/DatePicker/DateSegment.tsx +2 -0
- package/src/components/DatePicker/Popover.tsx +3 -1
- package/src/components/Divider/Divider.tsx +2 -0
- package/src/components/DropdownMenu/DropdownMenu.tsx +2 -0
- package/src/components/Fieldset/Fieldset.tsx +2 -0
- package/src/components/Fieldset/stories/StyledLegend.tsx +6 -11
- package/src/components/Flex/Flex.tsx +1 -1
- package/src/components/Grid/Grid.tsx +3 -4
- package/src/components/Grid/Item.tsx +6 -4
- package/src/components/Icon/IconFromObject.tsx +1 -1
- package/src/components/Link/Link.tsx +2 -0
- package/src/components/MaskedField/MaskedField.story.mdx +58 -0
- package/src/components/MaskedField/MaskedField.test.tsx +91 -0
- package/src/components/MaskedField/MaskedField.tsx +58 -0
- package/src/components/MaskedField/index.tsx +1 -0
- package/src/components/MaskedField/inputFormatters.ts +42 -0
- package/src/components/Modal/Modal.tsx +2 -0
- package/src/components/NumberField/NumberField.tsx +2 -0
- package/src/components/NumberField/NumberFieldButton.tsx +2 -0
- package/src/components/NumberField/__snapshots__/NumberField.test.tsx.snap +4 -2
- package/src/components/PasswordField/PasswordField.tsx +2 -0
- package/src/components/Progress/Progress.tsx +3 -1
- package/src/components/Radio/Radio.tsx +10 -3
- package/src/components/Radio/RadioButton.tsx +11 -4
- package/src/components/Radio/RadioContext.tsx +2 -0
- package/src/components/Radio/RadioGroup.tsx +2 -0
- package/src/components/SVG/SVG.test.tsx +3 -4
- package/src/components/SVG/SVG.tsx +1 -0
- package/src/components/Select/Select.tsx +10 -3
- package/src/components/Slider/Slider.tsx +33 -22
- package/src/components/Slider/Thumb.tsx +12 -6
- package/src/components/TextArea/TextArea.tsx +9 -3
- package/src/components/TextField/TextField.tsx +9 -3
- package/src/components/VisuallyHidden/index.tsx +2 -0
- package/src/components/index.tsx +6 -5
- package/src/contexts/ThemeContext/ThemeContext.tsx +2 -0
- package/src/hooks/useBreakpoint/useBreakpoint.tsx +2 -0
- package/src/hooks/useHideColumns/useHideColumns.ts +2 -0
- package/src/hooks/useOnClickOutside/useOnClickOutside.ts +2 -0
- package/src/hooks/useWindowEvent/useWindowEvent.tsx +2 -0
- package/src/index.tsx +2 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { render } from "@testing-library/react";
|
|
2
|
+
import userEvent from "@testing-library/user-event";
|
|
3
|
+
import { MaskedField } from ".";
|
|
4
|
+
|
|
5
|
+
describe("MaskedField", () => {
|
|
6
|
+
const LABEL = "MaskedField";
|
|
7
|
+
|
|
8
|
+
describe("given Social Security Number (SSN) pattern", () => {
|
|
9
|
+
it("should render user input to match the pattern", async () => {
|
|
10
|
+
const { getByLabelText } = render(
|
|
11
|
+
<MaskedField label={LABEL} pattern="ssn" />,
|
|
12
|
+
);
|
|
13
|
+
const inputField = getByLabelText(LABEL);
|
|
14
|
+
const inputValue = "1234567890";
|
|
15
|
+
const expectedUnformatted = "123456789";
|
|
16
|
+
const expectedFormatted = "123-45-6789";
|
|
17
|
+
|
|
18
|
+
await userEvent.tab();
|
|
19
|
+
await userEvent.type(inputField, inputValue);
|
|
20
|
+
|
|
21
|
+
expect(inputField).toHaveValue(expectedUnformatted);
|
|
22
|
+
|
|
23
|
+
await userEvent.tab();
|
|
24
|
+
|
|
25
|
+
expect(inputField).toHaveValue(expectedFormatted);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
describe("given a numerical and non-numerical input", () => {
|
|
29
|
+
it("should only render numerical input", async () => {
|
|
30
|
+
const { getByLabelText } = render(
|
|
31
|
+
<MaskedField label={LABEL} pattern="ssn" />,
|
|
32
|
+
);
|
|
33
|
+
const inputField = getByLabelText(LABEL);
|
|
34
|
+
const inputValue = "abc1234567890efg";
|
|
35
|
+
const expectedUnformatted = "123456789";
|
|
36
|
+
const expectedFormatted = "123-45-6789";
|
|
37
|
+
|
|
38
|
+
await userEvent.tab();
|
|
39
|
+
await userEvent.type(inputField, inputValue);
|
|
40
|
+
|
|
41
|
+
expect(inputField).toHaveValue(expectedUnformatted);
|
|
42
|
+
|
|
43
|
+
await userEvent.tab();
|
|
44
|
+
|
|
45
|
+
expect(inputField).toHaveValue(expectedFormatted);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
describe("given Federal Employer Identification Number (FEIN) pattern", () => {
|
|
51
|
+
it("should render user input to match the pattern", async () => {
|
|
52
|
+
const { getByLabelText } = render(
|
|
53
|
+
<MaskedField label={LABEL} pattern="fein" />,
|
|
54
|
+
);
|
|
55
|
+
const inputField = getByLabelText(LABEL);
|
|
56
|
+
const inputValue = "1234567890";
|
|
57
|
+
const expectedUnformatted = "123456789";
|
|
58
|
+
const expectedFormatted = "12-3456789";
|
|
59
|
+
|
|
60
|
+
await userEvent.tab();
|
|
61
|
+
await userEvent.type(inputField, inputValue);
|
|
62
|
+
|
|
63
|
+
expect(inputField).toHaveValue(expectedUnformatted);
|
|
64
|
+
|
|
65
|
+
await userEvent.tab();
|
|
66
|
+
|
|
67
|
+
expect(inputField).toHaveValue(expectedFormatted);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
describe("given a numerical and non-numerical input", () => {
|
|
71
|
+
it("should only render numerical input", async () => {
|
|
72
|
+
const { getByLabelText } = render(
|
|
73
|
+
<MaskedField label={LABEL} pattern="fein" />,
|
|
74
|
+
);
|
|
75
|
+
const inputField = getByLabelText(LABEL);
|
|
76
|
+
const inputValue = "abc1234567890efg";
|
|
77
|
+
const expectedUnformatted = "123456789";
|
|
78
|
+
const expectedFormatted = "12-3456789";
|
|
79
|
+
|
|
80
|
+
await userEvent.tab();
|
|
81
|
+
await userEvent.type(inputField, inputValue);
|
|
82
|
+
|
|
83
|
+
expect(inputField).toHaveValue(expectedUnformatted);
|
|
84
|
+
|
|
85
|
+
await userEvent.tab();
|
|
86
|
+
|
|
87
|
+
expect(inputField).toHaveValue(expectedFormatted);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
});
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { Ref, forwardRef, useState, useEffect } from "react";
|
|
4
|
+
import { DOMProps } from "@react-types/shared";
|
|
5
|
+
import clsx from "clsx";
|
|
6
|
+
import { ForwardedRefComponent } from "../../types/components";
|
|
7
|
+
import { TextField, TextFieldElementType, TextFieldProps } from "../TextField";
|
|
8
|
+
import { INPUT_FORMATTERS } from "./inputFormatters";
|
|
9
|
+
|
|
10
|
+
export type MaskedFieldElementType = HTMLInputElement;
|
|
11
|
+
|
|
12
|
+
export interface MaskedFieldProps extends TextFieldProps, DOMProps {
|
|
13
|
+
pattern: "ssn" | "fein";
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export type MaskedFieldRef = Ref<MaskedFieldElementType>;
|
|
17
|
+
|
|
18
|
+
const MaskedField: ForwardedRefComponent<
|
|
19
|
+
MaskedFieldProps,
|
|
20
|
+
TextFieldElementType
|
|
21
|
+
> = forwardRef((props: MaskedFieldProps, ref: MaskedFieldRef) => {
|
|
22
|
+
const { pattern, ...otherProps } = props;
|
|
23
|
+
const [isEditable, setIsEditable] = useState<boolean>(false);
|
|
24
|
+
const [unformatted, setUnformatted] = useState<string>("");
|
|
25
|
+
const [formatted, setFormatted] = useState<string>("");
|
|
26
|
+
const inputValue = isEditable ? unformatted : formatted;
|
|
27
|
+
|
|
28
|
+
const handleChange = (value: string) => {
|
|
29
|
+
const trimmedValue = INPUT_FORMATTERS[pattern].clean(value);
|
|
30
|
+
setUnformatted(trimmedValue);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const toggleEditable = () => {
|
|
34
|
+
setIsEditable(!isEditable);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
const formattedValue = INPUT_FORMATTERS[pattern].transform(unformatted);
|
|
39
|
+
setFormatted(formattedValue);
|
|
40
|
+
}, [pattern, unformatted]);
|
|
41
|
+
|
|
42
|
+
const classes = clsx("mobius", "mobius/MaskedField", otherProps.className);
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<TextField
|
|
46
|
+
onChange={handleChange}
|
|
47
|
+
value={inputValue}
|
|
48
|
+
className={classes}
|
|
49
|
+
ref={ref}
|
|
50
|
+
onFocus={toggleEditable}
|
|
51
|
+
onBlur={toggleEditable}
|
|
52
|
+
{...otherProps}
|
|
53
|
+
/>
|
|
54
|
+
);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
MaskedField.displayName = "MaskedField";
|
|
58
|
+
export { MaskedField };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./MaskedField";
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// SSN - Social Security Number. Format: XXX-XX-XXXX
|
|
2
|
+
// FEIN - Federal Employer Identification Number. Format: XX-XXXXXXX
|
|
3
|
+
|
|
4
|
+
const SSN_LENGTH = 9;
|
|
5
|
+
const FEIN_LENGTH = 9;
|
|
6
|
+
|
|
7
|
+
export const INPUT_FORMATTERS = {
|
|
8
|
+
ssn: {
|
|
9
|
+
clean: (value: string) => value.replace(/\D/g, "").slice(0, SSN_LENGTH),
|
|
10
|
+
transform: (value: string) => {
|
|
11
|
+
const startLength = 3;
|
|
12
|
+
const middleLength = 2;
|
|
13
|
+
const start = value.slice(0, 3);
|
|
14
|
+
const middle = value.slice(3, 5);
|
|
15
|
+
const end = value.slice(5, SSN_LENGTH);
|
|
16
|
+
|
|
17
|
+
if (value.length > startLength + middleLength) {
|
|
18
|
+
return `${start}-${middle}-${end}`;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (value.length > startLength) {
|
|
22
|
+
return `${start}-${middle}`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return start;
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
fein: {
|
|
29
|
+
clean: (value: string) => value.replace(/\D/g, "").slice(0, FEIN_LENGTH),
|
|
30
|
+
transform: (value: string) => {
|
|
31
|
+
const startLength = 2;
|
|
32
|
+
const start = value.slice(0, 2);
|
|
33
|
+
const end = value.slice(2, FEIN_LENGTH);
|
|
34
|
+
|
|
35
|
+
if (value.length > startLength) {
|
|
36
|
+
return `${start}-${end}`;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return start;
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
};
|
|
@@ -37,9 +37,10 @@ exports[`NumberField should match snapshot 1`] = `
|
|
|
37
37
|
>
|
|
38
38
|
<svg
|
|
39
39
|
aria-hidden="true"
|
|
40
|
-
class="mobius mobius/Icon
|
|
40
|
+
class="mobius mobius/Icon"
|
|
41
41
|
focusable="false"
|
|
42
42
|
role="img"
|
|
43
|
+
style="height: 1em; vertical-align: -0.2em; transform-origin: center;"
|
|
43
44
|
viewBox="0 0 24 24"
|
|
44
45
|
xmlns="http://www.w3.org/2000/svg"
|
|
45
46
|
>
|
|
@@ -58,9 +59,10 @@ exports[`NumberField should match snapshot 1`] = `
|
|
|
58
59
|
>
|
|
59
60
|
<svg
|
|
60
61
|
aria-hidden="true"
|
|
61
|
-
class="mobius mobius/Icon
|
|
62
|
+
class="mobius mobius/Icon"
|
|
62
63
|
focusable="false"
|
|
63
64
|
role="img"
|
|
65
|
+
style="height: 1em; vertical-align: -0.2em; transform-origin: center;"
|
|
64
66
|
viewBox="0 0 16 16"
|
|
65
67
|
xmlns="http://www.w3.org/2000/svg"
|
|
66
68
|
>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
/* eslint no-console: "off" */
|
|
2
4
|
import { Ref, forwardRef, RefAttributes, ReactNode } from "react";
|
|
3
5
|
import { DOMProps } from "@react-types/shared";
|
|
@@ -118,7 +120,7 @@ const Progress: ForwardedRefComponent<ProgressProps, ProgressElementType> =
|
|
|
118
120
|
</Label>
|
|
119
121
|
)}
|
|
120
122
|
<div className="mobius/ProgressTrack">
|
|
121
|
-
<div className="mobius/ProgressBar"
|
|
123
|
+
<div className="mobius/ProgressBar" style={{ width: barWidth }} />
|
|
122
124
|
</div>
|
|
123
125
|
{showValueLabel && (
|
|
124
126
|
<Label data-testid="value-label">
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import { forwardRef, ReactNode, useContext, Ref, RefAttributes } from "react";
|
|
2
4
|
import { useRadio } from "@react-aria/radio";
|
|
3
5
|
import { AriaRadioProps } from "@react-types/radio";
|
|
@@ -5,6 +7,7 @@ import { useFocusRing } from "@react-aria/focus";
|
|
|
5
7
|
import { useHover, HoverProps } from "@react-aria/interactions";
|
|
6
8
|
import { DOMProps } from "@react-types/shared";
|
|
7
9
|
import clsx from "clsx";
|
|
10
|
+
import styled from '@emotion/styled';
|
|
8
11
|
import { RadioContext } from "./RadioContext";
|
|
9
12
|
import { ForwardedRefComponent } from "../../types/components";
|
|
10
13
|
import { ErrorMessage } from "../ErrorMessage";
|
|
@@ -25,6 +28,11 @@ export interface RadioProps
|
|
|
25
28
|
|
|
26
29
|
export type RadioRef = Ref<RadioElementType>;
|
|
27
30
|
|
|
31
|
+
const StyledLabel = styled(Label)`
|
|
32
|
+
display: flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
`;
|
|
35
|
+
|
|
28
36
|
const Radio: ForwardedRefComponent<RadioProps, RadioElementType> = forwardRef(
|
|
29
37
|
(props: RadioProps, ref: RadioRef) => {
|
|
30
38
|
const radioContext = useContext(RadioContext);
|
|
@@ -83,8 +91,7 @@ const Radio: ForwardedRefComponent<RadioProps, RadioElementType> = forwardRef(
|
|
|
83
91
|
|
|
84
92
|
return (
|
|
85
93
|
<>
|
|
86
|
-
<
|
|
87
|
-
css={{ display: "flex", alignItems: "center" }}
|
|
94
|
+
<StyledLabel
|
|
88
95
|
{...hoverProps}
|
|
89
96
|
className={containerClasses}
|
|
90
97
|
>
|
|
@@ -105,7 +112,7 @@ const Radio: ForwardedRefComponent<RadioProps, RadioElementType> = forwardRef(
|
|
|
105
112
|
) : (
|
|
106
113
|
<div className="mobius/RadioContent">{label || children}</div>
|
|
107
114
|
)}
|
|
108
|
-
</
|
|
115
|
+
</StyledLabel>
|
|
109
116
|
{errorMessage && <ErrorMessage errorMessage={errorMessage} />}
|
|
110
117
|
</>
|
|
111
118
|
);
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import {
|
|
2
4
|
forwardRef,
|
|
3
5
|
ReactNode,
|
|
@@ -12,6 +14,7 @@ import { useFocusRing } from "@react-aria/focus";
|
|
|
12
14
|
import { useHover, HoverProps } from "@react-aria/interactions";
|
|
13
15
|
import { DOMProps } from "@react-types/shared";
|
|
14
16
|
import clsx from "clsx";
|
|
17
|
+
import styled from '@emotion/styled';
|
|
15
18
|
import { RadioContext } from "./RadioContext";
|
|
16
19
|
import { ForwardedRefComponent } from "../../types/components";
|
|
17
20
|
|
|
@@ -29,6 +32,11 @@ export interface RadioButtonProps
|
|
|
29
32
|
|
|
30
33
|
export type RadioButtonRef = Ref<RadioButtonElementType>;
|
|
31
34
|
|
|
35
|
+
const StyledLabel = styled.label`
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
`;
|
|
39
|
+
|
|
32
40
|
const RadioButton: ForwardedRefComponent<
|
|
33
41
|
RadioButtonProps,
|
|
34
42
|
RadioButtonElementType
|
|
@@ -89,7 +97,7 @@ const RadioButton: ForwardedRefComponent<
|
|
|
89
97
|
|
|
90
98
|
if (children) {
|
|
91
99
|
// Determine type of children (label or icon) and map to relevant HTML span
|
|
92
|
-
const childMap = { label };
|
|
100
|
+
const childMap: any = { label };
|
|
93
101
|
|
|
94
102
|
Children.map(children, child => {
|
|
95
103
|
const childType =
|
|
@@ -110,14 +118,13 @@ const RadioButton: ForwardedRefComponent<
|
|
|
110
118
|
}
|
|
111
119
|
|
|
112
120
|
return (
|
|
113
|
-
<
|
|
114
|
-
css={{ display: "flex", alignItems: "center" }}
|
|
121
|
+
<StyledLabel
|
|
115
122
|
className={containerClasses}
|
|
116
123
|
{...hoverProps}
|
|
117
124
|
>
|
|
118
125
|
{nativeInput}
|
|
119
126
|
{content}
|
|
120
|
-
</
|
|
127
|
+
</StyledLabel>
|
|
121
128
|
);
|
|
122
129
|
});
|
|
123
130
|
|
|
@@ -11,13 +11,13 @@ const SvgImage = (
|
|
|
11
11
|
|
|
12
12
|
describe("Test for SVG", () => {
|
|
13
13
|
it("should render without errors", () => {
|
|
14
|
-
render(<SVG
|
|
14
|
+
render(<SVG>{SvgImage}</SVG>);
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
describe("uses correct class names", () => {
|
|
18
18
|
it("uses Mobius class", () => {
|
|
19
19
|
render(
|
|
20
|
-
<SVG
|
|
20
|
+
<SVG data-testid="test">
|
|
21
21
|
{SvgImage}
|
|
22
22
|
</SVG>,
|
|
23
23
|
);
|
|
@@ -26,7 +26,7 @@ describe("Test for SVG", () => {
|
|
|
26
26
|
|
|
27
27
|
it("uses base Mobius class", () => {
|
|
28
28
|
render(
|
|
29
|
-
<SVG
|
|
29
|
+
<SVG data-testid="test">
|
|
30
30
|
{SvgImage}
|
|
31
31
|
</SVG>,
|
|
32
32
|
);
|
|
@@ -36,7 +36,6 @@ describe("Test for SVG", () => {
|
|
|
36
36
|
it("includes custom class name", () => {
|
|
37
37
|
render(
|
|
38
38
|
<SVG
|
|
39
|
-
css={{ fill: "primary", width: "size-100" }}
|
|
40
39
|
data-testid="test"
|
|
41
40
|
className="my-class"
|
|
42
41
|
>
|
|
@@ -6,6 +6,7 @@ import { ForwardedRefComponent } from "../../types/components";
|
|
|
6
6
|
export interface SVGProps extends DOMProps, RefAttributes<SVGSVGElement> {
|
|
7
7
|
children: React.ReactElement<React.SVGProps<SVGSVGElement>>;
|
|
8
8
|
className?: string;
|
|
9
|
+
style?: React.CSSProperties;
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
export type SVGRef = Ref<SVGSVGElement>;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import {
|
|
2
4
|
forwardRef,
|
|
3
5
|
ReactElement,
|
|
@@ -11,6 +13,7 @@ import clsx from "clsx";
|
|
|
11
13
|
import { useFocusRing } from "@react-aria/focus";
|
|
12
14
|
import { HoverProps, useHover } from "@react-aria/interactions";
|
|
13
15
|
import { useSlotId } from "@react-aria/utils";
|
|
16
|
+
import styled from '@emotion/styled';
|
|
14
17
|
import { ForwardedRefComponent } from "../../types/components";
|
|
15
18
|
import { Flex } from "../Flex";
|
|
16
19
|
import { ErrorMessage } from "../ErrorMessage";
|
|
@@ -32,10 +35,15 @@ export interface SelectProps
|
|
|
32
35
|
className?: string;
|
|
33
36
|
errorMessage?: string;
|
|
34
37
|
children?: ReactElement<OptionProps>[] | ReactElement<OptionProps>;
|
|
38
|
+
"aria-describedby"?: string;
|
|
35
39
|
}
|
|
36
40
|
|
|
37
41
|
export type SelectRef = Ref<SelectElementType>;
|
|
38
42
|
|
|
43
|
+
const ColumnFlex = styled(Flex)`
|
|
44
|
+
flex-direction: column;
|
|
45
|
+
`;
|
|
46
|
+
|
|
39
47
|
const Select: ForwardedRefComponent<SelectProps, SelectElementType> =
|
|
40
48
|
forwardRef((props: SelectProps, ref: SelectRef) => {
|
|
41
49
|
const {
|
|
@@ -94,9 +102,8 @@ const Select: ForwardedRefComponent<SelectProps, SelectElementType> =
|
|
|
94
102
|
]);
|
|
95
103
|
|
|
96
104
|
return (
|
|
97
|
-
<
|
|
105
|
+
<ColumnFlex
|
|
98
106
|
className="mobius mobius/SelectOuter"
|
|
99
|
-
css={{ flexDirection: "column" }}
|
|
100
107
|
>
|
|
101
108
|
{label && (
|
|
102
109
|
<Label {...labelProps} className={labelClasses}>
|
|
@@ -124,7 +131,7 @@ const Select: ForwardedRefComponent<SelectProps, SelectElementType> =
|
|
|
124
131
|
<span className={iconClasses} />
|
|
125
132
|
</div>
|
|
126
133
|
<ErrorMessage id={errorMessageId} errorMessage={errorMessage} />
|
|
127
|
-
</
|
|
134
|
+
</ColumnFlex>
|
|
128
135
|
);
|
|
129
136
|
});
|
|
130
137
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import { useRef } from "react";
|
|
2
4
|
import { useSlider } from "@react-aria/slider";
|
|
3
5
|
import { SliderProps as SpectrumSliderProps } from "@react-types/slider";
|
|
@@ -5,6 +7,7 @@ import { useSliderState } from "@react-stately/slider";
|
|
|
5
7
|
import { useNumberFormatter } from "@react-aria/i18n";
|
|
6
8
|
import clsx from "clsx";
|
|
7
9
|
import { DOMProps } from "@react-types/shared";
|
|
10
|
+
import styled from '@emotion/styled';
|
|
8
11
|
import { SliderThumb } from "./Thumb";
|
|
9
12
|
import { Label } from "../Label";
|
|
10
13
|
import { useUnwrappedHandler, useWrappedValue } from "./helpers";
|
|
@@ -19,6 +22,29 @@ export interface SliderProps extends SpectrumSliderProps<number>, DOMProps {
|
|
|
19
22
|
formatOptions?: Intl.NumberFormatOptions;
|
|
20
23
|
}
|
|
21
24
|
|
|
25
|
+
const SliderWrapper = styled.div`
|
|
26
|
+
position: relative;
|
|
27
|
+
display: flex;
|
|
28
|
+
flex-direction: column;
|
|
29
|
+
align-items: center;
|
|
30
|
+
touch-action: none;
|
|
31
|
+
`;
|
|
32
|
+
|
|
33
|
+
const SliderLabelWrapper = styled.div`
|
|
34
|
+
display: flex;
|
|
35
|
+
align-self: stretch;
|
|
36
|
+
`;
|
|
37
|
+
|
|
38
|
+
const SliderTrackWrapper = styled.div`
|
|
39
|
+
position: relative;
|
|
40
|
+
width: 100%;
|
|
41
|
+
`;
|
|
42
|
+
|
|
43
|
+
const SliderTrack = styled.div`
|
|
44
|
+
position: absolute;
|
|
45
|
+
width: 100%;
|
|
46
|
+
`;
|
|
47
|
+
|
|
22
48
|
export function Slider(props: SliderProps) {
|
|
23
49
|
const {
|
|
24
50
|
className,
|
|
@@ -70,19 +96,12 @@ export function Slider(props: SliderProps) {
|
|
|
70
96
|
});
|
|
71
97
|
|
|
72
98
|
return (
|
|
73
|
-
<
|
|
99
|
+
<SliderWrapper
|
|
74
100
|
{...groupProps}
|
|
75
|
-
css={{
|
|
76
|
-
position: "relative",
|
|
77
|
-
display: "flex",
|
|
78
|
-
flexDirection: "column",
|
|
79
|
-
alignItems: "center",
|
|
80
|
-
touchAction: "none",
|
|
81
|
-
}}
|
|
82
101
|
className={classes}
|
|
83
102
|
>
|
|
84
103
|
{/* Create a flex container for the label and output element. */}
|
|
85
|
-
<
|
|
104
|
+
<SliderLabelWrapper>
|
|
86
105
|
{label && <Label {...labelProps}>{label}</Label>}
|
|
87
106
|
{label && (
|
|
88
107
|
<output
|
|
@@ -92,26 +111,18 @@ export function Slider(props: SliderProps) {
|
|
|
92
111
|
{state.getThumbValueLabel(0)}
|
|
93
112
|
</output>
|
|
94
113
|
)}
|
|
95
|
-
</
|
|
114
|
+
</SliderLabelWrapper>
|
|
96
115
|
{/* The track element holds the visible track line and the thumb. */}
|
|
97
|
-
<
|
|
116
|
+
<SliderTrackWrapper
|
|
98
117
|
{...trackProps}
|
|
99
118
|
ref={trackRef}
|
|
100
119
|
className="mobius mobius/SliderTrackWrapper"
|
|
101
|
-
css={{
|
|
102
|
-
position: "relative",
|
|
103
|
-
width: "100%",
|
|
104
|
-
}}
|
|
105
120
|
>
|
|
106
|
-
<
|
|
121
|
+
<SliderTrack
|
|
107
122
|
className="mobius/SliderTrack"
|
|
108
|
-
css={{
|
|
109
|
-
position: "absolute",
|
|
110
|
-
width: "100%",
|
|
111
|
-
}}
|
|
112
123
|
/>
|
|
113
124
|
<SliderThumb index={0} state={state} trackRef={trackRef} />
|
|
114
|
-
</
|
|
125
|
+
</SliderTrackWrapper>
|
|
115
126
|
<div className="mobius/SliderLabels">
|
|
116
127
|
<div className="mobius/SliderMinLabel" data-testid="min-label">
|
|
117
128
|
{minLabel}
|
|
@@ -120,6 +131,6 @@ export function Slider(props: SliderProps) {
|
|
|
120
131
|
{maxLabel}
|
|
121
132
|
</div>
|
|
122
133
|
</div>
|
|
123
|
-
</
|
|
134
|
+
</SliderWrapper>
|
|
124
135
|
);
|
|
125
136
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import { RefObject, useRef } from "react";
|
|
2
4
|
import { useFocusRing } from "@react-aria/focus";
|
|
3
5
|
import { VisuallyHidden } from "@react-aria/visually-hidden";
|
|
@@ -6,12 +8,19 @@ import { useSliderThumb } from "@react-aria/slider";
|
|
|
6
8
|
import { SliderThumbProps as SpectrumSliderThumbProps } from "@react-types/slider";
|
|
7
9
|
import { SliderState } from "@react-stately/slider";
|
|
8
10
|
import clsx from "clsx";
|
|
11
|
+
import styled from '@emotion/styled';
|
|
9
12
|
|
|
10
13
|
export interface SliderThumbProps extends SpectrumSliderThumbProps {
|
|
11
14
|
state: SliderState;
|
|
12
15
|
trackRef: RefObject<HTMLElement>;
|
|
13
16
|
}
|
|
14
17
|
|
|
18
|
+
const StyledThumb = styled.div`
|
|
19
|
+
position: absolute;
|
|
20
|
+
top: calc(50% - 1px);
|
|
21
|
+
transform: translateX(-50%);
|
|
22
|
+
`;
|
|
23
|
+
|
|
15
24
|
export function SliderThumb(props: SliderThumbProps) {
|
|
16
25
|
const { state, trackRef, index, isDisabled } = props;
|
|
17
26
|
const inputRef = useRef(null);
|
|
@@ -35,11 +44,8 @@ export function SliderThumb(props: SliderThumbProps) {
|
|
|
35
44
|
const thumbClasses = clsx("mobius", "mobius/SliderThumb", classes);
|
|
36
45
|
|
|
37
46
|
return (
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
position: "absolute",
|
|
41
|
-
top: "calc(50% - 1px)",
|
|
42
|
-
transform: "translateX(-50%)",
|
|
47
|
+
<StyledThumb
|
|
48
|
+
style={{
|
|
43
49
|
left: `${state.getThumbPercent(index) * 100}%`,
|
|
44
50
|
}}
|
|
45
51
|
className={wrapperClasses}
|
|
@@ -49,6 +55,6 @@ export function SliderThumb(props: SliderThumbProps) {
|
|
|
49
55
|
<input ref={inputRef} {...mergeProps(inputProps, focusProps)} />
|
|
50
56
|
</VisuallyHidden>
|
|
51
57
|
</div>
|
|
52
|
-
</
|
|
58
|
+
</StyledThumb>
|
|
53
59
|
);
|
|
54
60
|
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import { Ref, forwardRef, RefObject, RefAttributes } from "react";
|
|
2
4
|
import { DOMProps } from "@react-types/shared";
|
|
3
5
|
import clsx from "clsx";
|
|
4
6
|
import { AriaTextFieldOptions, useTextField } from "@react-aria/textfield";
|
|
5
7
|
import { useFocusRing } from "@react-aria/focus";
|
|
6
8
|
import { HoverProps, useHover } from "@react-aria/interactions";
|
|
9
|
+
import styled from '@emotion/styled';
|
|
7
10
|
import { TextAreaInput } from "../TextAreaInput";
|
|
8
11
|
import { Label } from "../Label";
|
|
9
12
|
import { ForwardedRefComponent } from "../../types/components";
|
|
@@ -24,6 +27,10 @@ export interface TextAreaProps
|
|
|
24
27
|
|
|
25
28
|
export type TextAreaRef = Ref<TextAreaElementType>;
|
|
26
29
|
|
|
30
|
+
const ColumnFlex = styled(Flex)`
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
`;
|
|
33
|
+
|
|
27
34
|
const TextArea: ForwardedRefComponent<TextAreaProps, TextAreaElementType> =
|
|
28
35
|
forwardRef((props: TextAreaProps, ref: TextAreaRef) => {
|
|
29
36
|
const {
|
|
@@ -70,8 +77,7 @@ const TextArea: ForwardedRefComponent<TextAreaProps, TextAreaElementType> =
|
|
|
70
77
|
});
|
|
71
78
|
|
|
72
79
|
return (
|
|
73
|
-
<
|
|
74
|
-
css={{ flexDirection: "column" }}
|
|
80
|
+
<ColumnFlex
|
|
75
81
|
className={classes}
|
|
76
82
|
{...focusProps}
|
|
77
83
|
>
|
|
@@ -91,7 +97,7 @@ const TextArea: ForwardedRefComponent<TextAreaProps, TextAreaElementType> =
|
|
|
91
97
|
aria-invalid={errorMessage != null}
|
|
92
98
|
/>
|
|
93
99
|
<ErrorMessage {...errorMessageProps} errorMessage={errorMessage} />
|
|
94
|
-
</
|
|
100
|
+
</ColumnFlex>
|
|
95
101
|
);
|
|
96
102
|
});
|
|
97
103
|
|