@fluentui-react-native/menu 1.4.28 → 1.4.30

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.
Files changed (241) hide show
  1. package/CHANGELOG.json +79 -1
  2. package/CHANGELOG.md +26 -2
  3. package/SPEC.md +46 -0
  4. package/lib/Menu/Menu.d.ts +4 -0
  5. package/lib/Menu/Menu.d.ts.map +1 -0
  6. package/lib/Menu/Menu.js +35 -0
  7. package/lib/Menu/Menu.js.map +1 -0
  8. package/lib/Menu/Menu.types.d.ts +40 -0
  9. package/lib/Menu/Menu.types.d.ts.map +1 -0
  10. package/lib/Menu/Menu.types.js +2 -0
  11. package/lib/Menu/Menu.types.js.map +1 -0
  12. package/lib/Menu/index.d.ts +6 -0
  13. package/lib/Menu/index.d.ts.map +1 -0
  14. package/lib/Menu/index.js +5 -0
  15. package/lib/Menu/index.js.map +1 -0
  16. package/lib/Menu/useMenu.d.ts +3 -0
  17. package/lib/Menu/useMenu.d.ts.map +1 -0
  18. package/lib/Menu/useMenu.js +76 -0
  19. package/lib/Menu/useMenu.js.map +1 -0
  20. package/lib/Menu/useMenuContextValue.d.ts +4 -0
  21. package/lib/Menu/useMenuContextValue.d.ts.map +1 -0
  22. package/lib/Menu/useMenuContextValue.js +8 -0
  23. package/lib/Menu/useMenuContextValue.js.map +1 -0
  24. package/lib/MenuDivider/MenuDivider.d.ts +2 -0
  25. package/lib/MenuDivider/MenuDivider.d.ts.map +1 -0
  26. package/lib/MenuDivider/MenuDivider.js +15 -0
  27. package/lib/MenuDivider/MenuDivider.js.map +1 -0
  28. package/lib/MenuDivider/MenuDivider.styling.d.ts +4 -0
  29. package/lib/MenuDivider/MenuDivider.styling.d.ts.map +1 -0
  30. package/lib/MenuDivider/MenuDivider.styling.js +19 -0
  31. package/lib/MenuDivider/MenuDivider.styling.js.map +1 -0
  32. package/lib/MenuDivider/MenuDivider.types.d.ts +21 -0
  33. package/lib/MenuDivider/MenuDivider.types.d.ts.map +1 -0
  34. package/lib/MenuDivider/MenuDivider.types.js +2 -0
  35. package/lib/MenuDivider/MenuDivider.types.js.map +1 -0
  36. package/lib/MenuDivider/MenuDividerTokens.d.ts +5 -0
  37. package/lib/MenuDivider/MenuDividerTokens.d.ts.map +1 -0
  38. package/lib/MenuDivider/MenuDividerTokens.js +7 -0
  39. package/lib/MenuDivider/MenuDividerTokens.js.map +1 -0
  40. package/lib/MenuDivider/MenuDividerTokens.macos.d.ts +5 -0
  41. package/lib/MenuDivider/MenuDividerTokens.macos.d.ts.map +1 -0
  42. package/lib/MenuDivider/MenuDividerTokens.macos.js +7 -0
  43. package/lib/MenuDivider/MenuDividerTokens.macos.js.map +1 -0
  44. package/lib/MenuDivider/MenuDividerTokens.win32.d.ts +5 -0
  45. package/lib/MenuDivider/MenuDividerTokens.win32.d.ts.map +1 -0
  46. package/lib/MenuDivider/MenuDividerTokens.win32.js +7 -0
  47. package/lib/MenuDivider/MenuDividerTokens.win32.js.map +1 -0
  48. package/lib/MenuDivider/index.d.ts +4 -0
  49. package/lib/MenuDivider/index.d.ts.map +1 -0
  50. package/lib/MenuDivider/index.js +3 -0
  51. package/lib/MenuDivider/index.js.map +1 -0
  52. package/lib/MenuItem/MenuItem.d.ts +7 -0
  53. package/lib/MenuItem/MenuItem.d.ts.map +1 -0
  54. package/lib/MenuItem/MenuItem.js +58 -0
  55. package/lib/MenuItem/MenuItem.js.map +1 -0
  56. package/lib/MenuItem/MenuItem.styling.d.ts +5 -0
  57. package/lib/MenuItem/MenuItem.styling.d.ts.map +1 -0
  58. package/lib/MenuItem/MenuItem.styling.js +50 -0
  59. package/lib/MenuItem/MenuItem.styling.js.map +1 -0
  60. package/lib/MenuItem/MenuItem.types.d.ts +98 -0
  61. package/lib/MenuItem/MenuItem.types.d.ts.map +1 -0
  62. package/lib/MenuItem/MenuItem.types.js +2 -0
  63. package/lib/MenuItem/MenuItem.types.js.map +1 -0
  64. package/lib/MenuItem/MenuItemTokens.d.ts +5 -0
  65. package/lib/MenuItem/MenuItemTokens.d.ts.map +1 -0
  66. package/lib/MenuItem/MenuItemTokens.js +39 -0
  67. package/lib/MenuItem/MenuItemTokens.js.map +1 -0
  68. package/lib/MenuItem/MenuItemTokens.macos.d.ts +5 -0
  69. package/lib/MenuItem/MenuItemTokens.macos.d.ts.map +1 -0
  70. package/lib/MenuItem/MenuItemTokens.macos.js +34 -0
  71. package/lib/MenuItem/MenuItemTokens.macos.js.map +1 -0
  72. package/lib/MenuItem/MenuItemTokens.win32.d.ts +5 -0
  73. package/lib/MenuItem/MenuItemTokens.win32.d.ts.map +1 -0
  74. package/lib/MenuItem/MenuItemTokens.win32.js +40 -0
  75. package/lib/MenuItem/MenuItemTokens.win32.js.map +1 -0
  76. package/lib/MenuItem/index.d.ts +5 -0
  77. package/lib/MenuItem/index.d.ts.map +1 -0
  78. package/lib/MenuItem/index.js +4 -0
  79. package/lib/MenuItem/index.js.map +1 -0
  80. package/lib/MenuItem/useMenuItem.d.ts +7 -0
  81. package/lib/MenuItem/useMenuItem.d.ts.map +1 -0
  82. package/lib/MenuItem/useMenuItem.js +74 -0
  83. package/lib/MenuItem/useMenuItem.js.map +1 -0
  84. package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts +7 -0
  85. package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts.map +1 -0
  86. package/lib/MenuItemCheckbox/MenuItemCheckbox.js +37 -0
  87. package/lib/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -0
  88. package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts +5 -0
  89. package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts.map +1 -0
  90. package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js +40 -0
  91. package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js.map +1 -0
  92. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +66 -0
  93. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -0
  94. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js +2 -0
  95. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -0
  96. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts +5 -0
  97. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts.map +1 -0
  98. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js +51 -0
  99. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -0
  100. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts +5 -0
  101. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts.map +1 -0
  102. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +49 -0
  103. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -0
  104. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts +5 -0
  105. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts.map +1 -0
  106. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +52 -0
  107. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -0
  108. package/lib/MenuItemCheckbox/index.d.ts +5 -0
  109. package/lib/MenuItemCheckbox/index.d.ts.map +1 -0
  110. package/lib/MenuItemCheckbox/index.js +4 -0
  111. package/lib/MenuItemCheckbox/index.js.map +1 -0
  112. package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts +13 -0
  113. package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -0
  114. package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +85 -0
  115. package/lib/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -0
  116. package/lib/MenuItemRadio/MenuItemRadio.d.ts +4 -0
  117. package/lib/MenuItemRadio/MenuItemRadio.d.ts.map +1 -0
  118. package/lib/MenuItemRadio/MenuItemRadio.js +12 -0
  119. package/lib/MenuItemRadio/MenuItemRadio.js.map +1 -0
  120. package/lib/MenuItemRadio/index.d.ts +3 -0
  121. package/lib/MenuItemRadio/index.d.ts.map +1 -0
  122. package/lib/MenuItemRadio/index.js +3 -0
  123. package/lib/MenuItemRadio/index.js.map +1 -0
  124. package/lib/MenuItemRadio/useMenuItemRadio.d.ts +3 -0
  125. package/lib/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -0
  126. package/lib/MenuItemRadio/useMenuItemRadio.js +30 -0
  127. package/lib/MenuItemRadio/useMenuItemRadio.js.map +1 -0
  128. package/lib/MenuList/MenuList.d.ts +4 -0
  129. package/lib/MenuList/MenuList.d.ts.map +1 -0
  130. package/lib/MenuList/MenuList.js +68 -0
  131. package/lib/MenuList/MenuList.js.map +1 -0
  132. package/lib/MenuList/MenuList.styling.d.ts +5 -0
  133. package/lib/MenuList/MenuList.styling.d.ts.map +1 -0
  134. package/lib/MenuList/MenuList.styling.js +17 -0
  135. package/lib/MenuList/MenuList.styling.js.map +1 -0
  136. package/lib/MenuList/MenuList.types.d.ts +77 -0
  137. package/lib/MenuList/MenuList.types.d.ts.map +1 -0
  138. package/lib/MenuList/MenuList.types.js +2 -0
  139. package/lib/MenuList/MenuList.types.js.map +1 -0
  140. package/lib/MenuList/MenuListTokens.d.ts +5 -0
  141. package/lib/MenuList/MenuListTokens.d.ts.map +1 -0
  142. package/lib/MenuList/MenuListTokens.js +9 -0
  143. package/lib/MenuList/MenuListTokens.js.map +1 -0
  144. package/lib/MenuList/MenuListTokens.macos.d.ts +5 -0
  145. package/lib/MenuList/MenuListTokens.macos.d.ts.map +1 -0
  146. package/lib/MenuList/MenuListTokens.macos.js +7 -0
  147. package/lib/MenuList/MenuListTokens.macos.js.map +1 -0
  148. package/lib/MenuList/MenuListTokens.win32.d.ts +5 -0
  149. package/lib/MenuList/MenuListTokens.win32.d.ts.map +1 -0
  150. package/lib/MenuList/MenuListTokens.win32.js +12 -0
  151. package/lib/MenuList/MenuListTokens.win32.js.map +1 -0
  152. package/lib/MenuList/index.d.ts +6 -0
  153. package/lib/MenuList/index.d.ts.map +1 -0
  154. package/lib/MenuList/index.js +5 -0
  155. package/lib/MenuList/index.js.map +1 -0
  156. package/lib/MenuList/useMenuList.d.ts +3 -0
  157. package/lib/MenuList/useMenuList.d.ts.map +1 -0
  158. package/lib/MenuList/useMenuList.js +109 -0
  159. package/lib/MenuList/useMenuList.js.map +1 -0
  160. package/lib/MenuList/useMenuListContextValue.d.ts +4 -0
  161. package/lib/MenuList/useMenuListContextValue.d.ts.map +1 -0
  162. package/lib/MenuList/useMenuListContextValue.js +5 -0
  163. package/lib/MenuList/useMenuListContextValue.js.map +1 -0
  164. package/lib/MenuPopover/MenuPopover.d.ts +4 -0
  165. package/lib/MenuPopover/MenuPopover.d.ts.map +1 -0
  166. package/lib/MenuPopover/MenuPopover.js +44 -0
  167. package/lib/MenuPopover/MenuPopover.js.map +1 -0
  168. package/lib/MenuPopover/MenuPopover.types.d.ts +10 -0
  169. package/lib/MenuPopover/MenuPopover.types.d.ts.map +1 -0
  170. package/lib/MenuPopover/MenuPopover.types.js +2 -0
  171. package/lib/MenuPopover/MenuPopover.types.js.map +1 -0
  172. package/lib/MenuPopover/MenuPopoverTokens.d.ts +3 -0
  173. package/lib/MenuPopover/MenuPopoverTokens.d.ts.map +1 -0
  174. package/lib/MenuPopover/MenuPopoverTokens.js +4 -0
  175. package/lib/MenuPopover/MenuPopoverTokens.js.map +1 -0
  176. package/lib/MenuPopover/index.d.ts +5 -0
  177. package/lib/MenuPopover/index.d.ts.map +1 -0
  178. package/lib/MenuPopover/index.js +4 -0
  179. package/lib/MenuPopover/index.js.map +1 -0
  180. package/lib/MenuPopover/useMenuPopover.d.ts +3 -0
  181. package/lib/MenuPopover/useMenuPopover.d.ts.map +1 -0
  182. package/lib/MenuPopover/useMenuPopover.js +92 -0
  183. package/lib/MenuPopover/useMenuPopover.js.map +1 -0
  184. package/lib/MenuTrigger/MenuTrigger.d.ts +5 -0
  185. package/lib/MenuTrigger/MenuTrigger.d.ts.map +1 -0
  186. package/lib/MenuTrigger/MenuTrigger.js +20 -0
  187. package/lib/MenuTrigger/MenuTrigger.js.map +1 -0
  188. package/lib/MenuTrigger/MenuTrigger.types.d.ts +28 -0
  189. package/lib/MenuTrigger/MenuTrigger.types.d.ts.map +1 -0
  190. package/lib/MenuTrigger/MenuTrigger.types.js +2 -0
  191. package/lib/MenuTrigger/MenuTrigger.types.js.map +1 -0
  192. package/lib/MenuTrigger/index.d.ts +5 -0
  193. package/lib/MenuTrigger/index.d.ts.map +1 -0
  194. package/lib/MenuTrigger/index.js +4 -0
  195. package/lib/MenuTrigger/index.js.map +1 -0
  196. package/lib/MenuTrigger/useMenuTrigger.d.ts +3 -0
  197. package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -0
  198. package/lib/MenuTrigger/useMenuTrigger.js +79 -0
  199. package/lib/MenuTrigger/useMenuTrigger.js.map +1 -0
  200. package/lib/MenuTrigger/useMergeRefs.d.ts +20 -0
  201. package/lib/MenuTrigger/useMergeRefs.d.ts.map +1 -0
  202. package/lib/MenuTrigger/useMergeRefs.js +36 -0
  203. package/lib/MenuTrigger/useMergeRefs.js.map +1 -0
  204. package/lib/__tests__/Menu.test.d.ts +2 -0
  205. package/lib/__tests__/Menu.test.d.ts.map +1 -0
  206. package/lib/__tests__/Menu.test.js +145 -0
  207. package/lib/__tests__/Menu.test.js.map +1 -0
  208. package/lib/consts.d.ts +2 -0
  209. package/lib/consts.d.ts.map +1 -0
  210. package/lib/consts.js +6 -0
  211. package/lib/consts.js.map +1 -0
  212. package/lib/context/index.d.ts +4 -0
  213. package/lib/context/index.d.ts.map +1 -0
  214. package/lib/context/index.js +4 -0
  215. package/lib/context/index.js.map +1 -0
  216. package/lib/context/menuContext.d.ts +16 -0
  217. package/lib/context/menuContext.d.ts.map +1 -0
  218. package/lib/context/menuContext.js +20 -0
  219. package/lib/context/menuContext.js.map +1 -0
  220. package/lib/context/menuListContext.d.ts +14 -0
  221. package/lib/context/menuListContext.d.ts.map +1 -0
  222. package/lib/context/menuListContext.js +15 -0
  223. package/lib/context/menuListContext.js.map +1 -0
  224. package/lib/context/menuTriggerContext.d.ts +9 -0
  225. package/lib/context/menuTriggerContext.d.ts.map +1 -0
  226. package/lib/context/menuTriggerContext.js +9 -0
  227. package/lib/context/menuTriggerContext.js.map +1 -0
  228. package/lib/index.d.ts +10 -0
  229. package/lib/index.d.ts.map +1 -0
  230. package/lib/index.js +10 -0
  231. package/lib/index.js.map +1 -0
  232. package/lib-commonjs/MenuItem/MenuItem.types.d.ts +12 -0
  233. package/lib-commonjs/MenuItem/MenuItem.types.d.ts.map +1 -1
  234. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +6 -0
  235. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -1
  236. package/lib-commonjs/MenuList/MenuList.types.d.ts +3 -0
  237. package/lib-commonjs/MenuList/MenuList.types.d.ts.map +1 -1
  238. package/package.json +9 -9
  239. package/src/MenuItem/MenuItem.types.ts +14 -0
  240. package/src/MenuItemCheckbox/MenuItemCheckbox.types.ts +8 -0
  241. package/src/MenuList/MenuList.types.ts +4 -0
