@soroush.tech/design-system 2.0.0-rc.1 → 2.0.0-rc.2

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 (299) hide show
  1. package/README.md +17 -1
  2. package/dist/AppBar.d.cts +1 -3
  3. package/dist/AppBar.d.mts +1 -3
  4. package/dist/Avatar.cjs +1 -1
  5. package/dist/Avatar.d.cts +1 -3
  6. package/dist/Avatar.d.mts +1 -3
  7. package/dist/Avatar.mjs +1 -1
  8. package/dist/Backdrop.d.cts +1 -1
  9. package/dist/Backdrop.d.mts +1 -1
  10. package/dist/Breadcrumbs.cjs +132 -0
  11. package/dist/Breadcrumbs.d.cts +40 -0
  12. package/dist/Breadcrumbs.d.mts +40 -0
  13. package/dist/Breadcrumbs.mjs +131 -0
  14. package/dist/Button.cjs +1 -1
  15. package/dist/Button.d.cts +1 -1
  16. package/dist/Button.d.mts +1 -1
  17. package/dist/Button.mjs +1 -1
  18. package/dist/ButtonGroup.d.cts +1 -1
  19. package/dist/ButtonGroup.d.mts +1 -1
  20. package/dist/Card.cjs +3 -3
  21. package/dist/Card.d.cts +4 -3
  22. package/dist/Card.d.mts +4 -3
  23. package/dist/Card.mjs +3 -3
  24. package/dist/Checkbox.d.cts +1 -2
  25. package/dist/Checkbox.d.mts +1 -2
  26. package/dist/CircularProgress.d.cts +2 -3
  27. package/dist/CircularProgress.d.mts +2 -3
  28. package/dist/Drawer.d.cts +3 -2
  29. package/dist/Drawer.d.mts +3 -2
  30. package/dist/Flex.d.cts +1 -1
  31. package/dist/Flex.d.mts +1 -1
  32. package/dist/Form.d.cts +1 -1
  33. package/dist/Form.d.mts +1 -1
  34. package/dist/FormControl.cjs +1 -1
  35. package/dist/FormControl.d.cts +1 -2
  36. package/dist/FormControl.d.mts +1 -2
  37. package/dist/FormControl.mjs +1 -1
  38. package/dist/FormHelperText.d.cts +1 -1
  39. package/dist/FormHelperText.d.mts +1 -1
  40. package/dist/FormLabel.d.cts +1 -1
  41. package/dist/FormLabel.d.mts +1 -1
  42. package/dist/Grid.d.cts +1 -3
  43. package/dist/Grid.d.mts +1 -3
  44. package/dist/{Icon-CI6q2Eyi.cjs → Icon-Cvuhp9ek.cjs} +12 -2
  45. package/dist/{Icon-CH3asUJu.mjs → Icon-DlheCTJb.mjs} +12 -2
  46. package/dist/Icon.cjs +1 -1
  47. package/dist/Icon.d.cts +1 -1
  48. package/dist/Icon.d.mts +1 -1
  49. package/dist/Icon.mjs +1 -1
  50. package/dist/Image.d.cts +1 -2
  51. package/dist/Image.d.mts +1 -2
  52. package/dist/LinearProgress.d.cts +2 -3
  53. package/dist/LinearProgress.d.mts +2 -3
  54. package/dist/Link.cjs +1 -1
  55. package/dist/Link.d.cts +1 -1
  56. package/dist/Link.d.mts +1 -1
  57. package/dist/Link.mjs +1 -1
  58. package/dist/Menu/ContextMenu.cjs +146 -0
  59. package/dist/Menu/ContextMenu.d.cts +52 -0
  60. package/dist/Menu/ContextMenu.d.mts +52 -0
  61. package/dist/Menu/ContextMenu.mjs +145 -0
  62. package/dist/Menu/Menu.cjs +3 -0
  63. package/dist/Menu/Menu.d.cts +2 -0
  64. package/dist/Menu/Menu.d.mts +2 -0
  65. package/dist/Menu/Menu.mjs +2 -0
  66. package/dist/Menu/MenuDivider.cjs +29 -0
  67. package/dist/Menu/MenuDivider.d.cts +12 -0
  68. package/dist/Menu/MenuDivider.d.mts +12 -0
  69. package/dist/Menu/MenuDivider.mjs +28 -0
  70. package/dist/Menu/MenuItems.cjs +29 -0
  71. package/dist/Menu/MenuItems.d.cts +2 -0
  72. package/dist/Menu/MenuItems.d.mts +2 -0
  73. package/dist/Menu/MenuItems.mjs +28 -0
  74. package/dist/Menu/MenuList.cjs +3 -0
  75. package/dist/Menu/MenuList.d.cts +38 -0
  76. package/dist/Menu/MenuList.d.mts +38 -0
  77. package/dist/Menu/MenuList.mjs +2 -0
  78. package/dist/Menu-BkKPTOfh.cjs +172 -0
  79. package/dist/Menu-tECbAEFj.mjs +167 -0
  80. package/dist/Menu.cjs +13 -0
  81. package/dist/Menu.d.cts +7 -0
  82. package/dist/Menu.d.mts +7 -0
  83. package/dist/Menu.mjs +6 -0
  84. package/dist/MenuItem-BR7ingQx.mjs +654 -0
  85. package/dist/MenuItem-CfdN4axw.cjs +684 -0
  86. package/dist/MenuItem.cjs +2 -148
  87. package/dist/MenuItem.d.cts +2 -52
  88. package/dist/MenuItem.d.mts +2 -52
  89. package/dist/MenuItem.mjs +1 -147
  90. package/dist/MenuList-B7msJ1IG.mjs +187 -0
  91. package/dist/MenuList-D4imLXAa.cjs +223 -0
  92. package/dist/MenuListContext-Dml16k0X.d.mts +21 -0
  93. package/dist/MenuListContext-vujGcRk9.d.cts +21 -0
  94. package/dist/Modal.d.cts +1 -1
  95. package/dist/Modal.d.mts +1 -1
  96. package/dist/NativeSelect.cjs +2 -2
  97. package/dist/NativeSelect.d.cts +2 -3
  98. package/dist/NativeSelect.d.mts +2 -3
  99. package/dist/NativeSelect.mjs +2 -2
  100. package/dist/Pagination/PaginationItem.cjs +1 -1
  101. package/dist/Pagination/PaginationItem.d.cts +1 -1
  102. package/dist/Pagination/PaginationItem.d.mts +1 -1
  103. package/dist/Pagination/PaginationItem.mjs +1 -1
  104. package/dist/Pagination.d.cts +2 -2
  105. package/dist/Pagination.d.mts +2 -2
  106. package/dist/Paper.cjs +1 -1
  107. package/dist/Paper.d.cts +2 -1
  108. package/dist/Paper.d.mts +2 -1
  109. package/dist/Paper.mjs +1 -1
  110. package/dist/{Popover-TpwRSORC.cjs → Popover-CiZfgiKE.cjs} +5 -125
  111. package/dist/Popover-QjM5Z1CR.mjs +133 -0
  112. package/dist/Popover.cjs +1 -1
  113. package/dist/Popover.d.cts +6 -7
  114. package/dist/Popover.d.mts +6 -7
  115. package/dist/Popover.mjs +1 -1
  116. package/dist/Pressable.cjs +1 -1
  117. package/dist/Pressable.d.cts +1 -1
  118. package/dist/Pressable.d.mts +1 -1
  119. package/dist/Pressable.mjs +1 -1
  120. package/dist/Quote.d.cts +2 -3
  121. package/dist/Quote.d.mts +2 -3
  122. package/dist/Radio.d.cts +1 -2
  123. package/dist/Radio.d.mts +1 -2
  124. package/dist/Select.cjs +3 -3
  125. package/dist/Select.d.cts +2 -3
  126. package/dist/Select.d.mts +2 -3
  127. package/dist/Select.mjs +3 -3
  128. package/dist/Sidebar/Sidebar.d.cts +1 -1
  129. package/dist/Sidebar/Sidebar.d.mts +1 -1
  130. package/dist/Sidebar/SidebarItem.cjs +1 -1
  131. package/dist/Sidebar/SidebarItem.d.cts +3 -4
  132. package/dist/Sidebar/SidebarItem.d.mts +3 -4
  133. package/dist/Sidebar/SidebarItem.mjs +1 -1
  134. package/dist/Skeleton.d.cts +1 -2
  135. package/dist/Skeleton.d.mts +1 -2
  136. package/dist/Switch.cjs +1 -1
  137. package/dist/Switch.d.cts +1 -2
  138. package/dist/Switch.d.mts +1 -2
  139. package/dist/Switch.mjs +1 -1
  140. package/dist/Table/Table.d.cts +2 -3
  141. package/dist/Table/Table.d.mts +2 -3
  142. package/dist/Table/TableBody.d.cts +1 -2
  143. package/dist/Table/TableBody.d.mts +1 -2
  144. package/dist/Table/TableCell.d.cts +1 -1
  145. package/dist/Table/TableCell.d.mts +1 -1
  146. package/dist/Table/TableContainer.d.cts +1 -3
  147. package/dist/Table/TableContainer.d.mts +1 -3
  148. package/dist/Table/TableControl.d.cts +1 -1
  149. package/dist/Table/TableControl.d.mts +1 -1
  150. package/dist/Table/TableFooter.d.cts +1 -2
  151. package/dist/Table/TableFooter.d.mts +1 -2
  152. package/dist/Table/TableHead.d.cts +1 -2
  153. package/dist/Table/TableHead.d.mts +1 -2
  154. package/dist/Table/TablePagination.d.cts +2 -2
  155. package/dist/Table/TablePagination.d.mts +2 -2
  156. package/dist/Table/TablePaginationActions.cjs +1 -1
  157. package/dist/Table/TablePaginationActions.d.cts +1 -1
  158. package/dist/Table/TablePaginationActions.d.mts +1 -1
  159. package/dist/Table/TablePaginationActions.mjs +1 -1
  160. package/dist/Table/TableRow.d.cts +1 -2
  161. package/dist/Table/TableRow.d.mts +1 -2
  162. package/dist/Table/TableSortLabel.cjs +1 -1
  163. package/dist/Table/TableSortLabel.d.cts +1 -1
  164. package/dist/Table/TableSortLabel.d.mts +1 -1
  165. package/dist/Table/TableSortLabel.mjs +1 -1
  166. package/dist/Table/hooks.d.cts +1 -1
  167. package/dist/Table/hooks.d.mts +1 -1
  168. package/dist/Table.d.cts +5 -5
  169. package/dist/Table.d.mts +5 -5
  170. package/dist/{TableContext-BeCxbtHH.d.cts → TableContext-6PgGpUzM.d.mts} +1 -1
  171. package/dist/{TableContext-BiRiYkVZ.d.mts → TableContext-CBGk-Lh8.d.cts} +1 -1
  172. package/dist/Tabs/Tab.cjs +306 -0
  173. package/dist/Tabs/Tab.d.cts +62 -0
  174. package/dist/Tabs/Tab.d.mts +62 -0
  175. package/dist/Tabs/Tab.mjs +305 -0
  176. package/dist/Tabs/TabContext.cjs +34 -0
  177. package/dist/Tabs/TabContext.d.cts +20 -0
  178. package/dist/Tabs/TabContext.d.mts +20 -0
  179. package/dist/Tabs/TabContext.mjs +33 -0
  180. package/dist/Tabs/TabList.cjs +31 -0
  181. package/dist/Tabs/TabList.d.cts +11 -0
  182. package/dist/Tabs/TabList.d.mts +11 -0
  183. package/dist/Tabs/TabList.mjs +30 -0
  184. package/dist/Tabs/TabPanel.cjs +40 -0
  185. package/dist/Tabs/TabPanel.d.cts +27 -0
  186. package/dist/Tabs/TabPanel.d.mts +27 -0
  187. package/dist/Tabs/TabPanel.mjs +38 -0
  188. package/dist/Tabs/TabScrollButton.cjs +93 -0
  189. package/dist/Tabs/TabScrollButton.d.cts +2 -0
  190. package/dist/Tabs/TabScrollButton.d.mts +2 -0
  191. package/dist/Tabs/TabScrollButton.mjs +91 -0
  192. package/dist/Tabs/Tabs.cjs +3 -0
  193. package/dist/Tabs/Tabs.d.cts +3 -0
  194. package/dist/Tabs/Tabs.d.mts +3 -0
  195. package/dist/Tabs/Tabs.mjs +2 -0
  196. package/dist/Tabs-D_wkX-Jb.cjs +645 -0
  197. package/dist/Tabs-YfCUbkQV.mjs +633 -0
  198. package/dist/Tabs.cjs +13 -0
  199. package/dist/Tabs.d.cts +8 -0
  200. package/dist/Tabs.d.mts +8 -0
  201. package/dist/Tabs.mjs +7 -0
  202. package/dist/TabsContext-C2agsLBN.d.cts +6 -0
  203. package/dist/TabsContext-DqyxdmGW.d.mts +6 -0
  204. package/dist/TabsValueContext-D40zGCpE.cjs +19 -0
  205. package/dist/TabsValueContext-DvL3inf7.mjs +8 -0
  206. package/dist/TextInput.cjs +1 -1
  207. package/dist/TextInput.d.cts +1 -2
  208. package/dist/TextInput.d.mts +1 -2
  209. package/dist/TextInput.mjs +1 -1
  210. package/dist/ToggleButton/ToggleButton.cjs +1 -1
  211. package/dist/ToggleButton/ToggleButton.d.cts +1 -1
  212. package/dist/ToggleButton/ToggleButton.d.mts +1 -1
  213. package/dist/ToggleButton/ToggleButton.mjs +1 -1
  214. package/dist/ToggleButton/ToggleButtonGroup.cjs +1 -1
  215. package/dist/ToggleButton/ToggleButtonGroup.d.cts +1 -1
  216. package/dist/ToggleButton/ToggleButtonGroup.d.mts +1 -1
  217. package/dist/ToggleButton/ToggleButtonGroup.mjs +1 -1
  218. package/dist/Typography.cjs +1 -1
  219. package/dist/Typography.d.cts +2 -2
  220. package/dist/Typography.d.mts +2 -2
  221. package/dist/Typography.mjs +1 -1
  222. package/dist/View.d.cts +1 -1
  223. package/dist/View.d.mts +1 -1
  224. package/dist/catalog.cjs +4110 -0
  225. package/dist/catalog.d.cts +90 -0
  226. package/dist/catalog.d.mts +90 -0
  227. package/dist/catalog.mjs +4109 -0
  228. package/dist/computePopoverPosition-BIprs_xo.mjs +123 -0
  229. package/dist/computePopoverPosition-DiyEOHnU.cjs +128 -0
  230. package/dist/dividerLine-BNljcGlv.cjs +66 -0
  231. package/dist/dividerLine-FahY-M6_.mjs +31 -0
  232. package/dist/engine.d.cts +1 -1
  233. package/dist/engine.d.mts +1 -1
  234. package/dist/index-B3LIhqHR.d.cts +98 -0
  235. package/dist/{index-DbEnSf2m.d.cts → index-B8DNxyEw.d.mts} +3 -4
  236. package/dist/{index-CxUsrlg1.d.cts → index-BCnKYNlZ.d.cts} +1 -2
  237. package/dist/{index-BUoVTCqX.d.mts → index-BFruxTHv.d.cts} +2 -3
  238. package/dist/{index-BSqet8aO.d.cts → index-BSA6SKao.d.mts} +2 -3
  239. package/dist/{index-CrN4MSUF.d.cts → index-BVPrG1L0.d.mts} +1 -1
  240. package/dist/{index-Celm-8iN.d.cts → index-BbgFYfX_.d.mts} +3 -4
  241. package/dist/{index-B78VkB0-.d.cts → index-Bhdn4KTy.d.cts} +2 -3
  242. package/dist/{index-Chg6pSrr.d.mts → index-BiVvxOvj.d.cts} +3 -4
  243. package/dist/index-BjPX49XA.d.mts +34 -0
  244. package/dist/{index-BB-dLv5V.d.mts → index-BjfPEP_5.d.cts} +3 -4
  245. package/dist/{index-Bid71KeF.d.cts → index-BlLH6rlE.d.cts} +2 -2
  246. package/dist/{index-Ctqajtac.d.cts → index-BqpS_Huq.d.mts} +12 -4
  247. package/dist/{index-BhibLnZ0.d.cts → index-Bxd9NOWb.d.mts} +2 -3
  248. package/dist/index-C3KrFPCj.d.mts +35 -0
  249. package/dist/{themes-RX2UX5gD.d.mts → index-CVNJEUwJ.d.mts} +217 -8
  250. package/dist/index-CWnbCxgw.d.cts +72 -0
  251. package/dist/index-Cj5Rhh_9.d.mts +72 -0
  252. package/dist/index-CoEqjFYn.d.mts +98 -0
  253. package/dist/{index-S-ClM6WM.d.mts → index-CrIxI8Na.d.mts} +2 -2
  254. package/dist/index-DBteSahY.d.cts +1 -0
  255. package/dist/index-DCmH5f9I.d.cts +72 -0
  256. package/dist/{index-VOsBSWEu.d.mts → index-DDJuUfL5.d.cts} +1 -1
  257. package/dist/{index-DdqdSOct.d.cts → index-DIC7HKpP.d.mts} +2 -3
  258. package/dist/{index-BfZuh9c2.d.mts → index-DJCpnTH3.d.mts} +2 -3
  259. package/dist/index-DQcnJ5H4.d.cts +35 -0
  260. package/dist/{index-DNwF3DUX.d.cts → index-DXhMkjQ6.d.cts} +2 -3
  261. package/dist/index-DckSub2J.d.mts +72 -0
  262. package/dist/{index-nc4Sxiy9.d.mts → index-DeDxYlSQ.d.mts} +2 -3
  263. package/dist/{themes-Kbk9h5cN.d.cts → index-DmJ7yWWi.d.cts} +214 -5
  264. package/dist/{index-Wnv6jCR3.d.mts → index-DqjXDutI.d.mts} +1 -2
  265. package/dist/{index-GpnmW6vu.d.mts → index-DrVYWt-X.d.mts} +1 -2
  266. package/dist/{index-Belxmt1X.d.cts → index-DuVNRXP4.d.cts} +1 -2
  267. package/dist/{index-smqjMLAZ.d.mts → index-IdMqR82e.d.cts} +2 -3
  268. package/dist/{index-DXvQ-JVZ.d.mts → index-XxydXX8l.d.cts} +2 -3
  269. package/dist/index-_G1osn09.d.mts +1 -0
  270. package/dist/index-gnh-Oe0n.d.cts +34 -0
  271. package/dist/{index-DO9J-Fla.d.mts → index-qlfNErNd.d.cts} +12 -4
  272. package/dist/index.d.cts +1 -2
  273. package/dist/index.d.mts +1 -2
  274. package/dist/style.cjs +1 -1
  275. package/dist/style.d.cts +2 -2
  276. package/dist/style.d.mts +2 -2
  277. package/dist/style.mjs +1 -1
  278. package/dist/surfaceSystem-BGQBoXv_.cjs +38 -0
  279. package/dist/surfaceSystem-D8TbmKy3.mjs +21 -0
  280. package/dist/theme-BxXuXRgQ.cjs +137 -0
  281. package/dist/theme-Z9_QludW.mjs +102 -0
  282. package/dist/theme.cjs +25 -24
  283. package/dist/theme.d.cts +3 -3
  284. package/dist/theme.d.mts +3 -3
  285. package/dist/theme.mjs +2 -1
  286. package/dist/{theme-CDVxig_g.mjs → themes-L-dE7_ck.mjs} +10 -110
  287. package/dist/{theme-BXlAP3xf.cjs → themes-gd6tcmqS.cjs} +0 -136
  288. package/dist/{useTablePagination-COTiNH_8.d.mts → useTablePagination-C5VKtqDp.d.cts} +1 -1
  289. package/dist/{useTablePagination-WFkaUZu8.d.cts → useTablePagination-C6LSlt3w.d.mts} +1 -1
  290. package/package.json +43 -2
  291. package/dist/Popover-DwnSLpp1.mjs +0 -253
  292. package/dist/index-B_dKjEDR.d.mts +0 -23
  293. package/dist/index-C1WqEDtQ.d.mts +0 -69
  294. package/dist/index-CA7HnbtH.d.cts +0 -21
  295. package/dist/index-CKZaErxJ.d.mts +0 -21
  296. package/dist/index-DBUwu65Z.d.cts +0 -69
  297. package/dist/index-DzQJSYIh.d.cts +0 -23
  298. package/dist/index-cuv3o-L7.d.mts +0 -34
  299. package/dist/index-nB94D7UM.d.cts +0 -34
