@react-md/core 1.0.0-next.14 → 1.0.0-next.15
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/.eslintrc.cjs +8 -0
- package/.turbo/turbo-build.log +22 -22
- package/.turbo/turbo-lint.log +3 -3
- package/.turbo/turbo-test.log +4000 -3982
- package/.turbo/turbo-typecheck.log +1 -23
- package/CHANGELOG.md +13 -0
- package/coverage/clover.xml +477 -410
- package/coverage/coverage-final.json +5 -4
- package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +81 -15
- package/coverage/lcov-report/autocomplete/AutocompleteClearButton.tsx.html +262 -0
- package/coverage/lcov-report/autocomplete/FilterAutocompleteOptions.tsx.html +364 -0
- package/coverage/lcov-report/autocomplete/index.html +48 -18
- package/coverage/lcov-report/card/Card.tsx.html +349 -0
- package/coverage/lcov-report/card/CardSubtitle.tsx.html +265 -0
- package/coverage/lcov-report/card/index.html +146 -0
- package/coverage/lcov-report/card/styles.ts.html +682 -0
- package/coverage/lcov-report/form/Option.tsx.html +727 -0
- package/coverage/lcov-report/form/index.html +131 -0
- package/coverage/lcov-report/form/useListboxProvider.ts.html +253 -0
- package/coverage/lcov-report/index.html +22 -37
- package/coverage/lcov-report/src/card/Card.tsx.html +349 -0
- package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +277 -0
- package/coverage/lcov-report/src/card/index.html +146 -0
- package/coverage/lcov-report/src/card/styles.ts.html +682 -0
- package/coverage/lcov-report/src/cssUtils.ts.html +787 -0
- package/coverage/lcov-report/src/index.html +116 -0
- package/coverage/lcov-report/src/transition/index.html +116 -0
- package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +766 -0
- package/coverage/lcov-report/transition/index.html +116 -0
- package/coverage/lcov-report/transition/useCSSTransition.ts.html +766 -0
- package/coverage/lcov.info +572 -456
- package/dist/CoreProviders.js.map +1 -1
- package/dist/NoSsr.js.map +1 -1
- package/dist/RootHtml.js.map +1 -1
- package/dist/SsrProvider.js.map +1 -1
- package/dist/app-bar/AppBar.js.map +1 -1
- package/dist/app-bar/AppBarTitle.d.ts +8 -4
- package/dist/app-bar/AppBarTitle.js +3 -2
- package/dist/app-bar/AppBarTitle.js.map +1 -1
- package/dist/autocomplete/Autocomplete.js.map +1 -1
- package/dist/autocomplete/AutocompleteCircularProgress.js.map +1 -1
- package/dist/autocomplete/AutocompleteDropdownButton.js.map +1 -1
- package/dist/autocomplete/FilterAutocompleteOptions.js.map +1 -1
- package/dist/autocomplete/autocompleteStyles.js.map +1 -1
- package/dist/autocomplete/defaults.d.ts +2 -2
- package/dist/autocomplete/defaults.js +3 -3
- package/dist/autocomplete/defaults.js.map +1 -1
- package/dist/autocomplete/types.js.map +1 -1
- package/dist/avatar/Avatar.d.ts +1 -2
- package/dist/avatar/Avatar.js +1 -2
- package/dist/avatar/Avatar.js.map +1 -1
- package/dist/avatar/styles.js.map +1 -1
- package/dist/badge/Badge.js.map +1 -1
- package/dist/box/Box.js.map +1 -1
- package/dist/box/styles.js.map +1 -1
- package/dist/button/AsyncButton.js.map +1 -1
- package/dist/button/Button.js.map +1 -1
- package/dist/button/ButtonUnstyled.js.map +1 -1
- package/dist/button/FloatingActionButton.js.map +1 -1
- package/dist/button/TooltippedButton.js.map +1 -1
- package/dist/button/buttonStyles.js.map +1 -1
- package/dist/button/buttonUnstyledStyles.js.map +1 -1
- package/dist/card/Card.d.ts +2 -1
- package/dist/card/Card.js.map +1 -1
- package/dist/card/CardContent.js.map +1 -1
- package/dist/card/CardFooter.js.map +1 -1
- package/dist/card/CardHeader.js.map +1 -1
- package/dist/card/CardSubtitle.d.ts +6 -0
- package/dist/card/CardSubtitle.js +2 -1
- package/dist/card/CardSubtitle.js.map +1 -1
- package/dist/card/CardTitle.js.map +1 -1
- package/dist/card/ClickableCard.js.map +1 -1
- package/dist/card/styles.js +2 -4
- package/dist/card/styles.js.map +1 -1
- package/dist/chip/Chip.js.map +1 -1
- package/dist/chip/styles.js.map +1 -1
- package/dist/cssUtils.d.ts +1 -1
- package/dist/cssUtils.js.map +1 -1
- package/dist/delegateEvent.js.map +1 -1
- package/dist/dialog/Dialog.js.map +1 -1
- package/dist/dialog/DialogContainer.js.map +1 -1
- package/dist/dialog/DialogContent.js.map +1 -1
- package/dist/dialog/DialogFooter.js.map +1 -1
- package/dist/dialog/DialogHeader.js.map +1 -1
- package/dist/dialog/DialogTitle.js.map +1 -1
- package/dist/dialog/FixedDialog.js.map +1 -1
- package/dist/dialog/NestedDialogProvider.js.map +1 -1
- package/dist/dialog/styles.js.map +1 -1
- package/dist/divider/Divider.js.map +1 -1
- package/dist/divider/styles.js.map +1 -1
- package/dist/draggable/useDraggable.js.map +1 -1
- package/dist/draggable/utils.js.map +1 -1
- package/dist/expansion-panel/ExpansionList.js.map +1 -1
- package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
- package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
- package/dist/expansion-panel/useExpansionList.js.map +1 -1
- package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
- package/dist/focus/useFocusContainer.js.map +1 -1
- package/dist/focus/utils.js.map +1 -1
- package/dist/form/Checkbox.js.map +1 -1
- package/dist/form/Fieldset.js.map +1 -1
- package/dist/form/FileInput.js.map +1 -1
- package/dist/form/Form.js.map +1 -1
- package/dist/form/FormMessage.js.map +1 -1
- package/dist/form/FormMessageContainer.js.map +1 -1
- package/dist/form/FormMessageCounter.js.map +1 -1
- package/dist/form/InputToggle.js.map +1 -1
- package/dist/form/InputToggleIcon.js.map +1 -1
- package/dist/form/Label.js.map +1 -1
- package/dist/form/Legend.js.map +1 -1
- package/dist/form/MenuItemCheckbox.js.map +1 -1
- package/dist/form/MenuItemFileInput.js.map +1 -1
- package/dist/form/MenuItemInputToggle.js.map +1 -1
- package/dist/form/MenuItemRadio.js.map +1 -1
- package/dist/form/MenuItemSwitch.js.map +1 -1
- package/dist/form/MenuItemTextField.js.map +1 -1
- package/dist/form/NativeSelect.js.map +1 -1
- package/dist/form/OptGroup.js.map +1 -1
- package/dist/form/Option.js.map +1 -1
- package/dist/form/Password.js.map +1 -1
- package/dist/form/Radio.js.map +1 -1
- package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
- package/dist/form/Select.js.map +1 -1
- package/dist/form/SelectedOption.js.map +1 -1
- package/dist/form/Slider.js.map +1 -1
- package/dist/form/SliderContainer.js.map +1 -1
- package/dist/form/SliderMark.js.map +1 -1
- package/dist/form/SliderMarkLabel.js.map +1 -1
- package/dist/form/SliderThumb.js.map +1 -1
- package/dist/form/SliderTrack.js.map +1 -1
- package/dist/form/SliderValueMarks.js.map +1 -1
- package/dist/form/SliderValueTooltip.js.map +1 -1
- package/dist/form/Switch.js.map +1 -1
- package/dist/form/SwitchTrack.js.map +1 -1
- package/dist/form/TextArea.js.map +1 -1
- package/dist/form/TextField.js.map +1 -1
- package/dist/form/TextFieldAddon.js.map +1 -1
- package/dist/form/TextFieldContainer.js.map +1 -1
- package/dist/form/fileUtils.js.map +1 -1
- package/dist/form/formConfig.js.map +1 -1
- package/dist/form/formMessageStyles.js.map +1 -1
- package/dist/form/inputToggleStyles.js.map +1 -1
- package/dist/form/menuItemInputToggleStyles.js.map +1 -1
- package/dist/form/nativeSelectStyles.js.map +1 -1
- package/dist/form/optionStyles.js.map +1 -1
- package/dist/form/passwordStyles.js.map +1 -1
- package/dist/form/selectStyles.js.map +1 -1
- package/dist/form/selectUtils.js.map +1 -1
- package/dist/form/sliderUtils.js.map +1 -1
- package/dist/form/switchStyles.js.map +1 -1
- package/dist/form/textAreaStyles.js.map +1 -1
- package/dist/form/textFieldContainerStyles.js.map +1 -1
- package/dist/form/textFieldStyles.js.map +1 -1
- package/dist/form/types.js.map +1 -1
- package/dist/form/useCheckboxGroup.js.map +1 -1
- package/dist/form/useCombobox.js.map +1 -1
- package/dist/form/useEditableCombobox.js.map +1 -1
- package/dist/form/useFileUpload.js.map +1 -1
- package/dist/form/useFormReset.js.map +1 -1
- package/dist/form/useListboxProvider.js.map +1 -1
- package/dist/form/useNumberField.js.map +1 -1
- package/dist/form/useRadioGroup.js.map +1 -1
- package/dist/form/useRangeSlider.js.map +1 -1
- package/dist/form/useResizingTextArea.js.map +1 -1
- package/dist/form/useSelectCombobox.js.map +1 -1
- package/dist/form/useSlider.js.map +1 -1
- package/dist/form/useTextField.js.map +1 -1
- package/dist/form/useTextFieldContainerAddons.js.map +1 -1
- package/dist/form/utils.js.map +1 -1
- package/dist/form/validation.js.map +1 -1
- package/dist/hoverMode/useHoverMode.js.map +1 -1
- package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
- package/dist/icon/FontIcon.d.ts +10 -6
- package/dist/icon/FontIcon.js +1 -5
- package/dist/icon/FontIcon.js.map +1 -1
- package/dist/icon/IconRotator.js.map +1 -1
- package/dist/icon/MaterialIcon.d.ts +19 -2
- package/dist/icon/MaterialIcon.js +14 -2
- package/dist/icon/MaterialIcon.js.map +1 -1
- package/dist/icon/MaterialSymbol.js.map +1 -1
- package/dist/icon/SVGIcon.d.ts +3 -0
- package/dist/icon/SVGIcon.js.map +1 -1
- package/dist/icon/TextIconSpacing.js.map +1 -1
- package/dist/icon/iconConfig.d.ts +1 -0
- package/dist/icon/iconConfig.js +1 -0
- package/dist/icon/iconConfig.js.map +1 -1
- package/dist/icon/material.d.ts +1 -1
- package/dist/icon/material.js.map +1 -1
- package/dist/icon/materialConfig.js.map +1 -1
- package/dist/icon/styles.js.map +1 -1
- package/dist/interaction/Ripple.js.map +1 -1
- package/dist/interaction/RippleContainer.js.map +1 -1
- package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
- package/dist/interaction/config.js.map +1 -1
- package/dist/interaction/types.js.map +1 -1
- package/dist/interaction/useElementInteraction.js.map +1 -1
- package/dist/interaction/useHigherContrastChildren.js.map +1 -1
- package/dist/interaction/utils.js.map +1 -1
- package/dist/layout/LayoutAppBar.js.map +1 -1
- package/dist/layout/LayoutNav.js.map +1 -1
- package/dist/layout/LayoutWindowSplitter.js.map +1 -1
- package/dist/layout/Main.js.map +1 -1
- package/dist/layout/layoutNavStyles.js.map +1 -1
- package/dist/layout/layoutWindowSplitterStyles.js.map +1 -1
- package/dist/layout/mainStyles.js.map +1 -1
- package/dist/layout/useExpandableLayout.js.map +1 -1
- package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
- package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
- package/dist/layout/useLayoutTree.js.map +1 -1
- package/dist/layout/useLayoutWindowSplitter.js.map +1 -1
- package/dist/layout/useMainTabIndex.js.map +1 -1
- package/dist/layout/useResizableLayout.js.map +1 -1
- package/dist/layout/useTemporaryLayout.js.map +1 -1
- package/dist/link/Link.d.ts +2 -4
- package/dist/link/Link.js +1 -2
- package/dist/link/Link.js.map +1 -1
- package/dist/link/SkipToMainContent.d.ts +10 -3
- package/dist/link/SkipToMainContent.js +4 -1
- package/dist/link/SkipToMainContent.js.map +1 -1
- package/dist/link/styles.d.ts +2 -2
- package/dist/link/styles.js.map +1 -1
- package/dist/list/List.js.map +1 -1
- package/dist/list/ListItem.js.map +1 -1
- package/dist/list/ListItemAddon.js.map +1 -1
- package/dist/list/ListItemChildren.js.map +1 -1
- package/dist/list/ListItemLink.js.map +1 -1
- package/dist/list/ListItemText.js.map +1 -1
- package/dist/list/ListSubheader.js.map +1 -1
- package/dist/list/getListItemHeight.js.map +1 -1
- package/dist/list/listItemStyles.js.map +1 -1
- package/dist/list/types.js.map +1 -1
- package/dist/media-queries/AppSizeProvider.js.map +1 -1
- package/dist/media-queries/appSize.js.map +1 -1
- package/dist/media-queries/useMediaQuery.js.map +1 -1
- package/dist/menu/DropdownMenu.js.map +1 -1
- package/dist/menu/Menu.js.map +1 -1
- package/dist/menu/MenuBar.js.map +1 -1
- package/dist/menu/MenuButton.js.map +1 -1
- package/dist/menu/MenuConfigurationProvider.js.map +1 -1
- package/dist/menu/MenuItem.js.map +1 -1
- package/dist/menu/MenuItemButton.js.map +1 -1
- package/dist/menu/MenuItemCircularProgress.js.map +1 -1
- package/dist/menu/MenuItemGroup.js.map +1 -1
- package/dist/menu/MenuItemSeparator.js.map +1 -1
- package/dist/menu/MenuSheet.js.map +1 -1
- package/dist/menu/MenuVisibilityProvider.js.map +1 -1
- package/dist/menu/MenuWidget.js.map +1 -1
- package/dist/menu/MenuWidgetKeyboardProvider.js.map +1 -1
- package/dist/menu/useContextMenu.js.map +1 -1
- package/dist/menu/useMenuBarProvider.js.map +1 -1
- package/dist/menu/utils.js.map +1 -1
- package/dist/movement/constants.js.map +1 -1
- package/dist/movement/findMatchIndex.js.map +1 -1
- package/dist/movement/types.js.map +1 -1
- package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
- package/dist/movement/utils.js.map +1 -1
- package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
- package/dist/navigation/DefaultNavigationRenderer.js.map +1 -1
- package/dist/navigation/NavGroup.js.map +1 -1
- package/dist/navigation/NavItem.js.map +1 -1
- package/dist/navigation/NavItemButton.js.map +1 -1
- package/dist/navigation/NavItemLink.js.map +1 -1
- package/dist/navigation/NavSubheader.js.map +1 -1
- package/dist/navigation/Navigation.js.map +1 -1
- package/dist/navigation/getHrefFromParents.js.map +1 -1
- package/dist/navigation/navGroupStyles.js.map +1 -1
- package/dist/navigation/navItemStyles.js.map +1 -1
- package/dist/navigation/types.js.map +1 -1
- package/dist/navigation/useActiveHeadingId.js.map +1 -1
- package/dist/overlay/Overlay.d.ts +1 -0
- package/dist/overlay/Overlay.js.map +1 -1
- package/dist/overlay/overlayStyles.js.map +1 -1
- package/dist/portal/Portal.d.ts +4 -0
- package/dist/portal/Portal.js.map +1 -1
- package/dist/portal/PortalContainerProvider.d.ts +8 -3
- package/dist/portal/PortalContainerProvider.js +1 -0
- package/dist/portal/PortalContainerProvider.js.map +1 -1
- package/dist/positioning/constants.js.map +1 -1
- package/dist/positioning/createHorizontalPosition.js.map +1 -1
- package/dist/positioning/createVerticalPosition.js.map +1 -1
- package/dist/positioning/getFixedPosition.js.map +1 -1
- package/dist/positioning/types.js.map +1 -1
- package/dist/positioning/useFixedPositioning.js.map +1 -1
- package/dist/positioning/utils.js.map +1 -1
- package/dist/progress/CircularProgress.d.ts +5 -4
- package/dist/progress/CircularProgress.js.map +1 -1
- package/dist/progress/LinearProgress.js.map +1 -1
- package/dist/progress/getProgressA11y.js.map +1 -1
- package/dist/progress/types.js.map +1 -1
- package/dist/responsive-item/ResponsiveItemContainer.js.map +1 -1
- package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
- package/dist/responsive-item/styles.js.map +1 -1
- package/dist/scroll/ScrollLock.js.map +1 -1
- package/dist/scroll/getScrollbarWidth.js.map +1 -1
- package/dist/scroll/useScrollLock.js.map +1 -1
- package/dist/searching/caseInsensitive.js.map +1 -1
- package/dist/searching/fuzzy.js.map +1 -1
- package/dist/searching/toSearchQuery.js.map +1 -1
- package/dist/searching/types.js.map +1 -1
- package/dist/searching/useFuzzyMatch.js.map +1 -1
- package/dist/searching/utils.js.map +1 -1
- package/dist/segmented-button/SegmentedButton.js.map +1 -1
- package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
- package/dist/segmented-button/segmentedButtonContainerStyles.js.map +1 -1
- package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
- package/dist/sheet/Sheet.js.map +1 -1
- package/dist/sheet/styles.js.map +1 -1
- package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
- package/dist/snackbar/Snackbar.js.map +1 -1
- package/dist/snackbar/Toast.js.map +1 -1
- package/dist/snackbar/ToastActionButton.js.map +1 -1
- package/dist/snackbar/ToastCloseButton.js.map +1 -1
- package/dist/snackbar/ToastContent.js.map +1 -1
- package/dist/snackbar/ToastManager.js.map +1 -1
- package/dist/snackbar/ToastManagerProvider.js.map +1 -1
- package/dist/snackbar/snackbarStyles.js.map +1 -1
- package/dist/snackbar/toastContentStyles.js.map +1 -1
- package/dist/snackbar/toastStyles.js.map +1 -1
- package/dist/snackbar/useCurrentToastActions.js.map +1 -1
- package/dist/suspense/CircularProgressSuspense.js.map +1 -1
- package/dist/suspense/NullSuspense.js.map +1 -1
- package/dist/table/StickyTableSection.d.ts +23 -0
- package/dist/table/StickyTableSection.js +56 -0
- package/dist/table/StickyTableSection.js.map +1 -0
- package/dist/table/Table.d.ts +1 -1
- package/dist/table/Table.js.map +1 -1
- package/dist/table/TableBody.d.ts +1 -1
- package/dist/table/TableBody.js.map +1 -1
- package/dist/table/TableCell.d.ts +3 -2
- package/dist/table/TableCell.js.map +1 -1
- package/dist/table/TableCellContent.d.ts +1 -2
- package/dist/table/TableCellContent.js.map +1 -1
- package/dist/table/TableCheckbox.js.map +1 -1
- package/dist/table/TableConfigurationProvider.d.ts +1 -73
- package/dist/table/TableConfigurationProvider.js.map +1 -1
- package/dist/table/TableContainer.js.map +1 -1
- package/dist/table/TableContainerProvider.js.map +1 -1
- package/dist/table/TableFooter.d.ts +8 -17
- package/dist/table/TableFooter.js +17 -80
- package/dist/table/TableFooter.js.map +1 -1
- package/dist/table/TableHeader.d.ts +8 -17
- package/dist/table/TableHeader.js +20 -87
- package/dist/table/TableHeader.js.map +1 -1
- package/dist/table/TableRadio.js.map +1 -1
- package/dist/table/TableRow.d.ts +1 -1
- package/dist/table/TableRow.js.map +1 -1
- package/dist/table/tableCellStyles.d.ts +1 -1
- package/dist/table/tableCellStyles.js.map +1 -1
- package/dist/table/tableContainerStyles.js.map +1 -1
- package/dist/table/tableFooterStyles.js.map +1 -1
- package/dist/table/tableHeaderStyles.js.map +1 -1
- package/dist/table/tableRowStyles.js.map +1 -1
- package/dist/table/tableStyles.js.map +1 -1
- package/dist/table/types.d.ts +89 -9
- package/dist/table/types.js.map +1 -1
- package/dist/table/useStickyTableSection.d.ts +27 -0
- package/dist/table/useStickyTableSection.js +84 -0
- package/dist/table/useStickyTableSection.js.map +1 -0
- package/dist/table/useTableSectionConfig.d.ts +13 -0
- package/dist/table/useTableSectionConfig.js +33 -0
- package/dist/table/useTableSectionConfig.js.map +1 -0
- package/dist/tabs/Tab.js.map +1 -1
- package/dist/tabs/TabList.js.map +1 -1
- package/dist/tabs/TabListScrollButton.js.map +1 -1
- package/dist/tabs/tabIndicatorStyles.js.map +1 -1
- package/dist/tabs/tabListScrollButtonStyles.js.map +1 -1
- package/dist/tabs/tabListStyles.js.map +1 -1
- package/dist/tabs/tabStyles.js.map +1 -1
- package/dist/tabs/useTabList.js.map +1 -1
- package/dist/tabs/useTabs.js.map +1 -1
- package/dist/tabs/utils.js.map +1 -1
- package/dist/test-utils/IntersectionObserver.js.map +1 -1
- package/dist/test-utils/ResizeObserver.js.map +1 -1
- package/dist/test-utils/data-testid.js.map +1 -1
- package/dist/test-utils/index.js.map +1 -1
- package/dist/test-utils/jest-setup.js.map +1 -1
- package/dist/test-utils/matchMedia.js.map +1 -1
- package/dist/test-utils/polyfills/IntersectionObserver.js.map +1 -1
- package/dist/test-utils/polyfills/ResizeObserver.js.map +1 -1
- package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
- package/dist/test-utils/polyfills/TextEncoder.js.map +1 -1
- package/dist/test-utils/polyfills/index.js.map +1 -1
- package/dist/test-utils/polyfills/matchMedia.js.map +1 -1
- package/dist/test-utils/polyfills/offsetParent.js.map +1 -1
- package/dist/test-utils/polyfills/scrollIntoView.js.map +1 -1
- package/dist/test-utils/render.js.map +1 -1
- package/dist/test-utils/timers.js.map +1 -1
- package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/_theme.scss +2 -1
- package/dist/theme/colors.js.map +1 -1
- package/dist/theme/cssVars.js.map +1 -1
- package/dist/theme/types.js.map +1 -1
- package/dist/theme/useCSSVariables.js.map +1 -1
- package/dist/theme/useColorScheme.js.map +1 -1
- package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
- package/dist/theme/useColorSchemeProvider.js.map +1 -1
- package/dist/theme/usePrefersColorScheme.js.map +1 -1
- package/dist/theme/utils.js.map +1 -1
- package/dist/tooltip/Tooltip.d.ts +20 -9
- package/dist/tooltip/Tooltip.js.map +1 -1
- package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
- package/dist/tooltip/constants.js.map +1 -1
- package/dist/tooltip/tooltipStyles.js.map +1 -1
- package/dist/tooltip/useTooltip.d.ts +30 -16
- package/dist/tooltip/useTooltip.js.map +1 -1
- package/dist/tooltip/useTooltipPosition.d.ts +2 -4
- package/dist/tooltip/useTooltipPosition.js.map +1 -1
- package/dist/tooltip/utils.js.map +1 -1
- package/dist/transition/CSSTransition.js.map +1 -1
- package/dist/transition/Collapse.js.map +1 -1
- package/dist/transition/CrossFade.js.map +1 -1
- package/dist/transition/ScaleTransition.js.map +1 -1
- package/dist/transition/SkeletonPlaceholder.js.map +1 -1
- package/dist/transition/Slide.js.map +1 -1
- package/dist/transition/SlideContainer.js.map +1 -1
- package/dist/transition/collapseStyles.js.map +1 -1
- package/dist/transition/config.js.map +1 -1
- package/dist/transition/maxWidthTransition.js.map +1 -1
- package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
- package/dist/transition/types.d.ts +19 -24
- package/dist/transition/types.js.map +1 -1
- package/dist/transition/useCSSTransition.js.map +1 -1
- package/dist/transition/useCarousel.js.map +1 -1
- package/dist/transition/useCollapseTransition.js.map +1 -1
- package/dist/transition/useCrossFadeTransition.js.map +1 -1
- package/dist/transition/useMaxWidthTransition.js.map +1 -1
- package/dist/transition/useScaleTransition.js.map +1 -1
- package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
- package/dist/transition/useSlideTransition.js.map +1 -1
- package/dist/transition/useTransition.d.ts +1 -0
- package/dist/transition/useTransition.js +1 -0
- package/dist/transition/useTransition.js.map +1 -1
- package/dist/transition/utils.js.map +1 -1
- package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
- package/dist/tree/Tree.js.map +1 -1
- package/dist/tree/TreeGroup.js.map +1 -1
- package/dist/tree/TreeItem.js.map +1 -1
- package/dist/tree/TreeItemExpander.js.map +1 -1
- package/dist/tree/TreeProvider.js.map +1 -1
- package/dist/tree/styles.js.map +1 -1
- package/dist/tree/types.js.map +1 -1
- package/dist/tree/useTree.d.ts +3 -3
- package/dist/tree/useTree.js.map +1 -1
- package/dist/tree/useTreeExpansion.js.map +1 -1
- package/dist/tree/useTreeItems.js.map +1 -1
- package/dist/tree/useTreeMovement.js.map +1 -1
- package/dist/tree/useTreeSelection.js.map +1 -1
- package/dist/tree/utils.js.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/typography/SrOnly.js.map +1 -1
- package/dist/typography/TextContainer.d.ts +4 -0
- package/dist/typography/TextContainer.js +2 -0
- package/dist/typography/TextContainer.js.map +1 -1
- package/dist/typography/Typography.d.ts +10 -0
- package/dist/typography/Typography.js +3 -0
- package/dist/typography/Typography.js.map +1 -1
- package/dist/typography/WritingDirectionProvider.js.map +1 -1
- package/dist/typography/textContainerStyles.js.map +1 -1
- package/dist/typography/typographyStyles.js.map +1 -1
- package/dist/useAsyncFunction.js.map +1 -1
- package/dist/useDebouncedFunction.js.map +1 -1
- package/dist/useDropzone.js.map +1 -1
- package/dist/useElementSize.js.map +1 -1
- package/dist/useEnsuredId.js.map +1 -1
- package/dist/useEnsuredRef.js.map +1 -1
- package/dist/useEnsuredState.js.map +1 -1
- package/dist/useHtmlClassName.js.map +1 -1
- package/dist/useIntersectionObserver.js.map +1 -1
- package/dist/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/useLocalStorage.js.map +1 -1
- package/dist/useMutationObserver.js.map +1 -1
- package/dist/useOrientation.js.map +1 -1
- package/dist/usePageInactive.js.map +1 -1
- package/dist/useResizeListener.js.map +1 -1
- package/dist/useResizeObserver.js.map +1 -1
- package/dist/useThrottledFunction.js.map +1 -1
- package/dist/useToggle.js.map +1 -1
- package/dist/useUnmounted.js.map +1 -1
- package/dist/useWindowSize.js.map +1 -1
- package/dist/utils/RenderRecursively.js.map +1 -1
- package/dist/utils/alphaNumericSort.js.map +1 -1
- package/dist/utils/applyRef.js.map +1 -1
- package/dist/utils/bem.js.map +1 -1
- package/dist/utils/getClientPosition.js.map +1 -1
- package/dist/utils/getMiddleOfRange.js.map +1 -1
- package/dist/utils/getPercentage.js.map +1 -1
- package/dist/utils/getRangeDefaultValue.js.map +1 -1
- package/dist/utils/getRangeSteps.js.map +1 -1
- package/dist/utils/identity.js.map +1 -1
- package/dist/utils/isElementVisible.js.map +1 -1
- package/dist/utils/loop.js.map +1 -1
- package/dist/utils/nearest.js.map +1 -1
- package/dist/utils/parseCssLengthUnit.js.map +1 -1
- package/dist/utils/randomInt.js.map +1 -1
- package/dist/utils/wait.js.map +1 -1
- package/dist/utils/withinRange.js.map +1 -1
- package/dist/window-splitter/WindowSplitter.js.map +1 -1
- package/dist/window-splitter/useWindowSplitter.js.map +1 -1
- package/package.json +21 -20
- package/scripts/getExportMap.ts +66 -0
- package/scripts/tsconfig.json +1 -1
- package/src/app-bar/AppBarTitle.tsx +8 -4
- package/src/autocomplete/defaults.ts +3 -3
- package/src/avatar/Avatar.tsx +1 -2
- package/src/card/Card.tsx +2 -1
- package/src/card/CardSubtitle.tsx +9 -0
- package/src/card/__tests__/__snapshots__/CardHeader.tsx.snap +1 -1
- package/src/card/__tests__/__snapshots__/CardSubtitle.tsx.snap +2 -2
- package/src/card/__tests__/__snapshots__/styles.ts.snap +1 -1
- package/src/card/styles.ts +2 -6
- package/src/cssUtils.ts +1 -1
- package/src/icon/FontIcon.tsx +19 -9
- package/src/icon/MaterialIcon.tsx +23 -4
- package/src/icon/SVGIcon.tsx +3 -0
- package/src/icon/iconConfig.tsx +1 -0
- package/src/icon/material.ts +276 -19
- package/src/link/Link.tsx +2 -4
- package/src/link/SkipToMainContent.tsx +11 -4
- package/src/link/styles.ts +2 -2
- package/src/overlay/Overlay.tsx +1 -0
- package/src/portal/Portal.tsx +5 -0
- package/src/portal/PortalContainerProvider.tsx +16 -7
- package/src/progress/CircularProgress.tsx +5 -4
- package/src/table/StickyTableSection.tsx +91 -0
- package/src/table/Table.tsx +2 -5
- package/src/table/TableBody.tsx +1 -2
- package/src/table/TableCell.tsx +3 -5
- package/src/table/TableCellContent.tsx +1 -3
- package/src/table/TableConfigurationProvider.tsx +1 -86
- package/src/table/TableFooter.tsx +19 -116
- package/src/table/TableHeader.tsx +20 -118
- package/src/table/TableRow.tsx +2 -4
- package/src/table/__tests__/Table.tsx +9 -8
- package/src/table/tableCellStyles.ts +1 -1
- package/src/table/types.ts +105 -10
- package/src/table/useStickyTableSection.tsx +126 -0
- package/src/table/useTableSectionConfig.ts +45 -0
- package/src/theme/_theme.scss +2 -1
- package/src/tooltip/Tooltip.tsx +24 -8
- package/src/tooltip/useTooltip.ts +52 -27
- package/src/tooltip/useTooltipPosition.ts +2 -4
- package/src/transition/types.ts +23 -27
- package/src/transition/useTransition.ts +1 -0
- package/src/tree/useTree.ts +3 -5
- package/src/typography/TextContainer.tsx +4 -0
- package/src/typography/Typography.tsx +10 -0
- package/src/useResizeListener.ts +1 -1
package/src/link/Link.tsx
CHANGED
|
@@ -27,8 +27,7 @@ export type CustomLinkComponent =
|
|
|
27
27
|
* @since 6.0.0 Removed the `component` prop since all you need for link
|
|
28
28
|
* behavior is `className="rmd-link"`.
|
|
29
29
|
* @since 6.0.0 The `href` prop is required.
|
|
30
|
-
* @since 6.0.0
|
|
31
|
-
* styles.
|
|
30
|
+
* @since 6.0.0 Renamed `flexCentered` to `flex`.
|
|
32
31
|
*/
|
|
33
32
|
export interface LinkProps
|
|
34
33
|
extends AnchorHTMLAttributes<HTMLAnchorElement>,
|
|
@@ -72,8 +71,7 @@ export interface LinkProps
|
|
|
72
71
|
* @since 6.0.0 Removed the `component` prop since all you need for link
|
|
73
72
|
* behavior is `className="rmd-link"`.
|
|
74
73
|
* @since 6.0.0 The `href` prop is required.
|
|
75
|
-
* @since 6.0.0
|
|
76
|
-
* styles.
|
|
74
|
+
* @since 6.0.0 Renamed `flexCentered` to `flex`.
|
|
77
75
|
*/
|
|
78
76
|
export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
|
|
79
77
|
function Link(props, ref) {
|
|
@@ -3,7 +3,7 @@ import { forwardRef, useEffect, useRef, type ReactNode } from "react";
|
|
|
3
3
|
import { Link, type LinkProps } from "./Link.js";
|
|
4
4
|
import {
|
|
5
5
|
skipToMainContent,
|
|
6
|
-
type
|
|
6
|
+
type SkipToMainContentClassNameOptions,
|
|
7
7
|
} from "./styles.js";
|
|
8
8
|
|
|
9
9
|
const noop = (): void => {
|
|
@@ -16,11 +16,15 @@ const getMainElement = (mainId: string): HTMLElement | null =>
|
|
|
16
16
|
: document.querySelector<HTMLElement>('main,[role="main"]');
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* @since 6.0.0 The
|
|
19
|
+
* @since 6.0.0 The `mainId` is optional
|
|
20
20
|
*/
|
|
21
21
|
export interface SkipToMainContentProps
|
|
22
22
|
extends Omit<LinkProps, "href">,
|
|
23
|
-
|
|
23
|
+
SkipToMainContentClassNameOptions {
|
|
24
|
+
/**
|
|
25
|
+
* @since 6.0.0 Changed default value from `"skip-to-main-content"`
|
|
26
|
+
* @defaultValue `"skip-to-main"`
|
|
27
|
+
*/
|
|
24
28
|
id?: string;
|
|
25
29
|
|
|
26
30
|
/**
|
|
@@ -42,6 +46,9 @@ export interface SkipToMainContentProps
|
|
|
42
46
|
/**
|
|
43
47
|
* **Client Component**
|
|
44
48
|
*
|
|
49
|
+
* @since 6.0.0 Changed the default `id` from `"skip-to-main-content"` to
|
|
50
|
+
* `"skip-to-main"`.
|
|
51
|
+
* @since 6.0.0 The `mainId` prop is optional
|
|
45
52
|
* @since 6.0.0 Throws an error after rendering if no main element can be found
|
|
46
53
|
* with the provided `mainId` in development mode. The previous behavior would
|
|
47
54
|
* only log an error after being clicked.
|
|
@@ -56,7 +63,7 @@ export const SkipToMainContent = forwardRef<
|
|
|
56
63
|
children = "Skip to main content",
|
|
57
64
|
mainId = "",
|
|
58
65
|
onClick = noop,
|
|
59
|
-
unstyled
|
|
66
|
+
unstyled,
|
|
60
67
|
...remaining
|
|
61
68
|
} = props;
|
|
62
69
|
|
package/src/link/styles.ts
CHANGED
|
@@ -24,7 +24,7 @@ export function link(options: LinkClassNameOptions = {}): string {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/** @since 6.0.0 */
|
|
27
|
-
export interface
|
|
27
|
+
export interface SkipToMainContentClassNameOptions {
|
|
28
28
|
className?: string;
|
|
29
29
|
|
|
30
30
|
/**
|
|
@@ -37,7 +37,7 @@ export interface SKipToMainContentClassNameOptions {
|
|
|
37
37
|
* @since 6.0.0
|
|
38
38
|
*/
|
|
39
39
|
export function skipToMainContent(
|
|
40
|
-
options:
|
|
40
|
+
options: SkipToMainContentClassNameOptions = {}
|
|
41
41
|
): string {
|
|
42
42
|
const { unstyled = false, className } = options;
|
|
43
43
|
|
package/src/overlay/Overlay.tsx
CHANGED
package/src/portal/Portal.tsx
CHANGED
|
@@ -4,8 +4,13 @@ import { createPortal } from "react-dom";
|
|
|
4
4
|
|
|
5
5
|
import { usePortalContainer } from "./PortalContainerProvider.js";
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* @since 6.0.0 Removed the `into` and `intoId` props. Use the
|
|
9
|
+
* `PortalContainerProvider` instead.
|
|
10
|
+
*/
|
|
7
11
|
export interface PortalProps {
|
|
8
12
|
children: ReactNode;
|
|
13
|
+
|
|
9
14
|
/**
|
|
10
15
|
* Setting this to `true` will disable the portal behavior and just render
|
|
11
16
|
* the `children` in the normal DOM tree.
|
|
@@ -13,16 +13,24 @@ import {
|
|
|
13
13
|
* @internal
|
|
14
14
|
* @since 6.0.0
|
|
15
15
|
*/
|
|
16
|
-
export type
|
|
16
|
+
export type PortalContainerNode = Element | DocumentFragment | null;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @internal
|
|
20
|
+
* @since 6.0.0
|
|
21
|
+
*/
|
|
22
|
+
export type PortalContainer =
|
|
23
|
+
| PortalContainerNode
|
|
24
|
+
| RefObject<PortalContainerNode>;
|
|
17
25
|
|
|
18
26
|
export const PORTAL_CONTAINER_ID = "rmd-portal-container";
|
|
19
27
|
|
|
20
|
-
let portalContainer:
|
|
28
|
+
let portalContainer: PortalContainerNode = null;
|
|
21
29
|
|
|
22
|
-
const getPortalContainer = ():
|
|
30
|
+
const getPortalContainer = (): PortalContainerNode =>
|
|
23
31
|
typeof window === "undefined" ? null : document.body;
|
|
24
32
|
|
|
25
|
-
const context = createContext<
|
|
33
|
+
const context = createContext<PortalContainerNode>(getPortalContainer());
|
|
26
34
|
context.displayName = "PortalContainer";
|
|
27
35
|
const { Provider } = context;
|
|
28
36
|
|
|
@@ -30,7 +38,7 @@ const { Provider } = context;
|
|
|
30
38
|
* @internal
|
|
31
39
|
* @since 6.0.0
|
|
32
40
|
*/
|
|
33
|
-
export function usePortalContainer():
|
|
41
|
+
export function usePortalContainer(): PortalContainerNode {
|
|
34
42
|
return useContext(context);
|
|
35
43
|
}
|
|
36
44
|
|
|
@@ -41,7 +49,7 @@ export interface PortalContainerProviderProps {
|
|
|
41
49
|
* `<div id="rmd-portal-container"></div>` will be added as the last child to
|
|
42
50
|
* the `document.body` and be used as the container element.
|
|
43
51
|
*/
|
|
44
|
-
container?: PortalContainer
|
|
52
|
+
container?: PortalContainer;
|
|
45
53
|
children: ReactNode;
|
|
46
54
|
}
|
|
47
55
|
|
|
@@ -60,7 +68,7 @@ export function PortalContainerProvider(
|
|
|
60
68
|
props: PortalContainerProviderProps
|
|
61
69
|
): ReactElement {
|
|
62
70
|
const { container, children } = props;
|
|
63
|
-
const [value, setValue] = useState<
|
|
71
|
+
const [value, setValue] = useState<PortalContainerNode>(portalContainer);
|
|
64
72
|
useEffect(() => {
|
|
65
73
|
if (container && "current" in container) {
|
|
66
74
|
setValue(container.current);
|
|
@@ -68,6 +76,7 @@ export function PortalContainerProvider(
|
|
|
68
76
|
}
|
|
69
77
|
|
|
70
78
|
if (typeof container !== "undefined") {
|
|
79
|
+
setValue(container);
|
|
71
80
|
return;
|
|
72
81
|
}
|
|
73
82
|
|
|
@@ -13,11 +13,11 @@ import { getPercentage } from "../utils/getPercentage.js";
|
|
|
13
13
|
import { type ProgressProps } from "./types.js";
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
* @since 6.0.0
|
|
17
|
-
*
|
|
16
|
+
* @since 6.0.0 Added the `disableShrink` prop.
|
|
17
|
+
* @since 6.0.0 Renamed `small` to `dense`.
|
|
18
|
+
* @since 6.0.0 Renamed `centered` to `disableCentered`.
|
|
19
|
+
* @since 6.0.0 Removed the `maxRotation` prop since the determinate state no
|
|
18
20
|
* longer rotates while increasing value.
|
|
19
|
-
* Added the `disableShrink` prop.
|
|
20
|
-
* Renamed the `small` prop to `dense` to match other components.
|
|
21
21
|
*/
|
|
22
22
|
export interface CircularProgressProps
|
|
23
23
|
extends Omit<HTMLAttributes<HTMLSpanElement>, "id">,
|
|
@@ -88,6 +88,7 @@ export interface CircularProgressProps
|
|
|
88
88
|
* margins.
|
|
89
89
|
*
|
|
90
90
|
* @defaultValue `false`
|
|
91
|
+
* @since 6.0.0 Renamed from `centered`
|
|
91
92
|
*/
|
|
92
93
|
disableCentered?: boolean;
|
|
93
94
|
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { forwardRef, type HTMLAttributes } from "react";
|
|
3
|
+
import { TableConfigProvider } from "./TableConfigurationProvider.js";
|
|
4
|
+
import { tableFooter } from "./tableFooterStyles.js";
|
|
5
|
+
import { tableHeader } from "./tableHeaderStyles.js";
|
|
6
|
+
import {
|
|
7
|
+
type TableSectionConfiguration,
|
|
8
|
+
type TableStickySectionConfiguration,
|
|
9
|
+
} from "./types.js";
|
|
10
|
+
import { useStickyTableSection } from "./useStickyTableSection.js";
|
|
11
|
+
import { useTableSectionConfig } from "./useTableSectionConfig.js";
|
|
12
|
+
|
|
13
|
+
/** @since 6.0.0 */
|
|
14
|
+
export interface StickyTableSectionProps
|
|
15
|
+
extends HTMLAttributes<HTMLTableSectionElement>,
|
|
16
|
+
TableStickySectionConfiguration,
|
|
17
|
+
TableSectionConfiguration {
|
|
18
|
+
type: "header" | "footer";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* An optional className to use when the sticky section is covering other rows
|
|
22
|
+
* (`active`). When this is defined, the default
|
|
23
|
+
* `rmd-thead--sticky-active`/`rmd-tfoot--sticky-active` will no longer be
|
|
24
|
+
* applied.
|
|
25
|
+
*/
|
|
26
|
+
stickyActiveClassName?: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* **Client Component**
|
|
31
|
+
*
|
|
32
|
+
* This component is used to render a sticky `<thead>`/`<tfoot>` that
|
|
33
|
+
* dynamically applies styles whenever the `<thead>`/`<tfoot>` are covering
|
|
34
|
+
* content in the table.
|
|
35
|
+
*
|
|
36
|
+
* @since 6.0.0
|
|
37
|
+
*/
|
|
38
|
+
export const StickyTableSection = forwardRef<
|
|
39
|
+
HTMLTableSectionElement,
|
|
40
|
+
StickyTableSectionProps
|
|
41
|
+
>(function StickyTableSection(props, ref) {
|
|
42
|
+
const {
|
|
43
|
+
type,
|
|
44
|
+
className,
|
|
45
|
+
hoverable,
|
|
46
|
+
lineWrap,
|
|
47
|
+
children,
|
|
48
|
+
stickyOptions,
|
|
49
|
+
isStickyActive,
|
|
50
|
+
disableStickyStyles = false,
|
|
51
|
+
stickyActiveClassName,
|
|
52
|
+
...remaining
|
|
53
|
+
} = props;
|
|
54
|
+
|
|
55
|
+
const isHeader = type === "header";
|
|
56
|
+
const Section = isHeader ? "thead" : "tfoot";
|
|
57
|
+
const styles = isHeader ? tableHeader : tableFooter;
|
|
58
|
+
const { tbody, sectionRef, stickyActive } = useStickyTableSection({
|
|
59
|
+
ref,
|
|
60
|
+
type,
|
|
61
|
+
stickyOptions,
|
|
62
|
+
isStickyActive,
|
|
63
|
+
disableStickyStyles,
|
|
64
|
+
stickyActiveClassName,
|
|
65
|
+
});
|
|
66
|
+
const config = useTableSectionConfig({
|
|
67
|
+
type,
|
|
68
|
+
lineWrap,
|
|
69
|
+
hoverable,
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
return (
|
|
73
|
+
<TableConfigProvider value={config}>
|
|
74
|
+
{!isHeader && tbody}
|
|
75
|
+
<Section
|
|
76
|
+
{...remaining}
|
|
77
|
+
ref={sectionRef}
|
|
78
|
+
className={styles({
|
|
79
|
+
className,
|
|
80
|
+
dense: config.dense,
|
|
81
|
+
sticky: true,
|
|
82
|
+
stickyActive,
|
|
83
|
+
stickyActiveClassName,
|
|
84
|
+
})}
|
|
85
|
+
>
|
|
86
|
+
{children}
|
|
87
|
+
</Section>
|
|
88
|
+
{isHeader && tbody}
|
|
89
|
+
</TableConfigProvider>
|
|
90
|
+
);
|
|
91
|
+
});
|
package/src/table/Table.tsx
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { forwardRef, useMemo, type TableHTMLAttributes } from "react";
|
|
3
|
-
import {
|
|
4
|
-
TableConfigProvider,
|
|
5
|
-
type TableConfigContext,
|
|
6
|
-
type TableConfiguration,
|
|
7
|
-
} from "./TableConfigurationProvider.js";
|
|
3
|
+
import { TableConfigProvider } from "./TableConfigurationProvider.js";
|
|
8
4
|
import { table } from "./tableStyles.js";
|
|
5
|
+
import { type TableConfigContext, type TableConfiguration } from "./types.js";
|
|
9
6
|
|
|
10
7
|
declare module "react" {
|
|
11
8
|
interface CSSProperties {
|
package/src/table/TableBody.tsx
CHANGED
|
@@ -4,9 +4,8 @@ import { forwardRef, useMemo, type HTMLAttributes } from "react";
|
|
|
4
4
|
import {
|
|
5
5
|
TableConfigProvider,
|
|
6
6
|
useTableConfig,
|
|
7
|
-
type TableConfig,
|
|
8
|
-
type TableConfigContext,
|
|
9
7
|
} from "./TableConfigurationProvider.js";
|
|
8
|
+
import { type TableConfig, type TableConfigContext } from "./types.js";
|
|
10
9
|
|
|
11
10
|
export interface TableBodyProps
|
|
12
11
|
extends HTMLAttributes<HTMLTableSectionElement>,
|
package/src/table/TableCell.tsx
CHANGED
|
@@ -10,14 +10,11 @@ import { getIcon } from "../icon/iconConfig.js";
|
|
|
10
10
|
import { type PropsWithRef } from "../types.js";
|
|
11
11
|
import {
|
|
12
12
|
TableCellContent,
|
|
13
|
-
type SortOrder,
|
|
14
13
|
type TableCellContentsIconRotatorProps,
|
|
15
14
|
} from "./TableCellContent.js";
|
|
16
|
-
import {
|
|
17
|
-
useTableConfig,
|
|
18
|
-
type TableCellConfig,
|
|
19
|
-
} from "./TableConfigurationProvider.js";
|
|
15
|
+
import { useTableConfig } from "./TableConfigurationProvider.js";
|
|
20
16
|
import { tableCell } from "./tableCellStyles.js";
|
|
17
|
+
import { type SortOrder, type TableCellConfig } from "./types.js";
|
|
21
18
|
|
|
22
19
|
export type TableCellAttributes = Omit<
|
|
23
20
|
| TdHTMLAttributes<HTMLTableCellElement>
|
|
@@ -67,6 +64,7 @@ export interface TableCellOptions extends TableCellConfig {
|
|
|
67
64
|
/**
|
|
68
65
|
* @since 6.0.0 Removed the `colSpan="100%"` support since `colSpan`
|
|
69
66
|
* really only supports numbers.
|
|
67
|
+
* @since 6.0.0 Removed `disablePadding` in favor of `padding`.
|
|
70
68
|
*/
|
|
71
69
|
export interface TableCellProps extends TableCellAttributes, TableCellOptions {
|
|
72
70
|
/**
|
|
@@ -3,9 +3,7 @@ import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from "react";
|
|
|
3
3
|
import { ButtonUnstyled } from "../button/ButtonUnstyled.js";
|
|
4
4
|
import { IconRotator, type IconRotatorProps } from "../icon/IconRotator.js";
|
|
5
5
|
import { bem } from "../utils/bem.js";
|
|
6
|
-
import { type TableCellHorizontalAlignment } from "./
|
|
7
|
-
|
|
8
|
-
export type SortOrder = "ascending" | "descending" | "none" | "other";
|
|
6
|
+
import { type SortOrder, type TableCellHorizontalAlignment } from "./types.js";
|
|
9
7
|
|
|
10
8
|
/**
|
|
11
9
|
* @since 6.0.0
|
|
@@ -1,91 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { createContext, useContext } from "react";
|
|
3
|
-
|
|
4
|
-
// interfaces that are "public" should be the full word `Configuration` while
|
|
5
|
-
// the private/internal should just be `Config`. "Great" naming convention!
|
|
6
|
-
|
|
7
|
-
export interface TableRowConfiguration {
|
|
8
|
-
/**
|
|
9
|
-
* Set to `true` if rows should no longer change background color while
|
|
10
|
-
* hovered.
|
|
11
|
-
*
|
|
12
|
-
* @defaultValue `false`
|
|
13
|
-
*/
|
|
14
|
-
disableHover?: boolean;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Set to `true` if the rows in the `TableBody` should no longer have borders
|
|
18
|
-
* applied.
|
|
19
|
-
*
|
|
20
|
-
* @defaultValue `false`
|
|
21
|
-
*/
|
|
22
|
-
disableBorders?: boolean;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* The horizontal alignment for the content within a cell.
|
|
27
|
-
*
|
|
28
|
-
* Note: Table default behavior is to align to the left.
|
|
29
|
-
*/
|
|
30
|
-
export type TableCellHorizontalAlignment = "left" | "center" | "right";
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* The vertical alignment for the content within a cell.
|
|
34
|
-
*
|
|
35
|
-
* Note: When this is set to `"top"` or `"bottom"`, `padding-top` or
|
|
36
|
-
* `padding-bottom` will also be applied due to how styling tables work.
|
|
37
|
-
*/
|
|
38
|
-
export type TableCellVerticalAlignment = "top" | "middle" | "bottom";
|
|
39
|
-
|
|
40
|
-
export interface TableCellConfiguration {
|
|
41
|
-
hAlign?: TableCellHorizontalAlignment;
|
|
42
|
-
vAlign?: TableCellVerticalAlignment;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Set this to `true` to allow `TableCell` content to line wrap.
|
|
46
|
-
*
|
|
47
|
-
* @defaultValue `false`
|
|
48
|
-
*/
|
|
49
|
-
lineWrap?: boolean;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* @internal
|
|
54
|
-
*/
|
|
55
|
-
export interface TableCellConfig extends TableCellConfiguration {
|
|
56
|
-
/**
|
|
57
|
-
* Boolean if all the `TableCell` components should be rendered as a `<th>`
|
|
58
|
-
* instead of a `<td>`. This is really just a convenience prop for the
|
|
59
|
-
* `TableHeader` component so the user of `react-md` doesn't need to keep
|
|
60
|
-
* setting the `type="th"` fot the `TableCell` if using the low-level
|
|
61
|
-
* components.
|
|
62
|
-
*
|
|
63
|
-
* @internal
|
|
64
|
-
*/
|
|
65
|
-
header?: boolean;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export interface TableConfig extends TableRowConfiguration, TableCellConfig {
|
|
69
|
-
/**
|
|
70
|
-
* Set this to `true` to decrease the height of all cells within the table.
|
|
71
|
-
*
|
|
72
|
-
* @defaultValue `false`
|
|
73
|
-
*/
|
|
74
|
-
dense?: boolean;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export interface TableConfiguration extends TableConfig {
|
|
78
|
-
/**
|
|
79
|
-
* Set this to `true` to allow the table to span the full width of the
|
|
80
|
-
* container element instead of having the width be determined by the content
|
|
81
|
-
* within the table.
|
|
82
|
-
*
|
|
83
|
-
* @defaultValue `false`
|
|
84
|
-
*/
|
|
85
|
-
fullWidth?: boolean;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export type TableConfigContext = Required<TableConfig>;
|
|
3
|
+
import { type TableConfig, type TableConfigContext } from "./types.js";
|
|
89
4
|
|
|
90
5
|
const context = createContext<TableConfigContext>({
|
|
91
6
|
dense: false,
|
|
@@ -1,63 +1,27 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
useCallback,
|
|
5
|
-
useMemo,
|
|
6
|
-
useState,
|
|
7
|
-
type HTMLAttributes,
|
|
8
|
-
} from "react";
|
|
9
|
-
import { useEnsuredRef } from "../useEnsuredRef.js";
|
|
10
|
-
import { useIntersectionObserver } from "../useIntersectionObserver.js";
|
|
11
|
-
import {
|
|
12
|
-
TableConfigProvider,
|
|
13
|
-
useTableConfig,
|
|
14
|
-
type TableCellConfig,
|
|
15
|
-
type TableConfigContext,
|
|
16
|
-
} from "./TableConfigurationProvider.js";
|
|
17
|
-
import { useTableContainer } from "./TableContainerProvider.js";
|
|
2
|
+
import { forwardRef, type HTMLAttributes } from "react";
|
|
3
|
+
import { TableConfigProvider } from "./TableConfigurationProvider.js";
|
|
18
4
|
import { tableFooter } from "./tableFooterStyles.js";
|
|
19
|
-
import {
|
|
20
|
-
|
|
21
|
-
type TableStickySectionProps,
|
|
22
|
-
} from "./types.js";
|
|
5
|
+
import { type TableSectionConfiguration } from "./types.js";
|
|
6
|
+
import { useTableSectionConfig } from "./useTableSectionConfig.js";
|
|
23
7
|
|
|
24
|
-
/**
|
|
25
|
-
* @since 6.0.0
|
|
26
|
-
*/
|
|
27
|
-
export const isTableFooterStickyActive: IsStickyTableSectionActive = (
|
|
28
|
-
entry,
|
|
29
|
-
isInTableContainer
|
|
30
|
-
) => {
|
|
31
|
-
const { intersectionRatio, boundingClientRect, isIntersecting } = entry;
|
|
32
|
-
if (isInTableContainer) {
|
|
33
|
-
return !isIntersecting;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return intersectionRatio < 1 && boundingClientRect.top >= 0;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* @since 6.0.0 Added support for "sticky-active" state.
|
|
40
|
-
*/
|
|
41
8
|
export interface TableFooterProps
|
|
42
9
|
extends HTMLAttributes<HTMLTableSectionElement>,
|
|
43
|
-
|
|
44
|
-
TableStickySectionProps {
|
|
10
|
+
TableSectionConfiguration {
|
|
45
11
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
12
|
+
* NOTE: It is recommended to use the `StickyTableSection` component instead
|
|
13
|
+
* of enabling this prop since it supports dynamically adding styles while the
|
|
14
|
+
* header covering table rows.
|
|
15
|
+
*
|
|
16
|
+
* Set this to `true` to enable the sticky behavior.
|
|
49
17
|
*
|
|
50
18
|
* @defaultValue `false`
|
|
51
19
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
/** @defaultValue {@link isTableFooterStickyActive} */
|
|
55
|
-
isStickyActive?: IsStickyTableSectionActive;
|
|
20
|
+
sticky?: boolean;
|
|
56
21
|
}
|
|
57
22
|
|
|
58
23
|
/**
|
|
59
24
|
* **Client Component**
|
|
60
|
-
* TODO: Create separate useStickyTableFooter + StickyTableFooter component
|
|
61
25
|
*
|
|
62
26
|
* Creates a `<tfoot>` element with some basic styles. This component will
|
|
63
27
|
* disable the hover effect and line wrapping by default, but the hover effect
|
|
@@ -68,81 +32,20 @@ export const TableFooter = forwardRef<
|
|
|
68
32
|
HTMLTableSectionElement,
|
|
69
33
|
TableFooterProps
|
|
70
34
|
>(function TableFooter(props, propRef) {
|
|
71
|
-
const {
|
|
72
|
-
className,
|
|
73
|
-
hoverable = false,
|
|
74
|
-
lineWrap: propLineWrap,
|
|
75
|
-
children,
|
|
76
|
-
sticky = false,
|
|
77
|
-
stickyOptions,
|
|
78
|
-
isStickyActive = isTableFooterStickyActive,
|
|
79
|
-
disableStickyStyles = false,
|
|
80
|
-
stickyActiveClassName,
|
|
81
|
-
...remaining
|
|
82
|
-
} = props;
|
|
83
|
-
|
|
84
|
-
// update the table configuration with the custom overrides for the `<tfoot>`
|
|
85
|
-
const { dense, hAlign, vAlign, lineWrap, disableHover, disableBorders } =
|
|
86
|
-
useTableConfig({
|
|
87
|
-
lineWrap: propLineWrap,
|
|
88
|
-
disableHover: !hoverable,
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
const configuration = useMemo<TableConfigContext>(
|
|
92
|
-
() => ({
|
|
93
|
-
dense,
|
|
94
|
-
header: false,
|
|
95
|
-
hAlign,
|
|
96
|
-
vAlign,
|
|
97
|
-
lineWrap,
|
|
98
|
-
disableBorders,
|
|
99
|
-
disableHover,
|
|
100
|
-
}),
|
|
101
|
-
[dense, hAlign, vAlign, lineWrap, disableBorders, disableHover]
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
const [tfootRef, tfootRefCallback] = useEnsuredRef(propRef);
|
|
105
|
-
const { exists, containerRef } = useTableContainer();
|
|
106
|
-
const [stickyActive, setStickyActive] = useState(false);
|
|
107
|
-
const targetRef = useIntersectionObserver<
|
|
108
|
-
HTMLTableSectionElement | HTMLElement
|
|
109
|
-
>({
|
|
110
|
-
ref: exists ? undefined : tfootRefCallback,
|
|
111
|
-
root: containerRef,
|
|
112
|
-
disabled: !sticky || disableStickyStyles,
|
|
113
|
-
threshold: exists ? 0 : 1,
|
|
114
|
-
getRootMargin: useCallback(() => {
|
|
115
|
-
const topOffset =
|
|
116
|
-
exists && tfootRef.current ? tfootRef.current.offsetHeight - 1 : 1;
|
|
35
|
+
const { className, hoverable, lineWrap, children, ...remaining } = props;
|
|
117
36
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
setStickyActive(isStickyActive(entry, exists));
|
|
123
|
-
},
|
|
124
|
-
[exists, isStickyActive]
|
|
125
|
-
),
|
|
126
|
-
// allow the user defined sticky options to override the default behavior
|
|
127
|
-
...stickyOptions,
|
|
37
|
+
const config = useTableSectionConfig({
|
|
38
|
+
type: "footer",
|
|
39
|
+
lineWrap,
|
|
40
|
+
hoverable,
|
|
128
41
|
});
|
|
129
42
|
|
|
130
43
|
return (
|
|
131
|
-
<TableConfigProvider value={
|
|
132
|
-
{exists && sticky && !disableStickyStyles && (
|
|
133
|
-
// rendering a `<tbody>` since it is valid to have 0-many in a table
|
|
134
|
-
// https://html.spec.whatwg.org/multipage/tables.html#the-table-element
|
|
135
|
-
<tbody aria-hidden ref={targetRef} />
|
|
136
|
-
)}
|
|
44
|
+
<TableConfigProvider value={config}>
|
|
137
45
|
<tfoot
|
|
138
46
|
{...remaining}
|
|
139
|
-
ref={
|
|
140
|
-
className={tableFooter({
|
|
141
|
-
className,
|
|
142
|
-
sticky,
|
|
143
|
-
stickyActive,
|
|
144
|
-
stickyActiveClassName,
|
|
145
|
-
})}
|
|
47
|
+
ref={propRef}
|
|
48
|
+
className={tableFooter({ className })}
|
|
146
49
|
>
|
|
147
50
|
{children}
|
|
148
51
|
</tfoot>
|