@elliemae/ds-menu-button 3.45.0-rc.0 → 3.45.0-rc.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (282) hide show
  1. package/dist/cjs/DSMenuButton.js +16 -5
  2. package/dist/cjs/DSMenuButton.js.map +2 -2
  3. package/dist/cjs/config/useMenuButton.js +49 -18
  4. package/dist/cjs/config/useMenuButton.js.map +3 -3
  5. package/dist/cjs/config/useSplitInherithedProps.js +141 -0
  6. package/dist/cjs/config/useSplitInherithedProps.js.map +7 -0
  7. package/dist/cjs/config/useValidateProps.js.map +2 -2
  8. package/dist/cjs/constants/index.js +17 -4
  9. package/dist/cjs/constants/index.js.map +2 -2
  10. package/dist/cjs/index.js +7 -3
  11. package/dist/cjs/index.js.map +3 -3
  12. package/dist/cjs/parts/DSFlyoutMenu/DSFlyoutMenu.js +96 -0
  13. package/dist/cjs/parts/DSFlyoutMenu/DSFlyoutMenu.js.map +7 -0
  14. package/dist/cjs/parts/DSFlyoutMenu/config/useFlyoutMenu.js +54 -0
  15. package/dist/cjs/parts/DSFlyoutMenu/config/useFlyoutMenu.js.map +7 -0
  16. package/dist/cjs/parts/{ItemFactory.js → DSFlyoutMenu/config/useValidateProps.js} +9 -35
  17. package/dist/cjs/parts/DSFlyoutMenu/config/useValidateProps.js.map +7 -0
  18. package/dist/cjs/parts/DSFlyoutMenu/constants/index.js +46 -0
  19. package/dist/cjs/parts/DSFlyoutMenu/constants/index.js.map +7 -0
  20. package/dist/cjs/{DSMenuButtonCTX.js → parts/DSFlyoutMenu/index.js} +7 -8
  21. package/dist/cjs/parts/DSFlyoutMenu/index.js.map +7 -0
  22. package/dist/cjs/parts/DSFlyoutMenu/react-desc-prop-types.js +62 -0
  23. package/dist/cjs/parts/DSFlyoutMenu/react-desc-prop-types.js.map +7 -0
  24. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/DSMenuBehaviouralContextProvider.js +70 -0
  25. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/DSMenuBehaviouralContextProvider.js.map +7 -0
  26. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/MenuBehaviouralContextProviderCTX.js +40 -0
  27. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/MenuBehaviouralContextProviderCTX.js.map +7 -0
  28. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useFocusTracker.js +186 -0
  29. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useFocusTracker.js.map +7 -0
  30. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useGlobalEvents.js +89 -0
  31. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useGlobalEvents.js.map +7 -0
  32. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useMenuBehaviouralContextProvider.js +92 -0
  33. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useMenuBehaviouralContextProvider.js.map +7 -0
  34. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useMenuItemEventsHandlers.js +315 -0
  35. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useMenuItemEventsHandlers.js.map +7 -0
  36. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useMenuOpenStatus.js +66 -0
  37. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useMenuOpenStatus.js.map +7 -0
  38. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useValidateProps.js +40 -0
  39. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useValidateProps.js.map +7 -0
  40. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/constants/Errors.js +58 -0
  41. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/constants/Errors.js.map +7 -0
  42. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/constants/index.js +44 -0
  43. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/constants/index.js.map +7 -0
  44. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/index.js +37 -0
  45. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/index.js.map +7 -0
  46. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/react-desc-prop-types.js +53 -0
  47. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/react-desc-prop-types.js.map +7 -0
  48. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/utils/multipleSelectionHelpers.js +139 -0
  49. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/utils/multipleSelectionHelpers.js.map +7 -0
  50. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/utils/nodeGettersByCriterias.js +144 -0
  51. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/utils/nodeGettersByCriterias.js.map +7 -0
  52. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/utils/singleSelectionHelpers.js +44 -0
  53. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/utils/singleSelectionHelpers.js.map +7 -0
  54. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableMenuItem.js +116 -0
  55. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableMenuItem.js.map +7 -0
  56. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js +159 -0
  57. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js.map +7 -0
  58. package/dist/cjs/parts/DSMenuItemRendererFactory/DSMenuItemRendererFactory.js +97 -0
  59. package/dist/cjs/parts/DSMenuItemRendererFactory/DSMenuItemRendererFactory.js.map +7 -0
  60. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js +122 -0
  61. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js.map +7 -0
  62. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js +173 -0
  63. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js.map +7 -0
  64. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js +130 -0
  65. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js.map +7 -0
  66. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js +176 -0
  67. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js.map +7 -0
  68. package/dist/cjs/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js +162 -0
  69. package/dist/cjs/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js.map +7 -0
  70. package/dist/cjs/parts/DSMenuItemRendererFactory/config/useMenuItemRendererFactory.js +57 -0
  71. package/dist/cjs/parts/DSMenuItemRendererFactory/config/useMenuItemRendererFactory.js.map +7 -0
  72. package/dist/cjs/parts/DSMenuItemRendererFactory/config/useValidateProps.js +40 -0
  73. package/dist/cjs/parts/DSMenuItemRendererFactory/config/useValidateProps.js.map +7 -0
  74. package/dist/cjs/parts/DSMenuItemRendererFactory/constants/index.js +48 -0
  75. package/dist/cjs/parts/DSMenuItemRendererFactory/constants/index.js.map +7 -0
  76. package/dist/cjs/parts/DSMenuItemRendererFactory/index.js +37 -0
  77. package/dist/cjs/parts/DSMenuItemRendererFactory/index.js.map +7 -0
  78. package/dist/cjs/parts/DSMenuItemRendererFactory/react-desc-prop-types.js +51 -0
  79. package/dist/cjs/parts/DSMenuItemRendererFactory/react-desc-prop-types.js.map +7 -0
  80. package/dist/cjs/parts/DSMenuItemRendererFactory/useMenuItemHighlightState.js +62 -0
  81. package/dist/cjs/parts/DSMenuItemRendererFactory/useMenuItemHighlightState.js.map +7 -0
  82. package/dist/cjs/parts/DSOpinionatedButton/DSOpinionatedButton.js +100 -0
  83. package/dist/cjs/parts/DSOpinionatedButton/DSOpinionatedButton.js.map +7 -0
  84. package/dist/cjs/parts/DSOpinionatedButton/config/useOpinionatedButton.js +80 -0
  85. package/dist/cjs/parts/DSOpinionatedButton/config/useOpinionatedButton.js.map +7 -0
  86. package/dist/cjs/parts/DSOpinionatedButton/config/useTriggerEventsHandlers.js +98 -0
  87. package/dist/cjs/parts/DSOpinionatedButton/config/useTriggerEventsHandlers.js.map +7 -0
  88. package/dist/cjs/parts/DSOpinionatedButton/config/useValidateProps.js +40 -0
  89. package/dist/cjs/parts/DSOpinionatedButton/config/useValidateProps.js.map +7 -0
  90. package/dist/cjs/parts/DSOpinionatedButton/constants/index.js +48 -0
  91. package/dist/cjs/parts/DSOpinionatedButton/constants/index.js.map +7 -0
  92. package/dist/cjs/parts/DSOpinionatedButton/index.js +37 -0
  93. package/dist/cjs/parts/DSOpinionatedButton/index.js.map +7 -0
  94. package/dist/cjs/parts/DSOpinionatedButton/react-desc-prop-types.js +53 -0
  95. package/dist/cjs/parts/DSOpinionatedButton/react-desc-prop-types.js.map +7 -0
  96. package/dist/cjs/react-desc-prop-types.js +61 -25
  97. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  98. package/dist/cjs/utils/nodesTypeguardsAndGetters.js +123 -0
  99. package/dist/cjs/utils/nodesTypeguardsAndGetters.js.map +7 -0
  100. package/dist/cjs/utils/useOptionsArrayToDsTree.js +55 -0
  101. package/dist/cjs/utils/useOptionsArrayToDsTree.js.map +7 -0
  102. package/dist/esm/DSMenuButton.js +19 -8
  103. package/dist/esm/DSMenuButton.js.map +2 -2
  104. package/dist/esm/config/useMenuButton.js +51 -20
  105. package/dist/esm/config/useMenuButton.js.map +3 -3
  106. package/dist/esm/config/useSplitInherithedProps.js +111 -0
  107. package/dist/esm/config/useSplitInherithedProps.js.map +7 -0
  108. package/dist/esm/config/useValidateProps.js.map +2 -2
  109. package/dist/esm/constants/index.js +17 -4
  110. package/dist/esm/constants/index.js.map +2 -2
  111. package/dist/esm/index.js +8 -4
  112. package/dist/esm/index.js.map +3 -3
  113. package/dist/esm/parts/DSFlyoutMenu/DSFlyoutMenu.js +66 -0
  114. package/dist/esm/parts/DSFlyoutMenu/DSFlyoutMenu.js.map +7 -0
  115. package/dist/esm/parts/DSFlyoutMenu/config/useFlyoutMenu.js +24 -0
  116. package/dist/esm/parts/DSFlyoutMenu/config/useFlyoutMenu.js.map +7 -0
  117. package/dist/esm/parts/DSFlyoutMenu/config/useValidateProps.js +10 -0
  118. package/dist/esm/parts/DSFlyoutMenu/config/useValidateProps.js.map +7 -0
  119. package/dist/esm/parts/DSFlyoutMenu/constants/index.js +16 -0
  120. package/dist/esm/parts/DSFlyoutMenu/constants/index.js.map +7 -0
  121. package/dist/esm/parts/DSFlyoutMenu/index.js +7 -0
  122. package/dist/esm/parts/DSFlyoutMenu/index.js.map +7 -0
  123. package/dist/esm/parts/DSFlyoutMenu/react-desc-prop-types.js +40 -0
  124. package/dist/esm/parts/DSFlyoutMenu/react-desc-prop-types.js.map +7 -0
  125. package/dist/esm/parts/DSMenuBehaviouralContextProvider/DSMenuBehaviouralContextProvider.js +42 -0
  126. package/dist/esm/parts/DSMenuBehaviouralContextProvider/DSMenuBehaviouralContextProvider.js.map +7 -0
  127. package/dist/esm/parts/DSMenuBehaviouralContextProvider/MenuBehaviouralContextProviderCTX.js +10 -0
  128. package/dist/esm/parts/DSMenuBehaviouralContextProvider/MenuBehaviouralContextProviderCTX.js.map +7 -0
  129. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useFocusTracker.js +161 -0
  130. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useFocusTracker.js.map +7 -0
  131. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useGlobalEvents.js +59 -0
  132. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useGlobalEvents.js.map +7 -0
  133. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useMenuBehaviouralContextProvider.js +65 -0
  134. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useMenuBehaviouralContextProvider.js.map +7 -0
  135. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useMenuItemEventsHandlers.js +292 -0
  136. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useMenuItemEventsHandlers.js.map +7 -0
  137. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useMenuOpenStatus.js +36 -0
  138. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useMenuOpenStatus.js.map +7 -0
  139. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useValidateProps.js +10 -0
  140. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useValidateProps.js.map +7 -0
  141. package/dist/esm/parts/DSMenuBehaviouralContextProvider/constants/Errors.js +28 -0
  142. package/dist/esm/parts/DSMenuBehaviouralContextProvider/constants/Errors.js.map +7 -0
  143. package/dist/esm/parts/DSMenuBehaviouralContextProvider/constants/index.js +14 -0
  144. package/dist/esm/parts/DSMenuBehaviouralContextProvider/constants/index.js.map +7 -0
  145. package/dist/esm/parts/DSMenuBehaviouralContextProvider/index.js +10 -0
  146. package/dist/esm/parts/DSMenuBehaviouralContextProvider/index.js.map +7 -0
  147. package/dist/esm/parts/DSMenuBehaviouralContextProvider/react-desc-prop-types.js +23 -0
  148. package/dist/esm/parts/DSMenuBehaviouralContextProvider/react-desc-prop-types.js.map +7 -0
  149. package/dist/esm/parts/DSMenuBehaviouralContextProvider/utils/multipleSelectionHelpers.js +113 -0
  150. package/dist/esm/parts/DSMenuBehaviouralContextProvider/utils/multipleSelectionHelpers.js.map +7 -0
  151. package/dist/esm/parts/DSMenuBehaviouralContextProvider/utils/nodeGettersByCriterias.js +123 -0
  152. package/dist/esm/parts/DSMenuBehaviouralContextProvider/utils/nodeGettersByCriterias.js.map +7 -0
  153. package/dist/esm/parts/DSMenuBehaviouralContextProvider/utils/singleSelectionHelpers.js +14 -0
  154. package/dist/esm/parts/DSMenuBehaviouralContextProvider/utils/singleSelectionHelpers.js.map +7 -0
  155. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableMenuItem.js +91 -0
  156. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableMenuItem.js.map +7 -0
  157. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js +134 -0
  158. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js.map +7 -0
  159. package/dist/esm/parts/DSMenuItemRendererFactory/DSMenuItemRendererFactory.js +78 -0
  160. package/dist/esm/parts/DSMenuItemRendererFactory/DSMenuItemRendererFactory.js.map +7 -0
  161. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js +97 -0
  162. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js.map +7 -0
  163. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js +148 -0
  164. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js.map +7 -0
  165. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js +105 -0
  166. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js.map +7 -0
  167. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js +151 -0
  168. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js.map +7 -0
  169. package/dist/esm/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js +137 -0
  170. package/dist/esm/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js.map +7 -0
  171. package/dist/esm/parts/DSMenuItemRendererFactory/config/useMenuItemRendererFactory.js +30 -0
  172. package/dist/esm/parts/DSMenuItemRendererFactory/config/useMenuItemRendererFactory.js.map +7 -0
  173. package/dist/esm/parts/DSMenuItemRendererFactory/config/useValidateProps.js +10 -0
  174. package/dist/esm/parts/DSMenuItemRendererFactory/config/useValidateProps.js.map +7 -0
  175. package/dist/esm/parts/DSMenuItemRendererFactory/constants/index.js +18 -0
  176. package/dist/esm/parts/DSMenuItemRendererFactory/constants/index.js.map +7 -0
  177. package/dist/esm/parts/DSMenuItemRendererFactory/index.js +7 -0
  178. package/dist/esm/parts/DSMenuItemRendererFactory/index.js.map +7 -0
  179. package/dist/esm/parts/DSMenuItemRendererFactory/react-desc-prop-types.js +26 -0
  180. package/dist/esm/parts/DSMenuItemRendererFactory/react-desc-prop-types.js.map +7 -0
  181. package/dist/esm/parts/DSMenuItemRendererFactory/useMenuItemHighlightState.js +32 -0
  182. package/dist/esm/parts/DSMenuItemRendererFactory/useMenuItemHighlightState.js.map +7 -0
  183. package/dist/esm/parts/DSOpinionatedButton/DSOpinionatedButton.js +70 -0
  184. package/dist/esm/parts/DSOpinionatedButton/DSOpinionatedButton.js.map +7 -0
  185. package/dist/esm/parts/DSOpinionatedButton/config/useOpinionatedButton.js +53 -0
  186. package/dist/esm/parts/DSOpinionatedButton/config/useOpinionatedButton.js.map +7 -0
  187. package/dist/esm/parts/DSOpinionatedButton/config/useTriggerEventsHandlers.js +68 -0
  188. package/dist/esm/parts/DSOpinionatedButton/config/useTriggerEventsHandlers.js.map +7 -0
  189. package/dist/esm/parts/DSOpinionatedButton/config/useValidateProps.js +10 -0
  190. package/dist/esm/parts/DSOpinionatedButton/config/useValidateProps.js.map +7 -0
  191. package/dist/esm/parts/DSOpinionatedButton/constants/index.js +18 -0
  192. package/dist/esm/parts/DSOpinionatedButton/constants/index.js.map +7 -0
  193. package/dist/esm/parts/DSOpinionatedButton/index.js +10 -0
  194. package/dist/esm/parts/DSOpinionatedButton/index.js.map +7 -0
  195. package/dist/esm/parts/DSOpinionatedButton/react-desc-prop-types.js +23 -0
  196. package/dist/esm/parts/DSOpinionatedButton/react-desc-prop-types.js.map +7 -0
  197. package/dist/esm/react-desc-prop-types.js +62 -26
  198. package/dist/esm/react-desc-prop-types.js.map +2 -2
  199. package/dist/esm/utils/nodesTypeguardsAndGetters.js +93 -0
  200. package/dist/esm/utils/nodesTypeguardsAndGetters.js.map +7 -0
  201. package/dist/esm/utils/useOptionsArrayToDsTree.js +25 -0
  202. package/dist/esm/utils/useOptionsArrayToDsTree.js.map +7 -0
  203. package/dist/types/DSMenuButton.d.ts +4 -6
  204. package/dist/types/config/useMenuButton.d.ts +9 -13
  205. package/dist/types/config/useSplitInherithedProps.d.ts +495 -0
  206. package/dist/types/config/useValidateProps.d.ts +3 -3
  207. package/dist/types/constants/index.d.ts +14 -2
  208. package/dist/types/index.d.ts +4 -2
  209. package/dist/types/parts/DSFlyoutMenu/DSFlyoutMenu.d.ts +5 -0
  210. package/dist/types/parts/DSFlyoutMenu/config/useFlyoutMenu.d.ts +8 -0
  211. package/dist/types/parts/DSFlyoutMenu/config/useValidateProps.d.ts +3 -0
  212. package/dist/types/parts/DSFlyoutMenu/constants/index.d.ts +7 -0
  213. package/dist/types/parts/DSFlyoutMenu/index.d.ts +1 -0
  214. package/dist/types/parts/DSFlyoutMenu/react-desc-prop-types.d.ts +25 -0
  215. package/dist/types/parts/DSMenuBehaviouralContextProvider/DSMenuBehaviouralContextProvider.d.ts +5 -0
  216. package/dist/types/parts/DSMenuBehaviouralContextProvider/MenuBehaviouralContextProviderCTX.d.ts +5 -0
  217. package/dist/types/parts/DSMenuBehaviouralContextProvider/config/useFocusTracker.d.ts +15 -0
  218. package/dist/types/parts/DSMenuBehaviouralContextProvider/config/useGlobalEvents.d.ts +15 -0
  219. package/dist/types/parts/DSMenuBehaviouralContextProvider/config/useMenuBehaviouralContextProvider.d.ts +15 -0
  220. package/dist/types/parts/DSMenuBehaviouralContextProvider/config/useMenuItemEventsHandlers.d.ts +18 -0
  221. package/dist/types/parts/DSMenuBehaviouralContextProvider/config/useMenuOpenStatus.d.ts +17 -0
  222. package/dist/types/parts/DSMenuBehaviouralContextProvider/config/useValidateProps.d.ts +3 -0
  223. package/dist/types/parts/DSMenuBehaviouralContextProvider/constants/Errors.d.ts +15 -0
  224. package/dist/types/parts/DSMenuBehaviouralContextProvider/constants/index.d.ts +7 -0
  225. package/dist/types/parts/DSMenuBehaviouralContextProvider/index.d.ts +1 -0
  226. package/dist/types/parts/DSMenuBehaviouralContextProvider/react-desc-prop-types.d.ts +24 -0
  227. package/dist/types/parts/DSMenuBehaviouralContextProvider/utils/multipleSelectionHelpers.d.ts +6 -0
  228. package/dist/types/parts/DSMenuBehaviouralContextProvider/utils/nodeGettersByCriterias.d.ts +35 -0
  229. package/dist/types/parts/DSMenuBehaviouralContextProvider/utils/singleSelectionHelpers.d.ts +13 -0
  230. package/dist/types/parts/DSMenuItemRendererFactory/ActivableMenuItem.d.ts +5 -0
  231. package/dist/types/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.d.ts +7 -0
  232. package/dist/types/parts/DSMenuItemRendererFactory/DSMenuItemRendererFactory.d.ts +5 -0
  233. package/dist/types/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.d.ts +5 -0
  234. package/dist/types/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.d.ts +7 -0
  235. package/dist/types/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.d.ts +5 -0
  236. package/dist/types/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.d.ts +7 -0
  237. package/dist/types/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.d.ts +7 -0
  238. package/dist/types/parts/DSMenuItemRendererFactory/config/useMenuItemRendererFactory.d.ts +6 -0
  239. package/dist/types/parts/DSMenuItemRendererFactory/config/useValidateProps.d.ts +3 -0
  240. package/dist/types/parts/DSMenuItemRendererFactory/constants/index.d.ts +6 -0
  241. package/dist/types/parts/DSMenuItemRendererFactory/index.d.ts +1 -0
  242. package/dist/types/parts/DSMenuItemRendererFactory/react-desc-prop-types.d.ts +24 -0
  243. package/dist/types/parts/DSMenuItemRendererFactory/useMenuItemHighlightState.d.ts +12 -0
  244. package/dist/types/parts/DSOpinionatedButton/DSOpinionatedButton.d.ts +5 -0
  245. package/dist/types/parts/DSOpinionatedButton/config/useOpinionatedButton.d.ts +38 -0
  246. package/dist/types/parts/DSOpinionatedButton/config/useTriggerEventsHandlers.d.ts +14 -0
  247. package/dist/types/parts/DSOpinionatedButton/config/useValidateProps.d.ts +3 -0
  248. package/dist/types/parts/DSOpinionatedButton/constants/index.d.ts +6 -0
  249. package/dist/types/parts/DSOpinionatedButton/index.d.ts +1 -0
  250. package/dist/types/parts/DSOpinionatedButton/react-desc-prop-types.d.ts +23 -0
  251. package/dist/types/react-desc-prop-types.d.ts +206 -41
  252. package/dist/types/utils/nodesTypeguardsAndGetters.d.ts +22 -0
  253. package/dist/types/utils/useOptionsArrayToDsTree.d.ts +8 -0
  254. package/package.json +18 -16
  255. package/dist/cjs/DSMenuButtonCTX.js.map +0 -7
  256. package/dist/cjs/parts/ItemFactory.js.map +0 -7
  257. package/dist/cjs/parts/Menu.js +0 -125
  258. package/dist/cjs/parts/Menu.js.map +0 -7
  259. package/dist/cjs/parts/MenuButtonContent.js +0 -156
  260. package/dist/cjs/parts/MenuButtonContent.js.map +0 -7
  261. package/dist/cjs/parts/MenuItem.js +0 -252
  262. package/dist/cjs/parts/MenuItem.js.map +0 -7
  263. package/dist/cjs/styled.js +0 -132
  264. package/dist/cjs/styled.js.map +0 -7
  265. package/dist/esm/DSMenuButtonCTX.js +0 -8
  266. package/dist/esm/DSMenuButtonCTX.js.map +0 -7
  267. package/dist/esm/parts/ItemFactory.js +0 -36
  268. package/dist/esm/parts/ItemFactory.js.map +0 -7
  269. package/dist/esm/parts/Menu.js +0 -95
  270. package/dist/esm/parts/Menu.js.map +0 -7
  271. package/dist/esm/parts/MenuButtonContent.js +0 -126
  272. package/dist/esm/parts/MenuButtonContent.js.map +0 -7
  273. package/dist/esm/parts/MenuItem.js +0 -229
  274. package/dist/esm/parts/MenuItem.js.map +0 -7
  275. package/dist/esm/styled.js +0 -102
  276. package/dist/esm/styled.js.map +0 -7
  277. package/dist/types/DSMenuButtonCTX.d.ts +0 -15
  278. package/dist/types/parts/ItemFactory.d.ts +0 -14
  279. package/dist/types/parts/Menu.d.ts +0 -14
  280. package/dist/types/parts/MenuButtonContent.d.ts +0 -1
  281. package/dist/types/parts/MenuItem.d.ts +0 -21
  282. package/dist/types/styled.d.ts +0 -16
