@fluentui/react-menu 0.0.0-nightly-20230316-0427.1 → 0.0.0-nightly-20230317-1454.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/.swcrc +39 -0
- package/CHANGELOG.json +68 -23
- package/CHANGELOG.md +28 -14
- package/lib/Menu.js +1 -1
- package/lib/Menu.js.map +1 -1
- package/lib/MenuDivider.js +1 -1
- package/lib/MenuDivider.js.map +1 -1
- package/lib/MenuGroup.js +1 -1
- package/lib/MenuGroup.js.map +1 -1
- package/lib/MenuGroupHeader.js +1 -1
- package/lib/MenuGroupHeader.js.map +1 -1
- package/lib/MenuItem.js +1 -1
- package/lib/MenuItem.js.map +1 -1
- package/lib/MenuItemCheckbox.js +1 -1
- package/lib/MenuItemCheckbox.js.map +1 -1
- package/lib/MenuItemRadio.js +1 -1
- package/lib/MenuItemRadio.js.map +1 -1
- package/lib/MenuList.js +1 -1
- package/lib/MenuList.js.map +1 -1
- package/lib/MenuPopover.js +1 -1
- package/lib/MenuPopover.js.map +1 -1
- package/lib/MenuSplitGroup.js +1 -1
- package/lib/MenuSplitGroup.js.map +1 -1
- package/lib/MenuTrigger.js +1 -1
- package/lib/MenuTrigger.js.map +1 -1
- package/lib/components/Menu/Menu.js +5 -4
- package/lib/components/Menu/Menu.js.map +1 -1
- package/lib/components/Menu/Menu.types.js +1 -1
- package/lib/components/Menu/Menu.types.js.map +1 -1
- package/lib/components/Menu/index.js +5 -5
- package/lib/components/Menu/index.js.map +1 -1
- package/lib/components/Menu/renderMenu.js +2 -2
- package/lib/components/Menu/renderMenu.js.map +1 -1
- package/lib/components/Menu/useMenu.js +28 -34
- package/lib/components/Menu/useMenu.js.map +1 -1
- package/lib/components/Menu/useMenuContextValues.js.map +1 -1
- package/lib/components/MenuDivider/MenuDivider.js +6 -6
- package/lib/components/MenuDivider/MenuDivider.js.map +1 -1
- package/lib/components/MenuDivider/MenuDivider.types.js.map +1 -1
- package/lib/components/MenuDivider/index.js +5 -5
- package/lib/components/MenuDivider/index.js.map +1 -1
- package/lib/components/MenuDivider/renderMenuDivider.js +3 -5
- package/lib/components/MenuDivider/renderMenuDivider.js.map +1 -1
- package/lib/components/MenuDivider/useMenuDivider.js +6 -5
- package/lib/components/MenuDivider/useMenuDivider.js.map +1 -1
- package/lib/components/MenuDivider/useMenuDividerStyles.js +3 -3
- package/lib/components/MenuDivider/useMenuDividerStyles.js.map +1 -1
- package/lib/components/MenuGroup/MenuGroup.js +7 -7
- package/lib/components/MenuGroup/MenuGroup.js.map +1 -1
- package/lib/components/MenuGroup/MenuGroup.types.js.map +1 -1
- package/lib/components/MenuGroup/index.js +6 -6
- package/lib/components/MenuGroup/index.js.map +1 -1
- package/lib/components/MenuGroup/renderMenuGroup.js +4 -6
- package/lib/components/MenuGroup/renderMenuGroup.js.map +1 -1
- package/lib/components/MenuGroup/useMenuGroup.js +7 -6
- package/lib/components/MenuGroup/useMenuGroup.js.map +1 -1
- package/lib/components/MenuGroup/useMenuGroupContextValues.js +1 -1
- package/lib/components/MenuGroup/useMenuGroupContextValues.js.map +1 -1
- package/lib/components/MenuGroup/useMenuGroupStyles.js +2 -2
- package/lib/components/MenuGroup/useMenuGroupStyles.js.map +1 -1
- package/lib/components/MenuGroupHeader/MenuGroupHeader.js +6 -6
- package/lib/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
- package/lib/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -1
- package/lib/components/MenuGroupHeader/index.js +5 -5
- package/lib/components/MenuGroupHeader/index.js.map +1 -1
- package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js +3 -5
- package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
- package/lib/components/MenuGroupHeader/useMenuGroupHeader.js +5 -4
- package/lib/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
- package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +3 -3
- package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -1
- package/lib/components/MenuItem/MenuItem.js +6 -6
- package/lib/components/MenuItem/MenuItem.js.map +1 -1
- package/lib/components/MenuItem/MenuItem.types.js.map +1 -1
- package/lib/components/MenuItem/index.js +5 -5
- package/lib/components/MenuItem/index.js.map +1 -1
- package/lib/components/MenuItem/renderMenuItem.js +3 -15
- package/lib/components/MenuItem/renderMenuItem.js.map +1 -1
- package/lib/components/MenuItem/useCharacterSearch.js +5 -5
- package/lib/components/MenuItem/useCharacterSearch.js.map +1 -1
- package/lib/components/MenuItem/useMenuItem.js +24 -27
- package/lib/components/MenuItem/useMenuItem.js.map +1 -1
- package/lib/components/MenuItem/useMenuItemStyles.js +11 -11
- package/lib/components/MenuItem/useMenuItemStyles.js.map +1 -1
- package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js +6 -6
- package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
- package/lib/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -1
- package/lib/components/MenuItemCheckbox/index.js +5 -5
- package/lib/components/MenuItemCheckbox/index.js.map +1 -1
- package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js +3 -13
- package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
- package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js +10 -12
- package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +8 -8
- package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -1
- package/lib/components/MenuItemRadio/MenuItemRadio.js +6 -6
- package/lib/components/MenuItemRadio/MenuItemRadio.js.map +1 -1
- package/lib/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -1
- package/lib/components/MenuItemRadio/index.js +5 -5
- package/lib/components/MenuItemRadio/index.js.map +1 -1
- package/lib/components/MenuItemRadio/renderMenuItemRadio.js +3 -13
- package/lib/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
- package/lib/components/MenuItemRadio/useMenuItemRadio.js +10 -12
- package/lib/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
- package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js +8 -8
- package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -1
- package/lib/components/MenuList/MenuList.js +7 -7
- package/lib/components/MenuList/MenuList.js.map +1 -1
- package/lib/components/MenuList/MenuList.types.js +1 -1
- package/lib/components/MenuList/MenuList.types.js.map +1 -1
- package/lib/components/MenuList/index.js +6 -6
- package/lib/components/MenuList/index.js.map +1 -1
- package/lib/components/MenuList/renderMenuList.js +4 -6
- package/lib/components/MenuList/renderMenuList.js.map +1 -1
- package/lib/components/MenuList/useMenuList.js +19 -23
- package/lib/components/MenuList/useMenuList.js.map +1 -1
- package/lib/components/MenuList/useMenuListContextValues.js.map +1 -1
- package/lib/components/MenuList/useMenuListStyles.js +2 -2
- package/lib/components/MenuList/useMenuListStyles.js.map +1 -1
- package/lib/components/MenuPopover/MenuPopover.js +6 -6
- package/lib/components/MenuPopover/MenuPopover.js.map +1 -1
- package/lib/components/MenuPopover/MenuPopover.types.js.map +1 -1
- package/lib/components/MenuPopover/index.js +5 -5
- package/lib/components/MenuPopover/index.js.map +1 -1
- package/lib/components/MenuPopover/renderMenuPopover.js +5 -9
- package/lib/components/MenuPopover/renderMenuPopover.js.map +1 -1
- package/lib/components/MenuPopover/useMenuPopover.js +19 -21
- package/lib/components/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib/components/MenuPopover/useMenuPopoverStyles.js +3 -3
- package/lib/components/MenuPopover/useMenuPopoverStyles.js.map +1 -1
- package/lib/components/MenuSplitGroup/MenuSplitGroup.js +6 -6
- package/lib/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
- package/lib/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -1
- package/lib/components/MenuSplitGroup/index.js +5 -5
- package/lib/components/MenuSplitGroup/index.js.map +1 -1
- package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js +3 -5
- package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
- package/lib/components/MenuSplitGroup/useMenuSplitGroup.js +12 -13
- package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
- package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js +4 -4
- package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -1
- package/lib/components/MenuTrigger/MenuTrigger.js +4 -3
- package/lib/components/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib/components/MenuTrigger/MenuTrigger.types.js +1 -1
- package/lib/components/MenuTrigger/MenuTrigger.types.js.map +1 -1
- package/lib/components/MenuTrigger/index.js +4 -4
- package/lib/components/MenuTrigger/index.js.map +1 -1
- package/lib/components/MenuTrigger/renderMenuTrigger.js +2 -2
- package/lib/components/MenuTrigger/renderMenuTrigger.js.map +1 -1
- package/lib/components/MenuTrigger/useMenuTrigger.js +29 -29
- package/lib/components/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib/components/index.js +2 -2
- package/lib/components/index.js.map +1 -1
- package/lib/contexts/menuContext.js +3 -2
- package/lib/contexts/menuContext.js.map +1 -1
- package/lib/contexts/menuGroupContext.js +3 -6
- package/lib/contexts/menuGroupContext.js.map +1 -1
- package/lib/contexts/menuListContext.js +2 -1
- package/lib/contexts/menuListContext.js.map +1 -1
- package/lib/contexts/menuTriggerContext.js +2 -5
- package/lib/contexts/menuTriggerContext.js.map +1 -1
- package/lib/index.js +16 -16
- package/lib/index.js.map +1 -1
- package/lib/selectable/index.js +2 -2
- package/lib/selectable/index.js.map +1 -1
- package/lib/selectable/types.js +1 -1
- package/lib/selectable/types.js.map +1 -1
- package/lib/selectable/useCheckmarkStyles.js +1 -1
- package/lib/selectable/useCheckmarkStyles.js.map +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/useIsSubmenu.js +3 -3
- package/lib/utils/useIsSubmenu.js.map +1 -1
- package/lib/utils/useOnMenuEnter.js +5 -6
- package/lib/utils/useOnMenuEnter.js.map +1 -1
- package/lib-commonjs/Menu.js +5 -4
- package/lib-commonjs/Menu.js.map +1 -1
- package/lib-commonjs/MenuDivider.js +5 -4
- package/lib-commonjs/MenuDivider.js.map +1 -1
- package/lib-commonjs/MenuGroup.js +5 -4
- package/lib-commonjs/MenuGroup.js.map +1 -1
- package/lib-commonjs/MenuGroupHeader.js +5 -4
- package/lib-commonjs/MenuGroupHeader.js.map +1 -1
- package/lib-commonjs/MenuItem.js +5 -4
- package/lib-commonjs/MenuItem.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox.js +5 -4
- package/lib-commonjs/MenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/MenuItemRadio.js +5 -4
- package/lib-commonjs/MenuItemRadio.js.map +1 -1
- package/lib-commonjs/MenuList.js +5 -4
- package/lib-commonjs/MenuList.js.map +1 -1
- package/lib-commonjs/MenuPopover.js +5 -4
- package/lib-commonjs/MenuPopover.js.map +1 -1
- package/lib-commonjs/MenuSplitGroup.js +5 -4
- package/lib-commonjs/MenuSplitGroup.js.map +1 -1
- package/lib-commonjs/MenuTrigger.js +5 -4
- package/lib-commonjs/MenuTrigger.js.map +1 -1
- package/lib-commonjs/components/Menu/Menu.js +16 -15
- package/lib-commonjs/components/Menu/Menu.js.map +1 -1
- package/lib-commonjs/components/Menu/Menu.types.js +5 -2
- package/lib-commonjs/components/Menu/Menu.types.js.map +1 -1
- package/lib-commonjs/components/Menu/index.js +9 -8
- package/lib-commonjs/components/Menu/index.js.map +1 -1
- package/lib-commonjs/components/Menu/renderMenu.js +14 -14
- package/lib-commonjs/components/Menu/renderMenu.js.map +1 -1
- package/lib-commonjs/components/Menu/useMenu.js +252 -256
- package/lib-commonjs/components/Menu/useMenu.js.map +1 -1
- package/lib-commonjs/components/Menu/useMenuContextValues.js +29 -43
- package/lib-commonjs/components/Menu/useMenuContextValues.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/MenuDivider.js +19 -20
- package/lib-commonjs/components/MenuDivider/MenuDivider.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/MenuDivider.types.js +3 -2
- package/lib-commonjs/components/MenuDivider/MenuDivider.types.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/index.js +9 -8
- package/lib-commonjs/components/MenuDivider/index.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/renderMenuDivider.js +13 -19
- package/lib-commonjs/components/MenuDivider/renderMenuDivider.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/useMenuDivider.js +22 -21
- package/lib-commonjs/components/MenuDivider/useMenuDivider.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js +47 -25
- package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/MenuGroup.js +21 -22
- package/lib-commonjs/components/MenuGroup/MenuGroup.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/MenuGroup.types.js +3 -2
- package/lib-commonjs/components/MenuGroup/MenuGroup.types.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/index.js +10 -9
- package/lib-commonjs/components/MenuGroup/index.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/renderMenuGroup.js +16 -22
- package/lib-commonjs/components/MenuGroup/renderMenuGroup.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/useMenuGroup.js +23 -22
- package/lib-commonjs/components/MenuGroup/useMenuGroup.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js +18 -15
- package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js +19 -11
- package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js +19 -20
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.js +3 -2
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/index.js +9 -8
- package/lib-commonjs/components/MenuGroupHeader/index.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js +13 -19
- package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js +22 -23
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +47 -25
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -1
- package/lib-commonjs/components/MenuItem/MenuItem.js +19 -20
- package/lib-commonjs/components/MenuItem/MenuItem.js.map +1 -1
- package/lib-commonjs/components/MenuItem/MenuItem.types.js +3 -2
- package/lib-commonjs/components/MenuItem/MenuItem.types.js.map +1 -1
- package/lib-commonjs/components/MenuItem/index.js +9 -8
- package/lib-commonjs/components/MenuItem/index.js.map +1 -1
- package/lib-commonjs/components/MenuItem/renderMenuItem.js +13 -28
- package/lib-commonjs/components/MenuItem/renderMenuItem.js.map +1 -1
- package/lib-commonjs/components/MenuItem/useCharacterSearch.js +23 -22
- package/lib-commonjs/components/MenuItem/useCharacterSearch.js.map +1 -1
- package/lib-commonjs/components/MenuItem/useMenuItem.js +94 -104
- package/lib-commonjs/components/MenuItem/useMenuItem.js.map +1 -1
- package/lib-commonjs/components/MenuItem/useMenuItemStyles.js +288 -137
- package/lib-commonjs/components/MenuItem/useMenuItemStyles.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js +19 -20
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.js +3 -2
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/index.js +9 -8
- package/lib-commonjs/components/MenuItemCheckbox/index.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js +13 -24
- package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js +42 -45
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +38 -30
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js +19 -20
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.js +3 -2
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/index.js +9 -8
- package/lib-commonjs/components/MenuItemRadio/index.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js +13 -27
- package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js +40 -45
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js +38 -30
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -1
- package/lib-commonjs/components/MenuList/MenuList.js +21 -22
- package/lib-commonjs/components/MenuList/MenuList.js.map +1 -1
- package/lib-commonjs/components/MenuList/MenuList.types.js +5 -2
- package/lib-commonjs/components/MenuList/MenuList.types.js.map +1 -1
- package/lib-commonjs/components/MenuList/index.js +10 -9
- package/lib-commonjs/components/MenuList/index.js.map +1 -1
- package/lib-commonjs/components/MenuList/renderMenuList.js +16 -21
- package/lib-commonjs/components/MenuList/renderMenuList.js.map +1 -1
- package/lib-commonjs/components/MenuList/useMenuList.js +138 -137
- package/lib-commonjs/components/MenuList/useMenuList.js.map +1 -1
- package/lib-commonjs/components/MenuList/useMenuListContextValues.js +20 -25
- package/lib-commonjs/components/MenuList/useMenuListContextValues.js.map +1 -1
- package/lib-commonjs/components/MenuList/useMenuListStyles.js +33 -23
- package/lib-commonjs/components/MenuList/useMenuListStyles.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/MenuPopover.js +19 -20
- package/lib-commonjs/components/MenuPopover/MenuPopover.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/MenuPopover.types.js +3 -2
- package/lib-commonjs/components/MenuPopover/MenuPopover.types.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/index.js +9 -8
- package/lib-commonjs/components/MenuPopover/index.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/renderMenuPopover.js +19 -26
- package/lib-commonjs/components/MenuPopover/renderMenuPopover.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/useMenuPopover.js +100 -110
- package/lib-commonjs/components/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js +121 -50
- package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js +19 -20
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js +3 -2
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/index.js +9 -8
- package/lib-commonjs/components/MenuSplitGroup/index.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js +13 -18
- package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js +57 -64
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js +61 -32
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.js +15 -15
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js +5 -2
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/index.js +8 -7
- package/lib-commonjs/components/MenuTrigger/index.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js +14 -16
- package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js +163 -170
- package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib-commonjs/components/index.js +6 -5
- package/lib-commonjs/components/index.js.map +1 -1
- package/lib-commonjs/contexts/menuContext.js +38 -27
- package/lib-commonjs/contexts/menuContext.js.map +1 -1
- package/lib-commonjs/contexts/menuGroupContext.js +18 -12
- package/lib-commonjs/contexts/menuGroupContext.js.map +1 -1
- package/lib-commonjs/contexts/menuListContext.js +25 -14
- package/lib-commonjs/contexts/menuListContext.js.map +1 -1
- package/lib-commonjs/contexts/menuTriggerContext.js +17 -12
- package/lib-commonjs/contexts/menuTriggerContext.js.map +1 -1
- package/lib-commonjs/index.js +91 -399
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/selectable/index.js +6 -5
- package/lib-commonjs/selectable/index.js.map +1 -1
- package/lib-commonjs/selectable/types.js +5 -2
- package/lib-commonjs/selectable/types.js.map +1 -1
- package/lib-commonjs/selectable/useCheckmarkStyles.js +28 -26
- package/lib-commonjs/selectable/useCheckmarkStyles.js.map +1 -1
- package/lib-commonjs/utils/index.js +5 -4
- package/lib-commonjs/utils/index.js.map +1 -1
- package/lib-commonjs/utils/useIsSubmenu.js +13 -19
- package/lib-commonjs/utils/useIsSubmenu.js.map +1 -1
- package/lib-commonjs/utils/useOnMenuEnter.js +56 -68
- package/lib-commonjs/utils/useOnMenuEnter.js.map +1 -1
- package/package.json +13 -13
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
import { getNativeElementProps, getRTLSafeKey, useMergedRefs } from
|
|
3
|
-
import { useFocusFinders } from
|
|
4
|
-
import { useFluent_unstable as useFluent } from
|
|
5
|
-
import { ArrowRight, ArrowLeft } from
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { getNativeElementProps, getRTLSafeKey, useMergedRefs } from "@fluentui/react-utilities";
|
|
3
|
+
import { useFocusFinders } from "@fluentui/react-tabster";
|
|
4
|
+
import { useFluent_unstable as useFluent } from "@fluentui/react-shared-contexts";
|
|
5
|
+
import { ArrowRight, ArrowLeft } from "@fluentui/keyboard-keys";
|
|
6
6
|
/**
|
|
7
7
|
* Create the state required to render MenuSplitGroup.
|
|
8
8
|
*
|
|
@@ -25,33 +25,32 @@ export const useMenuSplitGroup_unstable = (props, ref) => {
|
|
|
25
25
|
findPrevFocusable
|
|
26
26
|
} = useFocusFinders();
|
|
27
27
|
const onKeyDown = React.useCallback(e => {
|
|
28
|
-
|
|
29
|
-
const activeElement = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement;
|
|
28
|
+
const activeElement = targetDocument?.activeElement;
|
|
30
29
|
if (!activeElement) {
|
|
31
30
|
return;
|
|
32
31
|
}
|
|
33
|
-
if (!
|
|
32
|
+
if (!innerRef.current?.contains(activeElement)) {
|
|
34
33
|
return;
|
|
35
34
|
}
|
|
36
35
|
if (e.key === nextArrowKey) {
|
|
37
36
|
const next = findNextFocusable(activeElement, {
|
|
38
37
|
container: innerRef.current
|
|
39
38
|
});
|
|
40
|
-
next
|
|
39
|
+
next?.focus();
|
|
41
40
|
}
|
|
42
41
|
if (e.key === prevArrowKey) {
|
|
43
42
|
const prev = findPrevFocusable(activeElement, {
|
|
44
43
|
container: innerRef.current
|
|
45
44
|
});
|
|
46
|
-
prev
|
|
45
|
+
prev?.focus();
|
|
47
46
|
}
|
|
48
47
|
}, [findNextFocusable, findPrevFocusable, targetDocument, nextArrowKey, prevArrowKey]);
|
|
49
48
|
return {
|
|
50
49
|
components: {
|
|
51
|
-
root:
|
|
50
|
+
root: "div"
|
|
52
51
|
},
|
|
53
|
-
root: getNativeElementProps(
|
|
54
|
-
role:
|
|
52
|
+
root: getNativeElementProps("div", {
|
|
53
|
+
role: "group",
|
|
55
54
|
ref: useMergedRefs(ref, innerRef),
|
|
56
55
|
onKeyDown,
|
|
57
56
|
...props
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","getNativeElementProps","getRTLSafeKey","useMergedRefs","useFocusFinders","useFluent_unstable","useFluent","ArrowRight","ArrowLeft","useMenuSplitGroup_unstable","props","ref","innerRef","useRef","dir","targetDocument","nextArrowKey","prevArrowKey","findNextFocusable","findPrevFocusable","onKeyDown","useCallback","e","activeElement","
|
|
1
|
+
{"version":3,"names":["React","getNativeElementProps","getRTLSafeKey","useMergedRefs","useFocusFinders","useFluent_unstable","useFluent","ArrowRight","ArrowLeft","useMenuSplitGroup_unstable","props","ref","innerRef","useRef","dir","targetDocument","nextArrowKey","prevArrowKey","findNextFocusable","findPrevFocusable","onKeyDown","useCallback","e","activeElement","current","contains","key","next","container","focus","prev","components","root","role"],"sources":["../../../src/components/MenuSplitGroup/useMenuSplitGroup.ts"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, getRTLSafeKey, useMergedRefs } from '@fluentui/react-utilities';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport type { MenuSplitGroupProps, MenuSplitGroupState } from './MenuSplitGroup.types';\nimport { ArrowRight, ArrowLeft } from '@fluentui/keyboard-keys';\n\n/**\n * Create the state required to render MenuSplitGroup.\n *\n * The returned state can be modified with hooks such as useMenuSplitGroupStyles_unstable,\n * before being passed to renderMenuSplitGroup_unstable.\n *\n * @param props - props from this instance of MenuSplitGroup\n * @param ref - reference to root HTMLElement of MenuSplitGroup\n */\nexport const useMenuSplitGroup_unstable = (\n props: MenuSplitGroupProps,\n ref: React.Ref<HTMLElement>,\n): MenuSplitGroupState => {\n const innerRef = React.useRef<HTMLElement>();\n const { dir, targetDocument } = useFluent();\n\n const nextArrowKey = getRTLSafeKey(ArrowRight, dir);\n const prevArrowKey = getRTLSafeKey(ArrowLeft, dir);\n\n const { findNextFocusable, findPrevFocusable } = useFocusFinders();\n\n const onKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n const activeElement = targetDocument?.activeElement;\n if (!activeElement) {\n return;\n }\n\n if (!innerRef.current?.contains(activeElement)) {\n return;\n }\n\n if (e.key === nextArrowKey) {\n const next = findNextFocusable(activeElement as HTMLElement, { container: innerRef.current });\n next?.focus();\n }\n\n if (e.key === prevArrowKey) {\n const prev = findPrevFocusable(activeElement as HTMLElement, { container: innerRef.current });\n prev?.focus();\n }\n },\n [findNextFocusable, findPrevFocusable, targetDocument, nextArrowKey, prevArrowKey],\n );\n\n return {\n components: {\n root: 'div',\n },\n root: getNativeElementProps('div', {\n role: 'group',\n ref: useMergedRefs(ref, innerRef),\n onKeyDown,\n ...props,\n }),\n };\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,qBAAqB,EAAEC,aAAa,EAAEC,aAAa,QAAQ;AACpE,SAASC,eAAe,QAAQ;AAChC,SAASC,kBAAA,IAAsBC,SAAS,QAAQ;AAEhD,SAASC,UAAU,EAAEC,SAAS,QAAQ;AAEtC;;;;;;;;;AASA,OAAO,MAAMC,0BAAA,GAA6BA,CACxCC,KAAA,EACAC,GAAA,KACwB;EACxB,MAAMC,QAAA,GAAWZ,KAAA,CAAMa,MAAM;EAC7B,MAAM;IAAEC,GAAA;IAAKC;EAAc,CAAE,GAAGT,SAAA;EAEhC,MAAMU,YAAA,GAAed,aAAA,CAAcK,UAAA,EAAYO,GAAA;EAC/C,MAAMG,YAAA,GAAef,aAAA,CAAcM,SAAA,EAAWM,GAAA;EAE9C,MAAM;IAAEI,iBAAA;IAAmBC;EAAiB,CAAE,GAAGf,eAAA;EAEjD,MAAMgB,SAAA,GAAYpB,KAAA,CAAMqB,WAAW,CAChCC,CAAA,IAAwC;IACvC,MAAMC,aAAA,GAAgBR,cAAA,EAAgBQ,aAAA;IACtC,IAAI,CAACA,aAAA,EAAe;MAClB;IACF;IAEA,IAAI,CAACX,QAAA,CAASY,OAAO,EAAEC,QAAA,CAASF,aAAA,GAAgB;MAC9C;IACF;IAEA,IAAID,CAAA,CAAEI,GAAG,KAAKV,YAAA,EAAc;MAC1B,MAAMW,IAAA,GAAOT,iBAAA,CAAkBK,aAAA,EAA8B;QAAEK,SAAA,EAAWhB,QAAA,CAASY;MAAQ;MAC3FG,IAAA,EAAME,KAAA;IACR;IAEA,IAAIP,CAAA,CAAEI,GAAG,KAAKT,YAAA,EAAc;MAC1B,MAAMa,IAAA,GAAOX,iBAAA,CAAkBI,aAAA,EAA8B;QAAEK,SAAA,EAAWhB,QAAA,CAASY;MAAQ;MAC3FM,IAAA,EAAMD,KAAA;IACR;EACF,GACA,CAACX,iBAAA,EAAmBC,iBAAA,EAAmBJ,cAAA,EAAgBC,YAAA,EAAcC,YAAA,CAAa;EAGpF,OAAO;IACLc,UAAA,EAAY;MACVC,IAAA,EAAM;IACR;IACAA,IAAA,EAAM/B,qBAAA,CAAsB,OAAO;MACjCgC,IAAA,EAAM;MACNtB,GAAA,EAAKR,aAAA,CAAcQ,GAAA,EAAKC,QAAA;MACxBQ,SAAA;MACA,GAAGV;IACL;EACF;AACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { __styles, mergeClasses } from
|
|
2
|
-
import { tokens } from
|
|
3
|
-
import { menuItemClassNames } from
|
|
1
|
+
import { __styles, mergeClasses } from "@griffel/react";
|
|
2
|
+
import { tokens } from "@fluentui/react-theme";
|
|
3
|
+
import { menuItemClassNames } from "../MenuItem/useMenuItemStyles";
|
|
4
4
|
export const menuSplitGroupClassNames = {
|
|
5
|
-
root:
|
|
5
|
+
root: "fui-MenuSplitGroup"
|
|
6
6
|
};
|
|
7
7
|
/**
|
|
8
8
|
* Styles for the root slot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__styles","mergeClasses","tokens","menuItemClassNames","menuSplitGroupClassNames","root","useStyles","mc9l5x","u7v6m2","Bo1wru1","Bhkyaub","J9ixe0","rj29m3","B2knx3v","Bl7aesu","e82tai","Bnkcs84","d","useMenuSplitGroupStyles_unstable","state","styles","className"],"sources":["
|
|
1
|
+
{"version":3,"names":["__styles","mergeClasses","tokens","menuItemClassNames","menuSplitGroupClassNames","root","useStyles","mc9l5x","u7v6m2","Bo1wru1","Bhkyaub","J9ixe0","rj29m3","B2knx3v","Bl7aesu","e82tai","Bnkcs84","d","useMenuSplitGroupStyles_unstable","state","styles","className"],"sources":["../../../src/components/MenuSplitGroup/useMenuSplitGroupStyles.ts"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { menuItemClassNames } from '../MenuItem/useMenuItemStyles';\nimport type { MenuSplitGroupSlots, MenuSplitGroupState } from './MenuSplitGroup.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const menuSplitGroupClassNames: SlotClassNames<MenuSplitGroupSlots> = {\n root: 'fui-MenuSplitGroup',\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n [`& > .${menuItemClassNames.root}:nth-child(1)`]: {\n width: '100%',\n },\n [`& > .${menuItemClassNames.root}:nth-child(2)`]: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n paddingLeft: 0,\n marginLeft: 'auto',\n '::before': {\n content: '\"\"',\n width: tokens.strokeWidthThin,\n height: '24px',\n backgroundColor: tokens.colorNeutralStroke1,\n },\n },\n },\n});\n\n/**\n * Apply styling to the MenuSplitGroup slots based on the state\n */\nexport const useMenuSplitGroupStyles_unstable = (state: MenuSplitGroupState): MenuSplitGroupState => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuSplitGroupClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"mappings":"AAAA,SAAAA,QAAA,EAAqBC,YAAY,QAAQ;AACzC,SAASC,MAAM,QAAQ;AACvB,SAASC,kBAAkB,QAAQ;AAInC,OAAO,MAAMC,wBAAA,GAAgE;EAC3EC,IAAA,EAAM;AACR;AACA;;;AAGA,MAAMC,SAAA,gBAAYN,QAAA;EAAAK,IAAA;IAAAE,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,EAmBlB;AAEA;;;AAGA,OAAO,MAAMC,gCAAA,GAAoCC,KAAA,IAAoD;EACnG,MAAMC,MAAA,GAASd,SAAA;EACfa,KAAA,CAAMd,IAAI,CAACgB,SAAS,GAAGpB,YAAA,CAAaG,wBAAA,CAAyBC,IAAI,EAAEe,MAAA,CAAOf,IAAI,EAAEc,KAAA,CAAMd,IAAI,CAACgB,SAAS;EACpG,OAAOF,KAAA;AACT"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { useMenuTrigger_unstable } from "./useMenuTrigger";
|
|
3
|
+
import { renderMenuTrigger_unstable } from "./renderMenuTrigger";
|
|
3
4
|
/**
|
|
4
5
|
* Wraps a trigger element as an only child
|
|
5
6
|
* and adds the necessary event handling to open a popup menu
|
|
@@ -8,7 +9,7 @@ export const MenuTrigger = props => {
|
|
|
8
9
|
const state = useMenuTrigger_unstable(props);
|
|
9
10
|
return renderMenuTrigger_unstable(state);
|
|
10
11
|
};
|
|
11
|
-
MenuTrigger.displayName =
|
|
12
|
+
MenuTrigger.displayName = "MenuTrigger";
|
|
12
13
|
// type casting here is required to ensure internal type FluentTriggerComponent is not leaked
|
|
13
14
|
MenuTrigger.isFluentTriggerComponent = true;
|
|
14
15
|
//# sourceMappingURL=MenuTrigger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMenuTrigger_unstable","renderMenuTrigger_unstable","MenuTrigger","props","state","displayName","isFluentTriggerComponent"],"sources":["
|
|
1
|
+
{"version":3,"names":["React","useMenuTrigger_unstable","renderMenuTrigger_unstable","MenuTrigger","props","state","displayName","isFluentTriggerComponent"],"sources":["../../../src/components/MenuTrigger/MenuTrigger.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useMenuTrigger_unstable } from './useMenuTrigger';\nimport { renderMenuTrigger_unstable } from './renderMenuTrigger';\nimport type { MenuTriggerProps } from './MenuTrigger.types';\nimport type { FluentTriggerComponent } from '@fluentui/react-utilities';\n\n/**\n * Wraps a trigger element as an only child\n * and adds the necessary event handling to open a popup menu\n */\nexport const MenuTrigger: React.FC<MenuTriggerProps> = props => {\n const state = useMenuTrigger_unstable(props);\n\n return renderMenuTrigger_unstable(state);\n};\n\nMenuTrigger.displayName = 'MenuTrigger';\n// type casting here is required to ensure internal type FluentTriggerComponent is not leaked\n(MenuTrigger as FluentTriggerComponent).isFluentTriggerComponent = true;\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,uBAAuB,QAAQ;AACxC,SAASC,0BAA0B,QAAQ;AAI3C;;;;AAIA,OAAO,MAAMC,WAAA,GAA0CC,KAAA,IAAS;EAC9D,MAAMC,KAAA,GAAQJ,uBAAA,CAAwBG,KAAA;EAEtC,OAAOF,0BAAA,CAA2BG,KAAA;AACpC;AAEAF,WAAA,CAAYG,WAAW,GAAG;AAC1B;AACCH,WAAA,CAAuCI,wBAAwB,GAAG,IAAI"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
//# sourceMappingURL=MenuTrigger.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["React"],"sources":["../../../src/components/MenuTrigger/MenuTrigger.types.ts"],"sourcesContent":["import { ARIAButtonResultProps, ARIAButtonType } from '@fluentui/react-aria';\nimport type { TriggerProps } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nexport type MenuTriggerProps = TriggerProps<MenuTriggerChildProps> & {\n /**\n * Disables internal trigger mechanism that ensures a child provided will be a compliant ARIA button.\n * @default false\n */\n disableButtonEnhancement?: boolean;\n};\n\n/**\n * Props that are passed to the child of the MenuTrigger when cloned to ensure correct behaviour for the Menu\n */\nexport type MenuTriggerChildProps<Type extends ARIAButtonType = ARIAButtonType, Props = {}> = ARIAButtonResultProps<\n Type,\n Props & {\n 'aria-haspopup'?: 'menu';\n 'aria-expanded'?: boolean;\n id: string;\n ref: React.Ref<never>;\n onMouseEnter: React.MouseEventHandler<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>;\n onMouseLeave: React.MouseEventHandler<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>;\n onMouseMove: React.MouseEventHandler<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>;\n onContextMenu: React.MouseEventHandler<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>;\n }\n>;\n\nexport type MenuTriggerState = {\n children: React.ReactElement | null;\n isSubmenu: boolean;\n};\n"],"mappings":"AAEA,YAAYA,KAAA,MAAW"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
1
|
+
export * from "./MenuTrigger";
|
|
2
|
+
export * from "./MenuTrigger.types";
|
|
3
|
+
export * from "./renderMenuTrigger";
|
|
4
|
+
export * from "./useMenuTrigger";
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/components/MenuTrigger/index.ts"],"sourcesContent":["export * from './MenuTrigger';\nexport * from './MenuTrigger.types';\nexport * from './renderMenuTrigger';\nexport * from './useMenuTrigger';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
import { MenuTriggerContextProvider } from
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { MenuTriggerContextProvider } from "../../contexts/menuTriggerContext";
|
|
3
3
|
/**
|
|
4
4
|
* Render the final JSX of MenuTrigger
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","MenuTriggerContextProvider","renderMenuTrigger_unstable","state","createElement","value","isSubmenu","children"],"sources":["
|
|
1
|
+
{"version":3,"names":["React","MenuTriggerContextProvider","renderMenuTrigger_unstable","state","createElement","value","isSubmenu","children"],"sources":["../../../src/components/MenuTrigger/renderMenuTrigger.tsx"],"sourcesContent":["import * as React from 'react';\nimport { MenuTriggerContextProvider } from '../../contexts/menuTriggerContext';\nimport type { MenuTriggerState } from './MenuTrigger.types';\n\n/**\n * Render the final JSX of MenuTrigger\n *\n * Only renders children\n */\nexport const renderMenuTrigger_unstable = (state: MenuTriggerState) => {\n return <MenuTriggerContextProvider value={state.isSubmenu}>{state.children}</MenuTriggerContextProvider>;\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,0BAA0B,QAAQ;AAG3C;;;;;AAKA,OAAO,MAAMC,0BAAA,GAA8BC,KAAA,IAA4B;EACrE,oBAAOH,KAAA,CAAAI,aAAA,CAACH,0BAAA;IAA2BI,KAAA,EAAOF,KAAA,CAAMG;KAAYH,KAAA,CAAMI,QAAQ;AAC5E"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
import { useMenuContext_unstable } from
|
|
3
|
-
import { useIsSubmenu } from
|
|
4
|
-
import { useFocusFinders } from
|
|
5
|
-
import { useFluent_unstable as useFluent } from
|
|
6
|
-
import { ArrowRight, ArrowLeft, Escape, ArrowDown } from
|
|
7
|
-
import { applyTriggerPropsToChildren, getTriggerChild, isHTMLElement, mergeCallbacks, useEventCallback, useMergedRefs } from
|
|
8
|
-
import { useARIAButtonProps } from
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { useMenuContext_unstable } from "../../contexts/menuContext";
|
|
3
|
+
import { useIsSubmenu } from "../../utils/useIsSubmenu";
|
|
4
|
+
import { useFocusFinders } from "@fluentui/react-tabster";
|
|
5
|
+
import { useFluent_unstable as useFluent } from "@fluentui/react-shared-contexts";
|
|
6
|
+
import { ArrowRight, ArrowLeft, Escape, ArrowDown } from "@fluentui/keyboard-keys";
|
|
7
|
+
import { applyTriggerPropsToChildren, getTriggerChild, isHTMLElement, mergeCallbacks, useEventCallback, useMergedRefs } from "@fluentui/react-utilities";
|
|
8
|
+
import { useARIAButtonProps } from "@fluentui/react-aria";
|
|
9
9
|
/**
|
|
10
10
|
* Create the state required to render MenuTrigger.
|
|
11
11
|
* Clones the only child component and adds necessary event handling behaviours to open a popup menu
|
|
@@ -30,14 +30,14 @@ export const useMenuTrigger_unstable = props => {
|
|
|
30
30
|
} = useFocusFinders();
|
|
31
31
|
const focusFirst = React.useCallback(() => {
|
|
32
32
|
const firstFocusable = findFirstFocusable(menuPopoverRef.current);
|
|
33
|
-
firstFocusable
|
|
33
|
+
firstFocusable?.focus();
|
|
34
34
|
}, [findFirstFocusable, menuPopoverRef]);
|
|
35
35
|
const openedWithKeyboardRef = React.useRef(false);
|
|
36
36
|
const hasMouseMoved = React.useRef(false);
|
|
37
37
|
const {
|
|
38
38
|
dir
|
|
39
39
|
} = useFluent();
|
|
40
|
-
const OpenArrowKey = dir ===
|
|
40
|
+
const OpenArrowKey = dir === "ltr" ? ArrowRight : ArrowLeft;
|
|
41
41
|
const child = getTriggerChild(children);
|
|
42
42
|
const onContextMenu = event => {
|
|
43
43
|
if (isTargetDisabled(event)) {
|
|
@@ -48,7 +48,7 @@ export const useMenuTrigger_unstable = props => {
|
|
|
48
48
|
setOpen(event, {
|
|
49
49
|
open: true,
|
|
50
50
|
keyboard: false,
|
|
51
|
-
type:
|
|
51
|
+
type: "menuTriggerContextMenu",
|
|
52
52
|
event
|
|
53
53
|
});
|
|
54
54
|
}
|
|
@@ -61,7 +61,7 @@ export const useMenuTrigger_unstable = props => {
|
|
|
61
61
|
setOpen(event, {
|
|
62
62
|
open: !open,
|
|
63
63
|
keyboard: openedWithKeyboardRef.current,
|
|
64
|
-
type:
|
|
64
|
+
type: "menuTriggerClick",
|
|
65
65
|
event
|
|
66
66
|
});
|
|
67
67
|
openedWithKeyboardRef.current = false;
|
|
@@ -76,7 +76,7 @@ export const useMenuTrigger_unstable = props => {
|
|
|
76
76
|
setOpen(event, {
|
|
77
77
|
open: true,
|
|
78
78
|
keyboard: true,
|
|
79
|
-
type:
|
|
79
|
+
type: "menuTriggerKeyDown",
|
|
80
80
|
event
|
|
81
81
|
});
|
|
82
82
|
}
|
|
@@ -84,7 +84,7 @@ export const useMenuTrigger_unstable = props => {
|
|
|
84
84
|
setOpen(event, {
|
|
85
85
|
open: false,
|
|
86
86
|
keyboard: true,
|
|
87
|
-
type:
|
|
87
|
+
type: "menuTriggerKeyDown",
|
|
88
88
|
event
|
|
89
89
|
});
|
|
90
90
|
}
|
|
@@ -101,7 +101,7 @@ export const useMenuTrigger_unstable = props => {
|
|
|
101
101
|
setOpen(event, {
|
|
102
102
|
open: true,
|
|
103
103
|
keyboard: false,
|
|
104
|
-
type:
|
|
104
|
+
type: "menuTriggerMouseEnter",
|
|
105
105
|
event
|
|
106
106
|
});
|
|
107
107
|
}
|
|
@@ -117,7 +117,7 @@ export const useMenuTrigger_unstable = props => {
|
|
|
117
117
|
setOpen(event, {
|
|
118
118
|
open: true,
|
|
119
119
|
keyboard: false,
|
|
120
|
-
type:
|
|
120
|
+
type: "menuTriggerMouseMove",
|
|
121
121
|
event
|
|
122
122
|
});
|
|
123
123
|
hasMouseMoved.current = true;
|
|
@@ -131,35 +131,35 @@ export const useMenuTrigger_unstable = props => {
|
|
|
131
131
|
setOpen(event, {
|
|
132
132
|
open: false,
|
|
133
133
|
keyboard: false,
|
|
134
|
-
type:
|
|
134
|
+
type: "menuTriggerMouseLeave",
|
|
135
135
|
event
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
138
|
};
|
|
139
139
|
const contextMenuProps = {
|
|
140
140
|
id: triggerId,
|
|
141
|
-
...
|
|
142
|
-
ref: useMergedRefs(triggerRef, child
|
|
143
|
-
onMouseEnter: useEventCallback(mergeCallbacks(child
|
|
144
|
-
onMouseLeave: useEventCallback(mergeCallbacks(child
|
|
145
|
-
onContextMenu: useEventCallback(mergeCallbacks(child
|
|
146
|
-
onMouseMove: useEventCallback(mergeCallbacks(child
|
|
141
|
+
...child?.props,
|
|
142
|
+
ref: useMergedRefs(triggerRef, child?.ref),
|
|
143
|
+
onMouseEnter: useEventCallback(mergeCallbacks(child?.props.onMouseEnter, onMouseEnter)),
|
|
144
|
+
onMouseLeave: useEventCallback(mergeCallbacks(child?.props.onMouseLeave, onMouseLeave)),
|
|
145
|
+
onContextMenu: useEventCallback(mergeCallbacks(child?.props.onContextMenu, onContextMenu)),
|
|
146
|
+
onMouseMove: useEventCallback(mergeCallbacks(child?.props.onMouseMove, onMouseMove))
|
|
147
147
|
};
|
|
148
148
|
const triggerChildProps = {
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
"aria-haspopup": "menu",
|
|
150
|
+
"aria-expanded": !open && !isSubmenu ? undefined : open,
|
|
151
151
|
...contextMenuProps,
|
|
152
|
-
onClick: useEventCallback(mergeCallbacks(child
|
|
153
|
-
onKeyDown: useEventCallback(mergeCallbacks(child
|
|
152
|
+
onClick: useEventCallback(mergeCallbacks(child?.props.onClick, onClick)),
|
|
153
|
+
onKeyDown: useEventCallback(mergeCallbacks(child?.props.onKeyDown, onKeyDown))
|
|
154
154
|
};
|
|
155
|
-
const ariaButtonTriggerChildProps = useARIAButtonProps(
|
|
155
|
+
const ariaButtonTriggerChildProps = useARIAButtonProps(child?.type === "button" || child?.type === "a" ? child.type : "div", triggerChildProps);
|
|
156
156
|
return {
|
|
157
157
|
isSubmenu,
|
|
158
158
|
children: applyTriggerPropsToChildren(children, openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps)
|
|
159
159
|
};
|
|
160
160
|
};
|
|
161
161
|
const isTargetDisabled = event => {
|
|
162
|
-
const isDisabled = el => el.hasAttribute(
|
|
162
|
+
const isDisabled = el => el.hasAttribute("disabled") || el.hasAttribute("aria-disabled") && el.getAttribute("aria-disabled") === "true";
|
|
163
163
|
if (isHTMLElement(event.target) && isDisabled(event.target)) {
|
|
164
164
|
return true;
|
|
165
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMenuContext_unstable","useIsSubmenu","useFocusFinders","useFluent_unstable","useFluent","ArrowRight","ArrowLeft","Escape","ArrowDown","applyTriggerPropsToChildren","getTriggerChild","isHTMLElement","mergeCallbacks","useEventCallback","useMergedRefs","useARIAButtonProps","useMenuTrigger_unstable","props","children","disableButtonEnhancement","triggerRef","context","menuPopoverRef","setOpen","open","triggerId","openOnHover","openOnContext","isSubmenu","findFirstFocusable","focusFirst","useCallback","firstFocusable","current","focus","openedWithKeyboardRef","useRef","hasMouseMoved","dir","OpenArrowKey","child","onContextMenu","event","isTargetDisabled","preventDefault","keyboard","type","onClick","onKeyDown","key","onMouseEnter","onMouseMove","onMouseLeave","contextMenuProps","id","ref","triggerChildProps","undefined","ariaButtonTriggerChildProps","isDisabled","el","hasAttribute","getAttribute","target","currentTarget"],"sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuTrigger/useMenuTrigger.ts"],"sourcesContent":["import * as React from 'react';\nimport { MenuTriggerProps, MenuTriggerState } from './MenuTrigger.types';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowRight, ArrowLeft, Escape, ArrowDown } from '@fluentui/keyboard-keys';\nimport {\n applyTriggerPropsToChildren,\n getTriggerChild,\n isHTMLElement,\n mergeCallbacks,\n useEventCallback,\n useMergedRefs,\n} from '@fluentui/react-utilities';\nimport { useARIAButtonProps } from '@fluentui/react-aria';\n\n/**\n * Create the state required to render MenuTrigger.\n * Clones the only child component and adds necessary event handling behaviours to open a popup menu\n *\n * @param props - props from this instance of MenuTrigger\n */\nexport const useMenuTrigger_unstable = (props: MenuTriggerProps): MenuTriggerState => {\n const { children, disableButtonEnhancement = false } = props;\n\n const triggerRef = useMenuContext_unstable(context => context.triggerRef);\n const menuPopoverRef = useMenuContext_unstable(context => context.menuPopoverRef);\n const setOpen = useMenuContext_unstable(context => context.setOpen);\n const open = useMenuContext_unstable(context => context.open);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const openOnHover = useMenuContext_unstable(context => context.openOnHover);\n const openOnContext = useMenuContext_unstable(context => context.openOnContext);\n\n const isSubmenu = useIsSubmenu();\n\n const { findFirstFocusable } = useFocusFinders();\n const focusFirst = React.useCallback(() => {\n const firstFocusable = findFirstFocusable(menuPopoverRef.current);\n firstFocusable?.focus();\n }, [findFirstFocusable, menuPopoverRef]);\n\n const openedWithKeyboardRef = React.useRef(false);\n const hasMouseMoved = React.useRef(false);\n\n const { dir } = useFluent();\n const OpenArrowKey = dir === 'ltr' ? ArrowRight : ArrowLeft;\n\n const child = getTriggerChild(children);\n\n const onContextMenu = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n if (openOnContext) {\n event.preventDefault();\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerContextMenu', event });\n }\n };\n\n const onClick = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n if (!openOnContext) {\n setOpen(event, { open: !open, keyboard: openedWithKeyboardRef.current, type: 'menuTriggerClick', event });\n openedWithKeyboardRef.current = false;\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n const key = event.key;\n\n if (!openOnContext && ((isSubmenu && key === OpenArrowKey) || (!isSubmenu && key === ArrowDown))) {\n setOpen(event, { open: true, keyboard: true, type: 'menuTriggerKeyDown', event });\n }\n\n if (key === Escape && !isSubmenu) {\n setOpen(event, { open: false, keyboard: true, type: 'menuTriggerKeyDown', event });\n }\n\n // if menu is already open, can't rely on effects to focus\n if (open && key === OpenArrowKey && isSubmenu) {\n focusFirst();\n }\n };\n\n const onMouseEnter = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && hasMouseMoved.current) {\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerMouseEnter', event });\n }\n };\n\n // Opening a menu when a mouse hasn't moved and just entering the trigger is a bad a11y experience\n // First time open the mouse using mousemove and then continue with mouseenter\n // Only use once to determine that the user is using the mouse since it is an expensive event to handle\n const onMouseMove = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && !hasMouseMoved.current) {\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerMouseMove', event });\n hasMouseMoved.current = true;\n }\n };\n\n const onMouseLeave = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover) {\n setOpen(event, { open: false, keyboard: false, type: 'menuTriggerMouseLeave', event });\n }\n };\n\n const contextMenuProps = {\n id: triggerId,\n ...child?.props,\n ref: useMergedRefs(triggerRef, child?.ref),\n onMouseEnter: useEventCallback(mergeCallbacks(child?.props.onMouseEnter, onMouseEnter)),\n onMouseLeave: useEventCallback(mergeCallbacks(child?.props.onMouseLeave, onMouseLeave)),\n onContextMenu: useEventCallback(mergeCallbacks(child?.props.onContextMenu, onContextMenu)),\n onMouseMove: useEventCallback(mergeCallbacks(child?.props.onMouseMove, onMouseMove)),\n };\n\n const triggerChildProps = {\n 'aria-haspopup': 'menu',\n 'aria-expanded': !open && !isSubmenu ? undefined : open,\n ...contextMenuProps,\n onClick: useEventCallback(mergeCallbacks(child?.props.onClick, onClick)),\n onKeyDown: useEventCallback(mergeCallbacks(child?.props.onKeyDown, onKeyDown)),\n } as const;\n\n const ariaButtonTriggerChildProps = useARIAButtonProps(\n child?.type === 'button' || child?.type === 'a' ? child.type : 'div',\n triggerChildProps,\n );\n\n return {\n isSubmenu,\n children: applyTriggerPropsToChildren(\n children,\n openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps,\n ),\n };\n};\n\nconst isTargetDisabled = (event: React.SyntheticEvent | Event) => {\n const isDisabled = (el: HTMLElement) =>\n el.hasAttribute('disabled') || (el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true');\n if (isHTMLElement(event.target) && isDisabled(event.target)) {\n return true;\n }\n\n return isHTMLElement(event.currentTarget) && isDisabled(event.currentTarget);\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useMenuContext_unstable","useIsSubmenu","useFocusFinders","useFluent_unstable","useFluent","ArrowRight","ArrowLeft","Escape","ArrowDown","applyTriggerPropsToChildren","getTriggerChild","isHTMLElement","mergeCallbacks","useEventCallback","useMergedRefs","useARIAButtonProps","useMenuTrigger_unstable","props","children","disableButtonEnhancement","triggerRef","context","menuPopoverRef","setOpen","open","triggerId","openOnHover","openOnContext","isSubmenu","findFirstFocusable","focusFirst","useCallback","firstFocusable","current","focus","openedWithKeyboardRef","useRef","hasMouseMoved","dir","OpenArrowKey","child","onContextMenu","event","isTargetDisabled","preventDefault","keyboard","type","onClick","onKeyDown","key","onMouseEnter","onMouseMove","onMouseLeave","contextMenuProps","id","ref","triggerChildProps","undefined","ariaButtonTriggerChildProps","isDisabled","el","hasAttribute","getAttribute","target","currentTarget"],"sources":["../../../src/components/MenuTrigger/useMenuTrigger.ts"],"sourcesContent":["import * as React from 'react';\nimport { MenuTriggerProps, MenuTriggerState } from './MenuTrigger.types';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowRight, ArrowLeft, Escape, ArrowDown } from '@fluentui/keyboard-keys';\nimport {\n applyTriggerPropsToChildren,\n getTriggerChild,\n isHTMLElement,\n mergeCallbacks,\n useEventCallback,\n useMergedRefs,\n} from '@fluentui/react-utilities';\nimport { useARIAButtonProps } from '@fluentui/react-aria';\n\n/**\n * Create the state required to render MenuTrigger.\n * Clones the only child component and adds necessary event handling behaviours to open a popup menu\n *\n * @param props - props from this instance of MenuTrigger\n */\nexport const useMenuTrigger_unstable = (props: MenuTriggerProps): MenuTriggerState => {\n const { children, disableButtonEnhancement = false } = props;\n\n const triggerRef = useMenuContext_unstable(context => context.triggerRef);\n const menuPopoverRef = useMenuContext_unstable(context => context.menuPopoverRef);\n const setOpen = useMenuContext_unstable(context => context.setOpen);\n const open = useMenuContext_unstable(context => context.open);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const openOnHover = useMenuContext_unstable(context => context.openOnHover);\n const openOnContext = useMenuContext_unstable(context => context.openOnContext);\n\n const isSubmenu = useIsSubmenu();\n\n const { findFirstFocusable } = useFocusFinders();\n const focusFirst = React.useCallback(() => {\n const firstFocusable = findFirstFocusable(menuPopoverRef.current);\n firstFocusable?.focus();\n }, [findFirstFocusable, menuPopoverRef]);\n\n const openedWithKeyboardRef = React.useRef(false);\n const hasMouseMoved = React.useRef(false);\n\n const { dir } = useFluent();\n const OpenArrowKey = dir === 'ltr' ? ArrowRight : ArrowLeft;\n\n const child = getTriggerChild(children);\n\n const onContextMenu = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n if (openOnContext) {\n event.preventDefault();\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerContextMenu', event });\n }\n };\n\n const onClick = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n if (!openOnContext) {\n setOpen(event, { open: !open, keyboard: openedWithKeyboardRef.current, type: 'menuTriggerClick', event });\n openedWithKeyboardRef.current = false;\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n const key = event.key;\n\n if (!openOnContext && ((isSubmenu && key === OpenArrowKey) || (!isSubmenu && key === ArrowDown))) {\n setOpen(event, { open: true, keyboard: true, type: 'menuTriggerKeyDown', event });\n }\n\n if (key === Escape && !isSubmenu) {\n setOpen(event, { open: false, keyboard: true, type: 'menuTriggerKeyDown', event });\n }\n\n // if menu is already open, can't rely on effects to focus\n if (open && key === OpenArrowKey && isSubmenu) {\n focusFirst();\n }\n };\n\n const onMouseEnter = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && hasMouseMoved.current) {\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerMouseEnter', event });\n }\n };\n\n // Opening a menu when a mouse hasn't moved and just entering the trigger is a bad a11y experience\n // First time open the mouse using mousemove and then continue with mouseenter\n // Only use once to determine that the user is using the mouse since it is an expensive event to handle\n const onMouseMove = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && !hasMouseMoved.current) {\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerMouseMove', event });\n hasMouseMoved.current = true;\n }\n };\n\n const onMouseLeave = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover) {\n setOpen(event, { open: false, keyboard: false, type: 'menuTriggerMouseLeave', event });\n }\n };\n\n const contextMenuProps = {\n id: triggerId,\n ...child?.props,\n ref: useMergedRefs(triggerRef, child?.ref),\n onMouseEnter: useEventCallback(mergeCallbacks(child?.props.onMouseEnter, onMouseEnter)),\n onMouseLeave: useEventCallback(mergeCallbacks(child?.props.onMouseLeave, onMouseLeave)),\n onContextMenu: useEventCallback(mergeCallbacks(child?.props.onContextMenu, onContextMenu)),\n onMouseMove: useEventCallback(mergeCallbacks(child?.props.onMouseMove, onMouseMove)),\n };\n\n const triggerChildProps = {\n 'aria-haspopup': 'menu',\n 'aria-expanded': !open && !isSubmenu ? undefined : open,\n ...contextMenuProps,\n onClick: useEventCallback(mergeCallbacks(child?.props.onClick, onClick)),\n onKeyDown: useEventCallback(mergeCallbacks(child?.props.onKeyDown, onKeyDown)),\n } as const;\n\n const ariaButtonTriggerChildProps = useARIAButtonProps(\n child?.type === 'button' || child?.type === 'a' ? child.type : 'div',\n triggerChildProps,\n );\n\n return {\n isSubmenu,\n children: applyTriggerPropsToChildren(\n children,\n openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps,\n ),\n };\n};\n\nconst isTargetDisabled = (event: React.SyntheticEvent | Event) => {\n const isDisabled = (el: HTMLElement) =>\n el.hasAttribute('disabled') || (el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true');\n if (isHTMLElement(event.target) && isDisabled(event.target)) {\n return true;\n }\n\n return isHTMLElement(event.currentTarget) && isDisabled(event.currentTarget);\n};\n"],"mappings":"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"}
|
package/lib/components/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
1
|
+
export * from "./MenuItem/index";
|
|
2
|
+
export * from "./MenuList/index";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './MenuItem/index';\nexport * from './MenuList/index';\n"],"mappings":"AAAA,cAAc;AACd,cAAc"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { createContext, useContextSelector } from "@fluentui/react-context-selector";
|
|
2
3
|
export const MenuContext = /*#__PURE__*/createContext(undefined);
|
|
3
4
|
const menuContextDefaultValue = {
|
|
4
5
|
open: false,
|
|
@@ -13,7 +14,7 @@ const menuContextDefaultValue = {
|
|
|
13
14
|
current: null
|
|
14
15
|
},
|
|
15
16
|
mountNode: null,
|
|
16
|
-
triggerId:
|
|
17
|
+
triggerId: "",
|
|
17
18
|
openOnContext: false,
|
|
18
19
|
openOnHover: false,
|
|
19
20
|
hasIcons: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContextSelector","MenuContext","undefined","menuContextDefaultValue","open","setOpen","checkedValues","onCheckedValueChange","isSubmenu","triggerRef","current","menuPopoverRef","mountNode","triggerId","openOnContext","openOnHover","hasIcons","hasCheckmarks","inline","persistOnItemClick","MenuProvider","Provider","useMenuContext_unstable","selector","ctx"],"sources":["
|
|
1
|
+
{"version":3,"names":["React","createContext","useContextSelector","MenuContext","undefined","menuContextDefaultValue","open","setOpen","checkedValues","onCheckedValueChange","isSubmenu","triggerRef","current","menuPopoverRef","mountNode","triggerId","openOnContext","openOnHover","hasIcons","hasCheckmarks","inline","persistOnItemClick","MenuProvider","Provider","useMenuContext_unstable","selector","ctx"],"sources":["../../src/contexts/menuContext.ts"],"sourcesContent":["import * as React from 'react';\nimport { createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport type { ContextSelector, Context } from '@fluentui/react-context-selector';\nimport type { MenuState } from '../components/Menu/index';\n\nexport const MenuContext: Context<MenuContextValue> = createContext<MenuContextValue | undefined>(\n undefined,\n) as Context<MenuContextValue>;\n\nconst menuContextDefaultValue: MenuContextValue = {\n open: false,\n setOpen: () => false,\n checkedValues: {},\n onCheckedValueChange: () => null,\n isSubmenu: false,\n triggerRef: { current: null } as unknown as React.MutableRefObject<HTMLElement>,\n menuPopoverRef: { current: null } as unknown as React.MutableRefObject<HTMLElement>,\n mountNode: null,\n triggerId: '',\n openOnContext: false,\n openOnHover: false,\n hasIcons: false,\n hasCheckmarks: false,\n inline: false,\n persistOnItemClick: false,\n};\n\n/**\n * Context shared between Menu and its children components\n *\n * Extends and drills down MenuList props to simplify API\n */\nexport type MenuContextValue = Pick<\n MenuState,\n | 'openOnHover'\n | 'openOnContext'\n | 'triggerRef'\n | 'menuPopoverRef'\n | 'setOpen'\n | 'isSubmenu'\n | 'mountNode'\n | 'triggerId'\n | 'hasIcons'\n | 'hasCheckmarks'\n | 'persistOnItemClick'\n | 'inline'\n | 'checkedValues'\n | 'onCheckedValueChange'\n> & {\n open: boolean;\n triggerId: string;\n /**\n * Default values to be checked on mount\n * @deprecated this property is not used internally anymore,\n * the signature remains just to avoid breaking changes\n */\n defaultCheckedValues?: Record<string, string[]>;\n};\n\nexport const MenuProvider = MenuContext.Provider;\n\nexport const useMenuContext_unstable = <T>(selector: ContextSelector<MenuContextValue, T>) =>\n useContextSelector(MenuContext, (ctx = menuContextDefaultValue) => selector(ctx));\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,aAAa,EAAEC,kBAAkB,QAAQ;AAIlD,OAAO,MAAMC,WAAA,gBAAyCF,aAAA,CACpDG,SAAA;AAGF,MAAMC,uBAAA,GAA4C;EAChDC,IAAA,EAAM,KAAK;EACXC,OAAA,EAASA,CAAA,KAAM,KAAK;EACpBC,aAAA,EAAe,CAAC;EAChBC,oBAAA,EAAsBA,CAAA,KAAM,IAAI;EAChCC,SAAA,EAAW,KAAK;EAChBC,UAAA,EAAY;IAAEC,OAAA,EAAS;EAAK;EAC5BC,cAAA,EAAgB;IAAED,OAAA,EAAS;EAAK;EAChCE,SAAA,EAAW,IAAI;EACfC,SAAA,EAAW;EACXC,aAAA,EAAe,KAAK;EACpBC,WAAA,EAAa,KAAK;EAClBC,QAAA,EAAU,KAAK;EACfC,aAAA,EAAe,KAAK;EACpBC,MAAA,EAAQ,KAAK;EACbC,kBAAA,EAAoB;AACtB;AAkCA,OAAO,MAAMC,YAAA,GAAenB,WAAA,CAAYoB,QAAQ;AAEhD,OAAO,MAAMC,uBAAA,GAA8BC,QAAA,IACzCvB,kBAAA,CAAmBC,WAAA,EAAa,CAACuB,GAAA,GAAMrB,uBAAuB,KAAKoB,QAAA,CAASC,GAAA"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import * as React from
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
const MenuGroupContext = /*#__PURE__*/React.createContext(undefined);
|
|
3
3
|
const menuGroupContextDefaultValue = {
|
|
4
|
-
headerId:
|
|
4
|
+
headerId: ""
|
|
5
5
|
};
|
|
6
6
|
export const MenuGroupContextProvider = MenuGroupContext.Provider;
|
|
7
|
-
export const useMenuGroupContext_unstable = () =>
|
|
8
|
-
var _a;
|
|
9
|
-
return (_a = React.useContext(MenuGroupContext)) !== null && _a !== void 0 ? _a : menuGroupContextDefaultValue;
|
|
10
|
-
};
|
|
7
|
+
export const useMenuGroupContext_unstable = () => React.useContext(MenuGroupContext) ?? menuGroupContextDefaultValue;
|
|
11
8
|
//# sourceMappingURL=menuGroupContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","MenuGroupContext","createContext","undefined","menuGroupContextDefaultValue","headerId","MenuGroupContextProvider","Provider","useMenuGroupContext_unstable","
|
|
1
|
+
{"version":3,"names":["React","MenuGroupContext","createContext","undefined","menuGroupContextDefaultValue","headerId","MenuGroupContextProvider","Provider","useMenuGroupContext_unstable","useContext"],"sources":["../../src/contexts/menuGroupContext.ts"],"sourcesContent":["import * as React from 'react';\n\nconst MenuGroupContext = React.createContext<MenuGroupContextValue | undefined>(\n undefined,\n) as React.Context<MenuGroupContextValue>;\n\nconst menuGroupContextDefaultValue: MenuGroupContextValue = {\n headerId: '',\n};\n\n/**\n * Context used to guarantee correct aria-relationship between header\n * and group information\n */\nexport type MenuGroupContextValue = {\n /**\n * Element id applied to the `MenuGroupHeader` component\n */\n headerId: string;\n};\n\nexport const MenuGroupContextProvider = MenuGroupContext.Provider;\nexport const useMenuGroupContext_unstable = () => React.useContext(MenuGroupContext) ?? menuGroupContextDefaultValue;\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAEvB,MAAMC,gBAAA,gBAAmBD,KAAA,CAAME,aAAa,CAC1CC,SAAA;AAGF,MAAMC,4BAAA,GAAsD;EAC1DC,QAAA,EAAU;AACZ;AAaA,OAAO,MAAMC,wBAAA,GAA2BL,gBAAA,CAAiBM,QAAQ;AACjE,OAAO,MAAMC,4BAAA,GAA+BA,CAAA,KAAMR,KAAA,CAAMS,UAAU,CAACR,gBAAA,KAAqBG,4BAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { createContext, useContextSelector } from "@fluentui/react-context-selector";
|
|
2
3
|
export const MenuListContext = /*#__PURE__*/createContext(undefined);
|
|
3
4
|
const menuListContextDefaultValue = {
|
|
4
5
|
checkedValues: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContextSelector","MenuListContext","undefined","menuListContextDefaultValue","checkedValues","setFocusByFirstCharacter","toggleCheckbox","selectRadio","hasIcons","hasCheckmarks","MenuListProvider","Provider","useMenuListContext_unstable","selector","ctx"],"sources":["
|
|
1
|
+
{"version":3,"names":["React","createContext","useContextSelector","MenuListContext","undefined","menuListContextDefaultValue","checkedValues","setFocusByFirstCharacter","toggleCheckbox","selectRadio","hasIcons","hasCheckmarks","MenuListProvider","Provider","useMenuListContext_unstable","selector","ctx"],"sources":["../../src/contexts/menuListContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport type { ContextSelector, Context } from '@fluentui/react-context-selector';\nimport type { SelectableHandler } from '../selectable/index';\nimport type { MenuCheckedValueChangeData, MenuCheckedValueChangeEvent, MenuListProps } from '../components/index';\n\nexport const MenuListContext: Context<MenuListContextValue> = createContext<MenuListContextValue | undefined>(\n undefined,\n) as Context<MenuListContextValue>;\n\nconst menuListContextDefaultValue: MenuListContextValue = {\n checkedValues: {},\n setFocusByFirstCharacter: () => null,\n toggleCheckbox: () => null,\n selectRadio: () => null,\n hasIcons: false,\n hasCheckmarks: false,\n};\n\n/**\n * Context shared between MenuList and its children components\n */\nexport type MenuListContextValue = Pick<MenuListProps, 'checkedValues' | 'hasIcons' | 'hasCheckmarks'> & {\n setFocusByFirstCharacter?: (e: React.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => void;\n toggleCheckbox?: SelectableHandler;\n selectRadio?: SelectableHandler;\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 * @deprecated this property is not used internally anymore,\n * the signature remains just to avoid breaking changes\n */\n onCheckedValueChange?: (e: MenuCheckedValueChangeEvent, data: MenuCheckedValueChangeData) => void;\n};\n\nexport const MenuListProvider = MenuListContext.Provider;\n\nexport const useMenuListContext_unstable = <T,>(selector: ContextSelector<MenuListContextValue, T>) =>\n useContextSelector(MenuListContext, (ctx = menuListContextDefaultValue) => selector(ctx));\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,aAAa,EAAEC,kBAAkB,QAAQ;AAKlD,OAAO,MAAMC,eAAA,gBAAiDF,aAAA,CAC5DG,SAAA;AAGF,MAAMC,2BAAA,GAAoD;EACxDC,aAAA,EAAe,CAAC;EAChBC,wBAAA,EAA0BA,CAAA,KAAM,IAAI;EACpCC,cAAA,EAAgBA,CAAA,KAAM,IAAI;EAC1BC,WAAA,EAAaA,CAAA,KAAM,IAAI;EACvBC,QAAA,EAAU,KAAK;EACfC,aAAA,EAAe;AACjB;AAqBA,OAAO,MAAMC,gBAAA,GAAmBT,eAAA,CAAgBU,QAAQ;AAExD,OAAO,MAAMC,2BAAA,GAAmCC,QAAA,IAC9Cb,kBAAA,CAAmBC,eAAA,EAAiB,CAACa,GAAA,GAAMX,2BAA2B,KAAKU,QAAA,CAASC,GAAA"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import * as React from
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
/**
|
|
3
3
|
* Context used communicate with a child menu item that it is a trigger for a submenu
|
|
4
4
|
*/
|
|
5
5
|
const MenuTriggerContext = /*#__PURE__*/React.createContext(undefined);
|
|
6
6
|
const menuTriggerContextDefaultValue = false;
|
|
7
7
|
export const MenuTriggerContextProvider = MenuTriggerContext.Provider;
|
|
8
|
-
export const useMenuTriggerContext_unstable = () =>
|
|
9
|
-
var _a;
|
|
10
|
-
return (_a = React.useContext(MenuTriggerContext)) !== null && _a !== void 0 ? _a : menuTriggerContextDefaultValue;
|
|
11
|
-
};
|
|
8
|
+
export const useMenuTriggerContext_unstable = () => React.useContext(MenuTriggerContext) ?? menuTriggerContextDefaultValue;
|
|
12
9
|
//# sourceMappingURL=menuTriggerContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","MenuTriggerContext","createContext","undefined","menuTriggerContextDefaultValue","MenuTriggerContextProvider","Provider","useMenuTriggerContext_unstable","
|
|
1
|
+
{"version":3,"names":["React","MenuTriggerContext","createContext","undefined","menuTriggerContextDefaultValue","MenuTriggerContextProvider","Provider","useMenuTriggerContext_unstable","useContext"],"sources":["../../src/contexts/menuTriggerContext.ts"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Context used communicate with a child menu item that it is a trigger for a submenu\n */\nconst MenuTriggerContext = React.createContext<boolean | undefined>(undefined) as React.Context<boolean>;\n\nconst menuTriggerContextDefaultValue = false;\n\nexport const MenuTriggerContextProvider = MenuTriggerContext.Provider;\nexport const useMenuTriggerContext_unstable = () =>\n React.useContext(MenuTriggerContext) ?? menuTriggerContextDefaultValue;\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAEvB;;;AAGA,MAAMC,kBAAA,gBAAqBD,KAAA,CAAME,aAAa,CAAsBC,SAAA;AAEpE,MAAMC,8BAAA,GAAiC,KAAK;AAE5C,OAAO,MAAMC,0BAAA,GAA6BJ,kBAAA,CAAmBK,QAAQ;AACrE,OAAO,MAAMC,8BAAA,GAAiCA,CAAA,KAC5CP,KAAA,CAAMQ,UAAU,CAACP,kBAAA,KAAuBG,8BAAA"}
|
package/lib/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export { MenuProvider, useMenuContext_unstable } from
|
|
2
|
-
export { MenuTriggerContextProvider, useMenuTriggerContext_unstable } from
|
|
3
|
-
export { MenuGroupContextProvider, useMenuGroupContext_unstable } from
|
|
4
|
-
export { MenuListProvider, useMenuListContext_unstable } from
|
|
5
|
-
export { Menu, renderMenu_unstable, useMenuContextValues_unstable, useMenu_unstable } from
|
|
6
|
-
export { MenuDivider, menuDividerClassNames, renderMenuDivider_unstable, useMenuDividerStyles_unstable, useMenuDivider_unstable } from
|
|
7
|
-
export { MenuGroup, menuGroupClassNames, renderMenuGroup_unstable, useMenuGroupContextValues_unstable, useMenuGroupStyles_unstable, useMenuGroup_unstable } from
|
|
8
|
-
export { MenuGroupHeader, menuGroupHeaderClassNames, renderMenuGroupHeader_unstable, useMenuGroupHeaderStyles_unstable, useMenuGroupHeader_unstable } from
|
|
9
|
-
export { MenuItem, menuItemClassNames, renderMenuItem_unstable, useMenuItemStyles_unstable, useMenuItem_unstable } from
|
|
10
|
-
export { MenuItemCheckbox, menuItemCheckboxClassNames, renderMenuItemCheckbox_unstable, useMenuItemCheckboxStyles_unstable, useMenuItemCheckbox_unstable } from
|
|
11
|
-
export { MenuItemRadio, menuItemRadioClassNames, renderMenuItemRadio_unstable, useMenuItemRadioStyles_unstable, useMenuItemRadio_unstable } from
|
|
12
|
-
export { MenuList, menuListClassNames, renderMenuList_unstable, useMenuListContextValues_unstable, useMenuListStyles_unstable, useMenuList_unstable } from
|
|
13
|
-
export { MenuPopover, menuPopoverClassNames, renderMenuPopover_unstable, useMenuPopoverStyles_unstable, useMenuPopover_unstable } from
|
|
14
|
-
export { MenuSplitGroup, menuSplitGroupClassNames, renderMenuSplitGroup_unstable, useMenuSplitGroupStyles_unstable, useMenuSplitGroup_unstable } from
|
|
15
|
-
export { MenuTrigger, renderMenuTrigger_unstable, useMenuTrigger_unstable } from
|
|
16
|
-
export { useCheckmarkStyles_unstable } from
|
|
1
|
+
export { MenuProvider, useMenuContext_unstable } from "./contexts/menuContext";
|
|
2
|
+
export { MenuTriggerContextProvider, useMenuTriggerContext_unstable } from "./contexts/menuTriggerContext";
|
|
3
|
+
export { MenuGroupContextProvider, useMenuGroupContext_unstable } from "./contexts/menuGroupContext";
|
|
4
|
+
export { MenuListProvider, useMenuListContext_unstable } from "./contexts/menuListContext";
|
|
5
|
+
export { Menu, renderMenu_unstable, useMenuContextValues_unstable, useMenu_unstable } from "./Menu";
|
|
6
|
+
export { MenuDivider, menuDividerClassNames, renderMenuDivider_unstable, useMenuDividerStyles_unstable, useMenuDivider_unstable } from "./MenuDivider";
|
|
7
|
+
export { MenuGroup, menuGroupClassNames, renderMenuGroup_unstable, useMenuGroupContextValues_unstable, useMenuGroupStyles_unstable, useMenuGroup_unstable } from "./MenuGroup";
|
|
8
|
+
export { MenuGroupHeader, menuGroupHeaderClassNames, renderMenuGroupHeader_unstable, useMenuGroupHeaderStyles_unstable, useMenuGroupHeader_unstable } from "./MenuGroupHeader";
|
|
9
|
+
export { MenuItem, menuItemClassNames, renderMenuItem_unstable, useMenuItemStyles_unstable, useMenuItem_unstable } from "./MenuItem";
|
|
10
|
+
export { MenuItemCheckbox, menuItemCheckboxClassNames, renderMenuItemCheckbox_unstable, useMenuItemCheckboxStyles_unstable, useMenuItemCheckbox_unstable } from "./MenuItemCheckbox";
|
|
11
|
+
export { MenuItemRadio, menuItemRadioClassNames, renderMenuItemRadio_unstable, useMenuItemRadioStyles_unstable, useMenuItemRadio_unstable } from "./MenuItemRadio";
|
|
12
|
+
export { MenuList, menuListClassNames, renderMenuList_unstable, useMenuListContextValues_unstable, useMenuListStyles_unstable, useMenuList_unstable } from "./MenuList";
|
|
13
|
+
export { MenuPopover, menuPopoverClassNames, renderMenuPopover_unstable, useMenuPopoverStyles_unstable, useMenuPopover_unstable } from "./MenuPopover";
|
|
14
|
+
export { MenuSplitGroup, menuSplitGroupClassNames, renderMenuSplitGroup_unstable, useMenuSplitGroupStyles_unstable, useMenuSplitGroup_unstable } from "./MenuSplitGroup";
|
|
15
|
+
export { MenuTrigger, renderMenuTrigger_unstable, useMenuTrigger_unstable } from "./MenuTrigger";
|
|
16
|
+
export { useCheckmarkStyles_unstable } from "./selectable/index";
|
|
17
17
|
//# sourceMappingURL=index.js.map
|