@hitachivantara/uikit-react-core 5.17.0 → 5.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Accordion/Accordion.cjs +1 -1
- package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
- package/dist/cjs/components/ActionBar/ActionBar.cjs.map +1 -1
- package/dist/cjs/components/ActionsGeneric/ActionsGeneric.cjs +2 -3
- package/dist/cjs/components/ActionsGeneric/ActionsGeneric.cjs.map +1 -1
- package/dist/cjs/components/AppSwitcher/AppSwitcher.cjs +2 -5
- package/dist/cjs/components/AppSwitcher/AppSwitcher.cjs.map +1 -1
- package/dist/cjs/components/Banner/Banner.cjs.map +1 -1
- package/dist/cjs/components/Banner/BannerContent/ActionContainer/ActionContainer.cjs +37 -39
- package/dist/cjs/components/Banner/BannerContent/ActionContainer/ActionContainer.cjs.map +1 -1
- package/dist/cjs/components/Banner/BannerContent/ActionContainer/ActionContainer.styles.cjs +9 -3
- package/dist/cjs/components/Banner/BannerContent/ActionContainer/ActionContainer.styles.cjs.map +1 -1
- package/dist/cjs/components/Banner/BannerContent/BannerContent.cjs.map +1 -1
- package/dist/cjs/components/Banner/BannerContent/MessageContainer/MessageContainer.cjs +23 -26
- package/dist/cjs/components/Banner/BannerContent/MessageContainer/MessageContainer.cjs.map +1 -1
- package/dist/cjs/components/Banner/BannerContent/MessageContainer/MessageContainer.styles.cjs +9 -3
- package/dist/cjs/components/Banner/BannerContent/MessageContainer/MessageContainer.styles.cjs.map +1 -1
- package/dist/cjs/components/BaseInput/BaseInput.cjs +56 -45
- package/dist/cjs/components/BaseInput/BaseInput.cjs.map +1 -1
- package/dist/cjs/components/BaseInput/BaseInput.styles.cjs +37 -33
- package/dist/cjs/components/BaseInput/BaseInput.styles.cjs.map +1 -1
- package/dist/cjs/components/Box/Box.cjs +2 -2
- package/dist/cjs/components/Box/Box.cjs.map +1 -1
- package/dist/cjs/components/BreadCrumb/Page/Page.cjs +16 -18
- package/dist/cjs/components/BreadCrumb/Page/Page.cjs.map +1 -1
- package/dist/cjs/components/BreadCrumb/Page/Page.styles.cjs +11 -4
- package/dist/cjs/components/BreadCrumb/Page/Page.styles.cjs.map +1 -1
- package/dist/cjs/components/BreadCrumb/utils.cjs +1 -1
- package/dist/cjs/components/BreadCrumb/utils.cjs.map +1 -1
- package/dist/cjs/components/BulkActions/BulkActions.cjs +1 -2
- package/dist/cjs/components/BulkActions/BulkActions.cjs.map +1 -1
- package/dist/cjs/components/Card/Card.cjs +28 -26
- package/dist/cjs/components/Card/Card.cjs.map +1 -1
- package/dist/cjs/components/Card/Card.styles.cjs +8 -3
- package/dist/cjs/components/Card/Card.styles.cjs.map +1 -1
- package/dist/cjs/components/Card/Content/Content.cjs +12 -14
- package/dist/cjs/components/Card/Content/Content.cjs.map +1 -1
- package/dist/cjs/components/Card/Content/Content.styles.cjs +8 -3
- package/dist/cjs/components/Card/Content/Content.styles.cjs.map +1 -1
- package/dist/cjs/components/Card/Header/Header.cjs +28 -28
- package/dist/cjs/components/Card/Header/Header.cjs.map +1 -1
- package/dist/cjs/components/Card/Header/Header.styles.cjs +9 -3
- package/dist/cjs/components/Card/Header/Header.styles.cjs.map +1 -1
- package/dist/cjs/components/Card/Media/Media.cjs +17 -20
- package/dist/cjs/components/Card/Media/Media.cjs.map +1 -1
- package/dist/cjs/components/Card/Media/Media.styles.cjs +10 -4
- package/dist/cjs/components/Card/Media/Media.styles.cjs.map +1 -1
- package/dist/cjs/components/Carousel/Carousel.cjs +129 -141
- package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -1
- package/dist/cjs/components/Carousel/Carousel.styles.cjs +8 -9
- package/dist/cjs/components/Carousel/Carousel.styles.cjs.map +1 -1
- package/dist/cjs/components/Carousel/CarouselSlide/CarouselSlide.cjs +15 -27
- package/dist/cjs/components/Carousel/CarouselSlide/CarouselSlide.cjs.map +1 -1
- package/dist/cjs/components/Carousel/CarouselSlide/CarouselSlide.styles.cjs +8 -6
- package/dist/cjs/components/Carousel/CarouselSlide/CarouselSlide.styles.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/ColorPicker.cjs +88 -85
- package/dist/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/ColorPicker.styles.cjs +11 -3
- package/dist/cjs/components/ColorPicker/ColorPicker.styles.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/Fields/Fields.cjs +45 -47
- package/dist/cjs/components/ColorPicker/Fields/Fields.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/Fields/Fields.styles.cjs +9 -3
- package/dist/cjs/components/ColorPicker/Fields/Fields.styles.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/Picker/Picker.cjs +40 -53
- package/dist/cjs/components/ColorPicker/Picker/Picker.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/Picker/Picker.styles.cjs +11 -4
- package/dist/cjs/components/ColorPicker/Picker/Picker.styles.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/PresetColors/PresetColors.cjs +24 -28
- package/dist/cjs/components/ColorPicker/PresetColors/PresetColors.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/PresetColors/PresetColors.styles.cjs +9 -3
- package/dist/cjs/components/ColorPicker/PresetColors/PresetColors.styles.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/SavedColors/SavedColors.cjs +37 -42
- package/dist/cjs/components/ColorPicker/SavedColors/SavedColors.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/SavedColors/SavedColors.styles.cjs +9 -3
- package/dist/cjs/components/ColorPicker/SavedColors/SavedColors.styles.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.cjs +118 -121
- package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.styles.cjs +8 -3
- package/dist/cjs/components/DatePicker/DatePicker.styles.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.cjs +48 -45
- package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.styles.cjs +23 -29
- package/dist/cjs/components/Dialog/Dialog.styles.cjs.map +1 -1
- package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs +56 -57
- package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs.map +1 -1
- package/dist/cjs/components/DropDownMenu/DropDownMenu.styles.cjs +19 -6
- package/dist/cjs/components/DropDownMenu/DropDownMenu.styles.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/List/List.cjs +1 -1
- package/dist/cjs/components/Dropdown/List/List.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/Counter/Counter.cjs +12 -14
- package/dist/cjs/components/FilterGroup/Counter/Counter.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/Counter/Counter.styles.cjs +9 -3
- package/dist/cjs/components/FilterGroup/Counter/Counter.styles.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/FilterContent/FilterContent.cjs +79 -82
- package/dist/cjs/components/FilterGroup/FilterContent/FilterContent.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/FilterContent/FilterContent.styles.cjs +10 -3
- package/dist/cjs/components/FilterGroup/FilterContent/FilterContent.styles.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/FilterGroup.cjs +52 -54
- package/dist/cjs/components/FilterGroup/FilterGroup.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/FilterGroup.styles.cjs +12 -4
- package/dist/cjs/components/FilterGroup/FilterGroup.styles.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/LeftPanel/LeftPanel.cjs +27 -29
- package/dist/cjs/components/FilterGroup/LeftPanel/LeftPanel.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/LeftPanel/LeftPanel.styles.cjs +9 -3
- package/dist/cjs/components/FilterGroup/LeftPanel/LeftPanel.styles.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/RightPanel/RightPanel.cjs +41 -49
- package/dist/cjs/components/FilterGroup/RightPanel/RightPanel.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/RightPanel/RightPanel.styles.cjs +9 -3
- package/dist/cjs/components/FilterGroup/RightPanel/RightPanel.styles.cjs.map +1 -1
- package/dist/cjs/components/Forms/Suggestions/Suggestions.cjs +16 -13
- package/dist/cjs/components/Forms/Suggestions/Suggestions.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs +26 -15
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs.map +1 -1
- package/dist/cjs/components/InlineEditor/InlineEditor.cjs +49 -45
- package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -1
- package/dist/cjs/components/InlineEditor/InlineEditor.styles.cjs +16 -9
- package/dist/cjs/components/InlineEditor/InlineEditor.styles.cjs.map +1 -1
- package/dist/cjs/components/Input/Input.cjs +211 -233
- package/dist/cjs/components/Input/Input.cjs.map +1 -1
- package/dist/cjs/components/Input/Input.styles.cjs +16 -9
- package/dist/cjs/components/Input/Input.styles.cjs.map +1 -1
- package/dist/cjs/components/List/List.styles.cjs +1 -1
- package/dist/cjs/components/ListContainer/ListItem/ListItem.cjs +2 -2
- package/dist/cjs/components/ListContainer/ListItem/ListItem.cjs.map +1 -1
- package/dist/cjs/components/MultiButton/MultiButton.styles.cjs +10 -10
- package/dist/cjs/components/MultiButton/MultiButton.styles.cjs.map +1 -1
- package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
- package/dist/cjs/components/Pagination/Pagination.styles.cjs +3 -2
- package/dist/cjs/components/Pagination/Pagination.styles.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs +1 -1
- package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs +26 -26
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.cjs +11 -6
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs +32 -40
- package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.cjs +9 -3
- package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs +24 -16
- package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.styles.cjs +22 -24
- package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.styles.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs +28 -39
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.cjs +10 -5
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/useScrollTo.cjs.map +1 -1
- package/dist/cjs/components/Slider/Slider.cjs +1 -1
- package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
- package/dist/cjs/components/Snackbar/Snackbar.cjs +9 -14
- package/dist/cjs/components/Snackbar/Snackbar.cjs.map +1 -1
- package/dist/cjs/components/Snackbar/Snackbar.styles.cjs +38 -29
- package/dist/cjs/components/Snackbar/Snackbar.styles.cjs.map +1 -1
- package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.cjs +22 -18
- package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.cjs.map +1 -1
- package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.cjs +37 -89
- package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.cjs.map +1 -1
- package/dist/cjs/components/Snackbar/SnackbarProvider/SnackbarProvider.cjs +34 -64
- package/dist/cjs/components/Snackbar/SnackbarProvider/SnackbarProvider.cjs.map +1 -1
- package/dist/cjs/components/Snackbar/SnackbarProvider/SnackbarProvider.styles.cjs +28 -0
- package/dist/cjs/components/Snackbar/SnackbarProvider/SnackbarProvider.styles.cjs.map +1 -0
- package/dist/cjs/components/Table/TableCell/TableCell.cjs +56 -41
- package/dist/cjs/components/Table/TableCell/TableCell.cjs.map +1 -1
- package/dist/cjs/components/Table/TableCell/TableCell.styles.cjs +34 -6
- package/dist/cjs/components/Table/TableCell/TableCell.styles.cjs.map +1 -1
- package/dist/cjs/components/Table/TableRow/TableRow.cjs +40 -31
- package/dist/cjs/components/Table/TableRow/TableRow.cjs.map +1 -1
- package/dist/cjs/components/Table/TableRow/TableRow.styles.cjs +19 -5
- package/dist/cjs/components/Table/TableRow/TableRow.styles.cjs.map +1 -1
- package/dist/cjs/components/TagsInput/TagsInput.cjs +1 -1
- package/dist/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
- package/dist/cjs/components/TagsInput/TagsInput.styles.cjs +24 -23
- package/dist/cjs/components/TagsInput/TagsInput.styles.cjs.map +1 -1
- package/dist/cjs/components/TextArea/TextArea.cjs +45 -43
- package/dist/cjs/components/TextArea/TextArea.cjs.map +1 -1
- package/dist/cjs/components/TimePicker/TimePicker.cjs.map +1 -1
- package/dist/cjs/components/TimePicker/Unit/Unit.cjs +43 -45
- package/dist/cjs/components/TimePicker/Unit/Unit.cjs.map +1 -1
- package/dist/cjs/components/TimePicker/Unit/Unit.styles.cjs +8 -3
- package/dist/cjs/components/TimePicker/Unit/Unit.styles.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/Header/Header.cjs +1 -1
- package/dist/cjs/components/VerticalNavigation/Header/Header.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.cjs +7 -7
- package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs +5 -5
- package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs +1 -4
- package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/VerticalNavigation.cjs +5 -5
- package/dist/cjs/components/VerticalNavigation/VerticalNavigation.cjs.map +1 -1
- package/dist/cjs/hooks/useWidth.cjs.map +1 -1
- package/dist/cjs/index.cjs +52 -50
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/providers/ThemeProvider.cjs +20 -18
- package/dist/cjs/providers/ThemeProvider.cjs.map +1 -1
- package/dist/cjs/utils/classes.cjs.map +1 -1
- package/dist/esm/components/Accordion/Accordion.js +1 -1
- package/dist/esm/components/Accordion/Accordion.js.map +1 -1
- package/dist/esm/components/ActionBar/ActionBar.js.map +1 -1
- package/dist/esm/components/ActionsGeneric/ActionsGeneric.js +2 -3
- package/dist/esm/components/ActionsGeneric/ActionsGeneric.js.map +1 -1
- package/dist/esm/components/AppSwitcher/AppSwitcher.js +2 -5
- package/dist/esm/components/AppSwitcher/AppSwitcher.js.map +1 -1
- package/dist/esm/components/Banner/Banner.js.map +1 -1
- package/dist/esm/components/Banner/BannerContent/ActionContainer/ActionContainer.js +41 -42
- package/dist/esm/components/Banner/BannerContent/ActionContainer/ActionContainer.js.map +1 -1
- package/dist/esm/components/Banner/BannerContent/ActionContainer/ActionContainer.styles.js +9 -3
- package/dist/esm/components/Banner/BannerContent/ActionContainer/ActionContainer.styles.js.map +1 -1
- package/dist/esm/components/Banner/BannerContent/BannerContent.js.map +1 -1
- package/dist/esm/components/Banner/BannerContent/MessageContainer/MessageContainer.js +27 -29
- package/dist/esm/components/Banner/BannerContent/MessageContainer/MessageContainer.js.map +1 -1
- package/dist/esm/components/Banner/BannerContent/MessageContainer/MessageContainer.styles.js +9 -3
- package/dist/esm/components/Banner/BannerContent/MessageContainer/MessageContainer.styles.js.map +1 -1
- package/dist/esm/components/BaseInput/BaseInput.js +61 -49
- package/dist/esm/components/BaseInput/BaseInput.js.map +1 -1
- package/dist/esm/components/BaseInput/BaseInput.styles.js +37 -33
- package/dist/esm/components/BaseInput/BaseInput.styles.js.map +1 -1
- package/dist/esm/components/Box/Box.js +2 -2
- package/dist/esm/components/Box/Box.js.map +1 -1
- package/dist/esm/components/BreadCrumb/Page/Page.js +19 -20
- package/dist/esm/components/BreadCrumb/Page/Page.js.map +1 -1
- package/dist/esm/components/BreadCrumb/Page/Page.styles.js +11 -4
- package/dist/esm/components/BreadCrumb/Page/Page.styles.js.map +1 -1
- package/dist/esm/components/BreadCrumb/utils.js +1 -1
- package/dist/esm/components/BulkActions/BulkActions.js +1 -2
- package/dist/esm/components/BulkActions/BulkActions.js.map +1 -1
- package/dist/esm/components/Card/Card.js +32 -29
- package/dist/esm/components/Card/Card.js.map +1 -1
- package/dist/esm/components/Card/Card.styles.js +8 -3
- package/dist/esm/components/Card/Card.styles.js.map +1 -1
- package/dist/esm/components/Card/Content/Content.js +15 -16
- package/dist/esm/components/Card/Content/Content.js.map +1 -1
- package/dist/esm/components/Card/Content/Content.styles.js +8 -3
- package/dist/esm/components/Card/Content/Content.styles.js.map +1 -1
- package/dist/esm/components/Card/Header/Header.js +31 -30
- package/dist/esm/components/Card/Header/Header.js.map +1 -1
- package/dist/esm/components/Card/Header/Header.styles.js +9 -3
- package/dist/esm/components/Card/Header/Header.styles.js.map +1 -1
- package/dist/esm/components/Card/Media/Media.js +20 -22
- package/dist/esm/components/Card/Media/Media.js.map +1 -1
- package/dist/esm/components/Card/Media/Media.styles.js +10 -4
- package/dist/esm/components/Card/Media/Media.styles.js.map +1 -1
- package/dist/esm/components/Carousel/Carousel.js +134 -145
- package/dist/esm/components/Carousel/Carousel.js.map +1 -1
- package/dist/esm/components/Carousel/Carousel.styles.js +8 -9
- package/dist/esm/components/Carousel/Carousel.styles.js.map +1 -1
- package/dist/esm/components/Carousel/CarouselSlide/CarouselSlide.js +16 -28
- package/dist/esm/components/Carousel/CarouselSlide/CarouselSlide.js.map +1 -1
- package/dist/esm/components/Carousel/CarouselSlide/CarouselSlide.styles.js +8 -6
- package/dist/esm/components/Carousel/CarouselSlide/CarouselSlide.styles.js.map +1 -1
- package/dist/esm/components/ColorPicker/ColorPicker.js +92 -88
- package/dist/esm/components/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/esm/components/ColorPicker/ColorPicker.styles.js +11 -3
- package/dist/esm/components/ColorPicker/ColorPicker.styles.js.map +1 -1
- package/dist/esm/components/ColorPicker/Fields/Fields.js +49 -50
- package/dist/esm/components/ColorPicker/Fields/Fields.js.map +1 -1
- package/dist/esm/components/ColorPicker/Fields/Fields.styles.js +9 -3
- package/dist/esm/components/ColorPicker/Fields/Fields.styles.js.map +1 -1
- package/dist/esm/components/ColorPicker/Picker/Picker.js +42 -54
- package/dist/esm/components/ColorPicker/Picker/Picker.js.map +1 -1
- package/dist/esm/components/ColorPicker/Picker/Picker.styles.js +11 -4
- package/dist/esm/components/ColorPicker/Picker/Picker.styles.js.map +1 -1
- package/dist/esm/components/ColorPicker/PresetColors/PresetColors.js +28 -31
- package/dist/esm/components/ColorPicker/PresetColors/PresetColors.js.map +1 -1
- package/dist/esm/components/ColorPicker/PresetColors/PresetColors.styles.js +9 -3
- package/dist/esm/components/ColorPicker/PresetColors/PresetColors.styles.js.map +1 -1
- package/dist/esm/components/ColorPicker/SavedColors/SavedColors.js +41 -45
- package/dist/esm/components/ColorPicker/SavedColors/SavedColors.js.map +1 -1
- package/dist/esm/components/ColorPicker/SavedColors/SavedColors.styles.js +9 -3
- package/dist/esm/components/ColorPicker/SavedColors/SavedColors.styles.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +122 -124
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.styles.js +8 -3
- package/dist/esm/components/DatePicker/DatePicker.styles.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.js +51 -47
- package/dist/esm/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.styles.js +23 -29
- package/dist/esm/components/Dialog/Dialog.styles.js.map +1 -1
- package/dist/esm/components/DropDownMenu/DropDownMenu.js +57 -57
- package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
- package/dist/esm/components/DropDownMenu/DropDownMenu.styles.js +19 -6
- package/dist/esm/components/DropDownMenu/DropDownMenu.styles.js.map +1 -1
- package/dist/esm/components/Dropdown/List/List.js +1 -1
- package/dist/esm/components/Dropdown/List/List.js.map +1 -1
- package/dist/esm/components/FilterGroup/Counter/Counter.js +16 -17
- package/dist/esm/components/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/esm/components/FilterGroup/Counter/Counter.styles.js +9 -3
- package/dist/esm/components/FilterGroup/Counter/Counter.styles.js.map +1 -1
- package/dist/esm/components/FilterGroup/FilterContent/FilterContent.js +82 -84
- package/dist/esm/components/FilterGroup/FilterContent/FilterContent.js.map +1 -1
- package/dist/esm/components/FilterGroup/FilterContent/FilterContent.styles.js +10 -3
- package/dist/esm/components/FilterGroup/FilterContent/FilterContent.styles.js.map +1 -1
- package/dist/esm/components/FilterGroup/FilterGroup.js +56 -57
- package/dist/esm/components/FilterGroup/FilterGroup.js.map +1 -1
- package/dist/esm/components/FilterGroup/FilterGroup.styles.js +12 -4
- package/dist/esm/components/FilterGroup/FilterGroup.styles.js.map +1 -1
- package/dist/esm/components/FilterGroup/LeftPanel/LeftPanel.js +30 -31
- package/dist/esm/components/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
- package/dist/esm/components/FilterGroup/LeftPanel/LeftPanel.styles.js +9 -3
- package/dist/esm/components/FilterGroup/LeftPanel/LeftPanel.styles.js.map +1 -1
- package/dist/esm/components/FilterGroup/RightPanel/RightPanel.js +44 -51
- package/dist/esm/components/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/dist/esm/components/FilterGroup/RightPanel/RightPanel.styles.js +9 -3
- package/dist/esm/components/FilterGroup/RightPanel/RightPanel.styles.js.map +1 -1
- package/dist/esm/components/Forms/Suggestions/Suggestions.js +17 -14
- package/dist/esm/components/Forms/Suggestions/Suggestions.js.map +1 -1
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js +26 -15
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
- package/dist/esm/components/InlineEditor/InlineEditor.js +52 -47
- package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -1
- package/dist/esm/components/InlineEditor/InlineEditor.styles.js +16 -9
- package/dist/esm/components/InlineEditor/InlineEditor.styles.js.map +1 -1
- package/dist/esm/components/Input/Input.js +215 -236
- package/dist/esm/components/Input/Input.js.map +1 -1
- package/dist/esm/components/Input/Input.styles.js +16 -9
- package/dist/esm/components/Input/Input.styles.js.map +1 -1
- package/dist/esm/components/List/List.styles.js +1 -1
- package/dist/esm/components/ListContainer/ListItem/ListItem.js +2 -2
- package/dist/esm/components/ListContainer/ListItem/ListItem.js.map +1 -1
- package/dist/esm/components/MultiButton/MultiButton.styles.js +10 -10
- package/dist/esm/components/MultiButton/MultiButton.styles.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.styles.js +3 -2
- package/dist/esm/components/Pagination/Pagination.styles.js.map +1 -1
- package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js +1 -1
- package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +29 -28
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js +11 -6
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js.map +1 -1
- package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js +35 -42
- package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
- package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.js +9 -3
- package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.js.map +1 -1
- package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js +27 -18
- package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
- package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.styles.js +22 -24
- package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.styles.js.map +1 -1
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js +31 -41
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js +10 -5
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js.map +1 -1
- package/dist/esm/components/ScrollTo/useScrollTo.js.map +1 -1
- package/dist/esm/components/Slider/Slider.js +2 -2
- package/dist/esm/components/Slider/Slider.js.map +1 -1
- package/dist/esm/components/Snackbar/Snackbar.js +12 -16
- package/dist/esm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/esm/components/Snackbar/Snackbar.styles.js +38 -26
- package/dist/esm/components/Snackbar/Snackbar.styles.js.map +1 -1
- package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js +21 -18
- package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js.map +1 -1
- package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.js +37 -86
- package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.js.map +1 -1
- package/dist/esm/components/Snackbar/SnackbarProvider/SnackbarProvider.js +35 -62
- package/dist/esm/components/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -1
- package/dist/esm/components/Snackbar/SnackbarProvider/SnackbarProvider.styles.js +28 -0
- package/dist/esm/components/Snackbar/SnackbarProvider/SnackbarProvider.styles.js.map +1 -0
- package/dist/esm/components/Table/TableCell/TableCell.js +58 -43
- package/dist/esm/components/Table/TableCell/TableCell.js.map +1 -1
- package/dist/esm/components/Table/TableCell/TableCell.styles.js +34 -6
- package/dist/esm/components/Table/TableCell/TableCell.styles.js.map +1 -1
- package/dist/esm/components/Table/TableRow/TableRow.js +43 -33
- package/dist/esm/components/Table/TableRow/TableRow.js.map +1 -1
- package/dist/esm/components/Table/TableRow/TableRow.styles.js +19 -5
- package/dist/esm/components/Table/TableRow/TableRow.styles.js.map +1 -1
- package/dist/esm/components/TagsInput/TagsInput.js +1 -1
- package/dist/esm/components/TagsInput/TagsInput.js.map +1 -1
- package/dist/esm/components/TagsInput/TagsInput.styles.js +24 -23
- package/dist/esm/components/TagsInput/TagsInput.styles.js.map +1 -1
- package/dist/esm/components/TextArea/TextArea.js +46 -44
- package/dist/esm/components/TextArea/TextArea.js.map +1 -1
- package/dist/esm/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/esm/components/TimePicker/Unit/Unit.js +45 -47
- package/dist/esm/components/TimePicker/Unit/Unit.js.map +1 -1
- package/dist/esm/components/TimePicker/Unit/Unit.styles.js +8 -3
- package/dist/esm/components/TimePicker/Unit/Unit.styles.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/Header/Header.js +1 -1
- package/dist/esm/components/VerticalNavigation/Header/Header.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/Navigation/Navigation.js +7 -7
- package/dist/esm/components/VerticalNavigation/Navigation/Navigation.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js +5 -5
- package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/TreeView/descendants.js +1 -4
- package/dist/esm/components/VerticalNavigation/TreeView/descendants.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/VerticalNavigation.js +6 -6
- package/dist/esm/components/VerticalNavigation/VerticalNavigation.js.map +1 -1
- package/dist/esm/hooks/useWidth.js.map +1 -1
- package/dist/esm/index.js +246 -244
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/providers/ThemeProvider.js +21 -19
- package/dist/esm/providers/ThemeProvider.js.map +1 -1
- package/dist/esm/utils/classes.js.map +1 -1
- package/dist/types/index.d.ts +620 -603
- package/package.json +5 -5
- package/dist/cjs/components/Banner/BannerContent/ActionContainer/actionContainerClasses.cjs +0 -8
- package/dist/cjs/components/Banner/BannerContent/ActionContainer/actionContainerClasses.cjs.map +0 -1
- package/dist/cjs/components/Banner/BannerContent/MessageContainer/messageContainerClasses.cjs +0 -8
- package/dist/cjs/components/Banner/BannerContent/MessageContainer/messageContainerClasses.cjs.map +0 -1
- package/dist/cjs/components/BaseInput/baseInputClasses.cjs +0 -8
- package/dist/cjs/components/BaseInput/baseInputClasses.cjs.map +0 -1
- package/dist/cjs/components/BreadCrumb/Page/pageClasses.cjs +0 -8
- package/dist/cjs/components/BreadCrumb/Page/pageClasses.cjs.map +0 -1
- package/dist/cjs/components/Card/Content/contentClasses.cjs +0 -8
- package/dist/cjs/components/Card/Content/contentClasses.cjs.map +0 -1
- package/dist/cjs/components/Card/Header/headerClasses.cjs +0 -8
- package/dist/cjs/components/Card/Header/headerClasses.cjs.map +0 -1
- package/dist/cjs/components/Card/Media/mediaClasses.cjs +0 -8
- package/dist/cjs/components/Card/Media/mediaClasses.cjs.map +0 -1
- package/dist/cjs/components/Card/cardClasses.cjs +0 -8
- package/dist/cjs/components/Card/cardClasses.cjs.map +0 -1
- package/dist/cjs/components/Carousel/utils.cjs +0 -36
- package/dist/cjs/components/Carousel/utils.cjs.map +0 -1
- package/dist/cjs/components/ColorPicker/Fields/fieldsClasses.cjs +0 -8
- package/dist/cjs/components/ColorPicker/Fields/fieldsClasses.cjs.map +0 -1
- package/dist/cjs/components/ColorPicker/Picker/pickerClasses.cjs +0 -8
- package/dist/cjs/components/ColorPicker/Picker/pickerClasses.cjs.map +0 -1
- package/dist/cjs/components/ColorPicker/PresetColors/presetColorsClasses.cjs +0 -8
- package/dist/cjs/components/ColorPicker/PresetColors/presetColorsClasses.cjs.map +0 -1
- package/dist/cjs/components/ColorPicker/SavedColors/savedColorsClasses.cjs +0 -8
- package/dist/cjs/components/ColorPicker/SavedColors/savedColorsClasses.cjs.map +0 -1
- package/dist/cjs/components/ColorPicker/colorPickerClasses.cjs +0 -8
- package/dist/cjs/components/ColorPicker/colorPickerClasses.cjs.map +0 -1
- package/dist/cjs/components/DatePicker/datePickerClasses.cjs +0 -8
- package/dist/cjs/components/DatePicker/datePickerClasses.cjs.map +0 -1
- package/dist/cjs/components/Dialog/dialogClasses.cjs +0 -8
- package/dist/cjs/components/Dialog/dialogClasses.cjs.map +0 -1
- package/dist/cjs/components/DropDownMenu/dropDownMenuClasses.cjs +0 -8
- package/dist/cjs/components/DropDownMenu/dropDownMenuClasses.cjs.map +0 -1
- package/dist/cjs/components/FilterGroup/Counter/counterClasses.cjs +0 -8
- package/dist/cjs/components/FilterGroup/Counter/counterClasses.cjs.map +0 -1
- package/dist/cjs/components/FilterGroup/FilterContent/filterContentClasses.cjs +0 -8
- package/dist/cjs/components/FilterGroup/FilterContent/filterContentClasses.cjs.map +0 -1
- package/dist/cjs/components/FilterGroup/LeftPanel/leftPanelClasses.cjs +0 -8
- package/dist/cjs/components/FilterGroup/LeftPanel/leftPanelClasses.cjs.map +0 -1
- package/dist/cjs/components/FilterGroup/RightPanel/rightPanelClasses.cjs +0 -8
- package/dist/cjs/components/FilterGroup/RightPanel/rightPanelClasses.cjs.map +0 -1
- package/dist/cjs/components/FilterGroup/filterGroupClasses.cjs +0 -8
- package/dist/cjs/components/FilterGroup/filterGroupClasses.cjs.map +0 -1
- package/dist/cjs/components/InlineEditor/inlineEditorClasses.cjs +0 -8
- package/dist/cjs/components/InlineEditor/inlineEditorClasses.cjs.map +0 -1
- package/dist/cjs/components/Input/inputClasses.cjs +0 -8
- package/dist/cjs/components/Input/inputClasses.cjs.map +0 -1
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/horizontalScrollListItemClasses.cjs +0 -8
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/horizontalScrollListItemClasses.cjs.map +0 -1
- package/dist/cjs/components/ScrollTo/Horizontal/scrollToHorizontalClasses.cjs +0 -8
- package/dist/cjs/components/ScrollTo/Horizontal/scrollToHorizontalClasses.cjs.map +0 -1
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/verticalScrollListItemClasses.cjs +0 -8
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/verticalScrollListItemClasses.cjs.map +0 -1
- package/dist/cjs/components/ScrollTo/Vertical/scrollToVerticalClasses.cjs +0 -8
- package/dist/cjs/components/ScrollTo/Vertical/scrollToVerticalClasses.cjs.map +0 -1
- package/dist/cjs/components/Snackbar/SnackbarContentWrapper/snackbarContentWrapperClasses.cjs +0 -8
- package/dist/cjs/components/Snackbar/SnackbarContentWrapper/snackbarContentWrapperClasses.cjs.map +0 -1
- package/dist/cjs/components/Snackbar/snackbarClasses.cjs +0 -8
- package/dist/cjs/components/Snackbar/snackbarClasses.cjs.map +0 -1
- package/dist/cjs/components/Table/TableCell/tableCellClasses.cjs +0 -8
- package/dist/cjs/components/Table/TableCell/tableCellClasses.cjs.map +0 -1
- package/dist/cjs/components/Table/TableRow/tableRowClasses.cjs +0 -8
- package/dist/cjs/components/Table/TableRow/tableRowClasses.cjs.map +0 -1
- package/dist/esm/components/Banner/BannerContent/ActionContainer/actionContainerClasses.js +0 -8
- package/dist/esm/components/Banner/BannerContent/ActionContainer/actionContainerClasses.js.map +0 -1
- package/dist/esm/components/Banner/BannerContent/MessageContainer/messageContainerClasses.js +0 -8
- package/dist/esm/components/Banner/BannerContent/MessageContainer/messageContainerClasses.js.map +0 -1
- package/dist/esm/components/BaseInput/baseInputClasses.js +0 -8
- package/dist/esm/components/BaseInput/baseInputClasses.js.map +0 -1
- package/dist/esm/components/BreadCrumb/Page/pageClasses.js +0 -8
- package/dist/esm/components/BreadCrumb/Page/pageClasses.js.map +0 -1
- package/dist/esm/components/Card/Content/contentClasses.js +0 -8
- package/dist/esm/components/Card/Content/contentClasses.js.map +0 -1
- package/dist/esm/components/Card/Header/headerClasses.js +0 -8
- package/dist/esm/components/Card/Header/headerClasses.js.map +0 -1
- package/dist/esm/components/Card/Media/mediaClasses.js +0 -8
- package/dist/esm/components/Card/Media/mediaClasses.js.map +0 -1
- package/dist/esm/components/Card/cardClasses.js +0 -8
- package/dist/esm/components/Card/cardClasses.js.map +0 -1
- package/dist/esm/components/Carousel/utils.js +0 -36
- package/dist/esm/components/Carousel/utils.js.map +0 -1
- package/dist/esm/components/ColorPicker/Fields/fieldsClasses.js +0 -8
- package/dist/esm/components/ColorPicker/Fields/fieldsClasses.js.map +0 -1
- package/dist/esm/components/ColorPicker/Picker/pickerClasses.js +0 -8
- package/dist/esm/components/ColorPicker/Picker/pickerClasses.js.map +0 -1
- package/dist/esm/components/ColorPicker/PresetColors/presetColorsClasses.js +0 -8
- package/dist/esm/components/ColorPicker/PresetColors/presetColorsClasses.js.map +0 -1
- package/dist/esm/components/ColorPicker/SavedColors/savedColorsClasses.js +0 -8
- package/dist/esm/components/ColorPicker/SavedColors/savedColorsClasses.js.map +0 -1
- package/dist/esm/components/ColorPicker/colorPickerClasses.js +0 -8
- package/dist/esm/components/ColorPicker/colorPickerClasses.js.map +0 -1
- package/dist/esm/components/DatePicker/datePickerClasses.js +0 -8
- package/dist/esm/components/DatePicker/datePickerClasses.js.map +0 -1
- package/dist/esm/components/Dialog/dialogClasses.js +0 -8
- package/dist/esm/components/Dialog/dialogClasses.js.map +0 -1
- package/dist/esm/components/DropDownMenu/dropDownMenuClasses.js +0 -8
- package/dist/esm/components/DropDownMenu/dropDownMenuClasses.js.map +0 -1
- package/dist/esm/components/FilterGroup/Counter/counterClasses.js +0 -8
- package/dist/esm/components/FilterGroup/Counter/counterClasses.js.map +0 -1
- package/dist/esm/components/FilterGroup/FilterContent/filterContentClasses.js +0 -8
- package/dist/esm/components/FilterGroup/FilterContent/filterContentClasses.js.map +0 -1
- package/dist/esm/components/FilterGroup/LeftPanel/leftPanelClasses.js +0 -8
- package/dist/esm/components/FilterGroup/LeftPanel/leftPanelClasses.js.map +0 -1
- package/dist/esm/components/FilterGroup/RightPanel/rightPanelClasses.js +0 -8
- package/dist/esm/components/FilterGroup/RightPanel/rightPanelClasses.js.map +0 -1
- package/dist/esm/components/FilterGroup/filterGroupClasses.js +0 -8
- package/dist/esm/components/FilterGroup/filterGroupClasses.js.map +0 -1
- package/dist/esm/components/InlineEditor/inlineEditorClasses.js +0 -8
- package/dist/esm/components/InlineEditor/inlineEditorClasses.js.map +0 -1
- package/dist/esm/components/Input/inputClasses.js +0 -8
- package/dist/esm/components/Input/inputClasses.js.map +0 -1
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/horizontalScrollListItemClasses.js +0 -8
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/horizontalScrollListItemClasses.js.map +0 -1
- package/dist/esm/components/ScrollTo/Horizontal/scrollToHorizontalClasses.js +0 -8
- package/dist/esm/components/ScrollTo/Horizontal/scrollToHorizontalClasses.js.map +0 -1
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/verticalScrollListItemClasses.js +0 -8
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/verticalScrollListItemClasses.js.map +0 -1
- package/dist/esm/components/ScrollTo/Vertical/scrollToVerticalClasses.js +0 -8
- package/dist/esm/components/ScrollTo/Vertical/scrollToVerticalClasses.js.map +0 -1
- package/dist/esm/components/Snackbar/SnackbarContentWrapper/snackbarContentWrapperClasses.js +0 -8
- package/dist/esm/components/Snackbar/SnackbarContentWrapper/snackbarContentWrapperClasses.js.map +0 -1
- package/dist/esm/components/Snackbar/snackbarClasses.js +0 -8
- package/dist/esm/components/Snackbar/snackbarClasses.js.map +0 -1
- package/dist/esm/components/Table/TableCell/tableCellClasses.js +0 -8
- package/dist/esm/components/Table/TableCell/tableCellClasses.js.map +0 -1
- package/dist/esm/components/Table/TableRow/tableRowClasses.js +0 -8
- package/dist/esm/components/Table/TableRow/tableRowClasses.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagsInput.styles.js","sources":["../../../../src/components/TagsInput/TagsInput.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport {\n HvTag,\n HvCharCounter,\n HvFormElement,\n HvInfoMessage,\n HvInput,\n HvLabel,\n HvListContainer,\n HvListItem,\n HvSuggestions,\n HvWarningText,\n HvFormElementProps,\n HvLabelProps,\n HvInfoMessageProps,\n HvCharCounterProps,\n HvWarningTextProps,\n HvListItemProps,\n HvTagProps,\n HvInputProps,\n HvSuggestionsProps,\n} from \"@core/components\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { transientOptions } from \"@core/utils/transientOptions\";\nimport tagsInputClasses from \"./tagsInputClasses\";\nimport baseInputClasses from \"../BaseInput/baseInputClasses\";\nimport suggestionsClasses from \"../Forms/Suggestions/suggestionsClasses\";\nimport listItemClasses from \"../ListContainer/ListItem/listItemClasses\";\n\nexport const StyledFormElement = styled((props: HvFormElementProps) => (\n <HvFormElement {...props} />\n))({\n display: \"inline-block\",\n width: \"100%\",\n});\n\nexport const StyledLabelContainer = styled(\"div\")({\n float: \"left\",\n display: \"flex\",\n alignItems: \"flex-start\",\n});\n\nexport const StyledLabel = styled((props: HvLabelProps) => (\n <HvLabel {...props} />\n))({\n display: \"block\",\n float: \"left\",\n paddingBottom: \"6px\",\n});\n\nexport const StyledDescription = styled((props: HvInfoMessageProps) => (\n <HvInfoMessage {...props} />\n))({\n display: \"block\",\n float: \"left\",\n});\n\nexport const StyledCharCounter = styled((props: HvCharCounterProps) => (\n <HvCharCounter {...props} />\n))(() => ({\n display: \"block\",\n float: \"right\",\n textAlign: \"right\",\n marginBottom: \"6px\",\n}));\n\nexport const StyledTagsList = styled(\n HvListContainer,\n transientOptions\n)(\n ({\n $disabled,\n $singleLine,\n $error,\n $resizable,\n $invalid,\n $readOnly,\n }: {\n $disabled: boolean;\n $singleLine: boolean;\n $error: boolean;\n $resizable: boolean;\n $invalid: boolean;\n $readOnly: boolean;\n }) => ({\n display: \"flex\",\n alignContent: \"flex-start\",\n float: \"left\",\n clear: \"both\",\n width: \"100%\",\n maxWidth: \"100%\",\n height: \"32px\",\n padding: 5,\n overflow: \"auto\",\n position: \"relative\",\n\n flexDirection: \"row\",\n flexWrap: \"wrap\",\n\n backgroundColor: theme.colors.atmo1,\n border: `1px solid ${theme.tagsInput.borderColor}`,\n borderRadius: theme.radii.base,\n\n \"&:hover\": {\n cursor: \"text\",\n border: `1px solid ${theme.tagsInput.hoverColor}`,\n },\n\n [`& .${baseInputClasses.inputRoot}`]: {\n border: \"none\",\n },\n\n \"&:focus, &:focus-within, &:focus-visible\": {\n outlineColor: \"#52A8EC\",\n outlineStyle: \"solid\",\n outlineWidth: \"0px\",\n outlineOffset: \"-1px\",\n boxShadow: \"0 0 0 1px #52A8EC, 0 0 0 4px rgba(29,155,209,.3)\",\n },\n\n ...($disabled && {\n backgroundColor: theme.tagsInput.disabledBackgroundColor,\n border: `1px solid ${theme.colors.atmo4}`,\n\n \"&:focus-within, &:hover\": {\n border: `1px solid ${theme.colors.atmo4}`,\n },\n }),\n\n ...($readOnly && {\n backgroundColor: theme.tagsInput.readOnlyBackgroundColor,\n border: `1px solid ${theme.tagsInput.readOnlyBorderColor}`,\n \"&:hover\": {\n border: `1px solid ${theme.tagsInput.readOnlyBorderColor}`,\n },\n }),\n\n ...($singleLine && {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n height: 32,\n display: \"table-row\",\n paddingTop: 0,\n }),\n\n ...($error && {\n border: `1px solid ${theme.colors.negative}`,\n }),\n\n ...($resizable && {\n width: \"auto\",\n resize: \"both\",\n overflow: \"auto\",\n }),\n\n ...($invalid && {\n border: `1px solid ${theme.colors.negative}!important`,\n }),\n })\n);\n\nexport const StyledError = styled((props: HvWarningTextProps) => (\n <HvWarningText {...props} />\n))({\n float: \"left\",\n});\n\nexport const StyledListItem = styled(\n (props: HvListItemProps) => <HvListItem {...props} />,\n transientOptions\n)(({ $singleLine }: { $singleLine: boolean }) => ({\n marginBottom: 2,\n height: 24,\n lineHeight: \"24px\",\n \"&:not(:last-child)\": {\n marginBottom: 2,\n },\n [`&.${listItemClasses.gutters}`]: {\n padding: \"0 5px\",\n },\n ...($singleLine && {\n display: \"table-cell\",\n paddingTop: \"2px!important\",\n }),\n}));\n\nexport const StyledTag = styled(\n (props: HvTagProps) => <HvTag {...props} />,\n transientOptions\n)(({ $selected }: { $selected: boolean }) => ({\n [`& .${tagsInputClasses.chipRoot}`]: {\n maxWidth: \"none\",\n },\n ...($selected && {\n outlineColor: \"#52A8EC\",\n outlineStyle: \"solid\",\n outlineWidth: \"0px\",\n outlineOffset: \"-1px\",\n boxShadow: \"0 0 0 1px #52A8EC, 0 0 0 4px rgba(29,155,209,.3)\",\n }),\n}));\n\nexport const StyledInputListItem = styled(\n (props: HvListItemProps) => <HvListItem {...props} />,\n transientOptions\n)(\n ({\n $singleLine,\n $isTagSelected,\n }: {\n $singleLine: boolean;\n $isTagSelected: boolean;\n }) => ({\n display: \"flex\",\n flexGrow: 1,\n height: 24,\n lineHeight: \"24px\",\n [`&.${listItemClasses.gutters}`]: {\n padding: \"0 5px\",\n },\n ...($singleLine && {\n display: \"table-cell\",\n minWidth: 100,\n width: \"100%\",\n paddingTop: \"3px!important\",\n verticalAlign: \"middle\",\n }),\n ...($isTagSelected && {\n [`& .${baseInputClasses.inputRoot}`]: {\n backgroundColor: theme.colors.atmo1,\n },\n }),\n })\n);\n\nexport const StyledInput = styled(\n (props: HvInputProps) => <HvInput {...props} />,\n transientOptions\n)(({ $singleLine }: { $singleLine: boolean }) => ({\n [`& .${baseInputClasses.root}`]: {\n width: \"100%\",\n border: \"none\",\n [`&:hover .${tagsInputClasses.tagInputBorderContainer}`]: {\n background: \"none\",\n },\n [`&:hover .${tagsInputClasses.tagInputBorderContainer}`]: {\n background: \"none\",\n },\n },\n [`&& .${baseInputClasses.inputRoot}`]: {\n marginLeft: 0,\n marginRight: 0,\n flex: \"1 1 auto\",\n minWidth: 48,\n height: 24,\n lineHeight: \"24px\",\n padding: 0,\n border: \"none\",\n },\n [`& .${baseInputClasses.inputBorderContainer}`]: {\n border: \"none\",\n background: \"none\",\n },\n [`& .${baseInputClasses.inputRootFocused}`]: {\n outline: \"none!important\",\n boxShadow: \"none!important\",\n },\n [`& .${baseInputClasses.root} .${baseInputClasses.inputRootReadOnly}`]: {\n backgroundColor: \"transparent \",\n border: \"none\",\n \"&:hover\": {\n border: \"none\",\n },\n },\n [`&& .${baseInputClasses.input}`]: {\n marginLeft: 0,\n },\n ...($singleLine && {}),\n}));\n\nexport const StyledSuggestions = styled((props: HvSuggestionsProps) => (\n <HvSuggestions {...props} />\n))({\n width: \"100%\",\n position: \"relative\",\n top: 59,\n [`& .${suggestionsClasses.root} .${suggestionsClasses.list} &`]: {\n width: \"100%\",\n },\n});\n"],"names":["StyledFormElement","_styled","props","HvFormElement","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","StyledLabelContainer","StyledLabel","HvLabel","StyledDescription","HvInfoMessage","StyledCharCounter","HvCharCounter","display","float","textAlign","marginBottom","StyledTagsList","HvListContainer","_extends","transientOptions","$disabled","$singleLine","$error","$resizable","$invalid","$readOnly","alignContent","clear","width","maxWidth","height","padding","overflow","position","flexDirection","flexWrap","backgroundColor","theme","colors","atmo1","border","tagsInput","borderColor","borderRadius","radii","base","cursor","hoverColor","baseInputClasses","inputRoot","outlineColor","outlineStyle","outlineWidth","outlineOffset","boxShadow","disabledBackgroundColor","atmo4","readOnlyBackgroundColor","readOnlyBorderColor","overflowX","overflowY","paddingTop","negative","resize","StyledError","HvWarningText","StyledListItem","HvListItem","lineHeight","listItemClasses","gutters","StyledTag","HvTag","$selected","tagsInputClasses","chipRoot","StyledInputListItem","$isTagSelected","flexGrow","minWidth","verticalAlign","StyledInput","HvInput","root","tagInputBorderContainer","background","marginLeft","marginRight","flex","inputBorderContainer","inputRootFocused","outline","inputRootReadOnly","input","StyledSuggestions","HvSuggestions","top","suggestionsClasses","list"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TagsInput.styles.js","sources":["../../../../src/components/TagsInput/TagsInput.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport {\n HvTag,\n HvCharCounter,\n HvFormElement,\n HvInfoMessage,\n HvInput,\n HvLabel,\n HvListContainer,\n HvListItem,\n HvSuggestions,\n HvWarningText,\n HvFormElementProps,\n HvLabelProps,\n HvInfoMessageProps,\n HvCharCounterProps,\n HvWarningTextProps,\n HvListItemProps,\n HvTagProps,\n HvInputProps,\n HvSuggestionsProps,\n baseInputClasses,\n listItemClasses,\n suggestionsClasses,\n} from \"@core/components\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { transientOptions } from \"@core/utils/transientOptions\";\nimport tagsInputClasses from \"./tagsInputClasses\";\n\nexport const StyledFormElement = styled((props: HvFormElementProps) => (\n <HvFormElement {...props} />\n))({\n display: \"inline-block\",\n width: \"100%\",\n});\n\nexport const StyledLabelContainer = styled(\"div\")({\n float: \"left\",\n display: \"flex\",\n alignItems: \"flex-start\",\n});\n\nexport const StyledLabel = styled((props: HvLabelProps) => (\n <HvLabel {...props} />\n))({\n display: \"block\",\n float: \"left\",\n paddingBottom: \"6px\",\n});\n\nexport const StyledDescription = styled((props: HvInfoMessageProps) => (\n <HvInfoMessage {...props} />\n))({\n display: \"block\",\n float: \"left\",\n});\n\nexport const StyledCharCounter = styled((props: HvCharCounterProps) => (\n <HvCharCounter {...props} />\n))(() => ({\n display: \"block\",\n float: \"right\",\n textAlign: \"right\",\n marginBottom: \"6px\",\n}));\n\nexport const StyledTagsList = styled(\n HvListContainer,\n transientOptions\n)(\n ({\n $disabled,\n $singleLine,\n $error,\n $resizable,\n $invalid,\n $readOnly,\n }: {\n $disabled: boolean;\n $singleLine: boolean;\n $error: boolean;\n $resizable: boolean;\n $invalid: boolean;\n $readOnly: boolean;\n }) => ({\n display: \"flex\",\n alignContent: \"flex-start\",\n float: \"left\",\n clear: \"both\",\n width: \"100%\",\n maxWidth: \"100%\",\n height: \"32px\",\n padding: 5,\n overflow: \"auto\",\n position: \"relative\",\n\n flexDirection: \"row\",\n flexWrap: \"wrap\",\n\n backgroundColor: theme.colors.atmo1,\n border: `1px solid ${theme.tagsInput.borderColor}`,\n borderRadius: theme.radii.base,\n\n \"&:hover\": {\n cursor: \"text\",\n border: `1px solid ${theme.tagsInput.hoverColor}`,\n },\n\n [`& .${baseInputClasses.inputRoot}`]: {\n border: \"none\",\n },\n\n \"&:focus, &:focus-within, &:focus-visible\": {\n outlineColor: \"#52A8EC\",\n outlineStyle: \"solid\",\n outlineWidth: \"0px\",\n outlineOffset: \"-1px\",\n boxShadow: \"0 0 0 1px #52A8EC, 0 0 0 4px rgba(29,155,209,.3)\",\n },\n\n ...($disabled && {\n backgroundColor: theme.tagsInput.disabledBackgroundColor,\n border: `1px solid ${theme.colors.atmo4}`,\n\n \"&:focus-within, &:hover\": {\n border: `1px solid ${theme.colors.atmo4}`,\n },\n }),\n\n ...($readOnly && {\n backgroundColor: theme.tagsInput.readOnlyBackgroundColor,\n border: `1px solid ${theme.tagsInput.readOnlyBorderColor}`,\n \"&:hover\": {\n border: `1px solid ${theme.tagsInput.readOnlyBorderColor}`,\n },\n }),\n\n ...($singleLine && {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n height: 32,\n display: \"table-row\",\n paddingTop: 0,\n }),\n\n ...($error && {\n border: `1px solid ${theme.colors.negative}`,\n }),\n\n ...($resizable && {\n width: \"auto\",\n resize: \"both\",\n overflow: \"auto\",\n }),\n\n ...($invalid && {\n border: `1px solid ${theme.colors.negative}!important`,\n }),\n })\n);\n\nexport const StyledError = styled((props: HvWarningTextProps) => (\n <HvWarningText {...props} />\n))({\n float: \"left\",\n});\n\nexport const StyledListItem = styled(\n (props: HvListItemProps) => <HvListItem {...props} />,\n transientOptions\n)(({ $singleLine }: { $singleLine: boolean }) => ({\n marginBottom: 2,\n height: 24,\n lineHeight: \"24px\",\n \"&:not(:last-child)\": {\n marginBottom: 2,\n },\n [`&.${listItemClasses.gutters}`]: {\n padding: \"0 5px\",\n },\n ...($singleLine && {\n display: \"table-cell\",\n paddingTop: \"2px!important\",\n }),\n}));\n\nexport const StyledTag = styled(\n (props: HvTagProps) => <HvTag {...props} />,\n transientOptions\n)(({ $selected }: { $selected: boolean }) => ({\n [`& .${tagsInputClasses.chipRoot}`]: {\n maxWidth: \"none\",\n },\n ...($selected && {\n outlineColor: \"#52A8EC\",\n outlineStyle: \"solid\",\n outlineWidth: \"0px\",\n outlineOffset: \"-1px\",\n boxShadow: \"0 0 0 1px #52A8EC, 0 0 0 4px rgba(29,155,209,.3)\",\n }),\n}));\n\nexport const StyledInputListItem = styled(\n (props: HvListItemProps) => <HvListItem {...props} />,\n transientOptions\n)(\n ({\n $singleLine,\n $isTagSelected,\n }: {\n $singleLine: boolean;\n $isTagSelected: boolean;\n }) => ({\n display: \"flex\",\n flexGrow: 1,\n height: 24,\n lineHeight: \"24px\",\n [`&.${listItemClasses.gutters}`]: {\n padding: \"0 5px\",\n },\n ...($singleLine && {\n display: \"table-cell\",\n minWidth: 100,\n width: \"100%\",\n paddingTop: \"3px!important\",\n verticalAlign: \"middle\",\n }),\n ...($isTagSelected && {\n [`& .${baseInputClasses.inputRoot}`]: {\n backgroundColor: theme.colors.atmo1,\n },\n }),\n })\n);\n\nexport const StyledInput = styled(\n (props: HvInputProps) => <HvInput {...props} />,\n transientOptions\n)(({ $singleLine }: { $singleLine: boolean }) => ({\n [`& .${baseInputClasses.root}`]: {\n width: \"100%\",\n border: \"none\",\n [`&:hover .${tagsInputClasses.tagInputBorderContainer}`]: {\n background: \"none\",\n },\n [`&:hover .${tagsInputClasses.tagInputBorderContainer}`]: {\n background: \"none\",\n },\n },\n [`&& .${baseInputClasses.inputRoot}`]: {\n marginLeft: 0,\n marginRight: 0,\n flex: \"1 1 auto\",\n minWidth: 48,\n height: 24,\n lineHeight: \"24px\",\n padding: 0,\n border: \"none\",\n },\n [`& .${baseInputClasses.inputBorderContainer}`]: {\n border: \"none\",\n background: \"none\",\n },\n [`& .${baseInputClasses.inputRootFocused}`]: {\n outline: \"none!important\",\n boxShadow: \"none!important\",\n },\n [`& .${baseInputClasses.root} .${baseInputClasses.inputRootReadOnly}`]: {\n backgroundColor: \"transparent \",\n border: \"none\",\n \"&:hover\": {\n border: \"none\",\n },\n },\n [`&& .${baseInputClasses.input}`]: {\n marginLeft: 0,\n },\n ...($singleLine && {}),\n}));\n\nexport const StyledSuggestions = styled((props: HvSuggestionsProps) => (\n <HvSuggestions {...props} />\n))({\n width: \"100%\",\n position: \"relative\",\n top: 59,\n [`& .${suggestionsClasses.root} .${suggestionsClasses.list} &`]: {\n width: \"100%\",\n },\n});\n"],"names":["StyledFormElement","_styled","props","HvFormElement","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","StyledLabelContainer","StyledLabel","HvLabel","StyledDescription","HvInfoMessage","StyledCharCounter","HvCharCounter","display","float","textAlign","marginBottom","StyledTagsList","HvListContainer","_extends","transientOptions","$disabled","$singleLine","$error","$resizable","$invalid","$readOnly","alignContent","clear","width","maxWidth","height","padding","overflow","position","flexDirection","flexWrap","backgroundColor","theme","colors","atmo1","border","tagsInput","borderColor","borderRadius","radii","base","cursor","hoverColor","baseInputClasses","inputRoot","outlineColor","outlineStyle","outlineWidth","outlineOffset","boxShadow","disabledBackgroundColor","atmo4","readOnlyBackgroundColor","readOnlyBorderColor","overflowX","overflowY","paddingTop","negative","resize","StyledError","HvWarningText","StyledListItem","HvListItem","lineHeight","listItemClasses","gutters","StyledTag","HvTag","$selected","tagsInputClasses","chipRoot","StyledInputListItem","$isTagSelected","flexGrow","minWidth","verticalAlign","StyledInput","HvInput","root","tagInputBorderContainer","background","marginLeft","marginRight","flex","inputBorderContainer","inputRootFocused","outline","inputRootReadOnly","input","StyledSuggestions","HvSuggestions","top","suggestionsClasses","list"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import validationState, { isInvalid } from "../Forms/FormElement/validationStates.js";
|
|
2
2
|
import { clsx } from "clsx";
|
|
3
|
-
import { useRef, useState, useMemo, useCallback, useEffect } from "react";
|
|
3
|
+
import { forwardRef, useRef, useState, useMemo, useCallback, useEffect } from "react";
|
|
4
|
+
import { useForkRef } from "@mui/material";
|
|
4
5
|
import isNil from "lodash/isNil";
|
|
5
6
|
import { DEFAULT_ERROR_MESSAGES, validateInput, validationTypes, computeValidationState, computeValidationMessage, hasBuiltInValidations } from "../BaseInput/validations.js";
|
|
6
7
|
import { StyledFormElement, StyledLabelContainer, StyledLabel, StyledInfoMessage, StyledCharCounter, StyledBaseInput, StyledWarningText } from "./TextArea.styles.js";
|
|
@@ -9,48 +10,49 @@ import { jsxs, jsx } from "@emotion/react/jsx-runtime";
|
|
|
9
10
|
import useUniqueId from "../../hooks/useUniqueId.js";
|
|
10
11
|
import { useControlled } from "../../hooks/useControlled.js";
|
|
11
12
|
import { setId } from "../../utils/setId.js";
|
|
12
|
-
const HvTextArea = ({
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
13
|
+
const HvTextArea = forwardRef((props, ref) => {
|
|
14
|
+
const {
|
|
15
|
+
id,
|
|
16
|
+
className,
|
|
17
|
+
classes,
|
|
18
|
+
name,
|
|
19
|
+
label,
|
|
20
|
+
description,
|
|
21
|
+
placeholder,
|
|
22
|
+
status,
|
|
23
|
+
statusMessage,
|
|
24
|
+
validationMessages,
|
|
25
|
+
maxCharQuantity,
|
|
26
|
+
minCharQuantity,
|
|
27
|
+
value: valueProp,
|
|
28
|
+
inputRef: inputRefProp,
|
|
29
|
+
rows = 1,
|
|
30
|
+
defaultValue = "",
|
|
31
|
+
middleCountLabel = "/",
|
|
32
|
+
countCharProps = {},
|
|
33
|
+
inputProps = {},
|
|
34
|
+
required = false,
|
|
35
|
+
readOnly = false,
|
|
36
|
+
disabled = false,
|
|
37
|
+
autoFocus = false,
|
|
38
|
+
resizable = false,
|
|
39
|
+
autoScroll = false,
|
|
40
|
+
hideCounter = false,
|
|
41
|
+
blockMax = false,
|
|
42
|
+
"aria-label": ariaLabel,
|
|
43
|
+
"aria-labelledby": ariaLabelledBy,
|
|
44
|
+
"aria-describedby": ariaDescribedBy,
|
|
45
|
+
"aria-errormessage": ariaErrorMessage,
|
|
46
|
+
validation,
|
|
47
|
+
onChange,
|
|
48
|
+
onBlur,
|
|
49
|
+
onFocus,
|
|
50
|
+
...others
|
|
51
|
+
} = props;
|
|
50
52
|
const elementId = useUniqueId(id, "hvtextarea");
|
|
51
53
|
const isDirty = useRef(false);
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
+
const inputRef = useRef(null);
|
|
55
|
+
const forkedRef = useForkRef(ref, inputRefProp, inputRef);
|
|
54
56
|
const [focused, setFocused] = useState(false);
|
|
55
57
|
const [autoScrolling, setAutoScrolling] = useState(autoScroll);
|
|
56
58
|
const [validationState$1, setValidationState] = useControlled(status, validationState.standBy);
|
|
@@ -64,7 +66,7 @@ const HvTextArea = ({
|
|
|
64
66
|
const errorMessages = useMemo(() => ({
|
|
65
67
|
...DEFAULT_ERROR_MESSAGES,
|
|
66
68
|
...validationMessages
|
|
67
|
-
}), [validationMessages
|
|
69
|
+
}), [validationMessages]);
|
|
68
70
|
const performValidation = useCallback(() => {
|
|
69
71
|
const inputValidity = validateInput(inputRef.current, value, required, minCharQuantity, maxCharQuantity, validationTypes.none, validation);
|
|
70
72
|
setValidationState(computeValidationState(inputValidity, isEmptyValue));
|
|
@@ -200,7 +202,7 @@ const HvTextArea = ({
|
|
|
200
202
|
"aria-controls": maxCharQuantity ? setId(elementId, "charCounter") : void 0,
|
|
201
203
|
...inputProps
|
|
202
204
|
},
|
|
203
|
-
inputRef,
|
|
205
|
+
inputRef: forkedRef,
|
|
204
206
|
$resizable: resizable,
|
|
205
207
|
...others
|
|
206
208
|
}), canShowError && /* @__PURE__ */ jsx(StyledWarningText, {
|
|
@@ -210,7 +212,7 @@ const HvTextArea = ({
|
|
|
210
212
|
children: validationMessage
|
|
211
213
|
})]
|
|
212
214
|
});
|
|
213
|
-
};
|
|
215
|
+
});
|
|
214
216
|
export {
|
|
215
217
|
HvTextArea
|
|
216
218
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextArea.js","sources":["../../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import { useControlled, useUniqueId } from \"@core/hooks\";\nimport validationStates, {\n isInvalid,\n} from \"@core/components/Forms/FormElement/validationStates\";\nimport { clsx } from \"clsx\";\nimport { useCallback, useRef, useState, useMemo, useEffect } from \"react\";\nimport { setId } from \"@core/utils\";\nimport isNil from \"lodash/isNil\";\nimport { HvValidationMessages } from \"@core/types\";\nimport {\n computeValidationMessage,\n computeValidationState,\n DEFAULT_ERROR_MESSAGES,\n hasBuiltInValidations,\n HvInputValidity,\n validateInput,\n validationTypes,\n} from \"../BaseInput/validations\";\nimport {\n StyledBaseInput,\n StyledCharCounter,\n StyledFormElement,\n StyledInfoMessage,\n StyledLabel,\n StyledLabelContainer,\n StyledWarningText,\n} from \"./TextArea.styles\";\nimport { HvBaseInputProps } from \"../BaseInput\";\nimport { HvCharCounterProps, HvFormStatus } from \"../Forms\";\nimport textAreaClasses, { HvTextAreaClasses } from \"./textAreaClasses\";\n\nexport interface HvTextAreaProps\n extends Omit<\n HvBaseInputProps,\n \"onChange\" | \"onBlur\" | \"rows\" | \"classes\" | \"onFocus\"\n > {\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /**\n * Provide additional descriptive text for the form element.\n */\n description?: React.ReactNode;\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvFormStatus;\n /**\n * The error message to show when `status` is \"invalid\".\n */\n statusMessage?: React.ReactNode;\n /**\n * Text between the current char counter and max value.\n */\n middleCountLabel?: string;\n /**\n * An Object containing the various texts associated with the input.\n */\n validationMessages?: HvValidationMessages;\n /**\n * The custom validation function, it receives the value and must return\n * either `true` for valid or `false` for invalid, default validations would only\n * occur if this function is null or undefined\n */\n validation?: (value: string) => boolean;\n /**\n * The maximum allowed length of the characters, if this value is null no check\n * will be performed.\n */\n maxCharQuantity?: number;\n /**\n * The minimum allowed length of the characters, if this value is null no check\n * will be perform.\n */\n minCharQuantity?: number;\n /**\n * If `true` it should autofocus.\n */\n autoFocus?: boolean;\n /**\n * The number of rows of the text area\n */\n rows?: number;\n /**\n * If `true` the component is resizable.\n */\n resizable?: boolean;\n /**\n * Auto-scroll: automatically scroll to the end on value changes.\n * Will stop if the user scrolls up and resume if scrolled to the bottom.\n */\n autoScroll?: boolean;\n /**\n * If true it isn't possible to pass the `maxCharQuantity`\n */\n blockMax?: boolean;\n /**\n * If `true` the character counter isn't shown even if maxCharQuantity is set.\n */\n hideCounter?: boolean;\n /**\n * Props passed to the char count.\n */\n countCharProps?: Partial<HvCharCounterProps>;\n /**\n * Called back when the value is changed.\n */\n onChange?: (\n event: React.ChangeEvent<HTMLTextAreaElement>,\n value: string\n ) => void;\n /**\n * Called back when the value is changed.\n */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement>,\n value: string,\n validationState: HvInputValidity\n ) => void;\n /**\n * The function that will be executed onBlur, allows checking the value state,\n * it receives the value.\n */\n onFocus?: (\n event: React.FocusEvent<HTMLTextAreaElement>,\n value: string\n ) => void;\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes?: HvTextAreaClasses;\n}\n\n/**\n * A text area is a multiline text input box, with an optional character counter when there is a length limit.\n */\nexport const HvTextArea = ({\n id,\n className,\n classes,\n name,\n label,\n description,\n placeholder,\n status,\n statusMessage,\n validationMessages,\n maxCharQuantity,\n minCharQuantity,\n value: valueProp,\n inputRef: inputRefProp,\n rows = 1,\n defaultValue = \"\",\n middleCountLabel = \"/\",\n countCharProps = {},\n inputProps = {},\n required = false,\n readOnly = false,\n disabled = false,\n autoFocus = false,\n resizable = false,\n autoScroll = false,\n hideCounter = false,\n blockMax = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-errormessage\": ariaErrorMessage,\n validation,\n onChange,\n onBlur,\n onFocus,\n ...others\n}: HvTextAreaProps) => {\n const elementId = useUniqueId(id, \"hvtextarea\");\n\n // Signals that the user has manually edited the input value\n const isDirty = useRef<boolean>(false);\n\n const inputRefOwn = useRef(null);\n\n const inputRef = inputRefProp || inputRefOwn;\n\n const [focused, setFocused] = useState<boolean>(false);\n\n const [autoScrolling, setAutoScrolling] = useState(autoScroll);\n\n const [validationState, setValidationState] = useControlled(\n status,\n validationStates.standBy\n );\n\n const [validationMessage, setValidationMessage] = useControlled(\n statusMessage,\n \"\"\n );\n\n const [value, setValue] = useControlled(valueProp, defaultValue);\n\n const isStateInvalid = isInvalid(validationState);\n\n const isEmptyValue = value == null || value === \"\";\n\n const hasLabel = label != null;\n\n const hasDescription = description != null;\n\n const hasCounter = maxCharQuantity != null && !hideCounter;\n\n // ValidationMessages reference tends to change, as users will not memorize/useState for it;\n // Dependencies must be more explicit so we set\n const errorMessages = useMemo(\n () => ({ ...DEFAULT_ERROR_MESSAGES, ...validationMessages }),\n [\n validationMessages?.error,\n validationMessages?.requiredError,\n validationMessages?.minCharError,\n validationMessages?.maxCharError,\n ]\n );\n\n // Validates the input, sets the status and the statusMessage accordingly (if uncontrolled)\n // and returns the validity state of the input.\n const performValidation = useCallback(() => {\n const inputValidity = validateInput(\n inputRef.current,\n value,\n required,\n minCharQuantity,\n maxCharQuantity,\n validationTypes.none,\n validation\n );\n\n // This will only run if status is uncontrolled\n setValidationState(computeValidationState(inputValidity, isEmptyValue));\n\n // This will only run if statusMessage is uncontrolled\n setValidationMessage(\n computeValidationMessage(inputValidity, errorMessages)\n );\n\n return inputValidity;\n }, [\n errorMessages,\n inputRef,\n isEmptyValue,\n maxCharQuantity,\n minCharQuantity,\n required,\n setValidationMessage,\n setValidationState,\n validation,\n value,\n ]);\n\n const isOverflow = (currentValue) =>\n isNil(maxCharQuantity) ? false : currentValue.length > maxCharQuantity;\n\n /**\n * Limit the string to the maxCharQuantity length.\n *\n * @param value - string to evaluate\n * @returns {string|*} - string according the limit\n */\n const limitValue = (currentValue) => {\n if (currentValue === undefined || !blockMax) return currentValue;\n return !isOverflow(currentValue)\n ? currentValue\n : currentValue.substring(0, maxCharQuantity);\n };\n\n /**\n * Validates the text area updating the state and modifying the warning text, also executes\n * the user provided onBlur passing the current validation status and value.\n *\n * @returns {undefined}\n */\n const onContainerBlurHandler = (event) => {\n setFocused(false);\n\n const inputValidity = performValidation();\n\n onBlur?.(event, value, inputValidity);\n };\n\n /**\n * Updates the length of the string while is being inputted, also executes the user onChange\n * allowing the customization of the input if required.\n *\n * @param {String} value - The value provided by the HvInput\n */\n const onChangeHandler = (event, currentValue) => {\n isDirty.current = true;\n\n const limitedValue = blockMax ? limitValue(currentValue) : currentValue;\n\n // Set the input value (only when value is uncontrolled)\n setValue(limitedValue);\n\n onChange?.(event, limitedValue);\n };\n\n /**\n * Updates the state putting again the value from the state because the input value is\n * not automatically manage, it also executes the onFocus function from the user passing the value\n */\n const onFocusHandler = (event) => {\n setFocused(true);\n\n // Reset validation status to standBy (only when status is uncontrolled)\n setValidationState(validationStates.standBy);\n\n onFocus?.(event, value);\n };\n\n const isScrolledDown = useCallback(() => {\n const el = inputRef.current;\n return el == null || el.offsetHeight + el.scrollTop >= el.scrollHeight;\n }, [inputRef]);\n\n const scrollDown = useCallback(() => {\n const el = inputRef.current;\n if (el != null) {\n el.scrollTop = el.scrollHeight - el.clientHeight;\n }\n }, [inputRef]);\n\n const addScrollListener = useCallback(() => {\n const scrollHandler = {\n handleEvent: () => {\n setAutoScrolling(isScrolledDown());\n },\n };\n inputRef.current?.addEventListener(\"scroll\", scrollHandler);\n }, [inputRef, isScrolledDown]);\n\n useEffect(() => {\n if (autoScroll) {\n addScrollListener();\n }\n }, [autoScroll, addScrollListener]);\n\n useEffect(() => {\n if (autoScrolling) {\n scrollDown();\n }\n }, [valueProp, autoScrolling, scrollDown]);\n\n // Run initial validation after first render\n // and also when any validation condition changes\n useEffect(() => {\n if (focused || (!isDirty.current && isEmptyValue)) {\n // Skip validation if currently focused or if empty and\n // the user never manually edited the input value\n return;\n }\n\n performValidation();\n }, [focused, isEmptyValue, performValidation]);\n\n // The error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and any of the built-in validations are active\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined &&\n hasBuiltInValidations(\n required,\n validationTypes.none,\n minCharQuantity,\n // If blockMax is true maxCharQuantity will never produce an error\n // unless the value is controlled, so we can't prevent it to overflow maxCharQuantity\n maxCharQuantity != null && (blockMax !== true || value != null)\n ? maxCharQuantity\n : null,\n validation,\n inputProps\n )));\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n }\n\n return (\n <StyledFormElement\n id={id}\n name={name}\n status={validationState}\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n className={clsx(\n textAreaClasses.root,\n classes?.root,\n className,\n resizable && clsx(textAreaClasses.resizable, classes?.resizable),\n disabled && clsx(textAreaClasses.disabled, classes?.disabled),\n isStateInvalid && clsx(textAreaClasses.invalid, classes?.invalid)\n )}\n $resizable={resizable}\n onBlur={onContainerBlurHandler}\n >\n {(hasLabel || hasDescription) && (\n <StyledLabelContainer\n className={clsx(\n textAreaClasses.labelContainer,\n classes?.labelContainer\n )}\n >\n {hasLabel && (\n <StyledLabel\n className={clsx(textAreaClasses.label, classes?.label)}\n id={setId(id, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n />\n )}\n\n {hasDescription && (\n <StyledInfoMessage\n className={clsx(\n textAreaClasses.description,\n classes?.description\n )}\n id={setId(elementId, \"description\")}\n >\n {description}\n </StyledInfoMessage>\n )}\n </StyledLabelContainer>\n )}\n\n {hasCounter && (\n <StyledCharCounter\n id={setId(elementId, \"charCounter\")}\n className={clsx(\n textAreaClasses.characterCounter,\n classes?.characterCounter\n )}\n separator={middleCountLabel}\n currentCharQuantity={value.length}\n maxCharQuantity={maxCharQuantity}\n {...countCharProps}\n />\n )}\n\n <StyledBaseInput\n classes={{\n root: clsx(textAreaClasses.baseInput, classes?.baseInput),\n input: clsx(textAreaClasses.input, classes?.input),\n inputResizable: clsx(\n textAreaClasses.inputResizable,\n classes?.inputResizable\n ),\n }}\n id={hasLabel ? setId(elementId, \"input\") : setId(id, \"input\")}\n name={name}\n value={value}\n required={required}\n readOnly={readOnly}\n disabled={disabled}\n onChange={onChangeHandler}\n autoFocus={autoFocus}\n onFocus={onFocusHandler}\n placeholder={placeholder}\n invalid={isStateInvalid}\n resizable={resizable}\n multiline\n rows={rows}\n inputProps={{\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-invalid\": isStateInvalid ? true : undefined,\n \"aria-errormessage\": errorMessageId,\n \"aria-describedby\":\n ariaDescribedBy != null\n ? ariaDescribedBy\n : (description && setId(elementId, \"description\")) || undefined,\n \"aria-controls\": maxCharQuantity\n ? setId(elementId, \"charCounter\")\n : undefined,\n ...inputProps,\n }}\n inputRef={inputRef}\n $resizable={resizable}\n {...others}\n />\n\n {canShowError && (\n <StyledWarningText\n id={setId(elementId, \"error\")}\n className={clsx(textAreaClasses.error, classes?.error)}\n disableBorder\n >\n {validationMessage}\n </StyledWarningText>\n )}\n </StyledFormElement>\n );\n};\n"],"names":["HvTextArea","id","className","classes","name","label","description","placeholder","status","statusMessage","validationMessages","maxCharQuantity","minCharQuantity","value","valueProp","inputRef","inputRefProp","rows","defaultValue","middleCountLabel","countCharProps","inputProps","required","readOnly","disabled","autoFocus","resizable","autoScroll","hideCounter","blockMax","ariaLabel","ariaLabelledBy","ariaDescribedBy","ariaErrorMessage","validation","onChange","onBlur","onFocus","others","elementId","useUniqueId","isDirty","useRef","inputRefOwn","focused","setFocused","useState","autoScrolling","setAutoScrolling","validationState","setValidationState","useControlled","validationStates","standBy","validationMessage","setValidationMessage","setValue","isStateInvalid","isInvalid","isEmptyValue","hasLabel","hasDescription","hasCounter","errorMessages","useMemo","DEFAULT_ERROR_MESSAGES","error","requiredError","minCharError","maxCharError","performValidation","useCallback","inputValidity","validateInput","current","validationTypes","none","computeValidationState","computeValidationMessage","isOverflow","currentValue","isNil","length","limitValue","undefined","substring","onContainerBlurHandler","event","onChangeHandler","limitedValue","onFocusHandler","isScrolledDown","el","offsetHeight","scrollTop","scrollHeight","scrollDown","clientHeight","addScrollListener","scrollHandler","handleEvent","addEventListener","useEffect","canShowError","hasBuiltInValidations","errorMessageId","setId","StyledFormElement","clsx","textAreaClasses","root","invalid","$resizable","children","StyledLabelContainer","labelContainer","_jsx","StyledLabel","htmlFor","StyledInfoMessage","StyledCharCounter","characterCounter","separator","currentCharQuantity","StyledBaseInput","baseInput","input","inputResizable","multiline","StyledWarningText","disableBorder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TextArea.js","sources":["../../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import { useControlled, useUniqueId } from \"@core/hooks\";\nimport validationStates, {\n isInvalid,\n} from \"@core/components/Forms/FormElement/validationStates\";\nimport { clsx } from \"clsx\";\nimport {\n useCallback,\n useRef,\n useState,\n useMemo,\n useEffect,\n forwardRef,\n} from \"react\";\nimport { useForkRef } from \"@mui/material\";\nimport { setId } from \"@core/utils\";\nimport isNil from \"lodash/isNil\";\nimport { HvValidationMessages } from \"@core/types\";\nimport {\n computeValidationMessage,\n computeValidationState,\n DEFAULT_ERROR_MESSAGES,\n hasBuiltInValidations,\n HvInputValidity,\n validateInput,\n validationTypes,\n} from \"../BaseInput/validations\";\nimport {\n StyledBaseInput,\n StyledCharCounter,\n StyledFormElement,\n StyledInfoMessage,\n StyledLabel,\n StyledLabelContainer,\n StyledWarningText,\n} from \"./TextArea.styles\";\nimport { HvBaseInputProps } from \"../BaseInput\";\nimport { HvCharCounterProps, HvFormStatus } from \"../Forms\";\nimport textAreaClasses, { HvTextAreaClasses } from \"./textAreaClasses\";\n\nexport interface HvTextAreaProps\n extends Omit<\n HvBaseInputProps,\n \"onChange\" | \"onBlur\" | \"rows\" | \"classes\" | \"onFocus\"\n > {\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /**\n * Provide additional descriptive text for the form element.\n */\n description?: React.ReactNode;\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvFormStatus;\n /**\n * The error message to show when `status` is \"invalid\".\n */\n statusMessage?: React.ReactNode;\n /**\n * Text between the current char counter and max value.\n */\n middleCountLabel?: string;\n /**\n * An Object containing the various texts associated with the input.\n */\n validationMessages?: HvValidationMessages;\n /**\n * The custom validation function, it receives the value and must return\n * either `true` for valid or `false` for invalid, default validations would only\n * occur if this function is null or undefined\n */\n validation?: (value: string) => boolean;\n /**\n * The maximum allowed length of the characters, if this value is null no check\n * will be performed.\n */\n maxCharQuantity?: number;\n /**\n * The minimum allowed length of the characters, if this value is null no check\n * will be perform.\n */\n minCharQuantity?: number;\n /**\n * If `true` it should autofocus.\n */\n autoFocus?: boolean;\n /**\n * The number of rows of the text area\n */\n rows?: number;\n /**\n * If `true` the component is resizable.\n */\n resizable?: boolean;\n /**\n * Auto-scroll: automatically scroll to the end on value changes.\n * Will stop if the user scrolls up and resume if scrolled to the bottom.\n */\n autoScroll?: boolean;\n /**\n * If true it isn't possible to pass the `maxCharQuantity`\n */\n blockMax?: boolean;\n /**\n * If `true` the character counter isn't shown even if maxCharQuantity is set.\n */\n hideCounter?: boolean;\n /**\n * Props passed to the char count.\n */\n countCharProps?: Partial<HvCharCounterProps>;\n /**\n * Called back when the value is changed.\n */\n onChange?: (\n event: React.ChangeEvent<HTMLTextAreaElement>,\n value: string\n ) => void;\n /**\n * Called back when the value is changed.\n */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement>,\n value: string,\n validationState: HvInputValidity\n ) => void;\n /**\n * The function that will be executed onBlur, allows checking the value state,\n * it receives the value.\n */\n onFocus?: (\n event: React.FocusEvent<HTMLTextAreaElement>,\n value: string\n ) => void;\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes?: HvTextAreaClasses;\n}\n\n/**\n * A text area is a multiline text input box, with an optional character counter when there is a length limit.\n */\nexport const HvTextArea = forwardRef<any, HvTextAreaProps>((props, ref) => {\n const {\n id,\n className,\n classes,\n name,\n label,\n description,\n placeholder,\n status,\n statusMessage,\n validationMessages,\n maxCharQuantity,\n minCharQuantity,\n value: valueProp,\n inputRef: inputRefProp,\n rows = 1,\n defaultValue = \"\",\n middleCountLabel = \"/\",\n countCharProps = {},\n inputProps = {},\n required = false,\n readOnly = false,\n disabled = false,\n autoFocus = false,\n resizable = false,\n autoScroll = false,\n hideCounter = false,\n blockMax = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-errormessage\": ariaErrorMessage,\n validation,\n onChange,\n onBlur,\n onFocus,\n ...others\n } = props;\n const elementId = useUniqueId(id, \"hvtextarea\");\n\n // Signals that the user has manually edited the input value\n const isDirty = useRef<boolean>(false);\n\n const inputRef = useRef<HTMLTextAreaElement>(null);\n const forkedRef = useForkRef(ref, inputRefProp, inputRef);\n\n const [focused, setFocused] = useState<boolean>(false);\n\n const [autoScrolling, setAutoScrolling] = useState(autoScroll);\n\n const [validationState, setValidationState] = useControlled(\n status,\n validationStates.standBy\n );\n\n const [validationMessage, setValidationMessage] = useControlled(\n statusMessage,\n \"\"\n );\n\n const [value, setValue] = useControlled(valueProp, defaultValue);\n\n const isStateInvalid = isInvalid(validationState);\n\n const isEmptyValue = value == null || value === \"\";\n\n const hasLabel = label != null;\n\n const hasDescription = description != null;\n\n const hasCounter = maxCharQuantity != null && !hideCounter;\n\n // ValidationMessages reference tends to change, as users will not memorize/useState for it;\n // Dependencies must be more explicit so we set\n const errorMessages = useMemo(\n () => ({ ...DEFAULT_ERROR_MESSAGES, ...validationMessages }),\n [validationMessages]\n );\n\n // Validates the input, sets the status and the statusMessage accordingly (if uncontrolled)\n // and returns the validity state of the input.\n const performValidation = useCallback(() => {\n const inputValidity = validateInput(\n inputRef.current,\n value,\n required,\n minCharQuantity,\n maxCharQuantity,\n validationTypes.none,\n validation\n );\n\n // This will only run if status is uncontrolled\n setValidationState(computeValidationState(inputValidity, isEmptyValue));\n\n // This will only run if statusMessage is uncontrolled\n setValidationMessage(\n computeValidationMessage(inputValidity, errorMessages)\n );\n\n return inputValidity;\n }, [\n errorMessages,\n inputRef,\n isEmptyValue,\n maxCharQuantity,\n minCharQuantity,\n required,\n setValidationMessage,\n setValidationState,\n validation,\n value,\n ]);\n\n const isOverflow = (currentValue) =>\n isNil(maxCharQuantity) ? false : currentValue.length > maxCharQuantity;\n\n /**\n * Limit the string to the maxCharQuantity length.\n *\n * @param value - string to evaluate\n * @returns {string|*} - string according the limit\n */\n const limitValue = (currentValue) => {\n if (currentValue === undefined || !blockMax) return currentValue;\n return !isOverflow(currentValue)\n ? currentValue\n : currentValue.substring(0, maxCharQuantity);\n };\n\n /**\n * Validates the text area updating the state and modifying the warning text, also executes\n * the user provided onBlur passing the current validation status and value.\n *\n * @returns {undefined}\n */\n const onContainerBlurHandler = (event) => {\n setFocused(false);\n\n const inputValidity = performValidation();\n\n onBlur?.(event, value, inputValidity);\n };\n\n /**\n * Updates the length of the string while is being inputted, also executes the user onChange\n * allowing the customization of the input if required.\n *\n * @param {String} value - The value provided by the HvInput\n */\n const onChangeHandler = (event, currentValue) => {\n isDirty.current = true;\n\n const limitedValue = blockMax ? limitValue(currentValue) : currentValue;\n\n // Set the input value (only when value is uncontrolled)\n setValue(limitedValue);\n\n onChange?.(event, limitedValue);\n };\n\n /**\n * Updates the state putting again the value from the state because the input value is\n * not automatically manage, it also executes the onFocus function from the user passing the value\n */\n const onFocusHandler = (event) => {\n setFocused(true);\n\n // Reset validation status to standBy (only when status is uncontrolled)\n setValidationState(validationStates.standBy);\n\n onFocus?.(event, value);\n };\n\n const isScrolledDown = useCallback(() => {\n const el = inputRef.current;\n return el == null || el.offsetHeight + el.scrollTop >= el.scrollHeight;\n }, [inputRef]);\n\n const scrollDown = useCallback(() => {\n const el = inputRef.current;\n if (el != null) {\n el.scrollTop = el.scrollHeight - el.clientHeight;\n }\n }, [inputRef]);\n\n const addScrollListener = useCallback(() => {\n const scrollHandler = {\n handleEvent: () => {\n setAutoScrolling(isScrolledDown());\n },\n };\n inputRef.current?.addEventListener(\"scroll\", scrollHandler);\n }, [inputRef, isScrolledDown]);\n\n useEffect(() => {\n if (autoScroll) {\n addScrollListener();\n }\n }, [autoScroll, addScrollListener]);\n\n useEffect(() => {\n if (autoScrolling) {\n scrollDown();\n }\n }, [valueProp, autoScrolling, scrollDown]);\n\n // Run initial validation after first render\n // and also when any validation condition changes\n useEffect(() => {\n if (focused || (!isDirty.current && isEmptyValue)) {\n // Skip validation if currently focused or if empty and\n // the user never manually edited the input value\n return;\n }\n\n performValidation();\n }, [focused, isEmptyValue, performValidation]);\n\n // The error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and any of the built-in validations are active\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined &&\n hasBuiltInValidations(\n required,\n validationTypes.none,\n minCharQuantity,\n // If blockMax is true maxCharQuantity will never produce an error\n // unless the value is controlled, so we can't prevent it to overflow maxCharQuantity\n maxCharQuantity != null && (blockMax !== true || value != null)\n ? maxCharQuantity\n : null,\n validation,\n inputProps\n )));\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n }\n\n return (\n <StyledFormElement\n id={id}\n name={name}\n status={validationState}\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n className={clsx(\n textAreaClasses.root,\n classes?.root,\n className,\n resizable && clsx(textAreaClasses.resizable, classes?.resizable),\n disabled && clsx(textAreaClasses.disabled, classes?.disabled),\n isStateInvalid && clsx(textAreaClasses.invalid, classes?.invalid)\n )}\n $resizable={resizable}\n onBlur={onContainerBlurHandler}\n >\n {(hasLabel || hasDescription) && (\n <StyledLabelContainer\n className={clsx(\n textAreaClasses.labelContainer,\n classes?.labelContainer\n )}\n >\n {hasLabel && (\n <StyledLabel\n className={clsx(textAreaClasses.label, classes?.label)}\n id={setId(id, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n />\n )}\n\n {hasDescription && (\n <StyledInfoMessage\n className={clsx(\n textAreaClasses.description,\n classes?.description\n )}\n id={setId(elementId, \"description\")}\n >\n {description}\n </StyledInfoMessage>\n )}\n </StyledLabelContainer>\n )}\n\n {hasCounter && (\n <StyledCharCounter\n id={setId(elementId, \"charCounter\")}\n className={clsx(\n textAreaClasses.characterCounter,\n classes?.characterCounter\n )}\n separator={middleCountLabel}\n currentCharQuantity={value.length}\n maxCharQuantity={maxCharQuantity}\n {...countCharProps}\n />\n )}\n\n <StyledBaseInput\n classes={{\n root: clsx(textAreaClasses.baseInput, classes?.baseInput),\n input: clsx(textAreaClasses.input, classes?.input),\n inputResizable: clsx(\n textAreaClasses.inputResizable,\n classes?.inputResizable\n ),\n }}\n id={hasLabel ? setId(elementId, \"input\") : setId(id, \"input\")}\n name={name}\n value={value}\n required={required}\n readOnly={readOnly}\n disabled={disabled}\n onChange={onChangeHandler}\n autoFocus={autoFocus}\n onFocus={onFocusHandler}\n placeholder={placeholder}\n invalid={isStateInvalid}\n resizable={resizable}\n multiline\n rows={rows}\n inputProps={{\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-invalid\": isStateInvalid ? true : undefined,\n \"aria-errormessage\": errorMessageId,\n \"aria-describedby\":\n ariaDescribedBy != null\n ? ariaDescribedBy\n : (description && setId(elementId, \"description\")) || undefined,\n \"aria-controls\": maxCharQuantity\n ? setId(elementId, \"charCounter\")\n : undefined,\n ...inputProps,\n }}\n inputRef={forkedRef}\n $resizable={resizable}\n {...others}\n />\n\n {canShowError && (\n <StyledWarningText\n id={setId(elementId, \"error\")}\n className={clsx(textAreaClasses.error, classes?.error)}\n disableBorder\n >\n {validationMessage}\n </StyledWarningText>\n )}\n </StyledFormElement>\n );\n});\n"],"names":["HvTextArea","forwardRef","props","ref","id","className","classes","name","label","description","placeholder","status","statusMessage","validationMessages","maxCharQuantity","minCharQuantity","value","valueProp","inputRef","inputRefProp","rows","defaultValue","middleCountLabel","countCharProps","inputProps","required","readOnly","disabled","autoFocus","resizable","autoScroll","hideCounter","blockMax","ariaLabel","ariaLabelledBy","ariaDescribedBy","ariaErrorMessage","validation","onChange","onBlur","onFocus","others","elementId","useUniqueId","isDirty","useRef","forkedRef","useForkRef","focused","setFocused","useState","autoScrolling","setAutoScrolling","validationState","setValidationState","useControlled","validationStates","standBy","validationMessage","setValidationMessage","setValue","isStateInvalid","isInvalid","isEmptyValue","hasLabel","hasDescription","hasCounter","errorMessages","useMemo","DEFAULT_ERROR_MESSAGES","performValidation","useCallback","inputValidity","validateInput","current","validationTypes","none","computeValidationState","computeValidationMessage","isOverflow","currentValue","isNil","length","limitValue","undefined","substring","onContainerBlurHandler","event","onChangeHandler","limitedValue","onFocusHandler","isScrolledDown","el","offsetHeight","scrollTop","scrollHeight","scrollDown","clientHeight","addScrollListener","scrollHandler","handleEvent","addEventListener","useEffect","canShowError","hasBuiltInValidations","errorMessageId","setId","StyledFormElement","clsx","textAreaClasses","root","invalid","$resizable","children","StyledLabelContainer","labelContainer","_jsx","StyledLabel","htmlFor","StyledInfoMessage","StyledCharCounter","characterCounter","separator","currentCharQuantity","StyledBaseInput","baseInput","input","inputResizable","multiline","StyledWarningText","error","disableBorder"],"mappings":";;;;;;;;;;;;AAyJO,MAAMA,aAAaC,WAAiC,CAACC,OAAOC,QAAQ;AACnE,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,OAAOC;AAAAA,IACPC,UAAUC;AAAAA,IACVC,OAAO;AAAA,IACPC,eAAe;AAAA,IACfC,mBAAmB;AAAA,IACnBC,iBAAiB,CAAC;AAAA,IAClBC,aAAa,CAAC;AAAA,IACdC,WAAW;AAAA,IACXC,WAAW;AAAA,IACXC,WAAW;AAAA,IACXC,YAAY;AAAA,IACZC,YAAY;AAAA,IACZC,aAAa;AAAA,IACbC,cAAc;AAAA,IACdC,WAAW;AAAA,IACX,cAAcC;AAAAA,IACd,mBAAmBC;AAAAA,IACnB,oBAAoBC;AAAAA,IACpB,qBAAqBC;AAAAA,IACrBC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACA,GAAGC;AAAAA,EACDvC,IAAAA;AACEwC,QAAAA,YAAYC,YAAYvC,IAAI,YAAY;AAGxCwC,QAAAA,UAAUC,OAAgB,KAAK;AAE/B3B,QAAAA,WAAW2B,OAA4B,IAAI;AACjD,QAAMC,YAAYC,WAAW5C,KAAKgB,cAAcD,QAAQ;AAExD,QAAM,CAAC8B,SAASC,UAAU,IAAIC,SAAkB,KAAK;AAErD,QAAM,CAACC,eAAeC,gBAAgB,IAAIF,SAASpB,UAAU;AAE7D,QAAM,CAACuB,mBAAiBC,kBAAkB,IAAIC,cAC5C5C,QACA6C,gBAAiBC,OACnB;AAEA,QAAM,CAACC,mBAAmBC,oBAAoB,IAAIJ,cAChD3C,eACA,EACF;AAEA,QAAM,CAACI,OAAO4C,QAAQ,IAAIL,cAActC,WAAWI,YAAY;AAEzDwC,QAAAA,iBAAiBC,UAAUT,iBAAe;AAE1CU,QAAAA,eAAe/C,SAAS,QAAQA,UAAU;AAEhD,QAAMgD,WAAWxD,SAAS;AAE1B,QAAMyD,iBAAiBxD,eAAe;AAEhCyD,QAAAA,aAAapD,mBAAmB,QAAQ,CAACiB;AAIzCoC,QAAAA,gBAAgBC,QACpB,OAAO;AAAA,IAAE,GAAGC;AAAAA,IAAwB,GAAGxD;AAAAA,EAAAA,IACvC,CAACA,kBAAkB,CACrB;AAIMyD,QAAAA,oBAAoBC,YAAY,MAAM;AACpCC,UAAAA,gBAAgBC,cACpBvD,SAASwD,SACT1D,OACAS,UACAV,iBACAD,iBACA6D,gBAAgBC,MAChBvC,UACF;AAGmBwC,uBAAAA,uBAAuBL,eAAeT,YAAY,CAAC;AAIpEe,yBAAAA,yBAAyBN,eAAeL,aAAa,CACvD;AAEOK,WAAAA;AAAAA,EACN,GAAA,CACDL,eACAjD,UACA6C,cACAjD,iBACAC,iBACAU,UACAkC,sBACAL,oBACAjB,YACArB,KAAK,CACN;AAED,QAAM+D,aAAcC,CAClBC,iBAAAA,MAAMnE,eAAe,IAAI,QAAQkE,aAAaE,SAASpE;AAQzD,QAAMqE,aAAcH,CAAiB,iBAAA;AAC/BA,QAAAA,iBAAiBI,UAAa,CAACpD;AAAiBgD,aAAAA;AAC7C,WAAA,CAACD,WAAWC,YAAY,IAC3BA,eACAA,aAAaK,UAAU,GAAGvE,eAAe;AAAA,EAAA;AAS/C,QAAMwE,yBAA0BC,CAAU,UAAA;AACxCtC,eAAW,KAAK;AAEhB,UAAMuB,gBAAgBF;AAEbiB,qCAAAA,OAAOvE,OAAOwD;AAAAA,EAAa;AAShCgB,QAAAA,kBAAkBA,CAACD,OAAOP,iBAAiB;AAC/CpC,YAAQ8B,UAAU;AAElB,UAAMe,eAAezD,WAAWmD,WAAWH,YAAY,IAAIA;AAG3DpB,aAAS6B,YAAY;AAErBnD,yCAAWiD,OAAOE;AAAAA,EAAY;AAOhC,QAAMC,iBAAkBH,CAAU,UAAA;AAChCtC,eAAW,IAAI;AAGfK,uBAAmBE,gBAAiBC,OAAO;AAE3CjB,uCAAU+C,OAAOvE;AAAAA,EAAK;AAGlB2E,QAAAA,iBAAiBpB,YAAY,MAAM;AACvC,UAAMqB,KAAK1E,SAASwD;AACpB,WAAOkB,MAAM,QAAQA,GAAGC,eAAeD,GAAGE,aAAaF,GAAGG;AAAAA,EAAAA,GACzD,CAAC7E,QAAQ,CAAC;AAEP8E,QAAAA,aAAazB,YAAY,MAAM;AACnC,UAAMqB,KAAK1E,SAASwD;AACpB,QAAIkB,MAAM,MAAM;AACXE,SAAAA,YAAYF,GAAGG,eAAeH,GAAGK;AAAAA,IACtC;AAAA,EAAA,GACC,CAAC/E,QAAQ,CAAC;AAEPgF,QAAAA,oBAAoB3B,YAAY,MAAM;;AAC1C,UAAM4B,gBAAgB;AAAA,MACpBC,aAAaA,MAAM;AACjBhD,yBAAiBuC,gBAAgB;AAAA,MACnC;AAAA,IAAA;AAEOjB,mBAAAA,YAAAA,mBAAS2B,iBAAiB,UAAUF;AAAAA,EAAa,GACzD,CAACjF,UAAUyE,cAAc,CAAC;AAE7BW,YAAU,MAAM;AACd,QAAIxE,YAAY;AACI;IACpB;AAAA,EAAA,GACC,CAACA,YAAYoE,iBAAiB,CAAC;AAElCI,YAAU,MAAM;AACd,QAAInD,eAAe;AACN;IACb;AAAA,EACC,GAAA,CAAClC,WAAWkC,eAAe6C,UAAU,CAAC;AAIzCM,YAAU,MAAM;AACd,QAAItD,WAAY,CAACJ,QAAQ8B,WAAWX,cAAe;AAGjD;AAAA,IACF;AAEkB;EACjB,GAAA,CAACf,SAASe,cAAcO,iBAAiB,CAAC;AAMvCiC,QAAAA,eACJnE,oBAAoB,SAClBzB,WAAWyE,UAAaxE,kBAAkBwE,UACzCzE,WAAWyE,UACVoB;AAAAA,IACE/E;AAAAA,IACAkD,gBAAgBC;AAAAA,IAChB7D;AAAAA;AAAAA;AAAAA,IAGAD,mBAAmB,SAASkB,aAAa,QAAQhB,SAAS,QACtDF,kBACA;AAAA,IACJuB;AAAAA,IACAb;AAAAA,EAAAA;AAGJiF,MAAAA;AACJ,MAAI5C,gBAAgB;AAClB4C,qBAAiBF,eACbG,MAAMhE,WAAW,OAAO,IACxBN;AAAAA,EACN;AAEA,8BACGuE,mBAAiB;AAAA,IAChBvG;AAAAA,IACAG;AAAAA,IACAI,QAAQ0C;AAAAA,IACR1B;AAAAA,IACAF;AAAAA,IACAC;AAAAA,IACArB,WAAWuG,KACTC,gBAAgBC,MAChBxG,mCAASwG,MACTzG,WACAwB,aAAa+E,KAAKC,gBAAgBhF,WAAWvB,mCAASuB,SAAS,GAC/DF,YAAYiF,KAAKC,gBAAgBlF,UAAUrB,mCAASqB,QAAQ,GAC5DkC,kBAAkB+C,KAAKC,gBAAgBE,SAASzG,mCAASyG,OAAO,CAClE;AAAA,IACAC,YAAYnF;AAAAA,IACZU,QAAQ+C;AAAAA,IAAuB2B,UAAA,EAE7BjD,YAAYC,wCACXiD,sBAAoB;AAAA,MACnB7G,WAAWuG,KACTC,gBAAgBM,gBAChB7G,mCAAS6G,cACX;AAAA,MAAEF,UAEDjD,CAAAA,YACCoD,oBAACC,aAAW;AAAA,QACVhH,WAAWuG,KAAKC,gBAAgBrG,OAAOF,mCAASE,KAAK;AAAA,QACrDJ,IAAIsG,MAAMtG,IAAI,OAAO;AAAA,QACrBkH,SAASZ,MAAMhE,WAAW,OAAO;AAAA,QACjClC;AAAAA,MAAAA,CACD,GAGFyD,kBACCmD,oBAACG,mBAAiB;AAAA,QAChBlH,WAAWuG,KACTC,gBAAgBpG,aAChBH,mCAASG,WACX;AAAA,QACAL,IAAIsG,MAAMhE,WAAW,aAAa;AAAA,QAAEuE,UAEnCxG;AAAAA,MAAAA,CACgB,CACpB;AAAA,IAAA,CACmB,GAGvByD,cACCkD,oBAACI,mBAAiB;AAAA,MAChBpH,IAAIsG,MAAMhE,WAAW,aAAa;AAAA,MAClCrC,WAAWuG,KACTC,gBAAgBY,kBAChBnH,mCAASmH,gBACX;AAAA,MACAC,WAAWpG;AAAAA,MACXqG,qBAAqB3G,MAAMkE;AAAAA,MAC3BpE;AAAAA,MAAiC,GAC7BS;AAAAA,IAAAA,CACL,GAGH6F,oBAACQ,iBAAe;AAAA,MACdtH,SAAS;AAAA,QACPwG,MAAMF,KAAKC,gBAAgBgB,WAAWvH,mCAASuH,SAAS;AAAA,QACxDC,OAAOlB,KAAKC,gBAAgBiB,OAAOxH,mCAASwH,KAAK;AAAA,QACjDC,gBAAgBnB,KACdC,gBAAgBkB,gBAChBzH,mCAASyH,cACX;AAAA,MACF;AAAA,MACA3H,IAAI4D,WAAW0C,MAAMhE,WAAW,OAAO,IAAIgE,MAAMtG,IAAI,OAAO;AAAA,MAC5DG;AAAAA,MACAS;AAAAA,MACAS;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAW,UAAUkD;AAAAA,MACV5D;AAAAA,MACAY,SAASkD;AAAAA,MACThF;AAAAA,MACAqG,SAASlD;AAAAA,MACThC;AAAAA,MACAmG,WAAS;AAAA,MACT5G;AAAAA,MACAI,YAAY;AAAA,QACV,cAAcS;AAAAA,QACd,mBAAmBC;AAAAA,QACnB,gBAAgB2B,iBAAiB,OAAOuB;AAAAA,QACxC,qBAAqBqB;AAAAA,QACrB,oBACEtE,mBAAmB,OACfA,kBACC1B,eAAeiG,MAAMhE,WAAW,aAAa,KAAM0C;AAAAA,QAC1D,iBAAiBtE,kBACb4F,MAAMhE,WAAW,aAAa,IAC9B0C;AAAAA,QACJ,GAAG5D;AAAAA,MACL;AAAA,MACAN,UAAU4B;AAAAA,MACVkE,YAAYnF;AAAAA,MAAU,GAClBY;AAAAA,IAAAA,CACL,GAEA8D,gBACCa,oBAACa,mBAAiB;AAAA,MAChB7H,IAAIsG,MAAMhE,WAAW,OAAO;AAAA,MAC5BrC,WAAWuG,KAAKC,gBAAgBqB,OAAO5H,mCAAS4H,KAAK;AAAA,MACrDC,eAAa;AAAA,MAAAlB,UAEZvD;AAAAA,IAAAA,CACgB,CACpB;AAAA,EAAA,CACgB;AAEvB,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePicker.js","sources":["../../../../src/components/TimePicker/TimePicker.tsx"],"sourcesContent":["import { useState, useRef, useMemo } from \"react\";\nimport { Time } from \"@internationalized/date\";\nimport { useTimeField } from \"@react-aria/datepicker\";\nimport {\n TimeFieldStateOptions,\n useTimeFieldState,\n} from \"@react-stately/datepicker\";\n\nimport { Time as TimeIcon } from \"@hitachivantara/uikit-react-icons\";\nimport {\n HvFormElement,\n HvBaseDropdown,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n HvFormElementProps,\n HvBaseDropdownProps,\n useControlled,\n useUniqueId,\n setId,\n ExtractNames,\n} from \"../..\";\n\nimport { Unit } from \"./Unit\";\nimport { Placeholder } from \"./Placeholder\";\nimport { staticClasses, useClasses } from \"./TimePicker.styles\";\n\nconst toTime = (value?: HvTimePickerValue) => {\n if (!value) return undefined;\n const { hours, minutes, seconds } = value;\n return new Time(hours, minutes, seconds);\n};\n\nconst getFormat = (timeFormat?: TimeFormat) => {\n if (timeFormat == null) return 24;\n return timeFormat === \"12\" ? 12 : 24;\n};\n\nexport { staticClasses as timePickerClasses };\n\nexport type TimeFormat = \"12\" | \"24\";\n\nexport type HvTimePickerClasses = ExtractNames<typeof useClasses>;\n\nexport type HvTimePickerClassKey =\n | \"root\"\n | \"input\"\n | \"label\"\n | \"placeholder\"\n | \"timePopperContainer\"\n | \"separator\"\n | \"periodContainer\"\n | \"formElementRoot\"\n | \"dropdownPlaceholder\"\n | \"iconBaseRoot\"\n | \"error\"\n | \"labelContainer\"\n | \"description\"\n | \"dropdownHeaderInvalid\"\n | \"dropdownPlaceholderDisabled\"\n | \"dropdownHeaderOpen\";\n\nexport type HvTimePickerValue = {\n hours: number;\n minutes: number;\n seconds: number;\n};\n\nexport interface HvTimePickerProps\n extends Omit<\n HvFormElementProps,\n \"classes\" | \"value\" | \"defaultValue\" | \"onChange\" | \"onFocus\" | \"onBlur\"\n > {\n /** Id to be applied to the form element root node. */\n id?: string;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: Partial<HvTimePickerClasses>;\n /** Current value of the element when _controlled_. Follows the 24-hour format. */\n value?: HvTimePickerValue;\n /** Initial value of the element when _uncontrolled_. Follows the 24-hour format. */\n defaultValue?: HvTimePickerValue;\n /** The placeholder value when no time is selected. */\n placeholder?: string;\n /** The placeholder of the hours input. */\n hoursPlaceholder?: string;\n /** The placeholder of the minutes input. */\n minutesPlaceholder?: string;\n /** The placeholder of the seconds input. */\n secondsPlaceholder?: string;\n /**\n * Whether the time picker should show the AM/PM 12-hour clock or the 24-hour one.\n * If undefined, the component will use a format according to the passed locale.\n */\n timeFormat?: TimeFormat;\n /** Whether to show the seconds when using the native time picker */\n showSeconds?: boolean;\n /** Locale that will provide the time format(12 or 24 hour format). It is \"overwritten\" by `showAmPm` */\n locale?: string;\n /** Whether the dropdown is expandable. */\n disableExpand?: boolean;\n\n /**\n * Callback function to be triggered when the input value is changed.\n * It is invoked with a `{hours, minutes, seconds}` object, always in the 24h format\n */\n onChange?: (value: HvTimePickerValue) => void;\n\n /** Callback called when dropdown changes the expanded state. */\n onToggle?: (event: Event, isOpen: boolean) => void;\n\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n\n /** Sets if the calendar container should follow the date picker input out of the screen or stay visible. */\n escapeWithReference?: boolean;\n\n /** Extra properties to be passed to the TimePicker's dropdown. */\n dropdownProps?: Partial<HvBaseDropdownProps>;\n}\n\n/**\n * A Time Picker allows the user to choose a specific time or a time range.\n */\nexport const HvTimePicker = (props: HvTimePickerProps) => {\n const {\n classes: classesProp = {},\n className,\n\n id: idProp,\n name,\n required = false,\n disabled = false,\n readOnly = false,\n label,\n\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n hoursPlaceholder = \"hh\",\n minutesPlaceholder = \"mm\",\n secondsPlaceholder = \"ss\",\n\n value: valueProp,\n defaultValue: defaultValueProp,\n\n timeFormat,\n showSeconds,\n disableExpand,\n locale = \"en\",\n\n onToggle,\n onChange,\n\n // misc properties:\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps,\n ...others\n } = props;\n const id = useUniqueId(idProp, \"hvtimepicker\");\n const ref = useRef<HTMLDivElement>(null);\n const { classes, cx } = useClasses(classesProp);\n\n const stateProps: TimeFieldStateOptions = {\n value: toTime(valueProp),\n defaultValue: toTime(defaultValueProp),\n label,\n locale,\n isRequired: required,\n isReadOnly: readOnly,\n isDisabled: disabled,\n granularity: \"second\",\n hourCycle: getFormat(timeFormat),\n onChange: (value) => {\n const { hour: hours, minute: minutes, second: seconds } = value;\n onChange?.({ hours, minutes, seconds });\n },\n };\n const state = useTimeFieldState(stateProps);\n const { labelProps, fieldProps } = useTimeField(\n {\n ...stateProps,\n id,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n },\n state,\n ref\n );\n\n const [open, setOpen] = useState(false);\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n const [validationState] = useControlled(status, \"standBy\");\n\n const placeholders = useMemo(\n () => ({\n hour: hoursPlaceholder,\n minute: minutesPlaceholder,\n second: secondsPlaceholder,\n }),\n [hoursPlaceholder, minutesPlaceholder, secondsPlaceholder]\n );\n\n // the error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const isStateInvalid = validationState === \"invalid\";\n const errorMessageId = isStateInvalid\n ? canShowError\n ? setId(id, \"error\")\n : ariaErrorMessage\n : undefined;\n\n return (\n <HvFormElement\n name={name}\n required={required}\n disabled={disabled}\n status={validationState}\n className={cx(classes.root, className)}\n {...others}\n >\n {(label || description) && (\n <div className={classes.labelContainer}>\n {label && (\n <HvLabel label={label} className={classes.label} {...labelProps} />\n )}\n {description && (\n <HvInfoMessage className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n\n <HvBaseDropdown\n role=\"combobox\"\n variableWidth\n disabled={disabled}\n readOnly={readOnly}\n placeholder={\n placeholder && !state.value ? (\n placeholder\n ) : (\n <Placeholder\n ref={ref}\n name={name}\n state={state}\n placeholders={placeholders}\n className={cx(classes.placeholder, {\n [classes.placeholderDisabled]: disabled,\n })}\n {...fieldProps}\n />\n )\n }\n classes={{\n header: cx(classes.dropdownHeader, {\n [classes.dropdownHeaderInvalid]: isStateInvalid,\n }),\n panel: classes.dropdownPanel,\n headerOpen: classes.dropdownHeaderOpen,\n }}\n placement=\"right\"\n adornment={\n <TimeIcon\n color={disabled ? \"secondary_60\" : undefined}\n className={classes.icon}\n />\n }\n expanded={open}\n onToggle={(evt, newOpen) => {\n if (disableExpand) return;\n setOpen(newOpen);\n onToggle?.(evt, newOpen);\n }}\n onContainerCreation={(containerRef) => {\n containerRef?.getElementsByTagName(\"input\")[0]?.focus();\n }}\n aria-haspopup=\"dialog\"\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n disablePortal={disablePortal}\n popperProps={{\n modifiers: [\n { name: \"preventOverflow\", enabled: escapeWithReference },\n ],\n }}\n {...dropdownProps}\n >\n <div ref={ref} className={classes.timePopperContainer}>\n {state.segments.map((segment, i) => (\n <Unit\n key={i}\n state={state}\n segment={segment}\n placeholder={placeholders[segment.type]}\n onAdd={() => state.increment(segment.type)}\n onSub={() => state.decrement(segment.type)}\n onChange={(evt, val) => {\n state.setSegment(segment.type, Number(val));\n }}\n />\n ))}\n </div>\n </HvBaseDropdown>\n\n {canShowError && (\n <HvWarningText\n id={setId(id, \"error\")}\n disableBorder\n className={classes.error}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n );\n};\n"],"names":["toTime","value","undefined","hours","minutes","seconds","Time","getFormat","timeFormat","HvTimePicker","props","classes","classesProp","className","id","idProp","name","required","disabled","readOnly","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","status","statusMessage","ariaErrorMessage","placeholder","hoursPlaceholder","minutesPlaceholder","secondsPlaceholder","valueProp","defaultValue","defaultValueProp","showSeconds","disableExpand","locale","onToggle","onChange","disablePortal","escapeWithReference","dropdownProps","others","useUniqueId","ref","useRef","cx","useClasses","stateProps","isRequired","isReadOnly","isDisabled","granularity","hourCycle","hour","minute","second","state","useTimeFieldState","labelProps","fieldProps","useTimeField","open","setOpen","useState","validationMessage","useControlled","validationState","placeholders","useMemo","canShowError","isStateInvalid","errorMessageId","setId","HvFormElement","root","children","labelContainer","_jsx","HvLabel","HvInfoMessage","HvBaseDropdown","role","variableWidth","Placeholder","placeholderDisabled","header","dropdownHeader","dropdownHeaderInvalid","panel","dropdownPanel","headerOpen","dropdownHeaderOpen","placement","adornment","TimeIcon","color","icon","expanded","evt","newOpen","onContainerCreation","containerRef","getElementsByTagName","focus","popperProps","modifiers","enabled","timePopperContainer","segments","map","segment","i","Unit","type","onAdd","increment","onSub","decrement","val","setSegment","Number","HvWarningText","disableBorder","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TimePicker.js","sources":["../../../../src/components/TimePicker/TimePicker.tsx"],"sourcesContent":["import { useState, useRef, useMemo } from \"react\";\nimport { Time } from \"@internationalized/date\";\nimport { useTimeField } from \"@react-aria/datepicker\";\nimport {\n TimeFieldStateOptions,\n useTimeFieldState,\n} from \"@react-stately/datepicker\";\n\nimport { Time as TimeIcon } from \"@hitachivantara/uikit-react-icons\";\nimport {\n HvFormElement,\n HvBaseDropdown,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n HvFormElementProps,\n HvBaseDropdownProps,\n useControlled,\n useUniqueId,\n setId,\n ExtractNames,\n} from \"../..\";\n\nimport { Unit } from \"./Unit\";\nimport { Placeholder } from \"./Placeholder\";\nimport { staticClasses, useClasses } from \"./TimePicker.styles\";\n\nconst toTime = (value?: HvTimePickerValue) => {\n if (!value) return undefined;\n const { hours, minutes, seconds } = value;\n return new Time(hours, minutes, seconds);\n};\n\nconst getFormat = (timeFormat?: TimeFormat) => {\n if (timeFormat == null) return 24;\n return timeFormat === \"12\" ? 12 : 24;\n};\n\nexport { staticClasses as timePickerClasses };\n\nexport type TimeFormat = \"12\" | \"24\";\n\nexport type HvTimePickerClasses = ExtractNames<typeof useClasses>;\n\nexport type HvTimePickerClassKey =\n | \"root\"\n | \"input\"\n | \"label\"\n | \"placeholder\"\n | \"timePopperContainer\"\n | \"separator\"\n | \"periodContainer\"\n | \"formElementRoot\"\n | \"dropdownPlaceholder\"\n | \"iconBaseRoot\"\n | \"error\"\n | \"labelContainer\"\n | \"description\"\n | \"dropdownHeaderInvalid\"\n | \"dropdownPlaceholderDisabled\"\n | \"dropdownHeaderOpen\";\n\nexport type HvTimePickerValue = {\n hours: number;\n minutes: number;\n seconds: number;\n};\n\nexport interface HvTimePickerProps\n extends Omit<\n HvFormElementProps,\n \"classes\" | \"value\" | \"defaultValue\" | \"onChange\" | \"onFocus\" | \"onBlur\"\n > {\n /** Id to be applied to the form element root node. */\n id?: string;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvTimePickerClasses;\n /** Current value of the element when _controlled_. Follows the 24-hour format. */\n value?: HvTimePickerValue;\n /** Initial value of the element when _uncontrolled_. Follows the 24-hour format. */\n defaultValue?: HvTimePickerValue;\n /** The placeholder value when no time is selected. */\n placeholder?: string;\n /** The placeholder of the hours input. */\n hoursPlaceholder?: string;\n /** The placeholder of the minutes input. */\n minutesPlaceholder?: string;\n /** The placeholder of the seconds input. */\n secondsPlaceholder?: string;\n /**\n * Whether the time picker should show the AM/PM 12-hour clock or the 24-hour one.\n * If undefined, the component will use a format according to the passed locale.\n */\n timeFormat?: TimeFormat;\n /** Whether to show the seconds when using the native time picker */\n showSeconds?: boolean;\n /** Locale that will provide the time format(12 or 24 hour format). It is \"overwritten\" by `showAmPm` */\n locale?: string;\n /** Whether the dropdown is expandable. */\n disableExpand?: boolean;\n\n /**\n * Callback function to be triggered when the input value is changed.\n * It is invoked with a `{hours, minutes, seconds}` object, always in the 24h format\n */\n onChange?: (value: HvTimePickerValue) => void;\n\n /** Callback called when dropdown changes the expanded state. */\n onToggle?: (event: Event, isOpen: boolean) => void;\n\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n\n /** Sets if the calendar container should follow the date picker input out of the screen or stay visible. */\n escapeWithReference?: boolean;\n\n /** Extra properties to be passed to the TimePicker's dropdown. */\n dropdownProps?: Partial<HvBaseDropdownProps>;\n}\n\n/**\n * A Time Picker allows the user to choose a specific time or a time range.\n */\nexport const HvTimePicker = (props: HvTimePickerProps) => {\n const {\n classes: classesProp = {},\n className,\n\n id: idProp,\n name,\n required = false,\n disabled = false,\n readOnly = false,\n label,\n\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n hoursPlaceholder = \"hh\",\n minutesPlaceholder = \"mm\",\n secondsPlaceholder = \"ss\",\n\n value: valueProp,\n defaultValue: defaultValueProp,\n\n timeFormat,\n showSeconds,\n disableExpand,\n locale = \"en\",\n\n onToggle,\n onChange,\n\n // misc properties:\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps,\n ...others\n } = props;\n const id = useUniqueId(idProp, \"hvtimepicker\");\n const ref = useRef<HTMLDivElement>(null);\n const { classes, cx } = useClasses(classesProp);\n\n const stateProps: TimeFieldStateOptions = {\n value: toTime(valueProp),\n defaultValue: toTime(defaultValueProp),\n label,\n locale,\n isRequired: required,\n isReadOnly: readOnly,\n isDisabled: disabled,\n granularity: \"second\",\n hourCycle: getFormat(timeFormat),\n onChange: (value) => {\n const { hour: hours, minute: minutes, second: seconds } = value;\n onChange?.({ hours, minutes, seconds });\n },\n };\n const state = useTimeFieldState(stateProps);\n const { labelProps, fieldProps } = useTimeField(\n {\n ...stateProps,\n id,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n },\n state,\n ref\n );\n\n const [open, setOpen] = useState(false);\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n const [validationState] = useControlled(status, \"standBy\");\n\n const placeholders = useMemo(\n () => ({\n hour: hoursPlaceholder,\n minute: minutesPlaceholder,\n second: secondsPlaceholder,\n }),\n [hoursPlaceholder, minutesPlaceholder, secondsPlaceholder]\n );\n\n // the error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const isStateInvalid = validationState === \"invalid\";\n const errorMessageId = isStateInvalid\n ? canShowError\n ? setId(id, \"error\")\n : ariaErrorMessage\n : undefined;\n\n return (\n <HvFormElement\n name={name}\n required={required}\n disabled={disabled}\n status={validationState}\n className={cx(classes.root, className)}\n {...others}\n >\n {(label || description) && (\n <div className={classes.labelContainer}>\n {label && (\n <HvLabel label={label} className={classes.label} {...labelProps} />\n )}\n {description && (\n <HvInfoMessage className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n\n <HvBaseDropdown\n role=\"combobox\"\n variableWidth\n disabled={disabled}\n readOnly={readOnly}\n placeholder={\n placeholder && !state.value ? (\n placeholder\n ) : (\n <Placeholder\n ref={ref}\n name={name}\n state={state}\n placeholders={placeholders}\n className={cx(classes.placeholder, {\n [classes.placeholderDisabled]: disabled,\n })}\n {...fieldProps}\n />\n )\n }\n classes={{\n header: cx(classes.dropdownHeader, {\n [classes.dropdownHeaderInvalid]: isStateInvalid,\n }),\n panel: classes.dropdownPanel,\n headerOpen: classes.dropdownHeaderOpen,\n }}\n placement=\"right\"\n adornment={\n <TimeIcon\n color={disabled ? \"secondary_60\" : undefined}\n className={classes.icon}\n />\n }\n expanded={open}\n onToggle={(evt, newOpen) => {\n if (disableExpand) return;\n setOpen(newOpen);\n onToggle?.(evt, newOpen);\n }}\n onContainerCreation={(containerRef) => {\n containerRef?.getElementsByTagName(\"input\")[0]?.focus();\n }}\n aria-haspopup=\"dialog\"\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n disablePortal={disablePortal}\n popperProps={{\n modifiers: [\n { name: \"preventOverflow\", enabled: escapeWithReference },\n ],\n }}\n {...dropdownProps}\n >\n <div ref={ref} className={classes.timePopperContainer}>\n {state.segments.map((segment, i) => (\n <Unit\n key={i}\n state={state}\n segment={segment}\n placeholder={placeholders[segment.type]}\n onAdd={() => state.increment(segment.type)}\n onSub={() => state.decrement(segment.type)}\n onChange={(evt, val) => {\n state.setSegment(segment.type, Number(val));\n }}\n />\n ))}\n </div>\n </HvBaseDropdown>\n\n {canShowError && (\n <HvWarningText\n id={setId(id, \"error\")}\n disableBorder\n className={classes.error}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n );\n};\n"],"names":["toTime","value","undefined","hours","minutes","seconds","Time","getFormat","timeFormat","HvTimePicker","props","classes","classesProp","className","id","idProp","name","required","disabled","readOnly","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","status","statusMessage","ariaErrorMessage","placeholder","hoursPlaceholder","minutesPlaceholder","secondsPlaceholder","valueProp","defaultValue","defaultValueProp","showSeconds","disableExpand","locale","onToggle","onChange","disablePortal","escapeWithReference","dropdownProps","others","useUniqueId","ref","useRef","cx","useClasses","stateProps","isRequired","isReadOnly","isDisabled","granularity","hourCycle","hour","minute","second","state","useTimeFieldState","labelProps","fieldProps","useTimeField","open","setOpen","useState","validationMessage","useControlled","validationState","placeholders","useMemo","canShowError","isStateInvalid","errorMessageId","setId","HvFormElement","root","children","labelContainer","_jsx","HvLabel","HvInfoMessage","HvBaseDropdown","role","variableWidth","Placeholder","placeholderDisabled","header","dropdownHeader","dropdownHeaderInvalid","panel","dropdownPanel","headerOpen","dropdownHeaderOpen","placement","adornment","TimeIcon","color","icon","expanded","evt","newOpen","onContainerCreation","containerRef","getElementsByTagName","focus","popperProps","modifiers","enabled","timePopperContainer","segments","map","segment","i","Unit","type","onAdd","increment","onSub","decrement","val","setSegment","Number","HvWarningText","disableBorder","error"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { ClassNames } from "@emotion/react";
|
|
2
1
|
import { DropUpXS, DropDownXS } from "@hitachivantara/uikit-react-icons";
|
|
3
2
|
import { theme } from "@hitachivantara/uikit-styles";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { useClasses } from "./Unit.styles.js";
|
|
4
|
+
import { jsxs, jsx } from "@emotion/react/jsx-runtime";
|
|
6
5
|
import { HvToggleButton } from "../../ToggleButton/ToggleButton.js";
|
|
7
6
|
import { HvInput } from "../../Input/Input.js";
|
|
8
7
|
const Unit = ({
|
|
@@ -14,56 +13,55 @@ const Unit = ({
|
|
|
14
13
|
onAdd,
|
|
15
14
|
onSub
|
|
16
15
|
}) => {
|
|
16
|
+
const {
|
|
17
|
+
classes
|
|
18
|
+
} = useClasses();
|
|
17
19
|
const {
|
|
18
20
|
type,
|
|
19
21
|
text
|
|
20
22
|
} = segment;
|
|
21
23
|
const placeholder = placeholderProp ?? segment.placeholder;
|
|
22
|
-
return /* @__PURE__ */
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (event.key === "Enter") {
|
|
50
|
-
event.preventDefault();
|
|
51
|
-
event.stopPropagation();
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
required: true,
|
|
55
|
-
status: state.validationState,
|
|
56
|
-
value: text.padStart(2, "0"),
|
|
57
|
-
onChange,
|
|
58
|
-
placeholder,
|
|
59
|
-
inputProps: {
|
|
60
|
-
autoComplete: "off",
|
|
61
|
-
type: "number"
|
|
24
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
25
|
+
className: classes.root,
|
|
26
|
+
children: [type !== "literal" && /* @__PURE__ */ jsx(DropUpXS, {
|
|
27
|
+
onClick: onAdd
|
|
28
|
+
}), type === "literal" && /* @__PURE__ */ jsx("div", {
|
|
29
|
+
className: classes.separator,
|
|
30
|
+
children: text
|
|
31
|
+
}), type === "dayPeriod" && /* @__PURE__ */ jsx(HvToggleButton, {
|
|
32
|
+
className: classes.periodToggle,
|
|
33
|
+
onClick: onAdd,
|
|
34
|
+
children: text
|
|
35
|
+
}), ["hour", "minute", "second"].includes(type) && /* @__PURE__ */ jsx(HvInput, {
|
|
36
|
+
id,
|
|
37
|
+
disableClear: true,
|
|
38
|
+
style: {
|
|
39
|
+
...theme.typography.title3
|
|
40
|
+
},
|
|
41
|
+
classes: {
|
|
42
|
+
input: classes.input,
|
|
43
|
+
root: classes.inputContainer,
|
|
44
|
+
inputBorderContainer: classes.inputBorderContainer,
|
|
45
|
+
inputRoot: classes.inputRoot
|
|
46
|
+
},
|
|
47
|
+
onKeyDown: (event) => {
|
|
48
|
+
if (event.key === "Enter") {
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
event.stopPropagation();
|
|
62
51
|
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
52
|
+
},
|
|
53
|
+
required: true,
|
|
54
|
+
status: state.validationState,
|
|
55
|
+
value: text.padStart(2, "0"),
|
|
56
|
+
onChange,
|
|
57
|
+
placeholder,
|
|
58
|
+
inputProps: {
|
|
59
|
+
autoComplete: "off",
|
|
60
|
+
type: "number"
|
|
61
|
+
}
|
|
62
|
+
}), type !== "literal" && /* @__PURE__ */ jsx(DropDownXS, {
|
|
63
|
+
onClick: onSub
|
|
64
|
+
})]
|
|
67
65
|
});
|
|
68
66
|
};
|
|
69
67
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Unit.js","sources":["../../../../../src/components/TimePicker/Unit/Unit.tsx"],"sourcesContent":["import { KeyboardEvent } from \"react\";\nimport {
|
|
1
|
+
{"version":3,"file":"Unit.js","sources":["../../../../../src/components/TimePicker/Unit/Unit.tsx"],"sourcesContent":["import { KeyboardEvent } from \"react\";\nimport { DateFieldState, DateSegment } from \"@react-stately/datepicker\";\nimport {\n DropDownXS as SubtractTimeIcon,\n DropUpXS as AddTimeIcon,\n} from \"@hitachivantara/uikit-react-icons\";\nimport { HvInput, HvInputProps, HvToggleButton, theme } from \"../../..\";\nimport { useClasses } from \"./Unit.styles\";\n\ninterface UnitProps {\n id?: string;\n state: DateFieldState;\n segment: DateSegment;\n placeholder?: string;\n /** Called when the value changes */\n onChange?: HvInputProps[\"onChange\"];\n /** Called when the up/add arrow is pressed */\n onAdd?: () => void;\n /** Called when the down/subtract arrow is pressed */\n onSub?: () => void;\n}\n\nexport const Unit = ({\n id,\n state,\n segment,\n placeholder: placeholderProp,\n onChange,\n onAdd,\n onSub,\n}: UnitProps) => {\n const { classes } = useClasses();\n const { type, text } = segment;\n const placeholder = placeholderProp ?? segment.placeholder;\n\n return (\n <div className={classes.root}>\n {type !== \"literal\" && <AddTimeIcon onClick={onAdd} />}\n {type === \"literal\" && <div className={classes.separator}>{text}</div>}\n {type === \"dayPeriod\" && (\n <HvToggleButton className={classes.periodToggle} onClick={onAdd}>\n {text}\n </HvToggleButton>\n )}\n {[\"hour\", \"minute\", \"second\"].includes(type) && (\n <HvInput\n id={id}\n disableClear\n style={{\n ...theme.typography.title3,\n }}\n classes={{\n input: classes.input,\n root: classes.inputContainer,\n inputBorderContainer: classes.inputBorderContainer,\n inputRoot: classes.inputRoot,\n }}\n onKeyDown={(event) => {\n if ((event as KeyboardEvent).key === \"Enter\") {\n event.preventDefault();\n event.stopPropagation();\n }\n }}\n required\n status={state.validationState}\n value={text.padStart(2, \"0\")}\n onChange={onChange}\n placeholder={placeholder}\n inputProps={{ autoComplete: \"off\", type: \"number\" }}\n />\n )}\n {type !== \"literal\" && <SubtractTimeIcon onClick={onSub} />}\n </div>\n );\n};\n"],"names":["Unit","id","state","segment","placeholder","placeholderProp","onChange","onAdd","onSub","classes","useClasses","type","text","className","root","children","AddTimeIcon","onClick","separator","HvToggleButton","periodToggle","includes","_jsx","HvInput","disableClear","style","theme","typography","title3","input","inputContainer","inputBorderContainer","inputRoot","onKeyDown","event","key","preventDefault","stopPropagation","required","status","validationState","value","padStart","inputProps","autoComplete","SubtractTimeIcon"],"mappings":";;;;;;AAsBO,MAAMA,OAAOA,CAAC;AAAA,EACnBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,aAAaC;AAAAA,EACbC;AAAAA,EACAC;AAAAA,EACAC;AACS,MAAM;AACT,QAAA;AAAA,IAAEC;AAAAA,MAAYC,WAAW;AACzB,QAAA;AAAA,IAAEC;AAAAA,IAAMC;AAAAA,EAAST,IAAAA;AACjBC,QAAAA,cAAcC,mBAAmBF,QAAQC;AAE/C,8BACE,OAAA;AAAA,IAAKS,WAAWJ,QAAQK;AAAAA,IAAKC,WAC1BJ,SAAS,iCAAcK,UAAW;AAAA,MAACC,SAASV;AAAAA,IAAQ,CAAA,GACpDI,SAAS,iCAAa,OAAA;AAAA,MAAKE,WAAWJ,QAAQS;AAAAA,MAAUH,UAAEH;AAAAA,IAAU,CAAA,GACpED,SAAS,mCACPQ,gBAAc;AAAA,MAACN,WAAWJ,QAAQW;AAAAA,MAAcH,SAASV;AAAAA,MAAMQ,UAC7DH;AAAAA,IAAAA,CACa,GAEjB,CAAC,QAAQ,UAAU,QAAQ,EAAES,SAASV,IAAI,KACzCW,oBAACC,SAAO;AAAA,MACNtB;AAAAA,MACAuB,cAAY;AAAA,MACZC,OAAO;AAAA,QACL,GAAGC,MAAMC,WAAWC;AAAAA,MACtB;AAAA,MACAnB,SAAS;AAAA,QACPoB,OAAOpB,QAAQoB;AAAAA,QACff,MAAML,QAAQqB;AAAAA,QACdC,sBAAsBtB,QAAQsB;AAAAA,QAC9BC,WAAWvB,QAAQuB;AAAAA,MACrB;AAAA,MACAC,WAAYC,CAAU,UAAA;AACfA,YAAAA,MAAwBC,QAAQ,SAAS;AAC5CD,gBAAME,eAAe;AACrBF,gBAAMG,gBAAgB;AAAA,QACxB;AAAA,MACF;AAAA,MACAC,UAAQ;AAAA,MACRC,QAAQrC,MAAMsC;AAAAA,MACdC,OAAO7B,KAAK8B,SAAS,GAAG,GAAG;AAAA,MAC3BpC;AAAAA,MACAF;AAAAA,MACAuC,YAAY;AAAA,QAAEC,cAAc;AAAA,QAAOjC,MAAM;AAAA,MAAS;AAAA,IACnD,CAAA,GAEFA,SAAS,iCAAckC,YAAgB;AAAA,MAAC5B,SAAST;AAAAA,IAAAA,CAAQ,CAAC;AAAA,EAAA,CACxD;AAET;"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { theme } from "@hitachivantara/uikit-styles";
|
|
2
|
-
|
|
2
|
+
import { createClasses } from "../../../utils/classes.js";
|
|
3
|
+
const {
|
|
4
|
+
staticClasses,
|
|
5
|
+
useClasses
|
|
6
|
+
} = createClasses("HvTimePickerUnit", {
|
|
3
7
|
root: {
|
|
4
8
|
display: "flex",
|
|
5
9
|
flexDirection: "column",
|
|
@@ -49,8 +53,9 @@ const styles = {
|
|
|
49
53
|
inputBorderContainer: {
|
|
50
54
|
top: 40
|
|
51
55
|
}
|
|
52
|
-
};
|
|
56
|
+
});
|
|
53
57
|
export {
|
|
54
|
-
|
|
58
|
+
staticClasses,
|
|
59
|
+
useClasses
|
|
55
60
|
};
|
|
56
61
|
//# sourceMappingURL=Unit.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Unit.styles.js","sources":["../../../../../src/components/TimePicker/Unit/Unit.styles.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"Unit.styles.js","sources":["../../../../../src/components/TimePicker/Unit/Unit.styles.ts"],"sourcesContent":["import { createClasses } from \"@core/utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvTimePickerUnit\", {\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n textAlign: \"center\",\n ...theme.typography.sTitle,\n },\n\n separator: {\n width: 8,\n },\n\n periodToggle: {\n height: 40,\n width: 40,\n },\n\n element: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: 40,\n width: 40,\n },\n\n input: {\n ...theme.typography.sTitle,\n fontWeight: 600,\n textAlign: \"center\",\n height: 40,\n width: 40,\n padding: 0,\n margin: 0,\n \"&::placeholder\": {\n fontSize: 16,\n fontWeight: 600,\n },\n },\n inputRoot: {\n width: 40,\n height: 40,\n },\n\n subtractIcon: {\n marginTop: theme.space.xs,\n },\n inputContainer: {\n minWidth: 40,\n maxWidth: 40,\n },\n inputBorderContainer: {\n top: 40,\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","display","flexDirection","justifyContent","alignItems","textAlign","theme","typography","sTitle","separator","width","periodToggle","height","element","input","fontWeight","padding","margin","fontSize","inputRoot","subtractIcon","marginTop","space","xs","inputContainer","minWidth","maxWidth","inputBorderContainer","top"],"mappings":";;AAGa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,oBAAoB;AAAA,EAC7EC,MAAM;AAAA,IACJC,SAAS;AAAA,IACTC,eAAe;AAAA,IACfC,gBAAgB;AAAA,IAChBC,YAAY;AAAA,IACZC,WAAW;AAAA,IACX,GAAGC,MAAMC,WAAWC;AAAAA,EACtB;AAAA,EAEAC,WAAW;AAAA,IACTC,OAAO;AAAA,EACT;AAAA,EAEAC,cAAc;AAAA,IACZC,QAAQ;AAAA,IACRF,OAAO;AAAA,EACT;AAAA,EAEAG,SAAS;AAAA,IACPZ,SAAS;AAAA,IACTE,gBAAgB;AAAA,IAChBC,YAAY;AAAA,IACZQ,QAAQ;AAAA,IACRF,OAAO;AAAA,EACT;AAAA,EAEAI,OAAO;AAAA,IACL,GAAGR,MAAMC,WAAWC;AAAAA,IACpBO,YAAY;AAAA,IACZV,WAAW;AAAA,IACXO,QAAQ;AAAA,IACRF,OAAO;AAAA,IACPM,SAAS;AAAA,IACTC,QAAQ;AAAA,IACR,kBAAkB;AAAA,MAChBC,UAAU;AAAA,MACVH,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACAI,WAAW;AAAA,IACTT,OAAO;AAAA,IACPE,QAAQ;AAAA,EACV;AAAA,EAEAQ,cAAc;AAAA,IACZC,WAAWf,MAAMgB,MAAMC;AAAAA,EACzB;AAAA,EACAC,gBAAgB;AAAA,IACdC,UAAU;AAAA,IACVC,UAAU;AAAA,EACZ;AAAA,EACAC,sBAAsB;AAAA,IACpBC,KAAK;AAAA,EACP;AACF,CAAC;"}
|
|
@@ -31,7 +31,7 @@ const HvVerticalNavigationHeader = ({
|
|
|
31
31
|
if (navigateToParentHandler)
|
|
32
32
|
navigateToParentHandler();
|
|
33
33
|
};
|
|
34
|
-
const shouldShowTitle = useMemo(() => !slider || slider && !Array.isArray(parentItem), [parentItem]);
|
|
34
|
+
const shouldShowTitle = useMemo(() => !slider || slider && !Array.isArray(parentItem), [parentItem, slider]);
|
|
35
35
|
return shouldShowTitle ? /* @__PURE__ */ jsxs(StyledHeader, {
|
|
36
36
|
className: clsx(className, verticalNavigationHeaderClasses.root, classes == null ? void 0 : classes.root, !isOpen && clsx(verticalNavigationHeaderClasses.minimized, classes == null ? void 0 : classes.minimized)),
|
|
37
37
|
...others,
|