@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,4 @@
|
|
|
1
|
+
import type { MenuItemSelectableProps, MenuItemSelectableState } from '../../selectable/index';
|
|
2
|
+
import type { MenuItemProps, MenuItemState } from '../MenuItem/MenuItem.types';
|
|
3
|
+
export declare type MenuItemRadioProps = MenuItemProps & MenuItemSelectableProps;
|
|
4
|
+
export declare type MenuItemRadioState = MenuItemState & MenuItemSelectableState;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"../src/"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
const tslib_1 = /*#__PURE__*/require("tslib");
|
|
8
|
+
|
|
9
|
+
tslib_1.__exportStar(require("./MenuItemRadio.types"), exports);
|
|
10
|
+
|
|
11
|
+
tslib_1.__exportStar(require("./MenuItemRadio"), exports);
|
|
12
|
+
|
|
13
|
+
tslib_1.__exportStar(require("./renderMenuItemRadio"), exports);
|
|
14
|
+
|
|
15
|
+
tslib_1.__exportStar(require("./useMenuItemRadio"), exports);
|
|
16
|
+
|
|
17
|
+
tslib_1.__exportStar(require("./useMenuItemRadioStyles"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuItemRadio/index.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,uBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,uBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,oBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,0BAAA,CAAA,EAAA,OAAA","sourcesContent":["export * from './MenuItemRadio.types';\nexport * from './MenuItemRadio';\nexport * from './renderMenuItemRadio';\nexport * from './useMenuItemRadio';\nexport * from './useMenuItemRadioStyles';\n"],"sourceRoot":"../src/"}
|
|
@@ -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,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.renderMenuItemRadio_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
|
|
11
|
+
/**
|
|
12
|
+
* Redefine the render function to add slots. Reuse the menuitemradio structure but add
|
|
13
|
+
* slots to children.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
const renderMenuItemRadio_unstable = state => {
|
|
18
|
+
const {
|
|
19
|
+
slots,
|
|
20
|
+
slotProps
|
|
21
|
+
} = react_utilities_1.getSlots(state);
|
|
22
|
+
return React.createElement(slots.root, { ...slotProps.root
|
|
23
|
+
}, slots.checkmark && React.createElement(slots.checkmark, { ...slotProps.checkmark
|
|
24
|
+
}), slots.icon && React.createElement(slots.icon, { ...slotProps.icon
|
|
25
|
+
}), slots.content && React.createElement(slots.content, { ...slotProps.content
|
|
26
|
+
}), slots.secondaryContent && React.createElement(slots.secondaryContent, { ...slotProps.secondaryContent
|
|
27
|
+
}));
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
exports.renderMenuItemRadio_unstable = renderMenuItemRadio_unstable;
|
|
31
|
+
//# sourceMappingURL=renderMenuItemRadio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuItemRadio/renderMenuItemRadio.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;AAIA;;;AAGG;;;AACI,MAAM,4BAA4B,GAAI,KAAD,IAA8B;AACxE,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,iBAAA,CAAA,QAAA,CAAwB,KAAxB,CAA7B;AAEA,SACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,EACG,KAAK,CAAC,SAAN,IAAmB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,SAAP,EAAgB,EAAA,GAAK,SAAS,CAAC;AAAf,GAAhB,CADtB,EAEG,KAAK,CAAC,IAAN,IAAc,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,CAFjB,EAGG,KAAK,CAAC,OAAN,IAAiB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,OAAP,EAAc,EAAA,GAAK,SAAS,CAAC;AAAf,GAAd,CAHpB,EAIG,KAAK,CAAC,gBAAN,IAA0B,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,gBAAP,EAAuB,EAAA,GAAK,SAAS,CAAC;AAAf,GAAvB,CAJ7B,CADF;AAQD,CAXM;;AAAM,OAAA,CAAA,4BAAA,GAA4B,4BAA5B","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,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useMenuItemRadio_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
|
|
11
|
+
|
|
12
|
+
const react_icons_1 = /*#__PURE__*/require("@fluentui/react-icons");
|
|
13
|
+
|
|
14
|
+
const menuListContext_1 = /*#__PURE__*/require("../../contexts/menuListContext");
|
|
15
|
+
|
|
16
|
+
const useMenuItem_1 = /*#__PURE__*/require("../MenuItem/useMenuItem");
|
|
17
|
+
/**
|
|
18
|
+
* Given user props, returns state and render function for a MenuItemRadio.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
const useMenuItemRadio_unstable = (props, ref) => {
|
|
23
|
+
const radioProps = {
|
|
24
|
+
role: 'menuitemradio'
|
|
25
|
+
};
|
|
26
|
+
const state = useMenuItem_1.useMenuItem_unstable({ ...radioProps,
|
|
27
|
+
...props,
|
|
28
|
+
checkmark: react_utilities_1.resolveShorthand(props.checkmark, {
|
|
29
|
+
defaultProps: {
|
|
30
|
+
children: React.createElement(react_icons_1.Checkmark16Filled, null)
|
|
31
|
+
},
|
|
32
|
+
required: true
|
|
33
|
+
})
|
|
34
|
+
}, ref);
|
|
35
|
+
const selectRadio = menuListContext_1.useMenuListContext_unstable(context => context.selectRadio);
|
|
36
|
+
const {
|
|
37
|
+
onClick: onClickOriginal
|
|
38
|
+
} = state.root;
|
|
39
|
+
const checked = menuListContext_1.useMenuListContext_unstable(context => {
|
|
40
|
+
var _a;
|
|
41
|
+
|
|
42
|
+
const checkedItems = ((_a = context.checkedValues) === null || _a === void 0 ? void 0 : _a[state.name]) || [];
|
|
43
|
+
return checkedItems.indexOf(state.value) !== -1;
|
|
44
|
+
});
|
|
45
|
+
state.checked = checked;
|
|
46
|
+
state.root['aria-checked'] = state.checked; // MenuItem state already transforms keyDown to click events
|
|
47
|
+
|
|
48
|
+
state.root.onClick = e => {
|
|
49
|
+
if (state.disabled) {
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
e.stopPropagation();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
selectRadio === null || selectRadio === void 0 ? void 0 : selectRadio(e, state.name, state.value, state.checked);
|
|
56
|
+
onClickOriginal === null || onClickOriginal === void 0 ? void 0 : onClickOriginal(e);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
return state;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
exports.useMenuItemRadio_unstable = useMenuItemRadio_unstable;
|
|
63
|
+
//# sourceMappingURL=useMenuItemRadio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuItemRadio/useMenuItemRadio.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AACA,MAAA,aAAA,gBAAA,OAAA,CAAA,uBAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,gCAAA,CAAA;;AACA,MAAA,aAAA,gBAAA,OAAA,CAAA,yBAAA,CAAA;AAGA;;AAEG;;;AACI,MAAM,yBAAyB,GAAG,CACvC,KADuC,EAEvC,GAFuC,KAGjB;AACtB,QAAM,UAAU,GAAG;AACjB,IAAA,IAAI,EAAE;AADW,GAAnB;AAIA,QAAM,KAAK,GAAG,aAAA,CAAA,oBAAA,CACZ,EACE,GAAG,UADL;AAEE,OAAG,KAFL;AAGE,IAAA,SAAS,EAAE,iBAAA,CAAA,gBAAA,CAAiB,KAAK,CAAC,SAAvB,EAAkC;AAC3C,MAAA,YAAY,EAAE;AAAE,QAAA,QAAQ,EAAE,KAAA,CAAA,aAAA,CAAC,aAAA,CAAA,iBAAD,EAAkB,IAAlB;AAAZ,OAD6B;AAE3C,MAAA,QAAQ,EAAE;AAFiC,KAAlC;AAHb,GADY,EASZ,GATY,CAAd;AAYA,QAAM,WAAW,GAAG,iBAAA,CAAA,2BAAA,CAA4B,OAAO,IAAI,OAAO,CAAC,WAA/C,CAApB;AACA,QAAM;AAAE,IAAA,OAAO,EAAE;AAAX,MAA+B,KAAK,CAAC,IAA3C;AACA,QAAM,OAAO,GAAG,iBAAA,CAAA,2BAAA,CAA4B,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,GAHe,CAAhB;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;;AAAM,OAAA,CAAA,yBAAA,GAAyB,yBAAzB","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,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useMenuItemRadioStyles_unstable = exports.menuItemRadioClassName = void 0;
|
|
7
|
+
|
|
8
|
+
const react_1 = /*#__PURE__*/require("@griffel/react");
|
|
9
|
+
|
|
10
|
+
const index_1 = /*#__PURE__*/require("../../selectable/index");
|
|
11
|
+
|
|
12
|
+
const useMenuItemStyles_1 = /*#__PURE__*/require("../MenuItem/useMenuItemStyles");
|
|
13
|
+
|
|
14
|
+
exports.menuItemRadioClassName = 'fui-MenuItemRadio';
|
|
15
|
+
|
|
16
|
+
const useMenuItemRadioStyles_unstable = state => {
|
|
17
|
+
state.root.className = react_1.mergeClasses(exports.menuItemRadioClassName, state.root.className);
|
|
18
|
+
useMenuItemStyles_1.useMenuItemStyles_unstable(state);
|
|
19
|
+
index_1.useCheckmarkStyles_unstable(state);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
exports.useMenuItemRadioStyles_unstable = useMenuItemRadioStyles_unstable;
|
|
23
|
+
//# sourceMappingURL=useMenuItemRadioStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuItemRadio/useMenuItemRadioStyles.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,OAAA,gBAAA,OAAA,CAAA,gBAAA,CAAA;;AACA,MAAA,OAAA,gBAAA,OAAA,CAAA,wBAAA,CAAA;;AACA,MAAA,mBAAA,gBAAA,OAAA,CAAA,+BAAA,CAAA;;AAGa,OAAA,CAAA,sBAAA,GAAyB,mBAAzB;;AAEN,MAAM,+BAA+B,GAAI,KAAD,IAA8B;AAC3E,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,OAAA,CAAA,YAAA,CAAa,OAAA,CAAA,sBAAb,EAAqC,KAAK,CAAC,IAAN,CAAW,SAAhD,CAAvB;AAEA,EAAA,mBAAA,CAAA,0BAAA,CAA2B,KAA3B;AACA,EAAA,OAAA,CAAA,2BAAA,CAA4B,KAA5B;AACD,CALM;;AAAM,OAAA,CAAA,+BAAA,GAA+B,+BAA/B","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,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MenuList = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const useMenuList_1 = /*#__PURE__*/require("./useMenuList");
|
|
11
|
+
|
|
12
|
+
const renderMenuList_1 = /*#__PURE__*/require("./renderMenuList");
|
|
13
|
+
|
|
14
|
+
const useMenuListContextValues_1 = /*#__PURE__*/require("./useMenuListContextValues");
|
|
15
|
+
|
|
16
|
+
const useMenuListStyles_1 = /*#__PURE__*/require("./useMenuListStyles");
|
|
17
|
+
/**
|
|
18
|
+
* Define a styled MenuList, using the `useMenuList_unstable` hook.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
exports.MenuList = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
23
|
+
const state = useMenuList_1.useMenuList_unstable(props, ref);
|
|
24
|
+
const contextValues = useMenuListContextValues_1.useMenuListContextValues_unstable(state);
|
|
25
|
+
useMenuListStyles_1.useMenuListStyles_unstable(state);
|
|
26
|
+
return renderMenuList_1.renderMenuList_unstable(state, contextValues);
|
|
27
|
+
});
|
|
28
|
+
exports.MenuList.displayName = 'MenuList';
|
|
29
|
+
//# sourceMappingURL=MenuList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuList/MenuList.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,aAAA,gBAAA,OAAA,CAAA,eAAA,CAAA;;AACA,MAAA,gBAAA,gBAAA,OAAA,CAAA,kBAAA,CAAA;;AACA,MAAA,0BAAA,gBAAA,OAAA,CAAA,4BAAA,CAAA;;AACA,MAAA,mBAAA,gBAAA,OAAA,CAAA,qBAAA,CAAA;AAIA;;AAEG;;;AACU,OAAA,CAAA,QAAA,gBAA+C,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;AAC1F,QAAM,KAAK,GAAG,aAAA,CAAA,oBAAA,CAAqB,KAArB,EAA4B,GAA5B,CAAd;AACA,QAAM,aAAa,GAAG,0BAAA,CAAA,iCAAA,CAAkC,KAAlC,CAAtB;AACA,EAAA,mBAAA,CAAA,0BAAA,CAA2B,KAA3B;AAEA,SAAO,gBAAA,CAAA,uBAAA,CAAwB,KAAxB,EAA+B,aAA/B,CAAP;AACD,CAN2D,CAA/C;AAQb,OAAA,CAAA,QAAA,CAAS,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,"sources":[],"names":[],"mappings":"","sourceRoot":"../src/"}
|
|
@@ -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,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
const tslib_1 = /*#__PURE__*/require("tslib");
|
|
8
|
+
|
|
9
|
+
tslib_1.__exportStar(require("./MenuList"), exports);
|
|
10
|
+
|
|
11
|
+
tslib_1.__exportStar(require("./renderMenuList"), exports);
|
|
12
|
+
|
|
13
|
+
tslib_1.__exportStar(require("./useMenuList"), exports);
|
|
14
|
+
|
|
15
|
+
tslib_1.__exportStar(require("./useMenuListStyles"), exports);
|
|
16
|
+
|
|
17
|
+
tslib_1.__exportStar(require("./useMenuListContextValues"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuList/index.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,YAAA,CAAA,EAAA,OAAA;;AAWA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,kBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,eAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,qBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,4BAAA,CAAA,EAAA,OAAA","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"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.renderMenuList_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
|
|
11
|
+
|
|
12
|
+
const menuListContext_1 = /*#__PURE__*/require("../../contexts/menuListContext");
|
|
13
|
+
/**
|
|
14
|
+
* Function that renders the final JSX of the component
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
const renderMenuList_unstable = (state, contextValues) => {
|
|
19
|
+
const {
|
|
20
|
+
slots,
|
|
21
|
+
slotProps
|
|
22
|
+
} = react_utilities_1.getSlots(state);
|
|
23
|
+
return React.createElement(menuListContext_1.MenuListProvider, {
|
|
24
|
+
value: contextValues.menuList
|
|
25
|
+
}, React.createElement(slots.root, { ...slotProps.root
|
|
26
|
+
}));
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.renderMenuList_unstable = renderMenuList_unstable;
|
|
30
|
+
//# sourceMappingURL=renderMenuList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/MenuList/renderMenuList.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AAEA,MAAA,iBAAA,gBAAA,OAAA,CAAA,gCAAA,CAAA;AAEA;;AAEG;;;AACI,MAAM,uBAAuB,GAAG,CAAC,KAAD,EAAuB,aAAvB,KAA+D;AACpG,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,iBAAA,CAAA,QAAA,CAAwB,KAAxB,CAA7B;AAEA,SACE,KAAA,CAAA,aAAA,CAAC,iBAAA,CAAA,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;;AAAM,OAAA,CAAA,uBAAA,GAAuB,uBAAvB","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,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useMenuList_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
|
|
11
|
+
|
|
12
|
+
const react_tabster_1 = /*#__PURE__*/require("@fluentui/react-tabster");
|
|
13
|
+
|
|
14
|
+
const react_context_selector_1 = /*#__PURE__*/require("@fluentui/react-context-selector");
|
|
15
|
+
|
|
16
|
+
const menuContext_1 = /*#__PURE__*/require("../../contexts/menuContext");
|
|
17
|
+
|
|
18
|
+
const menuContext_2 = /*#__PURE__*/require("../../contexts/menuContext");
|
|
19
|
+
/**
|
|
20
|
+
* Returns the props and state required to render the component
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
const useMenuList_unstable = (props, ref) => {
|
|
25
|
+
const focusAttributes = react_tabster_1.useArrowNavigationGroup({
|
|
26
|
+
circular: true
|
|
27
|
+
});
|
|
28
|
+
const {
|
|
29
|
+
findAllFocusable
|
|
30
|
+
} = react_tabster_1.useFocusFinders();
|
|
31
|
+
const menuContext = useMenuContextSelectors();
|
|
32
|
+
const hasMenuContext = react_context_selector_1.useHasParentContext(menuContext_2.MenuContext);
|
|
33
|
+
|
|
34
|
+
if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {
|
|
35
|
+
// TODO throw warnings in development safely
|
|
36
|
+
// eslint-disable-next-line no-console
|
|
37
|
+
console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const innerRef = React.useRef(null);
|
|
41
|
+
const initialState = {
|
|
42
|
+
components: {
|
|
43
|
+
root: 'div'
|
|
44
|
+
},
|
|
45
|
+
root: react_utilities_1.getNativeElementProps('div', {
|
|
46
|
+
ref: react_utilities_1.useMergedRefs(ref, innerRef),
|
|
47
|
+
role: 'menu',
|
|
48
|
+
'aria-labelledby': menuContext.triggerId,
|
|
49
|
+
...focusAttributes,
|
|
50
|
+
...props
|
|
51
|
+
}),
|
|
52
|
+
hasIcons: menuContext.hasIcons,
|
|
53
|
+
hasCheckmarks: menuContext.hasCheckmarks,
|
|
54
|
+
...(hasMenuContext && menuContext),
|
|
55
|
+
...props
|
|
56
|
+
};
|
|
57
|
+
const setFocusByFirstCharacter = React.useCallback((e, itemEl) => {
|
|
58
|
+
// TODO use some kind of children registration to reduce dependency on DOM roles
|
|
59
|
+
const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];
|
|
60
|
+
|
|
61
|
+
if (!innerRef.current) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const menuItems = findAllFocusable(innerRef.current, el => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')) !== -1);
|
|
66
|
+
let startIndex = menuItems.indexOf(itemEl) + 1;
|
|
67
|
+
|
|
68
|
+
if (startIndex === menuItems.length) {
|
|
69
|
+
startIndex = 0;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const firstChars = menuItems.map(menuItem => {
|
|
73
|
+
var _a;
|
|
74
|
+
|
|
75
|
+
return (_a = menuItem.textContent) === null || _a === void 0 ? void 0 : _a.charAt(0).toLowerCase();
|
|
76
|
+
});
|
|
77
|
+
const char = e.key.toLowerCase();
|
|
78
|
+
|
|
79
|
+
const getIndexFirstChars = (start, firstChar) => {
|
|
80
|
+
for (let i = start; i < firstChars.length; i++) {
|
|
81
|
+
if (char === firstChars[i]) {
|
|
82
|
+
return i;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return -1;
|
|
87
|
+
}; // Check remaining slots in the menu
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
let index = getIndexFirstChars(startIndex, char); // If not found in remaining slots, check from beginning
|
|
91
|
+
|
|
92
|
+
if (index === -1) {
|
|
93
|
+
index = getIndexFirstChars(0, char);
|
|
94
|
+
} // If match was found...
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
if (index > -1) {
|
|
98
|
+
menuItems[index].focus();
|
|
99
|
+
}
|
|
100
|
+
}, [findAllFocusable]);
|
|
101
|
+
const [checkedValues, setCheckedValues] = react_utilities_1.useControllableState({
|
|
102
|
+
state: initialState.checkedValues,
|
|
103
|
+
defaultState: initialState.defaultCheckedValues,
|
|
104
|
+
initialState: {}
|
|
105
|
+
});
|
|
106
|
+
const {
|
|
107
|
+
onCheckedValueChange
|
|
108
|
+
} = initialState;
|
|
109
|
+
const toggleCheckbox = react_utilities_1.useEventCallback((e, name, value, checked) => {
|
|
110
|
+
const checkedItems = (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues[name]) || [];
|
|
111
|
+
const newCheckedItems = [...checkedItems];
|
|
112
|
+
|
|
113
|
+
if (checked) {
|
|
114
|
+
newCheckedItems.splice(newCheckedItems.indexOf(value), 1);
|
|
115
|
+
} else {
|
|
116
|
+
newCheckedItems.push(value);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
onCheckedValueChange === null || onCheckedValueChange === void 0 ? void 0 : onCheckedValueChange(e, {
|
|
120
|
+
name,
|
|
121
|
+
checkedItems: newCheckedItems
|
|
122
|
+
});
|
|
123
|
+
setCheckedValues(s => ({ ...s,
|
|
124
|
+
[name]: newCheckedItems
|
|
125
|
+
}));
|
|
126
|
+
});
|
|
127
|
+
const selectRadio = react_utilities_1.useEventCallback((e, name, value) => {
|
|
128
|
+
const newCheckedItems = [value];
|
|
129
|
+
setCheckedValues(s => ({ ...s,
|
|
130
|
+
[name]: newCheckedItems
|
|
131
|
+
}));
|
|
132
|
+
onCheckedValueChange === null || onCheckedValueChange === void 0 ? void 0 : onCheckedValueChange(e, {
|
|
133
|
+
name,
|
|
134
|
+
checkedItems: newCheckedItems
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
const state = { ...initialState,
|
|
138
|
+
setFocusByFirstCharacter,
|
|
139
|
+
selectRadio,
|
|
140
|
+
toggleCheckbox,
|
|
141
|
+
checkedValues: checkedValues !== null && checkedValues !== void 0 ? checkedValues : {}
|
|
142
|
+
};
|
|
143
|
+
return state;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
exports.useMenuList_unstable = useMenuList_unstable;
|
|
147
|
+
/**
|
|
148
|
+
* Adds some sugar to fetching multiple context selector values
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
const useMenuContextSelectors = () => {
|
|
152
|
+
const checkedValues = menuContext_1.useMenuContext_unstable(context => context.checkedValues);
|
|
153
|
+
const onCheckedValueChange = menuContext_1.useMenuContext_unstable(context => context.onCheckedValueChange);
|
|
154
|
+
const defaultCheckedValues = menuContext_1.useMenuContext_unstable(context => context.defaultCheckedValues);
|
|
155
|
+
const triggerId = menuContext_1.useMenuContext_unstable(context => context.triggerId);
|
|
156
|
+
const hasIcons = menuContext_1.useMenuContext_unstable(context => context.hasIcons);
|
|
157
|
+
const hasCheckmarks = menuContext_1.useMenuContext_unstable(context => context.hasCheckmarks);
|
|
158
|
+
return {
|
|
159
|
+
checkedValues,
|
|
160
|
+
onCheckedValueChange,
|
|
161
|
+
defaultCheckedValues,
|
|
162
|
+
triggerId,
|
|
163
|
+
hasIcons,
|
|
164
|
+
hasCheckmarks
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Helper function to detect if props and MenuContext values are both used
|
|
169
|
+
*/
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
const usingPropsAndMenuContext = (props, contextValue, hasMenuContext) => {
|
|
173
|
+
let isUsingPropsAndContext = false;
|
|
174
|
+
|
|
175
|
+
for (const val in contextValue) {
|
|
176
|
+
if (props[val]) {
|
|
177
|
+
isUsingPropsAndContext = true;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return hasMenuContext && isUsingPropsAndContext;
|
|
182
|
+
};
|
|
183
|
+
//# 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/"}
|