@fluentui/react-menu 0.0.0-nightly-20220302-0405.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +5046 -0
- package/CHANGELOG.md +1569 -0
- package/LICENSE +15 -0
- package/README.md +5 -0
- package/Spec.md +1039 -0
- package/dist/react-menu.d.ts +662 -0
- package/lib/Menu.d.ts +1 -0
- package/lib/Menu.js +2 -0
- package/lib/Menu.js.map +1 -0
- package/lib/MenuDivider.d.ts +1 -0
- package/lib/MenuDivider.js +2 -0
- package/lib/MenuDivider.js.map +1 -0
- package/lib/MenuGroup.d.ts +1 -0
- package/lib/MenuGroup.js +2 -0
- package/lib/MenuGroup.js.map +1 -0
- package/lib/MenuGroupHeader.d.ts +1 -0
- package/lib/MenuGroupHeader.js +2 -0
- package/lib/MenuGroupHeader.js.map +1 -0
- package/lib/MenuItem.d.ts +1 -0
- package/lib/MenuItem.js +2 -0
- package/lib/MenuItem.js.map +1 -0
- package/lib/MenuItemCheckbox.d.ts +1 -0
- package/lib/MenuItemCheckbox.js +2 -0
- package/lib/MenuItemCheckbox.js.map +1 -0
- package/lib/MenuItemRadio.d.ts +1 -0
- package/lib/MenuItemRadio.js +2 -0
- package/lib/MenuItemRadio.js.map +1 -0
- package/lib/MenuList.d.ts +1 -0
- package/lib/MenuList.js +2 -0
- package/lib/MenuList.js.map +1 -0
- package/lib/MenuPopover.d.ts +1 -0
- package/lib/MenuPopover.js +2 -0
- package/lib/MenuPopover.js.map +1 -0
- package/lib/MenuSplitGroup.d.ts +1 -0
- package/lib/MenuSplitGroup.js +2 -0
- package/lib/MenuSplitGroup.js.map +1 -0
- package/lib/MenuTrigger.d.ts +1 -0
- package/lib/MenuTrigger.js +2 -0
- package/lib/MenuTrigger.js.map +1 -0
- package/lib/components/Menu/Menu.d.ts +6 -0
- package/lib/components/Menu/Menu.js +14 -0
- package/lib/components/Menu/Menu.js.map +1 -0
- package/lib/components/Menu/Menu.types.d.ts +113 -0
- package/lib/components/Menu/Menu.types.js +2 -0
- package/lib/components/Menu/Menu.types.js.map +1 -0
- package/lib/components/Menu/index.d.ts +5 -0
- package/lib/components/Menu/index.js +6 -0
- package/lib/components/Menu/index.js.map +1 -0
- package/lib/components/Menu/renderMenu.d.ts +5 -0
- package/lib/components/Menu/renderMenu.js +12 -0
- package/lib/components/Menu/renderMenu.js.map +1 -0
- package/lib/components/Menu/useMenu.d.ts +10 -0
- package/lib/components/Menu/useMenu.js +260 -0
- package/lib/components/Menu/useMenu.js.map +1 -0
- package/lib/components/Menu/useMenuContextValues.d.ts +2 -0
- package/lib/components/Menu/useMenuContextValues.js +41 -0
- package/lib/components/Menu/useMenuContextValues.js.map +1 -0
- package/lib/components/MenuDivider/MenuDivider.d.ts +6 -0
- package/lib/components/MenuDivider/MenuDivider.js +15 -0
- package/lib/components/MenuDivider/MenuDivider.js.map +1 -0
- package/lib/components/MenuDivider/MenuDivider.types.d.ts +6 -0
- package/lib/components/MenuDivider/MenuDivider.types.js +2 -0
- package/lib/components/MenuDivider/MenuDivider.types.js.map +1 -0
- package/lib/components/MenuDivider/index.d.ts +5 -0
- package/lib/components/MenuDivider/index.js +6 -0
- package/lib/components/MenuDivider/index.js.map +1 -0
- package/lib/components/MenuDivider/renderMenuDivider.d.ts +6 -0
- package/lib/components/MenuDivider/renderMenuDivider.js +16 -0
- package/lib/components/MenuDivider/renderMenuDivider.js.map +1 -0
- package/lib/components/MenuDivider/useMenuDivider.d.ts +6 -0
- package/lib/components/MenuDivider/useMenuDivider.js +19 -0
- package/lib/components/MenuDivider/useMenuDivider.js.map +1 -0
- package/lib/components/MenuDivider/useMenuDividerStyles.d.ts +3 -0
- package/lib/components/MenuDivider/useMenuDividerStyles.js +24 -0
- package/lib/components/MenuDivider/useMenuDividerStyles.js.map +1 -0
- package/lib/components/MenuGroup/MenuGroup.d.ts +6 -0
- package/lib/components/MenuGroup/MenuGroup.js +17 -0
- package/lib/components/MenuGroup/MenuGroup.js.map +1 -0
- package/lib/components/MenuGroup/MenuGroup.types.d.ts +15 -0
- package/lib/components/MenuGroup/MenuGroup.types.js +2 -0
- package/lib/components/MenuGroup/MenuGroup.types.js.map +1 -0
- package/lib/components/MenuGroup/index.d.ts +6 -0
- package/lib/components/MenuGroup/index.js +7 -0
- package/lib/components/MenuGroup/index.js.map +1 -0
- package/lib/components/MenuGroup/renderMenuGroup.d.ts +6 -0
- package/lib/components/MenuGroup/renderMenuGroup.js +19 -0
- package/lib/components/MenuGroup/renderMenuGroup.js.map +1 -0
- package/lib/components/MenuGroup/useMenuGroup.d.ts +6 -0
- package/lib/components/MenuGroup/useMenuGroup.js +21 -0
- package/lib/components/MenuGroup/useMenuGroup.js.map +1 -0
- package/lib/components/MenuGroup/useMenuGroupContextValues.d.ts +2 -0
- package/lib/components/MenuGroup/useMenuGroupContextValues.js +13 -0
- package/lib/components/MenuGroup/useMenuGroupContextValues.js.map +1 -0
- package/lib/components/MenuGroup/useMenuGroupStyles.d.ts +3 -0
- package/lib/components/MenuGroup/useMenuGroupStyles.js +7 -0
- package/lib/components/MenuGroup/useMenuGroupStyles.js.map +1 -0
- package/lib/components/MenuGroupHeader/MenuGroupHeader.d.ts +6 -0
- package/lib/components/MenuGroupHeader/MenuGroupHeader.js +15 -0
- package/lib/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -0
- package/lib/components/MenuGroupHeader/MenuGroupHeader.types.d.ts +6 -0
- package/lib/components/MenuGroupHeader/MenuGroupHeader.types.js +2 -0
- package/lib/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -0
- package/lib/components/MenuGroupHeader/index.d.ts +5 -0
- package/lib/components/MenuGroupHeader/index.js +6 -0
- package/lib/components/MenuGroupHeader/index.js.map +1 -0
- package/lib/components/MenuGroupHeader/renderMenuGroupHeader.d.ts +6 -0
- package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js +16 -0
- package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -0
- package/lib/components/MenuGroupHeader/useMenuGroupHeader.d.ts +6 -0
- package/lib/components/MenuGroupHeader/useMenuGroupHeader.js +22 -0
- package/lib/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -0
- package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.d.ts +3 -0
- package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +25 -0
- package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -0
- package/lib/components/MenuItem/MenuItem.d.ts +6 -0
- package/lib/components/MenuItem/MenuItem.js +15 -0
- package/lib/components/MenuItem/MenuItem.js.map +1 -0
- package/lib/components/MenuItem/MenuItem.types.d.ts +43 -0
- package/lib/components/MenuItem/MenuItem.types.js +2 -0
- package/lib/components/MenuItem/MenuItem.types.js.map +1 -0
- package/lib/components/MenuItem/index.d.ts +5 -0
- package/lib/components/MenuItem/index.js +6 -0
- package/lib/components/MenuItem/index.js.map +1 -0
- package/lib/components/MenuItem/renderMenuItem.d.ts +5 -0
- package/lib/components/MenuItem/renderMenuItem.js +20 -0
- package/lib/components/MenuItem/renderMenuItem.js.map +1 -0
- package/lib/components/MenuItem/useCharacterSearch.d.ts +3 -0
- package/lib/components/MenuItem/useCharacterSearch.js +26 -0
- package/lib/components/MenuItem/useCharacterSearch.js.map +1 -0
- package/lib/components/MenuItem/useMenuItem.d.ts +6 -0
- package/lib/components/MenuItem/useMenuItem.js +125 -0
- package/lib/components/MenuItem/useMenuItem.js.map +1 -0
- package/lib/components/MenuItem/useMenuItemStyles.d.ts +4 -0
- package/lib/components/MenuItem/useMenuItemStyles.js +107 -0
- package/lib/components/MenuItem/useMenuItemStyles.js.map +1 -0
- package/lib/components/MenuItemCheckbox/MenuItemCheckbox.d.ts +6 -0
- package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js +15 -0
- package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -0
- package/lib/components/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +4 -0
- package/lib/components/MenuItemCheckbox/MenuItemCheckbox.types.js +2 -0
- package/lib/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -0
- package/lib/components/MenuItemCheckbox/index.d.ts +5 -0
- package/lib/components/MenuItemCheckbox/index.js +6 -0
- package/lib/components/MenuItemCheckbox/index.js.map +1 -0
- package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.d.ts +3 -0
- package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js +17 -0
- package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -0
- package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.d.ts +4 -0
- package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js +46 -0
- package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -0
- package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.d.ts +3 -0
- package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +10 -0
- package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -0
- package/lib/components/MenuItemRadio/MenuItemRadio.d.ts +6 -0
- package/lib/components/MenuItemRadio/MenuItemRadio.js +15 -0
- package/lib/components/MenuItemRadio/MenuItemRadio.js.map +1 -0
- package/lib/components/MenuItemRadio/MenuItemRadio.types.d.ts +4 -0
- package/lib/components/MenuItemRadio/MenuItemRadio.types.js +2 -0
- package/lib/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -0
- package/lib/components/MenuItemRadio/index.d.ts +5 -0
- package/lib/components/MenuItemRadio/index.js +6 -0
- package/lib/components/MenuItemRadio/index.js.map +1 -0
- package/lib/components/MenuItemRadio/renderMenuItemRadio.d.ts +6 -0
- package/lib/components/MenuItemRadio/renderMenuItemRadio.js +20 -0
- package/lib/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -0
- package/lib/components/MenuItemRadio/useMenuItemRadio.d.ts +6 -0
- package/lib/components/MenuItemRadio/useMenuItemRadio.js +49 -0
- package/lib/components/MenuItemRadio/useMenuItemRadio.js.map +1 -0
- package/lib/components/MenuItemRadio/useMenuItemRadioStyles.d.ts +3 -0
- package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js +10 -0
- package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -0
- package/lib/components/MenuList/MenuList.d.ts +6 -0
- package/lib/components/MenuList/MenuList.js +17 -0
- package/lib/components/MenuList/MenuList.js.map +1 -0
- package/lib/components/MenuList/MenuList.types.d.ts +55 -0
- package/lib/components/MenuList/MenuList.types.js +2 -0
- package/lib/components/MenuList/MenuList.types.js.map +1 -0
- package/lib/components/MenuList/index.d.ts +6 -0
- package/lib/components/MenuList/index.js +6 -0
- package/lib/components/MenuList/index.js.map +1 -0
- package/lib/components/MenuList/renderMenuList.d.ts +5 -0
- package/lib/components/MenuList/renderMenuList.js +18 -0
- package/lib/components/MenuList/renderMenuList.js.map +1 -0
- package/lib/components/MenuList/useMenuList.d.ts +6 -0
- package/lib/components/MenuList/useMenuList.js +168 -0
- package/lib/components/MenuList/useMenuList.js.map +1 -0
- package/lib/components/MenuList/useMenuListContextValues.d.ts +2 -0
- package/lib/components/MenuList/useMenuListContextValues.js +25 -0
- package/lib/components/MenuList/useMenuListContextValues.js.map +1 -0
- package/lib/components/MenuList/useMenuListStyles.d.ts +6 -0
- package/lib/components/MenuList/useMenuListStyles.js +24 -0
- package/lib/components/MenuList/useMenuListStyles.js.map +1 -0
- package/lib/components/MenuPopover/MenuPopover.d.ts +6 -0
- package/lib/components/MenuPopover/MenuPopover.js +15 -0
- package/lib/components/MenuPopover/MenuPopover.js.map +1 -0
- package/lib/components/MenuPopover/MenuPopover.types.d.ts +18 -0
- package/lib/components/MenuPopover/MenuPopover.types.js +2 -0
- package/lib/components/MenuPopover/MenuPopover.types.js.map +1 -0
- package/lib/components/MenuPopover/index.d.ts +5 -0
- package/lib/components/MenuPopover/index.js +6 -0
- package/lib/components/MenuPopover/index.js.map +1 -0
- package/lib/components/MenuPopover/renderMenuPopover.d.ts +5 -0
- package/lib/components/MenuPopover/renderMenuPopover.js +22 -0
- package/lib/components/MenuPopover/renderMenuPopover.js.map +1 -0
- package/lib/components/MenuPopover/useMenuPopover.d.ts +12 -0
- package/lib/components/MenuPopover/useMenuPopover.js +104 -0
- package/lib/components/MenuPopover/useMenuPopover.js.map +1 -0
- package/lib/components/MenuPopover/useMenuPopoverStyles.d.ts +6 -0
- package/lib/components/MenuPopover/useMenuPopoverStyles.js +46 -0
- package/lib/components/MenuPopover/useMenuPopoverStyles.js.map +1 -0
- package/lib/components/MenuSplitGroup/MenuSplitGroup.d.ts +6 -0
- package/lib/components/MenuSplitGroup/MenuSplitGroup.js +15 -0
- package/lib/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -0
- package/lib/components/MenuSplitGroup/MenuSplitGroup.types.d.ts +14 -0
- package/lib/components/MenuSplitGroup/MenuSplitGroup.types.js +2 -0
- package/lib/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -0
- package/lib/components/MenuSplitGroup/index.d.ts +5 -0
- package/lib/components/MenuSplitGroup/index.js +6 -0
- package/lib/components/MenuSplitGroup/index.js.map +1 -0
- package/lib/components/MenuSplitGroup/renderMenuSplitGroup.d.ts +5 -0
- package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js +15 -0
- package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -0
- package/lib/components/MenuSplitGroup/useMenuSplitGroup.d.ts +12 -0
- package/lib/components/MenuSplitGroup/useMenuSplitGroup.js +67 -0
- package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -0
- package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.d.ts +6 -0
- package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js +35 -0
- package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -0
- package/lib/components/MenuTrigger/MenuTrigger.d.ts +8 -0
- package/lib/components/MenuTrigger/MenuTrigger.js +14 -0
- package/lib/components/MenuTrigger/MenuTrigger.js.map +1 -0
- package/lib/components/MenuTrigger/MenuTrigger.types.d.ts +20 -0
- package/lib/components/MenuTrigger/MenuTrigger.types.js +2 -0
- package/lib/components/MenuTrigger/MenuTrigger.types.js.map +1 -0
- package/lib/components/MenuTrigger/index.d.ts +4 -0
- package/lib/components/MenuTrigger/index.js +5 -0
- package/lib/components/MenuTrigger/index.js.map +1 -0
- package/lib/components/MenuTrigger/renderMenuTrigger.d.ts +7 -0
- package/lib/components/MenuTrigger/renderMenuTrigger.js +14 -0
- package/lib/components/MenuTrigger/renderMenuTrigger.js.map +1 -0
- package/lib/components/MenuTrigger/useMenuTrigger.d.ts +8 -0
- package/lib/components/MenuTrigger/useMenuTrigger.js +178 -0
- package/lib/components/MenuTrigger/useMenuTrigger.js.map +1 -0
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.js +3 -0
- package/lib/components/index.js.map +1 -0
- package/lib/contexts/menuContext.d.ts +16 -0
- package/lib/contexts/menuContext.js +23 -0
- package/lib/contexts/menuContext.js.map +1 -0
- package/lib/contexts/menuGroupContext.d.ts +13 -0
- package/lib/contexts/menuGroupContext.js +7 -0
- package/lib/contexts/menuGroupContext.js.map +1 -0
- package/lib/contexts/menuListContext.d.ts +15 -0
- package/lib/contexts/menuListContext.js +13 -0
- package/lib/contexts/menuListContext.js.map +1 -0
- package/lib/contexts/menuTriggerContext.d.ts +3 -0
- package/lib/contexts/menuTriggerContext.js +9 -0
- package/lib/contexts/menuTriggerContext.js.map +1 -0
- package/lib/index.d.ts +16 -0
- package/lib/index.js +17 -0
- package/lib/index.js.map +1 -0
- package/lib/selectable/index.d.ts +2 -0
- package/lib/selectable/index.js +3 -0
- package/lib/selectable/index.js.map +1 -0
- package/lib/selectable/types.d.ts +34 -0
- package/lib/selectable/types.js +2 -0
- package/lib/selectable/types.js.map +1 -0
- package/lib/selectable/useCheckmarkStyles.d.ts +8 -0
- package/lib/selectable/useCheckmarkStyles.js +29 -0
- package/lib/selectable/useCheckmarkStyles.js.map +1 -0
- package/lib/tsdoc-metadata.json +11 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +2 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/useIsSubmenu.d.ts +9 -0
- package/lib/utils/useIsSubmenu.js +18 -0
- package/lib/utils/useIsSubmenu.js.map +1 -0
- package/lib/utils/useOnMenuEnter.d.ts +23 -0
- package/lib/utils/useOnMenuEnter.js +72 -0
- package/lib/utils/useOnMenuEnter.js.map +1 -0
- package/lib-commonjs/Menu.d.ts +1 -0
- package/lib-commonjs/Menu.js +10 -0
- package/lib-commonjs/Menu.js.map +1 -0
- package/lib-commonjs/MenuDivider.d.ts +1 -0
- package/lib-commonjs/MenuDivider.js +10 -0
- package/lib-commonjs/MenuDivider.js.map +1 -0
- package/lib-commonjs/MenuGroup.d.ts +1 -0
- package/lib-commonjs/MenuGroup.js +10 -0
- package/lib-commonjs/MenuGroup.js.map +1 -0
- package/lib-commonjs/MenuGroupHeader.d.ts +1 -0
- package/lib-commonjs/MenuGroupHeader.js +10 -0
- package/lib-commonjs/MenuGroupHeader.js.map +1 -0
- package/lib-commonjs/MenuItem.d.ts +1 -0
- package/lib-commonjs/MenuItem.js +10 -0
- package/lib-commonjs/MenuItem.js.map +1 -0
- package/lib-commonjs/MenuItemCheckbox.d.ts +1 -0
- package/lib-commonjs/MenuItemCheckbox.js +10 -0
- package/lib-commonjs/MenuItemCheckbox.js.map +1 -0
- package/lib-commonjs/MenuItemRadio.d.ts +1 -0
- package/lib-commonjs/MenuItemRadio.js +10 -0
- package/lib-commonjs/MenuItemRadio.js.map +1 -0
- package/lib-commonjs/MenuList.d.ts +1 -0
- package/lib-commonjs/MenuList.js +10 -0
- package/lib-commonjs/MenuList.js.map +1 -0
- package/lib-commonjs/MenuPopover.d.ts +1 -0
- package/lib-commonjs/MenuPopover.js +10 -0
- package/lib-commonjs/MenuPopover.js.map +1 -0
- package/lib-commonjs/MenuSplitGroup.d.ts +1 -0
- package/lib-commonjs/MenuSplitGroup.js +10 -0
- package/lib-commonjs/MenuSplitGroup.js.map +1 -0
- package/lib-commonjs/MenuTrigger.d.ts +1 -0
- package/lib-commonjs/MenuTrigger.js +10 -0
- package/lib-commonjs/MenuTrigger.js.map +1 -0
- package/lib-commonjs/components/Menu/Menu.d.ts +6 -0
- package/lib-commonjs/components/Menu/Menu.js +26 -0
- package/lib-commonjs/components/Menu/Menu.js.map +1 -0
- package/lib-commonjs/components/Menu/Menu.types.d.ts +113 -0
- package/lib-commonjs/components/Menu/Menu.types.js +6 -0
- package/lib-commonjs/components/Menu/Menu.types.js.map +1 -0
- package/lib-commonjs/components/Menu/index.d.ts +5 -0
- package/lib-commonjs/components/Menu/index.js +18 -0
- package/lib-commonjs/components/Menu/index.js.map +1 -0
- package/lib-commonjs/components/Menu/renderMenu.d.ts +5 -0
- package/lib-commonjs/components/Menu/renderMenu.js +23 -0
- package/lib-commonjs/components/Menu/renderMenu.js.map +1 -0
- package/lib-commonjs/components/Menu/useMenu.d.ts +10 -0
- package/lib-commonjs/components/Menu/useMenu.js +278 -0
- package/lib-commonjs/components/Menu/useMenu.js.map +1 -0
- package/lib-commonjs/components/Menu/useMenuContextValues.d.ts +2 -0
- package/lib-commonjs/components/Menu/useMenuContextValues.js +50 -0
- package/lib-commonjs/components/Menu/useMenuContextValues.js.map +1 -0
- package/lib-commonjs/components/MenuDivider/MenuDivider.d.ts +6 -0
- package/lib-commonjs/components/MenuDivider/MenuDivider.js +26 -0
- package/lib-commonjs/components/MenuDivider/MenuDivider.js.map +1 -0
- package/lib-commonjs/components/MenuDivider/MenuDivider.types.d.ts +6 -0
- package/lib-commonjs/components/MenuDivider/MenuDivider.types.js +6 -0
- package/lib-commonjs/components/MenuDivider/MenuDivider.types.js.map +1 -0
- package/lib-commonjs/components/MenuDivider/index.d.ts +5 -0
- package/lib-commonjs/components/MenuDivider/index.js +18 -0
- package/lib-commonjs/components/MenuDivider/index.js.map +1 -0
- package/lib-commonjs/components/MenuDivider/renderMenuDivider.d.ts +6 -0
- package/lib-commonjs/components/MenuDivider/renderMenuDivider.js +27 -0
- package/lib-commonjs/components/MenuDivider/renderMenuDivider.js.map +1 -0
- package/lib-commonjs/components/MenuDivider/useMenuDivider.d.ts +6 -0
- package/lib-commonjs/components/MenuDivider/useMenuDivider.js +29 -0
- package/lib-commonjs/components/MenuDivider/useMenuDivider.js.map +1 -0
- package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.d.ts +3 -0
- package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js +35 -0
- package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js.map +1 -0
- package/lib-commonjs/components/MenuGroup/MenuGroup.d.ts +6 -0
- package/lib-commonjs/components/MenuGroup/MenuGroup.js +29 -0
- package/lib-commonjs/components/MenuGroup/MenuGroup.js.map +1 -0
- package/lib-commonjs/components/MenuGroup/MenuGroup.types.d.ts +15 -0
- package/lib-commonjs/components/MenuGroup/MenuGroup.types.js +6 -0
- package/lib-commonjs/components/MenuGroup/MenuGroup.types.js.map +1 -0
- package/lib-commonjs/components/MenuGroup/index.d.ts +6 -0
- package/lib-commonjs/components/MenuGroup/index.js +20 -0
- package/lib-commonjs/components/MenuGroup/index.js.map +1 -0
- package/lib-commonjs/components/MenuGroup/renderMenuGroup.d.ts +6 -0
- package/lib-commonjs/components/MenuGroup/renderMenuGroup.js +31 -0
- package/lib-commonjs/components/MenuGroup/renderMenuGroup.js.map +1 -0
- package/lib-commonjs/components/MenuGroup/useMenuGroup.d.ts +6 -0
- package/lib-commonjs/components/MenuGroup/useMenuGroup.js +31 -0
- package/lib-commonjs/components/MenuGroup/useMenuGroup.js.map +1 -0
- package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.d.ts +2 -0
- package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js +23 -0
- package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js.map +1 -0
- package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.d.ts +3 -0
- package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js +18 -0
- package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js.map +1 -0
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.d.ts +6 -0
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js +26 -0
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -0
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.d.ts +6 -0
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.js +6 -0
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -0
- package/lib-commonjs/components/MenuGroupHeader/index.d.ts +5 -0
- package/lib-commonjs/components/MenuGroupHeader/index.js +18 -0
- package/lib-commonjs/components/MenuGroupHeader/index.js.map +1 -0
- package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.d.ts +6 -0
- package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js +27 -0
- package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -0
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.d.ts +6 -0
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js +33 -0
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -0
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.d.ts +3 -0
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +36 -0
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -0
- package/lib-commonjs/components/MenuItem/MenuItem.d.ts +6 -0
- package/lib-commonjs/components/MenuItem/MenuItem.js +26 -0
- package/lib-commonjs/components/MenuItem/MenuItem.js.map +1 -0
- package/lib-commonjs/components/MenuItem/MenuItem.types.d.ts +43 -0
- package/lib-commonjs/components/MenuItem/MenuItem.types.js +6 -0
- package/lib-commonjs/components/MenuItem/MenuItem.types.js.map +1 -0
- package/lib-commonjs/components/MenuItem/index.d.ts +5 -0
- package/lib-commonjs/components/MenuItem/index.js +18 -0
- package/lib-commonjs/components/MenuItem/index.js.map +1 -0
- package/lib-commonjs/components/MenuItem/renderMenuItem.d.ts +5 -0
- package/lib-commonjs/components/MenuItem/renderMenuItem.js +31 -0
- package/lib-commonjs/components/MenuItem/renderMenuItem.js.map +1 -0
- package/lib-commonjs/components/MenuItem/useCharacterSearch.d.ts +3 -0
- package/lib-commonjs/components/MenuItem/useCharacterSearch.js +36 -0
- package/lib-commonjs/components/MenuItem/useCharacterSearch.js.map +1 -0
- package/lib-commonjs/components/MenuItem/useMenuItem.d.ts +6 -0
- package/lib-commonjs/components/MenuItem/useMenuItem.js +142 -0
- package/lib-commonjs/components/MenuItem/useMenuItem.js.map +1 -0
- package/lib-commonjs/components/MenuItem/useMenuItemStyles.d.ts +4 -0
- package/lib-commonjs/components/MenuItem/useMenuItemStyles.js +120 -0
- package/lib-commonjs/components/MenuItem/useMenuItemStyles.js.map +1 -0
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.d.ts +6 -0
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js +26 -0
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -0
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +4 -0
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.js +6 -0
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -0
- package/lib-commonjs/components/MenuItemCheckbox/index.d.ts +5 -0
- package/lib-commonjs/components/MenuItemCheckbox/index.js +18 -0
- package/lib-commonjs/components/MenuItemCheckbox/index.js.map +1 -0
- package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.d.ts +3 -0
- package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js +28 -0
- package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -0
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.d.ts +4 -0
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js +60 -0
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -0
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.d.ts +3 -0
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +23 -0
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -0
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.d.ts +6 -0
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js +26 -0
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js.map +1 -0
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.d.ts +4 -0
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.js +6 -0
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -0
- package/lib-commonjs/components/MenuItemRadio/index.d.ts +5 -0
- package/lib-commonjs/components/MenuItemRadio/index.js +18 -0
- package/lib-commonjs/components/MenuItemRadio/index.js.map +1 -0
- package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.d.ts +6 -0
- package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js +31 -0
- package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -0
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.d.ts +6 -0
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js +63 -0
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js.map +1 -0
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.d.ts +3 -0
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js +23 -0
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -0
- package/lib-commonjs/components/MenuList/MenuList.d.ts +6 -0
- package/lib-commonjs/components/MenuList/MenuList.js +29 -0
- package/lib-commonjs/components/MenuList/MenuList.js.map +1 -0
- package/lib-commonjs/components/MenuList/MenuList.types.d.ts +55 -0
- package/lib-commonjs/components/MenuList/MenuList.types.js +6 -0
- package/lib-commonjs/components/MenuList/MenuList.types.js.map +1 -0
- package/lib-commonjs/components/MenuList/index.d.ts +6 -0
- package/lib-commonjs/components/MenuList/index.js +18 -0
- package/lib-commonjs/components/MenuList/index.js.map +1 -0
- package/lib-commonjs/components/MenuList/renderMenuList.d.ts +5 -0
- package/lib-commonjs/components/MenuList/renderMenuList.js +30 -0
- package/lib-commonjs/components/MenuList/renderMenuList.js.map +1 -0
- package/lib-commonjs/components/MenuList/useMenuList.d.ts +6 -0
- package/lib-commonjs/components/MenuList/useMenuList.js +183 -0
- package/lib-commonjs/components/MenuList/useMenuList.js.map +1 -0
- package/lib-commonjs/components/MenuList/useMenuListContextValues.d.ts +2 -0
- package/lib-commonjs/components/MenuList/useMenuListContextValues.js +34 -0
- package/lib-commonjs/components/MenuList/useMenuListContextValues.js.map +1 -0
- package/lib-commonjs/components/MenuList/useMenuListStyles.d.ts +6 -0
- package/lib-commonjs/components/MenuList/useMenuListStyles.js +34 -0
- package/lib-commonjs/components/MenuList/useMenuListStyles.js.map +1 -0
- package/lib-commonjs/components/MenuPopover/MenuPopover.d.ts +6 -0
- package/lib-commonjs/components/MenuPopover/MenuPopover.js +26 -0
- package/lib-commonjs/components/MenuPopover/MenuPopover.js.map +1 -0
- package/lib-commonjs/components/MenuPopover/MenuPopover.types.d.ts +18 -0
- package/lib-commonjs/components/MenuPopover/MenuPopover.types.js +6 -0
- package/lib-commonjs/components/MenuPopover/MenuPopover.types.js.map +1 -0
- package/lib-commonjs/components/MenuPopover/index.d.ts +5 -0
- package/lib-commonjs/components/MenuPopover/index.js +18 -0
- package/lib-commonjs/components/MenuPopover/index.js.map +1 -0
- package/lib-commonjs/components/MenuPopover/renderMenuPopover.d.ts +5 -0
- package/lib-commonjs/components/MenuPopover/renderMenuPopover.js +34 -0
- package/lib-commonjs/components/MenuPopover/renderMenuPopover.js.map +1 -0
- package/lib-commonjs/components/MenuPopover/useMenuPopover.d.ts +12 -0
- package/lib-commonjs/components/MenuPopover/useMenuPopover.js +120 -0
- package/lib-commonjs/components/MenuPopover/useMenuPopover.js.map +1 -0
- package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.d.ts +6 -0
- package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js +57 -0
- package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js.map +1 -0
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.d.ts +6 -0
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js +26 -0
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -0
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.d.ts +14 -0
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js +6 -0
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -0
- package/lib-commonjs/components/MenuSplitGroup/index.d.ts +5 -0
- package/lib-commonjs/components/MenuSplitGroup/index.js +18 -0
- package/lib-commonjs/components/MenuSplitGroup/index.js.map +1 -0
- package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.d.ts +5 -0
- package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js +26 -0
- package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -0
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.d.ts +12 -0
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js +81 -0
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -0
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.d.ts +6 -0
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js +47 -0
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -0
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.d.ts +8 -0
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.js +25 -0
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.js.map +1 -0
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.d.ts +20 -0
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js +6 -0
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js.map +1 -0
- package/lib-commonjs/components/MenuTrigger/index.d.ts +4 -0
- package/lib-commonjs/components/MenuTrigger/index.js +16 -0
- package/lib-commonjs/components/MenuTrigger/index.js.map +1 -0
- package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.d.ts +7 -0
- package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js +25 -0
- package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js.map +1 -0
- package/lib-commonjs/components/MenuTrigger/useMenuTrigger.d.ts +8 -0
- package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js +195 -0
- package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js.map +1 -0
- package/lib-commonjs/components/index.d.ts +2 -0
- package/lib-commonjs/components/index.js +12 -0
- package/lib-commonjs/components/index.js.map +1 -0
- package/lib-commonjs/contexts/menuContext.d.ts +16 -0
- package/lib-commonjs/contexts/menuContext.js +34 -0
- package/lib-commonjs/contexts/menuContext.js.map +1 -0
- package/lib-commonjs/contexts/menuGroupContext.d.ts +13 -0
- package/lib-commonjs/contexts/menuGroupContext.js +18 -0
- package/lib-commonjs/contexts/menuGroupContext.js.map +1 -0
- package/lib-commonjs/contexts/menuListContext.d.ts +15 -0
- package/lib-commonjs/contexts/menuListContext.js +24 -0
- package/lib-commonjs/contexts/menuListContext.js.map +1 -0
- package/lib-commonjs/contexts/menuTriggerContext.d.ts +3 -0
- package/lib-commonjs/contexts/menuTriggerContext.js +20 -0
- package/lib-commonjs/contexts/menuTriggerContext.js.map +1 -0
- package/lib-commonjs/index.d.ts +16 -0
- package/lib-commonjs/index.js +40 -0
- package/lib-commonjs/index.js.map +1 -0
- package/lib-commonjs/selectable/index.d.ts +2 -0
- package/lib-commonjs/selectable/index.js +12 -0
- package/lib-commonjs/selectable/index.js.map +1 -0
- package/lib-commonjs/selectable/types.d.ts +34 -0
- package/lib-commonjs/selectable/types.js +6 -0
- package/lib-commonjs/selectable/types.js.map +1 -0
- package/lib-commonjs/selectable/useCheckmarkStyles.d.ts +8 -0
- package/lib-commonjs/selectable/useCheckmarkStyles.js +38 -0
- package/lib-commonjs/selectable/useCheckmarkStyles.js.map +1 -0
- package/lib-commonjs/utils/index.d.ts +1 -0
- package/lib-commonjs/utils/index.js +10 -0
- package/lib-commonjs/utils/index.js.map +1 -0
- package/lib-commonjs/utils/useIsSubmenu.d.ts +9 -0
- package/lib-commonjs/utils/useIsSubmenu.js +30 -0
- package/lib-commonjs/utils/useIsSubmenu.js.map +1 -0
- package/lib-commonjs/utils/useOnMenuEnter.d.ts +23 -0
- package/lib-commonjs/utils/useOnMenuEnter.js +86 -0
- package/lib-commonjs/utils/useOnMenuEnter.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../src/","sources":["components/MenuItemRadio/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC","sourcesContent":["export * from './MenuItemRadio.types';\nexport * from './MenuItemRadio';\nexport * from './renderMenuItemRadio';\nexport * from './useMenuItemRadio';\nexport * from './useMenuItemRadioStyles';\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MenuItemRadioState } from './MenuItemRadio.types';
|
|
2
|
+
/**
|
|
3
|
+
* Redefine the render function to add slots. Reuse the menuitemradio structure but add
|
|
4
|
+
* slots to children.
|
|
5
|
+
*/
|
|
6
|
+
export declare const renderMenuItemRadio_unstable: (state: MenuItemRadioState) => JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { getSlots } from '@fluentui/react-utilities';
|
|
3
|
+
/**
|
|
4
|
+
* Redefine the render function to add slots. Reuse the menuitemradio structure but add
|
|
5
|
+
* slots to children.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export const renderMenuItemRadio_unstable = state => {
|
|
9
|
+
const {
|
|
10
|
+
slots,
|
|
11
|
+
slotProps
|
|
12
|
+
} = getSlots(state);
|
|
13
|
+
return /*#__PURE__*/React.createElement(slots.root, { ...slotProps.root
|
|
14
|
+
}, slots.checkmark && /*#__PURE__*/React.createElement(slots.checkmark, { ...slotProps.checkmark
|
|
15
|
+
}), slots.icon && /*#__PURE__*/React.createElement(slots.icon, { ...slotProps.icon
|
|
16
|
+
}), slots.content && /*#__PURE__*/React.createElement(slots.content, { ...slotProps.content
|
|
17
|
+
}), slots.secondaryContent && /*#__PURE__*/React.createElement(slots.secondaryContent, { ...slotProps.secondaryContent
|
|
18
|
+
}));
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=renderMenuItemRadio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuItemRadio/renderMenuItemRadio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,QAAT,QAAyB,2BAAzB;AAIA;;;AAGG;;AACH,OAAO,MAAM,4BAA4B,GAAI,KAAD,IAA8B;AACxE,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,QAAQ,CAAgB,KAAhB,CAArC;AAEA,sBACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,EACG,KAAK,CAAC,SAAN,iBAAmB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,SAAP,EAAgB,EAAA,GAAK,SAAS,CAAC;AAAf,GAAhB,CADtB,EAEG,KAAK,CAAC,IAAN,iBAAc,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,CAFjB,EAGG,KAAK,CAAC,OAAN,iBAAiB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,OAAP,EAAc,EAAA,GAAK,SAAS,CAAC;AAAf,GAAd,CAHpB,EAIG,KAAK,CAAC,gBAAN,iBAA0B,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,gBAAP,EAAuB,EAAA,GAAK,SAAS,CAAC;AAAf,GAAvB,CAJ7B,CADF;AAQD,CAXM","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { MenuItemRadioState } from './MenuItemRadio.types';\nimport type { MenuItemSlots } from '../MenuItem/MenuItem.types';\n\n/**\n * Redefine the render function to add slots. Reuse the menuitemradio structure but add\n * slots to children.\n */\nexport const renderMenuItemRadio_unstable = (state: MenuItemRadioState) => {\n const { slots, slotProps } = getSlots<MenuItemSlots>(state);\n\n return (\n <slots.root {...slotProps.root}>\n {slots.checkmark && <slots.checkmark {...slotProps.checkmark} />}\n {slots.icon && <slots.icon {...slotProps.icon} />}\n {slots.content && <slots.content {...slotProps.content} />}\n {slots.secondaryContent && <slots.secondaryContent {...slotProps.secondaryContent} />}\n </slots.root>\n );\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { MenuItemRadioProps, MenuItemRadioState } from './MenuItemRadio.types';
|
|
3
|
+
/**
|
|
4
|
+
* Given user props, returns state and render function for a MenuItemRadio.
|
|
5
|
+
*/
|
|
6
|
+
export declare const useMenuItemRadio_unstable: (props: MenuItemRadioProps, ref: React.Ref<HTMLElement>) => MenuItemRadioState;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { resolveShorthand } from '@fluentui/react-utilities';
|
|
3
|
+
import { Checkmark16Filled } from '@fluentui/react-icons';
|
|
4
|
+
import { useMenuListContext_unstable } from '../../contexts/menuListContext';
|
|
5
|
+
import { useMenuItem_unstable } from '../MenuItem/useMenuItem';
|
|
6
|
+
/**
|
|
7
|
+
* Given user props, returns state and render function for a MenuItemRadio.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export const useMenuItemRadio_unstable = (props, ref) => {
|
|
11
|
+
const radioProps = {
|
|
12
|
+
role: 'menuitemradio'
|
|
13
|
+
};
|
|
14
|
+
const state = useMenuItem_unstable({ ...radioProps,
|
|
15
|
+
...props,
|
|
16
|
+
checkmark: resolveShorthand(props.checkmark, {
|
|
17
|
+
defaultProps: {
|
|
18
|
+
children: /*#__PURE__*/React.createElement(Checkmark16Filled, null)
|
|
19
|
+
},
|
|
20
|
+
required: true
|
|
21
|
+
})
|
|
22
|
+
}, ref);
|
|
23
|
+
const selectRadio = useMenuListContext_unstable(context => context.selectRadio);
|
|
24
|
+
const {
|
|
25
|
+
onClick: onClickOriginal
|
|
26
|
+
} = state.root;
|
|
27
|
+
const checked = useMenuListContext_unstable(context => {
|
|
28
|
+
var _a;
|
|
29
|
+
|
|
30
|
+
const checkedItems = ((_a = context.checkedValues) === null || _a === void 0 ? void 0 : _a[state.name]) || [];
|
|
31
|
+
return checkedItems.indexOf(state.value) !== -1;
|
|
32
|
+
});
|
|
33
|
+
state.checked = checked;
|
|
34
|
+
state.root['aria-checked'] = state.checked; // MenuItem state already transforms keyDown to click events
|
|
35
|
+
|
|
36
|
+
state.root.onClick = e => {
|
|
37
|
+
if (state.disabled) {
|
|
38
|
+
e.preventDefault();
|
|
39
|
+
e.stopPropagation();
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
selectRadio === null || selectRadio === void 0 ? void 0 : selectRadio(e, state.name, state.value, state.checked);
|
|
44
|
+
onClickOriginal === null || onClickOriginal === void 0 ? void 0 : onClickOriginal(e);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
return state;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=useMenuItemRadio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuItemRadio/useMenuItemRadio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,gBAAT,QAAiC,2BAAjC;AACA,SAAS,iBAAT,QAAkC,uBAAlC;AACA,SAAS,2BAAT,QAA4C,gCAA5C;AACA,SAAS,oBAAT,QAAqC,yBAArC;AAGA;;AAEG;;AACH,OAAO,MAAM,yBAAyB,GAAG,CACvC,KADuC,EAEvC,GAFuC,KAGjB;AACtB,QAAM,UAAU,GAAG;AACjB,IAAA,IAAI,EAAE;AADW,GAAnB;AAIA,QAAM,KAAK,GAAG,oBAAoB,CAChC,EACE,GAAG,UADL;AAEE,OAAG,KAFL;AAGE,IAAA,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,SAAP,EAAkB;AAC3C,MAAA,YAAY,EAAE;AAAE,QAAA,QAAQ,eAAE,KAAA,CAAA,aAAA,CAAC,iBAAD,EAAkB,IAAlB;AAAZ,OAD6B;AAE3C,MAAA,QAAQ,EAAE;AAFiC,KAAlB;AAH7B,GADgC,EAShC,GATgC,CAAlC;AAYA,QAAM,WAAW,GAAG,2BAA2B,CAAC,OAAO,IAAI,OAAO,CAAC,WAApB,CAA/C;AACA,QAAM;AAAE,IAAA,OAAO,EAAE;AAAX,MAA+B,KAAK,CAAC,IAA3C;AACA,QAAM,OAAO,GAAG,2BAA2B,CAAC,OAAO,IAAG;;;AACpD,UAAM,YAAY,GAAG,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,aAAR,MAAqB,IAArB,IAAqB,EAAA,KAAA,KAAA,CAArB,GAAqB,KAAA,CAArB,GAAqB,EAAA,CAAG,KAAK,CAAC,IAAT,CAArB,KAAuC,EAA5D;AACA,WAAO,YAAY,CAAC,OAAb,CAAqB,KAAK,CAAC,KAA3B,MAAsC,CAAC,CAA9C;AACD,GAH0C,CAA3C;AAKA,EAAA,KAAK,CAAC,OAAN,GAAgB,OAAhB;AACA,EAAA,KAAK,CAAC,IAAN,CAAW,cAAX,IAA6B,KAAK,CAAC,OAAnC,CAzBsB,CA2BtB;;AACA,EAAA,KAAK,CAAC,IAAN,CAAW,OAAX,GAAqB,CAAC,IAAG;AACvB,QAAI,KAAK,CAAC,QAAV,EAAoB;AAClB,MAAA,CAAC,CAAC,cAAF;AACA,MAAA,CAAC,CAAC,eAAF;AACA;AACD;;AAED,IAAA,WAAW,KAAA,IAAX,IAAA,WAAW,KAAA,KAAA,CAAX,GAAW,KAAA,CAAX,GAAA,WAAW,CAAG,CAAH,EAAM,KAAK,CAAC,IAAZ,EAAkB,KAAK,CAAC,KAAxB,EAA+B,KAAK,CAAC,OAArC,CAAX;AACA,IAAA,eAAe,KAAA,IAAf,IAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAA,eAAe,CAAG,CAAH,CAAf;AACD,GATD;;AAWA,SAAO,KAAP;AACD,CA3CM","sourcesContent":["import * as React from 'react';\nimport { resolveShorthand } from '@fluentui/react-utilities';\nimport { Checkmark16Filled } from '@fluentui/react-icons';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useMenuItem_unstable } from '../MenuItem/useMenuItem';\nimport type { MenuItemRadioProps, MenuItemRadioState } from './MenuItemRadio.types';\n\n/**\n * Given user props, returns state and render function for a MenuItemRadio.\n */\nexport const useMenuItemRadio_unstable = (\n props: MenuItemRadioProps,\n ref: React.Ref<HTMLElement>,\n): MenuItemRadioState => {\n const radioProps = {\n role: 'menuitemradio',\n };\n\n const state = useMenuItem_unstable(\n {\n ...radioProps,\n ...props,\n checkmark: resolveShorthand(props.checkmark, {\n defaultProps: { children: <Checkmark16Filled /> },\n required: true,\n }),\n },\n ref,\n ) as MenuItemRadioState;\n\n const selectRadio = useMenuListContext_unstable(context => context.selectRadio);\n const { onClick: onClickOriginal } = state.root;\n const checked = useMenuListContext_unstable(context => {\n const checkedItems = context.checkedValues?.[state.name] || [];\n return checkedItems.indexOf(state.value) !== -1;\n });\n\n state.checked = checked;\n state.root['aria-checked'] = state.checked;\n\n // MenuItem state already transforms keyDown to click events\n state.root.onClick = e => {\n if (state.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n selectRadio?.(e, state.name, state.value, state.checked);\n onClickOriginal?.(e);\n };\n\n return state;\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { mergeClasses } from '@griffel/react';
|
|
2
|
+
import { useCheckmarkStyles_unstable } from '../../selectable/index';
|
|
3
|
+
import { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles';
|
|
4
|
+
export const menuItemRadioClassName = 'fui-MenuItemRadio';
|
|
5
|
+
export const useMenuItemRadioStyles_unstable = state => {
|
|
6
|
+
state.root.className = mergeClasses(menuItemRadioClassName, state.root.className);
|
|
7
|
+
useMenuItemStyles_unstable(state);
|
|
8
|
+
useCheckmarkStyles_unstable(state);
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=useMenuItemRadioStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuItemRadio/useMenuItemRadioStyles.ts"],"names":[],"mappings":"AAAA,SAAS,YAAT,QAA6B,gBAA7B;AACA,SAAS,2BAAT,QAA4C,wBAA5C;AACA,SAAS,0BAAT,QAA2C,+BAA3C;AAGA,OAAO,MAAM,sBAAsB,GAAG,mBAA/B;AAEP,OAAO,MAAM,+BAA+B,GAAI,KAAD,IAA8B;AAC3E,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,YAAY,CAAC,sBAAD,EAAyB,KAAK,CAAC,IAAN,CAAW,SAApC,CAAnC;AAEA,EAAA,0BAA0B,CAAC,KAAD,CAA1B;AACA,EAAA,2BAA2B,CAAC,KAAD,CAA3B;AACD,CALM","sourcesContent":["import { mergeClasses } from '@griffel/react';\nimport { useCheckmarkStyles_unstable } from '../../selectable/index';\nimport { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles';\nimport type { MenuItemRadioState } from './MenuItemRadio.types';\n\nexport const menuItemRadioClassName = 'fui-MenuItemRadio';\n\nexport const useMenuItemRadioStyles_unstable = (state: MenuItemRadioState) => {\n state.root.className = mergeClasses(menuItemRadioClassName, state.root.className);\n\n useMenuItemStyles_unstable(state);\n useCheckmarkStyles_unstable(state);\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MenuListProps } from './MenuList.types';
|
|
2
|
+
import type { ForwardRefComponent } from '@fluentui/react-utilities';
|
|
3
|
+
/**
|
|
4
|
+
* Define a styled MenuList, using the `useMenuList_unstable` hook.
|
|
5
|
+
*/
|
|
6
|
+
export declare const MenuList: ForwardRefComponent<MenuListProps>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useMenuList_unstable } from './useMenuList';
|
|
3
|
+
import { renderMenuList_unstable } from './renderMenuList';
|
|
4
|
+
import { useMenuListContextValues_unstable } from './useMenuListContextValues';
|
|
5
|
+
import { useMenuListStyles_unstable } from './useMenuListStyles';
|
|
6
|
+
/**
|
|
7
|
+
* Define a styled MenuList, using the `useMenuList_unstable` hook.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export const MenuList = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
11
|
+
const state = useMenuList_unstable(props, ref);
|
|
12
|
+
const contextValues = useMenuListContextValues_unstable(state);
|
|
13
|
+
useMenuListStyles_unstable(state);
|
|
14
|
+
return renderMenuList_unstable(state, contextValues);
|
|
15
|
+
});
|
|
16
|
+
MenuList.displayName = 'MenuList';
|
|
17
|
+
//# sourceMappingURL=MenuList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuList/MenuList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,oBAAT,QAAqC,eAArC;AACA,SAAS,uBAAT,QAAwC,kBAAxC;AACA,SAAS,iCAAT,QAAkD,4BAAlD;AACA,SAAS,0BAAT,QAA2C,qBAA3C;AAIA;;AAEG;;AACH,OAAO,MAAM,QAAQ,gBAAuC,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;AAC1F,QAAM,KAAK,GAAG,oBAAoB,CAAC,KAAD,EAAQ,GAAR,CAAlC;AACA,QAAM,aAAa,GAAG,iCAAiC,CAAC,KAAD,CAAvD;AACA,EAAA,0BAA0B,CAAC,KAAD,CAA1B;AAEA,SAAO,uBAAuB,CAAC,KAAD,EAAQ,aAAR,CAA9B;AACD,CAN2D,CAArD;AAQP,QAAQ,CAAC,WAAT,GAAuB,UAAvB","sourcesContent":["import * as React from 'react';\nimport { useMenuList_unstable } from './useMenuList';\nimport { renderMenuList_unstable } from './renderMenuList';\nimport { useMenuListContextValues_unstable } from './useMenuListContextValues';\nimport { useMenuListStyles_unstable } from './useMenuListStyles';\nimport type { MenuListProps } from './MenuList.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\n\n/**\n * Define a styled MenuList, using the `useMenuList_unstable` hook.\n */\nexport const MenuList: ForwardRefComponent<MenuListProps> = React.forwardRef((props, ref) => {\n const state = useMenuList_unstable(props, ref);\n const contextValues = useMenuListContextValues_unstable(state);\n useMenuListStyles_unstable(state);\n\n return renderMenuList_unstable(state, contextValues);\n});\n\nMenuList.displayName = 'MenuList';\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';
|
|
3
|
+
import type { MenuListContextValue } from '../../contexts/menuListContext';
|
|
4
|
+
import type { SelectableHandler } from '../../selectable/index';
|
|
5
|
+
export declare type MenuCheckedValueChangeEvent = React.MouseEvent | React.KeyboardEvent;
|
|
6
|
+
export declare type MenuCheckedValueChangeData = {
|
|
7
|
+
/** The name of the value */
|
|
8
|
+
name: string;
|
|
9
|
+
/** The items for this value that are checked */
|
|
10
|
+
checkedItems: string[];
|
|
11
|
+
};
|
|
12
|
+
export declare type MenuListCommons = {
|
|
13
|
+
/**
|
|
14
|
+
* Callback when checked items change for value with a name
|
|
15
|
+
*
|
|
16
|
+
* @param event - React's original SyntheticEvent
|
|
17
|
+
* @param data - A data object with relevant information
|
|
18
|
+
*/
|
|
19
|
+
onCheckedValueChange?: (e: MenuCheckedValueChangeEvent, data: MenuCheckedValueChangeData) => void;
|
|
20
|
+
/**
|
|
21
|
+
* Map of all checked values
|
|
22
|
+
*/
|
|
23
|
+
checkedValues: Record<string, string[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Default values to be checked on mount
|
|
26
|
+
*/
|
|
27
|
+
defaultCheckedValues?: Record<string, string[]>;
|
|
28
|
+
/**
|
|
29
|
+
* States that menu items can contain icons and reserve slots for item alignment
|
|
30
|
+
*/
|
|
31
|
+
hasIcons?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* States that menu items can contain selectable items and reserve slots for item alignment
|
|
34
|
+
*/
|
|
35
|
+
hasCheckmarks?: boolean;
|
|
36
|
+
};
|
|
37
|
+
export declare type MenuListSlots = {
|
|
38
|
+
root: Slot<'div'>;
|
|
39
|
+
};
|
|
40
|
+
export declare type MenuListProps = ComponentProps<MenuListSlots> & Partial<MenuListCommons>;
|
|
41
|
+
export declare type MenuListState = ComponentState<MenuListSlots> & MenuListCommons & {
|
|
42
|
+
/**
|
|
43
|
+
* Callback to set focus on the next menu item by first character
|
|
44
|
+
*/
|
|
45
|
+
setFocusByFirstCharacter: NonNullable<MenuListContextValue['setFocusByFirstCharacter']>;
|
|
46
|
+
toggleCheckbox: SelectableHandler;
|
|
47
|
+
/**
|
|
48
|
+
* Selects a radio item, will de-select the currently selected ratio item
|
|
49
|
+
*/
|
|
50
|
+
selectRadio: SelectableHandler;
|
|
51
|
+
};
|
|
52
|
+
export declare type MenuListContextValues = {
|
|
53
|
+
menuList: MenuListContextValue;
|
|
54
|
+
};
|
|
55
|
+
export declare type UninitializedMenuListState = Omit<MenuListState, 'setFocusByFirstCharacter' | 'toggleCheckbox' | 'selectRadio' | 'checkedValues'> & Partial<Pick<MenuListState, 'checkedValues'>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuList.types.js","sourceRoot":"../src/","sources":["components/MenuList/MenuList.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { MenuListContextValue } from '../../contexts/menuListContext';\nimport type { SelectableHandler } from '../../selectable/index';\n\nexport type MenuCheckedValueChangeEvent = React.MouseEvent | React.KeyboardEvent;\n\nexport type MenuCheckedValueChangeData = {\n /** The name of the value */\n name: string;\n /** The items for this value that are checked */\n checkedItems: string[];\n};\n\nexport type MenuListCommons = {\n /**\n * Callback when checked items change for value with a name\n *\n * @param event - React's original SyntheticEvent\n * @param data - A data object with relevant information\n */\n onCheckedValueChange?: (e: MenuCheckedValueChangeEvent, data: MenuCheckedValueChangeData) => void;\n\n /**\n * Map of all checked values\n */\n checkedValues: Record<string, string[]>;\n\n /**\n * Default values to be checked on mount\n */\n defaultCheckedValues?: Record<string, string[]>;\n\n /**\n * States that menu items can contain icons and reserve slots for item alignment\n */\n hasIcons?: boolean;\n\n /**\n * States that menu items can contain selectable items and reserve slots for item alignment\n */\n hasCheckmarks?: boolean;\n};\n\nexport type MenuListSlots = {\n root: Slot<'div'>;\n};\n\nexport type MenuListProps = ComponentProps<MenuListSlots> & Partial<MenuListCommons>;\n\nexport type MenuListState = ComponentState<MenuListSlots> &\n MenuListCommons & {\n /**\n * Callback to set focus on the next menu item by first character\n */\n setFocusByFirstCharacter: NonNullable<MenuListContextValue['setFocusByFirstCharacter']>;\n\n /*\n * Toggles the state of a checkbox item\n */\n toggleCheckbox: SelectableHandler;\n\n /**\n * Selects a radio item, will de-select the currently selected ratio item\n */\n selectRadio: SelectableHandler;\n };\n\nexport type MenuListContextValues = {\n menuList: MenuListContextValue;\n};\n\nexport type UninitializedMenuListState = Omit<\n MenuListState,\n 'setFocusByFirstCharacter' | 'toggleCheckbox' | 'selectRadio' | 'checkedValues'\n> &\n Partial<Pick<MenuListState, 'checkedValues'>>;\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './MenuList';
|
|
2
|
+
export type { MenuCheckedValueChangeData, MenuCheckedValueChangeEvent, MenuListContextValues, MenuListProps, MenuListSlots, MenuListState, UninitializedMenuListState, } from './MenuList.types';
|
|
3
|
+
export * from './renderMenuList';
|
|
4
|
+
export * from './useMenuList';
|
|
5
|
+
export * from './useMenuListStyles';
|
|
6
|
+
export * from './useMenuListContextValues';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../src/","sources":["components/MenuList/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAW3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC","sourcesContent":["export * from './MenuList';\n// Explicit exports to omit MenuListCommons\nexport type {\n MenuCheckedValueChangeData,\n MenuCheckedValueChangeEvent,\n MenuListContextValues,\n MenuListProps,\n MenuListSlots,\n MenuListState,\n UninitializedMenuListState,\n} from './MenuList.types';\nexport * from './renderMenuList';\nexport * from './useMenuList';\nexport * from './useMenuListStyles';\nexport * from './useMenuListContextValues';\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { getSlots } from '@fluentui/react-utilities';
|
|
3
|
+
import { MenuListProvider } from '../../contexts/menuListContext';
|
|
4
|
+
/**
|
|
5
|
+
* Function that renders the final JSX of the component
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export const renderMenuList_unstable = (state, contextValues) => {
|
|
9
|
+
const {
|
|
10
|
+
slots,
|
|
11
|
+
slotProps
|
|
12
|
+
} = getSlots(state);
|
|
13
|
+
return /*#__PURE__*/React.createElement(MenuListProvider, {
|
|
14
|
+
value: contextValues.menuList
|
|
15
|
+
}, /*#__PURE__*/React.createElement(slots.root, { ...slotProps.root
|
|
16
|
+
}));
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=renderMenuList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuList/renderMenuList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,QAAT,QAAyB,2BAAzB;AAEA,SAAS,gBAAT,QAAiC,gCAAjC;AAEA;;AAEG;;AACH,OAAO,MAAM,uBAAuB,GAAG,CAAC,KAAD,EAAuB,aAAvB,KAA+D;AACpG,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,QAAQ,CAAgB,KAAhB,CAArC;AAEA,sBACE,KAAA,CAAA,aAAA,CAAC,gBAAD,EAAiB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAjB,eACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,CADF,CADF;AAKD,CARM","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport { MenuListContextValues, MenuListSlots, MenuListState } from './MenuList.types';\nimport { MenuListProvider } from '../../contexts/menuListContext';\n\n/**\n * Function that renders the final JSX of the component\n */\nexport const renderMenuList_unstable = (state: MenuListState, contextValues: MenuListContextValues) => {\n const { slots, slotProps } = getSlots<MenuListSlots>(state);\n\n return (\n <MenuListProvider value={contextValues.menuList}>\n <slots.root {...slotProps.root} />\n </MenuListProvider>\n );\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { MenuListProps, MenuListState } from './MenuList.types';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the props and state required to render the component
|
|
5
|
+
*/
|
|
6
|
+
export declare const useMenuList_unstable: (props: MenuListProps, ref: React.Ref<HTMLElement>) => MenuListState;
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useMergedRefs, useEventCallback, useControllableState, getNativeElementProps } from '@fluentui/react-utilities';
|
|
3
|
+
import { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';
|
|
4
|
+
import { useHasParentContext } from '@fluentui/react-context-selector';
|
|
5
|
+
import { useMenuContext_unstable } from '../../contexts/menuContext';
|
|
6
|
+
import { MenuContext } from '../../contexts/menuContext';
|
|
7
|
+
/**
|
|
8
|
+
* Returns the props and state required to render the component
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export const useMenuList_unstable = (props, ref) => {
|
|
12
|
+
const focusAttributes = useArrowNavigationGroup({
|
|
13
|
+
circular: true
|
|
14
|
+
});
|
|
15
|
+
const {
|
|
16
|
+
findAllFocusable
|
|
17
|
+
} = useFocusFinders();
|
|
18
|
+
const menuContext = useMenuContextSelectors();
|
|
19
|
+
const hasMenuContext = useHasParentContext(MenuContext);
|
|
20
|
+
|
|
21
|
+
if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {
|
|
22
|
+
// TODO throw warnings in development safely
|
|
23
|
+
// eslint-disable-next-line no-console
|
|
24
|
+
console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const innerRef = React.useRef(null);
|
|
28
|
+
const initialState = {
|
|
29
|
+
components: {
|
|
30
|
+
root: 'div'
|
|
31
|
+
},
|
|
32
|
+
root: getNativeElementProps('div', {
|
|
33
|
+
ref: useMergedRefs(ref, innerRef),
|
|
34
|
+
role: 'menu',
|
|
35
|
+
'aria-labelledby': menuContext.triggerId,
|
|
36
|
+
...focusAttributes,
|
|
37
|
+
...props
|
|
38
|
+
}),
|
|
39
|
+
hasIcons: menuContext.hasIcons,
|
|
40
|
+
hasCheckmarks: menuContext.hasCheckmarks,
|
|
41
|
+
...(hasMenuContext && menuContext),
|
|
42
|
+
...props
|
|
43
|
+
};
|
|
44
|
+
const setFocusByFirstCharacter = React.useCallback((e, itemEl) => {
|
|
45
|
+
// TODO use some kind of children registration to reduce dependency on DOM roles
|
|
46
|
+
const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];
|
|
47
|
+
|
|
48
|
+
if (!innerRef.current) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const menuItems = findAllFocusable(innerRef.current, el => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')) !== -1);
|
|
53
|
+
let startIndex = menuItems.indexOf(itemEl) + 1;
|
|
54
|
+
|
|
55
|
+
if (startIndex === menuItems.length) {
|
|
56
|
+
startIndex = 0;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const firstChars = menuItems.map(menuItem => {
|
|
60
|
+
var _a;
|
|
61
|
+
|
|
62
|
+
return (_a = menuItem.textContent) === null || _a === void 0 ? void 0 : _a.charAt(0).toLowerCase();
|
|
63
|
+
});
|
|
64
|
+
const char = e.key.toLowerCase();
|
|
65
|
+
|
|
66
|
+
const getIndexFirstChars = (start, firstChar) => {
|
|
67
|
+
for (let i = start; i < firstChars.length; i++) {
|
|
68
|
+
if (char === firstChars[i]) {
|
|
69
|
+
return i;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return -1;
|
|
74
|
+
}; // Check remaining slots in the menu
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
let index = getIndexFirstChars(startIndex, char); // If not found in remaining slots, check from beginning
|
|
78
|
+
|
|
79
|
+
if (index === -1) {
|
|
80
|
+
index = getIndexFirstChars(0, char);
|
|
81
|
+
} // If match was found...
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
if (index > -1) {
|
|
85
|
+
menuItems[index].focus();
|
|
86
|
+
}
|
|
87
|
+
}, [findAllFocusable]);
|
|
88
|
+
const [checkedValues, setCheckedValues] = useControllableState({
|
|
89
|
+
state: initialState.checkedValues,
|
|
90
|
+
defaultState: initialState.defaultCheckedValues,
|
|
91
|
+
initialState: {}
|
|
92
|
+
});
|
|
93
|
+
const {
|
|
94
|
+
onCheckedValueChange
|
|
95
|
+
} = initialState;
|
|
96
|
+
const toggleCheckbox = useEventCallback((e, name, value, checked) => {
|
|
97
|
+
const checkedItems = (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues[name]) || [];
|
|
98
|
+
const newCheckedItems = [...checkedItems];
|
|
99
|
+
|
|
100
|
+
if (checked) {
|
|
101
|
+
newCheckedItems.splice(newCheckedItems.indexOf(value), 1);
|
|
102
|
+
} else {
|
|
103
|
+
newCheckedItems.push(value);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
onCheckedValueChange === null || onCheckedValueChange === void 0 ? void 0 : onCheckedValueChange(e, {
|
|
107
|
+
name,
|
|
108
|
+
checkedItems: newCheckedItems
|
|
109
|
+
});
|
|
110
|
+
setCheckedValues(s => ({ ...s,
|
|
111
|
+
[name]: newCheckedItems
|
|
112
|
+
}));
|
|
113
|
+
});
|
|
114
|
+
const selectRadio = useEventCallback((e, name, value) => {
|
|
115
|
+
const newCheckedItems = [value];
|
|
116
|
+
setCheckedValues(s => ({ ...s,
|
|
117
|
+
[name]: newCheckedItems
|
|
118
|
+
}));
|
|
119
|
+
onCheckedValueChange === null || onCheckedValueChange === void 0 ? void 0 : onCheckedValueChange(e, {
|
|
120
|
+
name,
|
|
121
|
+
checkedItems: newCheckedItems
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
const state = { ...initialState,
|
|
125
|
+
setFocusByFirstCharacter,
|
|
126
|
+
selectRadio,
|
|
127
|
+
toggleCheckbox,
|
|
128
|
+
checkedValues: checkedValues !== null && checkedValues !== void 0 ? checkedValues : {}
|
|
129
|
+
};
|
|
130
|
+
return state;
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Adds some sugar to fetching multiple context selector values
|
|
134
|
+
*/
|
|
135
|
+
|
|
136
|
+
const useMenuContextSelectors = () => {
|
|
137
|
+
const checkedValues = useMenuContext_unstable(context => context.checkedValues);
|
|
138
|
+
const onCheckedValueChange = useMenuContext_unstable(context => context.onCheckedValueChange);
|
|
139
|
+
const defaultCheckedValues = useMenuContext_unstable(context => context.defaultCheckedValues);
|
|
140
|
+
const triggerId = useMenuContext_unstable(context => context.triggerId);
|
|
141
|
+
const hasIcons = useMenuContext_unstable(context => context.hasIcons);
|
|
142
|
+
const hasCheckmarks = useMenuContext_unstable(context => context.hasCheckmarks);
|
|
143
|
+
return {
|
|
144
|
+
checkedValues,
|
|
145
|
+
onCheckedValueChange,
|
|
146
|
+
defaultCheckedValues,
|
|
147
|
+
triggerId,
|
|
148
|
+
hasIcons,
|
|
149
|
+
hasCheckmarks
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Helper function to detect if props and MenuContext values are both used
|
|
154
|
+
*/
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
const usingPropsAndMenuContext = (props, contextValue, hasMenuContext) => {
|
|
158
|
+
let isUsingPropsAndContext = false;
|
|
159
|
+
|
|
160
|
+
for (const val in contextValue) {
|
|
161
|
+
if (props[val]) {
|
|
162
|
+
isUsingPropsAndContext = true;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return hasMenuContext && isUsingPropsAndContext;
|
|
167
|
+
};
|
|
168
|
+
//# sourceMappingURL=useMenuList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuList/useMenuList.ts"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {\n useMergedRefs,\n useEventCallback,\n useControllableState,\n getNativeElementProps,\n} from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MenuContext } from '../../contexts/menuContext';\nimport type { MenuListProps, MenuListState, UninitializedMenuListState } from './MenuList.types';\n\n/**\n * Returns the props and state required to render the component\n */\nexport const useMenuList_unstable = (props: MenuListProps, ref: React.Ref<HTMLElement>): MenuListState => {\n const focusAttributes = useArrowNavigationGroup({ circular: true });\n const { findAllFocusable } = useFocusFinders();\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');\n }\n\n const innerRef = React.useRef<HTMLElement>(null);\n const initialState: UninitializedMenuListState = {\n components: {\n root: 'div',\n },\n root: getNativeElementProps('div', {\n ref: useMergedRefs(ref, innerRef),\n role: 'menu',\n 'aria-labelledby': menuContext.triggerId,\n ...focusAttributes,\n ...props,\n }),\n hasIcons: menuContext.hasIcons,\n hasCheckmarks: menuContext.hasCheckmarks,\n ...(hasMenuContext && menuContext),\n ...props,\n };\n\n const setFocusByFirstCharacter = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => {\n // TODO use some kind of children registration to reduce dependency on DOM roles\n const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];\n if (!innerRef.current) {\n return;\n }\n\n const menuItems = findAllFocusable(\n innerRef.current,\n (el: HTMLElement) => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')!) !== -1,\n );\n\n let startIndex = menuItems.indexOf(itemEl) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n\n const firstChars = menuItems.map(menuItem => menuItem.textContent?.charAt(0).toLowerCase());\n const char = e.key.toLowerCase();\n\n const getIndexFirstChars = (start: number, firstChar: string) => {\n for (let i = start; i < firstChars.length; i++) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n\n // Check remaining slots in the menu\n let index = getIndexFirstChars(startIndex, char);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = getIndexFirstChars(0, char);\n }\n\n // If match was found...\n if (index > -1) {\n menuItems[index].focus();\n }\n },\n [findAllFocusable],\n );\n\n const [checkedValues, setCheckedValues] = useControllableState({\n state: initialState.checkedValues,\n defaultState: initialState.defaultCheckedValues,\n initialState: {},\n });\n\n const { onCheckedValueChange } = initialState;\n const toggleCheckbox = useEventCallback(\n (e: React.MouseEvent | React.KeyboardEvent, name: string, value: string, checked: boolean) => {\n const checkedItems = checkedValues?.[name] || [];\n const newCheckedItems = [...checkedItems];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n\n onCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n },\n );\n\n const selectRadio = useEventCallback((e: React.MouseEvent | React.KeyboardEvent, name: string, value: string) => {\n const newCheckedItems = [value];\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n onCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n });\n\n const state = {\n ...initialState,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox,\n checkedValues: checkedValues ?? {},\n };\n\n return state;\n};\n\n/**\n * Adds some sugar to fetching multiple context selector values\n */\nconst useMenuContextSelectors = () => {\n const checkedValues = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable(context => context.onCheckedValueChange);\n const defaultCheckedValues = useMenuContext_unstable(context => context.defaultCheckedValues);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const hasIcons = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable(context => context.hasCheckmarks);\n\n return {\n checkedValues,\n onCheckedValueChange,\n defaultCheckedValues,\n triggerId,\n hasIcons,\n hasCheckmarks,\n };\n};\n\n/**\n * Helper function to detect if props and MenuContext values are both used\n */\nconst usingPropsAndMenuContext = (\n props: MenuListProps,\n contextValue: ReturnType<typeof useMenuContextSelectors>,\n hasMenuContext: boolean,\n) => {\n let isUsingPropsAndContext = false;\n for (const val in contextValue) {\n if (props[val as keyof Omit<typeof contextValue, 'hasMenuContext' | 'onCheckedValueChange' | 'triggerId'>]) {\n isUsingPropsAndContext = true;\n }\n }\n\n return hasMenuContext && isUsingPropsAndContext;\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function useMenuListContextValues_unstable(state) {
|
|
2
|
+
const {
|
|
3
|
+
onCheckedValueChange,
|
|
4
|
+
checkedValues,
|
|
5
|
+
toggleCheckbox,
|
|
6
|
+
selectRadio,
|
|
7
|
+
setFocusByFirstCharacter,
|
|
8
|
+
hasIcons,
|
|
9
|
+
hasCheckmarks
|
|
10
|
+
} = state; // This context is created with "@fluentui/react-context-selector", these is no sense to memoize it
|
|
11
|
+
|
|
12
|
+
const menuList = {
|
|
13
|
+
onCheckedValueChange,
|
|
14
|
+
checkedValues,
|
|
15
|
+
toggleCheckbox,
|
|
16
|
+
selectRadio,
|
|
17
|
+
setFocusByFirstCharacter,
|
|
18
|
+
hasIcons,
|
|
19
|
+
hasCheckmarks
|
|
20
|
+
};
|
|
21
|
+
return {
|
|
22
|
+
menuList
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=useMenuListContextValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuList/useMenuListContextValues.ts"],"names":[],"mappings":"AAEA,OAAM,SAAU,iCAAV,CAA4C,KAA5C,EAAgE;AACpE,QAAM;AACJ,IAAA,oBADI;AAEJ,IAAA,aAFI;AAGJ,IAAA,cAHI;AAIJ,IAAA,WAJI;AAKJ,IAAA,wBALI;AAMJ,IAAA,QANI;AAOJ,IAAA;AAPI,MAQF,KARJ,CADoE,CAWpE;;AACA,QAAM,QAAQ,GAAG;AACf,IAAA,oBADe;AAEf,IAAA,aAFe;AAGf,IAAA,cAHe;AAIf,IAAA,WAJe;AAKf,IAAA,wBALe;AAMf,IAAA,QANe;AAOf,IAAA;AAPe,GAAjB;AAUA,SAAO;AAAE,IAAA;AAAF,GAAP;AACD","sourcesContent":["import type { MenuListContextValues, MenuListState } from './MenuList.types';\n\nexport function useMenuListContextValues_unstable(state: MenuListState): MenuListContextValues {\n const {\n onCheckedValueChange,\n checkedValues,\n toggleCheckbox,\n selectRadio,\n setFocusByFirstCharacter,\n hasIcons,\n hasCheckmarks,\n } = state;\n\n // This context is created with \"@fluentui/react-context-selector\", these is no sense to memoize it\n const menuList = {\n onCheckedValueChange,\n checkedValues,\n toggleCheckbox,\n selectRadio,\n setFocusByFirstCharacter,\n hasIcons,\n hasCheckmarks,\n };\n\n return { menuList };\n}\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MenuListState } from './MenuList.types';
|
|
2
|
+
export declare const menuListClassName = "fui-MenuList";
|
|
3
|
+
/**
|
|
4
|
+
* Apply styling to the Menu slots based on the state
|
|
5
|
+
*/
|
|
6
|
+
export declare const useMenuListStyles_unstable: (state: MenuListState) => MenuListState;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { mergeClasses, __styles, shorthands } from '@griffel/react';
|
|
2
|
+
export const menuListClassName = 'fui-MenuList';
|
|
3
|
+
|
|
4
|
+
const useStyles = /*#__PURE__*/__styles({
|
|
5
|
+
"root": {
|
|
6
|
+
"mc9l5x": "f22iagw",
|
|
7
|
+
"Beiy3e4": "f1vx9l62",
|
|
8
|
+
"i8kkvl": "f16mnhsx",
|
|
9
|
+
"Belr9w4": "fbi42co"
|
|
10
|
+
}
|
|
11
|
+
}, {
|
|
12
|
+
"d": [".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}", ".f16mnhsx{-webkit-column-gap:2px;column-gap:2px;}", ".fbi42co{row-gap:2px;}"]
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* Apply styling to the Menu slots based on the state
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
export const useMenuListStyles_unstable = state => {
|
|
20
|
+
const styles = useStyles();
|
|
21
|
+
state.root.className = mergeClasses(menuListClassName, styles.root, state.root.className);
|
|
22
|
+
return state;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=useMenuListStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuList/useMenuListStyles.ts"],"names":[],"mappings":"AAAA,SAAS,YAAT,YAAmC,UAAnC,QAAqD,gBAArD;AAGA,OAAO,MAAM,iBAAiB,GAAG,cAA1B;;AAEP,MAAM,SAAS,gBAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlB;AAQA;;AAEG;;;AACH,OAAO,MAAM,0BAA0B,GAAI,KAAD,IAAwC;AAChF,QAAM,MAAM,GAAG,SAAS,EAAxB;AACA,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,YAAY,CAAC,iBAAD,EAAoB,MAAM,CAAC,IAA3B,EAAiC,KAAK,CAAC,IAAN,CAAW,SAA5C,CAAnC;AACA,SAAO,KAAP;AACD,CAJM","sourcesContent":["import { mergeClasses, makeStyles, shorthands } from '@griffel/react';\nimport type { MenuListState } from './MenuList.types';\n\nexport const menuListClassName = 'fui-MenuList';\n\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.gap('2px'),\n },\n});\n\n/**\n * Apply styling to the Menu slots based on the state\n */\nexport const useMenuListStyles_unstable = (state: MenuListState): MenuListState => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuListClassName, styles.root, state.root.className);\n return state;\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MenuPopoverProps } from './MenuPopover.types';
|
|
2
|
+
import type { ForwardRefComponent } from '@fluentui/react-utilities';
|
|
3
|
+
/**
|
|
4
|
+
* Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus
|
|
5
|
+
*/
|
|
6
|
+
export declare const MenuPopover: ForwardRefComponent<MenuPopoverProps>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useMenuPopover_unstable } from './useMenuPopover';
|
|
3
|
+
import { useMenuPopoverStyles_unstable } from './useMenuPopoverStyles';
|
|
4
|
+
import { renderMenuPopover_unstable } from './renderMenuPopover';
|
|
5
|
+
/**
|
|
6
|
+
* Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export const MenuPopover = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
10
|
+
const state = useMenuPopover_unstable(props, ref);
|
|
11
|
+
useMenuPopoverStyles_unstable(state);
|
|
12
|
+
return renderMenuPopover_unstable(state);
|
|
13
|
+
});
|
|
14
|
+
MenuPopover.displayName = 'MenuPopover';
|
|
15
|
+
//# sourceMappingURL=MenuPopover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,uBAAT,QAAwC,kBAAxC;AACA,SAAS,6BAAT,QAA8C,wBAA9C;AACA,SAAS,0BAAT,QAA2C,qBAA3C;AAIA;;AAEG;;AACH,OAAO,MAAM,WAAW,gBAA0C,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;AAChG,QAAM,KAAK,GAAG,uBAAuB,CAAC,KAAD,EAAQ,GAAR,CAArC;AAEA,EAAA,6BAA6B,CAAC,KAAD,CAA7B;AACA,SAAO,0BAA0B,CAAC,KAAD,CAAjC;AACD,CALiE,CAA3D;AAOP,WAAW,CAAC,WAAZ,GAA0B,aAA1B","sourcesContent":["import * as React from 'react';\nimport { useMenuPopover_unstable } from './useMenuPopover';\nimport { useMenuPopoverStyles_unstable } from './useMenuPopoverStyles';\nimport { renderMenuPopover_unstable } from './renderMenuPopover';\nimport type { MenuPopoverProps } from './MenuPopover.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\n\n/**\n * Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus\n */\nexport const MenuPopover: ForwardRefComponent<MenuPopoverProps> = React.forwardRef((props, ref) => {\n const state = useMenuPopover_unstable(props, ref);\n\n useMenuPopoverStyles_unstable(state);\n return renderMenuPopover_unstable(state);\n});\n\nMenuPopover.displayName = 'MenuPopover';\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';
|
|
2
|
+
export declare type MenuPopoverSlots = {
|
|
3
|
+
root: Slot<'div'>;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* MenuPopover Props
|
|
7
|
+
*/
|
|
8
|
+
export declare type MenuPopoverProps = ComponentProps<MenuPopoverSlots>;
|
|
9
|
+
/**
|
|
10
|
+
* State used in rendering MenuPopover
|
|
11
|
+
*/
|
|
12
|
+
export declare type MenuPopoverState = ComponentState<MenuPopoverSlots> & {
|
|
13
|
+
/**
|
|
14
|
+
* Root menus are rendered out of DOM order on `document.body`, use this to render the menu in DOM order
|
|
15
|
+
* This option is disregarded for submenus
|
|
16
|
+
*/
|
|
17
|
+
inline: boolean;
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuPopover.types.js","sourceRoot":"../src/","sources":["components/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\nexport type MenuPopoverSlots = {\n root: Slot<'div'>;\n};\n\n/**\n * MenuPopover Props\n */\nexport type MenuPopoverProps = ComponentProps<MenuPopoverSlots>;\n\n/**\n * State used in rendering MenuPopover\n */\nexport type MenuPopoverState = ComponentState<MenuPopoverSlots> & {\n /**\n * Root menus are rendered out of DOM order on `document.body`, use this to render the menu in DOM order\n * This option is disregarded for submenus\n */\n inline: boolean;\n};\n"]}
|