@@ -1,53 +1,218 @@
1
- import type { GlobalAttributesT, XstyledProps, DSPropTypesSchema } from '@elliemae/ds-props-helpers';
1
+ /// <reference types="react" />
2
+ import type { DSPropTypesSchema, ValidationMap } from '@elliemae/ds-props-helpers';
2
3
  import { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';
3
- import type { WeakValidationMap } from 'react';
4
- export declare namespace MenuButtonT {
5
- interface RequiredProps<T> {
6
- items: Item[];
7
- TriggerElement: React.ComponentType<TriggerElementProps<T>>;
8
- }
9
- interface DefaultProps {
10
- selectedKeys: string[];
11
- onSelectionChange: (selectedKeys: string[], parentId: string, item: MenuButtonT.Item) => void;
12
- }
13
- interface OptionalProps<T extends object> {
14
- triggerElementProps?: T;
15
- selectionMode?: 'single' | 'multiple';
16
- menuMinWidth?: string | number;
17
- ItemRenderer?: ItemRendererT;
4
+ import type { DSButtonV3T } from '@elliemae/ds-button-v2';
5
+ import type { UseDSTreeT } from '@elliemae/ds-tree-model';
6
+ import { DSMenuButtonName, MENU_BUTTON_SLOTS, type MENU_ITEMS_TYPES } from './constants/index.js';
7
+ export declare namespace DSMenuButtonT {
8
+ interface RootItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
9
+ type: 'ROOT_ITEM';
10
+ dsId: string;
11
+ label?: undefined;
12
+ secondaryLabel?: undefined;
13
+ leftDecoration?: undefined;
14
+ minWidth?: undefined;
15
+ disabled?: undefined;
16
+ onClick?: undefined;
17
+ onKeyDown?: undefined;
18
+ }
19
+ interface SeparatorItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
20
+ type: (typeof MENU_ITEMS_TYPES)['SEPARATOR'];
21
+ dsId: string;
22
+ label?: undefined;
23
+ secondaryLabel?: undefined;
24
+ leftDecoration?: undefined;
25
+ minWidth?: undefined;
26
+ disabled?: undefined;
27
+ onClick?: undefined;
28
+ onKeyDown?: undefined;
29
+ }
30
+ interface ActivableItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
31
+ type: (typeof MENU_ITEMS_TYPES)['ACTIVABLE_ITEM'];
32
+ dsId: string;
33
+ label: string;
34
+ secondaryLabel?: string;
35
+ leftDecoration?: React.ComponentType;
36
+ minWidth?: string | number;
37
+ disabled?: boolean;
38
+ onClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;
39
+ onKeyDown?: (e: React.KeyboardEvent) => null;
40
+ }
41
+ interface ActionableWithSubmenuItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
42
+ type: (typeof MENU_ITEMS_TYPES)['ACTIVABLE_WITH_SUBMENU_ITEM'];
43
+ dsId: string;
44
+ label: string;
45
+ secondaryLabel?: string;
46
+ leftDecoration?: React.ComponentType;
47
+ minWidth?: string | number;
48
+ disabled?: boolean;
49
+ onClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;
50
+ onKeyDown?: (e: React.KeyboardEvent) => null;
51
+ }
52
+ interface SkeletonItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
53
+ type: (typeof MENU_ITEMS_TYPES)['SKELETON_ITEM'];
54
+ dsId: string;
55
+ minWidth?: string | number;
56
+ label?: undefined;
57
+ secondaryLabel?: undefined;
58
+ leftDecoration?: undefined;
59
+ disabled?: undefined;
60
+ onClick?: undefined;
61
+ onKeyDown?: undefined;
18
62
  }