package/CHANGELOG.json CHANGED
@@ -2,7 +2,85 @@
2
2
  "name": "@fluentui-react-native/menu",
3
3
  "entries": [
4
4
  {
5
- "date": "Sat, 18 Mar 2023 17:18:20 GMT",
5
+ "date": "Thu, 23 Mar 2023 06:04:49 GMT",
6
+ "tag": "@fluentui-react-native/menu_v1.4.30",
7
+ "version": "1.4.30",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "ruaraki@microsoft.com",
12
+ "package": "@fluentui-react-native/menu",
13
+ "commit": "6821628b9c22887c01da2224c8c76558158a8939",
14
+ "comment": "Update Menu documentation"
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Tue, 21 Mar 2023 21:53:47 GMT",
21
+ "tag": "@fluentui-react-native/menu_v1.4.29",
22
+ "version": "1.4.29",
23
+ "comments": {
24
+ "patch": [
25
+ {
26
+ "author": "krsiler@microsoft.com",
27
+ "package": "@fluentui-react-native/menu",
28
+ "commit": "e706a7afbd63d528878eadd179d5a91210ed62f6",
29
+ "comment": "Trigger manual bump (no changes)"
30
+ },
31
+ {
32
+ "author": "beachball",
33
+ "package": "@fluentui-react-native/menu",
34
+ "comment": "Bump @fluentui-react-native/callout to v0.23.10",
35
+ "commit": "e706a7afbd63d528878eadd179d5a91210ed62f6"
36
+ },
37
+ {
38
+ "author": "beachball",
39
+ "package": "@fluentui-react-native/menu",
40
+ "comment": "Bump @fluentui-react-native/focus-zone to v0.11.39",
41
+ "commit": "e706a7afbd63d528878eadd179d5a91210ed62f6"
42
+ },
43
+ {
44
+ "author": "beachball",
45
+ "package": "@fluentui-react-native/menu",
46
+ "comment": "Bump @fluentui-react-native/framework to v0.9.8",
47
+ "commit": "e706a7afbd63d528878eadd179d5a91210ed62f6"
48
+ },
49
+ {
50
+ "author": "beachball",
51
+ "package": "@fluentui-react-native/menu",
52
+ "comment": "Bump @fluentui-react-native/icon to v0.17.23",
53
+ "commit": "e706a7afbd63d528878eadd179d5a91210ed62f6"
54
+ },
55
+ {
56
+ "author": "beachball",
57
+ "package": "@fluentui-react-native/menu",
58
+ "comment": "Bump @fluentui-react-native/interactive-hooks to v0.22.27",
59
+ "commit": "e706a7afbd63d528878eadd179d5a91210ed62f6"
60
+ },
61
+ {
62
+ "author": "beachball",
63
+ "package": "@fluentui-react-native/menu",
64
+ "comment": "Bump @fluentui-react-native/text to v0.19.29",
65
+ "commit": "e706a7afbd63d528878eadd179d5a91210ed62f6"
66
+ },
67
+ {
68
+ "author": "beachball",
69
+ "package": "@fluentui-react-native/menu",
70
+ "comment": "Bump @fluentui-react-native/tokens to v0.20.14",
71
+ "commit": "e706a7afbd63d528878eadd179d5a91210ed62f6"
72
+ },
73
+ {
74
+ "author": "beachball",
75
+ "package": "@fluentui-react-native/menu",
76
+ "comment": "Bump @fluentui-react-native/button to v0.32.47",
77
+ "commit": "e706a7afbd63d528878eadd179d5a91210ed62f6"
78
+ }
79
+ ]
80
+ }
81
+ },
82
+ {
83
+ "date": "Sat, 18 Mar 2023 17:22:31 GMT",
6
84
  "tag": "@fluentui-react-native/menu_v1.4.28",
7
85
  "version": "1.4.28",
8
86
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,36 @@
1
1
  # Change Log - @fluentui-react-native/menu
2
2
 
3
- This log was last generated on Sat, 18 Mar 2023 17:18:20 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 23 Mar 2023 06:04:49 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 1.4.30
8
+
9
+ Thu, 23 Mar 2023 06:04:49 GMT
10
+
11
+ ### Patches
12
+
13
+ - Update Menu documentation (ruaraki@microsoft.com)
14
+
15
+ ## 1.4.29
16
+
17
+ Tue, 21 Mar 2023 21:53:47 GMT
18
+
19
+ ### Patches
20
+
21
+ - Trigger manual bump (no changes) (krsiler@microsoft.com)
22
+ - Bump @fluentui-react-native/callout to v0.23.10
23
+ - Bump @fluentui-react-native/focus-zone to v0.11.39
24
+ - Bump @fluentui-react-native/framework to v0.9.8
25
+ - Bump @fluentui-react-native/icon to v0.17.23
26
+ - Bump @fluentui-react-native/interactive-hooks to v0.22.27
27
+ - Bump @fluentui-react-native/text to v0.19.29
28
+ - Bump @fluentui-react-native/tokens to v0.20.14
29
+ - Bump @fluentui-react-native/button to v0.32.47
30
+
7
31
  ## 1.4.28
8
32
 
9
- Sat, 18 Mar 2023 17:18:20 GMT
33
+ Sat, 18 Mar 2023 17:22:31 GMT
10
34
 
11
35
  ### Patches
12
36
 
package/SPEC.md CHANGED
@@ -218,6 +218,11 @@ export type MenuListProps = {
218
218
  */
219
219
  defaultChecked?: string[];
220
220
 
221
+ /**
222
+ * States that menu items can contain icons and reserves space for item alignment
223
+ */
224
+ hasIcons?: boolean;
225
+
221
226
  /**
222
227
  * States that menu items can contain selectable items and reserves space for item alignment
223
228
  */
@@ -249,6 +254,11 @@ export interface MenuListTokens extends LayoutTokens, IBackgroundColorTokens {
249
254
  * Space between items in pixels
250
255
  */
251
256
  gap?: number;
257
+
258
+ /**
259
+ * States of the list control
260
+ */
261
+ hasMaxHeight?: MenuListTokens;
252
262
  }
253
263
  ```
254
264
 
@@ -271,6 +281,11 @@ export interface MenuItemProps extends Omit<PressablePropsExtended, 'onPress'> {
271
281
  */
272
282
  componentRef?: React.RefObject<IFocusable>;
273
283
 
284
+ /*
285
+ * Source URL or name of the icon to show on the Button.
286
+ */
287
+ icon?: IconProps | ImageProps;
288
+
274
289
  /**
275
290
  * A callback to call on button click event
276
291
  */
@@ -297,6 +312,16 @@ export interface MenuItemTokens extends LayoutTokens, FontTokens, IBorderTokens,
297
312
  */
298
313
  gap?: number;
299
314
 
315
+ /**
316
+ * Color of the icon
317
+ */
318
+ iconColor?: ColorValue;
319
+
320
+ /**
321
+ * Size of the icon. Pixels for SVG and points for font icon.
322
+ */
323
+ iconSize?: number;
324
+
300
325
  /**
301
326
  * Color of the indicator that shows that an item has a submenu
302
327
  */
@@ -327,6 +352,9 @@ export interface MenuItemTokens extends LayoutTokens, FontTokens, IBorderTokens,
327
352
  - `root` - The outer container representing the `MenuItem` itself that wraps everything passed via the `children` prop.
328
353
  - `content` - If specified, renders the `content` prop as text.
329
354
  - `checkmark` - If specified, renders space such that the `content` aligns with other items which have checkmarks. Only used when the `Menu` has `hasCheckmarks`.
355
+ - `iconPlaceholder` - If specified, renders space for an icon before the content. Could be blank or contain an icon. Used when the `Menu` has `hasIcons`.
356
+ - `imgIcon` - If specified, renders an `Image` as an icon.
357
+ - `fontOrSvgIcon` - If specified, renders an `Icon` which supports font or SVG icons.
330
358
  - `submenuIndicator` - If specified, renders an SVG which indicates that the `MenuItem` is a trigger for a nested `Menu`.
331
359
 
332
360
  ### MenuItemCheckbox/Radio
@@ -342,6 +370,11 @@ export interface MenuItemCheckboxProps extends Omit<IWithPressableOptions<ViewPr
342
370
  */
343
371
  componentRef?: React.RefObject<IFocusable>;
344
372
 
373
+ /*
374
+ * Source URL or name of the icon to show on the Button.
375
+ */
376
+ icon?: IconProps | ImageProps;
377
+
345
378
  /**
346
379
  * Identifier for the control
347
380
  */
@@ -383,6 +416,16 @@ export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorde
383
416
  */
384
417
  gap?: number;
385
418
 
419
+ /**
420
+ * Color of the icon
421
+ */
422
+ iconColor?: ColorValue;
423
+
424
+ /**
425
+ * Size of the icon. Pixels for SVG and points for font icon.
426
+ */
427
+ iconSize?: number;
428
+
386
429
  /**
387
430
  * States of the item control
388
431
  */
@@ -399,6 +442,9 @@ export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorde
399
442
  - `root` - The outer container representing the `MenuItem` itself that wraps everything passed via the `children` prop.
400
443
  - `content` - If specified, renders the `content` prop as text.
401
444
  - `checkmark` - If specified, renders an SVG which indicates that the `MenuItem` is selected.
445
+ - `iconPlaceholder` - If specified, renders space for an icon before the content. Could be blank or contain an icon. Used when the `Menu` has `hasIcons`.
446
+ - `imgIcon` - If specified, renders an `Image` as an icon.
447
+ - `fontOrSvgIcon` - If specified, renders an `Icon` which supports font or SVG icons.
402
448
 
403
449
  ## Behaviors
404
450
 
@@ -0,0 +1,4 @@
1
+ import type { MenuProps } from './Menu.types';
2
+ export declare const Menu: import("@fluentui-react-native/framework").ComposableFunction<MenuProps>;
3
+ export default Menu;
4
+ //# sourceMappingURL=Menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/Menu/Menu.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM9C,eAAO,MAAM,IAAI,0EA2Cf,CAAC;AAGH,eAAe,IAAI,CAAC"}
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { stagedComponent } from '@fluentui-react-native/framework';
3
+ import { menuName } from './Menu.types';
4
+ import { useMenu } from './useMenu';
5
+ import { useMenuContextValue } from './useMenuContextValue';
6
+ import { MenuProvider } from '../context/menuContext';
7
+ export var Menu = stagedComponent(function (props) {
8
+ var state = useMenu(props);
9
+ var contextValue = useMenuContextValue(state);
10
+ return function (_rest, children) {
11
+ var _a, _b;
12
+ var childrenArray = React.Children.toArray(children);
13
+ var accessibilityPositionInSet = state.accessibilityPositionInSet, accessibilitySetSize = state.accessibilitySetSize;
14
+ if (__DEV__) {
15
+ if (childrenArray.length !== 2) {
16
+ // eslint-disable-next-line no-console
17
+ console.warn('Menu must contain two children');
18
+ }
19
+ }
20
+ var menuTrigger = childrenArray[0];
21
+ var menuPopover = childrenArray[1];
22
+ var menuTriggerChild = menuTrigger.props.children;
23
+ var menuTriggerChildWithSet = React.cloneElement(menuTriggerChild, {
24
+ accessibilityPositionInSet: (_a = menuTriggerChild.props.accessibilityPositionInSet) !== null && _a !== void 0 ? _a : accessibilityPositionInSet,
25
+ accessibilitySetSize: (_b = menuTriggerChild.props.accessibilitySetSize) !== null && _b !== void 0 ? _b : accessibilitySetSize, //win32
26
+ });
27
+ var menuTriggerWithSet = React.cloneElement(menuTrigger, {}, menuTriggerChildWithSet);
28
+ return (React.createElement(MenuProvider, { value: contextValue },
29
+ menuTriggerWithSet,
30
+ state.open && state.shouldFocusOnContainer !== undefined && menuPopover));
31
+ };
32
+ });
33
+ Menu.displayName = menuName;
34
+ export default Menu;
35
+ //# sourceMappingURL=Menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/Menu/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,CAAC,IAAM,IAAI,GAAG,eAAe,CAAC,UAAC,KAAgB;IACnD,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAEhD,OAAO,UAAC,KAAgB,EAAE,QAAyB;;QACjD,IAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAyB,CAAC;QACvE,IAAA,0BAA0B,GAA2B,KAAK,2BAAhC,EAAE,oBAAoB,GAAK,KAAK,qBAAV,CAAW;QAEnE,IAAI,OAAO,EAAE;YACX,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;aAChD;SACF;QAED,IAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACrC,IAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAErC,IAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;QAEpD,IAAM,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAChD,gBAA0F,EAC1F;YACE,0BAA0B,EAAE,MAAA,gBAAgB,CAAC,KAAK,CAAC,0BAA0B,mCAAI,0BAA0B;YAC3G,oBAAoB,EAAE,MAAA,gBAAgB,CAAC,KAAK,CAAC,oBAAoB,mCAAI,oBAAoB,EAAE,OAAO;SAC5F,CACT,CAAC;QAEF,IAAM,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAC3C,WAAqF,EACrF,EAAS,EACT,uBAAuB,CACxB,CAAC;QAEF,OAAO,CACL,oBAAC,YAAY,IAAC,KAAK,EAAE,YAAY;YAC9B,kBAAkB;YAGlB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,sBAAsB,KAAK,SAAS,IAAI,WAAW,CAC3D,CAChB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE5B,eAAe,IAAI,CAAC"}
@@ -0,0 +1,40 @@
1
+ /// <reference types="node" />
2
+ import type React from 'react';
3
+ import type { View } from 'react-native';
4
+ import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
5
+ import type { MenuListProps } from '../MenuList/MenuList.types';
6
+ export declare const menuName = "Menu";
7
+ export interface MenuProps extends MenuListProps {
8
+ /**
9
+ * Whether the popup is open on mount
10
+ */
11
+ defaultOpen?: boolean;
12
+ /**
13
+ * How much delay to have between hover in and showing the menu, in ms.
14
+ */
15
+ hoverDelay?: number;
16
+ /**
17
+ * Whether the popup is open
18
+ */
19
+ open?: boolean;
20
+ /**
21
+ * Call back when the component requests to change value
22
+ */
23
+ onOpenChange?: (e: InteractionEvent, isOpen: boolean) => void;
24
+ openOnHover?: boolean;
25
+ /**
26
+ * Do not dismiss the menu when a menu item is clicked
27
+ */
28
+ persistOnItemClick?: boolean;
29
+ }
30
+ export interface MenuState extends MenuProps {
31
+ isControlled: boolean;
32
+ isSubmenu: boolean;
33
+ parentPopoverHoverOutTimer?: NodeJS.Timeout;
34
+ setOpen: (e: InteractionEvent, isOpen: boolean, bubble?: boolean) => void;
35
+ shouldFocusOnContainer: boolean;
36
+ triggerRef: React.RefObject<View>;
37
+ hasMaxHeight?: boolean;
38
+ hasMaxWidth?: boolean;
39
+ }
40
+ //# sourceMappingURL=Menu.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.types.d.ts","sourceRoot":"","sources":["../../src/Menu/Menu.types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAK9D,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,0BAA0B,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1E,sBAAsB,EAAE,OAAO,CAAC;IAChC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export var menuName = 'Menu';
2
+ //# sourceMappingURL=Menu.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.types.js","sourceRoot":"","sources":["../../src/Menu/Menu.types.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,IAAM,QAAQ,GAAG,MAAM,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { Menu } from './Menu';
2
+ export { menuName } from './Menu.types';
3
+ export type { MenuProps, MenuState } from './Menu.types';
4
+ export { useMenu } from './useMenu';
5
+ export { useMenuContextValue } from './useMenuContextValue';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { Menu } from './Menu';
2
+ export { menuName } from './Menu.types';
3
+ export { useMenu } from './useMenu';
4
+ export { useMenuContextValue } from './useMenuContextValue';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MenuProps, MenuState } from './Menu.types';
2
+ export declare const useMenu: (props: MenuProps) => MenuState;
3
+ //# sourceMappingURL=useMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMenu.d.ts","sourceRoot":"","sources":["../../src/Menu/useMenu.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzD,eAAO,MAAM,OAAO,UAAW,SAAS,KAAG,SAiC1C,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { __assign } from "tslib";
2
+ import React from 'react';
3
+ import { Platform } from 'react-native';
4
+ import { isMouseEvent } from '@fluentui-react-native/interactive-hooks';
5
+ import { useMenuContext } from '../context/menuContext';
6
+ // Due to how events get fired we get double notifications
7
+ // for the same event causing us to immediately reopen
8
+ // a menu when we close it. Adding in a delay to prevent
9
+ // this behavior.
10
+ var delayOpen = 150;
11
+ var lastCloseTimestamp = -1;
12
+ export var useMenu = function (props) {
13
+ var triggerRef = React.useRef();
14
+ var context = useMenuContext();
15
+ var isSubmenu = context.triggerRef !== null;
16
+ var isOpenControlled = typeof props.open !== 'undefined';
17
+ var _a = useMenuOpenState(isOpenControlled, props, context.setOpen), open = _a[0], shouldFocusOnContainer = _a[1], setOpen = _a[2];
18
+ var _b = useMenuCheckedState(props), checked = _b[0], onCheckedChange = _b[1];
19
+ // Default behavior for submenu is to open on hover
20
+ // the ...props line below will override this behavior for a submenu
21
+ // or apply openOnHover if passed into a root Menu.
22
+ var openOnHover = isSubmenu;
23
+ // We need to be able to cancel the timer that gets set on
24
+ // hover out of the parent popover if the parent popover
25
+ // is also set to open/close on hover out. Otherwise
26
+ // the parent menu will close when the timeout passes.
27
+ var parentPopoverHoverOutTimer = isSubmenu ? context.popoverHoverOutTimer : undefined;
28
+ return __assign(__assign({ openOnHover: openOnHover }, props), { open: open, setOpen: setOpen, shouldFocusOnContainer: shouldFocusOnContainer, checked: checked, onCheckedChange: onCheckedChange, triggerRef: triggerRef, isSubmenu: isSubmenu, isControlled: isOpenControlled, parentPopoverHoverOutTimer: parentPopoverHoverOutTimer });
29
+ };
30
+ var useMenuOpenState = function (isControlled, props, parentSetOpen) {
31
+ var defaultOpen = props.defaultOpen, onOpenChange = props.onOpenChange, open = props.open;
32
+ var initialState = typeof defaultOpen !== 'undefined' ? defaultOpen : !!open;
33
+ var _a = React.useState(initialState), openInternal = _a[0], setOpenInternal = _a[1];
34
+ var _b = React.useState(undefined), shouldFocusOnContainer = _b[0], setShouldFocusOnContainer = _b[1];
35
+ var state = isControlled ? open : openInternal;
36
+ var setOpen = React.useCallback(function (e, isOpen, bubble) {
37
+ var openPrev = state;
38
+ if (!isControlled && (!isOpen || lastCloseTimestamp + delayOpen <= Date.now())) {
39
+ setOpenInternal(isOpen);
40
+ }
41
+ if (isOpen) {
42
+ if (Platform.OS === 'win32' && isMouseEvent(e)) {
43
+ setShouldFocusOnContainer(true);
44
+ }
45
+ else {
46
+ setShouldFocusOnContainer(false);
47
+ }
48
+ }
49
+ if (!isOpen) {
50
+ setShouldFocusOnContainer(undefined);
51
+ lastCloseTimestamp = Date.now();
52
+ }
53
+ if (onOpenChange && openPrev !== isOpen) {
54
+ onOpenChange(e, isOpen);
55
+ }
56
+ if (bubble && parentSetOpen) {
57
+ parentSetOpen(e, isOpen, bubble);
58
+ }
59
+ }, [isControlled, state, onOpenChange, setOpenInternal, parentSetOpen]);
60
+ return [state, shouldFocusOnContainer, setOpen];
61
+ };
62
+ var useMenuCheckedState = function (props) {
63
+ var _a;
64
+ var checked = props.checked, defaultChecked = props.defaultChecked, onCheckedChangeOriginal = props.onCheckedChange;
65
+ var _b = React.useState((_a = defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : checked) !== null && _a !== void 0 ? _a : []), checkedInternal = _b[0], setCheckedInternal = _b[1];
66
+ var isControlled = typeof checked !== 'undefined';
67
+ var state = isControlled ? checked : checkedInternal;
68
+ var onCheckedChange = React.useCallback(function (e, checked) {
69
+ if (!isControlled) {
70
+ setCheckedInternal(checked);
71
+ }
72
+ onCheckedChangeOriginal === null || onCheckedChangeOriginal === void 0 ? void 0 : onCheckedChangeOriginal(e, checked);
73
+ }, [isControlled, setCheckedInternal, onCheckedChangeOriginal]);
74
+ return [state, onCheckedChange];
75
+ };
76
+ //# sourceMappingURL=useMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMenu.js","sourceRoot":"","sources":["../../src/Menu/useMenu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { MenuState } from './Menu.types';
2
+ import type { MenuContextValue } from '../context/menuContext';
3
+ export declare const useMenuContextValue: (state: MenuState) => MenuContextValue;
4
+ //# sourceMappingURL=useMenuContextValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMenuContextValue.d.ts","sourceRoot":"","sources":["../../src/Menu/useMenuContextValue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,mBAAmB,UAAW,SAAS,KAAG,gBAItD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { __assign } from "tslib";
2
+ import React from 'react';
3
+ export var useMenuContextValue = function (state) {
4
+ var _a = React.useState(), triggerHoverOutTimer = _a[0], setTriggerHoverOutTimer = _a[1];
5
+ var _b = React.useState(), popoverHoverOutTimer = _b[0], setPopoverHoverOutTimer = _b[1];
6
+ return __assign(__assign({}, state), { popoverHoverOutTimer: popoverHoverOutTimer, triggerHoverOutTimer: triggerHoverOutTimer, setPopoverHoverOutTimer: setPopoverHoverOutTimer, setTriggerHoverOutTimer: setTriggerHoverOutTimer });
7
+ };
8
+ //# sourceMappingURL=useMenuContextValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMenuContextValue.js","sourceRoot":"","sources":["../../src/Menu/useMenuContextValue.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,KAAgB;IAC5C,IAAA,KAAkD,KAAK,CAAC,QAAQ,EAA8B,EAA7F,oBAAoB,QAAA,EAAE,uBAAuB,QAAgD,CAAC;IAC/F,IAAA,KAAkD,KAAK,CAAC,QAAQ,EAAkB,EAAjF,oBAAoB,QAAA,EAAE,uBAAuB,QAAoC,CAAC;IACzF,6BAAY,KAAK,KAAE,oBAAoB,sBAAA,EAAE,oBAAoB,sBAAA,EAAE,uBAAuB,yBAAA,EAAE,uBAAuB,yBAAA,IAAG;AACpH,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const MenuDivider: import("@fluentui-react-native/framework").ComposableComponent<import("@fluentui-react-native/adapters").IViewProps, import("./MenuDivider.types").MenuDividerSlotProps, import("./MenuDivider.types").MenuDividerTokens, object>;
2
+ //# sourceMappingURL=MenuDivider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDivider.d.ts","sourceRoot":"","sources":["../../src/MenuDivider/MenuDivider.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,WAAW,mOAatB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { __assign } from "tslib";
2
+ /** @jsx withSlots */
3
+ import { View } from 'react-native';
4
+ import { compose, withSlots } from '@fluentui-react-native/framework';
5
+ import { stylingSettings } from './MenuDivider.styling';
6
+ import { menuDividerName } from './MenuDivider.types';
7
+ export var MenuDivider = compose(__assign(__assign({ displayName: menuDividerName }, stylingSettings), { slots: {
8
+ root: View,
9
+ }, useRender: function (userProps, useSlots) {
10
+ var Slots = useSlots(userProps);
11
+ return function (final) {
12
+ return withSlots(Slots.root, __assign({}, final));
13
+ };
14
+ } }));
15
+ //# sourceMappingURL=MenuDivider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDivider.js","sourceRoot":"","sources":["../../src/MenuDivider/MenuDivider.tsx"],"names":[],"mappings":";AAAA,qBAAqB;AACrB,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,IAAM,WAAW,GAAG,OAAO,qBAChC,WAAW,EAAE,eAAe,IACzB,eAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;KACX,EACD,SAAS,EAAE,UAAC,SAA2B,EAAE,QAAmC;QAC1E,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAElC,OAAO,UAAC,KAAuB;YAC7B,OAAO,UAAC,KAAK,CAAC,IAAI,eAAK,KAAK,EAAI,CAAC;QACnC,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { UseStylingOptions } from '@fluentui-react-native/framework';
2
+ import type { MenuDividerProps, MenuDividerTokens, MenuDividerSlotProps } from './MenuDivider.types';
3
+ export declare const stylingSettings: UseStylingOptions<MenuDividerProps, MenuDividerSlotProps, MenuDividerTokens>;
4
+ //# sourceMappingURL=MenuDivider.styling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDivider.styling.d.ts","sourceRoot":"","sources":["../../src/MenuDivider/MenuDivider.styling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAG1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAIrG,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,CAiBxG,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { buildProps } from '@fluentui-react-native/framework';
2
+ import { menuDividerName } from './MenuDivider.types';
3
+ import { defaultMenuDividerTokens } from './MenuDividerTokens';
4
+ export var stylingSettings = {
5
+ tokens: [defaultMenuDividerTokens, menuDividerName],
6
+ slotProps: {
7
+ root: buildProps(function (tokens) { return ({
8
+ style: {
9
+ height: tokens.height,
10
+ width: tokens.width,
11
+ backgroundColor: tokens.backgroundColor,
12
+ margin: tokens.margin,
13
+ marginVertical: tokens.marginVertical,
14
+ display: 'flex',
15
+ },
16
+ }); }, ['backgroundColor', 'height', 'margin', 'marginVertical', 'width']),
17
+ },
18
+ };
19
+ //# sourceMappingURL=MenuDivider.styling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDivider.styling.js","sourceRoot":"","sources":["../../src/MenuDivider/MenuDivider.styling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,CAAC,IAAM,eAAe,GAAiF;IAC3G,MAAM,EAAE,CAAC,wBAAwB,EAAE,eAAe,CAAC;IACnD,SAAS,EAAE;QACT,IAAI,EAAE,UAAU,CACd,UAAC,MAAyB,IAAK,OAAA,CAAC;YAC9B,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,OAAO,EAAE,MAAM;aAChB;SACF,CAAC,EAT6B,CAS7B,EACF,CAAC,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,CACnE;KACF;CACF,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type * as React from 'react';
2
+ import type { ViewStyle } from 'react-native';
3
+ import type { IViewProps } from '@fluentui-react-native/adapters';
4
+ import type { IBackgroundColorTokens } from '@fluentui-react-native/tokens';
5
+ export declare const menuDividerName = "MenuDivider";
6
+ export type MenuDividerTokens = IBackgroundColorTokens & {
7
+ height?: number;
8
+ margin?: number;
9
+ marginVertical?: number;
10
+ width?: ViewStyle['width'];
11
+ };
12
+ export type MenuDividerProps = IViewProps;
13
+ export interface MenuDividerSlotProps {
14
+ root: React.PropsWithRef<IViewProps>;
15
+ }
16
+ export interface MenuDividerType {
17
+ props: MenuDividerProps;
18
+ tokens: MenuDividerTokens;
19
+ slotProps: MenuDividerSlotProps;
20
+ }
21
+ //# sourceMappingURL=MenuDivider.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDivider.types.d.ts","sourceRoot":"","sources":["../../src/MenuDivider/MenuDivider.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,GAAG;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,oBAAoB,CAAC;CACjC"}
@@ -0,0 +1,2 @@
1
+ export var menuDividerName = 'MenuDivider';
2
+ //# sourceMappingURL=MenuDivider.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDivider.types.js","sourceRoot":"","sources":["../../src/MenuDivider/MenuDivider.types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,IAAM,eAAe,GAAG,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Theme } from '@fluentui-react-native/framework';
2
+ import type { TokenSettings } from '@fluentui-react-native/use-styling';
3
+ import type { MenuDividerTokens } from './MenuDivider.types';
4
+ export declare const defaultMenuDividerTokens: TokenSettings<MenuDividerTokens, Theme>;
5
+ //# sourceMappingURL=MenuDividerTokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDividerTokens.d.ts","sourceRoot":"","sources":["../../src/MenuDivider/MenuDividerTokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAI3E,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { globalTokens } from '@fluentui-react-native/theme-tokens';
2
+ export var defaultMenuDividerTokens = function (t) { return ({
3
+ backgroundColor: t.colors.neutralStroke2,
4
+ height: globalTokens.stroke.width10,
5
+ marginVertical: globalTokens.size40,
6
+ }); };
7
+ //# sourceMappingURL=MenuDividerTokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDividerTokens.js","sourceRoot":"","sources":["../../src/MenuDivider/MenuDividerTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAKnE,MAAM,CAAC,IAAM,wBAAwB,GAA4C,UAAC,CAAQ,IAAwB,OAAA,CAAC;IACjH,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;IACxC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO;IACnC,cAAc,EAAE,YAAY,CAAC,MAAM;CACpC,CAAC,EAJgH,CAIhH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Theme } from '@fluentui-react-native/framework';
2
+ import type { TokenSettings } from '@fluentui-react-native/use-styling';
3
+ import type { MenuDividerTokens } from './MenuDivider.types';
4
+ export declare const defaultMenuDividerTokens: TokenSettings<MenuDividerTokens, Theme>;
5
+ //# sourceMappingURL=MenuDividerTokens.macos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDividerTokens.macos.d.ts","sourceRoot":"","sources":["../../src/MenuDivider/MenuDividerTokens.macos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAI3E,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { globalTokens } from '@fluentui-react-native/theme-tokens';
2
+ export var defaultMenuDividerTokens = function (t) { return ({
3
+ backgroundColor: t.colors.neutralStroke2,
4
+ height: globalTokens.stroke.width10,
5
+ margin: globalTokens.size40,
6
+ }); };
7
+ //# sourceMappingURL=MenuDividerTokens.macos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDividerTokens.macos.js","sourceRoot":"","sources":["../../src/MenuDivider/MenuDividerTokens.macos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAKnE,MAAM,CAAC,IAAM,wBAAwB,GAA4C,UAAC,CAAQ,IAAwB,OAAA,CAAC;IACjH,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;IACxC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO;IACnC,MAAM,EAAE,YAAY,CAAC,MAAM;CAC5B,CAAC,EAJgH,CAIhH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Theme } from '@fluentui-react-native/framework';
2
+ import type { TokenSettings } from '@fluentui-react-native/use-styling';
3
+ import type { MenuDividerTokens } from './MenuDivider.types';
4
+ export declare const defaultMenuDividerTokens: TokenSettings<MenuDividerTokens, Theme>;
5
+ //# sourceMappingURL=MenuDividerTokens.win32.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDividerTokens.win32.d.ts","sourceRoot":"","sources":["../../src/MenuDivider/MenuDividerTokens.win32.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAI3E,CAAC"}