@fluentui-react-native/menu 1.15.0 → 1.15.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.md +22 -0
- package/SPEC.md +8 -4
- package/lib/Menu/Menu.d.ts +2 -2
- package/lib/Menu/Menu.js +12 -12
- package/lib/Menu/Menu.types.d.ts +47 -47
- package/lib/Menu/Menu.types.js +4 -4
- package/lib/Menu/index.d.ts +1 -1
- package/lib/Menu/index.js +1 -1
- package/lib/Menu/renderMenu.android.d.ts +2 -6
- package/lib/Menu/renderMenu.android.js +10 -17
- package/lib/Menu/renderMenu.d.ts +2 -6
- package/lib/Menu/renderMenu.js +5 -8
- package/lib/Menu/useMenu.android.d.ts +1 -1
- package/lib/Menu/useMenu.android.js +245 -251
- package/lib/Menu/useMenu.d.ts +1 -1
- package/lib/Menu/useMenu.js +70 -75
- package/lib/Menu/useMenuContextValue.d.ts +1 -1
- package/lib/Menu/useMenuContextValue.js +4 -4
- package/lib/MenuCallout/MenuCallout.android.d.ts +2 -2
- package/lib/MenuCallout/MenuCallout.android.js +19 -39
- package/lib/MenuCallout/MenuCallout.d.ts +2 -2
- package/lib/MenuCallout/MenuCallout.js +7 -7
- package/lib/MenuCallout/MenuCallout.types.d.ts +13 -13
- package/lib/MenuCallout/MenuCallout.types.d.ts.map +1 -1
- package/lib/MenuCallout/MenuCallout.types.js +1 -1
- package/lib/MenuCallout/index.d.ts +1 -1
- package/lib/MenuCallout/index.js +1 -1
- package/lib/MenuDivider/MenuDivider.d.ts +2 -7
- package/lib/MenuDivider/MenuDivider.js +13 -13
- package/lib/MenuDivider/MenuDivider.styling.d.ts +1 -1
- package/lib/MenuDivider/MenuDivider.styling.js +16 -19
- package/lib/MenuDivider/MenuDivider.types.d.ts +12 -12
- package/lib/MenuDivider/MenuDivider.types.js +1 -1
- package/lib/MenuDivider/MenuDividerTokens.android.d.ts +1 -1
- package/lib/MenuDivider/MenuDividerTokens.android.js +4 -4
- package/lib/MenuDivider/MenuDividerTokens.d.ts +1 -1
- package/lib/MenuDivider/MenuDividerTokens.js +4 -4
- package/lib/MenuDivider/MenuDividerTokens.macos.d.ts +1 -1
- package/lib/MenuDivider/MenuDividerTokens.macos.js +4 -4
- package/lib/MenuDivider/MenuDividerTokens.win32.d.ts +1 -1
- package/lib/MenuDivider/MenuDividerTokens.win32.js +4 -4
- package/lib/MenuDivider/index.d.ts +1 -1
- package/lib/MenuDivider/index.js +1 -1
- package/lib/MenuGroup/MenuGroup.d.ts +2 -7
- package/lib/MenuGroup/MenuGroup.js +51 -63
- package/lib/MenuGroup/MenuGroup.types.d.ts +7 -7
- package/lib/MenuGroup/MenuGroup.types.js +1 -1
- package/lib/MenuGroup/index.d.ts +1 -1
- package/lib/MenuGroup/index.js +1 -1
- package/lib/MenuGroupHeader/MenuGroupHeader.d.ts +2 -7
- package/lib/MenuGroupHeader/MenuGroupHeader.js +14 -14
- package/lib/MenuGroupHeader/MenuGroupHeader.styling.d.ts +1 -1
- package/lib/MenuGroupHeader/MenuGroupHeader.styling.js +13 -16
- package/lib/MenuGroupHeader/MenuGroupHeader.types.d.ts +7 -7
- package/lib/MenuGroupHeader/MenuGroupHeader.types.js +1 -1
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.d.ts +1 -1
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.js +7 -7
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.macos.d.ts +1 -1
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.macos.js +8 -8
- package/lib/MenuGroupHeader/index.d.ts +1 -1
- package/lib/MenuGroupHeader/index.js +1 -1
- package/lib/MenuItem/MenuItem.d.ts +2 -7
- package/lib/MenuItem/MenuItem.js +41 -63
- package/lib/MenuItem/MenuItem.styling.d.ts +1 -1
- package/lib/MenuItem/MenuItem.styling.js +52 -70
- package/lib/MenuItem/MenuItem.types.d.ts +83 -83
- package/lib/MenuItem/MenuItem.types.js +1 -1
- package/lib/MenuItem/MenuItemTokens.android.d.ts +1 -1
- package/lib/MenuItem/MenuItemTokens.android.js +17 -17
- package/lib/MenuItem/MenuItemTokens.d.ts +1 -1
- package/lib/MenuItem/MenuItemTokens.js +35 -35
- package/lib/MenuItem/MenuItemTokens.macos.d.ts +1 -1
- package/lib/MenuItem/MenuItemTokens.macos.js +34 -34
- package/lib/MenuItem/MenuItemTokens.win32.d.ts +1 -1
- package/lib/MenuItem/MenuItemTokens.win32.js +36 -36
- package/lib/MenuItem/index.d.ts +1 -1
- package/lib/MenuItem/index.js +1 -1
- package/lib/MenuItem/useMenuItem.d.ts +1 -1
- package/lib/MenuItem/useMenuItem.js +101 -111
- package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts +3 -11
- package/lib/MenuItemCheckbox/MenuItemCheckbox.js +26 -54
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js +62 -81
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +89 -90
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.android.d.ts +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.android.js +35 -35
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js +44 -44
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +42 -42
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +45 -45
- package/lib/MenuItemCheckbox/index.d.ts +2 -8
- package/lib/MenuItemCheckbox/index.js +1 -1
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts +2 -5
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +104 -129
- package/lib/MenuItemRadio/MenuItemRadio.d.ts +3 -11
- package/lib/MenuItemRadio/MenuItemRadio.js +26 -54
- package/lib/MenuItemRadio/MenuItemRadio.styling.android.d.ts +1 -1
- package/lib/MenuItemRadio/MenuItemRadio.styling.android.js +60 -78
- package/lib/MenuItemRadio/MenuItemRadio.styling.d.ts +1 -1
- package/lib/MenuItemRadio/MenuItemRadio.styling.js +44 -59
- package/lib/MenuItemRadio/MenuItemRadio.types.d.ts +120 -121
- package/lib/MenuItemRadio/MenuItemRadio.types.d.ts.map +1 -1
- package/lib/MenuItemRadio/MenuItemRadio.types.js +1 -1
- package/lib/MenuItemRadio/MenuItemRadioTokens.android.d.ts +1 -1
- package/lib/MenuItemRadio/MenuItemRadioTokens.android.js +38 -38
- package/lib/MenuItemRadio/MenuItemRadioTokens.d.ts +1 -1
- package/lib/MenuItemRadio/MenuItemRadioTokens.js +45 -45
- package/lib/MenuItemRadio/MenuItemRadioTokens.macos.d.ts +1 -1
- package/lib/MenuItemRadio/MenuItemRadioTokens.macos.js +43 -43
- package/lib/MenuItemRadio/index.d.ts +2 -8
- package/lib/MenuItemRadio/index.js +1 -1
- package/lib/MenuItemRadio/useMenuItemRadio.d.ts +1 -1
- package/lib/MenuItemRadio/useMenuItemRadio.js +23 -26
- package/lib/MenuList/MenuList.d.ts +2 -7
- package/lib/MenuList/MenuList.js +54 -70
- package/lib/MenuList/MenuList.styling.d.ts +1 -1
- package/lib/MenuList/MenuList.styling.js +21 -27
- package/lib/MenuList/MenuList.types.d.ts +72 -72
- package/lib/MenuList/MenuList.types.js +1 -1
- package/lib/MenuList/MenuListTokens.android.d.ts +1 -1
- package/lib/MenuList/MenuListTokens.android.js +4 -4
- package/lib/MenuList/MenuListTokens.d.ts +1 -1
- package/lib/MenuList/MenuListTokens.js +6 -6
- package/lib/MenuList/MenuListTokens.macos.d.ts +1 -1
- package/lib/MenuList/MenuListTokens.macos.js +4 -4
- package/lib/MenuList/MenuListTokens.win32.d.ts +1 -1
- package/lib/MenuList/MenuListTokens.win32.js +9 -9
- package/lib/MenuList/index.d.ts +1 -1
- package/lib/MenuList/index.js +1 -1
- package/lib/MenuList/useMenuList.d.ts +1 -1
- package/lib/MenuList/useMenuList.js +142 -159
- package/lib/MenuList/useMenuListContextValue.d.ts +1 -1
- package/lib/MenuList/useMenuListContextValue.js +2 -2
- package/lib/MenuPopover/MenuPopover.d.ts +3 -9
- package/lib/MenuPopover/MenuPopover.d.ts.map +1 -1
- package/lib/MenuPopover/MenuPopover.js +35 -35
- package/lib/MenuPopover/MenuPopover.types.d.ts +14 -14
- package/lib/MenuPopover/MenuPopover.types.d.ts.map +1 -1
- package/lib/MenuPopover/MenuPopover.types.js +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.android.d.ts +3 -7
- package/lib/MenuPopover/MenuPopoverTokens.android.d.ts.map +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.android.js +3 -6
- package/lib/MenuPopover/MenuPopoverTokens.d.ts +3 -7
- package/lib/MenuPopover/MenuPopoverTokens.d.ts.map +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.js +2 -5
- package/lib/MenuPopover/MenuPopoverTokens.macos.d.ts +3 -7
- package/lib/MenuPopover/MenuPopoverTokens.macos.d.ts.map +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.macos.js +7 -10
- package/lib/MenuPopover/MenuPopoverTokens.macos.js.map +1 -1
- package/lib/MenuPopover/index.d.ts +1 -1
- package/lib/MenuPopover/index.js +1 -1
- package/lib/MenuPopover/useMenuPopover.d.ts +2 -2
- package/lib/MenuPopover/useMenuPopover.js +79 -96
- package/lib/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.d.ts +3 -3
- package/lib/MenuTrigger/MenuTrigger.js +16 -16
- package/lib/MenuTrigger/MenuTrigger.types.d.ts +13 -13
- package/lib/MenuTrigger/MenuTrigger.types.js +1 -1
- package/lib/MenuTrigger/index.d.ts +1 -1
- package/lib/MenuTrigger/index.js +1 -1
- package/lib/MenuTrigger/useMenuTrigger.d.ts +1 -1
- package/lib/MenuTrigger/useMenuTrigger.js +70 -99
- package/lib/MenuTrigger/useMergeRefs.d.ts +1 -1
- package/lib/MenuTrigger/useMergeRefs.js +14 -16
- package/lib/__tests__/Menu.test.d.ts +1 -1
- package/lib/__tests__/Menu.test.js +122 -230
- package/lib/consts.d.ts +1 -1
- package/lib/consts.js +3 -3
- package/lib/context/index.d.ts +1 -1
- package/lib/context/index.js +1 -1
- package/lib/context/menuContext.d.ts +5 -5
- package/lib/context/menuContext.js +15 -15
- package/lib/context/menuListContext.d.ts +4 -4
- package/lib/context/menuListContext.js +12 -12
- package/lib/context/menuTriggerContext.d.ts +1 -1
- package/lib/context/menuTriggerContext.js +1 -1
- package/lib/index.d.ts +4 -26
- package/lib/index.js +2 -12
- package/lib-commonjs/Menu/Menu.d.ts +2 -2
- package/lib-commonjs/Menu/Menu.js +23 -25
- package/lib-commonjs/Menu/Menu.types.d.ts +47 -47
- package/lib-commonjs/Menu/Menu.types.js +6 -6
- package/lib-commonjs/Menu/index.d.ts +1 -1
- package/lib-commonjs/Menu/index.js +11 -31
- package/lib-commonjs/Menu/renderMenu.android.d.ts +2 -6
- package/lib-commonjs/Menu/renderMenu.android.js +14 -26
- package/lib-commonjs/Menu/renderMenu.d.ts +2 -6
- package/lib-commonjs/Menu/renderMenu.js +8 -11
- package/lib-commonjs/Menu/useMenu.android.d.ts +1 -1
- package/lib-commonjs/Menu/useMenu.android.js +280 -303
- package/lib-commonjs/Menu/useMenu.d.ts +1 -1
- package/lib-commonjs/Menu/useMenu.js +79 -86
- package/lib-commonjs/Menu/useMenuContextValue.d.ts +1 -1
- package/lib-commonjs/Menu/useMenuContextValue.js +10 -12
- package/lib-commonjs/MenuCallout/MenuCallout.android.d.ts +2 -2
- package/lib-commonjs/MenuCallout/MenuCallout.android.js +25 -48
- package/lib-commonjs/MenuCallout/MenuCallout.d.ts +2 -2
- package/lib-commonjs/MenuCallout/MenuCallout.js +12 -12
- package/lib-commonjs/MenuCallout/MenuCallout.types.d.ts +13 -13
- package/lib-commonjs/MenuCallout/MenuCallout.types.d.ts.map +1 -1
- package/lib-commonjs/MenuCallout/MenuCallout.types.js +3 -3
- package/lib-commonjs/MenuCallout/index.d.ts +1 -1
- package/lib-commonjs/MenuCallout/index.js +7 -17
- package/lib-commonjs/MenuDivider/MenuDivider.d.ts +2 -7
- package/lib-commonjs/MenuDivider/MenuDivider.js +19 -19
- package/lib-commonjs/MenuDivider/MenuDivider.styling.d.ts +1 -1
- package/lib-commonjs/MenuDivider/MenuDivider.styling.js +22 -25
- package/lib-commonjs/MenuDivider/MenuDivider.types.d.ts +12 -12
- package/lib-commonjs/MenuDivider/MenuDivider.types.js +3 -3
- package/lib-commonjs/MenuDivider/MenuDividerTokens.android.d.ts +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.android.js +7 -7
- package/lib-commonjs/MenuDivider/MenuDividerTokens.d.ts +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.js +7 -7
- package/lib-commonjs/MenuDivider/MenuDividerTokens.macos.d.ts +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.macos.js +7 -7
- package/lib-commonjs/MenuDivider/MenuDividerTokens.win32.d.ts +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.win32.js +7 -7
- package/lib-commonjs/MenuDivider/index.d.ts +1 -1
- package/lib-commonjs/MenuDivider/index.js +7 -17
- package/lib-commonjs/MenuGroup/MenuGroup.d.ts +2 -7
- package/lib-commonjs/MenuGroup/MenuGroup.js +62 -78
- package/lib-commonjs/MenuGroup/MenuGroup.types.d.ts +7 -7
- package/lib-commonjs/MenuGroup/MenuGroup.types.js +3 -3
- package/lib-commonjs/MenuGroup/index.d.ts +1 -1
- package/lib-commonjs/MenuGroup/index.js +7 -17
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.d.ts +2 -7
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.js +20 -20
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.styling.d.ts +1 -1
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.styling.js +19 -22
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.types.d.ts +7 -7
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.types.js +3 -3
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.d.ts +1 -1
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.js +10 -10
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.macos.d.ts +1 -1
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.macos.js +11 -11
- package/lib-commonjs/MenuGroupHeader/index.d.ts +1 -1
- package/lib-commonjs/MenuGroupHeader/index.js +7 -17
- package/lib-commonjs/MenuItem/MenuItem.d.ts +2 -7
- package/lib-commonjs/MenuItem/MenuItem.js +51 -73
- package/lib-commonjs/MenuItem/MenuItem.styling.d.ts +1 -1
- package/lib-commonjs/MenuItem/MenuItem.styling.js +59 -80
- package/lib-commonjs/MenuItem/MenuItem.types.d.ts +83 -83
- package/lib-commonjs/MenuItem/MenuItem.types.js +3 -3
- package/lib-commonjs/MenuItem/MenuItemTokens.android.d.ts +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.android.js +20 -20
- package/lib-commonjs/MenuItem/MenuItemTokens.d.ts +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.js +38 -38
- package/lib-commonjs/MenuItem/MenuItemTokens.macos.d.ts +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.macos.js +37 -37
- package/lib-commonjs/MenuItem/MenuItemTokens.win32.d.ts +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.win32.js +39 -39
- package/lib-commonjs/MenuItem/index.d.ts +1 -1
- package/lib-commonjs/MenuItem/index.js +9 -24
- package/lib-commonjs/MenuItem/useMenuItem.d.ts +1 -1
- package/lib-commonjs/MenuItem/useMenuItem.js +140 -169
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.d.ts +3 -11
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js +37 -65
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.js +69 -91
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +89 -90
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.js +3 -3
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.android.d.ts +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.android.js +38 -38
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.js +47 -47
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +45 -45
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +48 -48
- package/lib-commonjs/MenuItemCheckbox/index.d.ts +2 -8
- package/lib-commonjs/MenuItemCheckbox/index.js +10 -30
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.d.ts +2 -5
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js +143 -185
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.d.ts +3 -11
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.js +37 -65
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.android.d.ts +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.android.js +67 -88
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.d.ts +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.js +51 -69
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.types.d.ts +120 -121
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.types.d.ts.map +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.types.js +3 -3
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.android.d.ts +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.android.js +41 -41
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.d.ts +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.js +48 -48
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.macos.d.ts +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.macos.js +46 -46
- package/lib-commonjs/MenuItemRadio/index.d.ts +2 -8
- package/lib-commonjs/MenuItemRadio/index.js +9 -24
- package/lib-commonjs/MenuItemRadio/useMenuItemRadio.d.ts +1 -1
- package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js +58 -78
- package/lib-commonjs/MenuList/MenuList.d.ts +2 -7
- package/lib-commonjs/MenuList/MenuList.js +69 -87
- package/lib-commonjs/MenuList/MenuList.styling.d.ts +1 -1
- package/lib-commonjs/MenuList/MenuList.styling.js +28 -34
- package/lib-commonjs/MenuList/MenuList.types.d.ts +72 -72
- package/lib-commonjs/MenuList/MenuList.types.js +3 -3
- package/lib-commonjs/MenuList/MenuListTokens.android.d.ts +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.android.js +7 -7
- package/lib-commonjs/MenuList/MenuListTokens.d.ts +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.js +9 -9
- package/lib-commonjs/MenuList/MenuListTokens.macos.d.ts +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.macos.js +7 -7
- package/lib-commonjs/MenuList/MenuListTokens.win32.d.ts +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.win32.js +12 -12
- package/lib-commonjs/MenuList/index.d.ts +1 -1
- package/lib-commonjs/MenuList/index.js +11 -31
- package/lib-commonjs/MenuList/useMenuList.d.ts +1 -1
- package/lib-commonjs/MenuList/useMenuList.js +151 -170
- package/lib-commonjs/MenuList/useMenuListContextValue.d.ts +1 -1
- package/lib-commonjs/MenuList/useMenuListContextValue.js +4 -4
- package/lib-commonjs/MenuPopover/MenuPopover.d.ts +3 -9
- package/lib-commonjs/MenuPopover/MenuPopover.d.ts.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopover.js +48 -50
- package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts +14 -14
- package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopover.types.js +3 -3
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.android.d.ts +3 -7
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.android.d.ts.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.android.js +9 -12
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.d.ts +3 -7
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.d.ts.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.js +6 -9
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.macos.d.ts +3 -7
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.macos.d.ts.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.macos.js +12 -15
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuPopover/index.d.ts +1 -1
- package/lib-commonjs/MenuPopover/index.js +9 -24
- package/lib-commonjs/MenuPopover/useMenuPopover.d.ts +2 -2
- package/lib-commonjs/MenuPopover/useMenuPopover.js +87 -106
- package/lib-commonjs/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts +3 -3
- package/lib-commonjs/MenuTrigger/MenuTrigger.js +52 -69
- package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts +13 -13
- package/lib-commonjs/MenuTrigger/MenuTrigger.types.js +3 -3
- package/lib-commonjs/MenuTrigger/index.d.ts +1 -1
- package/lib-commonjs/MenuTrigger/index.js +9 -24
- package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts +1 -1
- package/lib-commonjs/MenuTrigger/useMenuTrigger.js +80 -111
- package/lib-commonjs/MenuTrigger/useMergeRefs.d.ts +1 -1
- package/lib-commonjs/MenuTrigger/useMergeRefs.js +46 -65
- package/lib-commonjs/__tests__/Menu.test.d.ts +1 -1
- package/lib-commonjs/__tests__/Menu.test.js +169 -333
- package/lib-commonjs/consts.d.ts +1 -1
- package/lib-commonjs/consts.js +6 -6
- package/lib-commonjs/context/index.d.ts +1 -1
- package/lib-commonjs/context/index.js +16 -70
- package/lib-commonjs/context/menuContext.d.ts +5 -5
- package/lib-commonjs/context/menuContext.js +47 -64
- package/lib-commonjs/context/menuListContext.d.ts +4 -4
- package/lib-commonjs/context/menuListContext.js +44 -61
- package/lib-commonjs/context/menuTriggerContext.d.ts +1 -1
- package/lib-commonjs/context/menuTriggerContext.js +7 -9
- package/lib-commonjs/index.d.ts +4 -26
- package/lib-commonjs/index.js +56 -296
- package/package.json +28 -27
- package/src/MenuCallout/MenuCallout.types.ts +12 -13
- package/src/MenuItemCheckbox/MenuItemCheckbox.types.ts +4 -2
- package/src/MenuItemRadio/MenuItemRadio.types.ts +4 -2
- package/src/MenuPopover/MenuPopover.types.ts +12 -13
- package/src/MenuPopover/MenuPopoverTokens.macos.ts +2 -2
- package/src/MenuPopover/useMenuPopover.ts +1 -1
|
@@ -4,103 +4,86 @@ import { useMenuContext } from '../context/menuContext';
|
|
|
4
4
|
const controlledDismissBehaviors = ['preventDismissOnKeyDown', 'preventDismissOnClickOutside'];
|
|
5
5
|
const stopPropagationKeys = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Tab', 'Home', 'End', 'Escape'];
|
|
6
6
|
export const useMenuPopover = (props) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
},
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
7
|
+
const context = useMenuContext();
|
|
8
|
+
const { setOpen, triggerRef, isControlled, isSubmenu, openOnHover, parentPopoverHoverOutTimer, popoverHoverOutTimer, setPopoverHoverOutTimer, shouldFocusOnContainer, triggerHoverOutTimer, } = context;
|
|
9
|
+
const { onKeyDown: onKeyDownProp, onKeyUp: onKeyUpProp } = props;
|
|
10
|
+
const onDismiss = React.useCallback(() => {
|
|
11
|
+
props.onDismiss?.();
|
|
12
|
+
(setOpen(undefined, false /* isOpen */), [setOpen]);
|
|
13
|
+
}, [props.onDismiss, setOpen]);
|
|
14
|
+
const dismissBehaviors = isControlled ? controlledDismissBehaviors : undefined;
|
|
15
|
+
const directionalHint = props.directionalHint ?? getDirectionalHint(isSubmenu, I18nManager.isRTL);
|
|
16
|
+
const setInitialFocus = true;
|
|
17
|
+
const doNotTakePointerCapture = props.doNotTakePointerCapture ?? openOnHover;
|
|
18
|
+
const accessibilityRole = 'menu';
|
|
19
|
+
const onMouseEnter = React.useCallback(() => {
|
|
20
|
+
clearTimeout(triggerHoverOutTimer);
|
|
21
|
+
clearTimeout(popoverHoverOutTimer);
|
|
22
|
+
clearTimeout(parentPopoverHoverOutTimer);
|
|
23
|
+
}, [parentPopoverHoverOutTimer, popoverHoverOutTimer, triggerHoverOutTimer]);
|
|
24
|
+
const onMouseLeave = React.useCallback(() => {
|
|
25
|
+
if (!openOnHover) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const timer = setTimeout(() => {
|
|
29
|
+
setOpen(undefined, false /* isOpen */);
|
|
30
|
+
}, 500);
|
|
31
|
+
setPopoverHoverOutTimer(timer);
|
|
32
|
+
}, [openOnHover, setOpen, setPopoverHoverOutTimer]);
|
|
33
|
+
const onKeyDown = React.useCallback((e) => {
|
|
34
|
+
onKeyDownProp && onKeyDownProp(e);
|
|
35
|
+
// Mark key events that move selection as handled.
|
|
36
|
+
// These key events are handled on the native side.
|
|
37
|
+
if (stopPropagationKeys.includes(e.nativeEvent.key)) {
|
|
38
|
+
e.stopPropagation();
|
|
39
|
+
}
|
|
40
|
+
}, [onKeyDownProp]);
|
|
41
|
+
const onKeyUp = React.useCallback((e) => {
|
|
42
|
+
onKeyUpProp && onKeyUpProp(e);
|
|
43
|
+
// Mark key events that move selection as handled.
|
|
44
|
+
// These key events are handled on the native side.
|
|
45
|
+
if (stopPropagationKeys.includes(e.nativeEvent.key)) {
|
|
46
|
+
e.stopPropagation();
|
|
47
|
+
}
|
|
48
|
+
}, [onKeyUpProp]);
|
|
49
|
+
const [canFocusOnPopover, setCanFocusOnPopover] = React.useState(shouldFocusOnContainer);
|
|
50
|
+
const onBlur = React.useCallback(() => {
|
|
51
|
+
setCanFocusOnPopover(false);
|
|
52
|
+
}, [setCanFocusOnPopover]);
|
|
53
|
+
React.useEffect(() => {
|
|
54
|
+
return function cleanup() {
|
|
55
|
+
clearTimeout(popoverHoverOutTimer);
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
return {
|
|
59
|
+
props: {
|
|
60
|
+
accessibilityRole,
|
|
61
|
+
target: triggerRef,
|
|
62
|
+
onDismiss,
|
|
63
|
+
onShow: props.onShow,
|
|
64
|
+
directionalHint,
|
|
65
|
+
dismissBehaviors,
|
|
66
|
+
doNotTakePointerCapture,
|
|
67
|
+
setInitialFocus,
|
|
68
|
+
},
|
|
69
|
+
innerView: {
|
|
70
|
+
onMouseEnter,
|
|
71
|
+
onMouseLeave,
|
|
72
|
+
onKeyDown,
|
|
73
|
+
onKeyUp,
|
|
74
|
+
accessible: shouldFocusOnContainer,
|
|
75
|
+
focusable: canFocusOnPopover,
|
|
76
|
+
onBlur,
|
|
77
|
+
},
|
|
73
78
|
};
|
|
74
|
-
});
|
|
75
|
-
return {
|
|
76
|
-
props: {
|
|
77
|
-
accessibilityRole,
|
|
78
|
-
target: triggerRef,
|
|
79
|
-
onDismiss,
|
|
80
|
-
onShow: props.onShow,
|
|
81
|
-
directionalHint,
|
|
82
|
-
dismissBehaviors,
|
|
83
|
-
doNotTakePointerCapture,
|
|
84
|
-
setInitialFocus,
|
|
85
|
-
},
|
|
86
|
-
innerView: {
|
|
87
|
-
onMouseEnter,
|
|
88
|
-
onMouseLeave,
|
|
89
|
-
onKeyDown,
|
|
90
|
-
onKeyUp,
|
|
91
|
-
accessible: shouldFocusOnContainer,
|
|
92
|
-
focusable: canFocusOnPopover,
|
|
93
|
-
onBlur,
|
|
94
|
-
},
|
|
95
|
-
};
|
|
96
79
|
};
|
|
97
80
|
const getDirectionalHint = (isSubmenu, isRtl) => {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
81
|
+
if (!isSubmenu) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
if (isRtl) {
|
|
85
|
+
return 'leftTopEdge';
|
|
86
|
+
}
|
|
87
|
+
return 'rightTopEdge';
|
|
105
88
|
};
|
|
106
|
-
//# sourceMappingURL=useMenuPopover.js.map
|
|
89
|
+
//# sourceMappingURL=useMenuPopover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAK3C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,0BAA0B,GAAG,CAAC,yBAAyB,EAAE,8BAA8B,CAAuB,CAAC;AACrH,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC;AAEzH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAoB,EAAE,CAAC;IAC3E,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,EACJ,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAS,EACT,WAAW,EACX,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,GACrB,GAAG,OAAO,CAAC;IAEZ,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAEjE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QACxC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACpB,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAAA,
|
|
1
|
+
{"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { MenuTriggerProps } from './MenuTrigger.types';
|
|
3
|
-
export declare function MenuTrigger(props: MenuTriggerProps): import(
|
|
3
|
+
export declare function MenuTrigger(props: MenuTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
export declare namespace MenuTrigger {
|
|
5
|
-
|
|
5
|
+
var displayName: string;
|
|
6
6
|
}
|
|
7
7
|
export default MenuTrigger;
|
|
8
|
-
//# sourceMappingURL=MenuTrigger.d.ts.map
|
|
8
|
+
//# sourceMappingURL=MenuTrigger.d.ts.map
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { jsx as _jsx } from
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { menuTriggerName } from './MenuTrigger.types';
|
|
4
4
|
import { useMenuTrigger } from './useMenuTrigger';
|
|
5
5
|
import { MenuTriggerProvider } from '../context/menuTriggerContext';
|
|
6
6
|
import { extractProps } from '@fluentui-react-native/framework-base';
|
|
7
7
|
export const MenuTrigger = (props) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
if (__DEV__) {
|
|
9
|
+
if (!React.Children.only(props.children)) {
|
|
10
|
+
console.warn('Only expecting one child for MenuTrigger');
|
|
11
|
+
}
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return _jsx(MenuTriggerProvider, { value: menuTrigger.hasSubmenu, children: revised });
|
|
13
|
+
const childrenProps = extractProps(props.children);
|
|
14
|
+
const menuTrigger = useMenuTrigger(childrenProps);
|
|
15
|
+
// In order to properly support accessibility without erasing props set on the
|
|
16
|
+
// child component which may affect accessibility, we need to modify the
|
|
17
|
+
// state in the inner render so we can access the child component and its props.
|
|
18
|
+
const revised = React.cloneElement(props.children, {
|
|
19
|
+
...(childrenProps?.tooltip && { alwaysShowToolTip: true }),
|
|
20
|
+
...menuTrigger.props,
|
|
21
|
+
});
|
|
22
|
+
return _jsx(MenuTriggerProvider, { value: menuTrigger.hasSubmenu, children: revised });
|
|
23
23
|
};
|
|
24
24
|
MenuTrigger.displayName = menuTriggerName;
|
|
25
25
|
export default MenuTrigger;
|
|
26
|
-
//# sourceMappingURL=MenuTrigger.js.map
|
|
26
|
+
//# sourceMappingURL=MenuTrigger.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type * as React from 'react';
|
|
2
2
|
import type { MouseEvent } from 'react-native';
|
|
3
3
|
import type { PressablePropsExtended } from '@fluentui-react-native/interactive-hooks';
|
|
4
|
-
export declare const menuTriggerName =
|
|
4
|
+
export declare const menuTriggerName = "MenuTrigger";
|
|
5
5
|
/**
|
|
6
6
|
* Represents single react element (or null), which is the
|
|
7
7
|
* type of the child of MenuTrigger. Notably this excludes string, number,
|
|
@@ -9,21 +9,21 @@ export declare const menuTriggerName = 'MenuTrigger';
|
|
|
9
9
|
*/
|
|
10
10
|
type SingleReactElement = React.ReactElement | null;
|
|
11
11
|
export interface MenuTriggerProps {
|
|
12
|
-
|
|
12
|
+
children?: SingleReactElement;
|
|
13
13
|
}
|
|
14
14
|
export interface MenuTriggerChildProps extends Omit<PressablePropsExtended, 'onPress'> {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
/**
|
|
16
|
+
* A RefObject to refer to the trigger component.
|
|
17
|
+
*/
|
|
18
|
+
componentRef?: React.RefObject<React.Component>;
|
|
19
|
+
/**
|
|
20
|
+
* A callback to call on button click event
|
|
21
|
+
*/
|
|
22
|
+
onClick?: (e: MouseEvent) => void;
|
|
23
23
|
}
|
|
24
24
|
export interface MenuTriggerState {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
props: MenuTriggerChildProps;
|
|
26
|
+
hasSubmenu: boolean;
|
|
27
27
|
}
|
|
28
28
|
export {};
|
|
29
|
-
//# sourceMappingURL=MenuTrigger.types.d.ts.map
|
|
29
|
+
//# sourceMappingURL=MenuTrigger.types.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const menuTriggerName = 'MenuTrigger';
|
|
2
|
-
//# sourceMappingURL=MenuTrigger.types.js.map
|
|
2
|
+
//# sourceMappingURL=MenuTrigger.types.js.map
|
|
@@ -2,4 +2,4 @@ export { MenuTrigger } from './MenuTrigger';
|
|
|
2
2
|
export { menuTriggerName } from './MenuTrigger.types';
|
|
3
3
|
export type { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
|
|
4
4
|
export { useMenuTrigger } from './useMenuTrigger';
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
package/lib/MenuTrigger/index.js
CHANGED
|
@@ -7,105 +7,76 @@ const baseAccessibilityActions = Platform.OS === 'win32' ? [{ name: 'Expand' },
|
|
|
7
7
|
const expandedState = { expanded: true };
|
|
8
8
|
const collapsedState = { expanded: false };
|
|
9
9
|
export const useMenuTrigger = (childProps) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
open,
|
|
14
|
-
openOnHover,
|
|
15
|
-
popoverHoverOutTimer,
|
|
16
|
-
setOpen,
|
|
17
|
-
setTriggerHoverOutTimer,
|
|
18
|
-
triggerHoverOutTimer,
|
|
19
|
-
triggerRef,
|
|
20
|
-
} = context;
|
|
21
|
-
const {
|
|
22
|
-
accessibilityActions: childAccessibilityActions,
|
|
23
|
-
accessibilityState: childAccessibilityState,
|
|
24
|
-
onAccessibilityAction: childOnAccessibilityAction,
|
|
25
|
-
accessibilityPosInSet: childaccessibilityPosInSet, // win32
|
|
10
|
+
const context = useMenuContext();
|
|
11
|
+
const { hoverDelay = hoverDelayDefault, open, openOnHover, popoverHoverOutTimer, setOpen, setTriggerHoverOutTimer, triggerHoverOutTimer, triggerRef, } = context;
|
|
12
|
+
const { accessibilityActions: childAccessibilityActions, accessibilityState: childAccessibilityState, onAccessibilityAction: childOnAccessibilityAction, accessibilityPosInSet: childaccessibilityPosInSet, // win32
|
|
26
13
|
accessibilitySetSize: childAccessibilitySetSize, // win32
|
|
27
|
-
onClick: childOnClick,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
} = childProps;
|
|
32
|
-
const accessibilityActions = React.useMemo(() => {
|
|
33
|
-
if (childAccessibilityActions) {
|
|
34
|
-
return [...baseAccessibilityActions, ...childAccessibilityActions];
|
|
35
|
-
}
|
|
36
|
-
return baseAccessibilityActions;
|
|
37
|
-
}, [childAccessibilityActions]);
|
|
38
|
-
const accessibilityState = React.useMemo(() => {
|
|
39
|
-
const baseState = open ? expandedState : collapsedState;
|
|
40
|
-
if (childAccessibilityState) {
|
|
41
|
-
return { ...baseState, ...childAccessibilityState };
|
|
42
|
-
}
|
|
43
|
-
return baseState;
|
|
44
|
-
}, [childAccessibilityState, open]);
|
|
45
|
-
const onAccessibilityAction = React.useCallback(
|
|
46
|
-
(e) => {
|
|
47
|
-
if (Platform.OS === 'win32') {
|
|
48
|
-
switch (e.nativeEvent.actionName) {
|
|
49
|
-
case 'Expand':
|
|
50
|
-
setOpen(e, true /* isOpen */);
|
|
51
|
-
break;
|
|
52
|
-
case 'Collapse':
|
|
53
|
-
setOpen(e, false /* isOpen */);
|
|
54
|
-
break;
|
|
14
|
+
onClick: childOnClick, onHoverIn: childOnHoverIn, onHoverOut: childOnHoverOut, componentRef: childComponentRef, } = childProps;
|
|
15
|
+
const accessibilityActions = React.useMemo(() => {
|
|
16
|
+
if (childAccessibilityActions) {
|
|
17
|
+
return [...baseAccessibilityActions, ...childAccessibilityActions];
|
|
55
18
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
(e) => {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
19
|
+
return baseAccessibilityActions;
|
|
20
|
+
}, [childAccessibilityActions]);
|
|
21
|
+
const accessibilityState = React.useMemo(() => {
|
|
22
|
+
const baseState = open ? expandedState : collapsedState;
|
|
23
|
+
if (childAccessibilityState) {
|
|
24
|
+
return { ...baseState, ...childAccessibilityState };
|
|
25
|
+
}
|
|
26
|
+
return baseState;
|
|
27
|
+
}, [childAccessibilityState, open]);
|
|
28
|
+
const onAccessibilityAction = React.useCallback((e) => {
|
|
29
|
+
if (Platform.OS === 'win32') {
|
|
30
|
+
switch (e.nativeEvent.actionName) {
|
|
31
|
+
case 'Expand':
|
|
32
|
+
setOpen(e, true /* isOpen */);
|
|
33
|
+
break;
|
|
34
|
+
case 'Collapse':
|
|
35
|
+
setOpen(e, false /* isOpen */);
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
childOnAccessibilityAction && childOnAccessibilityAction(e);
|
|
40
|
+
}, [childOnAccessibilityAction, setOpen]);
|
|
41
|
+
const onHoverIn = React.useCallback((e) => {
|
|
42
|
+
if (openOnHover) {
|
|
43
|
+
clearTimeout(popoverHoverOutTimer);
|
|
44
|
+
clearTimeout(triggerHoverOutTimer);
|
|
45
|
+
e.persist();
|
|
46
|
+
setTimeout(() => {
|
|
47
|
+
setOpen(e, true /* isOpen */);
|
|
48
|
+
}, hoverDelay);
|
|
49
|
+
}
|
|
50
|
+
childOnHoverIn && childOnHoverIn(e);
|
|
51
|
+
}, [childOnHoverIn, hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
|
|
52
|
+
const onHoverOut = React.useCallback((e) => {
|
|
53
|
+
if (openOnHover) {
|
|
54
|
+
e.persist();
|
|
55
|
+
const timer = setTimeout(() => {
|
|
56
|
+
setOpen(e, false /* isOpen */);
|
|
57
|
+
}, hoverDelay);
|
|
58
|
+
setTriggerHoverOutTimer(timer);
|
|
59
|
+
}
|
|
60
|
+
childOnHoverOut && childOnHoverOut(e);
|
|
61
|
+
}, [childOnHoverOut, hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer]);
|
|
62
|
+
const onClick = React.useCallback((e) => {
|
|
63
|
+
setOpen(e, !open);
|
|
64
|
+
childOnClick && childOnClick(e);
|
|
65
|
+
}, [childOnClick, open, setOpen]);
|
|
66
|
+
const ref = useMergedRefs(triggerRef, childComponentRef);
|
|
67
|
+
return {
|
|
68
|
+
props: {
|
|
69
|
+
onClick,
|
|
70
|
+
onHoverIn,
|
|
71
|
+
onHoverOut,
|
|
72
|
+
componentRef: ref,
|
|
73
|
+
accessibilityState,
|
|
74
|
+
accessibilityActions,
|
|
75
|
+
onAccessibilityAction,
|
|
76
|
+
accessibilityPosInSet: childaccessibilityPosInSet ?? context.accessibilityPosInSet, // win32
|
|
77
|
+
accessibilitySetSize: childAccessibilitySetSize ?? context.accessibilitySetSize, // win32
|
|
78
|
+
},
|
|
79
|
+
hasSubmenu: context.isSubmenu,
|
|
80
|
+
};
|
|
110
81
|
};
|
|
111
|
-
//# sourceMappingURL=useMenuTrigger.js.map
|
|
82
|
+
//# sourceMappingURL=useMenuTrigger.js.map
|
|
@@ -17,4 +17,4 @@ export type RefObjectFunction<T> = React.RefObject<T> & ((value: T) => void);
|
|
|
17
17
|
* @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
|
|
18
18
|
*/
|
|
19
19
|
export declare function useMergedRefs<T>(...refs: (React.Ref<T> | undefined)[]): RefObjectFunction<T>;
|
|
20
|
-
//# sourceMappingURL=useMergeRefs.d.ts.map
|
|
20
|
+
//# sourceMappingURL=useMergeRefs.d.ts.map
|
|
@@ -12,21 +12,19 @@ import * as React from 'react';
|
|
|
12
12
|
* @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
|
|
13
13
|
*/
|
|
14
14
|
export function useMergedRefs(...refs) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
15
|
+
const mergedCallback = React.useCallback((value) => {
|
|
16
|
+
// Update the "current" prop hanging on the function.
|
|
17
|
+
mergedCallback.current = value;
|
|
18
|
+
for (const ref of refs) {
|
|
19
|
+
if (typeof ref === 'function') {
|
|
20
|
+
ref(value);
|
|
21
|
+
}
|
|
22
|
+
else if (ref) {
|
|
23
|
+
// work around the immutability of the React.Ref type
|
|
24
|
+
ref.current = value;
|
|
25
|
+
}
|
|
25
26
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
[...refs],
|
|
29
|
-
);
|
|
30
|
-
return mergedCallback;
|
|
27
|
+
}, [...refs]);
|
|
28
|
+
return mergedCallback;
|
|
31
29
|
}
|
|
32
|
-
//# sourceMappingURL=useMergeRefs.js.map
|
|
30
|
+
//# sourceMappingURL=useMergeRefs.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=Menu.test.d.ts.map
|
|
2
|
+
//# sourceMappingURL=Menu.test.d.ts.map
|