19
- interface Props<T extends object = object> extends Partial<DefaultProps>, OptionalProps<T>, Omit<GlobalAttributesT<HTMLButtonElement>, keyof OptionalProps<T> | keyof XstyledProps>, XstyledProps, RequiredProps<T> {
63
+ interface MultipleSelectItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
64
+ type: (typeof MENU_ITEMS_TYPES)['MULTIPLE_SELECT_ITEM'];
65
+ dsId: string;
66
+ label: string;
67
+ secondaryLabel?: string;
68
+ leftDecoration?: React.ComponentType;
69
+ minWidth?: string | number;
70
+ disabled?: boolean;
71
+ onClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;
72
+ onKeyDown?: (e: React.KeyboardEvent) => null;
20
73
  }
21
- interface InternalProps<T extends object = object> extends DefaultProps, OptionalProps<T>, Omit<GlobalAttributesT<HTMLButtonElement>, keyof OptionalProps<T> | keyof XstyledProps>, XstyledProps, RequiredProps<T> {
74
+ interface MultiSelectWithSubmenuItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
75
+ type: (typeof MENU_ITEMS_TYPES)['MULTIPLE_SELECT_WITH_SUBMENU_ITEM'];
76
+ dsId: string;
77
+ label: string;
78
+ secondaryLabel?: string;
79
+ leftDecoration?: React.ComponentType;
80
+ minWidth?: string | number;
81
+ disabled?: boolean;
82
+ onClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;
83
+ onKeyDown?: (e: React.KeyboardEvent) => null;
84
+ }
85
+ interface WithSubmenuItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
86
+ type: (typeof MENU_ITEMS_TYPES)['WITH_SUBMENU_ITEM'];
87
+ dsId: string;
88
+ label: string;
89
+ secondaryLabel?: string;
90
+ leftDecoration?: React.ComponentType;
91
+ minWidth?: string | number;
92
+ disabled?: boolean;
93
+ onClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;
94
+ onKeyDown?: (e: React.KeyboardEvent) => null;
22
95
  }