@@ -0,0 +1,145 @@
1
+ import { o as styled } from "../src-DLGYOJMh.mjs";
2
+ import { n as useDefaultProps, r as useTheme } from "../theme-Z9_QludW.mjs";
3
+ import { o as MenuActivationContext, t as MenuList } from "../MenuList-B7msJ1IG.mjs";
4
+ import { a as MenuPaper, i as MenuContext, n as useMenuPlacement, t as MenuItem } from "../MenuItem-BR7ingQx.mjs";
5
+ import { MenuItems } from "./MenuItems.mjs";
6
+ import { Children, cloneElement, useCallback, useId, useMemo, useRef, useState } from "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/Menu/ContextMenu/ContextMenu.tsx
9
+ const ContextMenuPaper = styled(MenuPaper, {
10
+ name: "ContextMenu",
11
+ slot: "paper",
12
+ label: "ContextMenuPaper"
13
+ })();
14
+ const ContextMenuRoot = styled("div", {
15
+ name: "ContextMenu",
16
+ label: "ContextMenu"
17
+ })({ display: "contents" });
18
+ const isMenuKey = (event) => event.key === "ContextMenu" || event.key === "F10" && event.shiftKey;
19
+ /** The element given, listening for a right-click and the context-menu keys. */
20
+ function ContextMenuTarget({ element, onContextMenu, onKeyDown }) {
21
+ return cloneElement(element, {
22
+ onContextMenu,
23
+ onKeyDown
24
+ });
25
+ }
26
+ /**
27
+ * @description A `MenuList` opened at the pointer by a right-click over its target, or at
28
+ * the focused element by the context-menu key or Shift+F10. It is placed and closes as
29
+ * `Menu` does - Escape, a chosen row or focus leaving - and gives focus back to where it
30
+ * was. The browser's own menu is held back only when this one opens.
31
+ */
32
+ function ContextMenu({ target, children, items, onClose, onSelect, marginThreshold: marginThresholdProp, elevation: elevationProp, layer: layerProp, emptyLabel, color: colorProp, textColor: textColorProp, size: sizeProp, dense: denseProp, "aria-label": ariaLabel, className, "data-testid": dataTestid }) {
33
+ const dp = useDefaultProps("ContextMenu");
34
+ const marginThreshold = marginThresholdProp ?? dp.marginThreshold ?? 2;
35
+ const elevation = elevationProp ?? dp.elevation ?? 8;
36
+ const layer = layerProp ?? dp.layer ?? "modal";
37
+ const color = colorProp ?? dp.color;
38
+ const textColor = textColorProp ?? dp.textColor;
39
+ const size = sizeProp ?? dp.size;
40
+ const dense = denseProp ?? dp.dense;
41
+ const theme = useTheme();
42
+ const [point, setPoint] = useState(null);
43
+ const isOpen = point !== null;
44
+ const rootRef = useRef(null);
45
+ const surfaceRef = useRef(null);
46
+ const returnFocusRef = useRef(null);
47
+ const listId = useId();
48
+ const margin = Number.parseFloat(String(theme.space[marginThreshold]));
49
+ const menuContext = useMemo(() => ({
50
+ align: "start",
51
+ margin,
52
+ elevation,
53
+ layer
54
+ }), [
55
+ margin,
56
+ elevation,
57
+ layer
58
+ ]);
59
+ useMenuPlacement({
60
+ isOpen,
61
+ anchorRef: rootRef,
62
+ anchorPosition: point,
63
+ surfaceRef,
64
+ placement: "below",
65
+ align: "start",
66
+ margin
67
+ });
68
+ const openAt = (top, left) => {
69
+ returnFocusRef.current = document.activeElement;
70
+ setPoint({
71
+ top,
72
+ left
73
+ });
74
+ };
75
+ const close = useCallback((event, reason) => {
76
+ setPoint(null);
77
+ onClose?.(event, reason);
78
+ if (reason !== "blur") returnFocusRef.current.focus();
79
+ }, [onClose]);
80
+ const handleActivate = useCallback((_value, event) => close(event, "select"), [close]);
81
+ const handleContextMenu = (event) => {
82
+ target.props.onContextMenu?.(event);
83
+ event.preventDefault();
84
+ openAt(event.clientY, event.clientX);
85
+ };
86
+ const handleKeyDown = (event) => {
87
+ target.props.onKeyDown?.(event);
88
+ if (!isMenuKey(event)) return;
89
+ event.preventDefault();
90
+ const { bottom, left } = event.target.getBoundingClientRect();
91
+ openAt(bottom, left);
92
+ };
93
+ const handleSurfaceKeyDown = (event) => {
94
+ if (event.key === "Escape") {
95
+ event.preventDefault();
96
+ close(event, "escapeKey");
97
+ }
98
+ };
99
+ const handleBlur = (event) => {
100
+ const next = event.relatedTarget;
101
+ if (isOpen && !event.currentTarget.contains(next)) close(event, "blur");
102
+ };
103
+ const hasRows = items ? items.length > 0 : Children.toArray(children).length > 0;
104
+ const rows = items ? /* @__PURE__ */ jsx(MenuItems, { items }) : children;
105
+ return /* @__PURE__ */ jsxs(ContextMenuRoot, {
106
+ ref: rootRef,
107
+ className,
108
+ "data-testid": dataTestid,
109
+ onBlur: handleBlur,
110
+ children: [/* @__PURE__ */ jsx(ContextMenuTarget, {
111
+ element: target,
112
+ onContextMenu: handleContextMenu,
113
+ onKeyDown: handleKeyDown
114
+ }), isOpen && /* @__PURE__ */ jsx(ContextMenuPaper, {
115
+ ref: surfaceRef,
116
+ elevation,
117
+ layer,
118
+ margin,
119
+ onKeyDown: handleSurfaceKeyDown,
120
+ children: /* @__PURE__ */ jsx(MenuContext.Provider, {
121
+ value: menuContext,
122
+ children: /* @__PURE__ */ jsx(MenuActivationContext.Provider, {
123
+ value: handleActivate,
124
+ children: /* @__PURE__ */ jsx(MenuList, {
125
+ id: listId,
126
+ "aria-label": ariaLabel,
127
+ shouldAutoFocus: true,
128
+ onSelect,
129
+ color,
130
+ textColor,
131
+ size,
132
+ dense,
133
+ width: "100%",
134
+ children: hasRows ? rows : emptyLabel != null && /* @__PURE__ */ jsx(MenuItem, {
135
+ disabled: true,
136
+ children: emptyLabel
137
+ })
138
+ })
139
+ })
140
+ })
141
+ })]
142
+ });
143
+ }
144
+ //#endregion
145
+ export { ContextMenu };
@@ -0,0 +1,3 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_Menu = require("../Menu-BkKPTOfh.cjs");
3
+ exports.Menu = require_Menu.Menu;
@@ -0,0 +1,2 @@
1
+ import { a as MenuAlign, i as MenuStep, n as MenuCloseReason, r as MenuProps, t as Menu } from "../index-CWnbCxgw.cjs";
2
+ export { Menu, type MenuAlign, MenuCloseReason, MenuProps, MenuStep };
@@ -0,0 +1,2 @@
1
+ import { a as MenuAlign, i as MenuStep, n as MenuCloseReason, r as MenuProps, t as Menu } from "../index-DckSub2J.mjs";
2
+ export { Menu, type MenuAlign, MenuCloseReason, MenuProps, MenuStep };
@@ -0,0 +1,2 @@
1
+ import { t as Menu } from "../Menu-tECbAEFj.mjs";
2
+ export { Menu };
@@ -0,0 +1,29 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_src = require("../src-DU81aGy9.cjs");
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ //#region src/Menu/MenuDivider/MenuDivider.tsx
5
+ const MenuDividerRoot = require_src.styled("li", {
6
+ name: "MenuDivider",
7
+ label: "MenuDivider"
8
+ })(({ theme }) => ({
9
+ listStyle: "none",
10
+ height: 0,
11
+ marginTop: theme.space[.5],
12
+ marginBottom: theme.space[.5],
13
+ borderTopWidth: theme.borderWidths.thin,
14
+ borderTopStyle: "solid",
15
+ borderTopColor: (0, require_src.src_exports.get)(theme, "border.light")
16
+ }));
17
+ /**
18
+ * @description A `role="separator"` line between groups of rows in a `MenuList`. The
19
+ * arrow keys pass over it.
20
+ */
21
+ function MenuDivider({ className, "data-testid": dataTestid }) {
22
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuDividerRoot, {
23
+ role: "separator",
24
+ className,
25
+ "data-testid": dataTestid
26
+ });
27
+ }
28
+ //#endregion
29
+ exports.MenuDivider = MenuDivider;
@@ -0,0 +1,12 @@
1
+ //#region src/Menu/MenuDivider/MenuDivider.d.ts
2
+ interface MenuDividerProps {
3
+ className?: string;
4
+ 'data-testid'?: string;
5
+ }
6
+ /**
7
+ * @description A `role="separator"` line between groups of rows in a `MenuList`. The
8
+ * arrow keys pass over it.
9
+ */
10
+ declare function MenuDivider({ className, 'data-testid': dataTestid }: Readonly<MenuDividerProps>): import("react").JSX.Element;
11
+ //#endregion
12
+ export { MenuDivider, MenuDividerProps };
@@ -0,0 +1,12 @@
1
+ //#region src/Menu/MenuDivider/MenuDivider.d.ts
2
+ interface MenuDividerProps {
3
+ className?: string;
4
+ 'data-testid'?: string;
5
+ }
6
+ /**
7
+ * @description A `role="separator"` line between groups of rows in a `MenuList`. The
8
+ * arrow keys pass over it.
9
+ */
10
+ declare function MenuDivider({ className, 'data-testid': dataTestid }: Readonly<MenuDividerProps>): import("react").JSX.Element;
11
+ //#endregion
12
+ export { MenuDivider, MenuDividerProps };
@@ -0,0 +1,28 @@
1
+ import { a as src_exports, o as styled } from "../src-DLGYOJMh.mjs";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/Menu/MenuDivider/MenuDivider.tsx
4
+ const MenuDividerRoot = styled("li", {
5
+ name: "MenuDivider",
6
+ label: "MenuDivider"
7
+ })(({ theme }) => ({
8
+ listStyle: "none",
9
+ height: 0,
10
+ marginTop: theme.space[.5],
11
+ marginBottom: theme.space[.5],
12
+ borderTopWidth: theme.borderWidths.thin,
13
+ borderTopStyle: "solid",
14
+ borderTopColor: (0, src_exports.get)(theme, "border.light")
15
+ }));
16
+ /**
17
+ * @description A `role="separator"` line between groups of rows in a `MenuList`. The
18
+ * arrow keys pass over it.
19
+ */
20
+ function MenuDivider({ className, "data-testid": dataTestid }) {
21
+ return /* @__PURE__ */ jsx(MenuDividerRoot, {
22
+ role: "separator",
23
+ className,
24
+ "data-testid": dataTestid
25
+ });
26
+ }
27
+ //#endregion
28
+ export { MenuDivider };
@@ -0,0 +1,29 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_MenuItem = require("../MenuItem-CfdN4axw.cjs");
3
+ const require_Menu_MenuDivider = require("./MenuDivider.cjs");
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ //#region src/Menu/MenuItems/MenuItems.tsx
6
+ const isDivider = (item) => "type" in item && item.type === "divider";
7
+ /**
8
+ * @description Menu rows from data: each entry a `MenuItem` (its label as `label`, its
9
+ * submenu as more entries) or `{ type: 'divider' }`. It renders the same rows JSX children
10
+ * would, so the two behave alike - inside a `MenuList`, a `Menu` or a `ContextMenu`.
11
+ */
12
+ function MenuItems({ items }) {
13
+ let dividers = 0;
14
+ return items.map((item, index) => {
15
+ if (isDivider(item)) {
16
+ dividers += 1;
17
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Menu_MenuDivider.MenuDivider, {}, `divider-${dividers}`);
18
+ }
19
+ const { label, submenu, ...row } = item;
20
+ const submenuRows = submenu?.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuItems, { items: submenu }) : null;
21
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuItem.MenuItem, {
22
+ ...row,
23
+ submenu: submenu === void 0 ? void 0 : submenuRows,
24
+ children: label
25
+ }, item.value ?? `row-${index}`);
26
+ });
27
+ }
28
+ //#endregion
29
+ exports.MenuItems = MenuItems;
@@ -0,0 +1,2 @@
1
+ import { a as MenuItemsProps, i as MenuItems, n as MenuItemData, r as MenuItemRowData, t as MenuDividerData } from "../index-DQcnJ5H4.cjs";
2
+ export { MenuDividerData, MenuItemData, MenuItemRowData, MenuItems, MenuItemsProps };
@@ -0,0 +1,2 @@
1
+ import { a as MenuItemsProps, i as MenuItems, n as MenuItemData, r as MenuItemRowData, t as MenuDividerData } from "../index-C3KrFPCj.mjs";
2
+ export { MenuDividerData, MenuItemData, MenuItemRowData, MenuItems, MenuItemsProps };
@@ -0,0 +1,28 @@
1
+ import { t as MenuItem } from "../MenuItem-BR7ingQx.mjs";
2
+ import { MenuDivider } from "./MenuDivider.mjs";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/Menu/MenuItems/MenuItems.tsx
5
+ const isDivider = (item) => "type" in item && item.type === "divider";
6
+ /**
7
+ * @description Menu rows from data: each entry a `MenuItem` (its label as `label`, its
8
+ * submenu as more entries) or `{ type: 'divider' }`. It renders the same rows JSX children
9
+ * would, so the two behave alike - inside a `MenuList`, a `Menu` or a `ContextMenu`.
10
+ */
11
+ function MenuItems({ items }) {
12
+ let dividers = 0;
13
+ return items.map((item, index) => {
14
+ if (isDivider(item)) {
15
+ dividers += 1;
16
+ return /* @__PURE__ */ jsx(MenuDivider, {}, `divider-${dividers}`);
17
+ }
18
+ const { label, submenu, ...row } = item;
19
+ const submenuRows = submenu?.length ? /* @__PURE__ */ jsx(MenuItems, { items: submenu }) : null;
20
+ return /* @__PURE__ */ jsx(MenuItem, {
21
+ ...row,
22
+ submenu: submenu === void 0 ? void 0 : submenuRows,
23
+ children: label
24
+ }, item.value ?? `row-${index}`);
25
+ });
26
+ }
27
+ //#endregion
28
+ export { MenuItems };
@@ -0,0 +1,3 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_MenuList = require("../MenuList-D4imLXAa.cjs");
3
+ exports.MenuList = require_MenuList.MenuList;
@@ -0,0 +1,38 @@
1
+ import { V as Theme } from "../index-DmJ7yWWi.cjs";
2
+ import { t as MenuItemValue } from "../MenuListContext-vujGcRk9.cjs";
3
+ import { KeyboardEvent, ReactNode } from "react";
4
+ import { LayoutProps, SpaceProps } from "@soroush.tech/styled-system";
5
+ //#region src/Menu/MenuList/MenuList.d.ts
6
+ interface MenuListProps extends SpaceProps<Theme>, LayoutProps<Theme> {
7
+ /** `MenuItem` rows and `MenuDivider`s. */
8
+ children?: ReactNode;
9
+ /** Fired with a row's `value` when a row that has one is chosen. */
10
+ onSelect?: (value: MenuItemValue) => void;
11
+ /** Carry the arrow keys past the last row to the first, and back. Default: `true`. */
12
+ shouldWrap?: boolean;
13
+ /** Focus the selected row, or the first enabled one, on mount. Default: `false`. */
14
+ shouldAutoFocus?: boolean;
15
+ /** Accent color for every row - resolves to `theme.palette[color]`. A row's own value wins. */
16
+ color?: keyof Theme['palette'];
17
+ /** Base text color for every row - resolves against `theme.text`. A row's own value wins. */
18
+ textColor?: keyof Theme['text'];
19
+ /** Density token for every row - resolves against `theme.sizes`. A row's own value wins. */
20
+ size?: keyof Theme['sizes'];
21
+ /** Compact vertical padding for every row. */
22
+ dense?: boolean;
23
+ onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;
24
+ id?: string;
25
+ className?: string;
26
+ 'aria-label'?: string;
27
+ 'aria-labelledby'?: string;
28
+ 'data-testid'?: string;
29
+ }
30
+ /**
31
+ * @description A `role="menu"` list that owns the keyboard: the arrow keys, Home and End
32
+ * move focus between its own rows, skipping disabled ones; typing jumps to a row by its
33
+ * label. Rows are found in the DOM by their nearest `role="menu"`, so a nested submenu's
34
+ * rows are never this list's. Renders in place - `Menu` floats one next to a trigger.
35
+ */
36
+ declare function MenuList({ children, onSelect, shouldWrap: shouldWrapProp, shouldAutoFocus, color, textColor, size, dense, onKeyDown, ...rest }: Readonly<MenuListProps>): import("react").JSX.Element;
37
+ //#endregion
38
+ export { type MenuItemValue, MenuList, MenuListProps };
@@ -0,0 +1,38 @@
1
+ import { V as Theme } from "../index-CVNJEUwJ.mjs";
2
+ import { t as MenuItemValue } from "../MenuListContext-Dml16k0X.mjs";
3
+ import { LayoutProps, SpaceProps } from "@soroush.tech/styled-system";
4
+ import { KeyboardEvent, ReactNode } from "react";
5
+ //#region src/Menu/MenuList/MenuList.d.ts
6
+ interface MenuListProps extends SpaceProps<Theme>, LayoutProps<Theme> {
7
+ /** `MenuItem` rows and `MenuDivider`s. */
8
+ children?: ReactNode;
9
+ /** Fired with a row's `value` when a row that has one is chosen. */
10
+ onSelect?: (value: MenuItemValue) => void;
11
+ /** Carry the arrow keys past the last row to the first, and back. Default: `true`. */
12
+ shouldWrap?: boolean;
13
+ /** Focus the selected row, or the first enabled one, on mount. Default: `false`. */
14
+ shouldAutoFocus?: boolean;
15
+ /** Accent color for every row - resolves to `theme.palette[color]`. A row's own value wins. */
16
+ color?: keyof Theme['palette'];
17
+ /** Base text color for every row - resolves against `theme.text`. A row's own value wins. */
18
+ textColor?: keyof Theme['text'];
19
+ /** Density token for every row - resolves against `theme.sizes`. A row's own value wins. */
20
+ size?: keyof Theme['sizes'];
21
+ /** Compact vertical padding for every row. */
22
+ dense?: boolean;
23
+ onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;
24
+ id?: string;
25
+ className?: string;
26
+ 'aria-label'?: string;
27
+ 'aria-labelledby'?: string;
28
+ 'data-testid'?: string;
29
+ }
30
+ /**
31
+ * @description A `role="menu"` list that owns the keyboard: the arrow keys, Home and End
32
+ * move focus between its own rows, skipping disabled ones; typing jumps to a row by its
33
+ * label. Rows are found in the DOM by their nearest `role="menu"`, so a nested submenu's
34
+ * rows are never this list's. Renders in place - `Menu` floats one next to a trigger.
35
+ */
36
+ declare function MenuList({ children, onSelect, shouldWrap: shouldWrapProp, shouldAutoFocus, color, textColor, size, dense, onKeyDown, ...rest }: Readonly<MenuListProps>): import("react").JSX.Element;
37
+ //#endregion
38
+ export { type MenuItemValue, MenuList, MenuListProps };
@@ -0,0 +1,2 @@
1
+ import { t as MenuList } from "../MenuList-B7msJ1IG.mjs";
2
+ export { MenuList };
@@ -0,0 +1,172 @@
1
+ const require_src = require("./src-DU81aGy9.cjs");
2
+ const require_theme = require("./theme-BxXuXRgQ.cjs");
3
+ const require_MenuList = require("./MenuList-D4imLXAa.cjs");
4
+ const require_MenuItem = require("./MenuItem-CfdN4axw.cjs");
5
+ const require_Menu_MenuItems = require("./Menu/MenuItems.cjs");
6
+ let react = require("react");
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ //#region src/Menu/utils/assignRef.ts
9
+ /** Hands `value` to a ref of either kind - a callback, or an object - when there is one. */
10
+ function assignRef(ref, value) {
11
+ if (typeof ref === "function") ref(value);
12
+ else if (ref) ref.current = value;
13
+ }
14
+ //#endregion
15
+ //#region src/Menu/Menu/Menu.tsx
16
+ const MenuRoot = require_src.styled("div", {
17
+ name: "Menu",
18
+ label: "Menu"
19
+ })({ display: "inline-flex" });
20
+ /** The menu's trigger: the element given, as the button that opens the list. */
21
+ function MenuTrigger({ element, id, elementRef, isOpen, listId, onClick, onKeyDown }) {
22
+ return (0, react.cloneElement)(element, {
23
+ id,
24
+ ref: elementRef,
25
+ "aria-haspopup": "menu",
26
+ "aria-expanded": isOpen,
27
+ "aria-controls": isOpen ? listId : void 0,
28
+ onClick,
29
+ onKeyDown
30
+ });
31
+ }
32
+ /**
33
+ * @description A trigger and the `MenuList` it opens. Not modal: no focus trap, no scroll
34
+ * lock, nothing laid over the page, so the pointer passes over it freely. The list is
35
+ * placed `position: fixed` in the window next to the trigger, so a panel's overflow
36
+ * can't clip it, but stays inside the menu's own box in the DOM. Escape or a chosen row
37
+ * closes it and returns focus to the trigger; focus leaving it closes it where it went.
38
+ */
39
+ function Menu({ trigger, children, items, isOpen: isOpenProp, defaultOpen = false, onOpen, onClose, onStep, onSelect, align: alignProp, marginThreshold: marginThresholdProp, elevation: elevationProp, layer: layerProp, emptyLabel, color: colorProp, textColor: textColorProp, size: sizeProp, dense: denseProp, "aria-label": ariaLabel, className, "data-testid": dataTestid }) {
40
+ const dp = require_theme.useDefaultProps("Menu");
41
+ const align = alignProp ?? dp.align ?? "start";
42
+ const marginThreshold = marginThresholdProp ?? dp.marginThreshold ?? 2;
43
+ const elevation = elevationProp ?? dp.elevation ?? 8;
44
+ const layer = layerProp ?? dp.layer ?? "modal";
45
+ const color = colorProp ?? dp.color;
46
+ const textColor = textColorProp ?? dp.textColor;
47
+ const size = sizeProp ?? dp.size;
48
+ const dense = denseProp ?? dp.dense;
49
+ const theme = require_theme.useTheme();
50
+ const isControlled = isOpenProp !== void 0;
51
+ const [isOpenState, setIsOpenState] = (0, react.useState)(defaultOpen);
52
+ const isOpen = isControlled ? isOpenProp : isOpenState;
53
+ const rootRef = (0, react.useRef)(null);
54
+ const triggerRef = (0, react.useRef)(null);
55
+ const surfaceRef = (0, react.useRef)(null);
56
+ const listId = (0, react.useId)();
57
+ const fallbackTriggerId = (0, react.useId)();
58
+ const triggerId = trigger.props.id ?? fallbackTriggerId;
59
+ const margin = Number.parseFloat(String(theme.space[marginThreshold]));
60
+ const menuContext = (0, react.useMemo)(() => ({
61
+ align,
62
+ margin,
63
+ elevation,
64
+ layer
65
+ }), [
66
+ align,
67
+ margin,
68
+ elevation,
69
+ layer
70
+ ]);
71
+ require_MenuItem.useMenuPlacement({
72
+ isOpen,
73
+ anchorRef: rootRef,
74
+ surfaceRef,
75
+ placement: "below",
76
+ align,
77
+ margin
78
+ });
79
+ const open = () => {
80
+ if (!isControlled) setIsOpenState(true);
81
+ onOpen?.();
82
+ };
83
+ const close = (0, react.useCallback)((event, reason) => {
84
+ if (!isControlled) setIsOpenState(false);
85
+ onClose?.(event, reason);
86
+ if (reason !== "blur") triggerRef.current?.focus();
87
+ }, [isControlled, onClose]);
88
+ const triggerProps = trigger.props;
89
+ const setTriggerRef = (0, react.useCallback)((element) => {
90
+ triggerRef.current = element;
91
+ assignRef(triggerProps.ref, element);
92
+ }, [triggerProps]);
93
+ const handleActivate = (0, react.useCallback)((_value, event) => close(event, "select"), [close]);
94
+ const handleTriggerClick = (event) => {
95
+ trigger.props.onClick?.(event);
96
+ if (isOpen) close(event, "triggerClick");
97
+ else open();
98
+ };
99
+ const handleTriggerKeyDown = (event) => {
100
+ trigger.props.onKeyDown?.(event);
101
+ if (!isOpen && (event.key === "ArrowDown" || event.key === "ArrowUp")) {
102
+ event.preventDefault();
103
+ open();
104
+ }
105
+ };
106
+ const handleSurfaceKeyDown = (event) => {
107
+ if (event.key === "Escape") {
108
+ event.preventDefault();
109
+ close(event, "escapeKey");
110
+ } else if (onStep && (event.key === "ArrowLeft" || event.key === "ArrowRight")) {
111
+ event.preventDefault();
112
+ const step = event.key === "ArrowRight" ? 1 : -1;
113
+ onStep(require_MenuItem.isRtl(event.currentTarget) ? -step : step);
114
+ }
115
+ };
116
+ const handleBlur = (event) => {
117
+ const next = event.relatedTarget;
118
+ if (isOpen && !event.currentTarget.contains(next)) close(event, "blur");
119
+ };
120
+ const hasRows = items ? items.length > 0 : react.Children.toArray(children).length > 0;
121
+ const rows = items ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Menu_MenuItems.MenuItems, { items }) : children;
122
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(MenuRoot, {
123
+ ref: rootRef,
124
+ className,
125
+ "data-testid": dataTestid,
126
+ onBlur: handleBlur,
127
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuTrigger, {
128
+ element: trigger,
129
+ id: triggerId,
130
+ elementRef: setTriggerRef,
131
+ isOpen,
132
+ listId,
133
+ onClick: handleTriggerClick,
134
+ onKeyDown: handleTriggerKeyDown
135
+ }), isOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuItem.MenuPaper, {
136
+ ref: surfaceRef,
137
+ elevation,
138
+ layer,
139
+ margin,
140
+ onKeyDown: handleSurfaceKeyDown,
141
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuItem.MenuContext.Provider, {
142
+ value: menuContext,
143
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuList.MenuActivationContext.Provider, {
144
+ value: handleActivate,
145
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuList.MenuList, {
146
+ id: listId,
147
+ "aria-label": ariaLabel,
148
+ "aria-labelledby": ariaLabel ? void 0 : triggerId,
149
+ shouldAutoFocus: true,
150
+ onSelect,
151
+ color,
152
+ textColor,
153
+ size,
154
+ dense,
155
+ width: "100%",
156
+ children: hasRows ? rows : emptyLabel != null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuItem.MenuItem, {
157
+ disabled: true,
158
+ children: emptyLabel
159
+ })
160
+ })
161
+ })
162
+ })
163
+ })]
164
+ });
165
+ }
166
+ //#endregion
167
+ Object.defineProperty(exports, "Menu", {
168
+ enumerable: true,
169
+ get: function() {
170
+ return Menu;
171
+ }
172
+ });