@hitachivantara/uikit-react-core 5.92.0 → 5.93.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/Badge/Badge.styles.cjs +13 -1
- package/dist/cjs/Banner/BannerContent/BannerContent.styles.cjs +1 -1
- package/dist/cjs/BaseDropdown/BaseDropdown.cjs +1 -0
- package/dist/cjs/BaseInput/validations.cjs +8 -15
- package/dist/cjs/BaseSwitch/BaseSwitch.styles.cjs +1 -1
- package/dist/cjs/Button/Button.styles.cjs +6 -4
- package/dist/cjs/Calendar/CalendarHeader/CalendarHeader.cjs +1 -2
- package/dist/cjs/Card/Card.cjs +5 -4
- package/dist/cjs/Card/Card.styles.cjs +5 -3
- package/dist/cjs/Card/Header/Header.styles.cjs +3 -3
- package/dist/cjs/CheckBox/CheckBox.cjs +1 -1
- package/dist/cjs/CheckBoxGroup/CheckBoxGroup.cjs +9 -8
- package/dist/cjs/ColorPicker/ColorPicker.cjs +14 -22
- package/dist/cjs/ColorPicker/ColorPicker.styles.cjs +1 -4
- package/dist/cjs/DatePicker/DatePicker.cjs +15 -23
- package/dist/cjs/DatePicker/DatePicker.styles.cjs +1 -4
- package/dist/cjs/DotPagination/DotPagination.styles.cjs +1 -1
- package/dist/cjs/Dropdown/Dropdown.cjs +16 -24
- package/dist/cjs/Dropdown/Dropdown.styles.cjs +1 -1
- package/dist/cjs/Dropdown/List/List.cjs +4 -1
- package/dist/cjs/FileUploader/DropZone/DropZone.cjs +19 -17
- package/dist/cjs/FileUploader/DropZone/DropZone.styles.cjs +0 -3
- package/dist/cjs/FilterGroup/FilterGroup.cjs +15 -23
- package/dist/cjs/FilterGroup/FilterGroup.styles.cjs +1 -1
- package/dist/cjs/FormElement/InfoMessage/InfoMessage.cjs +1 -1
- package/dist/cjs/FormElement/Label/Label.cjs +4 -1
- package/dist/cjs/FormElement/LabelContainer.cjs +58 -0
- package/dist/cjs/FormElement/WarningText/WarningText.cjs +4 -4
- package/dist/cjs/FormElement/utils.cjs +2 -8
- package/dist/cjs/InlineEditor/InlineEditor.cjs +1 -0
- package/dist/cjs/InlineEditor/InlineEditor.styles.cjs +1 -2
- package/dist/cjs/Input/Input.cjs +38 -43
- package/dist/cjs/Input/Input.styles.cjs +1 -5
- package/dist/cjs/Input/utils.cjs +12 -0
- package/dist/cjs/NumberInput/NumberInput.cjs +54 -0
- package/dist/cjs/NumberInput/NumberInput.styles.cjs +11 -0
- package/dist/cjs/Pagination/Pagination.styles.cjs +1 -2
- package/dist/cjs/QueryBuilder/Rule/Rule.styles.cjs +1 -1
- package/dist/cjs/QueryBuilder/RuleGroup/RuleGroup.cjs +2 -2
- package/dist/cjs/RadioGroup/RadioGroup.cjs +9 -8
- package/dist/cjs/SearchInput/SearchInput.cjs +28 -0
- package/dist/cjs/SearchInput/SearchInput.styles.cjs +10 -0
- package/dist/cjs/Select/Select.cjs +15 -14
- package/dist/cjs/Select/Select.styles.cjs +1 -4
- package/dist/cjs/SelectionList/SelectionList.cjs +1 -1
- package/dist/cjs/Slider/Slider.cjs +34 -44
- package/dist/cjs/Slider/SliderInput/SliderInput.cjs +0 -1
- package/dist/cjs/Slider/utils.cjs +6 -9
- package/dist/cjs/SnackbarProvider/SnackbarProvider.cjs +16 -14
- package/dist/cjs/SnackbarProvider/SnackbarProvider.styles.cjs +1 -1
- package/dist/cjs/Switch/Switch.cjs +1 -1
- package/dist/cjs/TagsInput/TagsInput.cjs +31 -40
- package/dist/cjs/TagsInput/TagsInput.styles.cjs +3 -3
- package/dist/cjs/TextArea/TextArea.cjs +40 -40
- package/dist/cjs/TextArea/TextArea.styles.cjs +3 -5
- package/dist/cjs/TimePicker/TimePicker.cjs +15 -21
- package/dist/cjs/TimePicker/TimePicker.styles.cjs +1 -4
- package/dist/cjs/VerticalNavigation/Actions/Action.cjs +2 -1
- package/dist/cjs/VerticalNavigation/Actions/Action.styles.cjs +3 -5
- package/dist/cjs/icons.cjs +2 -1
- package/dist/cjs/index.cjs +4 -0
- package/dist/esm/Badge/Badge.styles.js +13 -1
- package/dist/esm/Banner/BannerContent/BannerContent.styles.js +1 -1
- package/dist/esm/BaseDropdown/BaseDropdown.js +1 -0
- package/dist/esm/BaseInput/validations.js +9 -16
- package/dist/esm/BaseSwitch/BaseSwitch.styles.js +1 -1
- package/dist/esm/Button/Button.styles.js +6 -4
- package/dist/esm/Calendar/CalendarHeader/CalendarHeader.js +1 -2
- package/dist/esm/Card/Card.js +5 -4
- package/dist/esm/Card/Card.styles.js +5 -3
- package/dist/esm/Card/Header/Header.styles.js +3 -3
- package/dist/esm/CheckBox/CheckBox.js +1 -1
- package/dist/esm/CheckBoxGroup/CheckBoxGroup.js +9 -8
- package/dist/esm/ColorPicker/ColorPicker.js +14 -22
- package/dist/esm/ColorPicker/ColorPicker.styles.js +1 -4
- package/dist/esm/DatePicker/DatePicker.js +15 -23
- package/dist/esm/DatePicker/DatePicker.styles.js +1 -4
- package/dist/esm/DotPagination/DotPagination.styles.js +1 -1
- package/dist/esm/Dropdown/Dropdown.js +16 -24
- package/dist/esm/Dropdown/Dropdown.styles.js +1 -1
- package/dist/esm/Dropdown/List/List.js +4 -1
- package/dist/esm/FileUploader/DropZone/DropZone.js +19 -17
- package/dist/esm/FileUploader/DropZone/DropZone.styles.js +0 -3
- package/dist/esm/FilterGroup/FilterGroup.js +15 -23
- package/dist/esm/FilterGroup/FilterGroup.styles.js +1 -1
- package/dist/esm/FormElement/InfoMessage/InfoMessage.js +1 -1
- package/dist/esm/FormElement/Label/Label.js +5 -2
- package/dist/esm/FormElement/LabelContainer.js +58 -0
- package/dist/esm/FormElement/WarningText/WarningText.js +4 -4
- package/dist/esm/FormElement/utils.js +3 -9
- package/dist/esm/InlineEditor/InlineEditor.js +1 -0
- package/dist/esm/InlineEditor/InlineEditor.styles.js +1 -2
- package/dist/esm/Input/Input.js +35 -40
- package/dist/esm/Input/Input.styles.js +1 -5
- package/dist/esm/Input/utils.js +12 -0
- package/dist/esm/NumberInput/NumberInput.js +54 -0
- package/dist/esm/NumberInput/NumberInput.styles.js +11 -0
- package/dist/esm/Pagination/Pagination.styles.js +1 -2
- package/dist/esm/QueryBuilder/Rule/Rule.styles.js +1 -1
- package/dist/esm/QueryBuilder/RuleGroup/RuleGroup.js +2 -2
- package/dist/esm/RadioGroup/RadioGroup.js +9 -8
- package/dist/esm/SearchInput/SearchInput.js +28 -0
- package/dist/esm/SearchInput/SearchInput.styles.js +10 -0
- package/dist/esm/Select/Select.js +15 -14
- package/dist/esm/Select/Select.styles.js +1 -4
- package/dist/esm/SelectionList/SelectionList.js +1 -1
- package/dist/esm/Slider/Slider.js +34 -44
- package/dist/esm/Slider/SliderInput/SliderInput.js +0 -1
- package/dist/esm/Slider/utils.js +6 -9
- package/dist/esm/SnackbarProvider/SnackbarProvider.js +16 -14
- package/dist/esm/SnackbarProvider/SnackbarProvider.styles.js +1 -1
- package/dist/esm/Switch/Switch.js +1 -1
- package/dist/esm/TagsInput/TagsInput.js +31 -40
- package/dist/esm/TagsInput/TagsInput.styles.js +3 -3
- package/dist/esm/TextArea/TextArea.js +42 -42
- package/dist/esm/TextArea/TextArea.styles.js +3 -5
- package/dist/esm/TimePicker/TimePicker.js +15 -21
- package/dist/esm/TimePicker/TimePicker.styles.js +1 -4
- package/dist/esm/VerticalNavigation/Actions/Action.js +2 -1
- package/dist/esm/VerticalNavigation/Actions/Action.styles.js +3 -5
- package/dist/esm/icons.js +2 -1
- package/dist/esm/index.js +4 -0
- package/dist/types/index.d.ts +51 -12
- package/package.json +5 -5
- package/dist/esm/Accordion/Accordion.js.map +0 -1
- package/dist/esm/Accordion/Accordion.styles.js.map +0 -1
- package/dist/esm/ActionBar/ActionBar.js.map +0 -1
- package/dist/esm/ActionBar/ActionBar.styles.js.map +0 -1
- package/dist/esm/ActionsGeneric/ActionsGeneric.js.map +0 -1
- package/dist/esm/ActionsGeneric/ActionsGeneric.styles.js.map +0 -1
- package/dist/esm/AppSwitcher/Action/Action.js.map +0 -1
- package/dist/esm/AppSwitcher/Action/Action.styles.js.map +0 -1
- package/dist/esm/AppSwitcher/AppSwitcher.js.map +0 -1
- package/dist/esm/AppSwitcher/AppSwitcher.styles.js.map +0 -1
- package/dist/esm/Avatar/Avatar.js.map +0 -1
- package/dist/esm/Avatar/Avatar.styles.js.map +0 -1
- package/dist/esm/AvatarGroup/AvatarGroup.js.map +0 -1
- package/dist/esm/AvatarGroup/AvatarGroup.styles.js.map +0 -1
- package/dist/esm/AvatarGroup/AvatarGroupContext.js.map +0 -1
- package/dist/esm/Badge/Badge.js.map +0 -1
- package/dist/esm/Badge/Badge.styles.js.map +0 -1
- package/dist/esm/Banner/Banner.js.map +0 -1
- package/dist/esm/Banner/Banner.styles.js.map +0 -1
- package/dist/esm/Banner/BannerContent/BannerContent.js.map +0 -1
- package/dist/esm/Banner/BannerContent/BannerContent.styles.js.map +0 -1
- package/dist/esm/BaseCheckBox/BaseCheckBox.js.map +0 -1
- package/dist/esm/BaseCheckBox/BaseCheckBox.styles.js.map +0 -1
- package/dist/esm/BaseCheckBox/CheckBoxIcon.js.map +0 -1
- package/dist/esm/BaseDropdown/BaseDropdown.js.map +0 -1
- package/dist/esm/BaseDropdown/BaseDropdown.styles.js.map +0 -1
- package/dist/esm/BaseDropdown/BaseDropdownPanel.js.map +0 -1
- package/dist/esm/BaseDropdown/context.js.map +0 -1
- package/dist/esm/BaseInput/BaseInput.js.map +0 -1
- package/dist/esm/BaseInput/BaseInput.styles.js.map +0 -1
- package/dist/esm/BaseInput/validations.js.map +0 -1
- package/dist/esm/BaseRadio/BaseRadio.js.map +0 -1
- package/dist/esm/BaseRadio/BaseRadio.styles.js.map +0 -1
- package/dist/esm/BaseRadio/RadioIcon.js.map +0 -1
- package/dist/esm/BaseSwitch/BaseSwitch.js.map +0 -1
- package/dist/esm/BaseSwitch/BaseSwitch.styles.js.map +0 -1
- package/dist/esm/Box/Box.js.map +0 -1
- package/dist/esm/BreadCrumb/BreadCrumb.js.map +0 -1
- package/dist/esm/BreadCrumb/BreadCrumb.styles.js.map +0 -1
- package/dist/esm/BreadCrumb/Page/Page.js.map +0 -1
- package/dist/esm/BreadCrumb/Page/Page.styles.js.map +0 -1
- package/dist/esm/BreadCrumb/PathElement/PathElement.js.map +0 -1
- package/dist/esm/BreadCrumb/PathElement/PathElement.styles.js.map +0 -1
- package/dist/esm/BreadCrumb/utils.js.map +0 -1
- package/dist/esm/BulkActions/BulkActions.js.map +0 -1
- package/dist/esm/BulkActions/BulkActions.styles.js.map +0 -1
- package/dist/esm/Button/Button.js.map +0 -1
- package/dist/esm/Button/Button.styles.js.map +0 -1
- package/dist/esm/ButtonBase/ButtonBase.js.map +0 -1
- package/dist/esm/ButtonBase/ButtonBase.styles.js.map +0 -1
- package/dist/esm/Calendar/Calendar.js.map +0 -1
- package/dist/esm/Calendar/Calendar.styles.js.map +0 -1
- package/dist/esm/Calendar/CalendarHeader/CalendarHeader.js.map +0 -1
- package/dist/esm/Calendar/CalendarHeader/CalendarHeader.styles.js.map +0 -1
- package/dist/esm/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +0 -1
- package/dist/esm/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.styles.js.map +0 -1
- package/dist/esm/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +0 -1
- package/dist/esm/Calendar/CalendarNavigation/MonthSelector/MonthSelector.styles.js.map +0 -1
- package/dist/esm/Calendar/CalendarNavigation/Navigation/Navigation.js.map +0 -1
- package/dist/esm/Calendar/CalendarNavigation/Navigation/Navigation.styles.js.map +0 -1
- package/dist/esm/Calendar/SingleCalendar/CalendarCell.js.map +0 -1
- package/dist/esm/Calendar/SingleCalendar/CalendarCell.styles.js.map +0 -1
- package/dist/esm/Calendar/SingleCalendar/SingleCalendar.js.map +0 -1
- package/dist/esm/Calendar/SingleCalendar/SingleCalendar.styles.js.map +0 -1
- package/dist/esm/Calendar/model.js.map +0 -1
- package/dist/esm/Calendar/utils.js.map +0 -1
- package/dist/esm/Card/Card.js.map +0 -1
- package/dist/esm/Card/Card.styles.js.map +0 -1
- package/dist/esm/Card/Content/Content.js.map +0 -1
- package/dist/esm/Card/Content/Content.styles.js.map +0 -1
- package/dist/esm/Card/Header/Header.js.map +0 -1
- package/dist/esm/Card/Header/Header.styles.js.map +0 -1
- package/dist/esm/Card/Media/Media.js.map +0 -1
- package/dist/esm/Card/Media/Media.styles.js.map +0 -1
- package/dist/esm/Carousel/Carousel.js.map +0 -1
- package/dist/esm/Carousel/Carousel.styles.js.map +0 -1
- package/dist/esm/Carousel/CarouselControls.js.map +0 -1
- package/dist/esm/Carousel/CarouselSlide/CarouselSlide.js.map +0 -1
- package/dist/esm/Carousel/CarouselSlide/CarouselSlide.styles.js.map +0 -1
- package/dist/esm/Carousel/CarouselThumbnails.js.map +0 -1
- package/dist/esm/CheckBox/CheckBox.js.map +0 -1
- package/dist/esm/CheckBox/CheckBox.styles.js.map +0 -1
- package/dist/esm/CheckBoxGroup/CheckBoxGroup.js.map +0 -1
- package/dist/esm/CheckBoxGroup/CheckBoxGroup.styles.js.map +0 -1
- package/dist/esm/ColorPicker/ColorPicker.js.map +0 -1
- package/dist/esm/ColorPicker/ColorPicker.styles.js.map +0 -1
- package/dist/esm/ColorPicker/Fields/Fields.js.map +0 -1
- package/dist/esm/ColorPicker/Fields/Fields.styles.js.map +0 -1
- package/dist/esm/ColorPicker/Picker/Picker.js.map +0 -1
- package/dist/esm/ColorPicker/Picker/Picker.styles.js.map +0 -1
- package/dist/esm/ColorPicker/PresetColors/PresetColors.js.map +0 -1
- package/dist/esm/ColorPicker/PresetColors/PresetColors.styles.js.map +0 -1
- package/dist/esm/ColorPicker/SavedColors/SavedColors.js.map +0 -1
- package/dist/esm/ColorPicker/SavedColors/SavedColors.styles.js.map +0 -1
- package/dist/esm/Container/Container.js.map +0 -1
- package/dist/esm/Container/Container.styles.js.map +0 -1
- package/dist/esm/Controls/Controls.js.map +0 -1
- package/dist/esm/Controls/Controls.styles.js.map +0 -1
- package/dist/esm/Controls/LeftControl/LeftControl.js.map +0 -1
- package/dist/esm/Controls/LeftControl/LeftControl.styles.js.map +0 -1
- package/dist/esm/Controls/RightControl/RightControl.js.map +0 -1
- package/dist/esm/Controls/RightControl/RightControl.styles.js.map +0 -1
- package/dist/esm/Controls/context/ControlsContext.js.map +0 -1
- package/dist/esm/DatePicker/DatePicker.js.map +0 -1
- package/dist/esm/DatePicker/DatePicker.styles.js.map +0 -1
- package/dist/esm/DatePicker/useVisibleDate.js.map +0 -1
- package/dist/esm/DatePicker/utils.js.map +0 -1
- package/dist/esm/Dialog/Actions/Actions.js.map +0 -1
- package/dist/esm/Dialog/Actions/Actions.styles.js.map +0 -1
- package/dist/esm/Dialog/Content/Content.js.map +0 -1
- package/dist/esm/Dialog/Content/Content.styles.js.map +0 -1
- package/dist/esm/Dialog/Dialog.js.map +0 -1
- package/dist/esm/Dialog/Dialog.styles.js.map +0 -1
- package/dist/esm/Dialog/Title/Title.js.map +0 -1
- package/dist/esm/Dialog/Title/Title.styles.js.map +0 -1
- package/dist/esm/Dialog/context.js.map +0 -1
- package/dist/esm/DotPagination/DotPagination.js.map +0 -1
- package/dist/esm/DotPagination/DotPagination.styles.js.map +0 -1
- package/dist/esm/Drawer/Drawer.js.map +0 -1
- package/dist/esm/Drawer/Drawer.styles.js.map +0 -1
- package/dist/esm/DropDownMenu/DropDownMenu.js.map +0 -1
- package/dist/esm/DropDownMenu/DropDownMenu.styles.js.map +0 -1
- package/dist/esm/Dropdown/Dropdown.js.map +0 -1
- package/dist/esm/Dropdown/Dropdown.styles.js.map +0 -1
- package/dist/esm/Dropdown/List/List.js.map +0 -1
- package/dist/esm/Dropdown/List/List.styles.js.map +0 -1
- package/dist/esm/Dropdown/utils.js.map +0 -1
- package/dist/esm/DropdownButton/DropdownButton.js.map +0 -1
- package/dist/esm/DropdownButton/DropdownButton.styles.js.map +0 -1
- package/dist/esm/EmptyState/EmptyState.js.map +0 -1
- package/dist/esm/EmptyState/EmptyState.styles.js.map +0 -1
- package/dist/esm/FileUploader/DropZone/DropZone.js.map +0 -1
- package/dist/esm/FileUploader/DropZone/DropZone.styles.js.map +0 -1
- package/dist/esm/FileUploader/File/File.js.map +0 -1
- package/dist/esm/FileUploader/File/File.styles.js.map +0 -1
- package/dist/esm/FileUploader/FileList/FileList.js.map +0 -1
- package/dist/esm/FileUploader/FileList/FileList.styles.js.map +0 -1
- package/dist/esm/FileUploader/FileUploader.js.map +0 -1
- package/dist/esm/FileUploader/FileUploader.styles.js.map +0 -1
- package/dist/esm/FileUploader/Preview/Preview.js.map +0 -1
- package/dist/esm/FileUploader/Preview/Preview.styles.js.map +0 -1
- package/dist/esm/FileUploader/utils.js.map +0 -1
- package/dist/esm/FilterGroup/Counter/Counter.js.map +0 -1
- package/dist/esm/FilterGroup/Counter/Counter.styles.js.map +0 -1
- package/dist/esm/FilterGroup/FilterContent/FilterContent.js.map +0 -1
- package/dist/esm/FilterGroup/FilterContent/FilterContent.styles.js.map +0 -1
- package/dist/esm/FilterGroup/FilterGroup.js.map +0 -1
- package/dist/esm/FilterGroup/FilterGroup.styles.js.map +0 -1
- package/dist/esm/FilterGroup/FilterGroupContext.js.map +0 -1
- package/dist/esm/FilterGroup/LeftPanel/LeftPanel.js.map +0 -1
- package/dist/esm/FilterGroup/LeftPanel/LeftPanel.styles.js.map +0 -1
- package/dist/esm/FilterGroup/RightPanel/RightPanel.js.map +0 -1
- package/dist/esm/FilterGroup/RightPanel/RightPanel.styles.js.map +0 -1
- package/dist/esm/Focus/Focus.js.map +0 -1
- package/dist/esm/Focus/Focus.styles.js.map +0 -1
- package/dist/esm/Focus/utils.js.map +0 -1
- package/dist/esm/Footer/Footer.js.map +0 -1
- package/dist/esm/Footer/Footer.styles.js.map +0 -1
- package/dist/esm/FormElement/Adornment/Adornment.js.map +0 -1
- package/dist/esm/FormElement/Adornment/Adornment.styles.js.map +0 -1
- package/dist/esm/FormElement/CharCounter/CharCounter.js.map +0 -1
- package/dist/esm/FormElement/CharCounter/CharCounter.styles.js.map +0 -1
- package/dist/esm/FormElement/FormElement.js.map +0 -1
- package/dist/esm/FormElement/FormElement.styles.js.map +0 -1
- package/dist/esm/FormElement/InfoMessage/InfoMessage.js.map +0 -1
- package/dist/esm/FormElement/InfoMessage/InfoMessage.styles.js.map +0 -1
- package/dist/esm/FormElement/Label/Label.js.map +0 -1
- package/dist/esm/FormElement/Label/Label.styles.js.map +0 -1
- package/dist/esm/FormElement/Suggestions/Suggestions.js.map +0 -1
- package/dist/esm/FormElement/Suggestions/Suggestions.styles.js.map +0 -1
- package/dist/esm/FormElement/WarningText/WarningText.js.map +0 -1
- package/dist/esm/FormElement/WarningText/WarningText.styles.js.map +0 -1
- package/dist/esm/FormElement/context.js.map +0 -1
- package/dist/esm/FormElement/utils.js.map +0 -1
- package/dist/esm/GlobalActions/GlobalActions.js.map +0 -1
- package/dist/esm/GlobalActions/GlobalActions.styles.js.map +0 -1
- package/dist/esm/Grid/Grid.js.map +0 -1
- package/dist/esm/Grid/Grid.styles.js.map +0 -1
- package/dist/esm/Header/Actions/Actions.js.map +0 -1
- package/dist/esm/Header/Actions/Actions.styles.js.map +0 -1
- package/dist/esm/Header/Brand/Brand.js.map +0 -1
- package/dist/esm/Header/Brand/Brand.styles.js.map +0 -1
- package/dist/esm/Header/Header.js.map +0 -1
- package/dist/esm/Header/Header.styles.js.map +0 -1
- package/dist/esm/Header/Navigation/MenuBar/Bar.js.map +0 -1
- package/dist/esm/Header/Navigation/MenuBar/Bar.styles.js.map +0 -1
- package/dist/esm/Header/Navigation/MenuBar/MenuBar.js.map +0 -1
- package/dist/esm/Header/Navigation/MenuItem/MenuItem.js.map +0 -1
- package/dist/esm/Header/Navigation/MenuItem/MenuItem.styles.js.map +0 -1
- package/dist/esm/Header/Navigation/Navigation.js.map +0 -1
- package/dist/esm/Header/Navigation/Navigation.styles.js.map +0 -1
- package/dist/esm/Header/Navigation/useSelectionPath.js.map +0 -1
- package/dist/esm/Header/Navigation/utils/FocusContext.js.map +0 -1
- package/dist/esm/Header/Navigation/utils/SelectionContext.js.map +0 -1
- package/dist/esm/IconButton/IconButton.js.map +0 -1
- package/dist/esm/IconContainer/IconContainer.js.map +0 -1
- package/dist/esm/InlineEditor/InlineEditor.js.map +0 -1
- package/dist/esm/InlineEditor/InlineEditor.styles.js.map +0 -1
- package/dist/esm/Input/Input.js.map +0 -1
- package/dist/esm/Input/Input.styles.js.map +0 -1
- package/dist/esm/Input/icons.js.map +0 -1
- package/dist/esm/Kpi/Kpi.js.map +0 -1
- package/dist/esm/Kpi/Kpi.styles.js.map +0 -1
- package/dist/esm/Link/Link.js.map +0 -1
- package/dist/esm/Link/Link.styles.js.map +0 -1
- package/dist/esm/List/List.js.map +0 -1
- package/dist/esm/List/List.styles.js.map +0 -1
- package/dist/esm/List/useSelectableList.js.map +0 -1
- package/dist/esm/List/utils.js.map +0 -1
- package/dist/esm/ListContainer/ListContainer.js.map +0 -1
- package/dist/esm/ListContainer/ListContainer.styles.js.map +0 -1
- package/dist/esm/ListContainer/ListContext/ListContext.js.map +0 -1
- package/dist/esm/ListContainer/ListItem/ListItem.js.map +0 -1
- package/dist/esm/ListContainer/ListItem/ListItem.styles.js.map +0 -1
- package/dist/esm/Loading/Loading.js.map +0 -1
- package/dist/esm/Loading/Loading.styles.js.map +0 -1
- package/dist/esm/LoadingContainer/LoadingContainer.js.map +0 -1
- package/dist/esm/LoadingContainer/LoadingContainer.styles.js.map +0 -1
- package/dist/esm/Login/Login.js.map +0 -1
- package/dist/esm/Login/Login.styles.js.map +0 -1
- package/dist/esm/MultiButton/MultiButton.js.map +0 -1
- package/dist/esm/MultiButton/MultiButton.styles.js.map +0 -1
- package/dist/esm/OverflowTooltip/OverflowTooltip.js.map +0 -1
- package/dist/esm/OverflowTooltip/OverflowTooltip.styles.js.map +0 -1
- package/dist/esm/Pagination/Pagination.js.map +0 -1
- package/dist/esm/Pagination/Pagination.styles.js.map +0 -1
- package/dist/esm/Pagination/Select.js.map +0 -1
- package/dist/esm/Pagination/Select.styles.js.map +0 -1
- package/dist/esm/Panel/Panel.js.map +0 -1
- package/dist/esm/Panel/Panel.styles.js.map +0 -1
- package/dist/esm/ProgressBar/ProgressBar.js.map +0 -1
- package/dist/esm/ProgressBar/ProgressBar.styles.js.map +0 -1
- package/dist/esm/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +0 -1
- package/dist/esm/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.js.map +0 -1
- package/dist/esm/QueryBuilder/Context.js.map +0 -1
- package/dist/esm/QueryBuilder/QueryBuilder.js.map +0 -1
- package/dist/esm/QueryBuilder/QueryBuilder.styles.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Attribute/Attribute.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Operator/Operator.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Rule.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Rule.styles.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/utils.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Value/EmptyValue/EmptyValue.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Value/TextValue/TextValue.styles.js.map +0 -1
- package/dist/esm/QueryBuilder/Rule/Value/Value.js.map +0 -1
- package/dist/esm/QueryBuilder/RuleGroup/RuleGroup.js.map +0 -1
- package/dist/esm/QueryBuilder/types.js.map +0 -1
- package/dist/esm/QueryBuilder/utils/index.js.map +0 -1
- package/dist/esm/QueryBuilder/utils/reducer.js.map +0 -1
- package/dist/esm/Radio/Radio.js.map +0 -1
- package/dist/esm/Radio/Radio.styles.js.map +0 -1
- package/dist/esm/RadioGroup/RadioGroup.js.map +0 -1
- package/dist/esm/RadioGroup/RadioGroup.styles.js.map +0 -1
- package/dist/esm/ScrollToHorizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +0 -1
- package/dist/esm/ScrollToHorizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js.map +0 -1
- package/dist/esm/ScrollToHorizontal/ScrollToHorizontal.js.map +0 -1
- package/dist/esm/ScrollToHorizontal/ScrollToHorizontal.styles.js.map +0 -1
- package/dist/esm/ScrollToVertical/ScrollToVertical.js.map +0 -1
- package/dist/esm/ScrollToVertical/ScrollToVertical.styles.js.map +0 -1
- package/dist/esm/ScrollToVertical/VerticalScrollListItem/VerticalScrollListItem.js.map +0 -1
- package/dist/esm/ScrollToVertical/VerticalScrollListItem/VerticalScrollListItem.styles.js.map +0 -1
- package/dist/esm/Section/Section.js.map +0 -1
- package/dist/esm/Section/Section.styles.js.map +0 -1
- package/dist/esm/Select/Option.js.map +0 -1
- package/dist/esm/Select/OptionGroup.js.map +0 -1
- package/dist/esm/Select/Select.js.map +0 -1
- package/dist/esm/Select/Select.styles.js.map +0 -1
- package/dist/esm/SelectionList/SelectionList.js.map +0 -1
- package/dist/esm/SelectionList/SelectionList.styles.js.map +0 -1
- package/dist/esm/SimpleGrid/SimpleGrid.js.map +0 -1
- package/dist/esm/SimpleGrid/SimpleGrid.styles.js.map +0 -1
- package/dist/esm/Skeleton/Skeleton.js.map +0 -1
- package/dist/esm/Skeleton/Skeleton.styles.js.map +0 -1
- package/dist/esm/Slider/Slider.js.map +0 -1
- package/dist/esm/Slider/Slider.styles.js.map +0 -1
- package/dist/esm/Slider/SliderInput/SliderInput.js.map +0 -1
- package/dist/esm/Slider/SliderInput/SliderInput.styles.js.map +0 -1
- package/dist/esm/Slider/base.js.map +0 -1
- package/dist/esm/Slider/utils.js.map +0 -1
- package/dist/esm/Snackbar/Snackbar.js.map +0 -1
- package/dist/esm/Snackbar/Snackbar.styles.js.map +0 -1
- package/dist/esm/Snackbar/SnackbarContent/SnackbarContent.js.map +0 -1
- package/dist/esm/Snackbar/SnackbarContent/SnackbarContent.styles.js.map +0 -1
- package/dist/esm/SnackbarProvider/SnackbarProvider.js.map +0 -1
- package/dist/esm/SnackbarProvider/SnackbarProvider.styles.js.map +0 -1
- package/dist/esm/Stack/Stack.js.map +0 -1
- package/dist/esm/Stack/Stack.styles.js.map +0 -1
- package/dist/esm/Switch/Switch.js.map +0 -1
- package/dist/esm/Switch/Switch.styles.js.map +0 -1
- package/dist/esm/Table/Table.js.map +0 -1
- package/dist/esm/Table/Table.styles.js.map +0 -1
- package/dist/esm/Table/TableBody/TableBody.js.map +0 -1
- package/dist/esm/Table/TableBody/TableBody.styles.js.map +0 -1
- package/dist/esm/Table/TableCell/TableCell.js.map +0 -1
- package/dist/esm/Table/TableCell/TableCell.styles.js.map +0 -1
- package/dist/esm/Table/TableContainer/TableContainer.js.map +0 -1
- package/dist/esm/Table/TableContainer/TableContainer.styles.js.map +0 -1
- package/dist/esm/Table/TableContext.js.map +0 -1
- package/dist/esm/Table/TableHead/TableHead.js.map +0 -1
- package/dist/esm/Table/TableHead/TableHead.styles.js.map +0 -1
- package/dist/esm/Table/TableHeader/TableHeader.js.map +0 -1
- package/dist/esm/Table/TableHeader/TableHeader.styles.js.map +0 -1
- package/dist/esm/Table/TableHeader/utils.js.map +0 -1
- package/dist/esm/Table/TableRow/TableRow.js.map +0 -1
- package/dist/esm/Table/TableRow/TableRow.styles.js.map +0 -1
- package/dist/esm/Table/TableSection/TableSection.js.map +0 -1
- package/dist/esm/Table/TableSection/TableSection.styles.js.map +0 -1
- package/dist/esm/Table/TableSectionContext.js.map +0 -1
- package/dist/esm/Table/hooks/useHvBulkActions.js.map +0 -1
- package/dist/esm/Table/hooks/useHvFilters.js.map +0 -1
- package/dist/esm/Table/hooks/useHvGlobalFilter.js.map +0 -1
- package/dist/esm/Table/hooks/useHvHeaderGroups.js.map +0 -1
- package/dist/esm/Table/hooks/useHvPagination.js.map +0 -1
- package/dist/esm/Table/hooks/useHvResizeColumns.js.map +0 -1
- package/dist/esm/Table/hooks/useHvRowExpand.js.map +0 -1
- package/dist/esm/Table/hooks/useHvRowSelection.js.map +0 -1
- package/dist/esm/Table/hooks/useHvRowState.js.map +0 -1
- package/dist/esm/Table/hooks/useHvSortBy.js.map +0 -1
- package/dist/esm/Table/hooks/useHvSticky.js.map +0 -1
- package/dist/esm/Table/hooks/useHvTable.js.map +0 -1
- package/dist/esm/Table/hooks/useHvTableStyles.js.map +0 -1
- package/dist/esm/Table/renderers/DateColumnCell.js.map +0 -1
- package/dist/esm/Table/renderers/DefaultCell.js.map +0 -1
- package/dist/esm/Table/renderers/DropdownColumnCell.js.map +0 -1
- package/dist/esm/Table/renderers/ProgressColumnCell.js.map +0 -1
- package/dist/esm/Table/renderers/SwitchColumnCell.js.map +0 -1
- package/dist/esm/Table/renderers/renderers.js.map +0 -1
- package/dist/esm/Tabs/Tab/Tab.js.map +0 -1
- package/dist/esm/Tabs/Tab/Tab.styles.js.map +0 -1
- package/dist/esm/Tabs/Tabs.js.map +0 -1
- package/dist/esm/Tabs/Tabs.styles.js.map +0 -1
- package/dist/esm/Tag/Tag.js.map +0 -1
- package/dist/esm/Tag/Tag.styles.js.map +0 -1
- package/dist/esm/TagsInput/TagsInput.js.map +0 -1
- package/dist/esm/TagsInput/TagsInput.styles.js.map +0 -1
- package/dist/esm/TextArea/TextArea.js.map +0 -1
- package/dist/esm/TextArea/TextArea.styles.js.map +0 -1
- package/dist/esm/TimeAgo/TimeAgo.js.map +0 -1
- package/dist/esm/TimeAgo/TimeAgo.styles.js.map +0 -1
- package/dist/esm/TimeAgo/formatUtils.js.map +0 -1
- package/dist/esm/TimeAgo/useTimeAgo.js.map +0 -1
- package/dist/esm/TimeAgo/useTimeout.js.map +0 -1
- package/dist/esm/TimePicker/Placeholder.js.map +0 -1
- package/dist/esm/TimePicker/TimePicker.js.map +0 -1
- package/dist/esm/TimePicker/TimePicker.styles.js.map +0 -1
- package/dist/esm/TimePicker/Unit/Unit.js.map +0 -1
- package/dist/esm/TimePicker/Unit/Unit.styles.js.map +0 -1
- package/dist/esm/ToggleButton/ToggleButton.js.map +0 -1
- package/dist/esm/Tooltip/Tooltip.js.map +0 -1
- package/dist/esm/Tooltip/Tooltip.styles.js.map +0 -1
- package/dist/esm/TreeView/TreeItem/DefaultContent.js.map +0 -1
- package/dist/esm/TreeView/TreeItem/TreeItem.js.map +0 -1
- package/dist/esm/TreeView/TreeItem/TreeItem.styles.js.map +0 -1
- package/dist/esm/TreeView/TreeItem/useHvTreeItem.js.map +0 -1
- package/dist/esm/TreeView/TreeView.js.map +0 -1
- package/dist/esm/TreeView/TreeView.styles.js.map +0 -1
- package/dist/esm/TreeView/internals/DescendantProvider.js.map +0 -1
- package/dist/esm/TreeView/internals/TreeViewProvider.js.map +0 -1
- package/dist/esm/TreeView/internals/corePlugins.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/plugins/defaultPlugins.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewContextValueBuilder.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewExpansion.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewFocus.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewKeyboardNavigation.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewNodes.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewSelection.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/useInstanceEventHandler.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/useTreeView.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/useTreeViewInstanceEvents.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/useTreeViewModels.js.map +0 -1
- package/dist/esm/TreeView/internals/hooks/utils.js.map +0 -1
- package/dist/esm/TreeView/internals/utils/EventManager.js.map +0 -1
- package/dist/esm/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.js.map +0 -1
- package/dist/esm/TreeView/internals/utils/TimerBasedCleanupTracking.js.map +0 -1
- package/dist/esm/TreeView/internals/utils/publishTreeViewEvent.js.map +0 -1
- package/dist/esm/Typography/Typography.js.map +0 -1
- package/dist/esm/Typography/Typography.styles.js.map +0 -1
- package/dist/esm/Typography/utils.js.map +0 -1
- package/dist/esm/VerticalNavigation/Actions/Action.js.map +0 -1
- package/dist/esm/VerticalNavigation/Actions/Action.styles.js.map +0 -1
- package/dist/esm/VerticalNavigation/Actions/Actions.js.map +0 -1
- package/dist/esm/VerticalNavigation/Actions/Actions.styles.js.map +0 -1
- package/dist/esm/VerticalNavigation/Header/Header.js.map +0 -1
- package/dist/esm/VerticalNavigation/Header/Header.styles.js.map +0 -1
- package/dist/esm/VerticalNavigation/Navigation/Navigation.js.map +0 -1
- package/dist/esm/VerticalNavigation/Navigation/Navigation.styles.js.map +0 -1
- package/dist/esm/VerticalNavigation/NavigationPopup/NavigationPopup.styles.js.map +0 -1
- package/dist/esm/VerticalNavigation/NavigationPopup/NavigationPopupContainer.js.map +0 -1
- package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.js.map +0 -1
- package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js.map +0 -1
- package/dist/esm/VerticalNavigation/NavigationSlider/utils.js.map +0 -1
- package/dist/esm/VerticalNavigation/TreeView/TreeView.js.map +0 -1
- package/dist/esm/VerticalNavigation/TreeView/TreeView.styles.js.map +0 -1
- package/dist/esm/VerticalNavigation/TreeView/TreeViewContext.js.map +0 -1
- package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.js.map +0 -1
- package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +0 -1
- package/dist/esm/VerticalNavigation/VerticalNavigation.js.map +0 -1
- package/dist/esm/VerticalNavigation/VerticalNavigation.styles.js.map +0 -1
- package/dist/esm/VerticalNavigation/VerticalNavigationContext.js.map +0 -1
- package/dist/esm/VerticalNavigation/utils/VerticalNavigation.utils.js.map +0 -1
- package/dist/esm/hooks/useClickOutside.js.map +0 -1
- package/dist/esm/hooks/useComputation.js.map +0 -1
- package/dist/esm/hooks/useControlled.js.map +0 -1
- package/dist/esm/hooks/useEnhancedEffect.js.map +0 -1
- package/dist/esm/hooks/useExpandable.js.map +0 -1
- package/dist/esm/hooks/useFocus.js.map +0 -1
- package/dist/esm/hooks/useForkRef.js.map +0 -1
- package/dist/esm/hooks/useImageLoaded.js.map +0 -1
- package/dist/esm/hooks/useIsMounted.js.map +0 -1
- package/dist/esm/hooks/useLabels.js.map +0 -1
- package/dist/esm/hooks/useScrollTo.js.map +0 -1
- package/dist/esm/hooks/useUniqueId.js.map +0 -1
- package/dist/esm/hooks/useWidth.js.map +0 -1
- package/dist/esm/icons.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/providers/Provider.js.map +0 -1
- package/dist/esm/providers/ThemeProvider.js.map +0 -1
- package/dist/esm/types/generic.js.map +0 -1
- package/dist/esm/utils/Callout.js.map +0 -1
- package/dist/esm/utils/CounterLabel.js.map +0 -1
- package/dist/esm/utils/browser.js.map +0 -1
- package/dist/esm/utils/deepMerge.js.map +0 -1
- package/dist/esm/utils/document.js.map +0 -1
- package/dist/esm/utils/focusUtils.js.map +0 -1
- package/dist/esm/utils/focusableElementFinder.js.map +0 -1
- package/dist/esm/utils/getComponentName.js.map +0 -1
- package/dist/esm/utils/helpers.js.map +0 -1
- package/dist/esm/utils/hexToRgbA.js.map +0 -1
- package/dist/esm/utils/iconVariant.js.map +0 -1
- package/dist/esm/utils/keyboardUtils.js.map +0 -1
- package/dist/esm/utils/multiSelectionEventHandler.js.map +0 -1
- package/dist/esm/utils/scroll.js.map +0 -1
- package/dist/esm/utils/setId.js.map +0 -1
- package/dist/esm/utils/sizes.js.map +0 -1
- package/dist/esm/utils/theme.js.map +0 -1
- package/dist/esm/utils/useSavedState.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TreeView.js","sources":["../../../../src/VerticalNavigation/TreeView/TreeView.tsx"],"sourcesContent":["import { forwardRef, useCallback, useMemo, useRef, useState } from \"react\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { useControlled } from \"../../hooks/useControlled\";\nimport { useForkRef } from \"../../hooks/useForkRef\";\nimport { useUniqueId } from \"../../hooks/useUniqueId\";\nimport { DescendantProvider } from \"../../TreeView/internals/DescendantProvider\";\nimport { HvBaseProps } from \"../../types/generic\";\nimport { staticClasses, useClasses } from \"./TreeView.styles\";\nimport {\n NavigationMode,\n TreeViewControlContext,\n TreeViewStateContext,\n} from \"./TreeViewContext\";\n\nexport { staticClasses as treeViewClasses };\n\nexport type HvVerticalNavigationTreeViewClasses = ExtractNames<\n typeof useClasses\n>;\n\nexport interface HvVerticalNavigationTreeViewProps\n extends HvBaseProps<HTMLUListElement, \"onChange\" | \"onToggle\"> {\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvVerticalNavigationTreeViewClasses;\n /** Modus operandi (role) of the widget instance. */\n mode?: NavigationMode;\n /** Enables selection. @default false */\n selectable?: boolean;\n /** Enables the simultaneous selection of multiple items. @default false */\n multiSelect?: boolean;\n /** The selected nodes' ids. When `multiSelect` is true this takes an array of strings; when false (default) a string. */\n selected?: string[] | string;\n /**\n * When uncontrolled, defines the initial selected nodes' ids.\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelected?: string[] | string;\n /** Can non-leaf nodes be collapsed / expanded. */\n collapsible?: boolean;\n /** Callback fired when a tree item is selected. */\n onChange?: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string | string[],\n payloads: any,\n ) => void;\n /** Expanded nodes' ids. */\n expanded?: string[];\n /** When uncontrolled, defines the initial expanded nodes' ids. @default [] */\n defaultExpanded?: string[];\n /** Callback fired when tree items are expanded/collapsed. */\n onToggle?: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeIds: string[],\n ) => void;\n /** If `true`, will allow focus on disabled items. @default false */\n disabledItemsFocusable?: boolean;\n}\nfunction isPrintableCharacter(string: string) {\n return string && string.length === 1 && string.match(/\\S/);\n}\n\nfunction findNextFirstChar(\n firstChars: string[],\n startIndex: number,\n char: string,\n) {\n return firstChars.slice(startIndex).findIndex((c) => c === char);\n}\n\nfunction noopSelection() {\n return false;\n}\n\nexport const HvVerticalNavigationTreeView = forwardRef<\n HTMLUListElement,\n HvVerticalNavigationTreeViewProps\n>(function HvVerticalNavigationTreeView(props, ref) {\n const {\n id: idProp,\n className,\n classes: classesProp,\n mode = \"treeview\",\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded = [],\n onToggle,\n selectable = false,\n multiSelect: multiSelectProp = false,\n selected: selectedProp,\n defaultSelected = [],\n onChange,\n disabledItemsFocusable = false,\n onFocus,\n onBlur,\n onKeyDown,\n children,\n ...others\n } = useDefaultProps(\"HvVerticalNavigationTreeView\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const treeviewMode = mode === \"treeview\";\n const multiSelect = selectable && multiSelectProp;\n\n const treeId = useUniqueId(idProp);\n const treeRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(treeRef, ref);\n\n const [expanded, setExpandedState] = useControlled(\n expandedProp,\n defaultExpanded,\n );\n\n const [selected, setSelectedState] = useControlled(\n selectedProp,\n defaultSelected,\n );\n\n const [focusedNodeId, setFocusedNodeId] = useState<string | null>(null);\n\n const nodeMap = useRef<Record<string, any>>({});\n\n const firstCharMap = useRef<Record<string, any>>({});\n\n const isExpanded = useCallback(\n (id: string) =>\n !collapsible ||\n (Array.isArray(expanded) ? expanded.indexOf(id) !== -1 : false),\n [collapsible, expanded],\n );\n\n const isExpandable = useCallback(\n (id: string) =>\n collapsible && nodeMap.current[id] && nodeMap.current[id].expandable,\n [collapsible],\n );\n\n const isSelected = useCallback(\n (id: string) =>\n selectable &&\n (Array.isArray(selected) ? selected.indexOf(id) !== -1 : selected === id),\n [selectable, selected],\n );\n\n const isSelectable = useCallback(\n (id: string) =>\n selectable && nodeMap.current[id] && nodeMap.current[id].selectable,\n [selectable],\n );\n\n const isDisabled = useCallback((id: string) => {\n let node = nodeMap.current[id];\n\n // This can be called before the node has been added to the node map.\n if (!node) {\n return false;\n }\n\n if (node.disabled) {\n return true;\n }\n\n while (node.parentId != null) {\n node = nodeMap.current[node.parentId];\n if (node.disabled) {\n return true;\n }\n }\n\n return false;\n }, []);\n\n const isFocused = useCallback(\n (id: string) => focusedNodeId === id,\n [focusedNodeId],\n );\n\n const isChildSelected = useCallback(\n // the second part of the condition is to ensure that the id we're\n // looking at is actually of a child (ie, there's at least one \"-\")\n (id: string) => {\n return Array<string>()\n .concat(selected)\n .some((s) => s.startsWith(id) && s.includes(\"-\"));\n },\n [selected],\n );\n\n const getChildrenIds = (id: string | null) =>\n Object.keys(nodeMap.current)\n .map((key) => {\n return nodeMap.current[key];\n })\n .filter((node) => node.parentId === id)\n .sort((a, b) => a.index - b.index)\n .map((child) => child.id);\n\n const getNavigableChildrenIds = useCallback(\n (id: string | null) => {\n let childrenIds = getChildrenIds(id);\n\n if (!disabledItemsFocusable) {\n childrenIds = childrenIds.filter((node) => !isDisabled(node));\n }\n return childrenIds;\n },\n [disabledItemsFocusable, isDisabled],\n );\n\n const getNextNode = useCallback(\n (id: string) => {\n // If expanded get first child\n if (isExpanded(id) && getNavigableChildrenIds(id).length > 0) {\n return getNavigableChildrenIds(id)[0];\n }\n\n let node = nodeMap.current[id];\n while (node != null) {\n // Try to get next sibling\n const siblings = getNavigableChildrenIds(node.parentId);\n const nextSibling = siblings[siblings.indexOf(node.id) + 1];\n\n if (nextSibling) {\n return nextSibling;\n }\n\n // If the sibling does not exist, go up a level to the parent and try again.\n node = nodeMap.current[node.parentId];\n }\n\n return null;\n },\n [getNavigableChildrenIds, isExpanded],\n );\n\n const getPreviousNode = (id: string) => {\n const node = nodeMap.current[id];\n const siblings = getNavigableChildrenIds(node.parentId);\n const nodeIndex = siblings.indexOf(id);\n\n if (nodeIndex === 0) {\n return node.parentId;\n }\n\n let currentNode = siblings[nodeIndex - 1];\n while (\n isExpanded(currentNode) &&\n getNavigableChildrenIds(currentNode).length > 0\n ) {\n currentNode = getNavigableChildrenIds(currentNode).pop();\n }\n\n return currentNode;\n };\n\n const getLastNode = () => {\n let lastNode = getNavigableChildrenIds(null).pop();\n\n while (isExpanded(lastNode)) {\n lastNode = getNavigableChildrenIds(lastNode).pop();\n }\n return lastNode;\n };\n const getFirstNode = () => getNavigableChildrenIds(null)[0];\n const getParent = (id: any) => nodeMap.current[id].parentId;\n\n /**\n * This is used to determine the start and end of a selection range so\n * we can get the nodes between the two border nodes.\n *\n * It finds the nodes' common ancestor using\n * a naive implementation of a lowest common ancestor algorithm\n * (https://en.wikipedia.org/wiki/Lowest_common_ancestor).\n * Then compares the ancestor's 2 children that are ancestors of nodeA and NodeB\n * so we can compare their indexes to work out which node comes first in a depth first search.\n * (https://en.wikipedia.org/wiki/Depth-first_search)\n *\n * Another way to put it is which node is shallower in a trémaux tree\n * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree\n */\n const findOrderInTremauxTree = useCallback(\n (nodeAId: string, nodeBId: string) => {\n if (nodeAId === nodeBId) {\n return [nodeAId, nodeBId];\n }\n\n const nodeA = nodeMap.current[nodeAId];\n const nodeB = nodeMap.current[nodeBId];\n\n if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {\n return nodeB.parentId === nodeA.id\n ? [nodeA.id, nodeB.id]\n : [nodeB.id, nodeA.id];\n }\n\n const aFamily = [nodeA.id];\n const bFamily = [nodeB.id];\n\n let aAncestor = nodeA.parentId;\n let bAncestor = nodeB.parentId;\n\n let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n\n let continueA = true;\n let continueB = true;\n\n while (!bAncestorIsCommon && !aAncestorIsCommon) {\n if (continueA) {\n aFamily.push(aAncestor);\n aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n continueA = aAncestor !== null;\n if (!aAncestorIsCommon && continueA) {\n aAncestor = nodeMap.current[aAncestor].parentId;\n }\n }\n\n if (continueB && !aAncestorIsCommon) {\n bFamily.push(bAncestor);\n bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n continueB = bAncestor !== null;\n if (!bAncestorIsCommon && continueB) {\n bAncestor = nodeMap.current[bAncestor].parentId;\n }\n }\n }\n\n const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;\n const ancestorFamily = getChildrenIds(commonAncestor);\n\n const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];\n const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];\n\n return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide)\n ? [nodeAId, nodeBId]\n : [nodeBId, nodeAId];\n },\n [],\n );\n\n const getNodesInRange = useCallback(\n (nodeA: string, nodeB: string) => {\n if (nodeA && nodeB) {\n const [first, last] = findOrderInTremauxTree(nodeA, nodeB);\n const nodes = [first];\n\n let current = first;\n\n while (current !== last) {\n current = getNextNode(current);\n nodes.push(current);\n }\n\n return nodes;\n }\n return [];\n },\n [findOrderInTremauxTree, getNextNode],\n );\n\n const focus = (\n event:\n | React.KeyboardEvent<HTMLUListElement>\n | React.FocusEvent<HTMLUListElement>,\n id: any,\n ) => {\n if (id) {\n setFocusedNodeId(id);\n\n if (nodeMap.current[id]?.onFocus) {\n nodeMap.current[id].onFocus(event);\n }\n }\n };\n\n const focusNextNode = (\n event: React.KeyboardEvent<HTMLUListElement>,\n id: any,\n ) => focus(event, getNextNode(id));\n const focusPreviousNode = (\n event: React.KeyboardEvent<HTMLUListElement>,\n id: any,\n ) => focus(event, getPreviousNode(id));\n const focusFirstNode = (event: React.KeyboardEvent<HTMLUListElement>) =>\n focus(event, getFirstNode());\n const focusLastNode = (event: React.KeyboardEvent<HTMLUListElement>) =>\n focus(event, getLastNode());\n\n const focusByFirstCharacter = (\n event: React.KeyboardEvent<HTMLUListElement>,\n id: any,\n char: any,\n ) => {\n let start;\n let index;\n const lowercaseChar = char.toLowerCase();\n\n const firstCharIds: string[] = [];\n const firstChars: string[] = [];\n // This really only works since the ids are strings\n Object.keys(firstCharMap.current).forEach((nodeId) => {\n const firstChar = firstCharMap.current[nodeId];\n const map = nodeMap.current[nodeId];\n const visible = map.parentId ? isExpanded(map.parentId) : true;\n const shouldBeSkipped = disabledItemsFocusable\n ? false\n : isDisabled(nodeId);\n\n if (visible && !shouldBeSkipped) {\n firstCharIds.push(nodeId);\n firstChars.push(firstChar);\n }\n });\n\n // Get start index for search based on position of currentItem\n start = firstCharIds.indexOf(id) + 1;\n if (start >= firstCharIds.length) {\n start = 0;\n }\n\n // Check remaining slots in the menu\n index = findNextFirstChar(firstChars, start, lowercaseChar);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = findNextFirstChar(firstChars, 0, lowercaseChar);\n }\n\n // If match was found...\n if (index > -1) {\n focus(event, firstCharIds[index]);\n }\n };\n\n const toggleExpansion = useCallback(\n (event: React.KeyboardEvent<HTMLUListElement>, value = focusedNodeId) => {\n if (!value) return;\n\n const newExpanded = expanded.includes(value)\n ? expanded.filter((id) => id !== value)\n : [value].concat(expanded);\n\n onToggle?.(event, newExpanded);\n\n setExpandedState(newExpanded);\n },\n [expanded, focusedNodeId, onToggle, setExpandedState],\n );\n\n const expandAllSiblings = (\n event: React.KeyboardEvent<HTMLUListElement>,\n id: any,\n ) => {\n const map = nodeMap.current[id];\n const siblings = getChildrenIds(map.parentId);\n\n const diff = siblings.filter(\n (child) => isExpandable(child) && !isExpanded(child),\n );\n\n const newExpanded = expanded.concat(diff);\n\n if (diff.length > 0) {\n setExpandedState(newExpanded);\n onToggle?.(event, newExpanded);\n }\n };\n\n const lastSelectedNode = useRef<HTMLDivElement | null>(null);\n const lastSelectionWasRange = useRef(false);\n const currentRangeSelection = useRef<HTMLDivElement[]>([]);\n\n const isDivElement = (element: any): element is HTMLDivElement => {\n return (element as HTMLDivElement).nodeType === 1;\n };\n\n const handleRangeArrowSelect = useCallback(\n (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodes: { start?: any; next?: any; current?: any },\n ) => {\n let base = Array<string>().concat(selected);\n const { start, next, current } = nodes;\n\n if (!next || !current) {\n return;\n }\n\n if (\n isDivElement(current) &&\n currentRangeSelection.current.indexOf(current) === -1\n ) {\n currentRangeSelection.current = [];\n }\n\n if (lastSelectionWasRange.current) {\n if (\n isDivElement(next) &&\n currentRangeSelection.current.indexOf(next) !== -1\n ) {\n base = base.filter((id) => id === start || id !== current);\n currentRangeSelection.current = currentRangeSelection.current.filter(\n (id) => id === start || id !== current,\n );\n } else {\n base.push(next);\n currentRangeSelection.current.push(next);\n }\n } else {\n base.push(next);\n currentRangeSelection.current.push(current, next);\n }\n onChange?.(\n event,\n base,\n base.map((id) => nodeMap.current[id]?.payload),\n );\n setSelectedState(base);\n },\n [onChange, selected, setSelectedState],\n );\n\n const handleRangeSelect = useCallback(\n (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodes: { start?: any; end?: any; current?: any },\n ) => {\n let base = Array<string>().concat(selected);\n const { start, end } = nodes;\n // If last selection was a range selection ignore nodes that were selected.\n if (lastSelectionWasRange.current) {\n base = base.filter(\n (id) => !currentRangeSelection.current.includes(id as any),\n );\n }\n\n let range = getNodesInRange(start, end);\n range = range.filter((node) => !isDisabled(node));\n currentRangeSelection.current = range;\n let newSelected = base.concat(range);\n newSelected = newSelected.filter(\n (id, i) => newSelected.indexOf(id) === i,\n );\n\n onChange?.(\n event,\n newSelected,\n newSelected.map((id) => nodeMap.current[id]?.payload),\n );\n\n setSelectedState(newSelected);\n },\n [getNodesInRange, isDisabled, onChange, selected, setSelectedState],\n );\n\n const handleMultipleSelect = useCallback(\n (event: React.KeyboardEvent<HTMLUListElement>, value: any) => {\n const newSelected = selected.includes(value)\n ? (selected as string[]).filter((id) => id !== value)\n : [value].concat(selected);\n onChange?.(\n event,\n newSelected,\n newSelected.map((id) => nodeMap.current[id]?.payload),\n );\n setSelectedState(newSelected);\n },\n [onChange, selected, setSelectedState],\n );\n\n const handleSingleSelect = useCallback(\n (event: React.KeyboardEvent<HTMLUListElement>, value: any) => {\n const newSelected = multiSelect ? [value] : value;\n if (onChange) {\n const nodeValue = nodeMap.current[newSelected]?.payload;\n onChange(event, newSelected, multiSelect ? [nodeValue] : nodeValue);\n }\n\n setSelectedState(newSelected);\n },\n [multiSelect, onChange, setSelectedState],\n );\n\n const selectNode = useCallback(\n (\n event: React.KeyboardEvent<HTMLUListElement>,\n id: any,\n multiple = false,\n ) => {\n if (id && isSelectable(id)) {\n if (multiple) {\n handleMultipleSelect(event, id);\n } else {\n handleSingleSelect(event, id);\n }\n lastSelectedNode.current = id;\n lastSelectionWasRange.current = false;\n currentRangeSelection.current = [];\n\n return true;\n }\n return false;\n },\n [handleMultipleSelect, handleSingleSelect, isSelectable],\n );\n\n const selectRange = useCallback(\n (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodes: { start?: any; end?: any; current?: HTMLDivElement | null },\n stacked = false,\n ) => {\n const { start = lastSelectedNode.current, end, current } = nodes;\n if (stacked) {\n handleRangeArrowSelect(event, { start, next: end, current });\n } else if (start != null && end != null) {\n handleRangeSelect(event, { start, end });\n }\n lastSelectionWasRange.current = true;\n },\n [handleRangeArrowSelect, handleRangeSelect],\n );\n\n const rangeSelectToFirst = (\n event: React.KeyboardEvent<HTMLUListElement>,\n id: any,\n ) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current ? lastSelectedNode.current : id;\n\n selectRange(event, {\n start,\n end: getFirstNode(),\n });\n };\n\n const rangeSelectToLast = (\n event: React.KeyboardEvent<HTMLUListElement>,\n id: any,\n ) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current ? lastSelectedNode.current : id;\n\n selectRange(event, {\n start,\n end: getLastNode(),\n });\n };\n\n const selectNextNode = (\n event: React.KeyboardEvent<HTMLUListElement>,\n id: any,\n ) => {\n if (!isDisabled(getNextNode(id))) {\n selectRange(\n event,\n {\n end: getNextNode(id),\n current: id,\n },\n true,\n );\n }\n };\n\n const selectPreviousNode = (\n event: React.KeyboardEvent<HTMLUListElement>,\n id: any,\n ) => {\n if (!isDisabled(getPreviousNode(id))) {\n selectRange(\n event,\n {\n end: getPreviousNode(id),\n current: id,\n },\n true,\n );\n }\n };\n\n const selectAllNodes = (event: React.KeyboardEvent<HTMLUListElement>) => {\n selectRange(event, { start: getFirstNode(), end: getLastNode() });\n };\n\n /*\n * Mapping Helpers\n */\n const registerNode = useCallback((node: any) => {\n const {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled,\n selectable: nodeSelectable,\n onFocus: nodeOnFocus,\n payload,\n } = node;\n\n nodeMap.current[id] = {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled,\n selectable: nodeSelectable,\n onFocus: nodeOnFocus,\n payload,\n };\n }, []);\n\n const unregisterNode = useCallback((id: any) => {\n const newMap = { ...nodeMap.current };\n delete newMap[id];\n nodeMap.current = newMap;\n\n setFocusedNodeId((oldFocusedNodeId) => {\n if (\n oldFocusedNodeId === id &&\n treeRef.current &&\n treeRef.current ===\n (treeRef.current.ownerDocument || document).activeElement\n ) {\n return getChildrenIds(null)[0];\n }\n return oldFocusedNodeId;\n });\n }, []);\n\n const mapFirstChar = useCallback((id: any, firstChar: any) => {\n firstCharMap.current[id] = firstChar;\n }, []);\n\n const unMapFirstChar = useCallback((id: any) => {\n const newMap = { ...firstCharMap.current };\n delete newMap[id];\n firstCharMap.current = newMap;\n }, []);\n\n /**\n * Event handlers and Navigation\n */\n const handleNextArrow = (event: React.KeyboardEvent<HTMLUListElement>) => {\n if (!focusedNodeId) return false;\n if (isExpandable(focusedNodeId)) {\n if (isExpanded(focusedNodeId)) {\n focusNextNode(event, focusedNodeId);\n } else if (!isDisabled(focusedNodeId)) {\n toggleExpansion(event);\n }\n }\n return true;\n };\n\n const handlePreviousArrow = (\n event: React.KeyboardEvent<HTMLUListElement>,\n ) => {\n if (!focusedNodeId) return false;\n if (isExpanded(focusedNodeId) && !isDisabled(focusedNodeId)) {\n toggleExpansion(event, focusedNodeId);\n return true;\n }\n\n const parent = getParent(focusedNodeId);\n if (parent) {\n focus(event, parent);\n return true;\n }\n return false;\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLUListElement>) => {\n let flag = false;\n const { key } = event;\n\n // If the tree is empty there will be no focused node\n if (\n event.altKey ||\n event.currentTarget !== event.target ||\n !focusedNodeId\n ) {\n return;\n }\n\n const ctrlPressed = event.ctrlKey || event.metaKey;\n switch (key) {\n case \" \":\n if (isSelectable(focusedNodeId) && !isDisabled(focusedNodeId)) {\n if (multiSelect && event.shiftKey) {\n selectRange(event, { end: focusedNodeId });\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n event.stopPropagation();\n break;\n case \"Enter\":\n if (!isDisabled(focusedNodeId)) {\n if (isExpandable(focusedNodeId)) {\n toggleExpansion(event);\n flag = true;\n } else if (isSelectable(focusedNodeId)) {\n if (multiSelect && event.shiftKey) {\n selectRange(event, { end: focusedNodeId });\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n }\n event.stopPropagation();\n break;\n case \"ArrowDown\":\n if (multiSelect && event.shiftKey) {\n selectNextNode(event, focusedNodeId);\n }\n focusNextNode(event, focusedNodeId);\n flag = true;\n break;\n case \"ArrowUp\":\n if (multiSelect && event.shiftKey) {\n selectPreviousNode(event, focusedNodeId);\n }\n focusPreviousNode(event, focusedNodeId);\n flag = true;\n break;\n case \"ArrowRight\":\n flag = handleNextArrow(event);\n break;\n case \"ArrowLeft\":\n flag = handlePreviousArrow(event);\n break;\n case \"Home\":\n if (\n multiSelect &&\n ctrlPressed &&\n event.shiftKey &&\n !isDisabled(focusedNodeId)\n ) {\n rangeSelectToFirst(event, focusedNodeId);\n }\n focusFirstNode(event);\n flag = true;\n break;\n case \"End\":\n if (\n multiSelect &&\n ctrlPressed &&\n event.shiftKey &&\n !isDisabled(focusedNodeId)\n ) {\n rangeSelectToLast(event, focusedNodeId);\n }\n focusLastNode(event);\n flag = true;\n break;\n default:\n if (key === \"*\") {\n expandAllSiblings(event, focusedNodeId);\n flag = true;\n } else if (multiSelect && ctrlPressed && key.toLowerCase() === \"a\") {\n selectAllNodes(event);\n flag = true;\n } else if (\n !ctrlPressed &&\n !event.shiftKey &&\n isPrintableCharacter(key)\n ) {\n focusByFirstCharacter(event, focusedNodeId, key);\n flag = true;\n }\n }\n if (flag) {\n event.preventDefault();\n event.stopPropagation();\n }\n onKeyDown?.(event);\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLUListElement>) => {\n // if the event bubbled (which is React specific) we don't want to steal focus\n if (event.target === event.currentTarget) {\n const firstSelected = Array.isArray(selected) ? selected[0] : selected;\n focus(event, firstSelected || getNavigableChildrenIds(null)[0]);\n }\n onFocus?.(event);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLUListElement>) => {\n setFocusedNodeId(null);\n onBlur?.(event);\n };\n\n const activeDescendant =\n focusedNodeId && nodeMap.current[focusedNodeId]\n ? nodeMap.current[focusedNodeId].idAttribute\n : null;\n\n const treeControlContext = useMemo(\n () => ({\n treeId,\n mode,\n collapsible,\n toggleExpansion,\n multiSelect,\n selectNode: selectable ? selectNode : noopSelection,\n selectRange: selectable ? selectRange : noopSelection,\n disabledItemsFocusable,\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n focus,\n }),\n [\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n toggleExpansion,\n selectable,\n selectNode,\n selectRange,\n mode,\n collapsible,\n multiSelect,\n disabledItemsFocusable,\n treeId,\n ],\n );\n\n const treeStateContext = useMemo(\n () => ({\n isExpanded,\n isSelected,\n isFocused,\n isDisabled,\n isChildSelected,\n }),\n [isDisabled, isExpanded, isFocused, isSelected, isChildSelected],\n );\n\n return (\n <TreeViewControlContext.Provider value={treeControlContext}>\n <TreeViewStateContext.Provider value={treeStateContext}>\n <DescendantProvider>\n <ul\n ref={handleRef}\n id={idProp}\n className={cx(classes.root, className)}\n {...(treeviewMode && {\n id: treeId,\n role: \"tree\",\n \"aria-multiselectable\": multiSelect,\n \"aria-activedescendant\": activeDescendant,\n tabIndex: 0,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n })}\n {...others}\n >\n {children}\n </ul>\n </DescendantProvider>\n </TreeViewStateContext.Provider>\n </TreeViewControlContext.Provider>\n );\n});\n"],"names":["HvVerticalNavigationTreeView"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TreeView.styles.js","sources":["../../../../src/VerticalNavigation/TreeView/TreeView.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationTreeView\",\n {\n root: {\n display: \"block\",\n padding: `0px`,\n margin: \"0\",\n listStyle: \"none\",\n outline: \"none\",\n },\n },\n);\n"],"names":[],"mappings":";AAEa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TreeViewContext.js","sources":["../../../../src/VerticalNavigation/TreeView/TreeViewContext.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\nexport type NavigationMode = \"treeview\" | \"navigation\" | \"slider\";\n\nconst TreeViewControlContext = createContext<TreeViewControlContextValue>({});\nTreeViewControlContext.displayName = \"TreeViewControlContext\";\n\nconst TreeViewStateContext = createContext<TreeviewStateContextValue>({});\nTreeViewStateContext.displayName = \"TreeViewStateContext\";\n\nexport { TreeViewControlContext, TreeViewStateContext };\n\ninterface TreeviewStateContextValue {\n isExpanded?: (id: any) => boolean;\n isSelected?: (id: any) => boolean;\n isFocused?: (id: any) => boolean;\n isDisabled?: (id: any) => boolean;\n isChildSelected?: (id: any) => boolean;\n}\n\ninterface TreeViewControlContextValue {\n treeId?: any;\n mode?: NavigationMode;\n collapsible?: boolean;\n toggleExpansion?: (event: any, value?: any) => void;\n multiSelect?: boolean;\n selectNode?: (event: any, id: any, multiple?: any) => boolean;\n selectRange?: (event: any, nodes: any, stacked?: boolean) => void;\n disabledItemsFocusable?: boolean;\n registerNode?: (node: any) => void;\n unregisterNode?: (id: any) => void;\n mapFirstChar?: (id: any, firstChar: any) => void;\n unMapFirstChar?: (id: any, firstChar?: any) => void;\n focus?: (id: any, firstChar: any) => void;\n}\n"],"names":[],"mappings":";AAIM,MAAA,yBAAyB,cAA2C,CAAE,CAAA;AAC5E,uBAAuB,cAAc;AAE/B,MAAA,uBAAuB,cAAyC,CAAE,CAAA;AACxE,qBAAqB,cAAc;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TreeViewItem.js","sources":["../../../../src/VerticalNavigation/TreeView/TreeViewItem.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n mergeStyles,\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvAvatar } from \"../../Avatar\";\nimport { useForkRef } from \"../../hooks/useForkRef\";\nimport { HvIcon } from \"../../icons\";\nimport { HvOverflowTooltip } from \"../../OverflowTooltip\";\nimport { HvTooltip } from \"../../Tooltip\";\nimport {\n DescendantProvider,\n useDescendant,\n} from \"../../TreeView/internals/DescendantProvider\";\nimport { HvTypography } from \"../../Typography\";\nimport { setId } from \"../../utils/setId\";\nimport { VerticalNavigationContext } from \"../VerticalNavigationContext\";\nimport {\n TreeViewControlContext,\n TreeViewStateContext,\n} from \"./TreeViewContext\";\nimport { staticClasses, useClasses } from \"./TreeViewItem.styles\";\n\nexport { staticClasses as treeViewItemClasses };\n\nexport type HvVerticalNavigationTreeViewItemClasses = ExtractNames<\n typeof useClasses\n>;\n\nexport interface HvVerticalNavigationTreeViewItemProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes?: HvVerticalNavigationTreeViewItemClasses;\n /**\n * Is the node disabled.\n */\n disabled?: boolean;\n /**\n * Can the node be selected.\n */\n selectable?: boolean;\n /**\n * The id of the node.\n */\n nodeId?: string;\n /**\n * The icon to display next to the node's label.\n */\n icon?: React.ReactNode;\n /**\n * The item label.\n */\n label?: React.ReactNode;\n /**\n * The url for the link.\n */\n href?: string;\n /**\n * The behavior when opening a link.\n */\n target?: string;\n /**\n * The node payload.\n */\n payload?: any;\n /**\n * @ignore\n */\n onClick?: any;\n /**\n * @ignore\n */\n onMouseDown?: any;\n /**\n * @ignore\n */\n onFocus?: any;\n /**\n * The content of the component.\n */\n children?: React.ReactNode;\n /**\n * @ignore\n */\n onMouseEnter?: any;\n /**\n * Disables the appearence of a tooltip on hovering an element ( Only applicable when the in collapsed mode)\n */\n disableTooltip?: boolean;\n}\n\nconst preventSelection = (event: any, disabled: any) => {\n if (event.shiftKey || event.ctrlKey || event.metaKey || disabled) {\n // Prevent text selection\n event.preventDefault();\n }\n};\n\nexport const HvVerticalNavigationTreeViewItem = forwardRef(\n function HvVerticalNavigationTreeViewItem(\n props: HvVerticalNavigationTreeViewItemProps,\n ref,\n ) {\n const {\n id: idProp,\n className,\n classes: classesProp,\n\n disabled: disabledProp = false,\n\n selectable: selectableProp,\n\n nodeId,\n icon = null,\n label,\n href,\n target,\n payload,\n\n onClick,\n onMouseDown,\n onFocus,\n\n children,\n\n disableTooltip,\n\n ...others\n } = useDefaultProps(\"HvVerticalNavigationTreeViewItem\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const treeViewControlContext = useContext(TreeViewControlContext);\n const { isExpanded, isSelected, isFocused, isDisabled, isChildSelected } =\n useContext(TreeViewStateContext);\n\n const {\n treeId,\n mode,\n collapsible,\n toggleExpansion,\n multiSelect,\n selectNode,\n selectRange,\n disabledItemsFocusable,\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n focus,\n } = treeViewControlContext;\n\n const treeviewMode = mode === \"treeview\";\n\n let id: string | null = null;\n\n if (idProp != null) {\n id = idProp;\n } else if (treeId && nodeId) {\n id = `${treeId}-${nodeId}`;\n }\n\n const [treeitemElement, setTreeitemElement] = useState<HTMLLIElement>();\n const contentRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(setTreeitemElement, ref);\n\n const descendant = useMemo(\n () => ({\n element: treeitemElement!,\n id: nodeId!,\n }),\n [nodeId, treeitemElement],\n );\n\n const { isOpen, useIcons, hasAnyChildWithData } = useContext(\n VerticalNavigationContext,\n );\n\n const { index, parentId, level } = useDescendant(descendant);\n\n const expandable = collapsible && Array.isArray(children);\n const expanded = isExpanded ? isExpanded(nodeId) : false;\n const focused = isFocused ? isFocused(nodeId) : false;\n const selected = isSelected ? isSelected(nodeId) : false;\n const disabled = isDisabled ? isDisabled(nodeId) : false;\n\n const selectable =\n selectableProp != null\n ? selectableProp\n : !collapsible || !expandable || !isOpen;\n\n useEffect(() => {\n // On the first render a node's index will be -1. We want to wait for the real index.\n if (registerNode && unregisterNode && index !== -1) {\n registerNode({\n id: nodeId,\n idAttribute: id,\n index,\n parentId,\n selectable,\n expandable,\n disabled: disabledProp,\n onFocus,\n payload,\n });\n\n return () => {\n unregisterNode(nodeId);\n };\n }\n\n return undefined;\n }, [\n registerNode,\n unregisterNode,\n parentId,\n index,\n nodeId,\n expandable,\n disabledProp,\n id,\n selectable,\n onFocus,\n payload,\n ]);\n\n useEffect(() => {\n if (\n mapFirstChar &&\n unMapFirstChar &&\n label &&\n contentRef.current?.textContent\n ) {\n mapFirstChar(\n nodeId,\n contentRef.current?.textContent.substring(0, 1).toLowerCase(),\n );\n\n return () => {\n unMapFirstChar(nodeId);\n };\n }\n return undefined;\n }, [mapFirstChar, unMapFirstChar, nodeId, label]);\n\n let ariaSelected;\n if (multiSelect) {\n ariaSelected = selected;\n } else if (selected) {\n /* single-selection trees unset aria-selected on un-selected items.\n *\n * If the tree does not support multiple selection, aria-selected\n * is set to true for the selected node and it is not present on any other node in the tree.\n * Source: https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n ariaSelected = true;\n }\n\n const handleFocus = useCallback(\n (event: any) => {\n // DOM focus stays on the tree which manages focus with aria-activedescendant\n if (event.target === event.currentTarget) {\n (event.target.ownerDocument || document)\n .getElementById(treeId)\n .focus({ preventScroll: true });\n }\n\n const unfocusable = !disabledItemsFocusable && disabled;\n if (\n !focused &&\n event.currentTarget === event.target &&\n !unfocusable &&\n focus\n ) {\n focus(event, nodeId);\n }\n },\n [disabled, disabledItemsFocusable, focus, focused, nodeId, treeId],\n );\n\n const handleExpansion = useCallback(\n (event: any) => {\n if (!disabled) {\n if (treeviewMode && !focused && focus) {\n focus(event, nodeId);\n }\n\n const multiple =\n multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n // If already expanded and trying to toggle selection don't close\n if (\n expandable &&\n isOpen &&\n !(multiple && isExpanded && isExpanded(nodeId))\n ) {\n if (toggleExpansion) toggleExpansion(event, nodeId);\n }\n }\n },\n [\n disabled,\n expandable,\n focus,\n focused,\n isExpanded,\n multiSelect,\n nodeId,\n toggleExpansion,\n treeviewMode,\n isOpen,\n ],\n );\n\n const handleSelection = useCallback(\n (event: any) => {\n if (selectable && !disabled) {\n if (treeviewMode && !focused && focus) {\n focus(event, nodeId);\n }\n\n const multiple =\n multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n if (multiple) {\n if (event.shiftKey) {\n if (selectRange) return selectRange(event, { end: nodeId });\n } else if (selectNode) return selectNode(event, nodeId, true);\n } else if (selectNode) return selectNode(event, nodeId);\n } else {\n return false;\n }\n },\n [\n disabled,\n focus,\n focused,\n multiSelect,\n nodeId,\n selectNode,\n selectRange,\n selectable,\n treeviewMode,\n ],\n );\n\n const handleMouseDown = useCallback(\n (event: any) => {\n preventSelection(event, disabled);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n },\n [disabled, onMouseDown],\n );\n\n const handleClick = useCallback(\n (event: any) => {\n if (!disabled) {\n if (expandable && isOpen) {\n handleExpansion(event);\n }\n\n if (selectable) {\n handleSelection(event);\n }\n }\n\n if (onClick) {\n onClick(event);\n }\n },\n [\n disabled,\n expandable,\n handleExpansion,\n handleSelection,\n onClick,\n selectable,\n isOpen,\n ],\n );\n\n const handleKeyDown = useCallback(\n (event: any) => {\n let isEventHandled = false;\n const { key } = event;\n\n if (\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.currentTarget !== event.target\n ) {\n return;\n }\n if (contentRef.current === event.currentTarget) {\n if (key === \"Enter\" || key === \" \") {\n if (expandable && isOpen) {\n isEventHandled = handleExpansion(event) as unknown as boolean;\n }\n\n if (selectable) {\n isEventHandled = handleSelection(event) as boolean;\n }\n }\n\n if (isEventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n [expandable, handleExpansion, handleSelection, selectable, isOpen],\n );\n\n const renderedContent = useMemo(() => {\n const buttonLinkProps = {\n href,\n target,\n };\n\n const hasChildren = !!children;\n const showTooltip = !hasChildren && !isOpen && !disableTooltip;\n\n const isLink = href !== undefined && !disabled;\n\n return (\n <HvTooltip placement=\"right\" title={showTooltip && label}>\n <HvTypography\n id={setId(id, \"button\")}\n component={isLink ? \"a\" : \"div\"}\n {...(isLink ? buttonLinkProps : null)}\n ref={contentRef}\n classes={{\n root: cx(classes.content, {\n [classes.link]: isLink,\n [classes.minimized]: !isOpen,\n }),\n }}\n variant=\"body\"\n disabled={disabled}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n style={{\n paddingLeft:\n (useIcons || !isOpen ? 0 : 10) +\n level * (collapsible ? 16 : 10),\n }}\n role={isLink ? undefined : \"button\"}\n {...(treeviewMode\n ? {\n tabIndex: -1,\n onFocus: handleFocus,\n }\n : {\n tabIndex: selectable || expandable ? 0 : -1,\n onKeyDown: handleKeyDown,\n \"aria-current\":\n (selectable && selected) ||\n (!isOpen && isChildSelected?.(nodeId))\n ? href\n ? \"page\"\n : true\n : undefined,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-controls\":\n isOpen && expandable ? setId(id, \"group\") : undefined,\n \"aria-label\": payload?.label,\n })}\n >\n <div\n className={classes.icon}\n style={mergeStyles(undefined, {\n \"--icon-margin-left\": hasAnyChildWithData ? \"auto\" : \"unset\",\n })}\n >\n {!icon && useIcons ? (\n <HvAvatar\n variant=\"square\"\n size=\"xs\"\n backgroundColor=\"textSubtle\"\n >\n {payload?.label?.substring(0, 1)}\n </HvAvatar>\n ) : (\n useIcons && icon\n )}\n {hasChildren && !isOpen ? (\n <HvIcon name=\"Forwards\" size=\"xs\" compact />\n ) : (\n hasAnyChildWithData && !isOpen && <div />\n )}\n </div>\n\n {isOpen && (\n <div\n className={cx(classes.label, {\n [classes.labelIcon]: useIcons,\n [classes.labelExpandable]: !!expandable,\n })}\n >\n <HvOverflowTooltip data={label} />\n </div>\n )}\n\n {isOpen && expandable && (\n <HvIcon name=\"CaretDown\" size=\"xs\" rotate={expanded} />\n )}\n </HvTypography>\n </HvTooltip>\n );\n }, [\n href,\n target,\n children,\n isOpen,\n disableTooltip,\n disabled,\n label,\n id,\n cx,\n classes.content,\n classes.link,\n classes.minimized,\n classes.icon,\n classes.label,\n classes.labelIcon,\n classes.labelExpandable,\n handleClick,\n handleMouseDown,\n useIcons,\n level,\n collapsible,\n treeviewMode,\n handleFocus,\n selectable,\n expandable,\n handleKeyDown,\n selected,\n isChildSelected,\n nodeId,\n expanded,\n payload?.label,\n icon,\n hasAnyChildWithData,\n ]);\n\n const renderedChildren = useMemo(\n () =>\n children && (\n <ul\n id={setId(id, \"group\")}\n className={classes.group}\n role={treeviewMode ? \"group\" : undefined}\n >\n {children}\n </ul>\n ),\n [children, classes?.group, id, treeviewMode],\n );\n\n return (\n <li\n ref={handleRef}\n id={id ?? undefined}\n className={cx(\n classes.node,\n {\n [classes.disabled]: disabled,\n [classes.expandable]: expandable,\n [classes.collapsed]: expandable && !expanded,\n [classes.expanded]: expandable && expanded,\n [classes.selectable]: selectable && !disabled,\n [classes.unselectable]: !disabled && !selectable,\n [classes.selected]:\n (!disabled && selectable && selected) ||\n (!isOpen &&\n useIcons &&\n isChildSelected &&\n isChildSelected(nodeId)),\n [classes.unselected]: !disabled && selectable && !selected,\n [classes.focused]: focused,\n [classes.hide]: !isOpen && !useIcons,\n },\n className,\n )}\n data-hasicon={icon != null ? true : undefined}\n {...(mode === \"treeview\" && {\n role: \"treeitem\",\n \"aria-selected\": ariaSelected,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n })}\n {...others}\n >\n {renderedContent}\n {isOpen && (\n <DescendantProvider id={nodeId} level={level + 1}>\n {renderedChildren}\n </DescendantProvider>\n )}\n </li>\n );\n },\n);\n"],"names":["HvVerticalNavigationTreeViewItem"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TreeViewItem.styles.js","sources":["../../../../src/VerticalNavigation/TreeView/TreeViewItem.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { avatarClasses } from \"../../Avatar\";\nimport { outlineStyles } from \"../../utils/focusUtils\";\n\nconst selected = {\n background: theme.colors.bgPageSecondary,\n borderLeft: `4px solid ${theme.colors.text}`,\n};\n\nconst hover = {\n background: theme.colors.bgHover,\n};\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationTreeViewItem\",\n {\n node: {\n listStyle: \"none\",\n minHeight: \"32px\",\n \"&:not(:last-child)\": {\n marginBottom: \"8px\",\n },\n \"&$collapsed\": {\n \"&>$group\": {\n display: \"none\",\n },\n },\n \"&$expanded\": {\n \"&>$group\": {\n display: \"block\",\n },\n },\n \"&$link\": {\n textDecoration: \"none\",\n },\n \"&$hide\": {\n display: \"none\",\n },\n },\n content: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"32px\",\n borderLeft: `4px solid transparent`,\n paddingRight: theme.space.xs,\n \"&$minimized\": {\n justifyContent: \"center\",\n paddingRight: 0,\n },\n \"$expandable>&\": {\n fontWeight: 600,\n },\n \"$selected>&\": { ...selected },\n // hover\n \":not($disabled>&):not($selected>&):hover\": { ...hover },\n \":not($disabled)$selected>&:hover\": {},\n\n // focus\n \":not($disabled>&):not($selected>&):focus-visible\": { ...hover },\n \":not($disabled>&):not($selected>&).focus-visible\": { ...hover },\n\n \"*:focus-visible $focused>&\": {\n ...outlineStyles,\n },\n\n \".focus-visible $focused>&\": {\n ...outlineStyles,\n },\n \"$focused>&\": {\n ...hover,\n },\n\n \"&[disabled], &:active\": {\n outline: \"none\",\n },\n\n \"&:focus\": {\n outline: \"none\",\n },\n\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n\n \"&.focus-visible\": {\n ...outlineStyles,\n },\n\n // cursor\n cursor: \"pointer\",\n \"& *\": {\n cursor: \"pointer\",\n },\n\n \"$disabled>&\": {\n cursor: \"not-allowed\",\n \"& *\": {\n cursor: \"not-allowed\",\n },\n },\n },\n link: {},\n group: {\n margin: \"8px 0 0 0\",\n padding: 0,\n },\n disabled: {},\n expandable: {\n fontWeight: 600,\n },\n collapsed: {},\n expanded: {},\n selectable: {},\n unselectable: {},\n selected: {},\n unselected: {},\n focused: {},\n minimized: {},\n hide: {},\n label: {\n display: \"flex\",\n flexGrow: 1,\n maxWidth: \"100%\",\n },\n labelIcon: {\n maxWidth: \"calc(100% - 32px)\",\n },\n labelExpandable: {\n maxWidth: \"calc(100% - 32px)\",\n\n \"&$labelIcon\": {\n maxWidth: \"calc(100% - 64px)\",\n },\n },\n icon: {\n display: \"flex\",\n alignItems: \"center\",\n \"> div:first-of-type\": {\n marginLeft: \"var(--icon-margin-left)\",\n },\n \"> div:nth-of-type(2)\": {\n width: \"12px\",\n marginLeft: \"auto\",\n },\n [`&& .${avatarClasses.root}`]: {\n fontSize: \"15px\",\n },\n },\n },\n);\n"],"names":["avatarClasses"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalNavigation.js","sources":["../../../src/VerticalNavigation/VerticalNavigation.tsx"],"sourcesContent":["import { forwardRef, useCallback, useMemo, useState } from \"react\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvBaseProps } from \"../types/generic\";\nimport {\n fillDataWithParentId,\n getNavigationItemById,\n getParentItemById,\n} from \"./NavigationSlider/utils\";\nimport { hasChildNavigationItems } from \"./utils/VerticalNavigation.utils\";\nimport { staticClasses, useClasses } from \"./VerticalNavigation.styles\";\nimport {\n NavigationData,\n VerticalNavigationContext,\n} from \"./VerticalNavigationContext\";\n\nexport { staticClasses as verticalNavigationClasses };\n\nexport type HvVerticalNavigationClasses = ExtractNames<typeof useClasses>;\n\nexport type HvVerticalNavigationMode = \"icon\" | \"simple\";\n\nexport type HvVerticalNavigationPosition =\n | \"static\"\n | \"relative\"\n | \"fixed\"\n | \"absolute\";\n\nexport interface HvVerticalNavigationProps extends HvBaseProps<HTMLDivElement> {\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvVerticalNavigationClasses;\n /** Current State of the Vertical Navigation Collapse */\n open?: boolean;\n /**\n * Collapsed Mode for the Vertical Navigation, the default value is \"simple\".\n *\n * @deprecated - `useIcons` property should be used instead.\n */\n collapsedMode?: HvVerticalNavigationMode;\n /** Boolean to determine if treeview is in slider mode (for mobile navigation), the default value is false. */\n slider?: boolean;\n /**\n * Boolean to determine if icons should be displayed in the navigation menu.\n * When `true` a icon will always be displayed, if no icon is provided the first letter of the label will be\n * displayed inside an Avatar component.\n * When `false` no icons will be shown, even if an icon is provided.\n */\n useIcons?: boolean;\n}\n\n/**\n * Navigation enables users to move through an app to complete tasks.\n *\n * It is recommended to use vertical navigation when your application requires global navigation that is displayed on the left.\n * While vertical navigation menus generally consume more space than their horizontal counterparts, they have become more popular as desktop monitors move to wide-screen formats.\n *\n * Although both the hierarchically organized data and the visual style resemble a treeview-like structure, the [Treeview Design Pattern](https://w3c.github.io/aria-practices/#TreeView)\n * isn't necessarily the most appropriate.\n *\n * The tree role provides complex functionality that is not needed for typical site navigation, and changes the most common keyboard navigation using TAB.\n *\n * The [Disclosure Design Pattern](https://w3c.github.io/aria-practices/#disclosure) is more suited for typical site navigation, with expandable groups of links.\n * However it can be tedious to TAB through all navigation items to reach the actions panel.\n *\n * Both modes are available via the `mode` property and each app should choose the most appropriate.\n */\nexport const HvVerticalNavigation = forwardRef<\n HTMLDivElement,\n HvVerticalNavigationProps\n>(function HvVerticalNavigation(props, ref) {\n const {\n id,\n className,\n classes: classesProp,\n children,\n open = true,\n slider = false,\n useIcons = false,\n ...others\n } = useDefaultProps(\"HvVerticalNavigation\", props);\n const { classes, cx } = useClasses(classesProp);\n\n const [parentData, setParentData] = useState<NavigationData[]>([]);\n\n const [parentSelected, setParentSelected] = useState();\n\n // navigationSlider\n const withParentData = useMemo(\n () => fillDataWithParentId(parentData),\n [parentData],\n );\n\n const initialParentItem = useMemo(\n () => getParentItemById(withParentData, parentSelected),\n [withParentData, parentSelected],\n );\n\n const [parentItem, setParentItem] = useState(initialParentItem);\n\n const hasAnyChildWithData = useMemo(\n () => hasChildNavigationItems(parentData),\n [parentData],\n );\n\n const headerTitle = useMemo(() => parentItem?.label, [parentItem]);\n\n const navigateToParentHandler = useCallback(() => {\n setParentItem(getParentItemById(withParentData, parentItem.id));\n }, [parentItem, withParentData]);\n\n const navigateToChildHandler = useCallback(\n (event: any, item: any) => {\n setParentItem(getNavigationItemById(withParentData, item.id));\n event.stopPropagation();\n },\n [withParentData],\n );\n\n const value = useMemo(\n () => ({\n isOpen: open,\n useIcons,\n slider,\n headerTitle,\n\n parentItem,\n setParentItem,\n withParentData,\n navigateToChildHandler,\n navigateToParentHandler,\n\n parentData,\n setParentData,\n parentSelected,\n setParentSelected,\n hasAnyChildWithData,\n }),\n [\n open,\n useIcons,\n slider,\n headerTitle,\n parentItem,\n setParentItem,\n withParentData,\n navigateToChildHandler,\n navigateToParentHandler,\n hasAnyChildWithData,\n parentData,\n parentSelected,\n ],\n );\n\n return (\n <VerticalNavigationContext.Provider value={value}>\n <div\n id={id}\n ref={ref}\n className={cx(\n classes.root,\n {\n [classes.collapsed]: !open,\n [classes.slider]: slider,\n [classes.childData]: hasAnyChildWithData,\n },\n className,\n )}\n {...others}\n >\n {children}\n </div>\n </VerticalNavigationContext.Provider>\n );\n});\n"],"names":["HvVerticalNavigation"],"mappings":";;;;;;;;AAqEO,MAAM,uBAAuB,WAGlC,SAASA,sBAAqB,OAAO,KAAK;AACpC,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,OAAO;AAAA,IACP,SAAS;AAAA,IACT,WAAW;AAAA,IACX,GAAG;AAAA,EAAA,IACD,gBAAgB,wBAAwB,KAAK;AACjD,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAE9C,QAAM,CAAC,YAAY,aAAa,IAAI,SAA2B,CAAA,CAAE;AAEjE,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS;AAGrD,QAAM,iBAAiB;AAAA,IACrB,MAAM,qBAAqB,UAAU;AAAA,IACrC,CAAC,UAAU;AAAA,EACb;AAEA,QAAM,oBAAoB;AAAA,IACxB,MAAM,kBAAkB,gBAAgB,cAAc;AAAA,IACtD,CAAC,gBAAgB,cAAc;AAAA,EACjC;AAEA,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,iBAAiB;AAE9D,QAAM,sBAAsB;AAAA,IAC1B,MAAM,wBAAwB,UAAU;AAAA,IACxC,CAAC,UAAU;AAAA,EACb;AAEA,QAAM,cAAc,QAAQ,MAAM,YAAY,OAAO,CAAC,UAAU,CAAC;AAE3D,QAAA,0BAA0B,YAAY,MAAM;AAChD,kBAAc,kBAAkB,gBAAgB,WAAW,EAAE,CAAC;AAAA,EAAA,GAC7D,CAAC,YAAY,cAAc,CAAC;AAE/B,QAAM,yBAAyB;AAAA,IAC7B,CAAC,OAAY,SAAc;AACzB,oBAAc,sBAAsB,gBAAgB,KAAK,EAAE,CAAC;AAC5D,YAAM,gBAAgB;AAAA,IACxB;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AAEA,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAEA,SACG,oBAAA,0BAA0B,UAA1B,EAAmC,OAClC,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,SAAS,GAAG,CAAC;AAAA,UACtB,CAAC,QAAQ,MAAM,GAAG;AAAA,UAClB,CAAC,QAAQ,SAAS,GAAG;AAAA,QACvB;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ,CAAC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalNavigation.styles.js","sources":["../../../src/VerticalNavigation/VerticalNavigation.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigation\",\n {\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n\n width: \"220px\",\n\n backgroundColor: theme.colors.bgContainer,\n boxShadow: theme.colors.shadow,\n clipPath: \"inset(0px -12px 0px 0px)\",\n\n \"& > :only-child\": {\n padding: theme.space.sm,\n },\n \"& > :not(nav:first-of-type)\": {\n borderTop: `3px solid ${theme.colors.borderSubtle}`,\n padding: theme.spacing(\"xs\", \"sm\", \"sm\", \"sm\"),\n },\n\n \"& > :first-of-type:not(:last-child)\": {\n borderTop: \"none\",\n padding: theme.spacing(\"sm\", \"sm\", \"xs\", \"sm\"),\n },\n },\n collapsed: {\n width: \"fit-content\",\n \"& > :first-of-type:not(:last-child)\": {\n padding: theme.spacing(\"sm\", \"xs\", \"xs\", \"xs\"),\n },\n\n \"& > :not(nav:first-of-type)\": {\n padding: theme.spacing(\"xs\", \"xs\", \"sm\", \"xs\"),\n },\n },\n\n slider: {\n \"& > div:first-of-type\": {\n borderBottom: `3px solid ${theme.colors.borderSubtle}`,\n },\n },\n\n childData: {},\n },\n);\n"],"names":[],"mappings":";;AAGa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,eAAe;AAAA,MACf,gBAAgB;AAAA,MAEhB,OAAO;AAAA,MAEP,iBAAiB,MAAM,OAAO;AAAA,MAC9B,WAAW,MAAM,OAAO;AAAA,MACxB,UAAU;AAAA,MAEV,mBAAmB;AAAA,QACjB,SAAS,MAAM,MAAM;AAAA,MACvB;AAAA,MACA,+BAA+B;AAAA,QAC7B,WAAW,aAAa,MAAM,OAAO,YAAY;AAAA,QACjD,SAAS,MAAM,QAAQ,MAAM,MAAM,MAAM,IAAI;AAAA,MAC/C;AAAA,MAEA,uCAAuC;AAAA,QACrC,WAAW;AAAA,QACX,SAAS,MAAM,QAAQ,MAAM,MAAM,MAAM,IAAI;AAAA,MAAA;AAAA,IAEjD;AAAA,IACA,WAAW;AAAA,MACT,OAAO;AAAA,MACP,uCAAuC;AAAA,QACrC,SAAS,MAAM,QAAQ,MAAM,MAAM,MAAM,IAAI;AAAA,MAC/C;AAAA,MAEA,+BAA+B;AAAA,QAC7B,SAAS,MAAM,QAAQ,MAAM,MAAM,MAAM,IAAI;AAAA,MAAA;AAAA,IAEjD;AAAA,IAEA,QAAQ;AAAA,MACN,yBAAyB;AAAA,QACvB,cAAc,aAAa,MAAM,OAAO,YAAY;AAAA,MAAA;AAAA,IAExD;AAAA,IAEA,WAAW,CAAA;AAAA,EAAC;AAEhB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalNavigationContext.js","sources":["../../../src/VerticalNavigation/VerticalNavigationContext.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\nexport type NavigationData<T extends React.ElementType = \"a\"> =\n React.ComponentProps<T> &\n Record<string, any> & {\n /** The id to be applied to the root element. */\n id: string;\n /** The label to be rendered on the menu item. */\n label: string;\n /** The icon to be rendered. */\n icon?: React.ReactNode;\n /** The Data children subset. */\n data?: NavigationData<T>[];\n /** Whether the item is disabled and not interactive. */\n disabled?: boolean;\n /** Whether the item has a selected state. */\n selectable?: boolean;\n };\n\ninterface VerticalNavigationContextValue {\n isOpen: boolean;\n useIcons: boolean;\n slider?: boolean;\n headerTitle?: string;\n\n parentItem?: any;\n setParentItem?: React.Dispatch<React.SetStateAction<any>>;\n withParentData?: any;\n navigateToChildHandler?: (event: any, item: any) => void;\n navigateToParentHandler?: () => void;\n\n parentData?: NavigationData[];\n setParentData?: React.Dispatch<React.SetStateAction<any>>;\n parentSelected?: any;\n setParentSelected?: React.Dispatch<React.SetStateAction<any>>;\n\n hasAnyChildWithData?: boolean;\n}\n\nconst VerticalNavigationContext = createContext<VerticalNavigationContextValue>(\n {\n isOpen: true,\n useIcons: false,\n slider: false,\n },\n);\n\nexport { VerticalNavigationContext };\n"],"names":[],"mappings":";AAuCA,MAAM,4BAA4B;AAAA,EAChC;AAAA,IACE,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,EAAA;AAEZ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalNavigation.utils.js","sources":["../../../../src/VerticalNavigation/utils/VerticalNavigation.utils.tsx"],"sourcesContent":["import { NavigationData } from \"../VerticalNavigationContext\";\n\n/**\n * Checks if there are any sub items in the NavigationItem data structure.\n *\n * @param data - The collection of navigation items.\n * @returns `true` if there is at least one sub item in the structure, `false` otherwise.\n */\nconst hasChildNavigationItems = (data: NavigationData[]) => {\n return data.some((item) => item.data && item.data.length > 0);\n};\n\nexport { hasChildNavigationItems };\n"],"names":[],"mappings":"AAQM,MAAA,0BAA0B,CAAC,SAA2B;AACnD,SAAA,KAAK,KAAK,CAAC,SAAS,KAAK,QAAQ,KAAK,KAAK,SAAS,CAAC;AAC9D;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useClickOutside.js","sources":["../../../src/hooks/useClickOutside.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\nexport type HvClickOutsideEvent = MouseEvent | KeyboardEvent | TouchEvent;\n\nexport const useClickOutside = <T extends HTMLElement = HTMLElement>(\n ref: React.RefObject<T | null>,\n handler: (event: HvClickOutsideEvent) => void,\n) => {\n useEffect(() => {\n const listener = (event: HvClickOutsideEvent) => {\n const el = ref?.current;\n const isKeyUp = event.type === \"keyup\";\n const isEscape = (event as KeyboardEvent).key === \"Escape\";\n\n if (!el || el.contains((event?.target as Node) || null)) {\n return {};\n }\n\n return isKeyUp ? (isEscape ? handler(event) : null) : handler(event);\n };\n\n document.addEventListener(\"click\", listener);\n document.addEventListener(\"touchstart\", listener);\n document.addEventListener(\"keyup\", listener);\n\n return () => {\n document.removeEventListener(\"click\", listener);\n document.removeEventListener(\"touchstart\", listener);\n document.removeEventListener(\"keyup\", listener);\n };\n }, [ref, handler]);\n};\n"],"names":[],"mappings":";AAIa,MAAA,kBAAkB,CAC7B,KACA,YACG;AACH,YAAU,MAAM;AACR,UAAA,WAAW,CAAC,UAA+B;AAC/C,YAAM,KAAK,KAAK;AACV,YAAA,UAAU,MAAM,SAAS;AACzB,YAAA,WAAY,MAAwB,QAAQ;AAElD,UAAI,CAAC,MAAM,GAAG,SAAU,OAAO,UAAmB,IAAI,GAAG;AACvD,eAAO,CAAC;AAAA,MAAA;AAGV,aAAO,UAAW,WAAW,QAAQ,KAAK,IAAI,OAAQ,QAAQ,KAAK;AAAA,IACrE;AAES,aAAA,iBAAiB,SAAS,QAAQ;AAClC,aAAA,iBAAiB,cAAc,QAAQ;AACvC,aAAA,iBAAiB,SAAS,QAAQ;AAE3C,WAAO,MAAM;AACF,eAAA,oBAAoB,SAAS,QAAQ;AACrC,eAAA,oBAAoB,cAAc,QAAQ;AAC1C,eAAA,oBAAoB,SAAS,QAAQ;AAAA,IAChD;AAAA,EAAA,GACC,CAAC,KAAK,OAAO,CAAC;AACnB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useComputation.js","sources":["../../../src/hooks/useComputation.ts"],"sourcesContent":["import { useRef, useState } from \"react\";\n\nexport const useComputation = (valueFn: Function, valueFallback?: Function) => {\n const computed = useRef<any>(null);\n const [value, setValue] = useState(valueFallback);\n\n const computeValue = () => {\n if (!computed.current) {\n setValue(valueFn?.());\n computed.current = true;\n }\n };\n\n return [value, computeValue];\n};\n"],"names":[],"mappings":";AAEa,MAAA,iBAAiB,CAAC,SAAmB,kBAA6B;AACvE,QAAA,WAAW,OAAY,IAAI;AACjC,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,aAAa;AAEhD,QAAM,eAAe,MAAM;AACrB,QAAA,CAAC,SAAS,SAAS;AACrB,eAAS,WAAW;AACpB,eAAS,UAAU;AAAA,IAAA;AAAA,EAEvB;AAEO,SAAA,CAAC,OAAO,YAAY;AAC7B;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useControlled.js","sources":["../../../src/hooks/useControlled.ts"],"sourcesContent":["// based in https://raw.githubusercontent.com/mui-org/material-ui/next/packages/material-ui/src/utils/useControlled.js\n// modifications:\n// 1. renamed default to initialState, to convey the same meaning of the useState hook.\n// 2. removed the console error when initialState changes; that is acceptable and just ignored, like in useState.\n// 3. the console error regarding switching from controlled to uncontrolled (or vice-versa) is sent synchronously\n// so the stacktrace shows the caller\n// 4. given that, the hook signature was simplified, no need for metadata\n\nimport { useCallback, useRef, useState } from \"react\";\n\nexport const useControlled = <T>(\n controlledProp: T | undefined,\n initialState: T | (() => T),\n) => {\n const { current: isControlled } = useRef(controlledProp !== undefined);\n const [valueState, setValue] = useState(initialState);\n const value = isControlled ? (controlledProp as T) : valueState;\n\n if (import.meta.env.DEV && isControlled !== (controlledProp !== undefined)) {\n // eslint-disable-next-line no-console\n console.error(\n [\n `A component is changing the ${\n isControlled ? \"\" : \"un\"\n }controlled state to be ${isControlled ? \"un\" : \"\"}controlled.`,\n \"Elements should not switch from uncontrolled to controlled (or vice versa).\",\n \"Decide between using a controlled or uncontrolled element for the lifetime of the component.\",\n \"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.\",\n ].join(\"\\n\"),\n );\n }\n\n const setValueIfUncontrolled = useCallback(\n (newValue: React.SetStateAction<T>) => {\n if (!isControlled) {\n setValue(newValue);\n }\n },\n [isControlled],\n );\n\n return [value, setValueIfUncontrolled] as const;\n};\n"],"names":[],"mappings":";AAUa,MAAA,gBAAgB,CAC3B,gBACA,iBACG;AACH,QAAM,EAAE,SAAS,aAAA,IAAiB,OAAO,mBAAmB,MAAS;AACrE,QAAM,CAAC,YAAY,QAAQ,IAAI,SAAS,YAAY;AAC9C,QAAA,QAAQ,eAAgB,iBAAuB;AAgBrD,QAAM,yBAAyB;AAAA,IAC7B,CAAC,aAAsC;AACrC,UAAI,CAAC,cAAc;AACjB,iBAAS,QAAQ;AAAA,MAAA;AAAA,IAErB;AAAA,IACA,CAAC,YAAY;AAAA,EACf;AAEO,SAAA,CAAC,OAAO,sBAAsB;AACvC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useEnhancedEffect.js","sources":["../../../src/hooks/useEnhancedEffect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect } from \"react\";\n\nexport const useEnhancedEffect =\n typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n"],"names":[],"mappings":";AAEO,MAAM,oBACX,OAAO,WAAW,cAAc,kBAAkB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useExpandable.js","sources":["../../../src/hooks/useExpandable.ts"],"sourcesContent":["import type { HvAccordionProps } from \"../Accordion\";\nimport { setId } from \"../utils/setId\";\nimport { useControlled } from \"./useControlled\";\nimport { useUniqueId } from \"./useUniqueId\";\n\nexport interface UseExpandableParams\n extends Pick<\n HvAccordionProps,\n \"id\" | \"disabled\" | \"expanded\" | \"defaultExpanded\"\n > {}\n\n/** expandable hook that handles a11y & open state for accordions, etc. */\nexport function useExpandable({\n id: idProp,\n disabled,\n expanded,\n defaultExpanded,\n}: UseExpandableParams) {\n const [isOpen, setIsOpen] = useControlled(expanded, Boolean(defaultExpanded));\n\n const id = useUniqueId(idProp);\n const buttonId = setId(id, \"button\");\n const regionId = setId(id, \"container\");\n\n return {\n isOpen,\n toggleOpen: (newOpen?: boolean) => setIsOpen((o) => newOpen ?? !o),\n buttonProps: {\n id: buttonId,\n \"aria-disabled\": disabled,\n \"aria-expanded\": isOpen,\n \"aria-controls\": isOpen ? regionId : undefined,\n },\n regionProps: {\n id: regionId,\n role: \"region\",\n \"aria-labelledby\": buttonId,\n },\n };\n}\n"],"names":[],"mappings":";;;AAYO,SAAS,cAAc;AAAA,EAC5B,IAAI;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AAChB,QAAA,CAAC,QAAQ,SAAS,IAAI,cAAc,UAAU,QAAQ,eAAe,CAAC;AAEtE,QAAA,KAAK,YAAY,MAAM;AACvB,QAAA,WAAW,MAAM,IAAI,QAAQ;AAC7B,QAAA,WAAW,MAAM,IAAI,WAAW;AAE/B,SAAA;AAAA,IACL;AAAA,IACA,YAAY,CAAC,YAAsB,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC;AAAA,IACjE,aAAa;AAAA,MACX,IAAI;AAAA,MACJ,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,iBAAiB,SAAS,WAAW;AAAA,IACvC;AAAA,IACA,aAAa;AAAA,MACX,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,mBAAmB;AAAA,IAAA;AAAA,EAEvB;AACF;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFocus.js","sources":["../../../src/hooks/useFocus.ts"],"sourcesContent":["import { useMemo } from \"react\";\n\nimport { getDocument } from \"../utils/document\";\n\n/** server-side safe `document.activeElement` wrapper */\nconst getActiveEl = () => getDocument()?.activeElement || null;\n\nfunction makeFocusUtils(containerRef: React.RefObject<HTMLElement>) {\n function focus(el?: Element | null, checkFocus = true) {\n if (!checkFocus || containerRef.current?.contains(getActiveEl())) {\n (el as HTMLElement)?.focus();\n }\n }\n\n return {\n focusPrevious() {\n focus(getActiveEl()?.previousElementSibling);\n },\n focusNext() {\n focus(getActiveEl()?.nextElementSibling);\n },\n focusFirst() {\n focus(getActiveEl()?.parentElement?.firstElementChild);\n },\n focusLast() {\n focus(getActiveEl()?.parentElement?.lastElementChild);\n },\n focusChild(index: number) {\n focus(containerRef.current?.children[index], false);\n },\n focusSibling(index: number) {\n focus(getActiveEl()?.parentElement?.children[index]);\n },\n };\n}\n\nexport function useFocus({\n containerRef,\n}: {\n containerRef: React.RefObject<HTMLElement>;\n}) {\n return useMemo(() => makeFocusUtils(containerRef), [containerRef]);\n}\n"],"names":[],"mappings":";;AAKA,MAAM,cAAc,MAAM,eAAe,iBAAiB;AAE1D,SAAS,eAAe,cAA4C;AACzD,WAAA,MAAM,IAAqB,aAAa,MAAM;AACrD,QAAI,CAAC,cAAc,aAAa,SAAS,SAAS,YAAA,CAAa,GAAG;AAC/D,UAAoB,MAAM;AAAA,IAAA;AAAA,EAC7B;AAGK,SAAA;AAAA,IACL,gBAAgB;AACR,YAAA,eAAe,sBAAsB;AAAA,IAC7C;AAAA,IACA,YAAY;AACJ,YAAA,eAAe,kBAAkB;AAAA,IACzC;AAAA,IACA,aAAa;AACL,YAAA,YAAA,GAAe,eAAe,iBAAiB;AAAA,IACvD;AAAA,IACA,YAAY;AACJ,YAAA,YAAA,GAAe,eAAe,gBAAgB;AAAA,IACtD;AAAA,IACA,WAAW,OAAe;AACxB,YAAM,aAAa,SAAS,SAAS,KAAK,GAAG,KAAK;AAAA,IACpD;AAAA,IACA,aAAa,OAAe;AAC1B,YAAM,YAAY,GAAG,eAAe,SAAS,KAAK,CAAC;AAAA,IAAA;AAAA,EAEvD;AACF;AAEO,SAAS,SAAS;AAAA,EACvB;AACF,GAEG;AACD,SAAO,QAAQ,MAAM,eAAe,YAAY,GAAG,CAAC,YAAY,CAAC;AACnE;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useForkRef.js","sources":["../../../src/hooks/useForkRef.ts"],"sourcesContent":["// copied from https://github.com/mui-org/material-ui/blob/03bd73be34424cb2cd17ac602def9ad2b9642de4/packages/material-ui-utils/src/useForkRef.js\nimport * as React from \"react\";\n\nconst setRef = (ref: any, value: any) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n};\n\nexport const useForkRef = (refA: any, refB: any) => {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refA == null && refB == null) {\n return null;\n }\n return (refValue: any) => {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n};\n"],"names":[],"mappings":";AAGA,MAAM,SAAS,CAAC,KAAU,UAAe;AACnC,MAAA,OAAO,QAAQ,YAAY;AAC7B,QAAI,KAAK;AAAA,aACA,KAAK;AACd,QAAI,UAAU;AAAA,EAAA;AAElB;AAEa,MAAA,aAAa,CAAC,MAAW,SAAc;AAM3C,SAAA,MAAM,QAAQ,MAAM;AACrB,QAAA,QAAQ,QAAQ,QAAQ,MAAM;AACzB,aAAA;AAAA,IAAA;AAET,WAAO,CAAC,aAAkB;AACxB,aAAO,MAAM,QAAQ;AACrB,aAAO,MAAM,QAAQ;AAAA,IACvB;AAAA,EAAA,GACC,CAAC,MAAM,IAAI,CAAC;AACjB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useImageLoaded.js","sources":["../../../src/hooks/useImageLoaded.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nexport const useImageLoaded = (src?: string, srcSet?: string) => {\n const [imageLoaded, setImageLoaded] = useState<boolean | string>(false);\n\n useEffect(() => {\n if (!src && !srcSet) {\n return undefined;\n }\n\n setImageLoaded(false);\n\n let active = true;\n const image = new Image();\n image.src = src || \"\";\n image.srcset = srcSet || \"\";\n image.onload = () => {\n if (!active) {\n return;\n }\n\n setImageLoaded(\"loaded\");\n };\n image.onerror = () => {\n if (!active) {\n return;\n }\n\n setImageLoaded(\"error\");\n };\n\n return () => {\n active = false;\n };\n }, [src, srcSet]);\n\n return imageLoaded;\n};\n"],"names":[],"mappings":";AAEa,MAAA,iBAAiB,CAAC,KAAc,WAAoB;AAC/D,QAAM,CAAC,aAAa,cAAc,IAAI,SAA2B,KAAK;AAEtE,YAAU,MAAM;AACV,QAAA,CAAC,OAAO,CAAC,QAAQ;AACZ,aAAA;AAAA,IAAA;AAGT,mBAAe,KAAK;AAEpB,QAAI,SAAS;AACP,UAAA,QAAQ,IAAI,MAAM;AACxB,UAAM,MAAM,OAAO;AACnB,UAAM,SAAS,UAAU;AACzB,UAAM,SAAS,MAAM;AACnB,UAAI,CAAC,QAAQ;AACX;AAAA,MAAA;AAGF,qBAAe,QAAQ;AAAA,IACzB;AACA,UAAM,UAAU,MAAM;AACpB,UAAI,CAAC,QAAQ;AACX;AAAA,MAAA;AAGF,qBAAe,OAAO;AAAA,IACxB;AAEA,WAAO,MAAM;AACF,eAAA;AAAA,IACX;AAAA,EAAA,GACC,CAAC,KAAK,MAAM,CAAC;AAET,SAAA;AACT;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsMounted.js","sources":["../../../src/hooks/useIsMounted.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\nexport const useIsMounted = () => {\n const isMounted = useRef(false);\n\n useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return isMounted;\n};\n"],"names":[],"mappings":";AAEO,MAAM,eAAe,MAAM;AAC1B,QAAA,YAAY,OAAO,KAAK;AAE9B,YAAU,MAAM;AACd,cAAU,UAAU;AAEpB,WAAO,MAAM;AACX,gBAAU,UAAU;AAAA,IACtB;AAAA,EACF,GAAG,EAAE;AAEE,SAAA;AACT;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLabels.js","sources":["../../../src/hooks/useLabels.ts"],"sourcesContent":["import { useMemo } from \"react\";\n\nimport { DeepPartial } from \"../types/generic\";\nimport { deepMerge } from \"../utils/deepMerge\";\n\nexport function useLabels<T>(defaultLabels: T, labels?: DeepPartial<T>): T {\n return useMemo(() => {\n return deepMerge(defaultLabels, labels);\n }, [defaultLabels, labels]);\n}\n"],"names":[],"mappings":";;AAKgB,SAAA,UAAa,eAAkB,QAA4B;AACzE,SAAO,QAAQ,MAAM;AACZ,WAAA,UAAU,eAAe,MAAM;AAAA,EAAA,GACrC,CAAC,eAAe,MAAM,CAAC;AAC5B;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollTo.js","sources":["../../../src/hooks/useScrollTo.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { HvScrollToOption } from \"../types/scroll\";\nimport {\n findFirstVisibleElement,\n getScrollTop,\n isScrolledToTheBottom,\n scrollElement,\n verticalScrollOffset,\n} from \"../utils/scroll\";\n\ninterface HvScrollToOptionWithLink extends HvScrollToOption {\n href: string;\n}\n\nexport const useScrollTo = (\n selectedIndexProp = 0,\n scrollElementId: string | undefined = undefined,\n navigationMode: \"push\" | \"replace\" | \"none\" = \"push\",\n relativeLinks = false,\n offset = 0,\n options: HvScrollToOption[] = [],\n onChange:\n | ((\n event:\n | Event\n | React.MouseEvent<HTMLDivElement | HTMLAnchorElement>\n | React.KeyboardEvent<HTMLDivElement | HTMLAnchorElement>,\n index: number,\n ) => void)\n | undefined = undefined,\n direction: \"column\" | \"row\" = \"column\",\n): [\n number,\n (\n event:\n | React.MouseEvent<HTMLDivElement | HTMLAnchorElement>\n | React.KeyboardEvent<HTMLDivElement | HTMLAnchorElement>,\n id: string,\n index: number,\n wrappedOnChange?: (index: number) => void,\n ) => void,\n HvScrollToOptionWithLink[],\n] => {\n const RETRY_MAX: number = 5;\n const [selectedIndex, setSelectedIndex] = useState<number>(selectedIndexProp);\n\n const scrollEle = useRef<HTMLElement | (Window & typeof globalThis) | null>(\n typeof window !== \"undefined\" ? window : null,\n );\n const requestedAnimationFrame = useRef(0);\n const lastContainerScrollTop = useRef<number>(0);\n\n // Ref to use a often-changing value in useCallback, as recommended in\n // https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n const selectedIndexRef = useRef(selectedIndex);\n\n useEffect(() => {\n selectedIndexRef.current = selectedIndex;\n }, [selectedIndex]);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n scrollEle.current =\n (scrollElementId && document.getElementById(scrollElementId)) || window;\n\n lastContainerScrollTop.current = verticalScrollOffset(scrollEle.current);\n }\n }, [scrollElementId]);\n\n const checkScroll = useCallback(\n (\n event:\n | Event\n | React.MouseEvent<HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>,\n ) => {\n if (\n requestedAnimationFrame.current === 0 &&\n window?.requestAnimationFrame\n ) {\n requestedAnimationFrame.current = window.requestAnimationFrame(() => {\n requestedAnimationFrame.current = 0;\n\n const firstVisibleElementIndex = findFirstVisibleElement(\n scrollEle.current,\n options,\n offset,\n );\n\n let newSelectedIndex = firstVisibleElementIndex;\n\n // select the first element when all elements are bellow the container's top\n if (firstVisibleElementIndex < 0) {\n newSelectedIndex = 0;\n }\n\n // if the user has reached the bottom of the container, select the first nav item still visible\n // (usually this selects the last nav item, when it can't reach the top the container)\n // in theory only needed when scrolling down, but no... because of the Safari bouncing behaviour\n if (\n newSelectedIndex < options.length - 1 &&\n isScrolledToTheBottom(scrollEle.current)\n ) {\n newSelectedIndex += 1;\n }\n\n const containerScrollTop = getScrollTop(scrollEle.current);\n const isScrollingDown =\n containerScrollTop > lastContainerScrollTop.current;\n lastContainerScrollTop.current = containerScrollTop;\n\n // only update the selected item if the scroll direction is moving away from it\n if (isScrollingDown) {\n if (newSelectedIndex < selectedIndexRef.current) {\n newSelectedIndex = selectedIndexRef.current;\n }\n } else if (newSelectedIndex > selectedIndexRef.current) {\n newSelectedIndex = selectedIndexRef.current;\n }\n\n setSelectedIndex(newSelectedIndex);\n onChange?.(event, newSelectedIndex);\n });\n }\n },\n [offset, options, onChange],\n );\n\n // Registers and unregisters the scroll listener\n useEffect(() => {\n if (scrollEle.current) {\n scrollEle.current.addEventListener(\"scroll\", checkScroll, false);\n }\n\n return () => {\n if (scrollEle.current) {\n scrollEle.current.removeEventListener(\"scroll\", checkScroll);\n }\n\n if (requestedAnimationFrame.current !== 0) {\n window.cancelAnimationFrame(requestedAnimationFrame.current);\n requestedAnimationFrame.current = 0;\n }\n };\n }, [checkScroll]);\n\n // Waits for the elements to be rendered and scrolls to the one referenced in the URL hash, if any\n useEffect(() => {\n let checkRenderedInterval: any;\n\n if (navigationMode !== \"none\") {\n const hashValue = document.location.hash.split(\"#\")[1] || \"\";\n\n const option = options.find((o) => o.value === hashValue);\n\n if (option) {\n let retry = 0;\n checkRenderedInterval = setInterval(() => {\n const ele = document.getElementById(option.value);\n\n if (ele) {\n scrollElement(ele, scrollEle.current, option.offset || offset);\n clearInterval(checkRenderedInterval);\n } else {\n retry += 1;\n if (retry === RETRY_MAX) {\n clearInterval(checkRenderedInterval);\n }\n }\n }, 1000);\n }\n }\n\n return () => {\n clearInterval(checkRenderedInterval);\n };\n\n // We really want to run this just in the first load\n // in fact this doesn't even belong here, the logic should be external\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const baseUrl =\n relativeLinks || typeof window === \"undefined\" || window == null\n ? \"\"\n : window.location.href.split(\"#\")[0];\n\n const elements = useMemo(\n () =>\n options.map((o) => ({\n ...o,\n href: `${baseUrl}#${o.value}`,\n })),\n [options, baseUrl],\n );\n\n const setScrollTo = useCallback(\n (\n event:\n | React.MouseEvent<HTMLDivElement | HTMLAnchorElement>\n | React.KeyboardEvent<HTMLDivElement | HTMLAnchorElement>,\n id: string,\n index: number,\n wrappedOnChange?: (index: number) => void,\n ) => {\n const option = elements.find((o) => o.value === id);\n\n if (option) {\n const ele = document.getElementById(id);\n if (ele) {\n scrollElement(\n ele,\n scrollEle.current,\n option.offset || offset,\n direction,\n );\n }\n\n if (navigationMode === \"push\") {\n window.history.pushState({}, \"\", option.href);\n } else if (navigationMode === \"replace\") {\n window.history.replaceState({}, \"\", option.href);\n }\n\n setSelectedIndex(index);\n wrappedOnChange?.(index);\n\n // Safari scrolls immediately (no smooth scroll support),\n // so this ref value must be updated asap\n selectedIndexRef.current = index;\n }\n },\n [elements, navigationMode, direction, offset],\n );\n\n return [selectedIndex, setScrollTo, elements];\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useUniqueId.js","sources":["../../../src/hooks/useUniqueId.ts"],"sourcesContent":["import * as React from \"react\"; // this can be optimized when react 17 support is dropped\n\nimport { useEnhancedEffect } from \"./useEnhancedEffect\";\n\n/** Credit: https://github.com/radix-ui/primitives/blob/main/packages/react/id/src/id.tsx\n * Modified slightly to suit our purposes.\n */\n// We `toString()` to prevent bundlers from trying to `import { useId } from 'react';`\nconst useReactId = (React as any)[\"useId\".toString()] || (() => undefined);\nlet count = 0;\n\nexport const useUniqueId = (\n deterministicId?: string,\n /**\n * @deprecated\n * Users should pick between a fully deterministic or fully generated id\n * @example\n * useUniqueId(setId(idPrefix, deterministicId))\n * */\n idPrefix?: string,\n): string => {\n const [id, setId] = React.useState<string | undefined>(useReactId());\n\n useEnhancedEffect(() => {\n // eslint-disable-next-line no-plusplus\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId, idPrefix]);\n\n return deterministicId || (idPrefix ? idPrefix + id : (id ?? \"\"));\n};\n"],"names":[],"mappings":";;AAQA,MAAM,aAAc,MAAc,QAAQ,SAAS,CAAC,MAAM,MAAM;AAChE,IAAI,QAAQ;AAEC,MAAA,cAAc,CACzB,iBAOA,aACW;AACX,QAAM,CAAC,IAAI,KAAK,IAAI,MAAM,SAA6B,YAAY;AAEnE,oBAAkB,MAAM;AAElB,QAAA,CAAC,gBAAuB,OAAA,CAAC,YAAY,WAAW,OAAO,OAAO,CAAC;AAAA,EAAA,GAClE,CAAC,iBAAiB,QAAQ,CAAC;AAE9B,SAAO,oBAAoB,WAAW,WAAW,KAAM,MAAM;AAC/D;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useWidth.js","sources":["../../../src/hooks/useWidth.ts"],"sourcesContent":["/* eslint-disable react-hooks/rules-of-hooks */\nimport { Breakpoint, useTheme } from \"@mui/material/styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const useWidth = () => {\n const muiTheme = useTheme();\n const keys = Object.keys(theme.breakpoints.values).reverse() as Breakpoint[];\n\n return (\n keys.reduce<Breakpoint | null>((output, key) => {\n const matches = useMediaQuery(muiTheme.breakpoints.up(key));\n\n return !output && matches ? key : output;\n }, null) || \"xs\"\n );\n};\n"],"names":[],"mappings":";;;AAKO,MAAM,WAAW,MAAM;AAC5B,QAAM,WAAW,SAAS;AAC1B,QAAM,OAAO,OAAO,KAAK,MAAM,YAAY,MAAM,EAAE,QAAQ;AAE3D,SACE,KAAK,OAA0B,CAAC,QAAQ,QAAQ;AAC9C,UAAM,UAAU,cAAc,SAAS,YAAY,GAAG,GAAG,CAAC;AAEnD,WAAA,CAAC,UAAU,UAAU,MAAM;AAAA,EAAA,GACjC,IAAI,KAAK;AAEhB;"}
|
package/dist/esm/icons.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sources":["../../src/icons.tsx"],"sourcesContent":["import { forwardRef, memo, useMemo } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { useTheme } from \"@hitachivantara/uikit-react-utils\";\nimport { getColor, HvColorAny, HvSize } from \"@hitachivantara/uikit-styles\";\n\n/** sizes for the <svg> icon */\nconst svgSizeMap = {\n xs: 12,\n sm: 16,\n md: 32,\n lg: 96,\n xl: 112,\n} satisfies Record<HvSize, number>;\n\ninterface SvgProps extends Omit<React.SVGProps<SVGSVGElement>, \"rotate\"> {\n size?: HvSize | number;\n color?: HvColorAny;\n compact?: boolean;\n title?: string;\n rotate?: boolean;\n}\n\nexport const SvgBase = styled(\"svg\")({\n display: \"inline-block\",\n fill: \"currentcolor\",\n width: \"1em\",\n height: \"1em\",\n fontSize: 16,\n flexShrink: 0,\n transition: \"rotate 0.2s ease\",\n});\n\nconst Svg = styled(SvgBase)<SvgProps>(({ size, color, compact, rotate }) => ({\n rotate: rotate ? \"180deg\" : undefined,\n margin: compact ? 0 : size === \"xs\" ? 10 : 8,\n color: getColor(color) ?? \"inherit\",\n fontSize: svgSizeMap[size as HvSize] ?? size ?? svgSizeMap.sm,\n}));\n\nconst defaultIconPathMap = {\n // Semantic icons\n Success:\n \"M6.39 12 4 9.61l.7-.7 1.62 1.6 4.65-5.57.77.64zM8 15a7 7 0 0 1-4.94-2.06A7.02 7.02 0 1 1 8 15m8-7a8 8 0 1 0-8 8 8 8 0 0 0 8-8\",\n Caution: \"M7.5 6h1v4h-1zm0 7h1v-1h-1zm8.5 2H0L8 1zM1.72 14h12.56L8 3.02z\",\n Fail: \"M7.5 4h1v6h-1zm0 8h1v-1h-1zM16 8a8 8 0 1 0-8 8 8 8 0 0 0 8-8m-1 0a7 7 0 1 1-7-7 7 7 0 0 1 7 7\",\n Info: \"M8 16a8 8 0 1 1 8-8 8 8 0 0 1-8 8M8 1a6.96 6.96 0 0 0-7 6.91V8a6.96 6.96 0 0 0 6.91 7H8a6.96 6.96 0 0 0 7-6.91V8a6.96 6.96 0 0 0-6.91-7zm-.5 11h1V6h-1zm0-7h1V4h-1z\",\n // Arrows/Navigation\n CaretDown: \"m8 11.53-6.13-6.13.93-.93L8 9.67l5.2-5.2.93.93z\",\n CaretRight: \"m5.4 14.13-.93-.93L9.67 8l-5.2-5.2.93-.93L11.53 8z\",\n DotsHorizontal: \"M9.1 7v2h-2V7zM2 7v2h2V7zm10 0v2h2V7z\",\n DotsVertical: \"M7 6.9h2v2H7zM7 4h2V2H7zm0 10h2v-2H7z\",\n Start:\n \"M2.99 16.05H2v-16h.99zm2.97-8 7.34 7.41.7-.7-6.64-6.71L14 1.33l-.7-.7z\",\n Backwards: \"M11.3 15.5 4 8 11.3.5l.7.8L5.38 8 12 14.8z\",\n Forwards: \"M4.79 15.5 4 14.8 10.62 8 4 1.3l.79-.8L12 8z\",\n End: \"M13 0h1v16h-1zM2.58.58l-.7.7L8.57 8l-6.7 6.71.7.71L10 8z\",\n // Others\n Add: \"M16 8.5H8.5V16h-1V8.5H0v-1h7.5V0h1v7.5H16z\",\n Close:\n \"m8.7 8 5.3 5.3-.7.7L8 8.7 2.7 14l-.7-.7L7.3 8 2 2.7l.7-.7L8 7.3 13.3 2l.7.7z\",\n Search:\n \"M15.07 14.52 10.5 9.95a5.96 5.96 0 1 0-.72.7l4.58 4.58zM5.9 11A4.95 4.95 0 0 1 1 6v-.1A4.95 4.95 0 0 1 6 1h.1A4.95 4.95 0 0 1 11 6v.1A4.95 4.95 0 0 1 6 11z\",\n SortAsc: \"M.08 6.07 6.5.01l6.42 6.06Zm0 0\",\n SortDesc: \"M1.76 5 6 .76 10.24 5z\",\n Sort: \"M10.24 7 6 11.24 1.76 7zM1.76 5 6 .76 10.24 5z\",\n // single-use icons in Widgets\n Calendar:\n \"M10.5 2V0h-1v2h-3V0h-1v2H0v14h16V2zM15 15H1V3h14zM3 6h2v2H3zm4 0h2v2H7zm4 0h2v2h-2zm-8 4h2v2H3zm4 0h2v2H7zm4 0h2v2h-2z\",\n ColorPicker:\n \"M15.41.57a2.05 2.05 0 0 0-2.82 0l-2.12 2.12-1.42-1.42-.7.71L14 7.64l.7-.7-1.4-1.42 2.1-2.12a2 2 0 0 0 0-2.83zm-.69 2.11L12.59 4.8l-1.42-1.42 2.12-2.12a1 1 0 0 1 1.42 1.42zM0 13v3h3l9-9-3-3zm2.59 2H1v-1.58l8-8L10.59 7z\",\n CurrentStep: \"M16 8a8 8 0 0 1-8 8 8 8 0 0 1-8-8 8 8 0 0 1 8-8 8 8 0 0 1 8 8\",\n Delete: \"M12 1H4V0h8zm4 1v1h-2.1L13 16H3L2.1 3H0V2zm-3 1H3.1L4 15h8.1z\",\n Doc: \"M9 0H2v16h12V5zm3.6 5H9V1.4zm.4 10H3V1h5v5h5z\",\n Edit: \"M13.17 7.07 8.93 2.83 11.76 0 16 4.24zm-2.83-4.24 2.83 2.83 1.42-1.42-2.83-2.83zm-2.7 2.7L1 12.16V15h2.83l6.65-6.65-2.83-2.83m-.01-1.4 4.24 4.24L4.24 16H0v-4.24z\",\n Filters: \"M1 2v1.6l6 6.1V14h2V9.7l6-6.1V2zM0 1h16v3l-6 6v5H6v-4.9L0 4z\",\n Fullscreen:\n \"M16 0v4.5h-1V1.7l-4.65 4.65-.7-.7L14.29 1H11.5V0zM4.5 1V0H0v4.5h1V1.7l4.65 4.65.7-.7L1.71 1zM15 14.3l-4.65-4.65-.7.7L14.29 15H11.5v1H16v-4.5h-1zM5.65 9.64 1 14.29V11.5H0V16h4.5v-1H1.7l4.65-4.65z\",\n Menu: \"M1 2v1.6l6 6.1V14h2V9.7l6-6.1V2zM0 1h16v3l-6 6v5H6v-4.9L0 4z\",\n OtherStep: \"M12 8a4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4 4 4 0 0 1 4 4\",\n Time: \"M8 15a7.02 7.02 0 1 0-4.94-2.06A7 7 0 0 0 8 15m0 1a8 8 0 1 1 8-8 8 8 0 0 1-8 8m2.65-4.65L7.5 8.21V3h1v4.8l2.85 2.85z\",\n User: \"M9.6 8.7A4.5 4.5 0 0 0 8.04 0H8a4.5 4.5 0 0 0-4.5 4.46v.04a4.6 4.6 0 0 0 2.9 4.2A7.7 7.7 0 0 0 .5 16h1a6.5 6.5 0 0 1 6.47-6.5H8a6.5 6.5 0 0 1 6.5 6.47V16h1a7.5 7.5 0 0 0-5.9-7.3M4.5 4.5A3.54 3.54 0 0 1 8 1a3.54 3.54 0 0 1 3.5 3.5A3.54 3.54 0 0 1 8 8a3.54 3.54 0 0 1-3.5-3.5\",\n} satisfies Record<string, string>;\n\nfunction HvIconInternal(\n props: SvgProps & { name: keyof typeof defaultIconPathMap },\n ref: React.Ref<SVGSVGElement>,\n) {\n const { name, title, \"aria-label\": ariaLabel, children, ...others } = props;\n const { activeTheme } = useTheme();\n\n const iconsPathMap = useMemo(\n () => ({ ...defaultIconPathMap, ...activeTheme?.icons }),\n [activeTheme?.icons],\n );\n\n const isDefaultIcon = iconsPathMap[name] === defaultIconPathMap[name];\n\n return (\n // @ts-expect-error `rotate` is fine\n <Svg\n ref={ref}\n data-name={name}\n viewBox={(!isDefaultIcon && activeTheme?.icons?.viewBox) || \"0 0 16 16\"}\n focusable={false}\n aria-label={ariaLabel}\n role={title || ariaLabel ? \"img\" : \"none\"}\n {...others}\n >\n {title ? <title>{title}</title> : null}\n <path d={iconsPathMap[name]} />\n </Svg>\n );\n}\n\nexport const HvIcon = memo(forwardRef(HvIconInternal));\n"],"names":[],"mappings":";;;;;AAMA,MAAM,aAAa;AAAA,EACjB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAUa,MAAA,UAAU,OAAO,KAAK,EAAE;AAAA,EACnC,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AACd,CAAC;AAED,MAAM,MAAM,OAAO,OAAO,EAAY,CAAC,EAAE,MAAM,OAAO,SAAS,cAAc;AAAA,EAC3E,QAAQ,SAAS,WAAW;AAAA,EAC5B,QAAQ,UAAU,IAAI,SAAS,OAAO,KAAK;AAAA,EAC3C,OAAO,SAAS,KAAK,KAAK;AAAA,EAC1B,UAAU,WAAW,IAAc,KAAK,QAAQ,WAAW;AAC7D,EAAE;AAEF,MAAM,qBAAqB;AAAA;AAAA,EAEzB,SACE;AAAA,EACF,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA;AAAA,EAEN,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,OACE;AAAA,EACF,WAAW;AAAA,EACX,UAAU;AAAA,EACV,KAAK;AAAA;AAAA,EAEL,KAAK;AAAA,EACL,OACE;AAAA,EACF,QACE;AAAA,EACF,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA;AAAA,EAEN,UACE;AAAA,EACF,aACE;AAAA,EACF,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,YACE;AAAA,EACF,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AACR;AAEA,SAAS,eACP,OACA,KACA;AACM,QAAA,EAAE,MAAM,OAAO,cAAc,WAAW,UAAU,GAAG,WAAW;AAChE,QAAA,EAAE,YAAY,IAAI,SAAS;AAEjC,QAAM,eAAe;AAAA,IACnB,OAAO,EAAE,GAAG,oBAAoB,GAAG,aAAa,MAAM;AAAA,IACtD,CAAC,aAAa,KAAK;AAAA,EACrB;AAEA,QAAM,gBAAgB,aAAa,IAAI,MAAM,mBAAmB,IAAI;AAEpE;AAAA;AAAA,IAEE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,aAAW;AAAA,QACX,SAAU,CAAC,iBAAiB,aAAa,OAAO,WAAY;AAAA,QAC5D,WAAW;AAAA,QACX,cAAY;AAAA,QACZ,MAAM,SAAS,YAAY,QAAQ;AAAA,QAClC,GAAG;AAAA,QAEH,UAAA;AAAA,UAAQ,QAAA,oBAAC,SAAO,EAAA,UAAA,MAAM,CAAA,IAAW;AAAA,UACjC,oBAAA,QAAA,EAAK,GAAG,aAAa,IAAI,EAAG,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA;AAGnC;AAEO,MAAM,SAAS,KAAK,WAAW,cAAc,CAAC;"}
|
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","sources":["../../../src/providers/Provider.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport createCache, { EmotionCache } from \"@emotion/cache\";\nimport {\n CacheProvider,\n ClassNames,\n css as cssReact,\n Global,\n} from \"@emotion/react\";\nimport {\n CssBaseline,\n CssScopedBaseline,\n getThemesVars,\n HvThemeStructure,\n} from \"@hitachivantara/uikit-styles\";\n\nimport { useUniqueId } from \"../hooks/useUniqueId\";\nimport { HvTheme } from \"../types/theme\";\nimport { getElementById } from \"../utils/document\";\nimport { processThemes } from \"../utils/theme\";\nimport {\n defaultCacheKey,\n defaultEmotionCache,\n HvThemeProvider,\n} from \"./ThemeProvider\";\n\n// Provider props\nexport interface HvProviderProps {\n /**\n * Your component tree.\n */\n children?: React.ReactNode;\n /**\n * Id of your root element.\n */\n rootElementId?: string;\n /**\n * By default the baseline styles are applied globally, `global`, to the application for the UI Kit components to work properly.\n * If you need to scope the baseline styles to avoid styling conflicts, you can set this property to `scoped`.\n * To scope the baseline to your root, you need to add the `rootElementId` property.\n * If the `rootElementId` property is not set, the baseline will be scoped to a new container, `hv-uikit-scoped-root*`, created around your content.\n * If you are providing your own baseline styles, you can set this property to `none` to disable the baseline styles.\n */\n cssBaseline?: \"global\" | \"scoped\" | \"none\";\n /**\n * By default the theme styles are applied globally, `global`, to the application.\n * If you need to scope the theme styles to avoid styling conflicts, you can set this property to `scoped`.\n * To scope the theme to your root, you need to add the `rootElementId` property.\n * If the `rootElementId` property is not set, the theme will be scoped to a new container, `hv-uikit-scoped-root*`, created around your content.\n */\n cssTheme?: \"global\" | \"scoped\";\n /**\n * The string used to prefix the class names and uniquely identify them. The key can only contain lower case alphabetical characters.\n * This is useful to avoid class name collisions.\n *\n * If `emotionCache` is passed, this is value is ignored.\n *\n * @default \"hv\"\n */\n classNameKey?: string;\n /**\n * The emotion cache instance to use. If no value is provided, the default cache is used.\n */\n emotionCache?: EmotionCache;\n /**\n * List of themes to be used by UI Kit.\n * You can provide your own themes created with the `createTheme` utility and/or the default themes `ds3` and `ds5` provided by UI Kit.\n *\n * If no value is provided, the `ds5` theme will be used.\n */\n themes?: (HvTheme | HvThemeStructure)[];\n /**\n * The active theme. It must be one of the themes passed to `themes`.\n *\n * If no value is provided, the first theme from the `themes` list is used. If no `themes` list is provided, the `ds5` theme will be used.\n */\n theme?: string;\n /**\n * The active color mode. It must be one of the color modes of the active theme.\n *\n * If no value is provided, the first color mode defined in the active theme is used.\n * For the default themes `ds3` and `ds5`, the `dawn` color mode is the one used.\n */\n colorMode?: string;\n}\n\nconst scopedRootPrefix = \"hv-uikit-scoped-root\" as const;\n\n/**\n * Enables theming capabilities and makes cross-component theme properties available down the tree.\n */\nexport const HvProvider = ({\n children,\n rootElementId,\n cssBaseline = \"global\",\n cssTheme = \"global\",\n themes,\n theme,\n colorMode,\n emotionCache: emotionCacheProp,\n classNameKey = defaultCacheKey,\n}: HvProviderProps) => {\n const generatedId = useUniqueId();\n const scopedRootId = `${scopedRootPrefix}-${generatedId}`;\n\n // Themes\n const themesList = processThemes(themes);\n\n // Emotion cache\n // Moves UI Kit styles to the top of the <head> so they're loaded first\n // This enables users to override the UI Kit styles if necessary\n const emotionCache = useMemo(() => {\n if (emotionCacheProp) return emotionCacheProp;\n // reuse the default shared cache if `classNameKey` is the same\n if (classNameKey === defaultCacheKey) return defaultEmotionCache;\n\n return createCache({ key: classNameKey, prepend: true });\n }, [classNameKey, emotionCacheProp]);\n\n return (\n <CacheProvider value={emotionCache}>\n <Global\n styles={cssReact`\n ${\n cssBaseline === \"global\" && {\n [`@layer hv-uikit-baseline`]: {\n ...CssBaseline,\n },\n }\n }\n ${getThemesVars(themesList)}\n `}\n />\n <HvThemeProvider\n themes={themesList}\n theme={theme || themesList[0].name}\n emotionCache={emotionCache}\n colorMode={colorMode || Object.keys(themesList[0].colors.modes)[0]}\n themeRootId={\n cssTheme === \"scoped\" ? rootElementId || scopedRootId : undefined\n }\n >\n <ClassNames>\n {({ css }) => {\n if (cssBaseline === \"scoped\") {\n const rootElement = getElementById(rootElementId);\n\n if (rootElement) {\n rootElement.classList.add(\n css({\n [`@layer ${rootElementId}-baseline`]: {\n ...CssScopedBaseline,\n },\n }),\n );\n }\n }\n\n return (cssTheme === \"scoped\" || cssBaseline === \"scoped\") &&\n !rootElementId ? (\n <div\n id={scopedRootId}\n className={\n cssBaseline === \"scoped\"\n ? css({\n [`@layer ${rootElementId}-baseline`]: {\n ...CssScopedBaseline,\n },\n })\n : undefined\n }\n >\n {children}\n </div>\n ) : (\n children\n );\n }}\n </ClassNames>\n </HvThemeProvider>\n </CacheProvider>\n );\n};\n"],"names":["cssReact","css"],"mappings":";;;;;;;;;;AAqFA,MAAM,mBAAmB;AAKlB,MAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,eAAe;AACjB,MAAuB;AACrB,QAAM,cAAc,YAAY;AAChC,QAAM,eAAe,GAAG,gBAAgB,IAAI,WAAW;AAGjD,QAAA,aAAa,cAAc,MAAM;AAKjC,QAAA,eAAe,QAAQ,MAAM;AACjC,QAAI,iBAAyB,QAAA;AAEzB,QAAA,iBAAiB,gBAAwB,QAAA;AAE7C,WAAO,YAAY,EAAE,KAAK,cAAc,SAAS,MAAM;AAAA,EAAA,GACtD,CAAC,cAAc,gBAAgB,CAAC;AAGjC,SAAA,qBAAC,eAAc,EAAA,OAAO,cACpB,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,QAAQA;AAAAA,YAEJ,gBAAgB,YAAY;AAAA,UAC1B,CAAC,0BAA0B,GAAG;AAAA,YAC5B,GAAG;AAAA,UAAA;AAAA,QAGT,CAAA;AAAA,YACE,cAAc,UAAU,CAAC;AAAA;AAAA,MAAA;AAAA,IAE/B;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,OAAO,SAAS,WAAW,CAAC,EAAE;AAAA,QAC9B;AAAA,QACA,WAAW,aAAa,OAAO,KAAK,WAAW,CAAC,EAAE,OAAO,KAAK,EAAE,CAAC;AAAA,QACjE,aACE,aAAa,WAAW,iBAAiB,eAAe;AAAA,QAG1D,UAAC,oBAAA,YAAA,EACE,UAAC,CAAA,EAAE,KAAAC,WAAU;AACZ,cAAI,gBAAgB,UAAU;AACtB,kBAAA,cAAc,eAAe,aAAa;AAEhD,gBAAI,aAAa;AACf,0BAAY,UAAU;AAAA,gBACpBA,KAAI;AAAA,kBACF,CAAC,UAAU,aAAa,WAAW,GAAG;AAAA,oBACpC,GAAG;AAAA,kBAAA;AAAA,gBAEN,CAAA;AAAA,cACH;AAAA,YAAA;AAAA,UACF;AAGF,kBAAQ,aAAa,YAAY,gBAAgB,aAC/C,CAAC,gBACD;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,cACJ,WACE,gBAAgB,WACZA,KAAI;AAAA,gBACF,CAAC,UAAU,aAAa,WAAW,GAAG;AAAA,kBACpC,GAAG;AAAA,gBAAA;AAAA,cAEN,CAAA,IACD;AAAA,cAGL;AAAA,YAAA;AAAA,UAAA,IAGH;AAAA,QAAA,EAGN,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.js","sources":["../../../src/providers/ThemeProvider.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { EmotionCache } from \"@emotion/cache\";\nimport {\n createTheme,\n ThemeProvider as MuiThemeProvider,\n} from \"@mui/material/styles\";\nimport {\n defaultCacheKey,\n defaultEmotionCache,\n EmotionContext,\n HvThemeContext,\n type HvThemeContextValue,\n} from \"@hitachivantara/uikit-react-shared\";\nimport { HvThemeStructure, parseTheme } from \"@hitachivantara/uikit-styles\";\n\nimport { HvTheme } from \"../types/theme\";\nimport { setElementAttrs } from \"../utils/theme\";\n\nexport { HvThemeContext };\nexport type { HvThemeContextValue };\n\nexport { defaultCacheKey, defaultEmotionCache, EmotionContext };\n\ninterface HvThemeProviderProps {\n children: React.ReactNode;\n themes: (HvTheme | HvThemeStructure)[];\n theme: string;\n emotionCache: EmotionCache;\n colorMode: string;\n themeRootId?: string;\n}\n\nexport const HvThemeProvider = ({\n children,\n themes: themesList,\n theme: themeProp,\n emotionCache,\n colorMode: colorModeProp,\n themeRootId: rootId,\n}: HvThemeProviderProps) => {\n const [theme, setTheme] = useState(themeProp);\n const [colorMode, setColorMode] = useState(colorModeProp);\n\n const {\n theme: activeTheme,\n selectedTheme,\n selectedMode,\n colorModes,\n colorScheme,\n } = parseTheme(themesList, theme, colorMode);\n\n const themes = themesList.map((t) => t.name);\n\n // review in v6 so that theme/colorMode isn't both controlled & uncontrolled\n useEffect(() => {\n setTheme(themeProp);\n setColorMode(colorModeProp);\n }, [colorModeProp, themeProp]);\n\n useEffect(() => {\n setElementAttrs(selectedTheme, selectedMode, colorScheme, rootId);\n }, [colorScheme, rootId, selectedMode, selectedTheme]);\n\n const changeTheme = useCallback(\n (newTheme = selectedTheme, newMode = selectedMode) => {\n setTheme(newTheme);\n setColorMode(newMode);\n },\n [selectedMode, selectedTheme],\n );\n\n const value = useMemo<HvThemeContextValue>(\n () => ({\n themes,\n colorModes,\n activeTheme: activeTheme as HvTheme,\n selectedTheme,\n selectedMode,\n changeTheme,\n rootId,\n }),\n [\n themes,\n colorModes,\n activeTheme,\n selectedTheme,\n selectedMode,\n changeTheme,\n rootId,\n ],\n );\n\n const muiTheme = useMemo(() => {\n const colors = activeTheme.colors.modes[colorMode];\n return createTheme({\n spacing: activeTheme.space.base,\n typography: {\n fontFamily: activeTheme.fontFamily.body,\n },\n palette: {\n primary: { main: colors.primary },\n success: { main: colors.positive },\n warning: { main: colors.warning },\n error: { main: colors.negative },\n info: { main: colors.info },\n text: {\n primary: colors.text,\n secondary: colors.textSubtle,\n disabled: colors.textDisabled,\n },\n background: {\n default: colors.bgPage,\n paper: colors.bgContainer,\n },\n divider: colors.border,\n action: {\n active: colors.primary,\n hover: colors.primaryStrong,\n selected: colors.primaryStrong,\n disabled: colors.textDisabled,\n disabledBackground: colors.bgDisabled,\n },\n },\n components: {\n MuiButtonBase: {\n defaultProps: {\n disableRipple: true,\n disableTouchRipple: true,\n },\n },\n },\n breakpoints: activeTheme.breakpoints,\n });\n }, [activeTheme, colorMode]);\n\n const emotionCacheValue = useMemo(\n () => ({ cache: emotionCache }),\n [emotionCache],\n );\n\n return (\n <MuiThemeProvider theme={muiTheme}>\n <HvThemeContext.Provider value={value}>\n <EmotionContext.Provider value={emotionCacheValue}>\n {children}\n </EmotionContext.Provider>\n </HvThemeContext.Provider>\n </MuiThemeProvider>\n );\n};\n"],"names":["MuiThemeProvider"],"mappings":";;;;;;;AAgCO,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP;AAAA,EACA,WAAW;AAAA,EACX,aAAa;AACf,MAA4B;AAC1B,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,SAAS;AAC5C,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,aAAa;AAElD,QAAA;AAAA,IACJ,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACE,IAAA,WAAW,YAAY,OAAO,SAAS;AAE3C,QAAM,SAAS,WAAW,IAAI,CAAC,MAAM,EAAE,IAAI;AAG3C,YAAU,MAAM;AACd,aAAS,SAAS;AAClB,iBAAa,aAAa;AAAA,EAAA,GACzB,CAAC,eAAe,SAAS,CAAC;AAE7B,YAAU,MAAM;AACE,oBAAA,eAAe,cAAc,aAAa,MAAM;AAAA,KAC/D,CAAC,aAAa,QAAQ,cAAc,aAAa,CAAC;AAErD,QAAM,cAAc;AAAA,IAClB,CAAC,WAAW,eAAe,UAAU,iBAAiB;AACpD,eAAS,QAAQ;AACjB,mBAAa,OAAO;AAAA,IACtB;AAAA,IACA,CAAC,cAAc,aAAa;AAAA,EAC9B;AAEA,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAEM,QAAA,WAAW,QAAQ,MAAM;AAC7B,UAAM,SAAS,YAAY,OAAO,MAAM,SAAS;AACjD,WAAO,YAAY;AAAA,MACjB,SAAS,YAAY,MAAM;AAAA,MAC3B,YAAY;AAAA,QACV,YAAY,YAAY,WAAW;AAAA,MACrC;AAAA,MACA,SAAS;AAAA,QACP,SAAS,EAAE,MAAM,OAAO,QAAQ;AAAA,QAChC,SAAS,EAAE,MAAM,OAAO,SAAS;AAAA,QACjC,SAAS,EAAE,MAAM,OAAO,QAAQ;AAAA,QAChC,OAAO,EAAE,MAAM,OAAO,SAAS;AAAA,QAC/B,MAAM,EAAE,MAAM,OAAO,KAAK;AAAA,QAC1B,MAAM;AAAA,UACJ,SAAS,OAAO;AAAA,UAChB,WAAW,OAAO;AAAA,UAClB,UAAU,OAAO;AAAA,QACnB;AAAA,QACA,YAAY;AAAA,UACV,SAAS,OAAO;AAAA,UAChB,OAAO,OAAO;AAAA,QAChB;AAAA,QACA,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,UACN,QAAQ,OAAO;AAAA,UACf,OAAO,OAAO;AAAA,UACd,UAAU,OAAO;AAAA,UACjB,UAAU,OAAO;AAAA,UACjB,oBAAoB,OAAO;AAAA,QAAA;AAAA,MAE/B;AAAA,MACA,YAAY;AAAA,QACV,eAAe;AAAA,UACb,cAAc;AAAA,YACZ,eAAe;AAAA,YACf,oBAAoB;AAAA,UAAA;AAAA,QACtB;AAAA,MAEJ;AAAA,MACA,aAAa,YAAY;AAAA,IAAA,CAC1B;AAAA,EAAA,GACA,CAAC,aAAa,SAAS,CAAC;AAE3B,QAAM,oBAAoB;AAAA,IACxB,OAAO,EAAE,OAAO;IAChB,CAAC,YAAY;AAAA,EACf;AAEA,6BACGA,eAAiB,EAAA,OAAO,UACvB,UAAA,oBAAC,eAAe,UAAf,EAAwB,OACvB,UAAA,oBAAC,eAAe,UAAf,EAAwB,OAAO,mBAC7B,SAAA,CACH,EACF,CAAA,GACF;AAEJ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sources":["../../../src/types/generic.ts"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type {\n HvExtraDeepProps,\n HvExtraProps,\n} from \"@hitachivantara/uikit-react-shared\";\n\nexport type { HvExtraProps, HvExtraDeepProps };\n\ntype AsProp<C extends React.ElementType> = {\n /** Custom element type to override the root component */\n component?: C;\n};\n\ntype PropsToOmit<C extends React.ElementType, P> = keyof (AsProp<C> & P);\n\n// Workaround to fix the use of Omit with ComponentPropsWithoutRef\n// Without this the event handlers return any instead of the type for the chosen element\ntype FixComponentProps<T> = T extends any ? T : never;\n\ntype PolymorphicComponent<\n C extends React.ElementType,\n Props = {},\n> = React.PropsWithChildren<Props & AsProp<C>> &\n FixComponentProps<\n Omit<React.ComponentPropsWithoutRef<C>, PropsToOmit<C, Props>>\n >;\n\nexport type PolymorphicRef<C extends React.ElementType> =\n React.ComponentPropsWithRef<C>[\"ref\"];\n\nexport type PolymorphicComponentRef<\n C extends React.ElementType,\n Props = {},\n> = PolymorphicComponent<C, Props> & { ref?: PolymorphicRef<C> };\n\n/** HV Base Props. Extends `React.HTMLAttributes` of an element `E`, and filters `K` keys. */\nexport type HvBaseProps<\n E extends HTMLElement = HTMLDivElement,\n K extends keyof React.HTMLAttributes<E> = never,\n> = Omit<React.HTMLAttributes<E>, K>;\n\n/** This type allows to do a deep partial by applying the Partial type to each key recursively */\nexport type DeepPartial<T> = T extends {}\n ? Partial<{\n [P in keyof T]: DeepPartial<T[P]>;\n }>\n : T;\n\n/** This type extends DeepPartial to allow any extra properties */\nexport type HvExtraDeepPartialProps<T> = Partial<{\n [P in keyof T]: DeepPartial<T[P]> & Record<string, any>;\n}> &\n Record<string, any>;\n\nexport type Arrayable<T> = T | T[];\n\n/** React.forwardRef with fixed type declarations */\nexport function fixedForwardRef<T, P = {}>(\n // TODO: change `React.ReactElement | null` to `React.ReactNode` in v6 (requires ts@5+)\n render: (props: P, ref: React.Ref<T>) => React.ReactElement<any> | null,\n): (props: P & React.RefAttributes<T>) => React.ReactElement<any> | null {\n // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/70361#issuecomment-2327456092\n return forwardRef(render as any) as any;\n}\n\n// Source code from: https://github.com/piotrwitek/utility-types/blob/master/src/mapped-types.ts\n/**\n * Optional\n * @desc From `T` make a set of properties by key `K` become optional\n * @example\n * type Props = {\n * name: string;\n * age: number;\n * visible: boolean;\n * };\n *\n * // Expect: { name?: string; age?: number; visible?: boolean; }\n * type Props = Optional<Props>;\n *\n * // Expect: { name: string; age?: number; visible?: boolean; }\n * type Props = Optional<Props, 'age' | 'visible'>;\n */\nexport type HvOptional<T extends object, K extends keyof T = keyof T> = Omit<\n T,\n K\n> &\n Partial<Pick<T, K>>;\n"],"names":[],"mappings":";AAyDO,SAAS,gBAEd,QACuE;AAEvE,SAAO,WAAW,MAAa;AACjC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Callout.js","sources":["../../../src/utils/Callout.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { SnackbarProps as MuiSnackbarProps } from \"@mui/material/Snackbar\";\nimport SnackbarContent, {\n type SnackbarContentProps as MuiSnackbarContentProps,\n} from \"@mui/material/SnackbarContent\";\nimport {\n createClasses,\n useDefaultProps,\n useTheme,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { HvActionsGeneric, HvActionsGenericProps } from \"../ActionsGeneric\";\nimport { HvButton, HvButtonProps } from \"../Button\";\nimport { HvIcon } from \"../icons\";\nimport { iconVariant } from \"./iconVariant\";\n\nconst { useClasses } = createClasses(\"HvCallout\", {\n root: {\n position: \"relative\",\n boxShadow: \"none\",\n flexWrap: \"nowrap\",\n padding: 0,\n },\n success: {\n backgroundColor: theme.colors.positiveDimmed,\n },\n warning: {\n backgroundColor: theme.colors.warningDimmed,\n },\n error: {\n backgroundColor: theme.colors.negativeDimmed,\n },\n info: {\n backgroundColor: theme.colors.infoDimmed,\n },\n accent: {\n backgroundColor: theme.colors.accentDimmed,\n },\n default: {\n backgroundColor: theme.colors.infoDimmed,\n },\n message: {\n display: \"flex\",\n alignItems: \"center\",\n padding: 0,\n color: theme.colors.textDark,\n },\n messageContent: {\n textWrap: \"balance\",\n overflow: \"hidden\",\n wordBreak: \"break-word\",\n },\n messageIcon: {\n lineHeight: 0,\n },\n messageTitle: {\n display: \"block\",\n fontWeight: theme.fontWeights.semibold,\n },\n action: {\n marginRight: 0,\n },\n actionContent: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n justifyContent: \"space-between\",\n gap: theme.space.xs,\n },\n actionCustom: {\n flex: \"0 0 auto\",\n },\n actionClose: {\n alignSelf: \"flex-end\",\n },\n});\n\nexport type HvCalloutVariant =\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"default\"\n | \"info\"\n | \"accent\";\n\nexport type HvCalloutActionPosition = \"auto\" | \"inline\" | \"bottom-right\";\n\nexport type HvCalloutClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvCalloutProps\n extends Omit<\n MuiSnackbarContentProps,\n \"title\" | \"variant\" | \"classes\" | \"onClose\"\n > {\n /** The title to display. */\n title?: React.ReactNode;\n /** The message to display. */\n children?: React.ReactNode;\n /** Variant of the snackbar. */\n variant?: HvCalloutVariant;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Controls whether to show the close icon */\n showClose?: boolean;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** @inheritdoc */\n onClose?: MuiSnackbarProps[\"onClose\"];\n /** Actions to display on the right side. */\n actions?: HvActionsGenericProps[\"actions\"];\n /** The callback function called when an action is triggered, receiving `action` as parameter. */\n onAction?: HvActionsGenericProps[\"onAction\"];\n /** The position property of the header. */\n actionsPosition?: HvCalloutActionPosition;\n /** The props to pass down to the Action Container. */\n actionProps?: Partial<HvButtonProps>;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvCalloutClasses;\n}\n\n/**\n * `HvCallout` is the internal content handler for the snackbars and banners. Might be promoted to a component.\n * @private @internal\n */\nexport const HvCallout = forwardRef<\n // no-indent\n HTMLDivElement,\n HvCalloutProps\n>(function HvCallout(props, ref) {\n const {\n id,\n classes: classesProp,\n className,\n title,\n showClose,\n showIcon,\n customIcon,\n variant = \"default\",\n onClose,\n actions,\n onAction,\n actionsPosition: actionsPositionProp = \"auto\",\n children,\n actionProps,\n ...others\n } = useDefaultProps(\"HvCallout\", props);\n const { classes, cx } = useClasses(classesProp, false);\n const { activeTheme } = useTheme();\n const icon = customIcon || (showIcon && iconVariant(variant));\n\n // TODO: consider making this flex-flow only, so it adapts according to the\n // content length, available space, number of actions, etc.\n const actionsPosition =\n actionsPositionProp === \"auto\" ? \"inline\" : actionsPositionProp;\n\n const actionsContent = (\n <HvActionsGeneric\n id={id}\n className={classes.actionCustom}\n variant={activeTheme?.snackbar.actionButtonVariant as any}\n actions={actions}\n onAction={onAction}\n />\n );\n\n const showCustomActions = actions && actionsPosition === \"bottom-right\";\n\n return (\n <SnackbarContent\n ref={ref}\n id={id}\n classes={{\n root: cx(classes.root, classes[variant], className),\n message: classes.message,\n action: classes.action,\n }}\n message={\n <>\n {icon && <div className={classes.messageIcon}>{icon}</div>}\n <div className={classes.messageContent}>\n {title && <b className={classes.messageTitle}>{title}</b>}\n {children}\n </div>\n {actions && actionsPosition === \"inline\" && actionsContent}\n </>\n }\n action={\n (showClose || showCustomActions) && (\n <div className={classes.actionContent}>\n {showClose && (\n <HvButton\n icon\n className={classes.actionClose}\n variant=\"semantic\"\n aria-label=\"Close\"\n onClick={(evt) => onClose?.(evt, \"clickaway\")}\n {...actionProps}\n >\n <HvIcon size=\"xs\" name=\"Close\" />\n </HvButton>\n )}\n {showCustomActions && actionsContent}\n </div>\n )\n }\n {...others}\n />\n );\n});\n"],"names":["HvCallout"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CounterLabel.js","sources":["../../../src/utils/CounterLabel.tsx"],"sourcesContent":["interface CounterLabelProps extends React.HTMLAttributes<HTMLSpanElement> {\n selected: React.ReactNode;\n total: React.ReactNode;\n conjunctionLabel?: React.ReactNode;\n}\n\n/** A utility counter component (eg. X / Y) @private */\nexport const CounterLabel = ({\n selected,\n total,\n conjunctionLabel = \"/\",\n ...others\n}: CounterLabelProps) => {\n return (\n <span {...others}>\n <b>{selected}</b> {` ${conjunctionLabel} ${total}`}\n </span>\n );\n};\n"],"names":[],"mappings":";AAOO,MAAM,eAAe,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB,GAAG;AACL,MAAyB;AAErB,SAAA,qBAAC,QAAM,EAAA,GAAG,QACR,UAAA;AAAA,IAAA,oBAAC,OAAG,UAAS,SAAA,CAAA;AAAA,IAAI;AAAA,IAAE,IAAI,gBAAgB,IAAI,KAAK;AAAA,EAAA,GAClD;AAEJ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sources":["../../../src/utils/browser.ts"],"sourcesContent":["import { detect } from \"detect-browser\";\n\nexport const isBrowser = (browsers: string | string[]) => {\n const browser = detect();\n return (\n browser &&\n (Array.isArray(browsers)\n ? browsers.indexOf(browser.name) > 0\n : browsers === browser.name)\n );\n};\n"],"names":[],"mappings":";AAEa,MAAA,YAAY,CAAC,aAAgC;AACxD,QAAM,UAAU,OAAO;AACvB,SACE,YACC,MAAM,QAAQ,QAAQ,IACnB,SAAS,QAAQ,QAAQ,IAAI,IAAI,IACjC,aAAa,QAAQ;AAE7B;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deepMerge.js","sources":["../../../src/utils/deepMerge.ts"],"sourcesContent":["import { DeepPartial } from \"../types/generic\";\n\nconst isObject = (val: any): val is object =>\n val && typeof val === \"object\" && !Array.isArray(val);\n\nfunction merge<T>(target: T, source?: DeepPartial<T>) {\n Object.keys(source || {}).forEach((keyProp) => {\n const key = keyProp as keyof typeof source;\n if (isObject(target[key]) && isObject(source?.[key])) {\n merge(target[key], source?.[key]);\n } else {\n (target as any)[key] = source?.[key];\n }\n });\n}\n\n/** Merges recursively all keys of source into target returning the resulting object. */\nexport function deepMerge<T>(target: T, source?: DeepPartial<T>): T {\n const result = structuredClone(target);\n merge(result, source);\n return result;\n}\n"],"names":[],"mappings":"AAEA,MAAM,WAAW,CAAC,QAChB,OAAO,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,GAAG;AAEtD,SAAS,MAAS,QAAW,QAAyB;AACpD,SAAO,KAAK,UAAU,CAAE,CAAA,EAAE,QAAQ,CAAC,YAAY;AAC7C,UAAM,MAAM;AACR,QAAA,SAAS,OAAO,GAAG,CAAC,KAAK,SAAS,SAAS,GAAG,CAAC,GAAG;AACpD,YAAM,OAAO,GAAG,GAAG,SAAS,GAAG,CAAC;AAAA,IAAA,OAC3B;AACJ,aAAe,GAAG,IAAI,SAAS,GAAG;AAAA,IAAA;AAAA,EACrC,CACD;AACH;AAGgB,SAAA,UAAa,QAAW,QAA4B;AAC5D,QAAA,SAAS,gBAAgB,MAAM;AACrC,QAAM,QAAQ,MAAM;AACb,SAAA;AACT;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sources":["../../../src/utils/document.ts"],"sourcesContent":["export function getDocument() {\n return typeof window !== \"undefined\" ? document : undefined;\n}\n\n/** Wrapper around `document.getElementById` */\nexport function getElementById(elementId?: string) {\n return (elementId && getDocument()?.getElementById(elementId)) || undefined;\n}\n\n/** Get a container element by id, falling back to document-body */\nexport function getContainerElement(elementId?: string) {\n return getElementById(elementId) || getDocument()?.body;\n}\n"],"names":[],"mappings":"AAAO,SAAS,cAAc;AACrB,SAAA,OAAO,WAAW,cAAc,WAAW;AACpD;AAGO,SAAS,eAAe,WAAoB;AACjD,SAAQ,aAAa,YAAA,GAAe,eAAe,SAAS,KAAM;AACpE;AAGO,SAAS,oBAAoB,WAAoB;AACtD,SAAO,eAAe,SAAS,KAAK,YAAe,GAAA;AACrD;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"focusUtils.js","sources":["../../../src/utils/focusUtils.ts"],"sourcesContent":["export const outlineStyles = {\n boxShadow: \"0 0 0 1px #52A8EC, 0 0 0 4px rgba(29,155,209,.3)\",\n};\n"],"names":[],"mappings":"AAAO,MAAM,gBAAgB;AAAA,EAC3B,WAAW;AACb;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"focusableElementFinder.js","sources":["../../../src/utils/focusableElementFinder.ts"],"sourcesContent":["const SELECTORS =\n 'input, button, select, textarea, a[href], [tabindex]:not([tabindex=\"-1\"])';\n\n/** Gets the list of focusable elements. */\nexport const getFocusableList = (node: any) =>\n node?.querySelectorAll(SELECTORS) || [];\n\n/** Auxiliary function to find adjacent nodes to focus. */\nexport const getPrevNextFocus = (nodeId?: string) => {\n const nodes = getFocusableList(document);\n\n const nbNodes = nodes.length;\n let index = 0;\n for (; index < nbNodes; index += 1) {\n if (nodes[index].id === nodeId) {\n break;\n }\n }\n return {\n nextFocus: nodes[index + 1 > nbNodes - 1 ? 0 : index + 1],\n prevFocus: nodes[index - 1 < 0 ? nbNodes - 1 : index - 1],\n };\n};\n\n/** Get the first and last focusable element from a node. */\nexport const getFirstAndLastFocus = (node: any) => {\n const focusableList = getFocusableList(node);\n\n return {\n first: focusableList[0] || null,\n last: focusableList[focusableList.length - 1] || null,\n };\n};\n\nexport default getPrevNextFocus;\n"],"names":[],"mappings":"AAAA,MAAM,YACJ;AAGK,MAAM,mBAAmB,CAAC,SAC/B,MAAM,iBAAiB,SAAS,KAAK,CAAA;AAG1B,MAAA,mBAAmB,CAAC,WAAoB;AAC7C,QAAA,QAAQ,iBAAiB,QAAQ;AAEvC,QAAM,UAAU,MAAM;AACtB,MAAI,QAAQ;AACL,SAAA,QAAQ,SAAS,SAAS,GAAG;AAClC,QAAI,MAAM,KAAK,EAAE,OAAO,QAAQ;AAC9B;AAAA,IAAA;AAAA,EACF;AAEK,SAAA;AAAA,IACL,WAAW,MAAM,QAAQ,IAAI,UAAU,IAAI,IAAI,QAAQ,CAAC;AAAA,IACxD,WAAW,MAAM,QAAQ,IAAI,IAAI,UAAU,IAAI,QAAQ,CAAC;AAAA,EAC1D;AACF;AAGa,MAAA,uBAAuB,CAAC,SAAc;AAC3C,QAAA,gBAAgB,iBAAiB,IAAI;AAEpC,SAAA;AAAA,IACL,OAAO,cAAc,CAAC,KAAK;AAAA,IAC3B,MAAM,cAAc,cAAc,SAAS,CAAC,KAAK;AAAA,EACnD;AACF;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getComponentName.js","sources":["../../../src/utils/getComponentName.ts"],"sourcesContent":["export const getComponentName = (Component: React.FC) =>\n Component.displayName || Component.name || \"\";\n"],"names":[],"mappings":"AAAO,MAAM,mBAAmB,CAAC,cAC/B,UAAU,eAAe,UAAU,QAAQ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../src/utils/helpers.ts"],"sourcesContent":["export const uniqueId = (prefix = \"\") => {\n return `${prefix}${Math.random().toString(36).slice(2, 9)}`;\n};\n\nexport const range = (length: number, start = 0) => {\n return Array.from({ length: length - start }, (_, i) => i + start);\n};\n\nexport const capitalize = <T extends string>(string: T) => {\n return (string.charAt(0).toUpperCase() + string.slice(1)) as Capitalize<T>;\n};\n\nexport function isEqual(obj1: unknown, obj2: unknown) {\n if (!obj1 || !obj2 || typeof obj1 !== \"object\" || typeof obj2 !== \"object\") {\n return obj1 === obj2;\n }\n\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) return false;\n\n for (const key of keys1) {\n if (\n !isEqual(obj1[key as keyof typeof obj1], obj2[key as keyof typeof obj2])\n )\n return false;\n }\n\n return true;\n}\n"],"names":[],"mappings":"AAAa,MAAA,WAAW,CAAC,SAAS,OAAO;AACvC,SAAO,GAAG,MAAM,GAAG,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC;AAC3D;AAEO,MAAM,QAAQ,CAAC,QAAgB,QAAQ,MAAM;AAC3C,SAAA,MAAM,KAAK,EAAE,QAAQ,SAAS,MAAM,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK;AACnE;AAEa,MAAA,aAAa,CAAmB,WAAc;AACjD,SAAA,OAAO,OAAO,CAAC,EAAE,gBAAgB,OAAO,MAAM,CAAC;AACzD;AAEgB,SAAA,QAAQ,MAAe,MAAe;AAChD,MAAA,CAAC,QAAQ,CAAC,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,UAAU;AAC1E,WAAO,SAAS;AAAA,EAAA;AAGZ,QAAA,QAAQ,OAAO,KAAK,IAAI;AACxB,QAAA,QAAQ,OAAO,KAAK,IAAI;AAE9B,MAAI,MAAM,WAAW,MAAM,OAAe,QAAA;AAE1C,aAAW,OAAO,OAAO;AACvB,QACE,CAAC,QAAQ,KAAK,GAAwB,GAAG,KAAK,GAAwB,CAAC;AAEhE,aAAA;AAAA,EAAA;AAGJ,SAAA;AACT;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hexToRgbA.js","sources":["../../../src/utils/hexToRgbA.ts"],"sourcesContent":["import { alpha, hexToRgb } from \"@mui/material/styles\";\n\n/** @deprecated use `theme.alpha(color, factor)` instead */\nexport const hexToRgbA = (hex: string, factor = 0.8) =>\n alpha(hexToRgb(hex), factor);\n"],"names":[],"mappings":";AAGa,MAAA,YAAY,CAAC,KAAa,SAAS,QAC9C,MAAM,SAAS,GAAG,GAAG,MAAM;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"iconVariant.js","sources":["../../../src/utils/iconVariant.tsx"],"sourcesContent":["import { HvColorAny } from \"@hitachivantara/uikit-styles\";\n\nimport { HvIcon } from \"../icons\";\nimport type { HvCalloutVariant } from \"./Callout\";\n\nconst variantIconMap = {\n success: \"Success\",\n warning: \"Caution\",\n error: \"Fail\",\n info: \"Info\",\n} as const;\n\nexport const iconVariant = (variant: HvCalloutVariant, color?: HvColorAny) => {\n if (variant === \"default\" || variant === \"accent\") return null;\n\n return <HvIcon name={variantIconMap[variant]} color={color} />;\n};\n"],"names":[],"mappings":";;AAKA,MAAM,iBAAiB;AAAA,EACrB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AACR;AAEa,MAAA,cAAc,CAAC,SAA2B,UAAuB;AAC5E,MAAI,YAAY,aAAa,YAAY,SAAiB,QAAA;AAE1D,6BAAQ,QAAO,EAAA,MAAM,eAAe,OAAO,GAAG,OAAc;AAC9D;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyboardUtils.js","sources":["../../../src/utils/keyboardUtils.ts"],"sourcesContent":["/** Map of keys to key `code` @see https://mdn.io/event/code */\nconst keyboardCodes = {\n Backspace: \"Backspace\",\n Tab: \"Tab\",\n Enter: \"Enter\",\n Shift: \"ShiftLeft\",\n Ctrl: \"ControlLeft\",\n Alt: \"AltLeft\",\n Delete: \"Delete\",\n Esc: \"Escape\",\n ArrowLeft: \"ArrowLeft\",\n ArrowUp: \"ArrowUp\",\n ArrowRight: \"ArrowRight\",\n ArrowDown: \"ArrowDown\",\n Space: \"Space\",\n PageUp: \"PageUp\",\n PageDown: \"PageDown\",\n Home: \"Home\",\n End: \"End\",\n} as const;\n\ntype Key = keyof typeof keyboardCodes;\n\n/** Check whether a keyboard `event` is pressing the `keyCode` key. */\nexport const isKey = (event: any, keyCode: Key) => {\n return event?.code === keyCode || event?.code === keyboardCodes[keyCode];\n};\n\nexport const isOneOfKeys = (event: any, keys: Key[]) => {\n return keys.some((key) => isKey(event, key));\n};\n\nexport function isDeleteKey(event: React.KeyboardEvent) {\n return isOneOfKeys(event, [\"Backspace\", \"Delete\"]);\n}\n"],"names":[],"mappings":"AACA,MAAM,gBAAgB;AAAA,EACpB,WAAW;AAAA,EACX,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,WAAW;AAAA,EACX,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM;AAAA,EACN,KAAK;AACP;AAKa,MAAA,QAAQ,CAAC,OAAY,YAAiB;AACjD,SAAO,OAAO,SAAS,WAAW,OAAO,SAAS,cAAc,OAAO;AACzE;AAEa,MAAA,cAAc,CAAC,OAAY,SAAgB;AACtD,SAAO,KAAK,KAAK,CAAC,QAAQ,MAAM,OAAO,GAAG,CAAC;AAC7C;AAEO,SAAS,YAAY,OAA4B;AACtD,SAAO,YAAY,OAAO,CAAC,aAAa,QAAQ,CAAC;AACnD;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multiSelectionEventHandler.js","sources":["../../../src/utils/multiSelectionEventHandler.ts"],"sourcesContent":["const cycleThroughSelection = (\n selectedState: boolean[],\n index: number,\n allValues: any[],\n selectionCheck: any,\n) => {\n const newValue: any[] = [];\n selectedState.forEach((isSelected, i) => {\n if (i === index) {\n if (selectionCheck || !isSelected) {\n newValue.push(allValues[i]);\n }\n } else if (isSelected) {\n newValue.push(allValues[i]);\n }\n });\n\n return newValue;\n};\n\nexport const multiSelectionEventHandler = (\n evt: any,\n index: number,\n selectionAnchor: any,\n allValues: any[],\n selectedState: boolean[],\n selectionCheck: any,\n) => {\n let newValue: any[] = [];\n\n if (evt.nativeEvent.shiftKey) {\n if (selectionAnchor.current === undefined) {\n selectionAnchor.current = index;\n newValue.push(allValues[index]);\n } else {\n let selectionStart;\n let selectionEnd;\n if (selectionAnchor.current > index) {\n selectionStart = index;\n selectionEnd = selectionAnchor.current + 1;\n } else {\n selectionStart = selectionAnchor.current;\n selectionEnd = index + 1;\n }\n\n const selectedValues = allValues.slice(selectionStart, selectionEnd);\n\n newValue.push(...selectedValues);\n }\n } else if (evt.nativeEvent.metaKey) {\n selectionAnchor.current = index;\n\n newValue = cycleThroughSelection(\n selectedState,\n index,\n allValues,\n selectionCheck,\n );\n } else {\n selectionAnchor.current = index;\n\n newValue = cycleThroughSelection(\n selectedState,\n index,\n allValues,\n selectionCheck,\n );\n }\n\n return newValue;\n};\n"],"names":[],"mappings":"AAAA,MAAM,wBAAwB,CAC5B,eACA,OACA,WACA,mBACG;AACH,QAAM,WAAkB,CAAC;AACX,gBAAA,QAAQ,CAAC,YAAY,MAAM;AACvC,QAAI,MAAM,OAAO;AACX,UAAA,kBAAkB,CAAC,YAAY;AACxB,iBAAA,KAAK,UAAU,CAAC,CAAC;AAAA,MAAA;AAAA,eAEnB,YAAY;AACZ,eAAA,KAAK,UAAU,CAAC,CAAC;AAAA,IAAA;AAAA,EAC5B,CACD;AAEM,SAAA;AACT;AAEO,MAAM,6BAA6B,CACxC,KACA,OACA,iBACA,WACA,eACA,mBACG;AACH,MAAI,WAAkB,CAAC;AAEnB,MAAA,IAAI,YAAY,UAAU;AACxB,QAAA,gBAAgB,YAAY,QAAW;AACzC,sBAAgB,UAAU;AACjB,eAAA,KAAK,UAAU,KAAK,CAAC;AAAA,IAAA,OACzB;AACD,UAAA;AACA,UAAA;AACA,UAAA,gBAAgB,UAAU,OAAO;AAClB,yBAAA;AACjB,uBAAe,gBAAgB,UAAU;AAAA,MAAA,OACpC;AACL,yBAAiB,gBAAgB;AACjC,uBAAe,QAAQ;AAAA,MAAA;AAGzB,YAAM,iBAAiB,UAAU,MAAM,gBAAgB,YAAY;AAE1D,eAAA,KAAK,GAAG,cAAc;AAAA,IAAA;AAAA,EACjC,WACS,IAAI,YAAY,SAAS;AAClC,oBAAgB,UAAU;AAEf,eAAA;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EAAA,OACK;AACL,oBAAgB,UAAU;AAEf,eAAA;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EAAA;AAGK,SAAA;AACT;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.js","sources":["../../../src/utils/scroll.ts"],"sourcesContent":["import { HvScrollToOption } from \"../types/scroll\";\n\ntype ExtendedWindow = Window & typeof globalThis & HTMLElement;\n\nexport const getScrollTop = (\n c: HTMLElement | (Window & typeof globalThis) | null = window,\n) => {\n if (c === null) {\n return 0;\n }\n\n if (c === window) {\n return (\n window.scrollY ||\n window.pageYOffset ||\n document.documentElement?.scrollTop ||\n document.body.scrollTop\n );\n }\n\n return (c as ExtendedWindow).scrollTop;\n};\n\nexport const verticalScrollOffset = (\n t: HTMLElement | (Window & typeof globalThis),\n c: HTMLElement | (Window & typeof globalThis) = window,\n) => {\n if (c === window) {\n return (\n ((t as ExtendedWindow)?.getBoundingClientRect?.().top || 0) +\n (window.scrollY || window.pageYOffset)\n );\n }\n if (getComputedStyle(c as ExtendedWindow).position !== \"static\") {\n return (t as ExtendedWindow).offsetTop;\n }\n\n return (t as ExtendedWindow).offsetTop - (c as ExtendedWindow).offsetTop;\n};\n\nexport const horizontalScrollOffset = (\n t: HTMLElement,\n c: HTMLElement | (Window & typeof globalThis) = window,\n) => {\n if (c === window) {\n return (\n (t?.getBoundingClientRect?.().left || 0) +\n (window.scrollX || window.pageXOffset)\n );\n }\n if (getComputedStyle(c as ExtendedWindow).position !== \"static\") {\n return t.offsetLeft;\n }\n\n return t.offsetLeft - (c as ExtendedWindow).offsetLeft;\n};\n\nexport const scrollElement = (\n element: HTMLElement,\n container: HTMLElement | (Window & typeof globalThis) | null,\n offset = 0,\n direction?: \"row\" | \"column\",\n) => {\n if (container === null) {\n return;\n }\n\n if (direction === \"row\") {\n const elemLeft = horizontalScrollOffset(element, container);\n container?.scrollTo?.({\n left: elemLeft - offset,\n behavior: \"smooth\",\n });\n } else {\n const elemTop = verticalScrollOffset(element, container);\n container?.scrollTo?.({\n top: elemTop - offset,\n behavior: \"smooth\",\n });\n }\n element.focus({ preventScroll: true });\n};\n\nexport const isScrolledToTheBottom = (\n container: HTMLElement | (Window & typeof globalThis) | null,\n) => {\n if (container === null) {\n return false;\n }\n\n const containerScrollTop = getScrollTop(container);\n\n if (container === window) {\n // Accounting for cases where html/body are set to height:100%\n const scrollHeight =\n document.documentElement?.scrollHeight || document.body.scrollHeight;\n\n return containerScrollTop + window.innerHeight >= scrollHeight;\n }\n\n return (\n containerScrollTop + (container as ExtendedWindow).offsetHeight >=\n (container as ExtendedWindow).scrollHeight\n );\n};\n\nexport const findFirstVisibleElement = (\n container: HTMLElement | (Window & typeof globalThis) | null,\n options: HvScrollToOption[],\n offset: number,\n) => {\n if (container === null) {\n return -1;\n }\n const boundsTop = verticalScrollOffset(container);\n\n let i = 0;\n\n // Find index of first element whose top is still visible inside the container\n for (; i < options.length; i += 1) {\n const ele = document.getElementById(options[i].value);\n\n if (ele) {\n const elemTop = verticalScrollOffset(ele) - (options[i].offset || offset);\n\n if (elemTop > boundsTop) {\n break;\n }\n }\n }\n\n // Return the previous index, the element that last scrolled past the top\n return i - 1;\n};\n"],"names":[],"mappings":"AAIa,MAAA,eAAe,CAC1B,IAAuD,WACpD;AACH,MAAI,MAAM,MAAM;AACP,WAAA;AAAA,EAAA;AAGT,MAAI,MAAM,QAAQ;AAEd,WAAA,OAAO,WACP,OAAO,eACP,SAAS,iBAAiB,aAC1B,SAAS,KAAK;AAAA,EAAA;AAIlB,SAAQ,EAAqB;AAC/B;AAEO,MAAM,uBAAuB,CAClC,GACA,IAAgD,WAC7C;AACH,MAAI,MAAM,QAAQ;AAChB,YACI,GAAsB,wBAAwB,EAAE,OAAO,MACxD,OAAO,WAAW,OAAO;AAAA,EAAA;AAG9B,MAAI,iBAAiB,CAAmB,EAAE,aAAa,UAAU;AAC/D,WAAQ,EAAqB;AAAA,EAAA;AAGvB,SAAA,EAAqB,YAAa,EAAqB;AACjE;AAEO,MAAM,yBAAyB,CACpC,GACA,IAAgD,WAC7C;AACH,MAAI,MAAM,QAAQ;AAChB,YACG,GAAG,wBAAwB,EAAE,QAAQ,MACrC,OAAO,WAAW,OAAO;AAAA,EAAA;AAG9B,MAAI,iBAAiB,CAAmB,EAAE,aAAa,UAAU;AAC/D,WAAO,EAAE;AAAA,EAAA;AAGJ,SAAA,EAAE,aAAc,EAAqB;AAC9C;AAEO,MAAM,gBAAgB,CAC3B,SACA,WACA,SAAS,GACT,cACG;AACH,MAAI,cAAc,MAAM;AACtB;AAAA,EAAA;AAGF,MAAI,cAAc,OAAO;AACjB,UAAA,WAAW,uBAAuB,SAAS,SAAS;AAC1D,eAAW,WAAW;AAAA,MACpB,MAAM,WAAW;AAAA,MACjB,UAAU;AAAA,IAAA,CACX;AAAA,EAAA,OACI;AACC,UAAA,UAAU,qBAAqB,SAAS,SAAS;AACvD,eAAW,WAAW;AAAA,MACpB,KAAK,UAAU;AAAA,MACf,UAAU;AAAA,IAAA,CACX;AAAA,EAAA;AAEH,UAAQ,MAAM,EAAE,eAAe,KAAA,CAAM;AACvC;AAEa,MAAA,wBAAwB,CACnC,cACG;AACH,MAAI,cAAc,MAAM;AACf,WAAA;AAAA,EAAA;AAGH,QAAA,qBAAqB,aAAa,SAAS;AAEjD,MAAI,cAAc,QAAQ;AAExB,UAAM,eACJ,SAAS,iBAAiB,gBAAgB,SAAS,KAAK;AAEnD,WAAA,qBAAqB,OAAO,eAAe;AAAA,EAAA;AAIlD,SAAA,qBAAsB,UAA6B,gBAClD,UAA6B;AAElC;AAEO,MAAM,0BAA0B,CACrC,WACA,SACA,WACG;AACH,MAAI,cAAc,MAAM;AACf,WAAA;AAAA,EAAA;AAEH,QAAA,YAAY,qBAAqB,SAAS;AAEhD,MAAI,IAAI;AAGR,SAAO,IAAI,QAAQ,QAAQ,KAAK,GAAG;AACjC,UAAM,MAAM,SAAS,eAAe,QAAQ,CAAC,EAAE,KAAK;AAEpD,QAAI,KAAK;AACP,YAAM,UAAU,qBAAqB,GAAG,KAAK,QAAQ,CAAC,EAAE,UAAU;AAElE,UAAI,UAAU,WAAW;AACvB;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAIF,SAAO,IAAI;AACb;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setId.js","sources":["../../../src/utils/setId.ts"],"sourcesContent":["import { uniqueId } from \"./helpers\";\n\nexport const setId = (...args: any[]) =>\n args.some((arg) => arg == null) ? undefined : args.join(\"-\");\n\n/** @deprecated use `useUniqueId` instead */\nexport const setUid = (id: string, suffix: string) => {\n const uid = setId(id, suffix);\n return uid ? uniqueId(uid) : undefined;\n};\n"],"names":[],"mappings":";AAEO,MAAM,QAAQ,IAAI,SACvB,KAAK,KAAK,CAAC,QAAQ,OAAO,IAAI,IAAI,SAAY,KAAK,KAAK,GAAG;AAGhD,MAAA,SAAS,CAAC,IAAY,WAAmB;AAC9C,QAAA,MAAM,MAAM,IAAI,MAAM;AACrB,SAAA,MAAM,SAAS,GAAG,IAAI;AAC/B;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sizes.js","sources":["../../../src/utils/sizes.ts"],"sourcesContent":["export const decreaseSize = (size: string) => {\n switch (size) {\n case \"xl\":\n return \"L\";\n\n case \"l\":\n case \"lg\":\n return \"M\";\n\n case \"m\":\n case \"md\":\n return \"S\";\n\n case \"s\":\n case \"sm\":\n default:\n return \"XS\";\n }\n};\n\nexport const increaseSize = (size: string) => {\n switch (size) {\n case \"xs\":\n return \"S\";\n\n case \"s\":\n return \"M\";\n\n case \"m\":\n return \"L\";\n\n case \"l\":\n default:\n return \"XL\";\n }\n};\n"],"names":[],"mappings":"AAAa,MAAA,eAAe,CAAC,SAAiB;AAC5C,UAAQ,MAAM;AAAA,IACZ,KAAK;AACI,aAAA;AAAA,IAET,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,IAET,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,IAET,KAAK;AAAA,IACL,KAAK;AAAA,IACL;AACS,aAAA;AAAA,EAAA;AAEb;AAEa,MAAA,eAAe,CAAC,SAAiB;AAC5C,UAAQ,MAAM;AAAA,IACZ,KAAK;AACI,aAAA;AAAA,IAET,KAAK;AACI,aAAA;AAAA,IAET,KAAK;AACI,aAAA;AAAA,IAET,KAAK;AAAA,IACL;AACS,aAAA;AAAA,EAAA;AAEb;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sources":["../../../src/utils/theme.ts"],"sourcesContent":["import {\n HvThemeColorModeStructure,\n HvThemeStructure,\n themes,\n} from \"@hitachivantara/uikit-styles\";\n\nimport { HvCreateThemeProps, HvTheme } from \"../types/theme\";\nimport { getContainerElement, getElementById } from \"./document\";\n\n/**\n * Sets the element attributes and style for a theme and color mode.\n */\nexport const setElementAttrs = (\n themeName: string,\n modeName: string,\n colorScheme: string,\n themeRootId?: string,\n) => {\n const element = getContainerElement(themeRootId);\n\n if (element) {\n element.setAttribute(`data-theme`, themeName);\n element.setAttribute(`data-color-mode`, modeName);\n\n // set default styles for child components to inherit\n element.classList.add(`uikit-root-element`);\n element.style.colorScheme = colorScheme;\n }\n};\n\n/**\n * Applies customizations to a theme.\n */\nconst applyThemeCustomizations = (obj: any, customizations: any) => {\n const isObject = (val: any) =>\n val && typeof val === \"object\" && !Array.isArray(val);\n\n // Customized theme\n const customizedTheme = { ...obj };\n\n // Add new values to the theme or replace values\n Object.keys(customizations).forEach((key) => {\n if (customizedTheme[key]) {\n if (isObject(customizedTheme[key]) && isObject(customizations[key])) {\n customizedTheme[key] = applyThemeCustomizations(\n customizedTheme[key],\n customizations[key],\n );\n } else if (typeof customizedTheme[key] === typeof customizations[key]) {\n customizedTheme[key] = customizations[key];\n }\n } else {\n customizedTheme[key] = customizations[key];\n }\n });\n\n return customizedTheme;\n};\n\n/**\n * Creates a customized theme based on the base theme and customizations given.\n * For the color modes, the colors that are not defined will be replaced by the values from the dawn mode of the base theme.\n */\nexport const createTheme = (\n props: HvCreateThemeProps,\n): HvTheme | HvThemeStructure => {\n const {\n name,\n base = \"ds5\",\n inheritColorModes = true,\n ...customizations\n } = props;\n\n // Apply customizations to the base theme\n const customizedTheme: HvTheme | HvThemeStructure = customizations\n ? (applyThemeCustomizations(themes[base], customizations) as HvTheme)\n : { ...themes[base] };\n\n // Set theme name\n customizedTheme.name = name.trim();\n // Set theme base\n customizedTheme.base = base;\n\n // Fill new color modes with missing colors\n if (customizations) {\n Object.keys(customizedTheme.colors.modes).forEach((mode) => {\n // @ts-ignore\n if (!themes[base].colors.modes[mode]) {\n customizedTheme.colors.modes[mode] = {\n ...themes[base].colors.modes.dawn,\n ...(customizedTheme.colors.modes[mode] as Partial<\n HvThemeColorModeStructure & { [key: string]: string }\n >),\n };\n }\n });\n }\n\n // If the flag `inheritColorModes` is false and customizations were given for the color modes,\n // we're removing any color modes that might have been inherited\n if (!inheritColorModes && customizations.colors?.modes) {\n Object.keys(customizedTheme.colors.modes).forEach((mode) => {\n if (!Object.keys(customizations.colors?.modes || {}).includes(mode)) {\n delete customizedTheme.colors.modes[mode];\n }\n });\n }\n\n // Created theme\n return customizedTheme;\n};\n\n/**\n * Process the themes provided to the HvProvider:\n * - Cleans themes with the same name\n * - Returns the default if the list is empty (ds5)\n */\nexport const processThemes = (\n themesList?: (HvTheme | HvThemeStructure)[],\n): (HvTheme | HvThemeStructure)[] => {\n if (themesList && Array.isArray(themesList) && themesList.length > 0) {\n const list: (HvTheme | HvThemeStructure)[] = [];\n\n themesList.forEach((thm) => {\n const i: number = list.findIndex(\n (t) => t.name.trim() === thm.name.trim(),\n );\n\n if (i !== -1) {\n list.splice(i, 1);\n list.push(thm);\n } else {\n list.push(thm);\n }\n });\n\n // Cleaned themes\n return list;\n }\n // DS5\n return [themes.ds5];\n};\n\nexport const getVarValue = (cssVar: string, rootElementId?: string) => {\n const root = getElementById(rootElementId || \"hv-root\");\n if (!root) return undefined;\n\n return getComputedStyle(root)\n .getPropertyValue(cssVar.replace(\"var(\", \"\").replace(\")\", \"\"))\n .trim();\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSavedState.js","sources":["../../../src/utils/useSavedState.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport function useSavedState<T>(defaultState: T) {\n const [initialState] = useState<T>(defaultState);\n\n const [state, setState] = useState<T | undefined>(initialState);\n const [submittedState, setSubmittedState] = useState<T | undefined>(\n initialState,\n );\n\n const changeState = useCallback((value?: T, save = false) => {\n setState(value);\n if (save) setSubmittedState(value);\n }, []);\n\n const rollback = () => {\n setState(submittedState);\n };\n\n return [state, changeState, rollback, submittedState, initialState] as const;\n}\n"],"names":[],"mappings":";AAEO,SAAS,cAAiB,cAAiB;AAChD,QAAM,CAAC,YAAY,IAAI,SAAY,YAAY;AAE/C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,YAAY;AACxD,QAAA,CAAC,gBAAgB,iBAAiB,IAAI;AAAA,IAC1C;AAAA,EACF;AAEA,QAAM,cAAc,YAAY,CAAC,OAAW,OAAO,UAAU;AAC3D,aAAS,KAAK;AACV,QAAA,wBAAwB,KAAK;AAAA,EACnC,GAAG,EAAE;AAEL,QAAM,WAAW,MAAM;AACrB,aAAS,cAAc;AAAA,EACzB;AAEA,SAAO,CAAC,OAAO,aAAa,UAAU,gBAAgB,YAAY;AACpE;"}
|