23
- type Item = {
96
+ interface SingleSelectItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
97
+ type: (typeof MENU_ITEMS_TYPES)['SINGLE_SELECT_ITEM'];
24
98
  dsId: string;
25
99
  label: string;
26
- type?: 'separator' | 'section';
27
- childrens?: Item[];
28
- subitems?: Item[];
29
- selectionMode?: 'single' | 'multiple';
100
+ secondaryLabel?: string;
101
+ leftDecoration?: React.ComponentType;
30
102
  minWidth?: string | number;
31
103
  disabled?: boolean;
32
- };
33
- interface TriggerElementProps<T2> {
34
- isOpen: boolean;
35
- innerRef: TypescriptHelpersT.AnyRef<HTMLButtonElement | null>;
36
- setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
37
- attributes: {
38
- 'aria-haspopup'?: boolean | 'true' | 'false' | 'dialog' | 'grid' | 'listbox' | 'menu' | 'tree';
39
- 'aria-expanded': boolean;
40
- };
41
- listeners: {
42
- onKeyDown: (e: React.KeyboardEvent) => void;
43
- };
44
- triggerElementProps: T2;
104
+ onClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;
105
+ onKeyDown?: (e: React.KeyboardEvent) => null;
45
106
  }
107
+ interface SingleSelectWithSubmenuItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
108
+ type: (typeof MENU_ITEMS_TYPES)['SINGLE_SELECT_WITH_SUBMENU_ITEM'];
109
+ dsId: string;
110
+ label: string;
111
+ secondaryLabel?: string;
112
+ leftDecoration?: React.ComponentType;
113
+ minWidth?: string | number;
114
+ disabled?: boolean;
115
+ onClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;
116
+ onKeyDown?: (e: React.KeyboardEvent) => null;
117
+ }
118
+ interface GroupItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
119
+ type: (typeof MENU_ITEMS_TYPES)['GROUP'];
120
+ dsId: string;
121
+ label?: string;
122
+ leftDecoration?: React.ComponentType;
123
+ minWidth?: string | number;
124
+ }
125
+ type MenuItemInterface = SeparatorItem | ActivableItem | ActionableWithSubmenuItem | SkeletonItem | MultipleSelectItem | MultiSelectWithSubmenuItem | WithSubmenuItem | GroupItem;
126
+ type PseudoFocusableItemInterface = ActivableItem | ActionableWithSubmenuItem | SkeletonItem | MultipleSelectItem | MultiSelectWithSubmenuItem | WithSubmenuItem | SingleSelectItem | SingleSelectWithSubmenuItem;
127
+ type MenuNodeRootItem = UseDSTreeT.TreeNode<RootItem>;
128
+ type MenuNodeSeparatorItem = UseDSTreeT.TreeNode<SeparatorItem>;
129
+ type MenuNodeActivableItem = UseDSTreeT.TreeNode<ActivableItem>;
130
+ type MenuNodeActivableWithSubmenuItem = UseDSTreeT.TreeNode<ActionableWithSubmenuItem>;
131
+ type MenuNodeSkeletonItem = UseDSTreeT.TreeNode<SkeletonItem>;
132
+ type MenuNodeMultipleSelectItem = UseDSTreeT.TreeNode<MultipleSelectItem>;
133
+ type MenuNodeMultipleSelectWithSubmenuItem = UseDSTreeT.TreeNode<MultiSelectWithSubmenuItem>;
134
+ type MenuNodeWithSubmenuItem = UseDSTreeT.TreeNode<WithSubmenuItem>;
135
+ type MenuNodeSingleSelectItem = UseDSTreeT.TreeNode<SingleSelectItem>;
136
+ type MenuNodeSingleSelectWithSubmenuItem = UseDSTreeT.TreeNode<SingleSelectWithSubmenuItem>;
137
+ type MenuNodeGroupItem = UseDSTreeT.TreeNode<GroupItem>;
138
+ type MenuNode = MenuNodeSeparatorItem | MenuNodeActivableItem | MenuNodeActivableWithSubmenuItem | MenuNodeSkeletonItem | MenuNodeMultipleSelectItem | MenuNodeMultipleSelectWithSubmenuItem | MenuNodeWithSubmenuItem | MenuNodeSingleSelectItem | MenuNodeSingleSelectWithSubmenuItem | MenuNodeGroupItem;
139
+ type PseudoFocusableMenuNodes = MenuNodeActivableItem | MenuNodeActivableWithSubmenuItem | MenuNodeSkeletonItem | MenuNodeSingleSelectItem | MenuNodeMultipleSelectItem | MenuNodeMultipleSelectWithSubmenuItem | MenuNodeWithSubmenuItem | MenuNodeSingleSelectWithSubmenuItem;
140
+ type MenuNodesAllowedToHaveChildren = MenuNodeRootItem | MenuNodeWithSubmenuItem | MenuNodeGroupItem | MenuNodeActivableWithSubmenuItem | MenuNodeMultipleSelectWithSubmenuItem | MenuNodeSingleSelectWithSubmenuItem;
46
141
  type ItemRendererT = React.ComponentType<{
47
- item: Item;
48
- isSelected: boolean;
142
+ itemNode: MenuNode;
49
143
  }>;
