@itwin/itwinui-react 2.0.0-dev.1 → 2.0.0-dev.3
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/README.md +10 -1
- package/cjs/core/Alert/Alert.js +8 -30
- package/cjs/core/Avatar/Avatar.js +10 -33
- package/cjs/core/AvatarGroup/AvatarGroup.js +18 -43
- package/cjs/core/Backdrop/Backdrop.js +6 -28
- package/cjs/core/Badge/Badge.js +13 -31
- package/cjs/core/Breadcrumbs/Breadcrumbs.js +14 -40
- package/cjs/core/ButtonGroup/ButtonGroup.js +10 -32
- package/cjs/core/Buttons/Button/Button.js +6 -28
- package/cjs/core/Buttons/DropdownButton/DropdownButton.js +14 -36
- package/cjs/core/Buttons/IconButton/IconButton.js +6 -28
- package/cjs/core/Buttons/IdeasButton/IdeasButton.js +6 -28
- package/cjs/core/Buttons/SplitButton/SplitButton.js +14 -36
- package/cjs/core/Carousel/Carousel.js +38 -63
- package/cjs/core/Carousel/CarouselContext.js +1 -1
- package/cjs/core/Carousel/CarouselDot.js +6 -28
- package/cjs/core/Carousel/CarouselDotsList.js +33 -60
- package/cjs/core/Carousel/CarouselNavigation.js +22 -44
- package/cjs/core/Carousel/CarouselSlide.js +12 -34
- package/cjs/core/Carousel/CarouselSlider.js +26 -51
- package/cjs/core/Checkbox/Checkbox.js +18 -42
- package/cjs/core/ColorPicker/ColorBuilder.js +51 -73
- package/cjs/core/ColorPicker/ColorInputPanel.js +64 -88
- package/cjs/core/ColorPicker/ColorPalette.js +26 -50
- package/cjs/core/ColorPicker/ColorPicker.js +25 -49
- package/cjs/core/ColorPicker/ColorPickerContext.js +3 -3
- package/cjs/core/ColorPicker/ColorSwatch.js +13 -34
- package/cjs/core/ComboBox/ComboBox.js +67 -93
- package/cjs/core/ComboBox/ComboBoxDropdown.d.ts +1 -1
- package/cjs/core/ComboBox/ComboBoxDropdown.js +13 -36
- package/cjs/core/ComboBox/ComboBoxEndIcon.js +12 -34
- package/cjs/core/ComboBox/ComboBoxInput.js +28 -50
- package/cjs/core/ComboBox/ComboBoxInputContainer.js +9 -31
- package/cjs/core/ComboBox/ComboBoxMenu.js +35 -60
- package/cjs/core/ComboBox/ComboBoxMenuItem.js +11 -33
- package/cjs/core/ComboBox/helpers.js +11 -19
- package/cjs/core/DatePicker/DatePicker.js +87 -111
- package/cjs/core/Dialog/Dialog.js +28 -48
- package/cjs/core/Dialog/DialogBackdrop.js +16 -35
- package/cjs/core/Dialog/DialogButtonBar.js +6 -28
- package/cjs/core/Dialog/DialogContent.js +6 -28
- package/cjs/core/Dialog/DialogContext.js +2 -2
- package/cjs/core/Dialog/DialogDragContext.js +6 -15
- package/cjs/core/Dialog/DialogMain.js +52 -59
- package/cjs/core/Dialog/DialogTitleBar.js +14 -36
- package/cjs/core/Dialog/DialogTitleBarTitle.js +6 -28
- package/cjs/core/DropdownMenu/DropdownMenu.js +14 -36
- package/cjs/core/ExpandableBlock/ExpandableBlock.js +12 -34
- package/cjs/core/Fieldset/Fieldset.js +9 -33
- package/cjs/core/FileUpload/FileUpload.js +13 -35
- package/cjs/core/FileUpload/FileUploadTemplate.js +4 -4
- package/cjs/core/Footer/Footer.js +21 -49
- package/cjs/core/Footer/FooterItem.js +6 -28
- package/cjs/core/Footer/FooterList.js +6 -28
- package/cjs/core/Footer/FooterSeparator.js +6 -28
- package/cjs/core/Header/Header.js +10 -32
- package/cjs/core/Header/HeaderBasicButton.js +6 -28
- package/cjs/core/Header/HeaderBreadcrumbs.js +9 -39
- package/cjs/core/Header/HeaderButton.js +22 -36
- package/cjs/core/Header/HeaderDropdownButton.js +14 -36
- package/cjs/core/Header/HeaderLogo.js +7 -29
- package/cjs/core/Header/HeaderSplitButton.js +13 -35
- package/cjs/core/InformationPanel/InformationPanel.js +15 -37
- package/cjs/core/InformationPanel/InformationPanelBody.js +6 -28
- package/cjs/core/InformationPanel/InformationPanelContent.js +6 -28
- package/cjs/core/InformationPanel/InformationPanelHeader.js +7 -29
- package/cjs/core/InformationPanel/InformationPanelWrapper.js +6 -28
- package/cjs/core/Input/Input.js +9 -31
- package/cjs/core/InputGroup/InputGroup.js +6 -28
- package/cjs/core/Label/Label.js +7 -29
- package/cjs/core/LabeledInput/LabeledInput.js +7 -29
- package/cjs/core/LabeledSelect/LabeledSelect.js +7 -29
- package/cjs/core/LabeledTextarea/LabeledTextarea.js +7 -29
- package/cjs/core/Menu/Menu.js +18 -40
- package/cjs/core/Menu/MenuDivider.js +6 -28
- package/cjs/core/Menu/MenuExtraContent.js +6 -28
- package/cjs/core/Menu/MenuItem.js +17 -39
- package/cjs/core/Menu/MenuItemSkeleton.js +11 -30
- package/cjs/core/Modal/Modal.js +12 -30
- package/cjs/core/Modal/ModalButtonBar.js +1 -1
- package/cjs/core/Modal/ModalContent.js +1 -1
- package/cjs/core/{ErrorPage → NonIdealState}/ErrorPage.d.ts +5 -1
- package/cjs/core/NonIdealState/ErrorPage.js +144 -0
- package/cjs/core/NonIdealState/NonIdealState.d.ts +46 -0
- package/cjs/core/NonIdealState/NonIdealState.js +32 -0
- package/{esm/core/ErrorPage → cjs/core/NonIdealState}/index.d.ts +3 -1
- package/cjs/core/{ErrorPage → NonIdealState}/index.js +4 -2
- package/cjs/core/ProgressIndicators/ProgressLinear/ProgressLinear.js +11 -34
- package/cjs/core/ProgressIndicators/ProgressRadial/ProgressRadial.js +13 -37
- package/cjs/core/Radio/Radio.js +10 -33
- package/cjs/core/RadioTiles/RadioTile.js +9 -31
- package/cjs/core/RadioTiles/RadioTileGroup.js +6 -28
- package/cjs/core/Select/Select.js +59 -72
- package/cjs/core/Select/SelectTag.js +6 -28
- package/cjs/core/SideNavigation/SideNavigation.js +14 -40
- package/cjs/core/SideNavigation/SidenavButton.js +8 -30
- package/cjs/core/SideNavigation/SidenavSubmenu.js +6 -28
- package/cjs/core/SideNavigation/SidenavSubmenuHeader.js +6 -28
- package/cjs/core/SkipToContentLink/SkipToContentLink.js +6 -28
- package/cjs/core/Slider/Slider.js +68 -96
- package/cjs/core/Slider/Thumb.js +20 -39
- package/cjs/core/Slider/Track.js +24 -44
- package/cjs/core/StatusMessage/StatusMessage.js +6 -7
- package/cjs/core/Stepper/Stepper.js +10 -34
- package/cjs/core/Stepper/StepperStep.js +15 -34
- package/cjs/core/Stepper/Wizard.js +6 -28
- package/cjs/core/Stepper/WorkflowDiagram.js +6 -28
- package/cjs/core/Stepper/WorkflowDiagramStep.js +6 -28
- package/cjs/core/Surface/Surface.js +11 -30
- package/cjs/core/Table/SubRowExpander.js +6 -6
- package/cjs/core/Table/Table.d.ts +19 -24
- package/cjs/core/Table/Table.js +189 -195
- package/cjs/core/Table/TableCell.js +29 -30
- package/cjs/core/Table/TablePaginator.js +52 -83
- package/cjs/core/Table/TableRowMemoized.d.ts +6 -10
- package/cjs/core/Table/TableRowMemoized.js +36 -60
- package/cjs/core/Table/actionHandlers/expandHandler.js +3 -3
- package/cjs/core/Table/actionHandlers/filterHandler.js +4 -4
- package/cjs/core/Table/actionHandlers/resizeHandler.js +13 -15
- package/cjs/core/Table/actionHandlers/selectHandler.js +35 -40
- package/cjs/core/Table/cells/DefaultCell.js +5 -27
- package/cjs/core/Table/cells/EditableCell.js +16 -40
- package/cjs/core/Table/columns/actionColumn.js +44 -62
- package/cjs/core/Table/columns/expanderColumn.d.ts +2 -5
- package/cjs/core/Table/columns/expanderColumn.js +12 -27
- package/cjs/core/Table/columns/selectionColumn.d.ts +2 -5
- package/cjs/core/Table/columns/selectionColumn.js +16 -37
- package/cjs/core/Table/filters/BaseFilter.js +6 -6
- package/cjs/core/Table/filters/DateRangeFilter/DatePickerInput.js +19 -41
- package/cjs/core/Table/filters/DateRangeFilter/DateRangeFilter.js +20 -31
- package/cjs/core/Table/filters/FilterButtonBar.js +8 -19
- package/cjs/core/Table/filters/FilterToggle.js +15 -37
- package/cjs/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +16 -29
- package/cjs/core/Table/filters/TextFilter/TextFilter.js +11 -11
- package/cjs/core/Table/filters/customFilterFunctions.js +11 -13
- package/cjs/core/Table/filters/defaultFilterFunctions.js +62 -64
- package/cjs/core/Table/filters/tableFilters.js +7 -18
- package/cjs/core/Table/hooks/useColumnDragAndDrop.js +41 -53
- package/cjs/core/Table/hooks/useExpanderCell.js +17 -33
- package/cjs/core/Table/hooks/useResizeColumns.js +197 -205
- package/cjs/core/Table/hooks/useScrollToRow.js +11 -12
- package/cjs/core/Table/hooks/useSelectionCell.js +7 -18
- package/cjs/core/Table/hooks/useStickyColumns.js +28 -33
- package/cjs/core/Table/hooks/useSubRowFiltering.js +37 -57
- package/cjs/core/Table/hooks/useSubRowSelection.js +10 -12
- package/cjs/core/Table/utils.js +15 -26
- package/cjs/core/Tabs/Tab.js +6 -28
- package/cjs/core/Tabs/Tabs.js +45 -67
- package/cjs/core/Tag/Tag.js +8 -30
- package/cjs/core/Tag/TagContainer.js +9 -32
- package/cjs/core/Textarea/Textarea.js +9 -31
- package/cjs/core/ThemeProvider/ThemeProvider.d.ts +1 -0
- package/cjs/core/ThemeProvider/ThemeProvider.js +16 -37
- package/cjs/core/Tile/Tile.js +29 -58
- package/cjs/core/TimePicker/TimePicker.js +59 -97
- package/cjs/core/Toast/Toast.js +45 -65
- package/cjs/core/Toast/ToastWrapper.js +13 -24
- package/cjs/core/Toast/Toaster.js +87 -137
- package/cjs/core/Toast/index.js +2 -2
- package/cjs/core/ToggleSwitch/ToggleSwitch.js +10 -32
- package/cjs/core/Tooltip/Tooltip.js +6 -28
- package/cjs/core/Tree/Tree.js +58 -80
- package/cjs/core/Tree/TreeContext.js +3 -3
- package/cjs/core/Tree/TreeNode.js +21 -43
- package/cjs/core/Tree/TreeNodeExpander.js +7 -29
- package/cjs/core/Typography/Anchor/Anchor.js +5 -28
- package/cjs/core/Typography/Blockquote/Blockquote.js +6 -28
- package/cjs/core/Typography/Body/Body.js +7 -29
- package/cjs/core/Typography/Code/Code.js +6 -28
- package/cjs/core/Typography/Headline/Headline.js +6 -28
- package/cjs/core/Typography/Kbd/Kbd.js +6 -28
- package/cjs/core/Typography/Leading/Leading.js +6 -28
- package/cjs/core/Typography/Small/Small.js +6 -28
- package/cjs/core/Typography/Subheading/Subheading.js +6 -28
- package/cjs/core/Typography/Text/Text.js +11 -34
- package/cjs/core/Typography/Title/Title.js +6 -28
- package/cjs/core/index.d.ts +2 -2
- package/cjs/core/index.js +6 -5
- package/cjs/core/utils/color/ColorValue.js +146 -156
- package/cjs/core/utils/components/FocusTrap.js +14 -14
- package/cjs/core/utils/components/InputContainer.js +12 -36
- package/cjs/core/utils/components/MiddleTextTruncation.js +15 -31
- package/cjs/core/utils/components/Popover.d.ts +1 -1
- package/cjs/core/utils/components/Popover.js +57 -60
- package/cjs/core/utils/components/Resizer.js +51 -51
- package/cjs/core/utils/components/VirtualScroll.js +72 -89
- package/cjs/core/utils/components/VisuallyHidden.js +6 -28
- package/cjs/core/utils/components/WithCSSTransition.d.ts +2 -2
- package/cjs/core/utils/components/WithCSSTransition.js +18 -40
- package/cjs/core/utils/functions/colors.js +7 -7
- package/cjs/core/utils/functions/dom.js +7 -8
- package/cjs/core/utils/functions/focusable.js +11 -15
- package/cjs/core/utils/functions/numbers.js +5 -6
- package/cjs/core/utils/functions/styles.js +3 -3
- package/cjs/core/utils/hooks/useContainerWidth.js +9 -13
- package/cjs/core/utils/hooks/useDragAndDrop.js +32 -33
- package/cjs/core/utils/hooks/useEventListener.js +7 -7
- package/cjs/core/utils/hooks/useIntersection.js +9 -12
- package/cjs/core/utils/hooks/useIsomorphicLayoutEffect.js +1 -1
- package/cjs/core/utils/hooks/useLatestRef.js +4 -4
- package/cjs/core/utils/hooks/useMediaQuery.js +9 -12
- package/cjs/core/utils/hooks/useMergedRefs.js +6 -23
- package/cjs/core/utils/hooks/useOverflow.js +26 -33
- package/cjs/core/utils/hooks/useResizeObserver.js +6 -9
- package/cjs/core/utils/hooks/useSafeContext.js +4 -4
- package/cjs/core/utils/hooks/useTheme.js +18 -20
- package/cjs/core/utils/icons/StatusIconMap.js +9 -20
- package/cjs/core/utils/icons/SvgCalendar.js +3 -14
- package/cjs/core/utils/icons/SvgCaretDownSmall.js +3 -14
- package/cjs/core/utils/icons/SvgCaretRightSmall.js +3 -14
- package/cjs/core/utils/icons/SvgCaretUpSmall.js +3 -14
- package/cjs/core/utils/icons/SvgCheckmark.js +3 -14
- package/cjs/core/utils/icons/SvgCheckmarkSmall.js +3 -14
- package/cjs/core/utils/icons/SvgChevronLeft.js +3 -14
- package/cjs/core/utils/icons/SvgChevronLeftDouble.js +3 -14
- package/cjs/core/utils/icons/SvgChevronRight.js +3 -14
- package/cjs/core/utils/icons/SvgChevronRightDouble.js +3 -14
- package/cjs/core/utils/icons/SvgClose.js +3 -14
- package/cjs/core/utils/icons/SvgCloseSmall.js +3 -14
- package/cjs/core/utils/icons/SvgColumnManager.js +3 -14
- package/cjs/core/utils/icons/SvgFilter.js +3 -14
- package/cjs/core/utils/icons/SvgFilterHollow.js +3 -14
- package/cjs/core/utils/icons/SvgImportantSmall.js +3 -14
- package/cjs/core/utils/icons/SvgInfoCircular.js +3 -14
- package/cjs/core/utils/icons/SvgMore.js +3 -14
- package/cjs/core/utils/icons/SvgMoreVertical.js +3 -14
- package/cjs/core/utils/icons/SvgNew.js +3 -14
- package/cjs/core/utils/icons/SvgSmileyHappy.js +3 -14
- package/cjs/core/utils/icons/SvgSortDown.js +3 -14
- package/cjs/core/utils/icons/SvgSortUp.js +3 -14
- package/cjs/core/utils/icons/SvgStatusError.js +3 -14
- package/cjs/core/utils/icons/SvgStatusSuccess.js +3 -14
- package/cjs/core/utils/icons/SvgStatusWarning.js +3 -14
- package/cjs/core/utils/icons/SvgSwap.js +3 -14
- package/cjs/core/utils/icons/SvgUpload.js +3 -14
- package/cjs/types/react-table-config.d.ts +1 -1
- package/esm/core/Alert/Alert.js +5 -27
- package/esm/core/Avatar/Avatar.js +9 -32
- package/esm/core/AvatarGroup/AvatarGroup.js +16 -41
- package/esm/core/Backdrop/Backdrop.js +3 -25
- package/esm/core/Badge/Badge.js +10 -28
- package/esm/core/Breadcrumbs/Breadcrumbs.js +11 -37
- package/esm/core/ButtonGroup/ButtonGroup.js +7 -29
- package/esm/core/Buttons/Button/Button.js +3 -25
- package/esm/core/Buttons/DropdownButton/DropdownButton.js +9 -31
- package/esm/core/Buttons/IconButton/IconButton.js +3 -25
- package/esm/core/Buttons/IdeasButton/IdeasButton.js +3 -25
- package/esm/core/Buttons/SplitButton/SplitButton.js +8 -30
- package/esm/core/Carousel/Carousel.js +29 -54
- package/esm/core/Carousel/CarouselContext.js +1 -1
- package/esm/core/Carousel/CarouselDot.js +4 -26
- package/esm/core/Carousel/CarouselDotsList.js +28 -55
- package/esm/core/Carousel/CarouselNavigation.js +16 -38
- package/esm/core/Carousel/CarouselSlide.js +8 -30
- package/esm/core/Carousel/CarouselSlider.js +22 -47
- package/esm/core/Checkbox/Checkbox.js +14 -38
- package/esm/core/ColorPicker/ColorBuilder.js +46 -68
- package/esm/core/ColorPicker/ColorInputPanel.js +58 -82
- package/esm/core/ColorPicker/ColorPalette.js +20 -44
- package/esm/core/ColorPicker/ColorPicker.js +21 -45
- package/esm/core/ColorPicker/ColorPickerContext.js +3 -3
- package/esm/core/ColorPicker/ColorSwatch.js +9 -30
- package/esm/core/ComboBox/ComboBox.js +55 -81
- package/esm/core/ComboBox/ComboBoxDropdown.d.ts +1 -1
- package/esm/core/ComboBox/ComboBoxDropdown.js +10 -33
- package/esm/core/ComboBox/ComboBoxEndIcon.js +8 -30
- package/esm/core/ComboBox/ComboBoxInput.js +24 -46
- package/esm/core/ComboBox/ComboBoxInputContainer.js +5 -27
- package/esm/core/ComboBox/ComboBoxMenu.js +29 -54
- package/esm/core/ComboBox/ComboBoxMenuItem.js +7 -29
- package/esm/core/ComboBox/helpers.js +13 -21
- package/esm/core/DatePicker/DatePicker.js +82 -106
- package/esm/core/Dialog/Dialog.js +19 -39
- package/esm/core/Dialog/DialogBackdrop.js +11 -30
- package/esm/core/Dialog/DialogButtonBar.js +3 -25
- package/esm/core/Dialog/DialogContent.js +3 -25
- package/esm/core/Dialog/DialogContext.js +2 -2
- package/esm/core/Dialog/DialogDragContext.js +6 -15
- package/esm/core/Dialog/DialogMain.js +45 -52
- package/esm/core/Dialog/DialogTitleBar.js +7 -29
- package/esm/core/Dialog/DialogTitleBarTitle.js +3 -25
- package/esm/core/DropdownMenu/DropdownMenu.js +11 -33
- package/esm/core/ExpandableBlock/ExpandableBlock.js +9 -31
- package/esm/core/Fieldset/Fieldset.js +6 -30
- package/esm/core/FileUpload/FileUpload.js +10 -32
- package/esm/core/FileUpload/FileUploadTemplate.js +2 -2
- package/esm/core/Footer/Footer.js +16 -44
- package/esm/core/Footer/FooterItem.js +3 -25
- package/esm/core/Footer/FooterList.js +3 -25
- package/esm/core/Footer/FooterSeparator.js +3 -25
- package/esm/core/Header/Header.js +5 -27
- package/esm/core/Header/HeaderBasicButton.js +3 -25
- package/esm/core/Header/HeaderBreadcrumbs.js +7 -37
- package/esm/core/Header/HeaderButton.js +16 -30
- package/esm/core/Header/HeaderDropdownButton.js +9 -31
- package/esm/core/Header/HeaderLogo.js +4 -26
- package/esm/core/Header/HeaderSplitButton.js +8 -30
- package/esm/core/InformationPanel/InformationPanel.js +12 -34
- package/esm/core/InformationPanel/InformationPanelBody.js +3 -25
- package/esm/core/InformationPanel/InformationPanelContent.js +3 -25
- package/esm/core/InformationPanel/InformationPanelHeader.js +3 -25
- package/esm/core/InformationPanel/InformationPanelWrapper.js +3 -25
- package/esm/core/Input/Input.js +6 -28
- package/esm/core/InputGroup/InputGroup.js +4 -26
- package/esm/core/Label/Label.js +4 -26
- package/esm/core/LabeledInput/LabeledInput.js +4 -26
- package/esm/core/LabeledSelect/LabeledSelect.js +4 -26
- package/esm/core/LabeledTextarea/LabeledTextarea.js +4 -26
- package/esm/core/Menu/Menu.js +15 -37
- package/esm/core/Menu/MenuDivider.js +3 -25
- package/esm/core/Menu/MenuExtraContent.js +3 -25
- package/esm/core/Menu/MenuItem.js +13 -35
- package/esm/core/Menu/MenuItemSkeleton.js +8 -27
- package/esm/core/Modal/Modal.js +8 -26
- package/esm/core/Modal/ModalButtonBar.js +1 -1
- package/esm/core/Modal/ModalContent.js +1 -1
- package/esm/core/{ErrorPage → NonIdealState}/ErrorPage.d.ts +5 -1
- package/esm/core/NonIdealState/ErrorPage.js +137 -0
- package/esm/core/NonIdealState/NonIdealState.d.ts +46 -0
- package/esm/core/NonIdealState/NonIdealState.js +25 -0
- package/{cjs/core/ErrorPage → esm/core/NonIdealState}/index.d.ts +3 -1
- package/esm/core/{ErrorPage → NonIdealState}/index.js +2 -1
- package/esm/core/ProgressIndicators/ProgressLinear/ProgressLinear.js +8 -31
- package/esm/core/ProgressIndicators/ProgressRadial/ProgressRadial.js +10 -34
- package/esm/core/Radio/Radio.js +7 -30
- package/esm/core/RadioTiles/RadioTile.js +6 -28
- package/esm/core/RadioTiles/RadioTileGroup.js +3 -25
- package/esm/core/Select/Select.js +53 -66
- package/esm/core/Select/SelectTag.js +3 -25
- package/esm/core/SideNavigation/SideNavigation.js +9 -35
- package/esm/core/SideNavigation/SidenavButton.js +4 -26
- package/esm/core/SideNavigation/SidenavSubmenu.js +3 -25
- package/esm/core/SideNavigation/SidenavSubmenuHeader.js +3 -25
- package/esm/core/SkipToContentLink/SkipToContentLink.js +3 -25
- package/esm/core/Slider/Slider.js +63 -91
- package/esm/core/Slider/Thumb.js +17 -36
- package/esm/core/Slider/Track.js +23 -43
- package/esm/core/StatusMessage/StatusMessage.js +3 -4
- package/esm/core/Stepper/Stepper.js +7 -31
- package/esm/core/Stepper/StepperStep.js +12 -31
- package/esm/core/Stepper/Wizard.js +3 -25
- package/esm/core/Stepper/WorkflowDiagram.js +3 -25
- package/esm/core/Stepper/WorkflowDiagramStep.js +3 -25
- package/esm/core/Surface/Surface.js +8 -27
- package/esm/core/Table/SubRowExpander.js +3 -3
- package/esm/core/Table/Table.d.ts +19 -24
- package/esm/core/Table/Table.js +177 -183
- package/esm/core/Table/TableCell.js +23 -24
- package/esm/core/Table/TablePaginator.js +46 -77
- package/esm/core/Table/TableRowMemoized.d.ts +6 -10
- package/esm/core/Table/TableRowMemoized.js +32 -56
- package/esm/core/Table/actionHandlers/expandHandler.js +3 -3
- package/esm/core/Table/actionHandlers/filterHandler.js +4 -4
- package/esm/core/Table/actionHandlers/resizeHandler.js +13 -15
- package/esm/core/Table/actionHandlers/selectHandler.js +35 -40
- package/esm/core/Table/cells/DefaultCell.js +3 -25
- package/esm/core/Table/cells/EditableCell.js +14 -38
- package/esm/core/Table/columns/actionColumn.js +34 -52
- package/esm/core/Table/columns/expanderColumn.d.ts +2 -5
- package/esm/core/Table/columns/expanderColumn.js +9 -24
- package/esm/core/Table/columns/selectionColumn.d.ts +2 -5
- package/esm/core/Table/columns/selectionColumn.js +14 -35
- package/esm/core/Table/filters/BaseFilter.js +3 -3
- package/esm/core/Table/filters/DateRangeFilter/DatePickerInput.js +14 -36
- package/esm/core/Table/filters/DateRangeFilter/DateRangeFilter.js +15 -26
- package/esm/core/Table/filters/FilterButtonBar.js +4 -15
- package/esm/core/Table/filters/FilterToggle.js +11 -33
- package/esm/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +11 -24
- package/esm/core/Table/filters/TextFilter/TextFilter.js +6 -6
- package/esm/core/Table/filters/customFilterFunctions.js +12 -14
- package/esm/core/Table/filters/defaultFilterFunctions.js +63 -65
- package/esm/core/Table/filters/tableFilters.js +4 -15
- package/esm/core/Table/hooks/useColumnDragAndDrop.js +40 -52
- package/esm/core/Table/hooks/useExpanderCell.js +15 -31
- package/esm/core/Table/hooks/useResizeColumns.js +196 -204
- package/esm/core/Table/hooks/useScrollToRow.js +10 -11
- package/esm/core/Table/hooks/useSelectionCell.js +6 -17
- package/esm/core/Table/hooks/useStickyColumns.js +27 -32
- package/esm/core/Table/hooks/useSubRowFiltering.js +35 -55
- package/esm/core/Table/hooks/useSubRowSelection.js +9 -11
- package/esm/core/Table/utils.js +15 -26
- package/esm/core/Tabs/Tab.js +3 -25
- package/esm/core/Tabs/Tabs.js +41 -63
- package/esm/core/Tag/Tag.js +4 -26
- package/esm/core/Tag/TagContainer.js +6 -29
- package/esm/core/Textarea/Textarea.js +6 -28
- package/esm/core/ThemeProvider/ThemeProvider.d.ts +1 -0
- package/esm/core/ThemeProvider/ThemeProvider.js +15 -36
- package/esm/core/Tile/Tile.js +23 -52
- package/esm/core/TimePicker/TimePicker.js +56 -94
- package/esm/core/Toast/Toast.js +41 -61
- package/esm/core/Toast/ToastWrapper.js +10 -21
- package/esm/core/Toast/Toaster.js +83 -134
- package/esm/core/Toast/index.js +1 -1
- package/esm/core/ToggleSwitch/ToggleSwitch.js +7 -29
- package/esm/core/Tooltip/Tooltip.js +3 -25
- package/esm/core/Tree/Tree.js +54 -76
- package/esm/core/Tree/TreeContext.js +3 -3
- package/esm/core/Tree/TreeNode.js +16 -38
- package/esm/core/Tree/TreeNodeExpander.js +3 -25
- package/esm/core/Typography/Anchor/Anchor.js +2 -25
- package/esm/core/Typography/Blockquote/Blockquote.js +3 -25
- package/esm/core/Typography/Body/Body.js +4 -26
- package/esm/core/Typography/Code/Code.js +3 -25
- package/esm/core/Typography/Headline/Headline.js +3 -25
- package/esm/core/Typography/Kbd/Kbd.js +4 -26
- package/esm/core/Typography/Leading/Leading.js +3 -25
- package/esm/core/Typography/Small/Small.js +3 -25
- package/esm/core/Typography/Subheading/Subheading.js +3 -25
- package/esm/core/Typography/Text/Text.js +8 -31
- package/esm/core/Typography/Title/Title.js +3 -25
- package/esm/core/index.d.ts +2 -2
- package/esm/core/index.js +1 -1
- package/esm/core/utils/color/ColorValue.js +145 -156
- package/esm/core/utils/components/FocusTrap.js +11 -11
- package/esm/core/utils/components/InputContainer.js +10 -34
- package/esm/core/utils/components/MiddleTextTruncation.js +13 -29
- package/esm/core/utils/components/Popover.d.ts +1 -1
- package/esm/core/utils/components/Popover.js +54 -57
- package/esm/core/utils/components/Resizer.js +49 -49
- package/esm/core/utils/components/VirtualScroll.js +69 -86
- package/esm/core/utils/components/VisuallyHidden.js +3 -25
- package/esm/core/utils/components/WithCSSTransition.d.ts +2 -2
- package/esm/core/utils/components/WithCSSTransition.js +16 -38
- package/esm/core/utils/functions/colors.js +8 -8
- package/esm/core/utils/functions/dom.js +7 -8
- package/esm/core/utils/functions/focusable.js +11 -15
- package/esm/core/utils/functions/numbers.js +5 -6
- package/esm/core/utils/functions/styles.js +3 -3
- package/esm/core/utils/hooks/useContainerWidth.js +6 -10
- package/esm/core/utils/hooks/useDragAndDrop.js +28 -29
- package/esm/core/utils/hooks/useEventListener.js +6 -6
- package/esm/core/utils/hooks/useIntersection.js +7 -10
- package/esm/core/utils/hooks/useIsomorphicLayoutEffect.js +1 -1
- package/esm/core/utils/hooks/useLatestRef.js +3 -3
- package/esm/core/utils/hooks/useMediaQuery.js +6 -9
- package/esm/core/utils/hooks/useMergedRefs.js +5 -22
- package/esm/core/utils/hooks/useOverflow.js +23 -30
- package/esm/core/utils/hooks/useResizeObserver.js +4 -7
- package/esm/core/utils/hooks/useSafeContext.js +3 -3
- package/esm/core/utils/hooks/useTheme.js +14 -16
- package/esm/core/utils/icons/StatusIconMap.js +5 -16
- package/esm/core/utils/icons/SvgCalendar.js +2 -13
- package/esm/core/utils/icons/SvgCaretDownSmall.js +2 -13
- package/esm/core/utils/icons/SvgCaretRightSmall.js +2 -13
- package/esm/core/utils/icons/SvgCaretUpSmall.js +2 -13
- package/esm/core/utils/icons/SvgCheckmark.js +2 -13
- package/esm/core/utils/icons/SvgCheckmarkSmall.js +2 -13
- package/esm/core/utils/icons/SvgChevronLeft.js +2 -13
- package/esm/core/utils/icons/SvgChevronLeftDouble.js +2 -13
- package/esm/core/utils/icons/SvgChevronRight.js +2 -13
- package/esm/core/utils/icons/SvgChevronRightDouble.js +2 -13
- package/esm/core/utils/icons/SvgClose.js +2 -13
- package/esm/core/utils/icons/SvgCloseSmall.js +2 -13
- package/esm/core/utils/icons/SvgColumnManager.js +2 -13
- package/esm/core/utils/icons/SvgFilter.js +2 -13
- package/esm/core/utils/icons/SvgFilterHollow.js +2 -13
- package/esm/core/utils/icons/SvgImportantSmall.js +2 -13
- package/esm/core/utils/icons/SvgInfoCircular.js +2 -13
- package/esm/core/utils/icons/SvgMore.js +2 -13
- package/esm/core/utils/icons/SvgMoreVertical.js +2 -13
- package/esm/core/utils/icons/SvgNew.js +2 -13
- package/esm/core/utils/icons/SvgSmileyHappy.js +2 -13
- package/esm/core/utils/icons/SvgSortDown.js +2 -13
- package/esm/core/utils/icons/SvgSortUp.js +2 -13
- package/esm/core/utils/icons/SvgStatusError.js +2 -13
- package/esm/core/utils/icons/SvgStatusSuccess.js +2 -13
- package/esm/core/utils/icons/SvgStatusWarning.js +2 -13
- package/esm/core/utils/icons/SvgSwap.js +2 -13
- package/esm/core/utils/icons/SvgUpload.js +2 -13
- package/esm/types/react-table-config.d.ts +1 -1
- package/package.json +22 -5
- package/cjs/core/ErrorPage/ErrorPage.js +0 -168
- package/esm/core/ErrorPage/ErrorPage.js +0 -161
|
@@ -1,26 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
-
var t = {};
|
|
15
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
-
t[p] = s[p];
|
|
17
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
-
t[p[i]] = s[p[i]];
|
|
21
|
-
}
|
|
22
|
-
return t;
|
|
23
|
-
};
|
|
24
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
25
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
4
|
};
|
|
@@ -30,11 +8,10 @@ exports.useVirtualization = exports.VirtualScroll = void 0;
|
|
|
30
8
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
31
9
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
32
10
|
*--------------------------------------------------------------------------------------------*/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (ownerDocument === void 0) { ownerDocument = document; }
|
|
11
|
+
const react_1 = __importDefault(require("react"));
|
|
12
|
+
const hooks_1 = require("../hooks");
|
|
13
|
+
const useResizeObserver_1 = require("../hooks/useResizeObserver");
|
|
14
|
+
const getScrollableParent = (element, ownerDocument = document) => {
|
|
38
15
|
if (!element || element === ownerDocument.body) {
|
|
39
16
|
return ownerDocument.body;
|
|
40
17
|
}
|
|
@@ -42,38 +19,38 @@ var getScrollableParent = function (element, ownerDocument) {
|
|
|
42
19
|
? element
|
|
43
20
|
: getScrollableParent(element.parentElement, ownerDocument);
|
|
44
21
|
};
|
|
45
|
-
|
|
22
|
+
const isElementScrollable = (element) => {
|
|
46
23
|
return /(auto|scroll|overlay)/.test(getElementStyle(element, 'overflow') +
|
|
47
24
|
getElementStyle(element, 'overflow-y'));
|
|
48
25
|
};
|
|
49
|
-
|
|
26
|
+
const getElementStyle = (element, prop) => {
|
|
50
27
|
return getComputedStyle(element, null).getPropertyValue(prop);
|
|
51
28
|
};
|
|
52
|
-
|
|
29
|
+
const getElementHeight = (element) => {
|
|
53
30
|
var _a;
|
|
54
31
|
return (_a = element === null || element === void 0 ? void 0 : element.getBoundingClientRect().height) !== null && _a !== void 0 ? _a : 0;
|
|
55
32
|
};
|
|
56
|
-
|
|
33
|
+
const getElementHeightWithMargins = (element) => {
|
|
57
34
|
if (!element) {
|
|
58
35
|
return undefined;
|
|
59
36
|
}
|
|
60
|
-
|
|
37
|
+
const margin = parseFloat(getElementStyle(element, 'margin-top')) +
|
|
61
38
|
parseFloat(getElementStyle(element, 'margin-bottom'));
|
|
62
39
|
return getElementHeight(element) + (isNaN(margin) ? 0 : margin);
|
|
63
40
|
};
|
|
64
|
-
|
|
41
|
+
const getNumberOfNodesInHeight = (childHeight, totalHeight) => {
|
|
65
42
|
if (!childHeight) {
|
|
66
43
|
return 0;
|
|
67
44
|
}
|
|
68
45
|
return Math.floor(totalHeight / childHeight);
|
|
69
46
|
};
|
|
70
|
-
|
|
47
|
+
const getTranslateValue = (childHeight, startIndex) => {
|
|
71
48
|
if (startIndex > 0) {
|
|
72
49
|
return childHeight * startIndex;
|
|
73
50
|
}
|
|
74
51
|
return 0;
|
|
75
52
|
};
|
|
76
|
-
|
|
53
|
+
const getVisibleNodeCount = (childHeight, startIndex, childrenLength, scrollContainer) => {
|
|
77
54
|
return Math.min(childrenLength - startIndex, getNumberOfNodesInHeight(childHeight, getElementHeight(scrollContainer)));
|
|
78
55
|
};
|
|
79
56
|
/**
|
|
@@ -97,10 +74,10 @@ var getVisibleNodeCount = function (childHeight, startIndex, childrenLength, scr
|
|
|
97
74
|
* />
|
|
98
75
|
* @private
|
|
99
76
|
*/
|
|
100
|
-
exports.VirtualScroll = react_1.default.forwardRef(
|
|
101
|
-
|
|
102
|
-
return (react_1.default.createElement("div",
|
|
103
|
-
react_1.default.createElement("div",
|
|
77
|
+
exports.VirtualScroll = react_1.default.forwardRef((props, ref) => {
|
|
78
|
+
const { innerProps, outerProps, visibleChildren } = (0, exports.useVirtualization)(props);
|
|
79
|
+
return (react_1.default.createElement("div", { ...outerProps, ref: ref },
|
|
80
|
+
react_1.default.createElement("div", { ...innerProps }, visibleChildren)));
|
|
104
81
|
});
|
|
105
82
|
/**
|
|
106
83
|
* `useVirtualization` is used for efficiently rendering only the visible rows from a large list.
|
|
@@ -122,49 +99,48 @@ exports.VirtualScroll = react_1.default.forwardRef(function (props, ref) {
|
|
|
122
99
|
* );
|
|
123
100
|
* @private
|
|
124
101
|
*/
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
102
|
+
const useVirtualization = (props) => {
|
|
103
|
+
const { itemsLength, itemRenderer, bufferSize = 10, scrollToIndex, style, ...rest } = props;
|
|
104
|
+
const [startNode, setStartNode] = react_1.default.useState(0);
|
|
105
|
+
const [visibleNodeCount, setVisibleNodeCount] = react_1.default.useState(0);
|
|
106
|
+
const scrollContainer = react_1.default.useRef();
|
|
107
|
+
const parentRef = react_1.default.useRef(null);
|
|
108
|
+
const childHeight = react_1.default.useRef({ first: 0, middle: 0, last: 0 });
|
|
109
|
+
const onScrollRef = react_1.default.useRef();
|
|
133
110
|
// Used only to recalculate on resize
|
|
134
|
-
|
|
135
|
-
|
|
111
|
+
const [scrollContainerHeight, setScrollContainerHeight] = react_1.default.useState(0);
|
|
112
|
+
const visibleIndex = react_1.default.useRef({ start: 0, end: 0 });
|
|
136
113
|
// Used to mark when scroll container has height (updated by resize observer)
|
|
137
114
|
// because before that calculations are not right
|
|
138
|
-
|
|
139
|
-
|
|
115
|
+
const [isMounted, setIsMounted] = react_1.default.useState(false);
|
|
116
|
+
const getScrollableContainer = () => {
|
|
140
117
|
var _a, _b;
|
|
141
118
|
return (_a = scrollContainer.current) !== null && _a !== void 0 ? _a : (_b = parentRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.scrollingElement;
|
|
142
119
|
};
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
for (
|
|
120
|
+
const visibleChildren = react_1.default.useMemo(() => {
|
|
121
|
+
const arr = [];
|
|
122
|
+
const endIndex = Math.min(itemsLength, startNode + visibleNodeCount + bufferSize * 2);
|
|
123
|
+
for (let i = startNode; i < endIndex; i++) {
|
|
147
124
|
arr.push(itemRenderer(i));
|
|
148
125
|
}
|
|
149
126
|
return arr;
|
|
150
127
|
}, [itemsLength, itemRenderer, bufferSize, startNode, visibleNodeCount]);
|
|
151
|
-
|
|
128
|
+
const updateChildHeight = react_1.default.useCallback(() => {
|
|
152
129
|
var _a, _b, _c, _d, _e, _f;
|
|
153
130
|
if (!parentRef.current || !visibleChildren.length) {
|
|
154
131
|
return;
|
|
155
132
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
133
|
+
const firstChild = parentRef.current.children.item(0);
|
|
134
|
+
const secondChild = parentRef.current.children.item(1);
|
|
135
|
+
const lastChild = parentRef.current.children.item(parentRef.current.children.length - 1);
|
|
136
|
+
const firstChildHeight = Number((_b = (_a = getElementHeightWithMargins(firstChild)) === null || _a === void 0 ? void 0 : _a.toFixed(2)) !== null && _b !== void 0 ? _b : 0);
|
|
160
137
|
childHeight.current = {
|
|
161
138
|
first: firstChildHeight,
|
|
162
139
|
middle: Number((_d = (_c = getElementHeightWithMargins(secondChild)) === null || _c === void 0 ? void 0 : _c.toFixed(2)) !== null && _d !== void 0 ? _d : firstChildHeight),
|
|
163
140
|
last: Number((_f = (_e = getElementHeightWithMargins(lastChild)) === null || _e === void 0 ? void 0 : _e.toFixed(2)) !== null && _f !== void 0 ? _f : firstChildHeight),
|
|
164
141
|
};
|
|
165
142
|
}, [visibleChildren.length]);
|
|
166
|
-
|
|
167
|
-
var height = _a.height;
|
|
143
|
+
const onResize = react_1.default.useCallback(({ height }) => {
|
|
168
144
|
// Initial value returned by resize observer is 0
|
|
169
145
|
// So wait for the next one
|
|
170
146
|
if (height > 0) {
|
|
@@ -173,44 +149,44 @@ var useVirtualization = function (props) {
|
|
|
173
149
|
setScrollContainerHeight(height);
|
|
174
150
|
updateChildHeight();
|
|
175
151
|
}, [updateChildHeight]);
|
|
176
|
-
|
|
152
|
+
const [resizeRef, resizeObserver] = (0, useResizeObserver_1.useResizeObserver)(onResize);
|
|
177
153
|
// Find scrollable parent
|
|
178
154
|
// Needed only on init
|
|
179
|
-
react_1.default.useLayoutEffect(
|
|
155
|
+
react_1.default.useLayoutEffect(() => {
|
|
180
156
|
var _a;
|
|
181
|
-
|
|
157
|
+
const scrollableParent = getScrollableParent(parentRef.current, (_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument);
|
|
182
158
|
scrollContainer.current = scrollableParent;
|
|
183
159
|
resizeRef(scrollableParent);
|
|
184
160
|
}, [resizeRef]);
|
|
185
161
|
// Stop watching resize, when virtual scroll is unmounted
|
|
186
|
-
react_1.default.useLayoutEffect(
|
|
187
|
-
return
|
|
162
|
+
react_1.default.useLayoutEffect(() => {
|
|
163
|
+
return () => resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
|
|
188
164
|
}, [resizeObserver]);
|
|
189
165
|
// Get child height when children available
|
|
190
|
-
react_1.default.useLayoutEffect(
|
|
191
|
-
|
|
192
|
-
|
|
166
|
+
react_1.default.useLayoutEffect(() => updateChildHeight(), [updateChildHeight]);
|
|
167
|
+
const updateVirtualScroll = react_1.default.useCallback(() => {
|
|
168
|
+
const scrollableContainer = getScrollableContainer();
|
|
193
169
|
if (!scrollableContainer) {
|
|
194
170
|
return;
|
|
195
171
|
}
|
|
196
|
-
|
|
197
|
-
|
|
172
|
+
const start = getNumberOfNodesInHeight(childHeight.current.middle, Math.round(scrollableContainer.scrollTop));
|
|
173
|
+
const visibleNodes = getVisibleNodeCount(childHeight.current.middle, start, itemsLength, scrollableContainer);
|
|
198
174
|
// If there are less items at the end than buffer size
|
|
199
175
|
// show more items at the start.
|
|
200
176
|
// Have boundaries for edge cases, e.g. 1 item length
|
|
201
|
-
|
|
177
|
+
const startIndex = Math.min(Math.max(0, start - bufferSize), Math.max(0, itemsLength - bufferSize * 2 - visibleNodes));
|
|
202
178
|
visibleIndex.current = { start: start, end: start + visibleNodes };
|
|
203
179
|
setStartNode(startIndex);
|
|
204
180
|
setVisibleNodeCount(visibleNodes);
|
|
205
181
|
if (!parentRef.current) {
|
|
206
182
|
return;
|
|
207
183
|
}
|
|
208
|
-
parentRef.current.style.transform =
|
|
184
|
+
parentRef.current.style.transform = `translateY(${getTranslateValue(childHeight.current.middle, startIndex)}px)`;
|
|
209
185
|
}, [bufferSize, itemsLength]);
|
|
210
|
-
|
|
186
|
+
const onScroll = react_1.default.useCallback(() => {
|
|
211
187
|
updateVirtualScroll();
|
|
212
188
|
}, [updateVirtualScroll]);
|
|
213
|
-
|
|
189
|
+
const removeScrollListener = react_1.default.useCallback(() => {
|
|
214
190
|
var _a, _b;
|
|
215
191
|
if (!onScrollRef.current) {
|
|
216
192
|
return;
|
|
@@ -221,7 +197,7 @@ var useVirtualization = function (props) {
|
|
|
221
197
|
: scrollContainer.current.removeEventListener('scroll', onScrollRef.current);
|
|
222
198
|
}, []);
|
|
223
199
|
// Add event listener to the scrollable container.
|
|
224
|
-
react_1.default.useLayoutEffect(
|
|
200
|
+
react_1.default.useLayoutEffect(() => {
|
|
225
201
|
var _a, _b;
|
|
226
202
|
removeScrollListener();
|
|
227
203
|
onScrollRef.current = onScroll;
|
|
@@ -234,18 +210,18 @@ var useVirtualization = function (props) {
|
|
|
234
210
|
}
|
|
235
211
|
return removeScrollListener;
|
|
236
212
|
}, [onScroll, removeScrollListener]);
|
|
237
|
-
react_1.default.useLayoutEffect(
|
|
213
|
+
react_1.default.useLayoutEffect(() => {
|
|
238
214
|
if (!isMounted) {
|
|
239
215
|
return;
|
|
240
216
|
}
|
|
241
|
-
|
|
217
|
+
const scrollableContainer = getScrollableContainer();
|
|
242
218
|
if (!scrollableContainer || scrollToIndex == null) {
|
|
243
219
|
return;
|
|
244
220
|
}
|
|
245
221
|
// if `scrollToIndex` is not visible, scroll to it
|
|
246
222
|
if (scrollToIndex > visibleIndex.current.end ||
|
|
247
223
|
scrollToIndex < visibleIndex.current.start) {
|
|
248
|
-
|
|
224
|
+
const indexDiff = scrollToIndex > visibleIndex.current.end
|
|
249
225
|
? scrollToIndex - visibleIndex.current.end
|
|
250
226
|
: scrollToIndex - visibleIndex.current.start;
|
|
251
227
|
if (scrollToIndex === 0) {
|
|
@@ -264,8 +240,8 @@ var useVirtualization = function (props) {
|
|
|
264
240
|
// if `scrollToIndex` is the first visible node
|
|
265
241
|
// ensure it is fully visible
|
|
266
242
|
if (scrollToIndex === visibleIndex.current.start) {
|
|
267
|
-
|
|
268
|
-
|
|
243
|
+
const roundedScrollTop = Math.round(scrollableContainer.scrollTop);
|
|
244
|
+
const diff = roundedScrollTop % childHeight.current.middle;
|
|
269
245
|
diff > 0 &&
|
|
270
246
|
scrollableContainer.scrollTo({
|
|
271
247
|
top: roundedScrollTop - diff,
|
|
@@ -275,10 +251,10 @@ var useVirtualization = function (props) {
|
|
|
275
251
|
// if `scrollToIndex` is the last visible node
|
|
276
252
|
// ensure it is fully visible
|
|
277
253
|
if (scrollToIndex === visibleIndex.current.end) {
|
|
278
|
-
|
|
254
|
+
const diff = (scrollableContainer.offsetHeight - childHeight.current.first) %
|
|
279
255
|
childHeight.current.middle;
|
|
280
|
-
|
|
281
|
-
|
|
256
|
+
const roundedScrollTop = Math.ceil(scrollableContainer.scrollTop);
|
|
257
|
+
const scrollTopMod = roundedScrollTop % childHeight.current.middle;
|
|
282
258
|
if (diff > 0 && scrollTopMod === 0) {
|
|
283
259
|
scrollableContainer.scrollTo({
|
|
284
260
|
top: roundedScrollTop + childHeight.current.middle - diff,
|
|
@@ -286,23 +262,30 @@ var useVirtualization = function (props) {
|
|
|
286
262
|
}
|
|
287
263
|
}
|
|
288
264
|
}, [scrollToIndex, isMounted]);
|
|
289
|
-
react_1.default.useLayoutEffect(
|
|
265
|
+
react_1.default.useLayoutEffect(() => {
|
|
290
266
|
if (!scrollContainerHeight) {
|
|
291
267
|
return;
|
|
292
268
|
}
|
|
293
269
|
updateVirtualScroll();
|
|
294
270
|
}, [scrollContainerHeight, updateVirtualScroll]);
|
|
295
271
|
return {
|
|
296
|
-
outerProps:
|
|
272
|
+
outerProps: {
|
|
273
|
+
style: {
|
|
274
|
+
minHeight: itemsLength > 1
|
|
297
275
|
? Math.max(itemsLength - 2, 0) * childHeight.current.middle +
|
|
298
276
|
childHeight.current.first +
|
|
299
277
|
childHeight.current.last
|
|
300
|
-
: childHeight.current.middle,
|
|
278
|
+
: childHeight.current.middle,
|
|
279
|
+
minWidth: '100%',
|
|
280
|
+
...style,
|
|
281
|
+
},
|
|
282
|
+
...rest,
|
|
283
|
+
},
|
|
301
284
|
innerProps: {
|
|
302
285
|
style: { willChange: 'transform' },
|
|
303
286
|
ref: (0, hooks_1.mergeRefs)(parentRef), // convert object ref to callback ref for better types
|
|
304
287
|
},
|
|
305
|
-
visibleChildren
|
|
288
|
+
visibleChildren,
|
|
306
289
|
};
|
|
307
290
|
};
|
|
308
291
|
exports.useVirtualization = useVirtualization;
|
|
@@ -1,26 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
-
var t = {};
|
|
15
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
-
t[p] = s[p];
|
|
17
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
-
t[p[i]] = s[p[i]];
|
|
21
|
-
}
|
|
22
|
-
return t;
|
|
23
|
-
};
|
|
24
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
25
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
4
|
};
|
|
@@ -30,16 +8,16 @@ exports.VisuallyHidden = void 0;
|
|
|
30
8
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
31
9
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
32
10
|
*--------------------------------------------------------------------------------------------*/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
11
|
+
const react_1 = __importDefault(require("react"));
|
|
12
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
13
|
+
const hooks_1 = require("../hooks");
|
|
36
14
|
require("@itwin/itwinui-css/css/utils.css");
|
|
37
15
|
/**
|
|
38
16
|
* Hides content visually but is still accessible to screen readers.
|
|
39
17
|
*/
|
|
40
|
-
exports.VisuallyHidden = react_1.default.forwardRef(
|
|
41
|
-
|
|
18
|
+
exports.VisuallyHidden = react_1.default.forwardRef((props, ref) => {
|
|
19
|
+
const { className, ...rest } = props;
|
|
42
20
|
(0, hooks_1.useTheme)();
|
|
43
|
-
return (react_1.default.createElement("div",
|
|
21
|
+
return (react_1.default.createElement("div", { className: (0, classnames_1.default)('iui-visually-hidden', className), ref: ref, ...rest }));
|
|
44
22
|
});
|
|
45
23
|
exports.default = exports.VisuallyHidden;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CSSTransitionProps } from 'react-transition-group/CSSTransition';
|
|
3
|
-
export declare const WithCSSTransition: (props: Partial<CSSTransitionProps
|
|
3
|
+
export declare const WithCSSTransition: (props: Partial<CSSTransitionProps> & {
|
|
4
4
|
children: JSX.Element;
|
|
5
|
-
dimension?:
|
|
5
|
+
dimension?: 'height' | 'width';
|
|
6
6
|
}) => JSX.Element;
|
|
7
7
|
export default WithCSSTransition;
|
|
@@ -1,26 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
-
var t = {};
|
|
15
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
-
t[p] = s[p];
|
|
17
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
-
t[p[i]] = s[p[i]];
|
|
21
|
-
}
|
|
22
|
-
return t;
|
|
23
|
-
};
|
|
24
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
25
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
4
|
};
|
|
@@ -30,27 +8,27 @@ exports.WithCSSTransition = void 0;
|
|
|
30
8
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
31
9
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
32
10
|
*--------------------------------------------------------------------------------------------*/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return (react_1.default.createElement(react_transition_group_1.CSSTransition,
|
|
40
|
-
node.style[
|
|
11
|
+
const react_1 = __importDefault(require("react"));
|
|
12
|
+
const react_transition_group_1 = require("react-transition-group");
|
|
13
|
+
const WithCSSTransition = (props) => {
|
|
14
|
+
const { in: visible, dimension = 'height', children, ...rest } = props;
|
|
15
|
+
const expandedSize = react_1.default.useRef(0);
|
|
16
|
+
const dimensionCamelCase = dimension === 'height' ? 'Height' : 'Width';
|
|
17
|
+
return (react_1.default.createElement(react_transition_group_1.CSSTransition, { in: visible, timeout: 200, unmountOnExit: true, onEnter: (node) => {
|
|
18
|
+
node.style[`min${dimensionCamelCase}`] = 'initial';
|
|
41
19
|
node.style[dimension] = '0px';
|
|
42
|
-
}, onEntering:
|
|
43
|
-
node.style[dimension] =
|
|
44
|
-
}, onEntered:
|
|
45
|
-
node.style[
|
|
20
|
+
}, onEntering: (node) => {
|
|
21
|
+
node.style[dimension] = `${expandedSize.current}px`;
|
|
22
|
+
}, onEntered: (node) => {
|
|
23
|
+
node.style[`min${dimensionCamelCase}`] = '';
|
|
46
24
|
node.style[dimension] = '';
|
|
47
|
-
}, onExit:
|
|
48
|
-
node.style[dimension] =
|
|
49
|
-
}, onExiting:
|
|
50
|
-
node.style[
|
|
25
|
+
}, onExit: (node) => {
|
|
26
|
+
node.style[dimension] = `${expandedSize.current}px`;
|
|
27
|
+
}, onExiting: (node) => {
|
|
28
|
+
node.style[`min${dimensionCamelCase}`] = 'initial';
|
|
51
29
|
node.style[dimension] = '0px';
|
|
52
|
-
}, classNames: 'iui'
|
|
53
|
-
ref:
|
|
30
|
+
}, classNames: 'iui', ...rest }, react_1.default.cloneElement(children, {
|
|
31
|
+
ref: (el) => {
|
|
54
32
|
if (el) {
|
|
55
33
|
expandedSize.current = el.getBoundingClientRect()[dimension];
|
|
56
34
|
}
|
|
@@ -19,11 +19,11 @@ exports.SoftBackgrounds = {
|
|
|
19
19
|
oak: 'var(--iui-color-background-oak)',
|
|
20
20
|
};
|
|
21
21
|
/** Returns true if a string value is one of the SoftBackgrounds keys */
|
|
22
|
-
|
|
22
|
+
const isSoftBackground = (value) => {
|
|
23
23
|
return Object.keys(exports.SoftBackgrounds).includes(value);
|
|
24
24
|
};
|
|
25
25
|
exports.isSoftBackground = isSoftBackground;
|
|
26
|
-
|
|
26
|
+
const USER_COLORS = [
|
|
27
27
|
'#6AB9EC',
|
|
28
28
|
'#B1C854',
|
|
29
29
|
'#F7706C',
|
|
@@ -40,11 +40,11 @@ var USER_COLORS = [
|
|
|
40
40
|
* Generate color from user name or email.
|
|
41
41
|
* Recommended to use for `backgroundColor` in `Avatar` component.
|
|
42
42
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
for (
|
|
47
|
-
|
|
43
|
+
const getUserColor = (emailOrName) => {
|
|
44
|
+
const normalizedString = emailOrName.trim().toLowerCase();
|
|
45
|
+
let hash = 0;
|
|
46
|
+
for (let i = 0; i < normalizedString.length; i++) {
|
|
47
|
+
const charCode = normalizedString.charCodeAt(i);
|
|
48
48
|
hash = (hash + charCode) % USER_COLORS.length;
|
|
49
49
|
}
|
|
50
50
|
return USER_COLORS[hash];
|
|
@@ -12,15 +12,14 @@ exports.getWindow = exports.getDocument = exports.getContainer = void 0;
|
|
|
12
12
|
* @param containerId id of the container to find or create
|
|
13
13
|
* @param ownerDocument Can be changed if the container should be in a different document (e.g. in popup).
|
|
14
14
|
*/
|
|
15
|
-
|
|
16
|
-
var _a;
|
|
17
|
-
|
|
18
|
-
var container = (_a = ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.getElementById(containerId)) !== null && _a !== void 0 ? _a : undefined;
|
|
15
|
+
const getContainer = (containerId, ownerDocument = (0, exports.getDocument)()) => {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
let container = (_a = ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.getElementById(containerId)) !== null && _a !== void 0 ? _a : undefined;
|
|
19
18
|
if (container == null && !!ownerDocument) {
|
|
20
19
|
container = ownerDocument.createElement('div');
|
|
21
20
|
container.setAttribute('id', containerId);
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const root = (_b = ownerDocument.querySelector('.iui-root')) !== null && _b !== void 0 ? _b : ownerDocument.body;
|
|
22
|
+
root.appendChild(container);
|
|
24
23
|
}
|
|
25
24
|
return container;
|
|
26
25
|
};
|
|
@@ -29,7 +28,7 @@ exports.getContainer = getContainer;
|
|
|
29
28
|
* Get document if it is defined.
|
|
30
29
|
* Used to support SSR/SSG applications.
|
|
31
30
|
*/
|
|
32
|
-
|
|
31
|
+
const getDocument = () => {
|
|
33
32
|
return typeof document === 'undefined' ? undefined : document;
|
|
34
33
|
};
|
|
35
34
|
exports.getDocument = getDocument;
|
|
@@ -37,7 +36,7 @@ exports.getDocument = getDocument;
|
|
|
37
36
|
* Get window if it is defined.
|
|
38
37
|
* Used to support SSR/SSG applications.
|
|
39
38
|
*/
|
|
40
|
-
|
|
39
|
+
const getWindow = () => {
|
|
41
40
|
return typeof window === 'undefined' ? undefined : window;
|
|
42
41
|
};
|
|
43
42
|
exports.getWindow = getWindow;
|
|
@@ -5,34 +5,30 @@
|
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.getFocusableElements = exports.getTabbableElements = void 0;
|
|
8
|
-
|
|
8
|
+
const tabbableElementsSelector = 'a[href], button, input, textarea, select, details, audio[controls], video[controls], [contenteditable]:not([contenteditable="false"]), [tabindex]:not([tabindex="-1"])';
|
|
9
9
|
/**
|
|
10
10
|
* Return array of tabbable elements in the container.
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
const getTabbableElements = (container) => {
|
|
13
13
|
if (!container) {
|
|
14
14
|
return [];
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
return Array.from(elements).filter(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
el.getAttribute('aria-disabled') !== 'true';
|
|
21
|
-
});
|
|
16
|
+
const elements = container.querySelectorAll(tabbableElementsSelector);
|
|
17
|
+
return Array.from(elements).filter((el) => !el.hasAttribute('disabled') &&
|
|
18
|
+
!el.classList.contains('iui-disabled') &&
|
|
19
|
+
el.getAttribute('aria-disabled') !== 'true');
|
|
22
20
|
};
|
|
23
21
|
exports.getTabbableElements = getTabbableElements;
|
|
24
22
|
/**
|
|
25
23
|
* Return array of focusable elements in the container.
|
|
26
24
|
*/
|
|
27
|
-
|
|
25
|
+
const getFocusableElements = (container) => {
|
|
28
26
|
if (!container) {
|
|
29
27
|
return [];
|
|
30
28
|
}
|
|
31
|
-
|
|
32
|
-
return Array.from(elements).filter(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
el.getAttribute('aria-disabled') !== 'true';
|
|
36
|
-
});
|
|
29
|
+
const elements = container.querySelectorAll(`${tabbableElementsSelector}, [tabindex="-1"]`);
|
|
30
|
+
return Array.from(elements).filter((el) => !el.hasAttribute('disabled') &&
|
|
31
|
+
!el.classList.contains('iui-disabled') &&
|
|
32
|
+
el.getAttribute('aria-disabled') !== 'true');
|
|
37
33
|
};
|
|
38
34
|
exports.getFocusableElements = getFocusableElements;
|
|
@@ -8,18 +8,17 @@ exports.getRandomValue = exports.getBoundedValue = void 0;
|
|
|
8
8
|
/**
|
|
9
9
|
* Return input value bounded by specified range.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
const getBoundedValue = (val, min, max) => {
|
|
12
12
|
return Math.min(max, Math.max(min, val));
|
|
13
13
|
};
|
|
14
14
|
exports.getBoundedValue = getBoundedValue;
|
|
15
15
|
/**
|
|
16
16
|
* Returns a random value of a given length containing `A-Za-z0-9_-` symbols.
|
|
17
17
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
for (var i = 0; i < length; i++) {
|
|
18
|
+
const getRandomValue = (length = 21) => {
|
|
19
|
+
const alphabet = `_-0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`;
|
|
20
|
+
let id = '';
|
|
21
|
+
for (let i = 0; i < length; i++) {
|
|
23
22
|
id += alphabet[(Math.random() * 64) | 0];
|
|
24
23
|
}
|
|
25
24
|
return id;
|
|
@@ -10,12 +10,12 @@ exports.getTranslateValues = void 0;
|
|
|
10
10
|
* @param element HTML element you want to get translate value of
|
|
11
11
|
* @returns Translate values in pixels in a array `[translateX, translateY]`
|
|
12
12
|
*/
|
|
13
|
-
|
|
13
|
+
const getTranslateValues = (element) => {
|
|
14
14
|
if (!element) {
|
|
15
15
|
return [];
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
const transformValue = getComputedStyle(element).getPropertyValue('transform');
|
|
18
|
+
const matrix = new DOMMatrix(transformValue);
|
|
19
19
|
return [matrix.m41, matrix.m42];
|
|
20
20
|
};
|
|
21
21
|
exports.getTranslateValues = getTranslateValues;
|