@react-md/core 1.0.0-next.3 → 1.0.0-next.4
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/.turbo/turbo-build.log +5 -5
- package/.turbo/turbo-lint.log +3 -3
- package/.turbo/turbo-typecheck.log +1 -1
- package/CHANGELOG.md +6 -0
- package/coverage/clover.xml +529 -437
- package/coverage/coverage-final.json +3 -3
- package/coverage/lcov-report/ListItem.tsx.html +2 -2
- package/coverage/lcov-report/ListItemLink.tsx.html +616 -0
- package/coverage/lcov-report/getListItemHeight.ts.html +298 -0
- package/coverage/lcov-report/index.html +38 -23
- package/coverage/lcov.info +423 -317
- package/dist/_core.scss +1 -1
- package/dist/form/_form.scss +1 -1
- package/dist/list/getListItemHeight.d.ts +0 -1
- package/dist/list/types.d.ts +1 -1
- package/dist/menu/_menu.scss +0 -2
- package/dist/src/CoreProviders.js.map +1 -0
- package/dist/src/NoSsr.js.map +1 -0
- package/dist/src/SsrProvider.js.map +1 -0
- package/dist/src/app-bar/AppBar.js.map +1 -0
- package/dist/src/app-bar/AppBarTitle.js.map +1 -0
- package/dist/src/avatar/Avatar.js.map +1 -0
- package/dist/src/avatar/styles.js.map +1 -0
- package/dist/src/badge/Badge.js.map +1 -0
- package/dist/src/box/Box.js.map +1 -0
- package/dist/src/box/styles.js.map +1 -0
- package/dist/src/button/AsyncButton.js.map +1 -0
- package/dist/src/button/Button.js.map +1 -0
- package/dist/src/button/ButtonUnstyled.js.map +1 -0
- package/dist/src/button/FloatingActionButton.js.map +1 -0
- package/dist/src/button/TooltippedButton.js.map +1 -0
- package/dist/src/button/buttonStyles.js.map +1 -0
- package/dist/src/button/buttonUnstyledStyles.js.map +1 -0
- package/dist/src/card/Card.js.map +1 -0
- package/dist/src/card/CardContent.js.map +1 -0
- package/dist/src/card/CardFooter.js.map +1 -0
- package/dist/src/card/CardHeader.js.map +1 -0
- package/dist/src/card/CardSubtitle.js.map +1 -0
- package/dist/src/card/CardTitle.js.map +1 -0
- package/dist/src/card/ClickableCard.js.map +1 -0
- package/dist/src/card/styles.js.map +1 -0
- package/dist/src/chip/Chip.js.map +1 -0
- package/dist/src/chip/styles.js.map +1 -0
- package/dist/src/cssUtils.js.map +1 -0
- package/dist/src/delegateEvent.js.map +1 -0
- package/dist/src/dialog/Dialog.js.map +1 -0
- package/dist/src/dialog/DialogContainer.js.map +1 -0
- package/dist/src/dialog/DialogContent.js.map +1 -0
- package/dist/src/dialog/DialogFooter.js.map +1 -0
- package/dist/src/dialog/DialogHeader.js.map +1 -0
- package/dist/src/dialog/DialogTitle.js.map +1 -0
- package/dist/src/dialog/FixedDialog.js.map +1 -0
- package/dist/src/dialog/NestedDialogProvider.js.map +1 -0
- package/dist/src/dialog/styles.js.map +1 -0
- package/dist/src/divider/Divider.js.map +1 -0
- package/dist/src/divider/styles.js.map +1 -0
- package/dist/src/draggable/useDraggable.js.map +1 -0
- package/dist/src/draggable/utils.js.map +1 -0
- package/dist/src/expansion-panel/ExpansionList.js.map +1 -0
- package/dist/src/expansion-panel/ExpansionPanel.js.map +1 -0
- package/dist/src/expansion-panel/ExpansionPanelHeader.js.map +1 -0
- package/dist/src/expansion-panel/useExpansionList.js.map +1 -0
- package/dist/src/expansion-panel/useExpansionPanels.js.map +1 -0
- package/dist/src/focus/useFocusContainer.js.map +1 -0
- package/dist/src/focus/utils.js.map +1 -0
- package/dist/src/form/Checkbox.js.map +1 -0
- package/dist/src/form/Fieldset.js.map +1 -0
- package/dist/src/form/FileInput.js.map +1 -0
- package/dist/src/form/Form.js.map +1 -0
- package/dist/src/form/FormMessage.js.map +1 -0
- package/dist/src/form/FormMessageContainer.js.map +1 -0
- package/dist/src/form/FormMessageCounter.js.map +1 -0
- package/dist/src/form/InputToggle.js.map +1 -0
- package/dist/src/form/InputToggleIcon.js.map +1 -0
- package/dist/src/form/Label.js.map +1 -0
- package/dist/src/form/Legend.js.map +1 -0
- package/dist/src/form/MenuItemCheckbox.js.map +1 -0
- package/dist/src/form/MenuItemFileInput.js.map +1 -0
- package/dist/src/form/MenuItemInputToggle.js.map +1 -0
- package/dist/src/form/MenuItemRadio.js.map +1 -0
- package/dist/src/form/MenuItemSwitch.js.map +1 -0
- package/dist/src/form/MenuItemTextField.js.map +1 -0
- package/dist/src/form/NativeSelect.js.map +1 -0
- package/dist/src/form/OptGroup.js.map +1 -0
- package/dist/src/form/Option.js.map +1 -0
- package/dist/src/form/Password.js.map +1 -0
- package/dist/src/form/Radio.js.map +1 -0
- package/dist/src/form/Select.js.map +1 -0
- package/dist/src/form/SelectValue.js.map +1 -0
- package/dist/src/form/Slider.js.map +1 -0
- package/dist/src/form/SliderContainer.js.map +1 -0
- package/dist/src/form/SliderMark.js.map +1 -0
- package/dist/src/form/SliderMarkLabel.js.map +1 -0
- package/dist/src/form/SliderThumb.js.map +1 -0
- package/dist/src/form/SliderTrack.js.map +1 -0
- package/dist/src/form/SliderValueMarks.js.map +1 -0
- package/dist/src/form/SliderValueTooltip.js.map +1 -0
- package/dist/src/form/Switch.js.map +1 -0
- package/dist/src/form/SwitchTrack.js.map +1 -0
- package/dist/src/form/TextArea.js.map +1 -0
- package/dist/src/form/TextField.js.map +1 -0
- package/dist/src/form/TextFieldAddon.js.map +1 -0
- package/dist/src/form/TextFieldContainer.js.map +1 -0
- package/dist/src/form/TextFieldContainerStyles.js.map +1 -0
- package/dist/src/form/fileUtils.js.map +1 -0
- package/dist/src/form/formConfig.js.map +1 -0
- package/dist/src/form/formMessageStyles.js.map +1 -0
- package/dist/src/form/inputToggleStyles.js.map +1 -0
- package/dist/src/form/nativeSelectStyles.js.map +1 -0
- package/dist/src/form/optionStyles.js.map +1 -0
- package/dist/src/form/passwordStyles.js.map +1 -0
- package/dist/src/form/selectStyles.js.map +1 -0
- package/dist/src/form/selectUtils.js.map +1 -0
- package/dist/src/form/sliderUtils.js.map +1 -0
- package/dist/src/form/switchStyles.js.map +1 -0
- package/dist/src/form/textAreaStyles.js.map +1 -0
- package/dist/src/form/textFieldStyles.js.map +1 -0
- package/dist/src/form/types.js.map +1 -0
- package/dist/src/form/useCheckboxGroup.js.map +1 -0
- package/dist/src/form/useFileUpload.js.map +1 -0
- package/dist/src/form/useListboxProvider.js.map +1 -0
- package/dist/src/form/useNumberField.js.map +1 -0
- package/dist/src/form/useRadioGroup.js.map +1 -0
- package/dist/src/form/useRangeSlider.js.map +1 -0
- package/dist/src/form/useResizingTextArea.js.map +1 -0
- package/dist/src/form/useSlider.js.map +1 -0
- package/dist/src/form/useTextField.js.map +1 -0
- package/dist/src/form/utils.js.map +1 -0
- package/dist/src/form/validation.js.map +1 -0
- package/dist/src/hoverMode/useHoverMode.js.map +1 -0
- package/dist/src/hoverMode/useHoverModeProvider.js.map +1 -0
- package/dist/src/icon/FontIcon.js.map +1 -0
- package/dist/src/icon/IconRotator.js.map +1 -0
- package/dist/src/icon/MaterialIcon.js.map +1 -0
- package/dist/src/icon/MaterialSymbol.js.map +1 -0
- package/dist/src/icon/SVGIcon.js.map +1 -0
- package/dist/src/icon/TextIconSpacing.js.map +1 -0
- package/dist/src/icon/iconConfig.js.map +1 -0
- package/dist/src/icon/material.js.map +1 -0
- package/dist/src/icon/materialConfig.js.map +1 -0
- package/dist/src/icon/styles.js.map +1 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/interaction/Ripple.js.map +1 -0
- package/dist/src/interaction/RippleContainer.js.map +1 -0
- package/dist/src/interaction/UserInteractionModeProvider.js.map +1 -0
- package/dist/src/interaction/config.js.map +1 -0
- package/dist/src/interaction/types.js.map +1 -0
- package/dist/src/interaction/useElementInteraction.js.map +1 -0
- package/dist/src/interaction/useHigherContrastChildren.js.map +1 -0
- package/dist/src/interaction/utils.js.map +1 -0
- package/dist/src/layout/LayoutAppBar.js.map +1 -0
- package/dist/src/layout/LayoutNav.js.map +1 -0
- package/dist/src/layout/LayoutWindowSplitter.js.map +1 -0
- package/dist/src/layout/Main.js.map +1 -0
- package/dist/src/layout/layoutNavStyles.js.map +1 -0
- package/dist/src/layout/layoutWindowSplitterStyles.js.map +1 -0
- package/dist/src/layout/mainStyles.js.map +1 -0
- package/dist/src/layout/useExpandableLayout.js.map +1 -0
- package/dist/src/layout/useHorizontalLayoutTransition.js.map +1 -0
- package/dist/src/layout/useLayoutAppBarHeight.js.map +1 -0
- package/dist/src/layout/useLayoutTree.js.map +1 -0
- package/dist/src/layout/useLayoutWindowSplitter.js.map +1 -0
- package/dist/src/layout/useMainTabIndex.js.map +1 -0
- package/dist/src/layout/useResizableLayout.js.map +1 -0
- package/dist/src/layout/useTemporaryLayout.js.map +1 -0
- package/dist/src/link/Link.js.map +1 -0
- package/dist/src/link/SkipToMainContent.js.map +1 -0
- package/dist/src/link/styles.js.map +1 -0
- package/dist/src/list/List.js.map +1 -0
- package/dist/src/list/ListItem.js +148 -0
- package/dist/src/list/ListItem.js.map +1 -0
- package/dist/src/list/ListItemAddon.js.map +1 -0
- package/dist/src/list/ListItemChildren.js.map +1 -0
- package/dist/src/list/ListItemLink.js +89 -0
- package/dist/src/list/ListItemLink.js.map +1 -0
- package/dist/src/list/ListItemText.js.map +1 -0
- package/dist/src/list/ListSubheader.js.map +1 -0
- package/dist/src/list/getListItemHeight.js +28 -0
- package/dist/src/list/getListItemHeight.js.map +1 -0
- package/dist/src/list/listItemStyles.js.map +1 -0
- package/dist/src/list/types.js.map +1 -0
- package/dist/src/media-queries/AppSizeProvider.js.map +1 -0
- package/dist/src/media-queries/appSize.js.map +1 -0
- package/dist/src/media-queries/useMediaQuery.js.map +1 -0
- package/dist/src/menu/DropdownMenu.js.map +1 -0
- package/dist/src/menu/Menu.js.map +1 -0
- package/dist/src/menu/MenuBar.js.map +1 -0
- package/dist/src/menu/MenuButton.js.map +1 -0
- package/dist/src/menu/MenuConfigurationProvider.js.map +1 -0
- package/dist/src/menu/MenuItem.js.map +1 -0
- package/dist/src/menu/MenuItemButton.js.map +1 -0
- package/dist/src/menu/MenuItemGroup.js.map +1 -0
- package/dist/src/menu/MenuItemSeparator.js.map +1 -0
- package/dist/src/menu/MenuSheet.js.map +1 -0
- package/dist/src/menu/MenuVisibilityProvider.js.map +1 -0
- package/dist/src/menu/MenuWidget.js.map +1 -0
- package/dist/src/menu/MenuWidgetKeyboardProvider.js.map +1 -0
- package/dist/src/menu/useContextMenu.js.map +1 -0
- package/dist/src/menu/useMenuBarProvider.js.map +1 -0
- package/dist/src/menu/utils.js.map +1 -0
- package/dist/src/movement/constants.js.map +1 -0
- package/dist/src/movement/findMatchIndex.js.map +1 -0
- package/dist/src/movement/types.js.map +1 -0
- package/dist/src/movement/useKeyboardMovementProvider.js.map +1 -0
- package/dist/src/movement/utils.js.map +1 -0
- package/dist/src/overlay/Overlay.js.map +1 -0
- package/dist/src/overlay/overlayStyles.js.map +1 -0
- package/dist/src/portal/Portal.js.map +1 -0
- package/dist/src/portal/PortalContainerProvider.js.map +1 -0
- package/dist/src/positioning/constants.js.map +1 -0
- package/dist/src/positioning/createHorizontalPosition.js.map +1 -0
- package/dist/src/positioning/createVerticalPosition.js.map +1 -0
- package/dist/src/positioning/getFixedPosition.js.map +1 -0
- package/dist/src/positioning/types.js.map +1 -0
- package/dist/src/positioning/useFixedPositioning.js.map +1 -0
- package/dist/src/positioning/utils.js.map +1 -0
- package/dist/src/progress/CircularProgress.js.map +1 -0
- package/dist/src/progress/LinearProgress.js.map +1 -0
- package/dist/src/progress/getProgressA11y.js.map +1 -0
- package/dist/src/progress/types.js.map +1 -0
- package/dist/src/responsive-item/ResponsiveItemContainer.js.map +1 -0
- package/dist/src/responsive-item/ResponsiveItemOverlay.js.map +1 -0
- package/dist/src/responsive-item/styles.js.map +1 -0
- package/dist/src/scroll/ScrollLock.js.map +1 -0
- package/dist/src/scroll/getScrollbarWidth.js.map +1 -0
- package/dist/src/scroll/useScrollLock.js.map +1 -0
- package/dist/src/segmented-button/SegmentedButton.js.map +1 -0
- package/dist/src/segmented-button/SegmentedButtonContainer.js.map +1 -0
- package/dist/src/segmented-button/segmentedButtonContainerStyles.js.map +1 -0
- package/dist/src/segmented-button/segmentedButtonStyles.js.map +1 -0
- package/dist/src/sheet/Sheet.js.map +1 -0
- package/dist/src/sheet/styles.js.map +1 -0
- package/dist/src/snackbar/DefaultToastRenderer.js.map +1 -0
- package/dist/src/snackbar/Snackbar.js.map +1 -0
- package/dist/src/snackbar/Toast.js.map +1 -0
- package/dist/src/snackbar/ToastActionButton.js.map +1 -0
- package/dist/src/snackbar/ToastCloseButton.js.map +1 -0
- package/dist/src/snackbar/ToastContent.js.map +1 -0
- package/dist/src/snackbar/ToastManager.js.map +1 -0
- package/dist/src/snackbar/ToastManagerProvider.js.map +1 -0
- package/dist/src/snackbar/snackbarStyles.js.map +1 -0
- package/dist/src/snackbar/toastContentStyles.js.map +1 -0
- package/dist/src/snackbar/toastStyles.js.map +1 -0
- package/dist/src/snackbar/useCurrentToastActions.js.map +1 -0
- package/dist/src/suspense/CircularProgressSuspense.js.map +1 -0
- package/dist/src/suspense/NullSuspense.js.map +1 -0
- package/dist/src/table/Table.js.map +1 -0
- package/dist/src/table/TableBody.js.map +1 -0
- package/dist/src/table/TableCell.js.map +1 -0
- package/dist/src/table/TableCellContent.js.map +1 -0
- package/dist/src/table/TableCheckbox.js.map +1 -0
- package/dist/src/table/TableConfigurationProvider.js.map +1 -0
- package/dist/src/table/TableContainer.js.map +1 -0
- package/dist/src/table/TableContainerProvider.js.map +1 -0
- package/dist/src/table/TableFooter.js.map +1 -0
- package/dist/src/table/TableHeader.js.map +1 -0
- package/dist/src/table/TableRadio.js.map +1 -0
- package/dist/src/table/TableRow.js.map +1 -0
- package/dist/src/table/tableCellStyles.js.map +1 -0
- package/dist/src/table/tableContainerStyles.js.map +1 -0
- package/dist/src/table/tableFooterStyles.js.map +1 -0
- package/dist/src/table/tableHeaderStyles.js.map +1 -0
- package/dist/src/table/tableRowStyles.js.map +1 -0
- package/dist/src/table/tableStyles.js.map +1 -0
- package/dist/src/table/types.js.map +1 -0
- package/dist/src/tabs/Tab.js.map +1 -0
- package/dist/src/tabs/TabList.js.map +1 -0
- package/dist/src/tabs/TabListScrollButton.js.map +1 -0
- package/dist/src/tabs/tabIndicatorStyles.js.map +1 -0
- package/dist/src/tabs/tabListScrollButtonStyles.js.map +1 -0
- package/dist/src/tabs/tabListStyles.js.map +1 -0
- package/dist/src/tabs/tabStyles.js.map +1 -0
- package/dist/src/tabs/useTabList.js.map +1 -0
- package/dist/src/tabs/useTabs.js.map +1 -0
- package/dist/src/tabs/utils.js.map +1 -0
- package/dist/src/test-utils/IntersectionObserver.js.map +1 -0
- package/dist/src/test-utils/ResizeObserver.js.map +1 -0
- package/dist/src/test-utils/data-testid.js.map +1 -0
- package/dist/src/test-utils/index.js.map +1 -0
- package/dist/src/test-utils/jest-setup.js.map +1 -0
- package/dist/src/test-utils/matchMedia.js.map +1 -0
- package/dist/src/test-utils/polyfills/IntersectionObserver.js.map +1 -0
- package/dist/src/test-utils/polyfills/ResizeObserver.js.map +1 -0
- package/dist/src/test-utils/polyfills/index.js.map +1 -0
- package/dist/src/test-utils/polyfills/matchMedia.js.map +1 -0
- package/dist/src/test-utils/polyfills/offsetParent.js.map +1 -0
- package/dist/src/test-utils/polyfills/scrollIntoView.js.map +1 -0
- package/dist/src/test-utils/render.js.map +1 -0
- package/dist/src/test-utils/timers.js.map +1 -0
- package/dist/src/theme/LocalStorageColorSchemeProvider.js.map +1 -0
- package/dist/src/theme/ThemeProvider.js.map +1 -0
- package/dist/src/theme/colors.js.map +1 -0
- package/dist/src/theme/cssVars.js.map +1 -0
- package/dist/src/theme/types.js.map +1 -0
- package/dist/src/theme/useCSSVariables.js.map +1 -0
- package/dist/src/theme/useColorScheme.js.map +1 -0
- package/dist/src/theme/useColorSchemeMetaTag.js.map +1 -0
- package/dist/src/theme/useColorSchemeProvider.js.map +1 -0
- package/dist/src/theme/usePrefersColorScheme.js.map +1 -0
- package/dist/src/theme/utils.js.map +1 -0
- package/dist/src/tooltip/Tooltip.js.map +1 -0
- package/dist/src/tooltip/TooltipHoverModeProvider.js.map +1 -0
- package/dist/src/tooltip/constants.js.map +1 -0
- package/dist/src/tooltip/tooltipStyles.js.map +1 -0
- package/dist/src/tooltip/useTooltip.js.map +1 -0
- package/dist/src/tooltip/useTooltipPosition.js.map +1 -0
- package/dist/src/tooltip/utils.js.map +1 -0
- package/dist/src/transition/CSSTransition.js.map +1 -0
- package/dist/src/transition/Collapse.js.map +1 -0
- package/dist/src/transition/CrossFade.js.map +1 -0
- package/dist/src/transition/ScaleTransition.js.map +1 -0
- package/dist/src/transition/SkeletonPlaceholder.js.map +1 -0
- package/dist/src/transition/Slide.js.map +1 -0
- package/dist/src/transition/SlideContainer.js.map +1 -0
- package/dist/src/transition/collapseStyles.js.map +1 -0
- package/dist/src/transition/config.js.map +1 -0
- package/dist/src/transition/maxWidthTransition.js.map +1 -0
- package/dist/src/transition/skeletonPlaceholderUtils.js.map +1 -0
- package/dist/src/transition/types.js.map +1 -0
- package/dist/src/transition/useCSSTransition.js.map +1 -0
- package/dist/src/transition/useCarousel.js.map +1 -0
- package/dist/src/transition/useCollapseTransition.js.map +1 -0
- package/dist/src/transition/useCrossFadeTransition.js.map +1 -0
- package/dist/src/transition/useMaxWidthTransition.js.map +1 -0
- package/dist/src/transition/useScaleTransition.js.map +1 -0
- package/dist/src/transition/useSkeletonPlaceholder.js.map +1 -0
- package/dist/src/transition/useSlideTransition.js.map +1 -0
- package/dist/src/transition/useTransition.js.map +1 -0
- package/dist/src/transition/utils.js.map +1 -0
- package/dist/src/tree/DefaultTreeItemRenderer.js.map +1 -0
- package/dist/src/tree/Tree.js.map +1 -0
- package/dist/src/tree/TreeGroup.js.map +1 -0
- package/dist/src/tree/TreeItem.js.map +1 -0
- package/dist/src/tree/TreeItemExpander.js.map +1 -0
- package/dist/src/tree/TreeProvider.js.map +1 -0
- package/dist/src/tree/styles.js.map +1 -0
- package/dist/src/tree/types.js.map +1 -0
- package/dist/src/tree/useTree.js.map +1 -0
- package/dist/src/tree/useTreeExpansion.js.map +1 -0
- package/dist/src/tree/useTreeItems.js.map +1 -0
- package/dist/src/tree/useTreeMovement.js.map +1 -0
- package/dist/src/tree/useTreeSelection.js.map +1 -0
- package/dist/src/tree/utils.js.map +1 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/typography/SrOnly.js.map +1 -0
- package/dist/src/typography/TextContainer.js.map +1 -0
- package/dist/src/typography/Typography.js.map +1 -0
- package/dist/src/typography/WritingDirectionProvider.js.map +1 -0
- package/dist/src/useAsyncAction.js.map +1 -0
- package/dist/src/useDebouncedFunction.js.map +1 -0
- package/dist/src/useDropzone.js.map +1 -0
- package/dist/src/useElementSize.js.map +1 -0
- package/dist/src/useEnsuredId.js.map +1 -0
- package/dist/src/useEnsuredRef.js.map +1 -0
- package/dist/src/useEnsuredState.js.map +1 -0
- package/dist/src/useHtmlClassName.js.map +1 -0
- package/dist/src/useIntersectionObserver.js.map +1 -0
- package/dist/src/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/src/useLocalStorage.js.map +1 -0
- package/dist/src/useOrientation.js.map +1 -0
- package/dist/src/usePageInactive.js.map +1 -0
- package/dist/src/useResizeListener.js.map +1 -0
- package/dist/src/useResizeObserver.js.map +1 -0
- package/dist/src/useThrottledFunction.js.map +1 -0
- package/dist/src/useToggle.js.map +1 -0
- package/dist/src/useUnmounted.js.map +1 -0
- package/dist/src/useWindowSize.js.map +1 -0
- package/dist/src/utils/RenderRecursively.js.map +1 -0
- package/dist/src/utils/alphaNumericSort.js.map +1 -0
- package/dist/src/utils/applyRef.js.map +1 -0
- package/dist/src/utils/bem.js.map +1 -0
- package/dist/src/utils/filters.js.map +1 -0
- package/dist/src/utils/getClientPosition.js.map +1 -0
- package/dist/src/utils/getMiddleOfRange.js.map +1 -0
- package/dist/src/utils/getPercentage.js.map +1 -0
- package/dist/src/utils/getRangeDefaultValue.js.map +1 -0
- package/dist/src/utils/getRangeSteps.js.map +1 -0
- package/dist/src/utils/identity.js.map +1 -0
- package/dist/src/utils/isElementVisible.js.map +1 -0
- package/dist/src/utils/loop.js.map +1 -0
- package/dist/src/utils/nearest.js.map +1 -0
- package/dist/src/utils/parseCssLengthUnit.js.map +1 -0
- package/dist/src/utils/randomInt.js.map +1 -0
- package/dist/src/utils/wait.js.map +1 -0
- package/dist/src/utils/withinRange.js.map +1 -0
- package/dist/src/window-splitter/WindowSplitter.js.map +1 -0
- package/dist/src/window-splitter/useWindowSplitter.js.map +1 -0
- package/dist/theme/_theme.scss +20 -10
- package/package.json +8 -8
- package/src/_core.scss +1 -1
- package/src/form/_form.scss +1 -1
- package/src/list/ListItem.tsx +1 -1
- package/src/list/ListItemLink.tsx +1 -1
- package/src/list/__tests__/getListItemHeight.ts +2 -2
- package/src/list/getListItemHeight.ts +2 -3
- package/src/list/types.ts +1 -1
- package/src/menu/_menu.scss +0 -2
- package/src/theme/_theme.scss +20 -10
- package/dist/CoreProviders.js.map +0 -1
- package/dist/NoSsr.js.map +0 -1
- package/dist/SsrProvider.js.map +0 -1
- package/dist/app-bar/AppBar.js.map +0 -1
- package/dist/app-bar/AppBarTitle.js.map +0 -1
- package/dist/avatar/Avatar.js.map +0 -1
- package/dist/avatar/styles.js.map +0 -1
- package/dist/badge/Badge.js.map +0 -1
- package/dist/box/Box.js.map +0 -1
- package/dist/box/styles.js.map +0 -1
- package/dist/button/AsyncButton.js.map +0 -1
- package/dist/button/Button.js.map +0 -1
- package/dist/button/ButtonUnstyled.js.map +0 -1
- package/dist/button/FloatingActionButton.js.map +0 -1
- package/dist/button/TooltippedButton.js.map +0 -1
- package/dist/button/buttonStyles.js.map +0 -1
- package/dist/button/buttonUnstyledStyles.js.map +0 -1
- package/dist/card/Card.js.map +0 -1
- package/dist/card/CardContent.js.map +0 -1
- package/dist/card/CardFooter.js.map +0 -1
- package/dist/card/CardHeader.js.map +0 -1
- package/dist/card/CardSubtitle.js.map +0 -1
- package/dist/card/CardTitle.js.map +0 -1
- package/dist/card/ClickableCard.js.map +0 -1
- package/dist/card/styles.js.map +0 -1
- package/dist/chip/Chip.js.map +0 -1
- package/dist/chip/styles.js.map +0 -1
- package/dist/cssUtils.js.map +0 -1
- package/dist/delegateEvent.js.map +0 -1
- package/dist/dialog/Dialog.js.map +0 -1
- package/dist/dialog/DialogContainer.js.map +0 -1
- package/dist/dialog/DialogContent.js.map +0 -1
- package/dist/dialog/DialogFooter.js.map +0 -1
- package/dist/dialog/DialogHeader.js.map +0 -1
- package/dist/dialog/DialogTitle.js.map +0 -1
- package/dist/dialog/FixedDialog.js.map +0 -1
- package/dist/dialog/NestedDialogProvider.js.map +0 -1
- package/dist/dialog/styles.js.map +0 -1
- package/dist/divider/Divider.js.map +0 -1
- package/dist/divider/styles.js.map +0 -1
- package/dist/draggable/useDraggable.js.map +0 -1
- package/dist/draggable/utils.js.map +0 -1
- package/dist/expansion-panel/ExpansionList.js.map +0 -1
- package/dist/expansion-panel/ExpansionPanel.js.map +0 -1
- package/dist/expansion-panel/ExpansionPanelHeader.js.map +0 -1
- package/dist/expansion-panel/useExpansionList.js.map +0 -1
- package/dist/expansion-panel/useExpansionPanels.js.map +0 -1
- package/dist/focus/useFocusContainer.js.map +0 -1
- package/dist/focus/utils.js.map +0 -1
- package/dist/form/Checkbox.js.map +0 -1
- package/dist/form/Fieldset.js.map +0 -1
- package/dist/form/FileInput.js.map +0 -1
- package/dist/form/Form.js.map +0 -1
- package/dist/form/FormMessage.js.map +0 -1
- package/dist/form/FormMessageContainer.js.map +0 -1
- package/dist/form/FormMessageCounter.js.map +0 -1
- package/dist/form/InputToggle.js.map +0 -1
- package/dist/form/InputToggleIcon.js.map +0 -1
- package/dist/form/Label.js.map +0 -1
- package/dist/form/Legend.js.map +0 -1
- package/dist/form/MenuItemCheckbox.js.map +0 -1
- package/dist/form/MenuItemFileInput.js.map +0 -1
- package/dist/form/MenuItemInputToggle.js.map +0 -1
- package/dist/form/MenuItemRadio.js.map +0 -1
- package/dist/form/MenuItemSwitch.js.map +0 -1
- package/dist/form/MenuItemTextField.js.map +0 -1
- package/dist/form/NativeSelect.js.map +0 -1
- package/dist/form/OptGroup.js.map +0 -1
- package/dist/form/Option.js.map +0 -1
- package/dist/form/Password.js.map +0 -1
- package/dist/form/Radio.js.map +0 -1
- package/dist/form/Select.js.map +0 -1
- package/dist/form/SelectValue.js.map +0 -1
- package/dist/form/Slider.js.map +0 -1
- package/dist/form/SliderContainer.js.map +0 -1
- package/dist/form/SliderMark.js.map +0 -1
- package/dist/form/SliderMarkLabel.js.map +0 -1
- package/dist/form/SliderThumb.js.map +0 -1
- package/dist/form/SliderTrack.js.map +0 -1
- package/dist/form/SliderValueMarks.js.map +0 -1
- package/dist/form/SliderValueTooltip.js.map +0 -1
- package/dist/form/Switch.js.map +0 -1
- package/dist/form/SwitchTrack.js.map +0 -1
- package/dist/form/TextArea.js.map +0 -1
- package/dist/form/TextField.js.map +0 -1
- package/dist/form/TextFieldAddon.js.map +0 -1
- package/dist/form/TextFieldContainer.js.map +0 -1
- package/dist/form/TextFieldContainerStyles.js.map +0 -1
- package/dist/form/fileUtils.js.map +0 -1
- package/dist/form/formConfig.js.map +0 -1
- package/dist/form/formMessageStyles.js.map +0 -1
- package/dist/form/inputToggleStyles.js.map +0 -1
- package/dist/form/nativeSelectStyles.js.map +0 -1
- package/dist/form/optionStyles.js.map +0 -1
- package/dist/form/passwordStyles.js.map +0 -1
- package/dist/form/selectStyles.js.map +0 -1
- package/dist/form/selectUtils.js.map +0 -1
- package/dist/form/sliderUtils.js.map +0 -1
- package/dist/form/switchStyles.js.map +0 -1
- package/dist/form/textAreaStyles.js.map +0 -1
- package/dist/form/textFieldStyles.js.map +0 -1
- package/dist/form/types.js.map +0 -1
- package/dist/form/useCheckboxGroup.js.map +0 -1
- package/dist/form/useFileUpload.js.map +0 -1
- package/dist/form/useListboxProvider.js.map +0 -1
- package/dist/form/useNumberField.js.map +0 -1
- package/dist/form/useRadioGroup.js.map +0 -1
- package/dist/form/useRangeSlider.js.map +0 -1
- package/dist/form/useResizingTextArea.js.map +0 -1
- package/dist/form/useSlider.js.map +0 -1
- package/dist/form/useTextField.js.map +0 -1
- package/dist/form/utils.js.map +0 -1
- package/dist/form/validation.js.map +0 -1
- package/dist/hoverMode/useHoverMode.js.map +0 -1
- package/dist/hoverMode/useHoverModeProvider.js.map +0 -1
- package/dist/icon/FontIcon.js.map +0 -1
- package/dist/icon/IconRotator.js.map +0 -1
- package/dist/icon/MaterialIcon.js.map +0 -1
- package/dist/icon/MaterialSymbol.js.map +0 -1
- package/dist/icon/SVGIcon.js.map +0 -1
- package/dist/icon/TextIconSpacing.js.map +0 -1
- package/dist/icon/iconConfig.js.map +0 -1
- package/dist/icon/material.js.map +0 -1
- package/dist/icon/materialConfig.js.map +0 -1
- package/dist/icon/styles.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/interaction/Ripple.js.map +0 -1
- package/dist/interaction/RippleContainer.js.map +0 -1
- package/dist/interaction/UserInteractionModeProvider.js.map +0 -1
- package/dist/interaction/config.js.map +0 -1
- package/dist/interaction/types.js.map +0 -1
- package/dist/interaction/useElementInteraction.js.map +0 -1
- package/dist/interaction/useHigherContrastChildren.js.map +0 -1
- package/dist/interaction/utils.js.map +0 -1
- package/dist/layout/LayoutAppBar.js.map +0 -1
- package/dist/layout/LayoutNav.js.map +0 -1
- package/dist/layout/LayoutWindowSplitter.js.map +0 -1
- package/dist/layout/Main.js.map +0 -1
- package/dist/layout/layoutNavStyles.js.map +0 -1
- package/dist/layout/layoutWindowSplitterStyles.js.map +0 -1
- package/dist/layout/mainStyles.js.map +0 -1
- package/dist/layout/useExpandableLayout.js.map +0 -1
- package/dist/layout/useHorizontalLayoutTransition.js.map +0 -1
- package/dist/layout/useLayoutAppBarHeight.js.map +0 -1
- package/dist/layout/useLayoutTree.js.map +0 -1
- package/dist/layout/useLayoutWindowSplitter.js.map +0 -1
- package/dist/layout/useMainTabIndex.js.map +0 -1
- package/dist/layout/useResizableLayout.js.map +0 -1
- package/dist/layout/useTemporaryLayout.js.map +0 -1
- package/dist/link/Link.js.map +0 -1
- package/dist/link/SkipToMainContent.js.map +0 -1
- package/dist/link/styles.js.map +0 -1
- package/dist/list/List.js.map +0 -1
- package/dist/list/ListItem.js +0 -148
- package/dist/list/ListItem.js.map +0 -1
- package/dist/list/ListItemAddon.js.map +0 -1
- package/dist/list/ListItemChildren.js.map +0 -1
- package/dist/list/ListItemLink.js +0 -89
- package/dist/list/ListItemLink.js.map +0 -1
- package/dist/list/ListItemText.js.map +0 -1
- package/dist/list/ListSubheader.js.map +0 -1
- package/dist/list/getListItemHeight.js +0 -28
- package/dist/list/getListItemHeight.js.map +0 -1
- package/dist/list/listItemStyles.js.map +0 -1
- package/dist/list/types.js.map +0 -1
- package/dist/media-queries/AppSizeProvider.js.map +0 -1
- package/dist/media-queries/appSize.js.map +0 -1
- package/dist/media-queries/useMediaQuery.js.map +0 -1
- package/dist/menu/DropdownMenu.js.map +0 -1
- package/dist/menu/Menu.js.map +0 -1
- package/dist/menu/MenuBar.js.map +0 -1
- package/dist/menu/MenuButton.js.map +0 -1
- package/dist/menu/MenuConfigurationProvider.js.map +0 -1
- package/dist/menu/MenuItem.js.map +0 -1
- package/dist/menu/MenuItemButton.js.map +0 -1
- package/dist/menu/MenuItemGroup.js.map +0 -1
- package/dist/menu/MenuItemSeparator.js.map +0 -1
- package/dist/menu/MenuSheet.js.map +0 -1
- package/dist/menu/MenuVisibilityProvider.js.map +0 -1
- package/dist/menu/MenuWidget.js.map +0 -1
- package/dist/menu/MenuWidgetKeyboardProvider.js.map +0 -1
- package/dist/menu/useContextMenu.js.map +0 -1
- package/dist/menu/useMenuBarProvider.js.map +0 -1
- package/dist/menu/utils.js.map +0 -1
- package/dist/movement/constants.js.map +0 -1
- package/dist/movement/findMatchIndex.js.map +0 -1
- package/dist/movement/types.js.map +0 -1
- package/dist/movement/useKeyboardMovementProvider.js.map +0 -1
- package/dist/movement/utils.js.map +0 -1
- package/dist/overlay/Overlay.js.map +0 -1
- package/dist/overlay/overlayStyles.js.map +0 -1
- package/dist/portal/Portal.js.map +0 -1
- package/dist/portal/PortalContainerProvider.js.map +0 -1
- package/dist/positioning/constants.js.map +0 -1
- package/dist/positioning/createHorizontalPosition.js.map +0 -1
- package/dist/positioning/createVerticalPosition.js.map +0 -1
- package/dist/positioning/getFixedPosition.js.map +0 -1
- package/dist/positioning/types.js.map +0 -1
- package/dist/positioning/useFixedPositioning.js.map +0 -1
- package/dist/positioning/utils.js.map +0 -1
- package/dist/progress/CircularProgress.js.map +0 -1
- package/dist/progress/LinearProgress.js.map +0 -1
- package/dist/progress/getProgressA11y.js.map +0 -1
- package/dist/progress/types.js.map +0 -1
- package/dist/responsive-item/ResponsiveItemContainer.js.map +0 -1
- package/dist/responsive-item/ResponsiveItemOverlay.js.map +0 -1
- package/dist/responsive-item/styles.js.map +0 -1
- package/dist/scroll/ScrollLock.js.map +0 -1
- package/dist/scroll/getScrollbarWidth.js.map +0 -1
- package/dist/scroll/useScrollLock.js.map +0 -1
- package/dist/segmented-button/SegmentedButton.js.map +0 -1
- package/dist/segmented-button/SegmentedButtonContainer.js.map +0 -1
- package/dist/segmented-button/segmentedButtonContainerStyles.js.map +0 -1
- package/dist/segmented-button/segmentedButtonStyles.js.map +0 -1
- package/dist/sheet/Sheet.js.map +0 -1
- package/dist/sheet/styles.js.map +0 -1
- package/dist/snackbar/DefaultToastRenderer.js.map +0 -1
- package/dist/snackbar/Snackbar.js.map +0 -1
- package/dist/snackbar/Toast.js.map +0 -1
- package/dist/snackbar/ToastActionButton.js.map +0 -1
- package/dist/snackbar/ToastCloseButton.js.map +0 -1
- package/dist/snackbar/ToastContent.js.map +0 -1
- package/dist/snackbar/ToastManager.js.map +0 -1
- package/dist/snackbar/ToastManagerProvider.js.map +0 -1
- package/dist/snackbar/snackbarStyles.js.map +0 -1
- package/dist/snackbar/toastContentStyles.js.map +0 -1
- package/dist/snackbar/toastStyles.js.map +0 -1
- package/dist/snackbar/useCurrentToastActions.js.map +0 -1
- package/dist/suspense/CircularProgressSuspense.js.map +0 -1
- package/dist/suspense/NullSuspense.js.map +0 -1
- package/dist/table/Table.js.map +0 -1
- package/dist/table/TableBody.js.map +0 -1
- package/dist/table/TableCell.js.map +0 -1
- package/dist/table/TableCellContent.js.map +0 -1
- package/dist/table/TableCheckbox.js.map +0 -1
- package/dist/table/TableConfigurationProvider.js.map +0 -1
- package/dist/table/TableContainer.js.map +0 -1
- package/dist/table/TableContainerProvider.js.map +0 -1
- package/dist/table/TableFooter.js.map +0 -1
- package/dist/table/TableHeader.js.map +0 -1
- package/dist/table/TableRadio.js.map +0 -1
- package/dist/table/TableRow.js.map +0 -1
- package/dist/table/tableCellStyles.js.map +0 -1
- package/dist/table/tableContainerStyles.js.map +0 -1
- package/dist/table/tableFooterStyles.js.map +0 -1
- package/dist/table/tableHeaderStyles.js.map +0 -1
- package/dist/table/tableRowStyles.js.map +0 -1
- package/dist/table/tableStyles.js.map +0 -1
- package/dist/table/types.js.map +0 -1
- package/dist/tabs/Tab.js.map +0 -1
- package/dist/tabs/TabList.js.map +0 -1
- package/dist/tabs/TabListScrollButton.js.map +0 -1
- package/dist/tabs/tabIndicatorStyles.js.map +0 -1
- package/dist/tabs/tabListScrollButtonStyles.js.map +0 -1
- package/dist/tabs/tabListStyles.js.map +0 -1
- package/dist/tabs/tabStyles.js.map +0 -1
- package/dist/tabs/useTabList.js.map +0 -1
- package/dist/tabs/useTabs.js.map +0 -1
- package/dist/tabs/utils.js.map +0 -1
- package/dist/test-utils/IntersectionObserver.js.map +0 -1
- package/dist/test-utils/ResizeObserver.js.map +0 -1
- package/dist/test-utils/data-testid.js.map +0 -1
- package/dist/test-utils/index.js.map +0 -1
- package/dist/test-utils/jest-setup.js.map +0 -1
- package/dist/test-utils/matchMedia.js.map +0 -1
- package/dist/test-utils/polyfills/IntersectionObserver.js.map +0 -1
- package/dist/test-utils/polyfills/ResizeObserver.js.map +0 -1
- package/dist/test-utils/polyfills/index.js.map +0 -1
- package/dist/test-utils/polyfills/matchMedia.js.map +0 -1
- package/dist/test-utils/polyfills/offsetParent.js.map +0 -1
- package/dist/test-utils/polyfills/scrollIntoView.js.map +0 -1
- package/dist/test-utils/render.js.map +0 -1
- package/dist/test-utils/timers.js.map +0 -1
- package/dist/theme/LocalStorageColorSchemeProvider.js.map +0 -1
- package/dist/theme/ThemeProvider.js.map +0 -1
- package/dist/theme/colors.js.map +0 -1
- package/dist/theme/cssVars.js.map +0 -1
- package/dist/theme/types.js.map +0 -1
- package/dist/theme/useCSSVariables.js.map +0 -1
- package/dist/theme/useColorScheme.js.map +0 -1
- package/dist/theme/useColorSchemeMetaTag.js.map +0 -1
- package/dist/theme/useColorSchemeProvider.js.map +0 -1
- package/dist/theme/usePrefersColorScheme.js.map +0 -1
- package/dist/theme/utils.js.map +0 -1
- package/dist/tooltip/Tooltip.js.map +0 -1
- package/dist/tooltip/TooltipHoverModeProvider.js.map +0 -1
- package/dist/tooltip/constants.js.map +0 -1
- package/dist/tooltip/tooltipStyles.js.map +0 -1
- package/dist/tooltip/useTooltip.js.map +0 -1
- package/dist/tooltip/useTooltipPosition.js.map +0 -1
- package/dist/tooltip/utils.js.map +0 -1
- package/dist/transition/CSSTransition.js.map +0 -1
- package/dist/transition/Collapse.js.map +0 -1
- package/dist/transition/CrossFade.js.map +0 -1
- package/dist/transition/ScaleTransition.js.map +0 -1
- package/dist/transition/SkeletonPlaceholder.js.map +0 -1
- package/dist/transition/Slide.js.map +0 -1
- package/dist/transition/SlideContainer.js.map +0 -1
- package/dist/transition/collapseStyles.js.map +0 -1
- package/dist/transition/config.js.map +0 -1
- package/dist/transition/maxWidthTransition.js.map +0 -1
- package/dist/transition/skeletonPlaceholderUtils.js.map +0 -1
- package/dist/transition/types.js.map +0 -1
- package/dist/transition/useCSSTransition.js.map +0 -1
- package/dist/transition/useCarousel.js.map +0 -1
- package/dist/transition/useCollapseTransition.js.map +0 -1
- package/dist/transition/useCrossFadeTransition.js.map +0 -1
- package/dist/transition/useMaxWidthTransition.js.map +0 -1
- package/dist/transition/useScaleTransition.js.map +0 -1
- package/dist/transition/useSkeletonPlaceholder.js.map +0 -1
- package/dist/transition/useSlideTransition.js.map +0 -1
- package/dist/transition/useTransition.js.map +0 -1
- package/dist/transition/utils.js.map +0 -1
- package/dist/tree/DefaultTreeItemRenderer.js.map +0 -1
- package/dist/tree/Tree.js.map +0 -1
- package/dist/tree/TreeGroup.js.map +0 -1
- package/dist/tree/TreeItem.js.map +0 -1
- package/dist/tree/TreeItemExpander.js.map +0 -1
- package/dist/tree/TreeProvider.js.map +0 -1
- package/dist/tree/styles.js.map +0 -1
- package/dist/tree/types.js.map +0 -1
- package/dist/tree/useTree.js.map +0 -1
- package/dist/tree/useTreeExpansion.js.map +0 -1
- package/dist/tree/useTreeItems.js.map +0 -1
- package/dist/tree/useTreeMovement.js.map +0 -1
- package/dist/tree/useTreeSelection.js.map +0 -1
- package/dist/tree/utils.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/typography/SrOnly.js.map +0 -1
- package/dist/typography/TextContainer.js.map +0 -1
- package/dist/typography/Typography.js.map +0 -1
- package/dist/typography/WritingDirectionProvider.js.map +0 -1
- package/dist/useAsyncAction.js.map +0 -1
- package/dist/useDebouncedFunction.js.map +0 -1
- package/dist/useDropzone.js.map +0 -1
- package/dist/useElementSize.js.map +0 -1
- package/dist/useEnsuredId.js.map +0 -1
- package/dist/useEnsuredRef.js.map +0 -1
- package/dist/useEnsuredState.js.map +0 -1
- package/dist/useHtmlClassName.js.map +0 -1
- package/dist/useIntersectionObserver.js.map +0 -1
- package/dist/useIsomorphicLayoutEffect.js.map +0 -1
- package/dist/useLocalStorage.js.map +0 -1
- package/dist/useOrientation.js.map +0 -1
- package/dist/usePageInactive.js.map +0 -1
- package/dist/useResizeListener.js.map +0 -1
- package/dist/useResizeObserver.js.map +0 -1
- package/dist/useThrottledFunction.js.map +0 -1
- package/dist/useToggle.js.map +0 -1
- package/dist/useUnmounted.js.map +0 -1
- package/dist/useWindowSize.js.map +0 -1
- package/dist/utils/RenderRecursively.js.map +0 -1
- package/dist/utils/alphaNumericSort.js.map +0 -1
- package/dist/utils/applyRef.js.map +0 -1
- package/dist/utils/bem.js.map +0 -1
- package/dist/utils/filters.js.map +0 -1
- package/dist/utils/getClientPosition.js.map +0 -1
- package/dist/utils/getMiddleOfRange.js.map +0 -1
- package/dist/utils/getPercentage.js.map +0 -1
- package/dist/utils/getRangeDefaultValue.js.map +0 -1
- package/dist/utils/getRangeSteps.js.map +0 -1
- package/dist/utils/identity.js.map +0 -1
- package/dist/utils/isElementVisible.js.map +0 -1
- package/dist/utils/loop.js.map +0 -1
- package/dist/utils/nearest.js.map +0 -1
- package/dist/utils/parseCssLengthUnit.js.map +0 -1
- package/dist/utils/randomInt.js.map +0 -1
- package/dist/utils/wait.js.map +0 -1
- package/dist/utils/withinRange.js.map +0 -1
- package/dist/window-splitter/WindowSplitter.js.map +0 -1
- package/dist/window-splitter/useWindowSplitter.js.map +0 -1
- /package/dist/{CoreProviders.js → src/CoreProviders.js} +0 -0
- /package/dist/{NoSsr.js → src/NoSsr.js} +0 -0
- /package/dist/{SsrProvider.js → src/SsrProvider.js} +0 -0
- /package/dist/{app-bar → src/app-bar}/AppBar.js +0 -0
- /package/dist/{app-bar → src/app-bar}/AppBarTitle.js +0 -0
- /package/dist/{avatar → src/avatar}/Avatar.js +0 -0
- /package/dist/{avatar → src/avatar}/styles.js +0 -0
- /package/dist/{badge → src/badge}/Badge.js +0 -0
- /package/dist/{box → src/box}/Box.js +0 -0
- /package/dist/{box → src/box}/styles.js +0 -0
- /package/dist/{button → src/button}/AsyncButton.js +0 -0
- /package/dist/{button → src/button}/Button.js +0 -0
- /package/dist/{button → src/button}/ButtonUnstyled.js +0 -0
- /package/dist/{button → src/button}/FloatingActionButton.js +0 -0
- /package/dist/{button → src/button}/TooltippedButton.js +0 -0
- /package/dist/{button → src/button}/buttonStyles.js +0 -0
- /package/dist/{button → src/button}/buttonUnstyledStyles.js +0 -0
- /package/dist/{card → src/card}/Card.js +0 -0
- /package/dist/{card → src/card}/CardContent.js +0 -0
- /package/dist/{card → src/card}/CardFooter.js +0 -0
- /package/dist/{card → src/card}/CardHeader.js +0 -0
- /package/dist/{card → src/card}/CardSubtitle.js +0 -0
- /package/dist/{card → src/card}/CardTitle.js +0 -0
- /package/dist/{card → src/card}/ClickableCard.js +0 -0
- /package/dist/{card → src/card}/styles.js +0 -0
- /package/dist/{chip → src/chip}/Chip.js +0 -0
- /package/dist/{chip → src/chip}/styles.js +0 -0
- /package/dist/{cssUtils.js → src/cssUtils.js} +0 -0
- /package/dist/{delegateEvent.js → src/delegateEvent.js} +0 -0
- /package/dist/{dialog → src/dialog}/Dialog.js +0 -0
- /package/dist/{dialog → src/dialog}/DialogContainer.js +0 -0
- /package/dist/{dialog → src/dialog}/DialogContent.js +0 -0
- /package/dist/{dialog → src/dialog}/DialogFooter.js +0 -0
- /package/dist/{dialog → src/dialog}/DialogHeader.js +0 -0
- /package/dist/{dialog → src/dialog}/DialogTitle.js +0 -0
- /package/dist/{dialog → src/dialog}/FixedDialog.js +0 -0
- /package/dist/{dialog → src/dialog}/NestedDialogProvider.js +0 -0
- /package/dist/{dialog → src/dialog}/styles.js +0 -0
- /package/dist/{divider → src/divider}/Divider.js +0 -0
- /package/dist/{divider → src/divider}/styles.js +0 -0
- /package/dist/{draggable → src/draggable}/useDraggable.js +0 -0
- /package/dist/{draggable → src/draggable}/utils.js +0 -0
- /package/dist/{expansion-panel → src/expansion-panel}/ExpansionList.js +0 -0
- /package/dist/{expansion-panel → src/expansion-panel}/ExpansionPanel.js +0 -0
- /package/dist/{expansion-panel → src/expansion-panel}/ExpansionPanelHeader.js +0 -0
- /package/dist/{expansion-panel → src/expansion-panel}/useExpansionList.js +0 -0
- /package/dist/{expansion-panel → src/expansion-panel}/useExpansionPanels.js +0 -0
- /package/dist/{focus → src/focus}/useFocusContainer.js +0 -0
- /package/dist/{focus → src/focus}/utils.js +0 -0
- /package/dist/{form → src/form}/Checkbox.js +0 -0
- /package/dist/{form → src/form}/Fieldset.js +0 -0
- /package/dist/{form → src/form}/FileInput.js +0 -0
- /package/dist/{form → src/form}/Form.js +0 -0
- /package/dist/{form → src/form}/FormMessage.js +0 -0
- /package/dist/{form → src/form}/FormMessageContainer.js +0 -0
- /package/dist/{form → src/form}/FormMessageCounter.js +0 -0
- /package/dist/{form → src/form}/InputToggle.js +0 -0
- /package/dist/{form → src/form}/InputToggleIcon.js +0 -0
- /package/dist/{form → src/form}/Label.js +0 -0
- /package/dist/{form → src/form}/Legend.js +0 -0
- /package/dist/{form → src/form}/MenuItemCheckbox.js +0 -0
- /package/dist/{form → src/form}/MenuItemFileInput.js +0 -0
- /package/dist/{form → src/form}/MenuItemInputToggle.js +0 -0
- /package/dist/{form → src/form}/MenuItemRadio.js +0 -0
- /package/dist/{form → src/form}/MenuItemSwitch.js +0 -0
- /package/dist/{form → src/form}/MenuItemTextField.js +0 -0
- /package/dist/{form → src/form}/NativeSelect.js +0 -0
- /package/dist/{form → src/form}/OptGroup.js +0 -0
- /package/dist/{form → src/form}/Option.js +0 -0
- /package/dist/{form → src/form}/Password.js +0 -0
- /package/dist/{form → src/form}/Radio.js +0 -0
- /package/dist/{form → src/form}/Select.js +0 -0
- /package/dist/{form → src/form}/SelectValue.js +0 -0
- /package/dist/{form → src/form}/Slider.js +0 -0
- /package/dist/{form → src/form}/SliderContainer.js +0 -0
- /package/dist/{form → src/form}/SliderMark.js +0 -0
- /package/dist/{form → src/form}/SliderMarkLabel.js +0 -0
- /package/dist/{form → src/form}/SliderThumb.js +0 -0
- /package/dist/{form → src/form}/SliderTrack.js +0 -0
- /package/dist/{form → src/form}/SliderValueMarks.js +0 -0
- /package/dist/{form → src/form}/SliderValueTooltip.js +0 -0
- /package/dist/{form → src/form}/Switch.js +0 -0
- /package/dist/{form → src/form}/SwitchTrack.js +0 -0
- /package/dist/{form → src/form}/TextArea.js +0 -0
- /package/dist/{form → src/form}/TextField.js +0 -0
- /package/dist/{form → src/form}/TextFieldAddon.js +0 -0
- /package/dist/{form → src/form}/TextFieldContainer.js +0 -0
- /package/dist/{form → src/form}/TextFieldContainerStyles.js +0 -0
- /package/dist/{form → src/form}/fileUtils.js +0 -0
- /package/dist/{form → src/form}/formConfig.js +0 -0
- /package/dist/{form → src/form}/formMessageStyles.js +0 -0
- /package/dist/{form → src/form}/inputToggleStyles.js +0 -0
- /package/dist/{form → src/form}/nativeSelectStyles.js +0 -0
- /package/dist/{form → src/form}/optionStyles.js +0 -0
- /package/dist/{form → src/form}/passwordStyles.js +0 -0
- /package/dist/{form → src/form}/selectStyles.js +0 -0
- /package/dist/{form → src/form}/selectUtils.js +0 -0
- /package/dist/{form → src/form}/sliderUtils.js +0 -0
- /package/dist/{form → src/form}/switchStyles.js +0 -0
- /package/dist/{form → src/form}/textAreaStyles.js +0 -0
- /package/dist/{form → src/form}/textFieldStyles.js +0 -0
- /package/dist/{form → src/form}/types.js +0 -0
- /package/dist/{form → src/form}/useCheckboxGroup.js +0 -0
- /package/dist/{form → src/form}/useFileUpload.js +0 -0
- /package/dist/{form → src/form}/useListboxProvider.js +0 -0
- /package/dist/{form → src/form}/useNumberField.js +0 -0
- /package/dist/{form → src/form}/useRadioGroup.js +0 -0
- /package/dist/{form → src/form}/useRangeSlider.js +0 -0
- /package/dist/{form → src/form}/useResizingTextArea.js +0 -0
- /package/dist/{form → src/form}/useSlider.js +0 -0
- /package/dist/{form → src/form}/useTextField.js +0 -0
- /package/dist/{form → src/form}/utils.js +0 -0
- /package/dist/{form → src/form}/validation.js +0 -0
- /package/dist/{hoverMode → src/hoverMode}/useHoverMode.js +0 -0
- /package/dist/{hoverMode → src/hoverMode}/useHoverModeProvider.js +0 -0
- /package/dist/{icon → src/icon}/FontIcon.js +0 -0
- /package/dist/{icon → src/icon}/IconRotator.js +0 -0
- /package/dist/{icon → src/icon}/MaterialIcon.js +0 -0
- /package/dist/{icon → src/icon}/MaterialSymbol.js +0 -0
- /package/dist/{icon → src/icon}/SVGIcon.js +0 -0
- /package/dist/{icon → src/icon}/TextIconSpacing.js +0 -0
- /package/dist/{icon → src/icon}/iconConfig.js +0 -0
- /package/dist/{icon → src/icon}/material.js +0 -0
- /package/dist/{icon → src/icon}/materialConfig.js +0 -0
- /package/dist/{icon → src/icon}/styles.js +0 -0
- /package/dist/{index.js → src/index.js} +0 -0
- /package/dist/{interaction → src/interaction}/Ripple.js +0 -0
- /package/dist/{interaction → src/interaction}/RippleContainer.js +0 -0
- /package/dist/{interaction → src/interaction}/UserInteractionModeProvider.js +0 -0
- /package/dist/{interaction → src/interaction}/config.js +0 -0
- /package/dist/{interaction → src/interaction}/types.js +0 -0
- /package/dist/{interaction → src/interaction}/useElementInteraction.js +0 -0
- /package/dist/{interaction → src/interaction}/useHigherContrastChildren.js +0 -0
- /package/dist/{interaction → src/interaction}/utils.js +0 -0
- /package/dist/{layout → src/layout}/LayoutAppBar.js +0 -0
- /package/dist/{layout → src/layout}/LayoutNav.js +0 -0
- /package/dist/{layout → src/layout}/LayoutWindowSplitter.js +0 -0
- /package/dist/{layout → src/layout}/Main.js +0 -0
- /package/dist/{layout → src/layout}/layoutNavStyles.js +0 -0
- /package/dist/{layout → src/layout}/layoutWindowSplitterStyles.js +0 -0
- /package/dist/{layout → src/layout}/mainStyles.js +0 -0
- /package/dist/{layout → src/layout}/useExpandableLayout.js +0 -0
- /package/dist/{layout → src/layout}/useHorizontalLayoutTransition.js +0 -0
- /package/dist/{layout → src/layout}/useLayoutAppBarHeight.js +0 -0
- /package/dist/{layout → src/layout}/useLayoutTree.js +0 -0
- /package/dist/{layout → src/layout}/useLayoutWindowSplitter.js +0 -0
- /package/dist/{layout → src/layout}/useMainTabIndex.js +0 -0
- /package/dist/{layout → src/layout}/useResizableLayout.js +0 -0
- /package/dist/{layout → src/layout}/useTemporaryLayout.js +0 -0
- /package/dist/{link → src/link}/Link.js +0 -0
- /package/dist/{link → src/link}/SkipToMainContent.js +0 -0
- /package/dist/{link → src/link}/styles.js +0 -0
- /package/dist/{list → src/list}/List.js +0 -0
- /package/dist/{list → src/list}/ListItemAddon.js +0 -0
- /package/dist/{list → src/list}/ListItemChildren.js +0 -0
- /package/dist/{list → src/list}/ListItemText.js +0 -0
- /package/dist/{list → src/list}/ListSubheader.js +0 -0
- /package/dist/{list → src/list}/listItemStyles.js +0 -0
- /package/dist/{list → src/list}/types.js +0 -0
- /package/dist/{media-queries → src/media-queries}/AppSizeProvider.js +0 -0
- /package/dist/{media-queries → src/media-queries}/appSize.js +0 -0
- /package/dist/{media-queries → src/media-queries}/useMediaQuery.js +0 -0
- /package/dist/{menu → src/menu}/DropdownMenu.js +0 -0
- /package/dist/{menu → src/menu}/Menu.js +0 -0
- /package/dist/{menu → src/menu}/MenuBar.js +0 -0
- /package/dist/{menu → src/menu}/MenuButton.js +0 -0
- /package/dist/{menu → src/menu}/MenuConfigurationProvider.js +0 -0
- /package/dist/{menu → src/menu}/MenuItem.js +0 -0
- /package/dist/{menu → src/menu}/MenuItemButton.js +0 -0
- /package/dist/{menu → src/menu}/MenuItemGroup.js +0 -0
- /package/dist/{menu → src/menu}/MenuItemSeparator.js +0 -0
- /package/dist/{menu → src/menu}/MenuSheet.js +0 -0
- /package/dist/{menu → src/menu}/MenuVisibilityProvider.js +0 -0
- /package/dist/{menu → src/menu}/MenuWidget.js +0 -0
- /package/dist/{menu → src/menu}/MenuWidgetKeyboardProvider.js +0 -0
- /package/dist/{menu → src/menu}/useContextMenu.js +0 -0
- /package/dist/{menu → src/menu}/useMenuBarProvider.js +0 -0
- /package/dist/{menu → src/menu}/utils.js +0 -0
- /package/dist/{movement → src/movement}/constants.js +0 -0
- /package/dist/{movement → src/movement}/findMatchIndex.js +0 -0
- /package/dist/{movement → src/movement}/types.js +0 -0
- /package/dist/{movement → src/movement}/useKeyboardMovementProvider.js +0 -0
- /package/dist/{movement → src/movement}/utils.js +0 -0
- /package/dist/{overlay → src/overlay}/Overlay.js +0 -0
- /package/dist/{overlay → src/overlay}/overlayStyles.js +0 -0
- /package/dist/{portal → src/portal}/Portal.js +0 -0
- /package/dist/{portal → src/portal}/PortalContainerProvider.js +0 -0
- /package/dist/{positioning → src/positioning}/constants.js +0 -0
- /package/dist/{positioning → src/positioning}/createHorizontalPosition.js +0 -0
- /package/dist/{positioning → src/positioning}/createVerticalPosition.js +0 -0
- /package/dist/{positioning → src/positioning}/getFixedPosition.js +0 -0
- /package/dist/{positioning → src/positioning}/types.js +0 -0
- /package/dist/{positioning → src/positioning}/useFixedPositioning.js +0 -0
- /package/dist/{positioning → src/positioning}/utils.js +0 -0
- /package/dist/{progress → src/progress}/CircularProgress.js +0 -0
- /package/dist/{progress → src/progress}/LinearProgress.js +0 -0
- /package/dist/{progress → src/progress}/getProgressA11y.js +0 -0
- /package/dist/{progress → src/progress}/types.js +0 -0
- /package/dist/{responsive-item → src/responsive-item}/ResponsiveItemContainer.js +0 -0
- /package/dist/{responsive-item → src/responsive-item}/ResponsiveItemOverlay.js +0 -0
- /package/dist/{responsive-item → src/responsive-item}/styles.js +0 -0
- /package/dist/{scroll → src/scroll}/ScrollLock.js +0 -0
- /package/dist/{scroll → src/scroll}/getScrollbarWidth.js +0 -0
- /package/dist/{scroll → src/scroll}/useScrollLock.js +0 -0
- /package/dist/{segmented-button → src/segmented-button}/SegmentedButton.js +0 -0
- /package/dist/{segmented-button → src/segmented-button}/SegmentedButtonContainer.js +0 -0
- /package/dist/{segmented-button → src/segmented-button}/segmentedButtonContainerStyles.js +0 -0
- /package/dist/{segmented-button → src/segmented-button}/segmentedButtonStyles.js +0 -0
- /package/dist/{sheet → src/sheet}/Sheet.js +0 -0
- /package/dist/{sheet → src/sheet}/styles.js +0 -0
- /package/dist/{snackbar → src/snackbar}/DefaultToastRenderer.js +0 -0
- /package/dist/{snackbar → src/snackbar}/Snackbar.js +0 -0
- /package/dist/{snackbar → src/snackbar}/Toast.js +0 -0
- /package/dist/{snackbar → src/snackbar}/ToastActionButton.js +0 -0
- /package/dist/{snackbar → src/snackbar}/ToastCloseButton.js +0 -0
- /package/dist/{snackbar → src/snackbar}/ToastContent.js +0 -0
- /package/dist/{snackbar → src/snackbar}/ToastManager.js +0 -0
- /package/dist/{snackbar → src/snackbar}/ToastManagerProvider.js +0 -0
- /package/dist/{snackbar → src/snackbar}/snackbarStyles.js +0 -0
- /package/dist/{snackbar → src/snackbar}/toastContentStyles.js +0 -0
- /package/dist/{snackbar → src/snackbar}/toastStyles.js +0 -0
- /package/dist/{snackbar → src/snackbar}/useCurrentToastActions.js +0 -0
- /package/dist/{suspense → src/suspense}/CircularProgressSuspense.js +0 -0
- /package/dist/{suspense → src/suspense}/NullSuspense.js +0 -0
- /package/dist/{table → src/table}/Table.js +0 -0
- /package/dist/{table → src/table}/TableBody.js +0 -0
- /package/dist/{table → src/table}/TableCell.js +0 -0
- /package/dist/{table → src/table}/TableCellContent.js +0 -0
- /package/dist/{table → src/table}/TableCheckbox.js +0 -0
- /package/dist/{table → src/table}/TableConfigurationProvider.js +0 -0
- /package/dist/{table → src/table}/TableContainer.js +0 -0
- /package/dist/{table → src/table}/TableContainerProvider.js +0 -0
- /package/dist/{table → src/table}/TableFooter.js +0 -0
- /package/dist/{table → src/table}/TableHeader.js +0 -0
- /package/dist/{table → src/table}/TableRadio.js +0 -0
- /package/dist/{table → src/table}/TableRow.js +0 -0
- /package/dist/{table → src/table}/tableCellStyles.js +0 -0
- /package/dist/{table → src/table}/tableContainerStyles.js +0 -0
- /package/dist/{table → src/table}/tableFooterStyles.js +0 -0
- /package/dist/{table → src/table}/tableHeaderStyles.js +0 -0
- /package/dist/{table → src/table}/tableRowStyles.js +0 -0
- /package/dist/{table → src/table}/tableStyles.js +0 -0
- /package/dist/{table → src/table}/types.js +0 -0
- /package/dist/{tabs → src/tabs}/Tab.js +0 -0
- /package/dist/{tabs → src/tabs}/TabList.js +0 -0
- /package/dist/{tabs → src/tabs}/TabListScrollButton.js +0 -0
- /package/dist/{tabs → src/tabs}/tabIndicatorStyles.js +0 -0
- /package/dist/{tabs → src/tabs}/tabListScrollButtonStyles.js +0 -0
- /package/dist/{tabs → src/tabs}/tabListStyles.js +0 -0
- /package/dist/{tabs → src/tabs}/tabStyles.js +0 -0
- /package/dist/{tabs → src/tabs}/useTabList.js +0 -0
- /package/dist/{tabs → src/tabs}/useTabs.js +0 -0
- /package/dist/{tabs → src/tabs}/utils.js +0 -0
- /package/dist/{test-utils → src/test-utils}/IntersectionObserver.js +0 -0
- /package/dist/{test-utils → src/test-utils}/ResizeObserver.js +0 -0
- /package/dist/{test-utils → src/test-utils}/data-testid.js +0 -0
- /package/dist/{test-utils → src/test-utils}/index.js +0 -0
- /package/dist/{test-utils → src/test-utils}/jest-setup.js +0 -0
- /package/dist/{test-utils → src/test-utils}/matchMedia.js +0 -0
- /package/dist/{test-utils → src/test-utils}/polyfills/IntersectionObserver.js +0 -0
- /package/dist/{test-utils → src/test-utils}/polyfills/ResizeObserver.js +0 -0
- /package/dist/{test-utils → src/test-utils}/polyfills/index.js +0 -0
- /package/dist/{test-utils → src/test-utils}/polyfills/matchMedia.js +0 -0
- /package/dist/{test-utils → src/test-utils}/polyfills/offsetParent.js +0 -0
- /package/dist/{test-utils → src/test-utils}/polyfills/scrollIntoView.js +0 -0
- /package/dist/{test-utils → src/test-utils}/render.js +0 -0
- /package/dist/{test-utils → src/test-utils}/timers.js +0 -0
- /package/dist/{theme → src/theme}/LocalStorageColorSchemeProvider.js +0 -0
- /package/dist/{theme → src/theme}/ThemeProvider.js +0 -0
- /package/dist/{theme → src/theme}/colors.js +0 -0
- /package/dist/{theme → src/theme}/cssVars.js +0 -0
- /package/dist/{theme → src/theme}/types.js +0 -0
- /package/dist/{theme → src/theme}/useCSSVariables.js +0 -0
- /package/dist/{theme → src/theme}/useColorScheme.js +0 -0
- /package/dist/{theme → src/theme}/useColorSchemeMetaTag.js +0 -0
- /package/dist/{theme → src/theme}/useColorSchemeProvider.js +0 -0
- /package/dist/{theme → src/theme}/usePrefersColorScheme.js +0 -0
- /package/dist/{theme → src/theme}/utils.js +0 -0
- /package/dist/{tooltip → src/tooltip}/Tooltip.js +0 -0
- /package/dist/{tooltip → src/tooltip}/TooltipHoverModeProvider.js +0 -0
- /package/dist/{tooltip → src/tooltip}/constants.js +0 -0
- /package/dist/{tooltip → src/tooltip}/tooltipStyles.js +0 -0
- /package/dist/{tooltip → src/tooltip}/useTooltip.js +0 -0
- /package/dist/{tooltip → src/tooltip}/useTooltipPosition.js +0 -0
- /package/dist/{tooltip → src/tooltip}/utils.js +0 -0
- /package/dist/{transition → src/transition}/CSSTransition.js +0 -0
- /package/dist/{transition → src/transition}/Collapse.js +0 -0
- /package/dist/{transition → src/transition}/CrossFade.js +0 -0
- /package/dist/{transition → src/transition}/ScaleTransition.js +0 -0
- /package/dist/{transition → src/transition}/SkeletonPlaceholder.js +0 -0
- /package/dist/{transition → src/transition}/Slide.js +0 -0
- /package/dist/{transition → src/transition}/SlideContainer.js +0 -0
- /package/dist/{transition → src/transition}/collapseStyles.js +0 -0
- /package/dist/{transition → src/transition}/config.js +0 -0
- /package/dist/{transition → src/transition}/maxWidthTransition.js +0 -0
- /package/dist/{transition → src/transition}/skeletonPlaceholderUtils.js +0 -0
- /package/dist/{transition → src/transition}/types.js +0 -0
- /package/dist/{transition → src/transition}/useCSSTransition.js +0 -0
- /package/dist/{transition → src/transition}/useCarousel.js +0 -0
- /package/dist/{transition → src/transition}/useCollapseTransition.js +0 -0
- /package/dist/{transition → src/transition}/useCrossFadeTransition.js +0 -0
- /package/dist/{transition → src/transition}/useMaxWidthTransition.js +0 -0
- /package/dist/{transition → src/transition}/useScaleTransition.js +0 -0
- /package/dist/{transition → src/transition}/useSkeletonPlaceholder.js +0 -0
- /package/dist/{transition → src/transition}/useSlideTransition.js +0 -0
- /package/dist/{transition → src/transition}/useTransition.js +0 -0
- /package/dist/{transition → src/transition}/utils.js +0 -0
- /package/dist/{tree → src/tree}/DefaultTreeItemRenderer.js +0 -0
- /package/dist/{tree → src/tree}/Tree.js +0 -0
- /package/dist/{tree → src/tree}/TreeGroup.js +0 -0
- /package/dist/{tree → src/tree}/TreeItem.js +0 -0
- /package/dist/{tree → src/tree}/TreeItemExpander.js +0 -0
- /package/dist/{tree → src/tree}/TreeProvider.js +0 -0
- /package/dist/{tree → src/tree}/styles.js +0 -0
- /package/dist/{tree → src/tree}/types.js +0 -0
- /package/dist/{tree → src/tree}/useTree.js +0 -0
- /package/dist/{tree → src/tree}/useTreeExpansion.js +0 -0
- /package/dist/{tree → src/tree}/useTreeItems.js +0 -0
- /package/dist/{tree → src/tree}/useTreeMovement.js +0 -0
- /package/dist/{tree → src/tree}/useTreeSelection.js +0 -0
- /package/dist/{tree → src/tree}/utils.js +0 -0
- /package/dist/{types.js → src/types.js} +0 -0
- /package/dist/{typography → src/typography}/SrOnly.js +0 -0
- /package/dist/{typography → src/typography}/TextContainer.js +0 -0
- /package/dist/{typography → src/typography}/Typography.js +0 -0
- /package/dist/{typography → src/typography}/WritingDirectionProvider.js +0 -0
- /package/dist/{useAsyncAction.js → src/useAsyncAction.js} +0 -0
- /package/dist/{useDebouncedFunction.js → src/useDebouncedFunction.js} +0 -0
- /package/dist/{useDropzone.js → src/useDropzone.js} +0 -0
- /package/dist/{useElementSize.js → src/useElementSize.js} +0 -0
- /package/dist/{useEnsuredId.js → src/useEnsuredId.js} +0 -0
- /package/dist/{useEnsuredRef.js → src/useEnsuredRef.js} +0 -0
- /package/dist/{useEnsuredState.js → src/useEnsuredState.js} +0 -0
- /package/dist/{useHtmlClassName.js → src/useHtmlClassName.js} +0 -0
- /package/dist/{useIntersectionObserver.js → src/useIntersectionObserver.js} +0 -0
- /package/dist/{useIsomorphicLayoutEffect.js → src/useIsomorphicLayoutEffect.js} +0 -0
- /package/dist/{useLocalStorage.js → src/useLocalStorage.js} +0 -0
- /package/dist/{useOrientation.js → src/useOrientation.js} +0 -0
- /package/dist/{usePageInactive.js → src/usePageInactive.js} +0 -0
- /package/dist/{useResizeListener.js → src/useResizeListener.js} +0 -0
- /package/dist/{useResizeObserver.js → src/useResizeObserver.js} +0 -0
- /package/dist/{useThrottledFunction.js → src/useThrottledFunction.js} +0 -0
- /package/dist/{useToggle.js → src/useToggle.js} +0 -0
- /package/dist/{useUnmounted.js → src/useUnmounted.js} +0 -0
- /package/dist/{useWindowSize.js → src/useWindowSize.js} +0 -0
- /package/dist/{utils → src/utils}/RenderRecursively.js +0 -0
- /package/dist/{utils → src/utils}/alphaNumericSort.js +0 -0
- /package/dist/{utils → src/utils}/applyRef.js +0 -0
- /package/dist/{utils → src/utils}/bem.js +0 -0
- /package/dist/{utils → src/utils}/filters.js +0 -0
- /package/dist/{utils → src/utils}/getClientPosition.js +0 -0
- /package/dist/{utils → src/utils}/getMiddleOfRange.js +0 -0
- /package/dist/{utils → src/utils}/getPercentage.js +0 -0
- /package/dist/{utils → src/utils}/getRangeDefaultValue.js +0 -0
- /package/dist/{utils → src/utils}/getRangeSteps.js +0 -0
- /package/dist/{utils → src/utils}/identity.js +0 -0
- /package/dist/{utils → src/utils}/isElementVisible.js +0 -0
- /package/dist/{utils → src/utils}/loop.js +0 -0
- /package/dist/{utils → src/utils}/nearest.js +0 -0
- /package/dist/{utils → src/utils}/parseCssLengthUnit.js +0 -0
- /package/dist/{utils → src/utils}/randomInt.js +0 -0
- /package/dist/{utils → src/utils}/wait.js +0 -0
- /package/dist/{utils → src/utils}/withinRange.js +0 -0
- /package/dist/{window-splitter → src/window-splitter}/WindowSplitter.js +0 -0
- /package/dist/{window-splitter → src/window-splitter}/useWindowSplitter.js +0 -0
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { forwardRef } from "react";
|
|
4
|
-
import { useElementInteraction } from "../interaction/useElementInteraction.js";
|
|
5
|
-
import { useHigherContrastChildren } from "../interaction/useHigherContrastChildren.js";
|
|
6
|
-
import { ListItemChildren } from "./ListItemChildren.js";
|
|
7
|
-
import { getListItemHeight } from "./getListItemHeight.js";
|
|
8
|
-
import { listItem } from "./listItemStyles.js";
|
|
9
|
-
/**
|
|
10
|
-
* **Client Component**
|
|
11
|
-
*
|
|
12
|
-
* The `ListItemLink` should be used to render links within the `List` component.
|
|
13
|
-
*/ export const ListItemLink = /*#__PURE__*/ forwardRef(function ListItemLink(props, ref) {
|
|
14
|
-
const { as: Link = "a", to, href, className, liProps, textProps, textClassName, secondaryTextClassName, primaryText, secondaryText, secondaryTextProps, disableTextChildren = false, height: propHeight = "auto", leftAddon, leftAddonType = "icon", leftAddonPosition = "middle", leftAddonClassName, leftAddonForceWrap, rightAddon, rightAddonType = "icon", rightAddonPosition = "middle", rightAddonClassName, rightAddonForceWrap, disableLeftAddonCenteredMedia = false, disableRightAddonCenteredMedia = false, multiline = false, disabled = false, disabledOpacity = false, onBlur, onClick, onKeyDown, onKeyUp, onMouseDown, onMouseUp, onMouseLeave, onDragStart, onTouchStart, onTouchEnd, onTouchMove, role, tabIndex = disabled || role === "menuitem" ? -1 : undefined, children: propChildren, ...remaining } = props;
|
|
15
|
-
const { pressedClassName, ripples, handlers } = useElementInteraction({
|
|
16
|
-
onBlur,
|
|
17
|
-
onClick,
|
|
18
|
-
onKeyDown,
|
|
19
|
-
onKeyUp,
|
|
20
|
-
onMouseDown,
|
|
21
|
-
onMouseUp,
|
|
22
|
-
onMouseLeave,
|
|
23
|
-
onDragStart,
|
|
24
|
-
onTouchStart,
|
|
25
|
-
onTouchEnd,
|
|
26
|
-
onTouchMove,
|
|
27
|
-
disabled
|
|
28
|
-
});
|
|
29
|
-
const children = useHigherContrastChildren(propChildren, !disableTextChildren);
|
|
30
|
-
const height = getListItemHeight({
|
|
31
|
-
height: propHeight,
|
|
32
|
-
leftAddon,
|
|
33
|
-
leftAddonType,
|
|
34
|
-
rightAddon,
|
|
35
|
-
rightAddonType,
|
|
36
|
-
secondaryText
|
|
37
|
-
});
|
|
38
|
-
return /*#__PURE__*/ _jsx("li", {
|
|
39
|
-
...liProps,
|
|
40
|
-
role: "none",
|
|
41
|
-
children: /*#__PURE__*/ _jsxs(Link, {
|
|
42
|
-
ref: ref,
|
|
43
|
-
...remaining,
|
|
44
|
-
...handlers,
|
|
45
|
-
role: role,
|
|
46
|
-
className: listItem({
|
|
47
|
-
className,
|
|
48
|
-
link: true,
|
|
49
|
-
height,
|
|
50
|
-
disabled,
|
|
51
|
-
disabledOpacity,
|
|
52
|
-
multiline,
|
|
53
|
-
pressedClassName
|
|
54
|
-
}),
|
|
55
|
-
// TODO: Figure out a better type for the CustomLinkComponent to fix this
|
|
56
|
-
to: to,
|
|
57
|
-
href: href,
|
|
58
|
-
tabIndex: tabIndex,
|
|
59
|
-
children: [
|
|
60
|
-
/*#__PURE__*/ _jsx(ListItemChildren, {
|
|
61
|
-
multiline: multiline,
|
|
62
|
-
textClassName: textClassName,
|
|
63
|
-
secondaryTextClassName: secondaryTextClassName,
|
|
64
|
-
disableTextChildren: disableTextChildren,
|
|
65
|
-
primaryText: primaryText,
|
|
66
|
-
textProps: textProps,
|
|
67
|
-
secondaryText: secondaryText,
|
|
68
|
-
secondaryTextProps: secondaryTextProps,
|
|
69
|
-
leftAddon: leftAddon,
|
|
70
|
-
leftAddonType: leftAddonType,
|
|
71
|
-
leftAddonPosition: leftAddonPosition,
|
|
72
|
-
leftAddonClassName: leftAddonClassName,
|
|
73
|
-
leftAddonForceWrap: leftAddonForceWrap,
|
|
74
|
-
rightAddon: rightAddon,
|
|
75
|
-
rightAddonType: rightAddonType,
|
|
76
|
-
rightAddonPosition: rightAddonPosition,
|
|
77
|
-
rightAddonClassName: rightAddonClassName,
|
|
78
|
-
rightAddonForceWrap: rightAddonForceWrap,
|
|
79
|
-
disableLeftAddonCenteredMedia: disableLeftAddonCenteredMedia,
|
|
80
|
-
disableRightAddonCenteredMedia: disableRightAddonCenteredMedia,
|
|
81
|
-
children: children
|
|
82
|
-
}),
|
|
83
|
-
ripples
|
|
84
|
-
]
|
|
85
|
-
})
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
//# sourceMappingURL=ListItemLink.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/list/ListItemLink.tsx"],"sourcesContent":["\"use client\";\nimport {\n forwardRef,\n type AnchorHTMLAttributes,\n type HTMLAttributes,\n} from \"react\";\nimport { useElementInteraction } from \"../interaction/useElementInteraction.js\";\nimport { useHigherContrastChildren } from \"../interaction/useHigherContrastChildren.js\";\nimport { type CustomLinkComponent } from \"../link/Link.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { ListItemChildren } from \"./ListItemChildren.js\";\nimport { getListItemHeight } from \"./getListItemHeight.js\";\nimport { listItem, type ListItemClassNameOptions } from \"./listItemStyles.js\";\nimport { type ListItemChildrenProps } from \"./types.js\";\n\nexport interface ListItemLinkProps\n extends AnchorHTMLAttributes<HTMLAnchorElement>,\n ListItemClassNameOptions,\n ListItemChildrenProps {\n /** @defaultValue `\"a\"` */\n as?: CustomLinkComponent;\n\n /**\n * This should only be used if the {@link as} {@link CustomLinkComponent}\n * accepts a `to` prop instead of {@link href}.\n */\n to?: string;\n\n /**\n * The link's href. Either this or the {@link to} prop **should** be provided.\n */\n href?: string;\n\n /**\n * Any additional props to provide the wrapping `<li>` element such as\n * `style`, `className`, and `ref`.\n */\n liProps?: PropsWithRef<HTMLAttributes<HTMLLIElement>, HTMLLIElement>;\n\n /**\n * @defaultValue `disabled ? -1 : undefined`\n */\n tabIndex?: number;\n}\n\n/**\n * **Client Component**\n *\n * The `ListItemLink` should be used to render links within the `List` component.\n */\nexport const ListItemLink = forwardRef<HTMLAnchorElement, ListItemLinkProps>(\n function ListItemLink(props, ref) {\n const {\n as: Link = \"a\",\n to,\n href,\n className,\n liProps,\n textProps,\n textClassName,\n secondaryTextClassName,\n primaryText,\n secondaryText,\n secondaryTextProps,\n disableTextChildren = false,\n height: propHeight = \"auto\",\n leftAddon,\n leftAddonType = \"icon\",\n leftAddonPosition = \"middle\",\n leftAddonClassName,\n leftAddonForceWrap,\n rightAddon,\n rightAddonType = \"icon\",\n rightAddonPosition = \"middle\",\n rightAddonClassName,\n rightAddonForceWrap,\n disableLeftAddonCenteredMedia = false,\n disableRightAddonCenteredMedia = false,\n multiline = false,\n disabled = false,\n disabledOpacity = false,\n onBlur,\n onClick,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onDragStart,\n onTouchStart,\n onTouchEnd,\n onTouchMove,\n role,\n tabIndex = disabled || role === \"menuitem\" ? -1 : undefined,\n children: propChildren,\n ...remaining\n } = props;\n\n const { pressedClassName, ripples, handlers } = useElementInteraction({\n onBlur,\n onClick,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onDragStart,\n onTouchStart,\n onTouchEnd,\n onTouchMove,\n disabled,\n });\n const children = useHigherContrastChildren(\n propChildren,\n !disableTextChildren\n );\n\n const height = getListItemHeight({\n height: propHeight,\n leftAddon,\n leftAddonType,\n rightAddon,\n rightAddonType,\n secondaryText,\n });\n\n return (\n <li {...liProps} role=\"none\">\n <Link\n ref={ref}\n {...remaining}\n {...handlers}\n role={role}\n className={listItem({\n className,\n link: true,\n height,\n disabled,\n disabledOpacity,\n multiline,\n pressedClassName,\n })}\n // TODO: Figure out a better type for the CustomLinkComponent to fix this\n to={to as string}\n href={href as string}\n tabIndex={tabIndex}\n >\n <ListItemChildren\n multiline={multiline}\n textClassName={textClassName}\n secondaryTextClassName={secondaryTextClassName}\n disableTextChildren={disableTextChildren}\n primaryText={primaryText}\n textProps={textProps}\n secondaryText={secondaryText}\n secondaryTextProps={secondaryTextProps}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonClassName={leftAddonClassName}\n leftAddonForceWrap={leftAddonForceWrap}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonClassName={rightAddonClassName}\n rightAddonForceWrap={rightAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </ListItemChildren>\n {ripples}\n </Link>\n </li>\n );\n }\n);\n"],"names":["forwardRef","useElementInteraction","useHigherContrastChildren","ListItemChildren","getListItemHeight","listItem","ListItemLink","props","ref","as","Link","to","href","className","liProps","textProps","textClassName","secondaryTextClassName","primaryText","secondaryText","secondaryTextProps","disableTextChildren","height","propHeight","leftAddon","leftAddonType","leftAddonPosition","leftAddonClassName","leftAddonForceWrap","rightAddon","rightAddonType","rightAddonPosition","rightAddonClassName","rightAddonForceWrap","disableLeftAddonCenteredMedia","disableRightAddonCenteredMedia","multiline","disabled","disabledOpacity","onBlur","onClick","onKeyDown","onKeyUp","onMouseDown","onMouseUp","onMouseLeave","onDragStart","onTouchStart","onTouchEnd","onTouchMove","role","tabIndex","undefined","children","propChildren","remaining","pressedClassName","ripples","handlers","li","link"],"mappings":"AAAA;;AACA,SACEA,UAAU,QAGL,QAAQ;AACf,SAASC,qBAAqB,QAAQ,0CAA0C;AAChF,SAASC,yBAAyB,QAAQ,8CAA8C;AAGxF,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,QAAQ,QAAuC,sBAAsB;AAiC9E;;;;CAIC,GACD,OAAO,MAAMC,6BAAeN,WAC1B,SAASM,aAAaC,KAAK,EAAEC,GAAG;IAC9B,MAAM,EACJC,IAAIC,OAAO,GAAG,EACdC,EAAE,EACFC,IAAI,EACJC,SAAS,EACTC,OAAO,EACPC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,aAAa,EACbC,kBAAkB,EAClBC,sBAAsB,KAAK,EAC3BC,QAAQC,aAAa,MAAM,EAC3BC,SAAS,EACTC,gBAAgB,MAAM,EACtBC,oBAAoB,QAAQ,EAC5BC,kBAAkB,EAClBC,kBAAkB,EAClBC,UAAU,EACVC,iBAAiB,MAAM,EACvBC,qBAAqB,QAAQ,EAC7BC,mBAAmB,EACnBC,mBAAmB,EACnBC,gCAAgC,KAAK,EACrCC,iCAAiC,KAAK,EACtCC,YAAY,KAAK,EACjBC,WAAW,KAAK,EAChBC,kBAAkB,KAAK,EACvBC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,OAAO,EACPC,WAAW,EACXC,SAAS,EACTC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,UAAU,EACVC,WAAW,EACXC,IAAI,EACJC,WAAWd,YAAYa,SAAS,aAAa,CAAC,IAAIE,SAAS,EAC3DC,UAAUC,YAAY,EACtB,GAAGC,WACJ,GAAGhD;IAEJ,MAAM,EAAEiD,gBAAgB,EAAEC,OAAO,EAAEC,QAAQ,EAAE,GAAGzD,sBAAsB;QACpEsC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAZ;IACF;IACA,MAAMgB,WAAWnD,0BACfoD,cACA,CAACjC;IAGH,MAAMC,SAASlB,kBAAkB;QAC/BkB,QAAQC;QACRC;QACAC;QACAI;QACAC;QACAX;IACF;IAEA,qBACE,KAACwC;QAAI,GAAG7C,OAAO;QAAEoC,MAAK;kBACpB,cAAA,MAACxC;YACCF,KAAKA;YACJ,GAAG+C,SAAS;YACZ,GAAGG,QAAQ;YACZR,MAAMA;YACNrC,WAAWR,SAAS;gBAClBQ;gBACA+C,MAAM;gBACNtC;gBACAe;gBACAC;gBACAF;gBACAoB;YACF;YACA,yEAAyE;YACzE7C,IAAIA;YACJC,MAAMA;YACNuC,UAAUA;;8BAEV,KAAChD;oBACCiC,WAAWA;oBACXpB,eAAeA;oBACfC,wBAAwBA;oBACxBI,qBAAqBA;oBACrBH,aAAaA;oBACbH,WAAWA;oBACXI,eAAeA;oBACfC,oBAAoBA;oBACpBI,WAAWA;oBACXC,eAAeA;oBACfC,mBAAmBA;oBACnBC,oBAAoBA;oBACpBC,oBAAoBA;oBACpBC,YAAYA;oBACZC,gBAAgBA;oBAChBC,oBAAoBA;oBACpBC,qBAAqBA;oBACrBC,qBAAqBA;oBACrBC,+BAA+BA;oBAC/BC,gCAAgCA;8BAE/BkB;;gBAEFI;;;;AAIT,GACA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/list/ListItemText.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { listItemText } from \"./listItemStyles.js\";\n\n/**\n * @internal\n */\nexport interface ListItemTextProps extends HTMLAttributes<HTMLSpanElement> {\n secondaryText?: ReactNode;\n secondaryTextProps?: PropsWithRef<\n HTMLAttributes<HTMLSpanElement>,\n HTMLSpanElement\n >;\n\n /** @defaultValue `false` */\n secondaryTextClamped?: boolean;\n secondaryTextClassName?: string;\n}\n\n/**\n * **Server Component**\n *\n * This is mostly an internal component that can conditionally render secondary\n * text within list items.\n *\n * @internal\n */\nexport const ListItemText = forwardRef<HTMLSpanElement, ListItemTextProps>(\n function ListItemText(props, ref) {\n const {\n className,\n secondaryText,\n secondaryTextProps,\n secondaryTextClamped = false,\n secondaryTextClassName,\n children,\n ...remaining\n } = props;\n\n return (\n <span\n {...remaining}\n ref={ref}\n className={listItemText({\n className,\n })}\n >\n {children}\n {secondaryText && (\n <span\n {...secondaryTextProps}\n className={listItemText({\n clamped: secondaryTextClamped,\n className: secondaryTextClassName,\n secondary: true,\n })}\n >\n {secondaryText}\n </span>\n )}\n </span>\n );\n }\n);\n"],"names":["forwardRef","listItemText","ListItemText","props","ref","className","secondaryText","secondaryTextProps","secondaryTextClamped","secondaryTextClassName","children","remaining","span","clamped","secondary"],"mappings":";AAAA,SAASA,UAAU,QAA6C,QAAQ;AAExE,SAASC,YAAY,QAAQ,sBAAsB;AAiBnD;;;;;;;CAOC,GACD,OAAO,MAAMC,6BAAeF,WAC1B,SAASE,aAAaC,KAAK,EAAEC,GAAG;IAC9B,MAAM,EACJC,SAAS,EACTC,aAAa,EACbC,kBAAkB,EAClBC,uBAAuB,KAAK,EAC5BC,sBAAsB,EACtBC,QAAQ,EACR,GAAGC,WACJ,GAAGR;IAEJ,qBACE,MAACS;QACE,GAAGD,SAAS;QACbP,KAAKA;QACLC,WAAWJ,aAAa;YACtBI;QACF;;YAECK;YACAJ,+BACC,KAACM;gBACE,GAAGL,kBAAkB;gBACtBF,WAAWJ,aAAa;oBACtBY,SAASL;oBACTH,WAAWI;oBACXK,WAAW;gBACb;0BAECR;;;;AAKX,GACA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/list/ListSubheader.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { bem } from \"../utils/bem.js\";\nimport { ListItemText } from \"./ListItemText.js\";\n\nconst styles = bem(\"rmd-list-subheader\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListSubheaderClassNameOptions {\n className?: string;\n\n /**\n * Boolean if the subheader should be inset to match the `ListItem` text\n * keyline.\n *\n * @defaultValue `false`\n */\n inset?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function listSubheader(\n options: ListSubheaderClassNameOptions = {}\n): string {\n const { inset = false, className } = options;\n\n return cnb(styles({ inset }), className);\n}\n\nexport interface ListSubheaderProps\n extends HTMLAttributes<HTMLLIElement>,\n ListSubheaderClassNameOptions {\n /**\n * @defaultValue `\"presentation\"`\n */\n role?: HTMLAttributes<HTMLLIElement>[\"role\"];\n\n /**\n * @remarks \\@since 6.0.0\n */\n textProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n}\n\n/**\n * **Server Component**\n *\n * The `ListSubheader` is a wrapper for the `<li>` element to apply subheader\n * typography styles and {@link ListItemText} layout.\n */\nexport const ListSubheader = forwardRef<HTMLLIElement, ListSubheaderProps>(\n function ListSubheader(props, ref) {\n const {\n role = \"presentation\",\n inset = false,\n className,\n children,\n textProps,\n ...remaining\n } = props;\n\n return (\n <li\n {...remaining}\n ref={ref}\n role={role}\n className={listSubheader({\n inset,\n className,\n })}\n >\n <ListItemText {...textProps}>{children}</ListItemText>\n </li>\n );\n }\n);\n"],"names":["cnb","forwardRef","bem","ListItemText","styles","listSubheader","options","inset","className","ListSubheader","props","ref","role","children","textProps","remaining","li"],"mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAA6B,QAAQ;AAExD,SAASC,GAAG,QAAQ,kBAAkB;AACtC,SAASC,YAAY,QAAQ,oBAAoB;AAEjD,MAAMC,SAASF,IAAI;AAenB;;CAEC,GACD,OAAO,SAASG,cACdC,UAAyC,CAAC,CAAC;IAE3C,MAAM,EAAEC,QAAQ,KAAK,EAAEC,SAAS,EAAE,GAAGF;IAErC,OAAON,IAAII,OAAO;QAAEG;IAAM,IAAIC;AAChC;AAgBA;;;;;CAKC,GACD,OAAO,MAAMC,8BAAgBR,WAC3B,SAASQ,cAAcC,KAAK,EAAEC,GAAG;IAC/B,MAAM,EACJC,OAAO,cAAc,EACrBL,QAAQ,KAAK,EACbC,SAAS,EACTK,QAAQ,EACRC,SAAS,EACT,GAAGC,WACJ,GAAGL;IAEJ,qBACE,KAACM;QACE,GAAGD,SAAS;QACbJ,KAAKA;QACLC,MAAMA;QACNJ,WAAWH,cAAc;YACvBE;YACAC;QACF;kBAEA,cAAA,KAACL;YAAc,GAAGW,SAAS;sBAAGD;;;AAGpC,GACA"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gets the expected height for the `ListItem` or `SimpleListItem` based on the
|
|
3
|
-
* addons and `secondaryText` props.
|
|
4
|
-
*
|
|
5
|
-
* @see {@link ListItemHeight}
|
|
6
|
-
* @internal
|
|
7
|
-
*/ export function getListItemHeight(options = {}) {
|
|
8
|
-
const { height = "auto", leftAddon, leftAddonType = "icon", rightAddon, rightAddonType = "icon", secondaryText } = options;
|
|
9
|
-
if (height !== "auto") {
|
|
10
|
-
return height;
|
|
11
|
-
}
|
|
12
|
-
const isIcon = leftAddon && leftAddonType === "icon" || rightAddon && rightAddonType === "icon";
|
|
13
|
-
const isAvatar = leftAddon && leftAddonType === "avatar" || rightAddon && rightAddonType === "avatar";
|
|
14
|
-
const isGraphic = leftAddon && (leftAddonType === "media" || leftAddonType === "large-media") || rightAddon && (rightAddonType === "media" || rightAddonType === "large-media");
|
|
15
|
-
// secondary text will always be extra large due to the default `line-height`
|
|
16
|
-
if (isGraphic || secondaryText) {
|
|
17
|
-
return "extra-large";
|
|
18
|
-
}
|
|
19
|
-
if (isAvatar) {
|
|
20
|
-
return "large";
|
|
21
|
-
}
|
|
22
|
-
if (isIcon) {
|
|
23
|
-
return "medium";
|
|
24
|
-
}
|
|
25
|
-
return "normal";
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=getListItemHeight.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/list/getListItemHeight.ts"],"sourcesContent":["import type { ListItemChildrenProps, ListItemHeight } from \"./types.js\";\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface ListItemHeightOptions\n extends Pick<\n ListItemChildrenProps,\n | \"leftAddon\"\n | \"rightAddon\"\n | \"leftAddonType\"\n | \"rightAddonType\"\n | \"secondaryText\"\n > {\n /**\n * @see {@link ListItemHeight}\n * @defaultValue `\"auto\"`\n */\n height?: ListItemHeight;\n}\n\n/**\n * Gets the expected height for the `ListItem` or `SimpleListItem` based on the\n * addons and `secondaryText` props.\n *\n * @see {@link ListItemHeight}\n * @internal\n */\nexport function getListItemHeight(\n options: ListItemHeightOptions = {}\n): ListItemHeight {\n const {\n height = \"auto\",\n leftAddon,\n leftAddonType = \"icon\",\n rightAddon,\n rightAddonType = \"icon\",\n secondaryText,\n } = options;\n\n if (height !== \"auto\") {\n return height;\n }\n\n const isIcon =\n (leftAddon && leftAddonType === \"icon\") ||\n (rightAddon && rightAddonType === \"icon\");\n const isAvatar =\n (leftAddon && leftAddonType === \"avatar\") ||\n (rightAddon && rightAddonType === \"avatar\");\n const isGraphic =\n (leftAddon &&\n (leftAddonType === \"media\" || leftAddonType === \"large-media\")) ||\n (rightAddon &&\n (rightAddonType === \"media\" || rightAddonType === \"large-media\"));\n\n // secondary text will always be extra large due to the default `line-height`\n if (isGraphic || secondaryText) {\n return \"extra-large\";\n }\n\n if (isAvatar) {\n return \"large\";\n }\n\n if (isIcon) {\n return \"medium\";\n }\n\n return \"normal\";\n}\n"],"names":["getListItemHeight","options","height","leftAddon","leftAddonType","rightAddon","rightAddonType","secondaryText","isIcon","isAvatar","isGraphic"],"mappings":"AAsBA;;;;;;CAMC,GACD,OAAO,SAASA,kBACdC,UAAiC,CAAC,CAAC;IAEnC,MAAM,EACJC,SAAS,MAAM,EACfC,SAAS,EACTC,gBAAgB,MAAM,EACtBC,UAAU,EACVC,iBAAiB,MAAM,EACvBC,aAAa,EACd,GAAGN;IAEJ,IAAIC,WAAW,QAAQ;QACrB,OAAOA;IACT;IAEA,MAAMM,SACJ,AAACL,aAAaC,kBAAkB,UAC/BC,cAAcC,mBAAmB;IACpC,MAAMG,WACJ,AAACN,aAAaC,kBAAkB,YAC/BC,cAAcC,mBAAmB;IACpC,MAAMI,YACJ,AAACP,aACEC,CAAAA,kBAAkB,WAAWA,kBAAkB,aAAY,KAC7DC,cACEC,CAAAA,mBAAmB,WAAWA,mBAAmB,aAAY;IAElE,6EAA6E;IAC7E,IAAII,aAAaH,eAAe;QAC9B,OAAO;IACT;IAEA,IAAIE,UAAU;QACZ,OAAO;IACT;IAEA,IAAID,QAAQ;QACV,OAAO;IACT;IAEA,OAAO;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/list/listItemStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { cssUtils } from \"../cssUtils.js\";\nimport { bem } from \"../utils/bem.js\";\nimport type {\n ListItemAddonPosition,\n ListItemAddonType,\n ListItemHeight,\n} from \"./types.js\";\n\nconst styles = bem(\"rmd-list-item\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemClassNameOptions {\n className?: string;\n /**\n * @see {@link ListItemHeight}\n * @defaultValue `\"auto\"`\n */\n height?: ListItemHeight;\n\n /**\n * @defaultValue `false`\n */\n multiline?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disabled?: boolean;\n\n /**\n * Note: This does nothing if the `disabled` prop is not enabled.\n *\n * @defaultValue `false`\n * @remarks \\@since 2.4.3\n */\n disabledOpacity?: boolean;\n\n /**\n * Set this to `false` if the list item should not gain the interaction\n * states: hover, focus, press, etc. This is kind of like being disabled\n * without the disabled styles being applied.\n *\n * @defaultValue `true`\n */\n clickable?: boolean;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface InternalListItemClassNameOptions\n extends ListItemClassNameOptions {\n /**\n * @defaultValue `false`\n */\n link?: boolean;\n\n /**\n * This is prop is used internally when integrating with the\n * {@link useElementInteraction} hook.\n */\n pressedClassName?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function listItem(\n options: InternalListItemClassNameOptions = {}\n): string {\n const {\n className,\n link = false,\n height = \"auto\",\n clickable = true,\n multiline = false,\n disabled = false,\n disabledOpacity = false,\n pressedClassName,\n } = options;\n\n return cnb(\n styles({\n link,\n [height]: height !== \"auto\",\n multiline,\n \"disabled-color\": disabled && !disabledOpacity,\n \"disabled-opacity\": disabled && disabledOpacity,\n }),\n cssUtils({ surface: clickable }),\n pressedClassName,\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemTextClassNameOptions {\n className?: string;\n /**\n * @defaultValue `false`\n */\n clamped?: boolean;\n\n /**\n * @defaultValue `false`\n */\n secondary?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function listItemText(\n options: ListItemTextClassNameOptions = {}\n): string {\n const { className, secondary = false, clamped = false } = options;\n\n return cnb(\n styles(\"text\", {\n clamped: secondary && clamped,\n secondary,\n }),\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemAddonClassNameOptions {\n className?: string;\n\n /**\n * The addon type that is used to adjust the spacing styles.\n *\n * @defaultValue `\"icon\"`\n */\n type?: ListItemAddonType;\n\n /**\n * The vertical position to use for the addon.\n *\n * @defaultValue `\"middle\"`\n */\n position?: ListItemAddonPosition;\n\n /**\n * Boolean if the addon should appear after the `children`.\n *\n * @defaultValue `false`\n */\n addonAfter?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableCenteredMedia?: boolean;\n\n /**\n * Set this to `true` to disable the additional spacing applied to the addons\n * that appear before the `children` and the normal `--rmd-text-icon-spacing`\n * value is used instead.\n *\n * @defaultValue `false`\n */\n disableBeforeSpacing?: boolean;\n}\n\n/**\n *\n * @remarks \\@since 6.0.0\n */\nexport function listItemAddon(\n options: ListItemAddonClassNameOptions = {}\n): string {\n const {\n type = \"icon\",\n position = \"middle\",\n className,\n addonAfter = false,\n disableCenteredMedia = false,\n disableBeforeSpacing = false,\n } = options;\n\n const isMedia = type === \"media\" || type === \"large-media\";\n const isAvatar = type === \"avatar\";\n\n return cnb(\n styles(\"addon\", {\n [position]: position !== \"middle\",\n before: !disableBeforeSpacing && !addonAfter,\n \"avatar-before\": !disableBeforeSpacing && !addonAfter && isAvatar,\n media: isMedia,\n \"media-large\": type === \"large-media\",\n \"media-centered\": isMedia && !disableCenteredMedia,\n }),\n className\n );\n}\n"],"names":["cnb","cssUtils","bem","styles","listItem","options","className","link","height","clickable","multiline","disabled","disabledOpacity","pressedClassName","surface","listItemText","secondary","clamped","listItemAddon","type","position","addonAfter","disableCenteredMedia","disableBeforeSpacing","isMedia","isAvatar","before","media"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,GAAG,QAAQ,kBAAkB;AAOtC,MAAMC,SAASD,IAAI;AAsDnB;;CAEC,GACD,OAAO,SAASE,SACdC,UAA4C,CAAC,CAAC;IAE9C,MAAM,EACJC,SAAS,EACTC,OAAO,KAAK,EACZC,SAAS,MAAM,EACfC,YAAY,IAAI,EAChBC,YAAY,KAAK,EACjBC,WAAW,KAAK,EAChBC,kBAAkB,KAAK,EACvBC,gBAAgB,EACjB,GAAGR;IAEJ,OAAOL,IACLG,OAAO;QACLI;QACA,CAACC,OAAO,EAAEA,WAAW;QACrBE;QACA,kBAAkBC,YAAY,CAACC;QAC/B,oBAAoBD,YAAYC;IAClC,IACAX,SAAS;QAAEa,SAASL;IAAU,IAC9BI,kBACAP;AAEJ;AAgBA;;CAEC,GACD,OAAO,SAASS,aACdV,UAAwC,CAAC,CAAC;IAE1C,MAAM,EAAEC,SAAS,EAAEU,YAAY,KAAK,EAAEC,UAAU,KAAK,EAAE,GAAGZ;IAE1D,OAAOL,IACLG,OAAO,QAAQ;QACbc,SAASD,aAAaC;QACtBD;IACF,IACAV;AAEJ;AAoDA;;;CAGC,GACD,OAAO,SAASY,cACdb,UAAyC,CAAC,CAAC;IAE3C,MAAM,EACJc,OAAO,MAAM,EACbC,WAAW,QAAQ,EACnBd,SAAS,EACTe,aAAa,KAAK,EAClBC,uBAAuB,KAAK,EAC5BC,uBAAuB,KAAK,EAC7B,GAAGlB;IAEJ,MAAMmB,UAAUL,SAAS,WAAWA,SAAS;IAC7C,MAAMM,WAAWN,SAAS;IAE1B,OAAOnB,IACLG,OAAO,SAAS;QACd,CAACiB,SAAS,EAAEA,aAAa;QACzBM,QAAQ,CAACH,wBAAwB,CAACF;QAClC,iBAAiB,CAACE,wBAAwB,CAACF,cAAcI;QACzDE,OAAOH;QACP,eAAeL,SAAS;QACxB,kBAAkBK,WAAW,CAACF;IAChC,IACAhB;AAEJ"}
|
package/dist/list/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/list/types.ts"],"sourcesContent":["import { type HTMLAttributes, type ReactNode } from \"react\";\nimport { type PropsWithRef } from \"../types.js\";\n\n/**\n * The height to apply to the list item.\n *\n * Conversions:\n *\n * - height !== \"auto\" -> height\n * - secondaryText or left/right addon is media/media-large -> \"extra-large\"\n * - left/right addon is avatar -> \"large\"\n * - left/right addon is icon -> \"medium\"\n * - no addons and no secondary text -> \"normal\"\n */\nexport type ListItemHeight =\n | \"auto\"\n | \"normal\"\n | \"medium\"\n | \"large\"\n | \"extra-large\";\n\nexport type ListItemAddonPosition = \"top\" | \"middle\" | \"bottom\";\nexport type ListItemAddonType = \"icon\" | \"avatar\" | \"media\" | \"large-media\";\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemChildrenAddonProps {\n /**\n * An optional addon to display to the left of the `primaryText` or\n * `children` and should be used with the `leftAddonType` prop to adjust\n * spacing.\n */\n leftAddon?: ReactNode;\n\n /**\n * The type of the addon that appears to the left of the `primaryText` or\n * `children`.\n *\n * @defaultValue `\"icon\"`\n */\n leftAddonType?: ListItemAddonType;\n\n /**\n * The vertical position the left icon, avatar, media, or large media\n * should be placed.\n *\n * @defaultValue `\"middle\"`\n */\n leftAddonPosition?: ListItemAddonPosition;\n\n /**\n * @remarks \\@since 6.0.0\n */\n leftAddonClassName?: string;\n\n /**\n * Set this to `true` if your addon does not accept a `className` prop to\n * apply the correct styling.\n *\n * @defaultValue `leftAddonType === \"media\" || leftAddonType === \"large-media\"`\n * @remarks \\@since 6.0.0\n */\n leftAddonForceWrap?: boolean;\n\n /**\n * Set this to `true` to disable the additional spacing applied to the addons\n * that appear before the `children` and the normal `--rmd-text-icon-spacing`\n * value is used instead.\n *\n * @defaultValue `false`\n */\n disableLeftAddonSpacing?: boolean;\n\n /**\n * An optional addon to display to the right of the `primaryText` or\n * `children` and should be used with the `rightAddonType` prop to adjust\n * spacing.\n */\n rightAddon?: ReactNode;\n\n /**\n * The type of the addon that appears to the right of the `primaryText` or\n * `children`.\n *\n * @defaultValue `\"icon\"`\n */\n rightAddonType?: ListItemAddonType;\n\n /**\n * The vertical position the right icon, avatar, media, or large media\n * should be placed.\n *\n * @defaultValue `\"middle\"`\n */\n rightAddonPosition?: ListItemAddonPosition;\n\n /**\n * @remarks \\@since 6.0.0\n */\n rightAddonClassName?: string;\n\n /**\n * Set this to `true` if your addon does not accept a `className` prop to\n * apply the correct styling.\n *\n * @defaultValue `rightAddonType === \"media\" || rightAddonType === \"large-media\"`\n * @remarks \\@since 6.0.0\n */\n rightAddonForceWrap?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableLeftAddonCenteredMedia?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableRightAddonCenteredMedia?: boolean;\n}\n\nexport interface ListItemChildrenProps extends ListItemChildrenAddonProps {\n /**\n * The main content to display. When the `textChildren` prop is enabled and\n * there is child content, it will be treated as primary text and update the\n * styles automatically.\n */\n children?: ReactNode;\n\n /**\n * Any additional props that should be passed to the `<span>` surrounding\n * the {@link children}, {@link primaryText}, and {@link secondaryText}.\n *\n * @remarks \\@since 6.0.0\n */\n textProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n\n /**\n * An optional className to apply to the `<span>` that surrounds the\n * `primaryText` and optionally `secondaryText` within the list item.\n */\n textClassName?: string;\n\n /**\n * An optional className to apply to the `<span>` that surrounds the\n * `secondaryText` within the list item.\n */\n secondaryTextClassName?: string;\n\n /**\n * Set this to `true` if the {@link children} should not automatically be\n * wrapped in the `ListItemText` component.\n *\n * @remarks \\@since 6.0.0 Renamed from `textChildren` since it was defaulted on.\n * @defaultValue `false`\n */\n disableTextChildren?: boolean;\n\n /**\n * An optional element that should be rendered as the `primaryText` within the\n * list item. It is most likely easier to use the `children` prop instead, but\n * this allows you to create more complex components with the `ListItem` since\n * you can provided `children` and have the styles for the `primaryText` still\n * applied. By default, this will only allow one line of text and add ellipsis\n * for any text overflow.\n */\n primaryText?: ReactNode;\n\n /**\n * An optional element that should be rendered as the `secondaryText` within\n * the list item. By default, this will only span one line and add ellipsis\n * for overflow.\n */\n secondaryText?: ReactNode;\n\n /**\n * Any additional props that should be passed to the `<span>` surrounding\n * the {@link secondaryText}.\n *\n * @remarks \\@since 6.0.0\n */\n secondaryTextProps?: PropsWithRef<\n HTMLAttributes<HTMLSpanElement>,\n HTMLSpanElement\n >;\n\n /**\n * Set this to `true` to allow the {@link secondaryText} to span multiple\n * lines and use the CSS clamp after two lines of text are visible. The number\n * of lines can be configured by `core.$list-item-multiline-clamp` or\n * `@include core.list-set-var(item-multiline-clamp, $new-value)`.\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-line-clamp}\n * @defaultValue `false`\n */\n multiline?: boolean;\n}\n"],"names":[],"mappings":"AA4IA,WA2EC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/media-queries/AppSizeProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useMemo,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\nimport { useOrientation } from \"../useOrientation.js\";\nimport {\n DEFAULT_APP_SIZE,\n DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n DEFAULT_DESKTOP_MIN_WIDTH,\n DEFAULT_PHONE_MAX_WIDTH,\n DEFAULT_TABLET_MAX_WIDTH,\n DEFAULT_TABLET_MIN_WIDTH,\n type AppSize,\n type AppSizeQueries,\n} from \"./appSize.js\";\nimport { useMediaQuery } from \"./useMediaQuery.js\";\n\n/** @internal */\ninterface AppSizeContext extends AppSize {\n __root: boolean;\n}\n\nconst context = createContext<AppSizeContext>({\n __root: false,\n isPhone: false,\n isTablet: false,\n isDesktop: true,\n isLargeDesktop: false,\n isLandscape: true,\n});\ncontext.displayName = \"AppSize\";\nconst { Provider } = context;\n\n/**\n * **Note**: The app size object returned by this hook will **not** be equal\n * between renders.\n *\n * @example\n * Simple Example\n * ```tsx\n * import { useAppSize } from \"@react-md/core\";\n *\n * function Example() {\n * const { isPhone, isTablet, isDesktop, isLargeDesktop, isLandscape } =\n * useAppSize()\n *\n * // do something based on the app size\n * return null;\n * }\n * ```\n *\n * @returns the current app size.\n * @throws \"The `AppSizeProvider` has not been mounted.\"\n */\nexport function useAppSize(): Readonly<AppSize> {\n const { __root, ...appSize } = useContext(context);\n if (!__root) {\n throw new Error(\"The `AppSizeProvider` has not been mounted.\");\n }\n\n return appSize;\n}\n\nexport interface AppSizeProviderProps extends AppSizeQueries {\n /**\n * @defaultValue `DEFAULT_APP_SIZE`\n * @see {@link DEFAULT_APP_SIZE}\n */\n ssrSize?: Readonly<AppSize>;\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component should be mounted near the root of your app to determine the\n * current app size based on different media queries.\n */\nexport function AppSizeProvider(props: AppSizeProviderProps): ReactElement {\n const {\n ssrSize = DEFAULT_APP_SIZE,\n phoneMaxWidth = DEFAULT_PHONE_MAX_WIDTH,\n tabletMinWidth = DEFAULT_TABLET_MIN_WIDTH,\n tabletMaxWidth = DEFAULT_TABLET_MAX_WIDTH,\n desktopMinWidth = DEFAULT_DESKTOP_MIN_WIDTH,\n desktopLargeMinWidth = DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n children,\n } = props;\n const { __root } = useContext(context);\n if (__root) {\n throw new Error(\"The `AppSizeProvider` cannot be mounted multiple times.\");\n }\n\n const ssr = useSsr();\n const matchesDesktop = useMediaQuery(\n `screen and (min-width: ${desktopMinWidth})`\n );\n const matchesLargeDesktop = useMediaQuery(\n `screen and (min-width: ${desktopLargeMinWidth})`\n );\n const matchesTablet = useMediaQuery(\n `screen and (min-width: ${tabletMinWidth}) and (max-width: ${tabletMaxWidth})`\n );\n const matchesPhone = useMediaQuery(\n `screen and (max-width: ${phoneMaxWidth})`\n );\n const isDesktop = matchesDesktop;\n const isTablet = !matchesDesktop && matchesTablet;\n const isPhone = !isTablet && !isDesktop && matchesPhone;\n const isLandscape = useOrientation().includes(\"landscape\");\n const isLargeDesktop = matchesLargeDesktop;\n\n const appSize = useMemo<AppSizeContext>(\n () => ({\n __root: true,\n isPhone,\n isTablet,\n isDesktop,\n isLargeDesktop,\n isLandscape,\n }),\n [isDesktop, isLandscape, isLargeDesktop, isPhone, isTablet]\n );\n\n let value = appSize;\n if (ssr || typeof window === \"undefined\") {\n value = {\n __root: true,\n ...ssrSize,\n };\n }\n\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useMemo","useSsr","useOrientation","DEFAULT_APP_SIZE","DEFAULT_DESKTOP_LARGE_MIN_WIDTH","DEFAULT_DESKTOP_MIN_WIDTH","DEFAULT_PHONE_MAX_WIDTH","DEFAULT_TABLET_MAX_WIDTH","DEFAULT_TABLET_MIN_WIDTH","useMediaQuery","context","__root","isPhone","isTablet","isDesktop","isLargeDesktop","isLandscape","displayName","Provider","useAppSize","appSize","Error","AppSizeProvider","props","ssrSize","phoneMaxWidth","tabletMinWidth","tabletMaxWidth","desktopMinWidth","desktopLargeMinWidth","children","ssr","matchesDesktop","matchesLargeDesktop","matchesTablet","matchesPhone","includes","value","window"],"mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,EACVC,OAAO,QAGF,QAAQ;AACf,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SACEC,gBAAgB,EAChBC,+BAA+B,EAC/BC,yBAAyB,EACzBC,uBAAuB,EACvBC,wBAAwB,EACxBC,wBAAwB,QAGnB,eAAe;AACtB,SAASC,aAAa,QAAQ,qBAAqB;AAOnD,MAAMC,wBAAUZ,cAA8B;IAC5Ca,QAAQ;IACRC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,gBAAgB;IAChBC,aAAa;AACf;AACAN,QAAQO,WAAW,GAAG;AACtB,MAAM,EAAEC,QAAQ,EAAE,GAAGR;AAErB;;;;;;;;;;;;;;;;;;;;CAoBC,GACD,OAAO,SAASS;IACd,MAAM,EAAER,MAAM,EAAE,GAAGS,SAAS,GAAGrB,WAAWW;IAC1C,IAAI,CAACC,QAAQ;QACX,MAAM,IAAIU,MAAM;IAClB;IAEA,OAAOD;AACT;AAWA;;;;;CAKC,GACD,OAAO,SAASE,gBAAgBC,KAA2B;IACzD,MAAM,EACJC,UAAUrB,gBAAgB,EAC1BsB,gBAAgBnB,uBAAuB,EACvCoB,iBAAiBlB,wBAAwB,EACzCmB,iBAAiBpB,wBAAwB,EACzCqB,kBAAkBvB,yBAAyB,EAC3CwB,uBAAuBzB,+BAA+B,EACtD0B,QAAQ,EACT,GAAGP;IACJ,MAAM,EAAEZ,MAAM,EAAE,GAAGZ,WAAWW;IAC9B,IAAIC,QAAQ;QACV,MAAM,IAAIU,MAAM;IAClB;IAEA,MAAMU,MAAM9B;IACZ,MAAM+B,iBAAiBvB,cACrB,CAAC,uBAAuB,EAAEmB,gBAAgB,CAAC,CAAC;IAE9C,MAAMK,sBAAsBxB,cAC1B,CAAC,uBAAuB,EAAEoB,qBAAqB,CAAC,CAAC;IAEnD,MAAMK,gBAAgBzB,cACpB,CAAC,uBAAuB,EAAEiB,eAAe,kBAAkB,EAAEC,eAAe,CAAC,CAAC;IAEhF,MAAMQ,eAAe1B,cACnB,CAAC,uBAAuB,EAAEgB,cAAc,CAAC,CAAC;IAE5C,MAAMX,YAAYkB;IAClB,MAAMnB,WAAW,CAACmB,kBAAkBE;IACpC,MAAMtB,UAAU,CAACC,YAAY,CAACC,aAAaqB;IAC3C,MAAMnB,cAAcd,iBAAiBkC,QAAQ,CAAC;IAC9C,MAAMrB,iBAAiBkB;IAEvB,MAAMb,UAAUpB,QACd,IAAO,CAAA;YACLW,QAAQ;YACRC;YACAC;YACAC;YACAC;YACAC;QACF,CAAA,GACA;QAACF;QAAWE;QAAaD;QAAgBH;QAASC;KAAS;IAG7D,IAAIwB,QAAQjB;IACZ,IAAIW,OAAO,OAAOO,WAAW,aAAa;QACxCD,QAAQ;YACN1B,QAAQ;YACR,GAAGa,OAAO;QACZ;IACF;IAEA,qBAAO,KAACN;QAASmB,OAAOA;kBAAQP;;AAClC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/media-queries/appSize.ts"],"sourcesContent":["export type QuerySize = number | `${number}${string}`;\n\n/** @defaultValue `47.9375em` */\nexport const DEFAULT_PHONE_MAX_WIDTH = `${767 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `48em` */\nexport const DEFAULT_TABLET_MIN_WIDTH = `${768 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `64em` */\nexport const DEFAULT_TABLET_MAX_WIDTH = `${1024 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `64.0625em` */\nexport const DEFAULT_DESKTOP_MIN_WIDTH = `${1025 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `80em` */\nexport const DEFAULT_DESKTOP_LARGE_MIN_WIDTH = `${\n 1280 / 16\n}em` satisfies QuerySize;\n\nexport interface AppSizeQueries {\n /**\n * The max width to use for phones. This one is a max width unlike the others\n * since everything from 0 to this value will be considered a phone.\n *\n * @defaultValue `47.9375em`\n * @see {@link DEFAULT_PHONE_MAX_WIDTH}\n */\n phoneMaxWidth?: QuerySize;\n\n /**\n * The min width for a tablet device.\n *\n * @defaultValue `48em`\n * @see {@link DEFAULT_TABLET_MIN_WIDTH}\n */\n tabletMinWidth?: QuerySize;\n\n /**\n * The max width for a tablet device. This should normally be `1px` less than\n * the `desktopMinWidth`, but it can be any value if needed. The tablet has a\n * range of min to max so that you can have a bit more control.\n *\n * @defaultValue `64em`\n * @see {@link DEFAULT_TABLET_MAX_WIDTH}\n */\n tabletMaxWidth?: QuerySize;\n\n /**\n * The min width for a desktop screen.\n *\n * @defaultValue `64.0625em`\n * @see {@link DEFAULT_DESKTOP_MIN_WIDTH}\n */\n desktopMinWidth?: QuerySize;\n\n /**\n * The min width for a large (1440p, 4k, etc) desktop screen.\n *\n * @defaultValue `80em`\n * @see {@link DEFAULT_DESKTOP_LARGE_MIN_WIDTH}\n */\n desktopLargeMinWidth?: QuerySize;\n}\n\nexport const DEFAULT_APP_SIZE_QUERIES: Readonly<AppSizeQueries> = {\n phoneMaxWidth: DEFAULT_PHONE_MAX_WIDTH,\n tabletMinWidth: DEFAULT_TABLET_MIN_WIDTH,\n tabletMaxWidth: DEFAULT_TABLET_MAX_WIDTH,\n desktopMinWidth: DEFAULT_DESKTOP_MIN_WIDTH,\n desktopLargeMinWidth: DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n};\n\n/**\n * The current size for your application. This should work both server side and\n * client side, but you will have much better results client side.\n */\nexport interface AppSize {\n /**\n * Boolean if currently matching a phone by comparing the max width of the\n * device.\n */\n isPhone: boolean;\n\n /**\n * Boolean if currently matching a tablet by comparing the max width of the\n * device.\n */\n isTablet: boolean;\n\n /**\n * Boolean if currently matching a desktop screen by comparing the max width\n * of the device.\n */\n isDesktop: boolean;\n\n /**\n * Boolean if currently matching a large desktop screen by comparing the max\n * width of the device.\n */\n isLargeDesktop: boolean;\n\n /**\n * Boolean if the app is considered to be in landscape mode. This will just\n * verify that the window width is greater than the window height.\n *\n * NOTE: This might not be super accurate on Android devices since the soft\n * keyboard will change the dimensions of the viewport when it appears. It is\n * recommended to use the `useOrientation` hook as well if you'd like to get\n * the current orientation type.\n */\n isLandscape: boolean;\n}\n\nexport const DEFAULT_APP_SIZE: AppSize = {\n isPhone: false,\n isTablet: false,\n isDesktop: true,\n isLargeDesktop: false,\n isLandscape: true,\n};\n"],"names":["DEFAULT_PHONE_MAX_WIDTH","DEFAULT_TABLET_MIN_WIDTH","DEFAULT_TABLET_MAX_WIDTH","DEFAULT_DESKTOP_MIN_WIDTH","DEFAULT_DESKTOP_LARGE_MIN_WIDTH","DEFAULT_APP_SIZE_QUERIES","phoneMaxWidth","tabletMinWidth","tabletMaxWidth","desktopMinWidth","desktopLargeMinWidth","DEFAULT_APP_SIZE","isPhone","isTablet","isDesktop","isLargeDesktop","isLandscape"],"mappings":"AAEA,8BAA8B,GAC9B,OAAO,MAAMA,0BAA0B,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAqB;AAE3E,yBAAyB,GACzB,OAAO,MAAMC,2BAA2B,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAqB;AAE5E,yBAAyB,GACzB,OAAO,MAAMC,2BAA2B,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAqB;AAE7E,8BAA8B,GAC9B,OAAO,MAAMC,4BAA4B,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAqB;AAE9E,yBAAyB,GACzB,OAAO,MAAMC,kCAAkC,CAAC,EAC9C,OAAO,GACR,EAAE,CAAC,CAAqB;AA+CzB,OAAO,MAAMC,2BAAqD;IAChEC,eAAeN;IACfO,gBAAgBN;IAChBO,gBAAgBN;IAChBO,iBAAiBN;IACjBO,sBAAsBN;AACxB,EAAE;AA2CF,OAAO,MAAMO,mBAA4B;IACvCC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,gBAAgB;IAChBC,aAAa;AACf,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/media-queries/useMediaQuery.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useState } from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\n\n/**\n * @example\n * Simple Example\n * ```tsx\n * import { useMediaQuery } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const matches = useMediaQuery(\"screen and (min-width: 768px)\");\n *\n * return <>{matches ? \"Matches\" : \"Doesn't\"}</>;\n * }\n * ```\n *\n * @param query - The media query to use\n * @param disabled - When `true`, the `window.matchMedia` API will not be\n * activated and the hook will always return `false`.\n * @returns `true` if the media query matches\n * @remarks \\@since 6.0.0\n */\nexport function useMediaQuery(query: string, disabled = false): boolean {\n const ssr = useSsr();\n const [matches, setMatches] = useState(() => {\n if (typeof window === \"undefined\" || disabled || ssr) {\n return false;\n }\n\n return window.matchMedia(query).matches;\n });\n\n useEffect(() => {\n if (disabled || ssr) {\n return;\n }\n\n const result = window.matchMedia(query);\n setMatches(result.matches);\n\n const updater = ({ matches }: MediaQueryListEvent): void =>\n setMatches(matches);\n\n result.addEventListener(\"change\", updater);\n return () => {\n result.removeEventListener(\"change\", updater);\n };\n }, [disabled, query, ssr]);\n\n return matches;\n}\n"],"names":["useEffect","useState","useSsr","useMediaQuery","query","disabled","ssr","matches","setMatches","window","matchMedia","result","updater","addEventListener","removeEventListener"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAC5C,SAASC,MAAM,QAAQ,oBAAoB;AAE3C;;;;;;;;;;;;;;;;;;;CAmBC,GACD,OAAO,SAASC,cAAcC,KAAa,EAAEC,WAAW,KAAK;IAC3D,MAAMC,MAAMJ;IACZ,MAAM,CAACK,SAASC,WAAW,GAAGP,SAAS;QACrC,IAAI,OAAOQ,WAAW,eAAeJ,YAAYC,KAAK;YACpD,OAAO;QACT;QAEA,OAAOG,OAAOC,UAAU,CAACN,OAAOG,OAAO;IACzC;IAEAP,UAAU;QACR,IAAIK,YAAYC,KAAK;YACnB;QACF;QAEA,MAAMK,SAASF,OAAOC,UAAU,CAACN;QACjCI,WAAWG,OAAOJ,OAAO;QAEzB,MAAMK,UAAU,CAAC,EAAEL,OAAO,EAAuB,GAC/CC,WAAWD;QAEbI,OAAOE,gBAAgB,CAAC,UAAUD;QAClC,OAAO;YACLD,OAAOG,mBAAmB,CAAC,UAAUF;QACvC;IACF,GAAG;QAACP;QAAUD;QAAOE;KAAI;IAEzB,OAAOC;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/DropdownMenu.tsx"],"sourcesContent":["\"use client\";\nimport {\n useCallback,\n useRef,\n type ReactElement,\n type ReactNode,\n type RefObject,\n} from \"react\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { getLastFocusableIndex } from \"../movement/utils.js\";\nimport { type UseStateSetter } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredState } from \"../useEnsuredState.js\";\nimport {\n Menu,\n type MenuConvenienceProps,\n type MenuListConvenienceProps,\n} from \"./Menu.js\";\nimport { MenuButton, type MenuButtonProps } from \"./MenuButton.js\";\nimport {\n MenuConfigurationProvider,\n type MenuConfiguration,\n} from \"./MenuConfigurationProvider.js\";\nimport { MenuItemButton, type MenuItemButtonProps } from \"./MenuItemButton.js\";\nimport { type MenuSheetConvenienceProps } from \"./MenuSheet.js\";\nimport { MenuVisibilityProvider } from \"./MenuVisibilityProvider.js\";\nimport { useMenuBarContext } from \"./useMenuBarProvider.js\";\n\nexport interface BaseDropdownMenuProps\n extends MenuConfiguration,\n MenuListConvenienceProps,\n MenuSheetConvenienceProps,\n MenuConvenienceProps {\n buttonChildren: ReactNode;\n}\n\nexport interface DropdownMenuButtonProps\n extends MenuButtonProps,\n BaseDropdownMenuProps {}\n\nexport interface DropdownMenuItemButtonProps\n extends MenuItemButtonProps,\n BaseDropdownMenuProps {}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface DropdownMenuStateProps {\n visible: boolean;\n setVisible: UseStateSetter<boolean>;\n}\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated to use an `&` instead of `|` to allow autocompletion to\n * work better by default. It's up to the user to make sure they don't provide\n * incorrect props.\n */\nexport type DropdownMenuProps = DropdownMenuButtonProps &\n DropdownMenuItemButtonProps &\n (DropdownMenuStateProps | { visible?: never; setVisible?: never });\n\n/**\n * **Client Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { DropdownMenu, MenuItem } from \"@react-md/core\";\n *\n * function Example() {\n * return (\n * <DropdownMenu buttonChildren=\"Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Item 2\n * </MenuItem>\n * </DropdownMenu>\n * );\n * }\n * ```\n *\n * @example\n * Nested Dropdown Menus\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { DropdownMenu, MenuItem } from \"@react-md/core\";\n *\n * function Example() {\n * return (\n * <DropdownMenu buttonChildren=\"Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Item 2\n * </MenuItem>\n * <DropdownMenu buttonChildren=\"Nested Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Nested Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Nested Item 2\n * </MenuItem>\n * </DropdownMenu>\n * </DropdownMenu>\n * );\n * }\n * ```\n *\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated to use the latest menu API.\n */\nexport function DropdownMenu(props: DropdownMenuProps): ReactElement {\n const {\n id: propId,\n horizontal,\n sheetHeader,\n sheetFooter,\n renderAsSheet,\n sheetPosition,\n sheetVerticalSize,\n buttonChildren,\n iconRotatorProps: propIconRotatorProps,\n disableTransition: propDisableTransition,\n floating,\n anchor,\n vwMargin,\n vhMargin,\n xMargin,\n yMargin,\n initialX,\n initialY,\n width,\n transformOrigin,\n preventOverlap,\n disableSwapping,\n disableVHBounds,\n preventScroll,\n closeOnResize,\n closeOnScroll,\n getFixedPositionOptions,\n children,\n temporary,\n disablePortal,\n disableElevation,\n menuProps,\n menuStyle,\n menuClassName,\n sheetProps,\n sheetStyle,\n sheetClassName,\n visible: propVisible,\n setVisible: propSetVisible,\n ...remaining\n } = props;\n\n const fixedTo = useRef<HTMLElement | HTMLButtonElement>(null);\n const defaultFocusIndex = useRef(0);\n const [visible, setVisible] = useEnsuredState({\n value: propVisible,\n setValue: propSetVisible,\n defaultValue: false,\n });\n const { menubar, menuitem, activeIdRef, animatedOnceRef } =\n useMenuBarContext();\n const id = useEnsuredId(propId, `menu${menuitem ? \"item\" : \"button\"}`);\n const mode = useUserInteractionMode();\n const mouse = mode === \"mouse\";\n const keyboard = mode === \"keyboard\";\n const disableTransition =\n propDisableTransition ??\n (animatedOnceRef.current &&\n menubar &&\n !!activeIdRef.current &&\n (mouse || keyboard));\n\n const onRequestClose = useCallback(() => {\n setVisible(false);\n }, [setVisible]);\n\n let iconRotatorProps = propIconRotatorProps;\n if (disableTransition) {\n iconRotatorProps = {\n disableTransition,\n ...propIconRotatorProps,\n };\n }\n\n let toggle: ReactElement;\n if (menuitem) {\n toggle = (\n <MenuItemButton\n {...(remaining as DropdownMenuItemButtonProps)}\n id={id}\n ref={fixedTo as RefObject<HTMLLIElement>}\n iconRotatorProps={iconRotatorProps}\n >\n {buttonChildren}\n </MenuItemButton>\n );\n } else {\n toggle = (\n <MenuButton\n {...(remaining as DropdownMenuButtonProps)}\n id={id}\n ref={fixedTo as RefObject<HTMLButtonElement>}\n floating={floating}\n iconRotatorProps={iconRotatorProps}\n >\n {buttonChildren}\n </MenuButton>\n );\n }\n\n return (\n <MenuVisibilityProvider\n visible={visible}\n setVisible={setVisible}\n defaultFocusIndex={defaultFocusIndex}\n >\n <MenuConfigurationProvider\n horizontal={horizontal}\n renderAsSheet={renderAsSheet}\n sheetFooter={sheetFooter}\n sheetHeader={sheetHeader}\n sheetPosition={sheetPosition}\n sheetVerticalSize={sheetVerticalSize}\n >\n {toggle}\n </MenuConfigurationProvider>\n <Menu\n aria-labelledby={(menuProps?.[\"aria-label\"] ? undefined : id) as string}\n style={menuStyle}\n className={menuClassName}\n sheetProps={sheetProps}\n sheetStyle={sheetStyle}\n sheetClassName={sheetClassName}\n temporary={temporary}\n disablePortal={disablePortal}\n disableElevation={disableElevation}\n disableTransition={disableTransition}\n floating={floating}\n anchor={anchor}\n vwMargin={vwMargin}\n vhMargin={vhMargin}\n xMargin={xMargin}\n yMargin={yMargin}\n initialX={initialX}\n initialY={initialY}\n width={width}\n transformOrigin={transformOrigin}\n preventOverlap={preventOverlap}\n disableSwapping={disableSwapping}\n disableVHBounds={disableVHBounds}\n preventScroll={preventScroll}\n closeOnResize={closeOnResize}\n closeOnScroll={closeOnScroll}\n getFixedPositionOptions={getFixedPositionOptions}\n horizontal={horizontal}\n sheetHeader={sheetHeader}\n sheetFooter={sheetFooter}\n renderAsSheet={renderAsSheet}\n sheetPosition={sheetPosition}\n sheetVerticalSize={sheetVerticalSize}\n {...menuProps}\n fixedTo={fixedTo}\n visible={visible}\n getDefaultFocusedIndex={(options) => {\n const defaultIndex = defaultFocusIndex.current;\n if (defaultIndex < 0) {\n return getLastFocusableIndex(options);\n }\n\n return defaultIndex;\n }}\n onRequestClose={onRequestClose}\n onEntered={(appearing) => {\n menuProps?.onEntered?.(appearing);\n // this will be called before `getDefaultFocusedIndex`\n if (disableTransition) {\n return;\n }\n\n defaultFocusIndex.current = 0;\n }}\n >\n {children}\n </Menu>\n </MenuVisibilityProvider>\n );\n}\n"],"names":["useCallback","useRef","useUserInteractionMode","getLastFocusableIndex","useEnsuredId","useEnsuredState","Menu","MenuButton","MenuConfigurationProvider","MenuItemButton","MenuVisibilityProvider","useMenuBarContext","DropdownMenu","props","id","propId","horizontal","sheetHeader","sheetFooter","renderAsSheet","sheetPosition","sheetVerticalSize","buttonChildren","iconRotatorProps","propIconRotatorProps","disableTransition","propDisableTransition","floating","anchor","vwMargin","vhMargin","xMargin","yMargin","initialX","initialY","width","transformOrigin","preventOverlap","disableSwapping","disableVHBounds","preventScroll","closeOnResize","closeOnScroll","getFixedPositionOptions","children","temporary","disablePortal","disableElevation","menuProps","menuStyle","menuClassName","sheetProps","sheetStyle","sheetClassName","visible","propVisible","setVisible","propSetVisible","remaining","fixedTo","defaultFocusIndex","value","setValue","defaultValue","menubar","menuitem","activeIdRef","animatedOnceRef","mode","mouse","keyboard","current","onRequestClose","toggle","ref","aria-labelledby","undefined","style","className","getDefaultFocusedIndex","options","defaultIndex","onEntered","appearing"],"mappings":"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"}
|
package/dist/menu/Menu.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/Menu.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n useEffect,\n useRef,\n type CSSProperties,\n type HTMLAttributes,\n} from \"react\";\nimport { type FloatingActionButtonPosition } from \"../button/FloatingActionButton.js\";\nimport { useFocusContainer } from \"../focus/useFocusContainer.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { type ListElement, type ListProps } from \"../list/List.js\";\nimport { useAppSize } from \"../media-queries/AppSizeProvider.js\";\nimport { type GetDefaultFocusedIndex } from \"../movement/types.js\";\nimport { Portal } from \"../portal/Portal.js\";\nimport { type CalculateFixedPositionOptions } from \"../positioning/types.js\";\nimport {\n useFixedPositioning,\n type FixedPositioningOptions,\n} from \"../positioning/useFixedPositioning.js\";\nimport { useScrollLock } from \"../scroll/useScrollLock.js\";\nimport {\n useScaleTransition,\n type ScaleTransitionHookOptions,\n} from \"../transition/useScaleTransition.js\";\nimport { type LabelRequiredForA11y, type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport {\n MenuConfigurationProvider,\n useMenuConfiguration,\n type MenuConfiguration,\n type MenuOrientationProps,\n} from \"./MenuConfigurationProvider.js\";\nimport { MenuSheet, type MenuSheetConvenienceProps } from \"./MenuSheet.js\";\nimport { MenuWidget } from \"./MenuWidget.js\";\nimport { useMenuBarContext } from \"./useMenuBarProvider.js\";\nimport { getDefaultAnchor } from \"./utils.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-menu-background-color\"?: string;\n \"--rmd-menu-color\"?: string;\n \"--rmd-menu-min-width\"?: string | number;\n \"--rmd-menu-spacing\"?: string | number;\n }\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/** @remarks \\@since 5.0.0 */\nexport type MenuTransitionProps = Omit<\n ScaleTransitionHookOptions<HTMLDivElement>,\n \"transitionIn\" | \"vertical\" | \"nodeRef\"\n>;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuConfigurationProps extends CalculateFixedPositionOptions {\n /**\n * @see {@link ScaleTransitionHookOptions.temporary}\n * @defaultValue `true`\n */\n temporary?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disablePortal?: boolean;\n\n /**\n * Boolean if the menu should not gain the elevation styles and should only be\n * set to `true` when rendering within a `Sheet`.\n *\n * @defaultValue `false`\n */\n disableElevation?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disableTransition?: boolean;\n\n /**\n * @see {@link FixedPositioningOptions.transformOrigin}\n * @defaultValue `true`\n */\n transformOrigin?: boolean;\n\n /**\n * Boolean if the menu should close if the page is scrolled. The default\n * behavior is to just update the position of the menu relative to the menu\n * button until it can no longer be visible within the viewport.\n *\n * @defaultValue `false`\n */\n closeOnScroll?: boolean;\n\n /**\n * Boolean if the page should no longer be scrollable while the menu is\n * visible.\n *\n * @defaultValue `false`\n */\n preventScroll?: boolean;\n\n /**\n * Boolean if the menu should close instead of repositioning itself if the\n * browser window is resized.\n *\n * @defaultValue `false`\n */\n closeOnResize?: boolean;\n\n /** @see {@link FixedPositioningOptions.getFixedPositionOptions} */\n getFixedPositionOptions?(): CalculateFixedPositionOptions;\n}\n\n/**\n * @remarks\n * \\@since 5.1.0\n * \\@since 6.0.0 Renamed from `MenuListProps` to `MenuListConvenienceProps`\n */\nexport interface MenuListConvenienceProps {\n /**\n * An optional style to provide to the `List` component that surrounds the\n * `MenuItem` within a `Menu`.\n */\n listStyle?: CSSProperties;\n\n /**\n * An optional className to provide to the `List` component that surrounds the\n * `MenuItem` within a `Menu`.\n */\n listClassName?: string;\n\n /**\n * Any additional props to pass to the `List` component that surrounds the\n * `Menu`'s `MenuItem`s.\n */\n listProps?: PropsWithRef<Omit<ListProps, \"horizontal\">, ListElement>;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuConvenienceProps extends MenuConfigurationProps {\n /**\n * This can be used to apply additional props to the `Menu` component.\n *\n * Note: You can override the `style` and `className` using\n * {@link menuStyle} and {@link menuClassName} instead for convenience.\n *\n * @example\n * ```tsx\n * <DropdownMenu\n * {...props}\n * menuProps={{\n * style: {\n * // custom inline style\n * },\n * className: \"come-class-name\",\n * getFixedPositionOptions: () => ({\n * preventOverlap: true,\n * }),\n * }}\n * />\n * ```\n */\n menuProps?: PropsWithRef<\n Omit<\n MenuProps,\n | \"children\"\n | \"fixedTo\"\n | \"visible\"\n | \"onRequestClose\"\n | \"getDefaultFocusedIndex\"\n >,\n HTMLDivElement\n >;\n\n /**\n * Convenience prop to apply custom style to the `Menu` component.\n */\n menuStyle?: CSSProperties;\n\n /**\n * Convenience prop to apply custom class name to the `Menu` component.\n */\n menuClassName?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type MenuFixedPositioningOptions = Omit<\n FixedPositioningOptions<HTMLElement, HTMLDivElement>,\n \"onScroll\" | \"onResize\"\n>;\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated to use the latest Menu, Transition, and Portal API.\n */\nexport interface MenuProps\n extends HTMLAttributes<HTMLDivElement>,\n MenuConfiguration,\n MenuConfigurationProps,\n MenuFixedPositioningOptions,\n MenuOrientationProps,\n MenuTransitionProps,\n MenuListConvenienceProps,\n MenuSheetConvenienceProps {\n visible: boolean;\n onRequestClose(): void;\n\n /**\n * @defaultValue `\"menu-\" + useId()`\n */\n id?: string;\n\n /**\n * This is used to set the default focus index when the menu is visible.\n *\n * @internal\n */\n getDefaultFocusedIndex?: GetDefaultFocusedIndex;\n\n /**\n * Custom style that should be applied to the menu only while not rendered\n * within a sheet since the {@link style} would be applied to both versions.\n */\n menuStyle?: CSSProperties;\n\n /**\n * Custom class name that should be applied only while not rendered within a\n * sheet.\n */\n menuClassName?: string;\n\n /**\n * @internal\n *\n * This is only used to update the default anchor when the DropdownMenu's\n * toggle is a floating action button.\n */\n floating?: FloatingActionButtonPosition;\n}\n\n/**\n * **Client Component**\n *\n * This component should generally only be used to implement context menus with\n * the `useContextMenu` hook. Otherwise, the `DropdownMenu` component should be\n * used.\n *\n * @see The `useContextMenu` hook for an example.\n *\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated this component to implement all the `Menu`\n * functionality instead of requiring the `useMenu` hook and `MenuWidget`\n * component. In addition, the `renderAsSheet` behavior has been moved into this\n * implementation so that the `MenuRenderer` is no longer required and context\n * menus can appear as a `Sheet`.\n */\nexport const Menu = forwardRef<HTMLDivElement, LabelRequiredForA11y<MenuProps>>(\n function Menu(props, propRef) {\n const {\n id: propId,\n style: propStyle,\n role = \"menu\",\n children,\n horizontal: _horizontal,\n sheetHeader: _sheetHeader,\n sheetFooter: _sheetFooter,\n renderAsSheet: _renderAsSheet,\n sheetPosition: _sheetPosition,\n sheetVerticalSize: _sheetVerticalSize,\n sheetProps,\n sheetStyle,\n sheetClassName,\n menuStyle,\n menuClassName,\n disableElevation = false,\n temporary = true,\n tabIndex = -1,\n fixedTo,\n className,\n classNames,\n timeout,\n appear,\n enter,\n exit,\n onEnter,\n onEntering = noop,\n onEntered = noop,\n onExit,\n onExiting,\n onExited = noop,\n onKeyDown = noop,\n listProps,\n listStyle,\n listClassName,\n visible,\n onRequestClose,\n floating,\n anchor,\n closeOnResize = false,\n closeOnScroll = false,\n preventScroll = false,\n vwMargin,\n vhMargin,\n xMargin,\n yMargin,\n width,\n transformOrigin = true,\n preventOverlap,\n disableSwapping,\n disableVHBounds,\n initialX,\n initialY,\n getFixedPositionOptions,\n disablePortal: propDisablePortal,\n disableTransition,\n ...remaining\n } = props;\n const { \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy } =\n props;\n\n const id = useEnsuredId(propId, \"menu\");\n const {\n root,\n menubar,\n menuitem,\n activeId,\n animatedOnceRef,\n hoverTimeoutRef,\n disableHoverMode,\n } = useMenuBarContext();\n const {\n horizontal,\n sheetHeader,\n sheetFooter,\n renderAsSheet,\n sheetPosition,\n sheetVerticalSize,\n } = useMenuConfiguration(props);\n const { isPhone } = useAppSize();\n const isSheet =\n renderAsSheet === true || (renderAsSheet === \"phone\" && isPhone);\n\n const entered = useRef(false);\n const cancelUnmountFocus = useRef(false);\n const hideWithoutRefocus = (): void => {\n cancelUnmountFocus.current = true;\n onRequestClose();\n };\n const mode = useUserInteractionMode();\n const mouse = mode === \"mouse\";\n\n const { eventHandlers, transitionOptions } = useFocusContainer({\n nodeRef: propRef,\n activate: visible,\n onKeyDown(event) {\n onKeyDown(event);\n\n // when a menu is within a sheet, it should not trigger the custom\n // keyboard behavior\n if (isSheet) {\n return;\n }\n\n switch (event.key) {\n case \"Escape\":\n // prevent parent components that have an \"Escape\" keypress event\n // from being triggered as well\n event.stopPropagation();\n disableHoverMode();\n onRequestClose();\n break;\n case \"Tab\":\n // since menus are portalled, tab index is kinda broke so just close\n // the menu instead of doing default tab behavior\n event.preventDefault();\n\n if (!menuitem) {\n // pressing the tab key should still cascade close all menus\n event.stopPropagation();\n }\n disableHoverMode();\n onRequestClose();\n break;\n case \"ArrowUp\":\n if (!root && menuitem && horizontal) {\n event.stopPropagation();\n event.preventDefault();\n onRequestClose();\n }\n break;\n case \"ArrowLeft\":\n if (!root && menuitem && !horizontal) {\n event.stopPropagation();\n event.preventDefault();\n onRequestClose();\n }\n break;\n }\n },\n onEntering(appearing) {\n onEntering(appearing);\n entered.current = true;\n },\n onEntered(appearing) {\n onEntered(appearing);\n entered.current = true;\n cancelUnmountFocus.current = false;\n animatedOnceRef.current = true;\n },\n onExited() {\n onExited();\n entered.current = false;\n },\n onExiting,\n disableTransition,\n isFocusTypeDisabled(type) {\n if (role === \"listbox\") {\n return !isSheet;\n }\n\n if (type === \"keyboard\") {\n return isSheet;\n }\n\n const isHoverDisabled = mouse && hoverTimeoutRef.current === 0;\n if (type === \"mount\") {\n return isHoverDisabled;\n }\n\n return (\n isHoverDisabled ||\n cancelUnmountFocus.current ||\n (root && !!activeId && id !== activeId)\n );\n },\n });\n\n const { ref, style, callbacks } = useFixedPositioning({\n ...transitionOptions,\n onEnter,\n style: isSheet ? propStyle : menuStyle,\n fixedTo,\n anchor: getDefaultAnchor({\n anchor,\n menubar,\n floating,\n menuitem: !root && menuitem,\n horizontal,\n }),\n vwMargin,\n vhMargin,\n xMargin,\n yMargin,\n width,\n transformOrigin,\n preventOverlap,\n disableSwapping,\n disableVHBounds,\n initialX,\n initialY,\n getFixedPositionOptions,\n onResize: closeOnResize ? hideWithoutRefocus : undefined,\n onScroll(_event, data) {\n if (!data.visible || closeOnScroll) {\n hideWithoutRefocus();\n }\n },\n });\n const { rendered, disablePortal, elementProps } = useScaleTransition({\n nodeRef: ref,\n className: cnb(!isSheet && menuClassName, className),\n transitionIn: visible,\n vertical: !horizontal,\n temporary,\n timeout: isSheet || disableTransition ? 0 : timeout,\n classNames,\n appear,\n enter,\n exit,\n onExit,\n onExiting: transitionOptions.onExiting,\n exitedHidden: true,\n ...callbacks,\n });\n useScrollLock(visible && preventScroll);\n\n // need to make sure that the useEffect does not refire for hiding on click\n // events because of the `window.requestAnimationFrame`. It'll make it so\n // that menu items that update state are unable to close when clicked\n const hide = useRef(onRequestClose);\n useEffect(() => {\n hide.current = onRequestClose;\n });\n useEffect(() => {\n if (!visible) {\n return;\n }\n\n const callback = (event: globalThis.MouseEvent): void => {\n // this is required for when the transition is disabled\n if (!entered.current) {\n return;\n }\n\n // if the user clicks outside of the menu to close it, the toggle button\n // should not be focused. instead the nearest focusable element from the\n // click event should be focused when Tab or Shift + tab is pressed\n cancelUnmountFocus.current =\n !(event.target instanceof HTMLElement) ||\n !event.target.closest(`[role=\"${role}\"]`);\n\n // this won't be called if `event.stopPropagation()` is called\n hide.current();\n disableHoverMode();\n };\n\n // wait an animation frame so the initial click event that caused the menu\n // to become visible does not immediately close the menu\n const frame = window.requestAnimationFrame(() => {\n window.addEventListener(\"click\", callback);\n });\n\n return () => {\n window.cancelAnimationFrame(frame);\n window.removeEventListener(\"click\", callback);\n };\n }, [disableHoverMode, role, visible]);\n\n return (\n <MenuConfigurationProvider\n horizontal={horizontal}\n renderAsSheet={renderAsSheet}\n sheetFooter={sheetFooter}\n sheetHeader={sheetHeader}\n sheetPosition={sheetPosition}\n sheetVerticalSize={sheetVerticalSize}\n >\n <MenuSheet\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy as string}\n header={sheetHeader}\n footer={sheetFooter}\n position={sheetPosition}\n verticalSize={sheetVerticalSize}\n visible={visible}\n enabled={isSheet}\n onRequestClose={onRequestClose}\n style={sheetStyle}\n className={sheetClassName}\n disablePortal={propDisablePortal}\n temporary={temporary}\n disableTransition={disableTransition}\n {...sheetProps}\n >\n <Portal disabled={isSheet || (propDisablePortal ?? disablePortal)}>\n {(rendered || isSheet) && (\n <MenuWidget\n {...remaining}\n {...elementProps}\n {...eventHandlers}\n id={id}\n role={role}\n style={isSheet ? propStyle : style}\n isSheet={isSheet}\n tabIndex={tabIndex}\n horizontal={horizontal}\n listProps={listProps}\n listStyle={listStyle}\n listClassName={listClassName}\n disableElevation={disableElevation}\n cancelUnmountFocus={cancelUnmountFocus}\n >\n {children}\n </MenuWidget>\n )}\n </Portal>\n </MenuSheet>\n </MenuConfigurationProvider>\n );\n }\n);\n"],"names":["cnb","forwardRef","useEffect","useRef","useFocusContainer","useUserInteractionMode","useAppSize","Portal","useFixedPositioning","useScrollLock","useScaleTransition","useEnsuredId","MenuConfigurationProvider","useMenuConfiguration","MenuSheet","MenuWidget","useMenuBarContext","getDefaultAnchor","noop","Menu","props","propRef","id","propId","style","propStyle","role","children","horizontal","_horizontal","sheetHeader","_sheetHeader","sheetFooter","_sheetFooter","renderAsSheet","_renderAsSheet","sheetPosition","_sheetPosition","sheetVerticalSize","_sheetVerticalSize","sheetProps","sheetStyle","sheetClassName","menuStyle","menuClassName","disableElevation","temporary","tabIndex","fixedTo","className","classNames","timeout","appear","enter","exit","onEnter","onEntering","onEntered","onExit","onExiting","onExited","onKeyDown","listProps","listStyle","listClassName","visible","onRequestClose","floating","anchor","closeOnResize","closeOnScroll","preventScroll","vwMargin","vhMargin","xMargin","yMargin","width","transformOrigin","preventOverlap","disableSwapping","disableVHBounds","initialX","initialY","getFixedPositionOptions","disablePortal","propDisablePortal","disableTransition","remaining","ariaLabel","ariaLabelledBy","root","menubar","menuitem","activeId","animatedOnceRef","hoverTimeoutRef","disableHoverMode","isPhone","isSheet","entered","cancelUnmountFocus","hideWithoutRefocus","current","mode","mouse","eventHandlers","transitionOptions","nodeRef","activate","event","key","stopPropagation","preventDefault","appearing","isFocusTypeDisabled","type","isHoverDisabled","ref","callbacks","onResize","undefined","onScroll","_event","data","rendered","elementProps","transitionIn","vertical","exitedHidden","hide","callback","target","HTMLElement","closest","frame","window","requestAnimationFrame","addEventListener","cancelAnimationFrame","removeEventListener","aria-label","aria-labelledby","header","footer","position","verticalSize","enabled","disabled"],"mappings":"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"}
|
package/dist/menu/MenuBar.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/MenuBar.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef } from \"react\";\nimport { List, type ListProps } from \"../list/List.js\";\nimport {\n KeyboardMovementProvider,\n useKeyboardMovementProvider,\n} from \"../movement/useKeyboardMovementProvider.js\";\nimport { MenuBarProvider, useMenuBarProvider } from \"./useMenuBarProvider.js\";\n\nexport interface MenuBarProps extends Omit<ListProps, \"role\"> {\n /**\n * @defaultValue `true`\n */\n horizontal?: boolean;\n\n /**\n * Set this to a number greater than 0 to allow opening dropdown menus within\n * the menubar after hovering for the duration in milliseconds. Once a menu\n * becomes visible within the menubar, all subsequent menus will become\n * visible immediately on hover as well until the hover mode is ended.\n *\n * For example:\n *\n * - `0` - the dropdown menus become visible immediately on hover\n * - `1000` - the first dropdown menu becomes visible after hovering for 1\n * second\n * - `undefined` - the hover mode can only be activate after a click with\n * mouse, touch, or keyboard\n *\n * @defaultValue `undefined`\n */\n hoverTimeout?: number;\n}\n\n/**\n * **Client Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import { DropdownMenu, MenuBar, MenuItem } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * export function SimpleExample(): ReactElement {\n * return (\n * <MenuBar>\n * <DropdownMenu buttonChildren=\"Item 1\">\n * <MenuItem>Menu Item 1</MenuItem>\n * <MenuItem>Menu Item 2</MenuItem>\n * <MenuItem>Menu Item 3</MenuItem>\n * </DropdownMenu>\n * <DropdownMenu buttonChildren=\"Item 2\">\n * <MenuItem>Menu Item 1</MenuItem>\n * <MenuItem>Menu Item 2</MenuItem>\n * <MenuItem>Menu Item 3</MenuItem>\n * </DropdownMenu>\n * <DropdownMenu buttonChildren=\"Item 3\">\n * <MenuItem>Menu Item 1</MenuItem>\n * <MenuItem>Menu Item 2</MenuItem>\n * <MenuItem>Menu Item 4</MenuItem>\n * </DropdownMenu>\n * </MenuBar>\n * );\n * }\n * ```\n *\n * @remarks \\@since 5.0.0\n * @remarks \\@since 6.0.0 Combined with the previous `MenuBarWidget`\n */\nexport const MenuBar = forwardRef<HTMLUListElement, MenuBarProps>(\n function MenuBar(props, ref) {\n const {\n onClick,\n onFocus,\n onKeyDown,\n horizontal = true,\n hoverTimeout,\n children,\n ...remaining\n } = props;\n const menuBarContext = useMenuBarProvider({\n root: true,\n menubar: true,\n hoverTimeout,\n });\n const { activeId, enableHoverMode } = menuBarContext;\n const { movementProps, movementContext } = useKeyboardMovementProvider({\n onClick,\n onFocus,\n onKeyDown,\n loopable: true,\n searchable: true,\n horizontal,\n includeDisabled: true,\n tabIndexBehavior: \"roving\",\n onFocusChange(event) {\n if (activeId) {\n enableHoverMode(event.element.id);\n }\n },\n });\n\n return (\n <KeyboardMovementProvider value={movementContext}>\n <MenuBarProvider value={menuBarContext}>\n <List\n {...remaining}\n {...movementProps}\n ref={ref}\n role=\"menubar\"\n horizontal={horizontal}\n >\n {children}\n </List>\n </MenuBarProvider>\n </KeyboardMovementProvider>\n );\n }\n);\n"],"names":["forwardRef","List","KeyboardMovementProvider","useKeyboardMovementProvider","MenuBarProvider","useMenuBarProvider","MenuBar","props","ref","onClick","onFocus","onKeyDown","horizontal","hoverTimeout","children","remaining","menuBarContext","root","menubar","activeId","enableHoverMode","movementProps","movementContext","loopable","searchable","includeDisabled","tabIndexBehavior","onFocusChange","event","element","id","value","role"],"mappings":"AAAA;;AACA,SAASA,UAAU,QAAQ,QAAQ;AACnC,SAASC,IAAI,QAAwB,kBAAkB;AACvD,SACEC,wBAAwB,EACxBC,2BAA2B,QACtB,6CAA6C;AACpD,SAASC,eAAe,EAAEC,kBAAkB,QAAQ,0BAA0B;AA2B9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCC,GACD,OAAO,MAAMC,wBAAUN,WACrB,SAASM,QAAQC,KAAK,EAAEC,GAAG;IACzB,MAAM,EACJC,OAAO,EACPC,OAAO,EACPC,SAAS,EACTC,aAAa,IAAI,EACjBC,YAAY,EACZC,QAAQ,EACR,GAAGC,WACJ,GAAGR;IACJ,MAAMS,iBAAiBX,mBAAmB;QACxCY,MAAM;QACNC,SAAS;QACTL;IACF;IACA,MAAM,EAAEM,QAAQ,EAAEC,eAAe,EAAE,GAAGJ;IACtC,MAAM,EAAEK,aAAa,EAAEC,eAAe,EAAE,GAAGnB,4BAA4B;QACrEM;QACAC;QACAC;QACAY,UAAU;QACVC,YAAY;QACZZ;QACAa,iBAAiB;QACjBC,kBAAkB;QAClBC,eAAcC,KAAK;YACjB,IAAIT,UAAU;gBACZC,gBAAgBQ,MAAMC,OAAO,CAACC,EAAE;YAClC;QACF;IACF;IAEA,qBACE,KAAC5B;QAAyB6B,OAAOT;kBAC/B,cAAA,KAAClB;YAAgB2B,OAAOf;sBACtB,cAAA,KAACf;gBACE,GAAGc,SAAS;gBACZ,GAAGM,aAAa;gBACjBb,KAAKA;gBACLwB,MAAK;gBACLpB,YAAYA;0BAEXE;;;;AAKX,GACA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/MenuButton.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef } from \"react\";\nimport { Button, type ButtonProps } from \"../button/Button.js\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { IconRotator, type IconRotatorProps } from \"../icon/IconRotator.js\";\nimport { type TextIconSpacingProps } from \"../icon/TextIconSpacing.js\";\nimport { useAppSize } from \"../media-queries/AppSizeProvider.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useMenuConfiguration } from \"./MenuConfigurationProvider.js\";\nimport { useMenuVisibility } from \"./MenuVisibilityProvider.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/** @remarks \\@since 5.0.0 */\nexport type MenuButtonTextIconSpacingProps = Pick<\n TextIconSpacingProps,\n \"icon\" | \"iconAfter\"\n>;\n\n/** @remarks \\@since 5.0.0 */\nexport type MenuButtonIconRotatorProps = Omit<\n IconRotatorProps,\n \"children\" | \"rotated\"\n>;\n\n/**\n * @remarks \\@since 5.0.0\n * @remarks \\@since 6.0.0 No longer extends the {@link ButtonProps}, no longer\n * requires an `id`, and no longer supports `textIconSpacingProps`.\n */\nexport interface BaseMenuButtonProps extends MenuButtonTextIconSpacingProps {\n /**\n * Any additional props to pass to the {@link IconRotator} component that\n * surrounds the {@link buttonChildren}\n */\n iconRotatorProps?: Readonly<MenuButtonIconRotatorProps>;\n\n /**\n * Boolean if the dropdown icon should be included with the button children.\n *\n * @defaultValue `buttonType === \"icon\"`\n */\n disableDropdownIcon?: boolean;\n}\n\n/**\n * @remarks \\@since 5.0.0\n * @remarks \\@since 6.0.0 See {@link BaseMenuButtonProps} for breaking changes.\n */\nexport interface MenuButtonProps extends ButtonProps, BaseMenuButtonProps {}\n\n/**\n * **Client Component**\n *\n * An internal component that handles rendering a button for the `DropdownMenu`\n * while implementing the correct accessibility and keyboard movement.\n *\n * @remarks \\@since 5.0.0\n * @remarks \\@since 6.0.0 See {@link BaseMenuButtonProps} for breaking changes.\n */\nexport const MenuButton = forwardRef<HTMLButtonElement, MenuButtonProps>(\n function MenuButton(props, ref) {\n const {\n id: propId,\n onClick = noop,\n onKeyDown = noop,\n icon: propIcon,\n iconAfter = true,\n iconRotatorProps,\n floating,\n buttonType = floating ? \"icon\" : \"text\",\n disableDropdownIcon = buttonType === \"icon\",\n children,\n ...remaining\n } = props;\n const id = useEnsuredId(propId, \"menubutton\");\n const { visible, setVisible, defaultFocusIndex } = useMenuVisibility();\n const { renderAsSheet } = useMenuConfiguration();\n const { isPhone } = useAppSize();\n const isSheet =\n renderAsSheet === true || (renderAsSheet === \"phone\" && isPhone);\n\n const dropdownIcon = getIcon(\"dropdown\", propIcon);\n let icon = propIcon;\n if (!disableDropdownIcon) {\n icon = (\n <IconRotator {...iconRotatorProps} rotated={visible}>\n {dropdownIcon}\n </IconRotator>\n );\n }\n\n return (\n <Button\n {...remaining}\n aria-haspopup={isSheet ? \"dialog\" : \"menu\"}\n aria-expanded={visible || undefined}\n id={id}\n ref={ref}\n floating={floating}\n buttonType={buttonType}\n onClick={(event) => {\n onClick(event);\n\n defaultFocusIndex.current = 0;\n setVisible((prevVisible) => !prevVisible);\n }}\n onKeyDown={(event) => {\n onKeyDown(event);\n\n switch (event.key) {\n case \"ArrowDown\":\n event.preventDefault();\n event.stopPropagation();\n defaultFocusIndex.current = 0;\n setVisible(true);\n break;\n case \"ArrowUp\":\n event.preventDefault();\n event.stopPropagation();\n defaultFocusIndex.current = -1;\n setVisible(true);\n break;\n }\n }}\n >\n {!iconAfter && icon}\n {children}\n {iconAfter && icon}\n </Button>\n );\n }\n);\n"],"names":["forwardRef","Button","getIcon","IconRotator","useAppSize","useEnsuredId","useMenuConfiguration","useMenuVisibility","noop","MenuButton","props","ref","id","propId","onClick","onKeyDown","icon","propIcon","iconAfter","iconRotatorProps","floating","buttonType","disableDropdownIcon","children","remaining","visible","setVisible","defaultFocusIndex","renderAsSheet","isPhone","isSheet","dropdownIcon","rotated","aria-haspopup","aria-expanded","undefined","event","current","prevVisible","key","preventDefault","stopPropagation"],"mappings":"AAAA;;AACA,SAASA,UAAU,QAAQ,QAAQ;AACnC,SAASC,MAAM,QAA0B,sBAAsB;AAC/D,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAASC,WAAW,QAA+B,yBAAyB;AAE5E,SAASC,UAAU,QAAQ,sCAAsC;AACjE,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,oBAAoB,QAAQ,iCAAiC;AACtE,SAASC,iBAAiB,QAAQ,8BAA8B;AAEhE,MAAMC,OAAO;AACX,aAAa;AACf;AAwCA;;;;;;;;CAQC,GACD,OAAO,MAAMC,2BAAaT,WACxB,SAASS,WAAWC,KAAK,EAAEC,GAAG;IAC5B,MAAM,EACJC,IAAIC,MAAM,EACVC,UAAUN,IAAI,EACdO,YAAYP,IAAI,EAChBQ,MAAMC,QAAQ,EACdC,YAAY,IAAI,EAChBC,gBAAgB,EAChBC,QAAQ,EACRC,aAAaD,WAAW,SAAS,MAAM,EACvCE,sBAAsBD,eAAe,MAAM,EAC3CE,QAAQ,EACR,GAAGC,WACJ,GAAGd;IACJ,MAAME,KAAKP,aAAaQ,QAAQ;IAChC,MAAM,EAAEY,OAAO,EAAEC,UAAU,EAAEC,iBAAiB,EAAE,GAAGpB;IACnD,MAAM,EAAEqB,aAAa,EAAE,GAAGtB;IAC1B,MAAM,EAAEuB,OAAO,EAAE,GAAGzB;IACpB,MAAM0B,UACJF,kBAAkB,QAASA,kBAAkB,WAAWC;IAE1D,MAAME,eAAe7B,QAAQ,YAAYe;IACzC,IAAID,OAAOC;IACX,IAAI,CAACK,qBAAqB;QACxBN,qBACE,KAACb;YAAa,GAAGgB,gBAAgB;YAAEa,SAASP;sBACzCM;;IAGP;IAEA,qBACE,MAAC9B;QACE,GAAGuB,SAAS;QACbS,iBAAeH,UAAU,WAAW;QACpCI,iBAAeT,WAAWU;QAC1BvB,IAAIA;QACJD,KAAKA;QACLS,UAAUA;QACVC,YAAYA;QACZP,SAAS,CAACsB;YACRtB,QAAQsB;YAERT,kBAAkBU,OAAO,GAAG;YAC5BX,WAAW,CAACY,cAAgB,CAACA;QAC/B;QACAvB,WAAW,CAACqB;YACVrB,UAAUqB;YAEV,OAAQA,MAAMG,GAAG;gBACf,KAAK;oBACHH,MAAMI,cAAc;oBACpBJ,MAAMK,eAAe;oBACrBd,kBAAkBU,OAAO,GAAG;oBAC5BX,WAAW;oBACX;gBACF,KAAK;oBACHU,MAAMI,cAAc;oBACpBJ,MAAMK,eAAe;oBACrBd,kBAAkBU,OAAO,GAAG,CAAC;oBAC7BX,WAAW;oBACX;YACJ;QACF;;YAEC,CAACR,aAAaF;YACdO;YACAL,aAAaF;;;AAGpB,GACA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/MenuConfigurationProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useMemo,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { type SheetPosition, type SheetVerticalSize } from \"../sheet/styles.js\";\n\n/** @remarks \\@since 5.0.0 */\nexport interface MenuOrientationProps {\n /**\n * Boolean if the menu should be rendered horizontally instead of vertically.\n * This will also update the `aria-orientation`.\n *\n * @defaultValue `false`\n */\n horizontal?: boolean;\n}\n\n/**\n * This allows the menu to be conditionally rendered as a `Sheet` instead of a\n * menu.\n *\n * - `false` - always render as a `Menu`\n * - `true` - always render as a `Sheet`\n * - `\"phone\"` - render as a sheet only when the {@link AppSize} is considered\n * phone (`isPhone === true`).\n *\n * @defaultValue `false`\n * @remarks \\@since 5.0.0\n */\nexport type RenderMenuAsSheet = boolean | \"phone\";\n\n/** @remarks \\@since 5.0.0 */\nexport interface MenuConfiguration extends MenuOrientationProps {\n /** {@inheritDoc RenderMenuAsSheet} */\n renderAsSheet?: RenderMenuAsSheet;\n\n /**\n * @see {@link SheetPosition}\n * @defaultValue `\"bottom\"`\n */\n sheetPosition?: SheetPosition;\n\n /**\n * @see {@link SheetVerticalSize}\n * @defaultValue `\"touch\"`\n */\n sheetVerticalSize?: SheetVerticalSize;\n\n /**\n * Any children to render above the sheet's menu implementation. This would\n * normally be something like a `<DialogHeader>` or `AppBar`.\n *\n * @defaultValue `null`\n */\n sheetHeader?: ReactNode;\n\n /**\n * Any children to render below the sheet's menu implementation. This would\n * normally be something like a `<DialogFooter>`.\n *\n * @defaultValue `null`\n */\n sheetFooter?: ReactNode;\n}\n\n/** @remarks \\@since 5.0.0 */\nexport type MenuConfigurationContext = Required<MenuConfiguration>;\n\n/** @remarks \\@since 5.0.0 */\nexport const DEFAULT_MENU_CONFIGURATION: Readonly<MenuConfiguration> = {\n horizontal: false,\n renderAsSheet: false,\n sheetHeader: null,\n sheetFooter: null,\n sheetPosition: \"bottom\",\n sheetVerticalSize: \"touch\",\n};\n\n/**\n * @internal\n * @remarks \\@since 5.0.0\n */\nconst context = createContext<MenuConfigurationContext>({\n horizontal: false,\n renderAsSheet: false,\n sheetHeader: null,\n sheetFooter: null,\n sheetPosition: \"bottom\",\n sheetVerticalSize: \"touch\",\n});\ncontext.displayName = \"MenuConfiguration\";\n\n/**\n * @internal\n * @remarks \\@since 5.0.0\n */\nconst { Provider } = context;\n\n/**\n * This is probably just an internal only hook that allows you to get the\n * {@link MenuConfigurationContext} with optional overrides.\n *\n * @param overrides - An object of {@link MenuConfiguration} that would override\n * the inherited context values if they are not `undefined`.\n * @returns the {@link MenuConfigurationContext} with any overrides that were\n * provided.\n * @remarks \\@since 5.0.0\n */\nexport function useMenuConfiguration(\n overrides: MenuConfiguration = {}\n): Readonly<MenuConfigurationContext> {\n const {\n horizontal,\n renderAsSheet,\n sheetHeader,\n sheetFooter,\n sheetPosition,\n sheetVerticalSize,\n } = overrides;\n const inherited = useContext(context);\n\n return {\n horizontal: horizontal ?? inherited.horizontal,\n renderAsSheet: renderAsSheet ?? inherited.renderAsSheet,\n sheetHeader:\n sheetHeader === null ? null : sheetHeader ?? inherited.sheetHeader,\n sheetFooter:\n sheetFooter === null ? null : sheetFooter ?? inherited.sheetFooter,\n sheetPosition: sheetPosition ?? inherited.sheetPosition,\n sheetVerticalSize: sheetVerticalSize ?? inherited.sheetVerticalSize,\n };\n}\n\n/** @remarks \\@since 5.0.0 */\nexport interface MenuConfigurationProviderProps extends MenuConfiguration {\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * Note: This will always merge values with any parent\n * `MenuConfigurationProvider`s.\n *\n * @remarks \\@since 5.0.0\n */\nexport function MenuConfigurationProvider(\n props: MenuConfigurationProviderProps\n): ReactElement {\n const { children, ...configuration } = props;\n const {\n horizontal,\n renderAsSheet,\n sheetHeader,\n sheetFooter,\n sheetPosition,\n sheetVerticalSize,\n } = useMenuConfiguration(configuration);\n\n const value = useMemo<MenuConfigurationContext>(\n () => ({\n horizontal,\n renderAsSheet,\n sheetHeader,\n sheetFooter,\n sheetPosition,\n sheetVerticalSize,\n }),\n [\n horizontal,\n renderAsSheet,\n sheetFooter,\n sheetHeader,\n sheetPosition,\n sheetVerticalSize,\n ]\n );\n\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useMemo","DEFAULT_MENU_CONFIGURATION","horizontal","renderAsSheet","sheetHeader","sheetFooter","sheetPosition","sheetVerticalSize","context","displayName","Provider","useMenuConfiguration","overrides","inherited","MenuConfigurationProvider","props","children","configuration","value"],"mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,EACVC,OAAO,QAGF,QAAQ;AAiEf,2BAA2B,GAC3B,OAAO,MAAMC,6BAA0D;IACrEC,YAAY;IACZC,eAAe;IACfC,aAAa;IACbC,aAAa;IACbC,eAAe;IACfC,mBAAmB;AACrB,EAAE;AAEF;;;CAGC,GACD,MAAMC,wBAAUV,cAAwC;IACtDI,YAAY;IACZC,eAAe;IACfC,aAAa;IACbC,aAAa;IACbC,eAAe;IACfC,mBAAmB;AACrB;AACAC,QAAQC,WAAW,GAAG;AAEtB;;;CAGC,GACD,MAAM,EAAEC,QAAQ,EAAE,GAAGF;AAErB;;;;;;;;;CASC,GACD,OAAO,SAASG,qBACdC,YAA+B,CAAC,CAAC;IAEjC,MAAM,EACJV,UAAU,EACVC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,aAAa,EACbC,iBAAiB,EAClB,GAAGK;IACJ,MAAMC,YAAYd,WAAWS;IAE7B,OAAO;QACLN,YAAYA,cAAcW,UAAUX,UAAU;QAC9CC,eAAeA,iBAAiBU,UAAUV,aAAa;QACvDC,aACEA,gBAAgB,OAAO,OAAOA,eAAeS,UAAUT,WAAW;QACpEC,aACEA,gBAAgB,OAAO,OAAOA,eAAeQ,UAAUR,WAAW;QACpEC,eAAeA,iBAAiBO,UAAUP,aAAa;QACvDC,mBAAmBA,qBAAqBM,UAAUN,iBAAiB;IACrE;AACF;AAOA;;;;;;;CAOC,GACD,OAAO,SAASO,0BACdC,KAAqC;IAErC,MAAM,EAAEC,QAAQ,EAAE,GAAGC,eAAe,GAAGF;IACvC,MAAM,EACJb,UAAU,EACVC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,aAAa,EACbC,iBAAiB,EAClB,GAAGI,qBAAqBM;IAEzB,MAAMC,QAAQlB,QACZ,IAAO,CAAA;YACLE;YACAC;YACAC;YACAC;YACAC;YACAC;QACF,CAAA,GACA;QACEL;QACAC;QACAE;QACAD;QACAE;QACAC;KACD;IAGH,qBAAO,KAACG;QAASQ,OAAOA;kBAAQF;;AAClC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/MenuItem.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef } from \"react\";\nimport { ListItem, type ListItemProps } from \"../list/ListItem.js\";\nimport { useKeyboardMovementContext } from \"../movement/useKeyboardMovementProvider.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\n\n/**\n * @remarks \\@since 5.0.0\n */\nexport interface MenuItemProps extends Omit<ListItemProps, \"role\"> {\n /**\n * @defaultValue `\"menuitem\"`\n */\n role?: string;\n\n /**\n * @defaultValue `-1`\n */\n tabIndex?: number;\n}\n\n/**\n * **Client Component**\n *\n * This component is used as an \"action\" within a `Menu`/`DropdownMenu` that\n * implements some keyboard focus behavior. This component should generally have\n * an `onClick` event handler.\n *\n * @remarks \\@since 5.0.0\n */\nexport const MenuItem = forwardRef<HTMLLIElement, MenuItemProps>(\n function MenuItem(props, ref) {\n const {\n id: propId,\n role = \"menuitem\",\n tabIndex: propTabIndex,\n children,\n className,\n ...remaining\n } = props;\n\n const id = useEnsuredId(propId, \"menuitem\");\n const { tabIndexBehavior, activeDescendantId } =\n useKeyboardMovementContext();\n const focused = id === activeDescendantId;\n let tabIndex = propTabIndex ?? -1;\n if (tabIndexBehavior === \"roving\" && focused) {\n tabIndex = 0;\n }\n\n return (\n <ListItem\n {...remaining}\n id={id}\n ref={ref}\n role={role}\n tabIndex={tabIndex}\n className={cnb(\n \"rmd-menu-item\",\n tabIndexBehavior === \"virtual\" && focused && \"rmd-menu-item--focused\",\n className\n )}\n >\n {children}\n </ListItem>\n );\n }\n);\n"],"names":["cnb","forwardRef","ListItem","useKeyboardMovementContext","useEnsuredId","MenuItem","props","ref","id","propId","role","tabIndex","propTabIndex","children","className","remaining","tabIndexBehavior","activeDescendantId","focused"],"mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAAQ,QAAQ;AACnC,SAASC,QAAQ,QAA4B,sBAAsB;AACnE,SAASC,0BAA0B,QAAQ,6CAA6C;AACxF,SAASC,YAAY,QAAQ,qBAAqB;AAiBlD;;;;;;;;CAQC,GACD,OAAO,MAAMC,yBAAWJ,WACtB,SAASI,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EACJC,IAAIC,MAAM,EACVC,OAAO,UAAU,EACjBC,UAAUC,YAAY,EACtBC,QAAQ,EACRC,SAAS,EACT,GAAGC,WACJ,GAAGT;IAEJ,MAAME,KAAKJ,aAAaK,QAAQ;IAChC,MAAM,EAAEO,gBAAgB,EAAEC,kBAAkB,EAAE,GAC5Cd;IACF,MAAMe,UAAUV,OAAOS;IACvB,IAAIN,WAAWC,gBAAgB,CAAC;IAChC,IAAII,qBAAqB,YAAYE,SAAS;QAC5CP,WAAW;IACb;IAEA,qBACE,KAACT;QACE,GAAGa,SAAS;QACbP,IAAIA;QACJD,KAAKA;QACLG,MAAMA;QACNC,UAAUA;QACVG,WAAWd,IACT,iBACAgB,qBAAqB,aAAaE,WAAW,0BAC7CJ;kBAGDD;;AAGP,GACA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/MenuItemButton.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, useEffect } from \"react\";\nimport { useHoverMode } from \"../hoverMode/useHoverMode.js\";\nimport { IconRotator } from \"../icon/IconRotator.js\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { useAppSize } from \"../media-queries/AppSizeProvider.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { type BaseMenuButtonProps } from \"./MenuButton.js\";\nimport { useMenuConfiguration } from \"./MenuConfigurationProvider.js\";\nimport { MenuItem, type MenuItemProps } from \"./MenuItem.js\";\nimport { useMenuVisibility } from \"./MenuVisibilityProvider.js\";\nimport { useMenuBarContext } from \"./useMenuBarProvider.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @internal\n * @remarks \\@since 5.0.0\n */\nexport interface MenuItemButtonProps\n extends BaseMenuButtonProps,\n MenuItemProps {}\n\n/**\n * **Client Component**\n *\n * This is just an internal component that handles rendering a submenu as a\n * menuitem for a `DropdownMenu` with a conditional dropdown icon.\n *\n * @internal\n * @remarks \\@since 5.0.0\n */\nexport const MenuItemButton = forwardRef<HTMLLIElement, MenuItemButtonProps>(\n function MenuItemButton(props, ref) {\n const {\n id: propId,\n children,\n onClick = noop,\n onKeyDown = noop,\n onMouseEnter = noop,\n onMouseLeave = noop,\n rightAddon: propRightAddon,\n iconRotatorProps,\n disableDropdownIcon = typeof propRightAddon !== \"undefined\",\n ...remaining\n } = props;\n const { disabled } = props;\n\n const id = useEnsuredId(propId, \"menuitem\");\n const mode = useUserInteractionMode();\n const { renderAsSheet } = useMenuConfiguration();\n const { isPhone } = useAppSize();\n const isSheet =\n renderAsSheet === true || (renderAsSheet === \"phone\" && isPhone);\n const {\n root,\n menubar,\n activeId,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n clearDisableTimer,\n leaveTimeoutRef,\n hoverTimeoutRef,\n } = useMenuBarContext();\n const { visible, setVisible, defaultFocusIndex } = useMenuVisibility();\n const { startShowFlow, clearVisibilityTimeout } = useHoverMode({\n setVisible,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n leaveTimeoutRef,\n hoverTimeoutRef,\n clearDisableTimer,\n });\n const { horizontal } = useMenuConfiguration();\n\n useEffect(() => {\n setVisible(id === activeId);\n }, [activeId, defaultFocusIndex, id, menubar, setVisible]);\n\n const dropdownIcon = getIcon(root ? \"dropdown\" : \"forward\");\n let rightAddon = propRightAddon;\n if (!disableDropdownIcon) {\n rightAddon = (\n <IconRotator {...iconRotatorProps} rotated={visible}>\n {dropdownIcon}\n </IconRotator>\n );\n }\n\n const updateVisibility = (nextVisible: boolean, focusIndex = 0): void => {\n defaultFocusIndex.current = focusIndex;\n setVisible(nextVisible);\n if (!menubar) {\n return;\n }\n\n if (nextVisible) {\n enableHoverMode(id);\n } else {\n disableHoverMode();\n }\n };\n\n return (\n <MenuItem\n {...remaining}\n aria-haspopup={isSheet ? \"dialog\" : \"menu\"}\n aria-expanded={visible || undefined}\n id={id}\n ref={ref}\n rightAddon={rightAddon}\n onClick={(event) => {\n onClick(event);\n\n event.stopPropagation();\n updateVisibility(!visible);\n }}\n onKeyDown={(event) => {\n onKeyDown(event);\n\n switch (event.key) {\n case \"ArrowDown\":\n if (horizontal || root) {\n event.preventDefault();\n event.stopPropagation();\n updateVisibility(true);\n }\n break;\n case \"ArrowRight\":\n if (!horizontal && !root) {\n event.preventDefault();\n event.stopPropagation();\n updateVisibility(true);\n }\n break;\n }\n }}\n onMouseEnter={(event) => {\n onMouseEnter(event);\n if (mode === \"touch\" || disabled || !menubar) {\n return;\n }\n\n defaultFocusIndex.current = 0;\n startShowFlow(id);\n }}\n onMouseLeave={(event) => {\n onMouseLeave(event);\n if (mode === \"touch\" || disabled || !menubar) {\n return;\n }\n\n clearVisibilityTimeout();\n }}\n >\n {children}\n </MenuItem>\n );\n }\n);\n"],"names":["forwardRef","useEffect","useHoverMode","IconRotator","getIcon","useUserInteractionMode","useAppSize","useEnsuredId","useMenuConfiguration","MenuItem","useMenuVisibility","useMenuBarContext","noop","MenuItemButton","props","ref","id","propId","children","onClick","onKeyDown","onMouseEnter","onMouseLeave","rightAddon","propRightAddon","iconRotatorProps","disableDropdownIcon","remaining","disabled","mode","renderAsSheet","isPhone","isSheet","root","menubar","activeId","enableHoverMode","disableHoverMode","startDisableTimer","clearDisableTimer","leaveTimeoutRef","hoverTimeoutRef","visible","setVisible","defaultFocusIndex","startShowFlow","clearVisibilityTimeout","horizontal","dropdownIcon","rotated","updateVisibility","nextVisible","focusIndex","current","aria-haspopup","aria-expanded","undefined","event","stopPropagation","key","preventDefault"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/MenuItemGroup.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { List, type ListElement, type ListProps } from \"../list/List.js\";\nimport { type LabelRequiredForA11y } from \"../types.js\";\nimport { useMenuConfiguration } from \"./MenuConfigurationProvider.js\";\n\n/** @remarks \\@since 5.0.0 */\nexport type MenuItemGroupProps = LabelRequiredForA11y<\n Omit<ListProps, \"role\">\n> & {\n children: ReactNode;\n};\n\n/**\n * **Client Component**\n *\n * If a menu or menubar contains more than one group of menuitemradio elements,\n * or if the menu contains one group and other, unrelated menu items, authors\n * SHOULD nest each set of related menuitemradio elements in an element using\n * the group role, and authors SHOULD delimit the group from other menu items\n * with an element using the separator role.\n *\n * @see {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemradio}\n *\n * @example\n * Simple Example\n * ```tsx\n * import { ReactElement, useState } from \"react\";\n * import {\n * DropdownMenu,\n * MenuItemGroup,\n * MenuItemRadio,\n * MenuItemSeparator,\n * MenuItemSwitch,\n * } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const [value, setValue] = useState(\"value1\");\n * const [checked, setChecked] = useState(false);\n *\n * return (\n * <DropdownMenu id=\"dropdown-menu-id\" buttonChildren=\"Button\">\n * <MenuItemSwitch\n * id=\"switch-id\"\n * checked={checked}\n * onCheckedChange={nextChecked => setChecked(nextChecked)}\n * >\n * Light mode\n * </MenuItemSwitch>\n * <MenuItemSeparator />\n * <MenuItemGroup aria-label=\"My Group Label\">\n * <MenuItemRadio\n * id=\"radio-1\"\n * checked={value === \"value1\"}\n * onCheckedChange={() => setValue(\"value1\")}\n * >\n * Radio 1\n * </MenuItemRadio>\n * <MenuItemRadio\n * id=\"radio-2\"\n * checked={value === \"value2\"}\n * onCheckedChange={() => setValue(\"value2\")}\n * >\n * Radio 2\n * </MenuItemRadio>\n * <MenuItemRadio\n * id=\"radio-3\"\n * checked={value === \"value3\"}\n * onCheckedChange={() => setValue(\"value3\")}\n * >\n * Radio 3\n * </MenuItemRadio>\n * </MenuItemGroup>\n * </DropdownMenu>\n * );\n * }\n * ```\n *\n * @remarks \\@since 5.0.0\n */\nexport const MenuItemGroup = forwardRef<ListElement, MenuItemGroupProps>(\n function MenuItemGroup({ children, className, ...props }, ref) {\n const { horizontal } = useMenuConfiguration(props);\n return (\n <List\n {...props}\n ref={ref}\n role=\"group\"\n className={cnb(\"rmd-menu-item-group\", className)}\n horizontal={horizontal}\n >\n {children}\n </List>\n );\n }\n);\n"],"names":["cnb","forwardRef","List","useMenuConfiguration","MenuItemGroup","children","className","props","ref","horizontal","role"],"mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAAwB,QAAQ;AACnD,SAASC,IAAI,QAA0C,kBAAkB;AAEzE,SAASC,oBAAoB,QAAQ,iCAAiC;AAStE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEC,GACD,OAAO,MAAMC,8BAAgBH,WAC3B,SAASG,cAAc,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGC,OAAO,EAAEC,GAAG;IAC3D,MAAM,EAAEC,UAAU,EAAE,GAAGN,qBAAqBI;IAC5C,qBACE,KAACL;QACE,GAAGK,KAAK;QACTC,KAAKA;QACLE,MAAK;QACLJ,WAAWN,IAAI,uBAAuBM;QACtCG,YAAYA;kBAEXJ;;AAGP,GACA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/MenuItemSeparator.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { type DividerProps } from \"../divider/Divider.js\";\nimport { divider } from \"../divider/styles.js\";\nimport { useMenuConfiguration } from \"./MenuConfigurationProvider.js\";\n\n/** @remarks \\@since 5.0.0 */\nexport interface MenuItemSeparatorProps\n extends HTMLAttributes<HTMLLIElement>,\n Pick<DividerProps, \"inset\" | \"vertical\"> {}\n\n/**\n * **Client Component**\n *\n * This component renders a `<li role=\"separator\">` with the divider styles. It\n * will also automatically render itself vertically instead of horizontally if\n * the menu is rendering horizontally.\n *\n * @remarks \\@since 5.0.0 Renders as an `<li>` instead of a `<div>` or `<hr />`.\n */\nexport const MenuItemSeparator = forwardRef<\n HTMLLIElement,\n MenuItemSeparatorProps\n>(function MenuItemSeparator(props, ref) {\n const {\n className,\n inset,\n vertical: propVertical,\n children,\n ...remaining\n } = props;\n\n const horizontal = useMenuConfiguration().horizontal;\n const vertical = propVertical ?? horizontal;\n\n return (\n <li\n {...remaining}\n aria-orientation={vertical ? \"vertical\" : undefined}\n ref={ref}\n role=\"separator\"\n className={divider({ inset: inset && !vertical, vertical, className })}\n >\n {children}\n </li>\n );\n});\n"],"names":["forwardRef","divider","useMenuConfiguration","MenuItemSeparator","props","ref","className","inset","vertical","propVertical","children","remaining","horizontal","li","aria-orientation","undefined","role"],"mappings":"AAAA;;AACA,SAASA,UAAU,QAA6B,QAAQ;AAExD,SAASC,OAAO,QAAQ,uBAAuB;AAC/C,SAASC,oBAAoB,QAAQ,iCAAiC;AAOtE;;;;;;;;CAQC,GACD,OAAO,MAAMC,kCAAoBH,WAG/B,SAASG,kBAAkBC,KAAK,EAAEC,GAAG;IACrC,MAAM,EACJC,SAAS,EACTC,KAAK,EACLC,UAAUC,YAAY,EACtBC,QAAQ,EACR,GAAGC,WACJ,GAAGP;IAEJ,MAAMQ,aAAaV,uBAAuBU,UAAU;IACpD,MAAMJ,WAAWC,gBAAgBG;IAEjC,qBACE,KAACC;QACE,GAAGF,SAAS;QACbG,oBAAkBN,WAAW,aAAaO;QAC1CV,KAAKA;QACLW,MAAK;QACLV,WAAWL,QAAQ;YAAEM,OAAOA,SAAS,CAACC;YAAUA;YAAUF;QAAU;kBAEnEI;;AAGP,GAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/MenuSheet.tsx"],"sourcesContent":["\"use client\";\nimport { type CSSProperties, type ReactElement, type ReactNode } from \"react\";\nimport { Sheet, type BaseSheetProps } from \"../sheet/Sheet.js\";\nimport { type LabelRequiredForA11y, type PropsWithRef } from \"../types.js\";\nimport { type RenderMenuAsSheet } from \"./MenuConfigurationProvider.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type MenuSheetConfigurableProps = Omit<\n BaseSheetProps,\n \"visible\" | \"onRequestClose\"\n>;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuSheetConvenienceProps {\n /**\n * This can be used to apply additional props to the `Sheet` component when\n * the `Menu` is being rendered as a `Sheet`.\n *\n * Note: You can override the `style` and `className` using\n * {@link sheetStyle} and {@link sheetClassName} instead for convenience.\n *\n * @example\n * ```tsx\n * <Menu\n * {...props}\n * sheetProps={{\n * style: {\n * // custom inline style\n * },\n * className: \"come-class-name\",\n * horizontalSize: \"touch\",\n * }}\n * />\n * ```\n */\n sheetProps?: PropsWithRef<MenuSheetConfigurableProps, HTMLDivElement>;\n\n /**\n * Convenience prop to apply custom style to the `Sheet` component when the\n * `Menu` is being rendered as a `Sheet`.\n */\n sheetStyle?: CSSProperties;\n\n /**\n * Convenience prop to apply custom class name to the `Sheet` component when\n * the `Menu` is being rendered as a `Sheet`.\n */\n sheetClassName?: string;\n}\n\n/**\n * @internal\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated to use the latest menu API.\n */\nexport interface MenuSheetProps extends BaseSheetProps {\n /** {@inheritDoc MenuConfiguration.sheetHeader} */\n header?: ReactNode;\n /** {@inheritDoc MenuConfiguration.sheetFooter} */\n footer?: ReactNode;\n children: ReactNode;\n\n /** @remarks \\@since 6.0.0 */\n enabled: RenderMenuAsSheet;\n}\n\n/**\n * **Client Component**\n *\n * Implements a `Menu` using the `Sheet` component that probably shouldn't\n * really be used externally.\n *\n * @internal\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Added the `enabled` prop and does not render a custom `Menu`\n * implementation.\n */\nexport function MenuSheet(\n props: LabelRequiredForA11y<MenuSheetProps>\n): ReactElement {\n const {\n header,\n footer,\n children,\n onClick = noop,\n overlayProps,\n enabled,\n ...remaining\n } = props;\n const { onRequestClose } = props;\n\n if (!enabled) {\n return <>{children}</>;\n }\n\n return (\n <Sheet\n {...remaining}\n onClick={(event) => {\n onClick(event);\n\n // Prevent closing parent sheet/menus if an element in the header or\n // footer is clicked\n if (\n !(event.target instanceof HTMLElement) ||\n event.target\n .closest('.rmd-menu,[role=\"dialog\"]')\n ?.getAttribute(\"role\") === \"dialog\"\n ) {\n event.stopPropagation();\n }\n }}\n overlayProps={{\n ...overlayProps,\n onClick: (event) => {\n overlayProps?.onClick?.(event);\n\n // prevent closing parent menus if the overlay element is clicked.\n event.stopPropagation();\n onRequestClose();\n },\n }}\n >\n {header}\n {children}\n {footer}\n </Sheet>\n );\n}\n"],"names":["Sheet","noop","MenuSheet","props","header","footer","children","onClick","overlayProps","enabled","remaining","onRequestClose","event","target","HTMLElement","closest","getAttribute","stopPropagation"],"mappings":"AAAA;;AAEA,SAASA,KAAK,QAA6B,oBAAoB;AAI/D,MAAMC,OAAO;AACX,aAAa;AACf;AAmEA;;;;;;;;;;;CAWC,GACD,OAAO,SAASC,UACdC,KAA2C;IAE3C,MAAM,EACJC,MAAM,EACNC,MAAM,EACNC,QAAQ,EACRC,UAAUN,IAAI,EACdO,YAAY,EACZC,OAAO,EACP,GAAGC,WACJ,GAAGP;IACJ,MAAM,EAAEQ,cAAc,EAAE,GAAGR;IAE3B,IAAI,CAACM,SAAS;QACZ,qBAAO;sBAAGH;;IACZ;IAEA,qBACE,MAACN;QACE,GAAGU,SAAS;QACbH,SAAS,CAACK;YACRL,QAAQK;YAER,oEAAoE;YACpE,oBAAoB;YACpB,IACE,CAAEA,CAAAA,MAAMC,MAAM,YAAYC,WAAU,KACpCF,MAAMC,MAAM,CACTE,OAAO,CAAC,8BACPC,aAAa,YAAY,UAC7B;gBACAJ,MAAMK,eAAe;YACvB;QACF;QACAT,cAAc;YACZ,GAAGA,YAAY;YACfD,SAAS,CAACK;gBACRJ,cAAcD,UAAUK;gBAExB,kEAAkE;gBAClEA,MAAMK,eAAe;gBACrBN;YACF;QACF;;YAECP;YACAE;YACAD;;;AAGP"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/MenuVisibilityProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useMemo,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { type NonNullMutableRef, type UseStateObject } from \"../types.js\";\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Added the `defaultFocusIndex` ref.\n */\nexport interface MenuVisibilityContext\n extends UseStateObject<\"visible\", boolean> {\n defaultFocusIndex: NonNullMutableRef<number>;\n}\n\n/**\n * @internal\n * @remarks \\@since 5.0.0\n */\nconst context = createContext<MenuVisibilityContext>({\n visible: false,\n setVisible() {\n throw new Error('\"MenuVisibilityProvider\" must be a parent component');\n },\n defaultFocusIndex: { current: 0 },\n});\ncontext.displayName = \"MenuVisibility\";\n\n/**\n * @internal\n * @remarks \\@since 5.0.0\n */\nconst { Provider } = context;\n\n/**\n * This hook allows you control the visibility of a parent menu. The main\n * use-case for this hook is adding a custom sheet header/footer.\n *\n * @example\n * Simple Example\n * ```tsx\n * function SheetFooter(): ReactElement {\n * const { setVisible } = useMenuVisibility();\n *\n * return (\n * <DialogFooter>\n * <Button onClick={() => setVisible(false)}>Cancel</Button>\n * </DialogFooter>\n * );\n * }\n * ```\n *\n * @returns the {@link MenuVisibilityContext}\n * @remarks \\@since 5.0.0\n */\nexport function useMenuVisibility(): Readonly<MenuVisibilityContext> {\n return useContext(context);\n}\n\n/**\n * @internal\n * @remarks \\@since 5.0.0\n */\nexport interface MenuVisibilityProviderProps extends MenuVisibilityContext {\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @internal\n * @remarks \\@since 5.0.0\n */\nexport function MenuVisibilityProvider({\n visible,\n setVisible,\n defaultFocusIndex,\n children,\n}: MenuVisibilityProviderProps): ReactElement {\n const value = useMemo<MenuVisibilityContext>(\n () => ({\n visible,\n setVisible,\n defaultFocusIndex,\n }),\n [visible, setVisible, defaultFocusIndex]\n );\n\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useMemo","context","visible","setVisible","Error","defaultFocusIndex","current","displayName","Provider","useMenuVisibility","MenuVisibilityProvider","children","value"],"mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,EACVC,OAAO,QAGF,QAAQ;AAaf;;;CAGC,GACD,MAAMC,wBAAUH,cAAqC;IACnDI,SAAS;IACTC;QACE,MAAM,IAAIC,MAAM;IAClB;IACAC,mBAAmB;QAAEC,SAAS;IAAE;AAClC;AACAL,QAAQM,WAAW,GAAG;AAEtB;;;CAGC,GACD,MAAM,EAAEC,QAAQ,EAAE,GAAGP;AAErB;;;;;;;;;;;;;;;;;;;;CAoBC,GACD,OAAO,SAASQ;IACd,OAAOV,WAAWE;AACpB;AAUA;;;;;CAKC,GACD,OAAO,SAASS,uBAAuB,EACrCR,OAAO,EACPC,UAAU,EACVE,iBAAiB,EACjBM,QAAQ,EACoB;IAC5B,MAAMC,QAAQZ,QACZ,IAAO,CAAA;YACLE;YACAC;YACAE;QACF,CAAA,GACA;QAACH;QAASC;QAAYE;KAAkB;IAG1C,qBAAO,KAACG;QAASI,OAAOA;kBAAQD;;AAClC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/MenuWidget.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, useRef, useState, type HTMLAttributes } from \"react\";\nimport { List } from \"../list/List.js\";\nimport { type GetDefaultFocusedIndex } from \"../movement/types.js\";\nimport { useKeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\nimport { type NonNullMutableRef } from \"../types.js\";\nimport { bem } from \"../utils/bem.js\";\nimport { type MenuListConvenienceProps } from \"./Menu.js\";\nimport { MenuWidgetKeyboardProvider } from \"./MenuWidgetKeyboardProvider.js\";\nimport {\n MenuBarProvider,\n useMenuBarContext,\n useMenuBarProvider,\n} from \"./useMenuBarProvider.js\";\n\nconst styles = bem(\"rmd-menu\");\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuClassNameOptions {\n className?: string;\n horizontal?: boolean;\n elevated?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function menu(options: MenuClassNameOptions = {}): string {\n const { className, horizontal, elevated } = options;\n\n return cnb(styles({ horizontal, elevated }), className);\n}\n\n/**\n * @internal\n */\nexport interface MenuWidgetProps\n extends HTMLAttributes<HTMLDivElement>,\n MenuListConvenienceProps {\n isSheet: boolean;\n horizontal: boolean;\n disableElevation?: boolean;\n cancelUnmountFocus: NonNullMutableRef<boolean>;\n getDefaultFocusedIndex?: GetDefaultFocusedIndex;\n}\n\n/**\n * **Client Component**\n *\n * This component was added to support the listbox role and the `useId()` hook.\n * If the `temporary` prop is set, the `MenuItem`'s ids will not be the same the\n * next time the menu opens, so the aria-activedescendant will point to a\n * non-existing id\n *\n * @internal\n */\nexport const MenuWidget = forwardRef<HTMLDivElement, MenuWidgetProps>(\n function MenuWidget(props, ref) {\n const {\n id,\n role = \"menu\",\n className,\n listStyle,\n listClassName,\n listProps,\n children,\n onClick,\n onBlur = noop,\n onFocus = noop,\n onKeyDown = noop,\n tabIndex = -1,\n isSheet,\n horizontal,\n disableElevation,\n cancelUnmountFocus,\n getDefaultFocusedIndex,\n ...remaining\n } = props;\n const isListbox = role === \"listbox\";\n const { menubar } = useMenuBarContext();\n\n // Since there is the possibility of other tab focusable elements within the\n // sheet and the menu items are programmatically focused, the menu's\n // tabIndex needs to be set to `-1` while one of the child menu items are\n // focused. This allows Shift+Tab correctly focuses the previous focusable\n // element within the sheet. Since `onFocus` and `onBlur` will be bubbled up\n // to the menu widget each time a new MenuItem is focused, only disable the\n // focused state if the blur event is fired without another focus event\n // within an animation frame.\n const [sheetMenuFocused, setSheetMenuFocused] = useState(false);\n const sheetBlurredFame = useRef(0);\n const menuBarContext = useMenuBarProvider({\n root: false,\n menubar,\n hoverTimeout: menubar ? 0 : undefined,\n defaultActiveId: id,\n });\n const { movementProps, movementContext } = useKeyboardMovementProvider({\n onClick,\n onFocus(event) {\n onFocus(event);\n\n if (!isSheet) {\n return;\n }\n\n window.cancelAnimationFrame(sheetBlurredFame.current);\n setSheetMenuFocused(true);\n },\n onKeyDown,\n horizontal,\n loopable: true,\n searchable: true,\n programmatic: true,\n includeDisabled: true,\n getDefaultFocusedIndex,\n });\n\n return (\n <MenuWidgetKeyboardProvider disabled={isListbox} value={movementContext}>\n <MenuBarProvider value={menuBarContext}>\n <div\n aria-orientation={horizontal ? \"horizontal\" : undefined}\n {...remaining}\n {...(isListbox ? { onClick, onFocus, onKeyDown } : movementProps)}\n id={id}\n ref={ref}\n role={role}\n className={menu({\n className,\n elevated: !disableElevation && !isSheet,\n horizontal,\n })}\n tabIndex={isSheet && !sheetMenuFocused ? 0 : tabIndex}\n onBlur={(event) => {\n onBlur(event);\n if (!isSheet) {\n return;\n }\n\n sheetBlurredFame.current = window.requestAnimationFrame(() => {\n setSheetMenuFocused(false);\n });\n }}\n >\n <List\n {...listProps}\n style={listStyle ?? listProps?.style}\n className={listClassName || listProps?.className}\n horizontal={horizontal}\n onClick={(event) => {\n listProps?.onClick?.(event);\n\n // this makes it so you can click on the menu/list without\n // closing the menu\n if (event.target === event.currentTarget) {\n event.stopPropagation();\n }\n\n // This might be a test only workaround since clicking links move focus\n // somewhere else\n if (event.target instanceof HTMLElement) {\n cancelUnmountFocus.current = event.currentTarget.contains(\n event.target.closest(\"a\")\n );\n }\n }}\n >\n {children}\n </List>\n </div>\n </MenuBarProvider>\n </MenuWidgetKeyboardProvider>\n );\n }\n);\n"],"names":["cnb","forwardRef","useRef","useState","List","useKeyboardMovementProvider","bem","MenuWidgetKeyboardProvider","MenuBarProvider","useMenuBarContext","useMenuBarProvider","styles","noop","menu","options","className","horizontal","elevated","MenuWidget","props","ref","id","role","listStyle","listClassName","listProps","children","onClick","onBlur","onFocus","onKeyDown","tabIndex","isSheet","disableElevation","cancelUnmountFocus","getDefaultFocusedIndex","remaining","isListbox","menubar","sheetMenuFocused","setSheetMenuFocused","sheetBlurredFame","menuBarContext","root","hoverTimeout","undefined","defaultActiveId","movementProps","movementContext","event","window","cancelAnimationFrame","current","loopable","searchable","programmatic","includeDisabled","disabled","value","div","aria-orientation","requestAnimationFrame","style","target","currentTarget","stopPropagation","HTMLElement","contains","closest"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/MenuWidgetKeyboardProvider.tsx"],"sourcesContent":["\"use client\";\nimport { type ReactElement, type ReactNode } from \"react\";\nimport { type KeyboardMovementContext } from \"../movement/types.js\";\nimport { KeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface MenuWidgetKeyboardProviderProps {\n value: Readonly<KeyboardMovementContext>;\n disabled: boolean;\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport function MenuWidgetKeyboardProvider(\n props: MenuWidgetKeyboardProviderProps\n): ReactElement {\n const { value, disabled, children } = props;\n if (disabled) {\n return <>{children}</>;\n }\n\n return (\n <KeyboardMovementProvider value={value}>\n {children}\n </KeyboardMovementProvider>\n );\n}\n"],"names":["KeyboardMovementProvider","MenuWidgetKeyboardProvider","props","value","disabled","children"],"mappings":"AAAA;;AAGA,SAASA,wBAAwB,QAAQ,6CAA6C;AAYtF;;;;;CAKC,GACD,OAAO,SAASC,2BACdC,KAAsC;IAEtC,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGH;IACtC,IAAIE,UAAU;QACZ,qBAAO;sBAAGC;;IACZ;IAEA,qBACE,KAACL;QAAyBG,OAAOA;kBAC9BE;;AAGP"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/useContextMenu.ts"],"sourcesContent":["\"use client\";\nimport type { MouseEvent, RefObject } from \"react\";\nimport { useCallback, useRef, useState } from \"react\";\nimport { BELOW_INNER_LEFT_ANCHOR } from \"../positioning/constants.js\";\nimport type { InitialCoords, PositionAnchor } from \"../positioning/types.js\";\nimport type { UseStateObject } from \"../types.js\";\n\n/** @remarks \\@since 6.0.0 */\nexport interface ContextMenuProps extends InitialCoords {\n \"aria-label\": string;\n anchor: PositionAnchor;\n fixedTo: RefObject<HTMLElement>;\n visible: boolean;\n preventScroll: boolean;\n onRequestClose(): void;\n}\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Dropped most options since they are no longer required for the\n * context menu to work. Apply any `Menu` props directly to the `Menu` component\n * instead.\n */\nexport interface ContextMenuHookOptions {\n /**\n * @defaultValue `BELOW_INNER_LEFT_ANCHOR`\n * @see {@link BELOW_INNER_LEFT_ANCHOR}\n */\n anchor?: PositionAnchor;\n\n /**\n * @defaultValue `\"Context Menu\"`\n */\n menuLabel?: string;\n\n /**\n * @defaultValue `true`\n */\n preventScroll?: boolean;\n onContextMenu?<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Renamed from `ContextMenuHookReturnValue` to\n * `ContextMenuImplementation` and dropped the `menuRef` and `menuNodeRef`\n * fields.\n */\nexport interface ContextMenuImplementation\n extends UseStateObject<\"visible\", boolean> {\n menuProps: ContextMenuProps;\n onContextMenu<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This hook controls the visibility and positioning for a context menu.\n *\n * @example\n * Simple Example\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import [ Menu, MenuItem, useContextMenu ] from \"@react-md/core\":\n *\n * function Example(): ReactElement {\n * const { menuProps, onContextMenu } = useContextMenu();\n *\n * return (\n * <div onContextMenu={onContextMenu}>\n * <textarea />\n * <Menu {...menuProps}>\n * <MenuItem>Cut</MenuItem>\n * <MenuItem>Copy</MenuItem>\n * <MenuItem>Paste</MenuItem>\n * <MenuItem>Undo</MenuItem>\n * </Menu>\n * </div>\n * );\n * }\n * ```\n *\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 No longer supports overriding most of the `Menu` props. The\n * props must be passed to the `Menu` component manually.\n */\nexport function useContextMenu(\n options: ContextMenuHookOptions = {}\n): ContextMenuImplementation {\n const {\n anchor = BELOW_INNER_LEFT_ANCHOR,\n menuLabel = \"Context Menu\",\n onContextMenu = noop,\n preventScroll = true,\n } = options;\n const [coords, setCoords] = useState<InitialCoords>({});\n const [visible, setVisible] = useState(false);\n const fixedTo = useRef<HTMLElement>(null);\n const onRequestClose = useCallback(() => {\n setVisible(false);\n }, []);\n\n return {\n visible,\n setVisible,\n menuProps: {\n \"aria-label\": menuLabel,\n anchor,\n ...coords,\n fixedTo,\n visible,\n onRequestClose,\n preventScroll,\n },\n onContextMenu(event) {\n onContextMenu(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n setCoords({\n initialX: event.clientX,\n initialY: event.clientY,\n });\n setVisible(true);\n },\n };\n}\n"],"names":["useCallback","useRef","useState","BELOW_INNER_LEFT_ANCHOR","noop","useContextMenu","options","anchor","menuLabel","onContextMenu","preventScroll","coords","setCoords","visible","setVisible","fixedTo","onRequestClose","menuProps","event","isPropagationStopped","preventDefault","stopPropagation","initialX","clientX","initialY","clientY"],"mappings":"AAAA;AAEA,SAASA,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAQ;AACtD,SAASC,uBAAuB,QAAQ,8BAA8B;AAqDtE,MAAMC,OAAO;AACX,aAAa;AACf;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BC,GACD,OAAO,SAASC,eACdC,UAAkC,CAAC,CAAC;IAEpC,MAAM,EACJC,SAASJ,uBAAuB,EAChCK,YAAY,cAAc,EAC1BC,gBAAgBL,IAAI,EACpBM,gBAAgB,IAAI,EACrB,GAAGJ;IACJ,MAAM,CAACK,QAAQC,UAAU,GAAGV,SAAwB,CAAC;IACrD,MAAM,CAACW,SAASC,WAAW,GAAGZ,SAAS;IACvC,MAAMa,UAAUd,OAAoB;IACpC,MAAMe,iBAAiBhB,YAAY;QACjCc,WAAW;IACb,GAAG,EAAE;IAEL,OAAO;QACLD;QACAC;QACAG,WAAW;YACT,cAAcT;YACdD;YACA,GAAGI,MAAM;YACTI;YACAF;YACAG;YACAN;QACF;QACAD,eAAcS,KAAK;YACjBT,cAAcS;YACd,IAAIA,MAAMC,oBAAoB,IAAI;gBAChC;YACF;YAEAD,MAAME,cAAc;YACpBF,MAAMG,eAAe;YACrBT,UAAU;gBACRU,UAAUJ,MAAMK,OAAO;gBACvBC,UAAUN,MAAMO,OAAO;YACzB;YACAX,WAAW;QACb;IACF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/useMenuBarProvider.ts"],"sourcesContent":["\"use client\";\nimport { createContext, useContext, useMemo } from \"react\";\nimport type { HoverModeContext } from \"../hoverMode/useHoverModeProvider.js\";\nimport {\n createHoverModeContext,\n useHoverModeProvider,\n} from \"../hoverMode/useHoverModeProvider.js\";\n\n/**\n * @internal\n * @remarks \\@since 5.0.0\n * @remarks \\@since 6.0.0 Updated to use the new `HoverModeContext` behavior.\n */\nexport interface MenuBarContext extends HoverModeContext {\n root: boolean;\n menubar: boolean;\n menuitem: boolean;\n}\n\nconst context = createContext<MenuBarContext>({\n ...createHoverModeContext(),\n root: false,\n menubar: false,\n menuitem: false,\n});\ncontext.displayName = \"MenuBar\";\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport const { Provider: MenuBarProvider } = context;\n\n/**\n * @internal\n * @remarks \\@since 5.0.0\n */\nexport function useMenuBarContext(): Readonly<MenuBarContext> {\n return useContext(context);\n}\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport interface MenuBarProviderOptions {\n root: boolean;\n menubar: boolean;\n hoverTimeout: number | undefined;\n\n /** @defaultValue `\"\"` */\n defaultActiveId?: string;\n}\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport function useMenuBarProvider(\n options: MenuBarProviderOptions\n): Readonly<MenuBarContext> {\n const { hoverTimeout, root, menubar, defaultActiveId = \"\" } = options;\n\n const hoverMode = useHoverModeProvider({\n hoverTimeout,\n forceRerender: true,\n defaultActiveId,\n });\n\n if (defaultActiveId) {\n // without this \"fix\", first-level nested dropdown menus will only disable\n // the animation the first time they are shown.\n hoverMode.animatedOnceRef.current = true;\n }\n\n return useMemo<MenuBarContext>(\n () => ({\n // when not within a menubar, disable all the hover mode functionality by\n // creating an empty hover mode context. This makes it so nested dropdown\n // menus don't trigger the hover mode timeouts and behavior\n ...(menubar ? hoverMode : createHoverModeContext()),\n root,\n menubar,\n menuitem: true,\n }),\n [hoverMode, menubar, root]\n );\n}\n"],"names":["createContext","useContext","useMemo","createHoverModeContext","useHoverModeProvider","context","root","menubar","menuitem","displayName","Provider","MenuBarProvider","useMenuBarContext","useMenuBarProvider","options","hoverTimeout","defaultActiveId","hoverMode","forceRerender","animatedOnceRef","current"],"mappings":"AAAA;AACA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,QAAQ;AAE3D,SACEC,sBAAsB,EACtBC,oBAAoB,QACf,uCAAuC;AAa9C,MAAMC,UAAUL,cAA8B;IAC5C,GAAGG,wBAAwB;IAC3BG,MAAM;IACNC,SAAS;IACTC,UAAU;AACZ;AACAH,QAAQI,WAAW,GAAG;AAEtB;;;CAGC,GACD,OAAO,MAAM,EAAEC,UAAUC,eAAe,EAAE,GAAGN,QAAQ;AAErD;;;CAGC,GACD,OAAO,SAASO;IACd,OAAOX,WAAWI;AACpB;AAeA;;;CAGC,GACD,OAAO,SAASQ,mBACdC,OAA+B;IAE/B,MAAM,EAAEC,YAAY,EAAET,IAAI,EAAEC,OAAO,EAAES,kBAAkB,EAAE,EAAE,GAAGF;IAE9D,MAAMG,YAAYb,qBAAqB;QACrCW;QACAG,eAAe;QACfF;IACF;IAEA,IAAIA,iBAAiB;QACnB,0EAA0E;QAC1E,+CAA+C;QAC/CC,UAAUE,eAAe,CAACC,OAAO,GAAG;IACtC;IAEA,OAAOlB,QACL,IAAO,CAAA;YACL,yEAAyE;YACzE,yEAAyE;YACzE,2DAA2D;YAC3D,GAAIK,UAAUU,YAAYd,wBAAwB;YAClDG;YACAC;YACAC,UAAU;QACZ,CAAA,GACA;QAACS;QAAWV;QAASD;KAAK;AAE9B"}
|
package/dist/menu/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/menu/utils.ts"],"sourcesContent":["import type { FloatingActionButtonPosition } from \"../button/FloatingActionButton.js\";\nimport {\n BELOW_CENTER_ANCHOR,\n BELOW_INNER_LEFT_ANCHOR,\n BOTTOM_INNER_LEFT_ANCHOR,\n BOTTOM_INNER_RIGHT_ANCHOR,\n CENTER_RIGHT_ANCHOR,\n TOP_INNER_LEFT_ANCHOR,\n TOP_INNER_RIGHT_ANCHOR,\n TOP_RIGHT_ANCHOR,\n} from \"../positioning/constants.js\";\nimport type { PositionAnchor } from \"../positioning/types.js\";\n\n/**\n * @remarks \\@since 5.0.0\n * @internal\n */\ninterface DefaultAnchorOptions {\n anchor?: PositionAnchor;\n menubar: boolean;\n menuitem: boolean;\n floating?: FloatingActionButtonPosition;\n horizontal: boolean;\n}\n\n/**\n * @remarks \\@since 5.0.0\n * @internal\n */\nexport const getDefaultAnchor = (\n options: DefaultAnchorOptions\n): PositionAnchor => {\n const { anchor, menubar, menuitem, floating, horizontal } = options;\n if (anchor) {\n return anchor;\n }\n\n switch (floating) {\n case \"bottom-left\":\n return BOTTOM_INNER_LEFT_ANCHOR;\n case \"bottom-right\":\n return BOTTOM_INNER_RIGHT_ANCHOR;\n case \"top-left\":\n return TOP_INNER_LEFT_ANCHOR;\n case \"top-right\":\n return TOP_INNER_RIGHT_ANCHOR;\n }\n\n if (menubar) {\n return menuitem ? CENTER_RIGHT_ANCHOR : BELOW_INNER_LEFT_ANCHOR;\n }\n\n if (horizontal) {\n return BELOW_CENTER_ANCHOR;\n }\n\n if (menuitem) {\n return TOP_RIGHT_ANCHOR;\n }\n\n return TOP_INNER_RIGHT_ANCHOR;\n};\n"],"names":["BELOW_CENTER_ANCHOR","BELOW_INNER_LEFT_ANCHOR","BOTTOM_INNER_LEFT_ANCHOR","BOTTOM_INNER_RIGHT_ANCHOR","CENTER_RIGHT_ANCHOR","TOP_INNER_LEFT_ANCHOR","TOP_INNER_RIGHT_ANCHOR","TOP_RIGHT_ANCHOR","getDefaultAnchor","options","anchor","menubar","menuitem","floating","horizontal"],"mappings":"AACA,SACEA,mBAAmB,EACnBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,mBAAmB,EACnBC,qBAAqB,EACrBC,sBAAsB,EACtBC,gBAAgB,QACX,8BAA8B;AAerC;;;CAGC,GACD,OAAO,MAAMC,mBAAmB,CAC9BC;IAEA,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGL;IAC5D,IAAIC,QAAQ;QACV,OAAOA;IACT;IAEA,OAAQG;QACN,KAAK;YACH,OAAOX;QACT,KAAK;YACH,OAAOC;QACT,KAAK;YACH,OAAOE;QACT,KAAK;YACH,OAAOC;IACX;IAEA,IAAIK,SAAS;QACX,OAAOC,WAAWR,sBAAsBH;IAC1C;IAEA,IAAIa,YAAY;QACd,OAAOd;IACT;IAEA,IAAIY,UAAU;QACZ,OAAOL;IACT;IAEA,OAAOD;AACT,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/movement/constants.ts"],"sourcesContent":["import type { KeyboardMovementConfig } from \"./types.js\";\n\n/**\n * Most custom keyboard functionality use these keys.\n *\n * @remarks \\@since 5.0.0\n * @internal\n */\nexport const DEFAULT_KEYBOARD_MOVEMENT: Readonly<KeyboardMovementConfig> = {\n incrementKeys: [\"ArrowDown\"],\n decrementKeys: [\"ArrowUp\"],\n jumpToFirstKeys: [\"Home\"],\n jumpToLastKeys: [\"End\"],\n};\n\n/**\n * @remarks \\@since 5.1.2\n * @internal\n */\nexport const DEFAULT_LTR_KEYBOARD_MOVEMENT: Readonly<KeyboardMovementConfig> = {\n incrementKeys: [\"ArrowRight\"],\n decrementKeys: [\"ArrowLeft\"],\n jumpToFirstKeys: [\"Home\"],\n jumpToLastKeys: [\"End\"],\n};\n\n/**\n * @remarks \\@since 5.1.2\n * @internal\n */\nexport const DEFAULT_RTL_KEYBOARD_MOVEMENT: Readonly<KeyboardMovementConfig> = {\n incrementKeys: [\"ArrowLeft\"],\n decrementKeys: [\"ArrowRight\"],\n jumpToFirstKeys: [\"Home\"],\n jumpToLastKeys: [\"End\"],\n};\n"],"names":["DEFAULT_KEYBOARD_MOVEMENT","incrementKeys","decrementKeys","jumpToFirstKeys","jumpToLastKeys","DEFAULT_LTR_KEYBOARD_MOVEMENT","DEFAULT_RTL_KEYBOARD_MOVEMENT"],"mappings":"AAEA;;;;;CAKC,GACD,OAAO,MAAMA,4BAA8D;IACzEC,eAAe;QAAC;KAAY;IAC5BC,eAAe;QAAC;KAAU;IAC1BC,iBAAiB;QAAC;KAAO;IACzBC,gBAAgB;QAAC;KAAM;AACzB,EAAE;AAEF;;;CAGC,GACD,OAAO,MAAMC,gCAAkE;IAC7EJ,eAAe;QAAC;KAAa;IAC7BC,eAAe;QAAC;KAAY;IAC5BC,iBAAiB;QAAC;KAAO;IACzBC,gBAAgB;QAAC;KAAM;AACzB,EAAE;AAEF;;;CAGC,GACD,OAAO,MAAME,gCAAkE;IAC7EL,eAAe;QAAC;KAAY;IAC5BC,eAAe;QAAC;KAAa;IAC7BC,iBAAiB;QAAC;KAAO;IACzBC,gBAAgB;QAAC;KAAM;AACzB,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/movement/findMatchIndex.ts"],"sourcesContent":["/** @internal */\nexport interface BaseOptions {\n /**\n * The current query string to find within the values\n */\n value: string;\n\n /**\n * The list of values to search within\n */\n values: readonly string[];\n\n /**\n * The start index for the search\n */\n startIndex: number;\n}\n\n/** @internal */\nexport interface MatchInRangeOptions extends BaseOptions {\n /**\n * The end index for the search\n */\n endIndex: number;\n}\n\n/**\n * Attempts to find the first match index for a list of values that starts with\n * the provided query string and is within the start and end indexes. If no\n * matches are found, -1 will be returned instead.\n *\n * Since this is normally coming from a keydown event, the query *must* be a\n * string of all capital letters to work as each value will be converted to\n * uppercase before checking.\n * @internal\n */\nexport function findMatchInRange(options: MatchInRangeOptions): number {\n const { values, startIndex, endIndex } = options;\n if (!values.length) {\n return -1;\n }\n\n const value = options.value.toUpperCase();\n\n for (let i = startIndex; i < endIndex; i += 1) {\n const content = values[i];\n if (content.toUpperCase().indexOf(value) === 0) {\n return i;\n }\n }\n\n return -1;\n}\n\n/** @internal */\nexport interface MatchIndexOptions extends BaseOptions {\n /**\n * Boolean if the current index can be included in the search\n *\n * @defaultValue `true`\n */\n isSelfMatchable?: boolean;\n}\n\n/**\n * A function that is used to find the next match index within a list of values\n * by comparing the start values ignoring case.\n *\n * If a match can not be found from the search string, `-1` will be returned.\n * The search value is self-matchable by default, but it can be omitted by\n * disabling the `isSelfMatchable` argument. This will make a self-match return\n * `-1`.\n *\n * @internal\n */\nexport function findMatchIndex(options: MatchIndexOptions): number {\n const { value, values, startIndex, isSelfMatchable = true } = options;\n // this was added to support comboboxes when there are no options available\n if (!values.length) {\n return -1;\n }\n\n let index = findMatchInRange({\n value,\n values,\n startIndex: startIndex + 1,\n endIndex: values.length,\n });\n if (index === -1) {\n const endIndex = startIndex + (isSelfMatchable ? 1 : 0);\n index = findMatchInRange({\n value,\n values,\n startIndex: 0,\n endIndex,\n });\n }\n\n return index;\n}\n"],"names":["findMatchInRange","options","values","startIndex","endIndex","length","value","toUpperCase","i","content","indexOf","findMatchIndex","isSelfMatchable","index"],"mappings":"AAAA,cAAc,GA0Bd;;;;;;;;;CASC,GACD,OAAO,SAASA,iBAAiBC,OAA4B;IAC3D,MAAM,EAAEC,MAAM,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGH;IACzC,IAAI,CAACC,OAAOG,MAAM,EAAE;QAClB,OAAO,CAAC;IACV;IAEA,MAAMC,QAAQL,QAAQK,KAAK,CAACC,WAAW;IAEvC,IAAK,IAAIC,IAAIL,YAAYK,IAAIJ,UAAUI,KAAK,EAAG;QAC7C,MAAMC,UAAUP,MAAM,CAACM,EAAE;QACzB,IAAIC,QAAQF,WAAW,GAAGG,OAAO,CAACJ,WAAW,GAAG;YAC9C,OAAOE;QACT;IACF;IAEA,OAAO,CAAC;AACV;AAYA;;;;;;;;;;CAUC,GACD,OAAO,SAASG,eAAeV,OAA0B;IACvD,MAAM,EAAEK,KAAK,EAAEJ,MAAM,EAAEC,UAAU,EAAES,kBAAkB,IAAI,EAAE,GAAGX;IAC9D,2EAA2E;IAC3E,IAAI,CAACC,OAAOG,MAAM,EAAE;QAClB,OAAO,CAAC;IACV;IAEA,IAAIQ,QAAQb,iBAAiB;QAC3BM;QACAJ;QACAC,YAAYA,aAAa;QACzBC,UAAUF,OAAOG,MAAM;IACzB;IACA,IAAIQ,UAAU,CAAC,GAAG;QAChB,MAAMT,WAAWD,aAAcS,CAAAA,kBAAkB,IAAI,CAAA;QACrDC,QAAQb,iBAAiB;YACvBM;YACAJ;YACAC,YAAY;YACZC;QACF;IACF;IAEA,OAAOS;AACT"}
|