144
+ type SelectionableMenuNodes = DSMenuButtonT.MenuNodeMultipleSelectItem | DSMenuButtonT.MenuNodeMultipleSelectWithSubmenuItem | DSMenuButtonT.MenuNodeSingleSelectItem | DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem;
145
+ type MultipleSelectionableMenuNodes = DSMenuButtonT.MenuNodeMultipleSelectItem | DSMenuButtonT.MenuNodeMultipleSelectWithSubmenuItem;
146
+ type SingleSelectionableMenuNodes = DSMenuButtonT.MenuNodeSingleSelectItem | DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem;
147
+ type WithSubmenuMenuNodes = DSMenuButtonT.MenuNodeWithSubmenuItem | DSMenuButtonT.MenuNodeActivableWithSubmenuItem | DSMenuButtonT.MenuNodeMultipleSelectWithSubmenuItem | DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem;
148
+ type SelectionablesWithSubmenuMenuNodes = DSMenuButtonT.MenuNodeMultipleSelectWithSubmenuItem | DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem;
149
+ interface MenuBehaviouralLayerRequiredProps {
150
+ selectedItems: SelectionableMenuNodes[];
151
+ onItemSelected: (newSelection: SelectionableMenuNodes[], metainfo: {
152
+ itemNode: DSMenuButtonT.SelectionableMenuNodes;
153
+ event?: React.SyntheticEvent;
154
+ }) => void | TypescriptHelpersT.StateSetter<DSMenuButtonT.SelectionableMenuNodes[]>;
155
+ onActivateItem: (itemNode: DSMenuButtonT.PseudoFocusableMenuNodes, metainfo: {
156
+ itemNode: DSMenuButtonT.PseudoFocusableMenuNodes;
157
+ event?: React.SyntheticEvent;
158
+ }) => void;
159
+ }
160
+ interface MenuSpecificRequiredProps {
161
+ }
162
+ interface ButtonInheritedRequiredProps extends Omit<DSButtonV3T.RequiredProps, keyof MenuSpecificRequiredProps> {
163
+ }
164
+ interface RequiredProps extends MenuSpecificRequiredProps, ButtonInheritedRequiredProps, MenuBehaviouralLayerRequiredProps {
165
+ options: MenuItemInterface[] | MenuNode;
166
+ }
167
+ interface MenuBehaviouralLayerDefaultProps {
168
+ }
169
+ interface MenuSpecifiDefaultProps {
170
+ onClickOutside: (e: MouseEvent | React.KeyboardEvent | TouchEvent) => void;
171
+ onOptionClick: (nextSelectedOptions: Record<string, boolean>, clickedOption: MenuItemInterface, e: React.MouseEvent | React.KeyboardEvent) => void;
172
+ openedSubmenus: Record<string, boolean>;
173
+ onSubmenuToggle: (nextOpenedSubmenus: Record<string, boolean>, submenu: MenuItemInterface, e: React.MouseEvent | React.KeyboardEvent) => void;
174
+ isLoading: boolean;
175
+ isSkeleton: boolean;
176
+ selectedOptions: Record<string, boolean>;
177
+ }
178
+ interface ButtonInheiredDefaultProps extends Omit<DSButtonV3T.DefaultProps, keyof MenuSpecifiDefaultProps> {
179
+ }
180
+ interface DefaultProps extends MenuSpecifiDefaultProps, ButtonInheiredDefaultProps, MenuBehaviouralLayerDefaultProps {
181
+ }
182
+ interface MenuBehaviouralLayerOptionalProps {
183
+ onOpen?: () => void;
184
+ onClose?: () => void;
185
+ onDisplayedSubmenuChange?: (newOpenedItems: DSMenuButtonT.WithSubmenuMenuNodes[], metainfo: {
186
+ itemNode: DSMenuButtonT.PseudoFocusableMenuNodes | null;
187
+ event?: React.SyntheticEvent | FocusEvent | TouchEvent;
188
+ }) => void | TypescriptHelpersT.StateSetter<DSMenuButtonT.WithSubmenuMenuNodes[]>;
189
+ }
190
+ interface MenuSpecificOptionalProps {
191
+ ItemRenderer?: ItemRendererT;
192
+ }
193
+ interface ButtonInheritedOptionalProps extends Omit<DSButtonV3T.OptionalProps, keyof MenuSpecificOptionalProps> {
194
+ }
195
+ interface OptionalProps extends MenuSpecificOptionalProps, ButtonInheritedOptionalProps, MenuBehaviouralLayerOptionalProps, TypescriptHelpersT.PropsForGlobalOnSlots<typeof DSMenuButtonName, typeof MENU_BUTTON_SLOTS> {
196
+ }
197
+ interface MenuBehaviouralLayerProps extends Partial<MenuBehaviouralLayerDefaultProps>, MenuBehaviouralLayerOptionalProps, MenuBehaviouralLayerRequiredProps {
198
+ }
199
+ interface MenuSpecificProps extends Partial<MenuSpecifiDefaultProps>, MenuSpecificOptionalProps, MenuSpecificRequiredProps {
200
+ }
201
+ interface ButtonInheritedProps extends Omit<DSButtonV3T.Props, keyof MenuSpecificProps> {
202
+ }
203
+ interface Props extends RequiredProps, Partial<DefaultProps>, OptionalProps {
204
+ }
205
+ interface MenuBehaviouralLayerInternalProps extends MenuBehaviouralLayerDefaultProps, MenuBehaviouralLayerOptionalProps, MenuBehaviouralLayerRequiredProps {
206
+ }
207
+ interface MenuSpecificInternalProps extends MenuSpecifiDefaultProps, MenuSpecificOptionalProps, MenuSpecificRequiredProps {
208
+ }
209
+ interface ButtonInheritedInternalProps extends Omit<DSButtonV3T.InternalProps, keyof MenuSpecificInternalProps> {
210
+ }
211
+ interface InternalProps extends RequiredProps, DefaultProps, OptionalProps {
212
+ }
50
213
  }
51
- export declare const defaultProps: MenuButtonT.DefaultProps;
52
- export declare const DSDMenuButtonPropTypes: DSPropTypesSchema<MenuButtonT.Props<object>>;
53
- export declare const DSDMenuButtonPropTypesSchema: WeakValidationMap<MenuButtonT.Props<object>>;
214
+ export declare const defaultProps: DSMenuButtonT.MenuSpecifiDefaultProps;
215
+ export declare const MenuBehaviouralLayerPropTypes: DSPropTypesSchema<DSMenuButtonT.MenuBehaviouralLayerProps>;
216
+ export declare const DSMenuSpecificPropTypes: DSPropTypesSchema<DSMenuButtonT.MenuSpecificProps>;
217
+ export declare const DSMenuButtonPropTypes: DSPropTypesSchema<DSMenuButtonT.Props>;
218
+ export declare const DSMenuButtonPropTypesSchema: ValidationMap<DSMenuButtonT.Props>;
@@ -0,0 +1,22 @@
1
+ import { type DSMenuButtonT } from '../react-desc-prop-types.js';
2
+ export declare const isActivableNode: (item: unknown) => item is DSMenuButtonT.MenuNodeActivableItem;
3
+ export declare const isActivableWithSubmenuNode: (item: unknown) => item is DSMenuButtonT.MenuNodeActivableWithSubmenuItem;
4
+ export declare const isSkeletonNode: (item: unknown) => item is DSMenuButtonT.MenuNodeSkeletonItem;
5
+ export declare const isMultipleSelectOnlyNode: (item: unknown) => item is DSMenuButtonT.MenuNodeMultipleSelectItem;
6
+ export declare const isMultipleSelectWithSubmenuNode: (item: unknown) => item is DSMenuButtonT.MenuNodeMultipleSelectWithSubmenuItem;
7
+ export declare const isMultipleSelectNode: (item: unknown) => item is DSMenuButtonT.MultipleSelectionableMenuNodes;
8
+ export declare const isSingleSelectOnlyNode: (item: unknown) => item is DSMenuButtonT.MenuNodeSingleSelectItem;
9
+ export declare const isSingleSelectNodeWithSubmenu: (item: unknown) => item is DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem;
10
+ export declare const isSingleSelectNode: (item: unknown) => item is DSMenuButtonT.SingleSelectionableMenuNodes;
11
+ export declare const isSelectionableNode: (item: unknown) => item is DSMenuButtonT.SelectionableMenuNodes;
12
+ export declare const getSelectionableNodes: (tree: DSMenuButtonT.MenuNode) => DSMenuButtonT.SelectionableMenuNodes[];
13
+ export declare const isWithSubmenuOnlyNode: (item: unknown) => item is DSMenuButtonT.MenuNodeWithSubmenuItem;
14
+ export declare const isSelectionableWithSubmenuNode: (item: unknown) => item is DSMenuButtonT.SelectionablesWithSubmenuMenuNodes;
15
+ export declare const isWithSubmenuNode: (item: unknown) => item is DSMenuButtonT.WithSubmenuMenuNodes;
16
+ export declare const getWithSubmenuNodes: (tree: DSMenuButtonT.MenuNode) => DSMenuButtonT.PseudoFocusableMenuNodes[];
17
+ export declare const isFocusableNode: (item: unknown) => item is DSMenuButtonT.PseudoFocusableMenuNodes;
18
+ export declare const getFocusableNodes: (tree: DSMenuButtonT.MenuNode) => DSMenuButtonT.PseudoFocusableMenuNodes[];
19
+ export declare const isSeparatorNode: (item: unknown) => item is DSMenuButtonT.MenuNodeSeparatorItem;
20
+ export declare const isGroup: (item: unknown) => item is DSMenuButtonT.MenuNodeGroupItem;
21
+ export declare const isRootNode: (item: unknown) => item is DSMenuButtonT.MenuNodeRootItem;
22
+ export declare const isMenuNodeAllowedToHaveChildren: (item: unknown) => item is DSMenuButtonT.MenuNodesAllowedToHaveChildren;
@@ -0,0 +1,8 @@
1
+ import type { UseDSTreeT } from '@elliemae/ds-tree-model';
2
+ import { type DSMenuButtonT } from '../react-desc-prop-types.js';
3
+ type UseOptionsArrayToDsTreeRootNodeConfig = {
4
+ options: DSMenuButtonT.MenuItemInterface[];
5
+ instanceUid: string;
6
+ };
7
+ export declare const useOptionsArrayToDsTree: ({ options, instanceUid }: UseOptionsArrayToDsTreeRootNodeConfig) => UseDSTreeT.OutputT<DSMenuButtonT.MenuItemInterface>;
8
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-menu-button",
3
- "version": "3.45.0-rc.0",
3
+ "version": "3.45.0-rc.2",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Menu Button",
6
6
  "files": [
@@ -37,32 +37,34 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@xstyled/styled-components": "~3.6.0",
40
- "uid": "^2.0.2",
41
- "@elliemae/ds-button-v2": "3.45.0-rc.0",
42
- "@elliemae/ds-hooks-keyboard-navigation": "3.45.0-rc.0",
43
- "@elliemae/ds-icons": "3.45.0-rc.0",
44
- "@elliemae/ds-props-helpers": "3.45.0-rc.0",
45
- "@elliemae/ds-grid": "3.45.0-rc.0",
46
- "@elliemae/ds-system": "3.45.0-rc.0",
47
- "@elliemae/ds-typography": "3.45.0-rc.0",
48
- "@elliemae/ds-typescript-helpers": "3.45.0-rc.0"
40
+ "@elliemae/ds-button-v2": "3.45.0-rc.2",
41
+ "@elliemae/ds-floating-context": "3.45.0-rc.2",
42
+ "@elliemae/ds-grid": "3.45.0-rc.2",
43
+ "@elliemae/ds-hooks-on-blur-out": "3.45.0-rc.2",
44
+ "@elliemae/ds-menu-items-commons": "3.45.0-rc.2",
45
+ "@elliemae/ds-props-helpers": "3.45.0-rc.2",
46
+ "@elliemae/ds-icons": "3.45.0-rc.2",
47
+ "@elliemae/ds-tree-model": "3.45.0-rc.2",
48
+ "@elliemae/ds-system": "3.45.0-rc.2"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@elliemae/pui-cli": "9.0.0-next.50",
52
- "@xstyled/system": "3.7.0",
53
- "lodash": "^4.17.21",
54
52
  "styled-components": "~5.3.9",
55
- "@elliemae/ds-monorepo-devops": "3.45.0-rc.0"
53
+ "@elliemae/ds-monorepo-devops": "3.45.0-rc.2",
54
+ "@elliemae/ds-typescript-helpers": "3.45.0-rc.2",
55
+ "@elliemae/ds-dropdownmenu-v2": "3.45.0-rc.2"
56
56
  },
57
57
  "peerDependencies": {
58
- "lodash": "^4.17.21",
58
+ "@testing-library/jest-dom": "~5.16.4",
59
+ "@testing-library/react": "~12.1.3",
60
+ "@testing-library/user-event": "~13.5.0",
59
61
  "react": "^17.0.2",
60
62
  "react-dom": "^17.0.2",
61
63
  "styled-components": "~5.3.9"
62
64
  },
63
65
  "publishConfig": {
64
66
  "access": "public",
65
- "typeSafety": false
67
+ "typeSafety": true
66
68
  },
67
69
  "scripts": {
68
70
  "dev": "cross-env NODE_ENV=development node ../../../scripts/build/build.mjs --watch",
@@ -71,6 +73,6 @@
71
73
  "lint:strict": "node ../../../scripts/lint-strict.mjs",
72
74
  "dts": "node ../../../scripts/dts.mjs",
73
75
  "build": "cross-env NODE_ENV=production node ../../../scripts/build/build.mjs",
74
- "checkDeps": "npm exec ../../util/ds-codemods -- check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\""
76
+ "checkDeps": "npx -yes ../../util/ds-codemods check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\""
75
77
  }
76
78
  }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/DSMenuButtonCTX.ts", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport type { MenuButtonT } from './react-desc-prop-types.js';\ninterface MenuButtonContextProps<T extends object = object> {\n focusedOption: string | null;\n setFocusedOption: React.Dispatch<React.SetStateAction<string | null>>;\n selectedKeys: string[];\n onSelectionChange: (selectedKeys: string[], parentId: string, item: MenuButtonT.Item) => void;\n triggerElementRef: HTMLElement | null;\n setTriggerElementRef: React.Dispatch<React.SetStateAction<HTMLElement | null>>;\n isOpen: boolean;\n setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;\n propsWithDefault: MenuButtonT.InternalProps<T>;\n}\n\nconst defaultContext = {} as MenuButtonContextProps<object>;\n\nexport const MenuButtonContext = React.createContext(defaultContext);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAclB,MAAM,iBAAiB,CAAC;AAEjB,MAAM,oBAAoB,aAAAA,QAAM,cAAc,cAAc;",
6
- "names": ["React"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/parts/ItemFactory.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable import/no-cycle */\n/* eslint-disable arrow-body-style */\nimport React from 'react';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { MenuItem, Section, Separator } from './MenuItem.js';\n\nimport type { MenuButtonT } from '../react-desc-prop-types.js';\ninterface ItemFactoryProps {\n item: MenuButtonT.Item;\n level: number;\n selectionMode?: 'single' | 'multiple';\n parentId?: string;\n tabIndex: TypescriptHelpersT.WCAGTabIndex;\n onFocus: React.FocusEventHandler;\n innerRef: TypescriptHelpersT.AnyRef<HTMLElement>;\n}\n\nexport const ItemFactory: React.FC<ItemFactoryProps> = ({\n item,\n innerRef,\n onFocus,\n tabIndex,\n level,\n selectionMode,\n parentId,\n}) => {\n if (item.type === 'separator') {\n return <Separator />;\n }\n if (item.type === 'section') {\n return <Section item={item} />;\n }\n return (\n <MenuItem\n key={item.dsId}\n item={item}\n innerRef={innerRef}\n onFocus={onFocus}\n tabIndex={tabIndex}\n level={level}\n parentId={parentId}\n selectionMode={selectionMode || item.type}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD2BZ;AAvBX,sBAA6C;AAatC,MAAM,cAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,MAAI,KAAK,SAAS,aAAa;AAC7B,WAAO,4CAAC,6BAAU;AAAA,EACpB;AACA,MAAI,KAAK,SAAS,WAAW;AAC3B,WAAO,4CAAC,2BAAQ,MAAY;AAAA,EAC9B;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MAEC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe,iBAAiB,KAAK;AAAA;AAAA,IAPhC,KAAK;AAAA,EAQZ;AAEJ;",
6
- "names": []
7
- }
@@ -1,125 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var Menu_exports = {};
30
- __export(Menu_exports, {
31
- Menu: () => Menu
32
- });
33
- module.exports = __toCommonJS(Menu_exports);
34
- var React = __toESM(require("react"));
35
- var import_jsx_runtime = require("react/jsx-runtime");
36
- var import_react = __toESM(require("react"));
37
- var import_ds_hooks_keyboard_navigation = require("@elliemae/ds-hooks-keyboard-navigation");
38
- var import_DSMenuButtonCTX = require("../DSMenuButtonCTX.js");
39
- var import_styled = require("../styled.js");
40
- var import_ItemFactory = require("./ItemFactory.js");
41
- const Menu = (props) => {
42
- const { referenceElement, showSubMenu, selectionMode, setShowSubMenu, parentId, level, items, minWidth } = props;
43
- const { focusedOption, setFocusedOption } = (0, import_react.useContext)(import_DSMenuButtonCTX.MenuButtonContext);
44
- const listRef = import_react.default.useRef(null);
45
- const rect = referenceElement?.getBoundingClientRect();
46
- const [coords, setCoords] = (0, import_react.useState)({ x: rect?.width ?? 0, y: 0 });
47
- import_react.default.useLayoutEffect(() => {
48
- const listRect = listRef?.current?.getBoundingClientRect();
49
- if (!listRect) return;
50
- if (level === 1) {
51
- if (listRect.bottom < window.innerHeight) {
52
- setCoords({ x: 0, y: rect?.height || 0 });
53
- } else {
54
- setCoords({ x: 0, y: -listRect.height });
55
- }
56
- return;
57
- }
58
- if (listRect.right > window.innerWidth) {
59
- setCoords({ x: -(minWidth || rect?.width || 0), y: 0 });
60
- } else {
61
- setCoords({ x: rect?.width || 0, y: 0 });
62
- }
63
- }, [level, minWidth, rect?.height, rect?.width, referenceElement]);
64
- const config = {
65
- options: items.filter((item) => item.type !== "separator" && item.type !== "section").map((item) => item.dsId),
66
- direction: import_ds_hooks_keyboard_navigation.DIRECTIONS.VERTICAL,
67
- focusedOption,
68
- setFocusedOption
69
- };
70
- const { getWrapperProps, getItemProps } = (0, import_ds_hooks_keyboard_navigation.useKeyboardNavigation)(config);
71
- const { onKeyDown, onBlur } = getWrapperProps();
72
- const handleOnMenuKeyDown = (0, import_react.useCallback)(
73
- (event) => {
74
- if (event.key === "ArrowDown" || event.key === "ArrowUp") {
75
- event.stopPropagation();
76
- }
77
- onKeyDown(event);
78
- },
79
- [onKeyDown]
80
- );
81
- const handleOnBlur = (0, import_react.useCallback)(
82
- (e) => {
83
- setTimeout(() => {
84
- if (!listRef.current?.contains(document.activeElement)) {
85
- setShowSubMenu(false);
86
- }
87
- });
88
- onBlur(e);
89
- },
90
- [onBlur, setShowSubMenu]
91
- );
92
- const subMenuStyles = (0, import_react.useMemo)(
93
- () => ({
94
- position: "absolute",
95
- top: coords.y,
96
- left: coords.x,
97
- zIndex: 1001 + level,
98
- minWidth
99
- }),
100
- [coords, level, minWidth]
101
- );
102
- if (!referenceElement || !showSubMenu) return null;
103
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
104
- import_styled.StyledMenu,
105
- {
106
- innerRef: listRef,
107
- role: "menu",
108
- onKeyDown: handleOnMenuKeyDown,
109
- onBlur: handleOnBlur,
110
- style: subMenuStyles,
111
- children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
112
- import_ItemFactory.ItemFactory,
113
- {
114
- item,
115
- selectionMode,
116
- level,
117
- parentId,
118
- ...getItemProps(item.dsId)
119
- },
120
- item.dsId
121
- ))
122
- }
123
- );
124
- };
125
- //# sourceMappingURL=Menu.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/parts/Menu.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable import/no-cycle */\nimport React, { useState, useMemo, useCallback, useContext } from 'react';\nimport { useKeyboardNavigation, DIRECTIONS } from '@elliemae/ds-hooks-keyboard-navigation';\nimport { MenuButtonContext } from '../DSMenuButtonCTX.js';\nimport type { MenuButtonT } from '../react-desc-prop-types.js';\nimport { StyledMenu } from '../styled.js';\nimport { ItemFactory } from './ItemFactory.js';\n\ninterface SubMenuProps {\n referenceElement: HTMLElement | null;\n showSubMenu: boolean;\n selectionMode?: 'single' | 'multiple';\n setShowSubMenu: React.Dispatch<React.SetStateAction<boolean>>;\n parentId?: string;\n level: number;\n items: MenuButtonT.Item[];\n minWidth?: string | number;\n}\n\nexport const Menu: React.FC<SubMenuProps> = (props) => {\n const { referenceElement, showSubMenu, selectionMode, setShowSubMenu, parentId, level, items, minWidth } = props;\n const { focusedOption, setFocusedOption } = useContext(MenuButtonContext);\n const listRef = React.useRef<HTMLDivElement>(null);\n const rect = referenceElement?.getBoundingClientRect();\n const [coords, setCoords] = useState<{ x: number; y: number }>({ x: rect?.width ?? 0, y: 0 });\n\n // this logic will be part of the new popper custom hook\n React.useLayoutEffect(() => {\n const listRect = listRef?.current?.getBoundingClientRect();\n if (!listRect) return;\n if (level === 1) {\n if (listRect.bottom < window.innerHeight) {\n setCoords({ x: 0, y: rect?.height || 0 });\n } else {\n setCoords({ x: 0, y: -listRect.height });\n }\n return;\n }\n if (listRect.right > window.innerWidth) {\n setCoords({ x: -(minWidth || rect?.width || 0), y: 0 });\n } else {\n setCoords({ x: rect?.width || 0, y: 0 });\n }\n }, [level, minWidth, rect?.height, rect?.width, referenceElement]);\n\n const config = {\n options: items.filter((item) => item.type !== 'separator' && item.type !== 'section').map((item) => item.dsId),\n direction: DIRECTIONS.VERTICAL,\n focusedOption,\n setFocusedOption,\n };\n\n const { getWrapperProps, getItemProps } = useKeyboardNavigation(config);\n\n const { onKeyDown, onBlur } = getWrapperProps();\n\n const handleOnMenuKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.stopPropagation();\n }\n onKeyDown(event);\n },\n [onKeyDown],\n );\n\n const handleOnBlur: React.FocusEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n setTimeout(() => {\n if (!listRef.current?.contains(document.activeElement)) {\n setShowSubMenu(false);\n }\n });\n onBlur(e);\n },\n [onBlur, setShowSubMenu],\n );\n\n const subMenuStyles = useMemo(\n () => ({\n position: 'absolute',\n top: coords.y,\n left: coords.x,\n zIndex: 1001 + level,\n minWidth,\n }),\n [coords, level, minWidth],\n );\n\n if (!referenceElement || !showSubMenu) return null;\n\n return (\n <StyledMenu\n innerRef={listRef}\n role=\"menu\"\n onKeyDown={handleOnMenuKeyDown}\n onBlur={handleOnBlur}\n style={subMenuStyles}\n >\n {items.map((item) => (\n <ItemFactory\n key={item.dsId}\n item={item}\n selectionMode={selectionMode}\n level={level}\n parentId={parentId}\n {...getItemProps(item.dsId)}\n />\n ))}\n </StyledMenu>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADoGf;AAnGR,mBAAkE;AAClE,0CAAkD;AAClD,6BAAkC;AAElC,oBAA2B;AAC3B,yBAA4B;AAarB,MAAM,OAA+B,CAAC,UAAU;AACrD,QAAM,EAAE,kBAAkB,aAAa,eAAe,gBAAgB,UAAU,OAAO,OAAO,SAAS,IAAI;AAC3G,QAAM,EAAE,eAAe,iBAAiB,QAAI,yBAAW,wCAAiB;AACxE,QAAM,UAAU,aAAAA,QAAM,OAAuB,IAAI;AACjD,QAAM,OAAO,kBAAkB,sBAAsB;AACrD,QAAM,CAAC,QAAQ,SAAS,QAAI,uBAAmC,EAAE,GAAG,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;AAG5F,eAAAA,QAAM,gBAAgB,MAAM;AAC1B,UAAM,WAAW,SAAS,SAAS,sBAAsB;AACzD,QAAI,CAAC,SAAU;AACf,QAAI,UAAU,GAAG;AACf,UAAI,SAAS,SAAS,OAAO,aAAa;AACxC,kBAAU,EAAE,GAAG,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;AAAA,MAC1C,OAAO;AACL,kBAAU,EAAE,GAAG,GAAG,GAAG,CAAC,SAAS,OAAO,CAAC;AAAA,MACzC;AACA;AAAA,IACF;AACA,QAAI,SAAS,QAAQ,OAAO,YAAY;AACtC,gBAAU,EAAE,GAAG,EAAE,YAAY,MAAM,SAAS,IAAI,GAAG,EAAE,CAAC;AAAA,IACxD,OAAO;AACL,gBAAU,EAAE,GAAG,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;AAAA,IACzC;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,MAAM,QAAQ,MAAM,OAAO,gBAAgB,CAAC;AAEjE,QAAM,SAAS;AAAA,IACb,SAAS,MAAM,OAAO,CAAC,SAAS,KAAK,SAAS,eAAe,KAAK,SAAS,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI;AAAA,IAC7G,WAAW,+CAAW;AAAA,IACtB;AAAA,IACA;AAAA,EACF;AAEA,QAAM,EAAE,iBAAiB,aAAa,QAAI,2DAAsB,MAAM;AAEtE,QAAM,EAAE,WAAW,OAAO,IAAI,gBAAgB;AAE9C,QAAM,0BAAsB;AAAA,IAC1B,CAAC,UAA+B;AAC9B,UAAI,MAAM,QAAQ,eAAe,MAAM,QAAQ,WAAW;AACxD,cAAM,gBAAgB;AAAA,MACxB;AACA,gBAAU,KAAK;AAAA,IACjB;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA,QAAM,mBAAwD;AAAA,IAC5D,CAAC,MAAM;AACL,iBAAW,MAAM;AACf,YAAI,CAAC,QAAQ,SAAS,SAAS,SAAS,aAAa,GAAG;AACtD,yBAAe,KAAK;AAAA,QACtB;AAAA,MACF,CAAC;AACD,aAAO,CAAC;AAAA,IACV;AAAA,IACA,CAAC,QAAQ,cAAc;AAAA,EACzB;AAEA,QAAM,oBAAgB;AAAA,IACpB,OAAO;AAAA,MACL,UAAU;AAAA,MACV,KAAK,OAAO;AAAA,MACZ,MAAM,OAAO;AAAA,MACb,QAAQ,OAAO;AAAA,MACf;AAAA,IACF;AAAA,IACA,CAAC,QAAQ,OAAO,QAAQ;AAAA,EAC1B;AAEA,MAAI,CAAC,oBAAoB,CAAC,YAAa,QAAO;AAE9C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU;AAAA,MACV,MAAK;AAAA,MACL,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,MAEN,gBAAM,IAAI,CAAC,SACV;AAAA,QAAC;AAAA;AAAA,UAEC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACC,GAAG,aAAa,KAAK,IAAI;AAAA;AAAA,QALrB,KAAK;AAAA,MAMZ,CACD;AAAA;AAAA,EACH;AAEJ;",
6
- "names": ["React"]
7
- }