@elliemae/ds-left-navigation 2.3.0-next.0 → 3.0.0-alpha.0

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 (370) hide show
  1. package/dist/cjs/LeftNavigation.js +51 -0
  2. package/dist/cjs/LeftNavigation.js.map +7 -0
  3. package/dist/cjs/LeftNavigationContext.js +67 -0
  4. package/dist/cjs/LeftNavigationContext.js.map +7 -0
  5. package/dist/cjs/common/getItemBackgroundStyle.js +51 -0
  6. package/dist/cjs/common/getItemBackgroundStyle.js.map +7 -0
  7. package/dist/cjs/common/getLeftBorderStyle.js +54 -0
  8. package/dist/cjs/common/getLeftBorderStyle.js.map +7 -0
  9. package/dist/cjs/common/getScrollbarStyle.js +58 -0
  10. package/dist/cjs/common/getScrollbarStyle.js.map +7 -0
  11. package/dist/cjs/common/index.js +30 -0
  12. package/dist/cjs/common/index.js.map +7 -0
  13. package/dist/cjs/configs/index.js +38 -0
  14. package/dist/cjs/configs/index.js.map +7 -0
  15. package/dist/cjs/configs/useLeftNavConfig.js +106 -0
  16. package/dist/cjs/configs/useLeftNavConfig.js.map +7 -0
  17. package/dist/cjs/configs/useLeftNavItems.js +82 -0
  18. package/dist/cjs/configs/useLeftNavItems.js.map +7 -0
  19. package/dist/cjs/configs/useLeftNavSmoothExpand.js +53 -0
  20. package/dist/cjs/configs/useLeftNavSmoothExpand.js.map +7 -0
  21. package/dist/cjs/exported-related/ChevronItem/index.js +43 -0
  22. package/dist/cjs/exported-related/ChevronItem/index.js.map +7 -0
  23. package/dist/cjs/exported-related/Icon/index.js +53 -0
  24. package/dist/cjs/exported-related/Icon/index.js.map +7 -0
  25. package/dist/cjs/exported-related/ItemRenderer/index.js +133 -0
  26. package/dist/cjs/exported-related/ItemRenderer/index.js.map +7 -0
  27. package/dist/cjs/exported-related/ItemRenderer/styled.js +90 -0
  28. package/dist/cjs/exported-related/ItemRenderer/styled.js.map +7 -0
  29. package/dist/cjs/exported-related/ItemRenderer/usePropsWithDefaults.js +69 -0
  30. package/dist/cjs/exported-related/ItemRenderer/usePropsWithDefaults.js.map +7 -0
  31. package/dist/cjs/exported-related/Notifications/index.js +82 -0
  32. package/dist/cjs/exported-related/Notifications/index.js.map +7 -0
  33. package/dist/cjs/exported-related/OpenWindowItem/index.js +50 -0
  34. package/dist/cjs/exported-related/OpenWindowItem/index.js.map +7 -0
  35. package/dist/cjs/exported-related/constants.js +57 -0
  36. package/dist/cjs/exported-related/constants.js.map +7 -0
  37. package/dist/cjs/exported-related/index.js +33 -0
  38. package/dist/cjs/exported-related/index.js.map +7 -0
  39. package/dist/cjs/hooks/index.js +30 -0
  40. package/dist/cjs/hooks/index.js.map +7 -0
  41. package/dist/cjs/hooks/useExpandableOnClickHandler.js +64 -0
  42. package/dist/cjs/hooks/useExpandableOnClickHandler.js.map +7 -0
  43. package/dist/cjs/hooks/useKeyboardNavigation.js +118 -0
  44. package/dist/cjs/hooks/useKeyboardNavigation.js.map +7 -0
  45. package/dist/cjs/hooks/useOpenableOnClickHandler.js +69 -0
  46. package/dist/cjs/hooks/useOpenableOnClickHandler.js.map +7 -0
  47. package/dist/cjs/hooks/useSelectFirstBodyItem.js +52 -0
  48. package/dist/cjs/hooks/useSelectFirstBodyItem.js.map +7 -0
  49. package/dist/cjs/index.d.js +27 -0
  50. package/dist/cjs/index.d.js.map +7 -0
  51. package/dist/cjs/index.js +41 -0
  52. package/dist/cjs/index.js.map +7 -0
  53. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/index.js +152 -0
  54. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/index.js.map +7 -0
  55. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/styled.js +49 -0
  56. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/styled.js.map +7 -0
  57. package/dist/cjs/outOfTheBox/ItemHeader/index.js +147 -0
  58. package/dist/cjs/outOfTheBox/ItemHeader/index.js.map +7 -0
  59. package/dist/cjs/outOfTheBox/ItemHeader/styled.js +49 -0
  60. package/dist/cjs/outOfTheBox/ItemHeader/styled.js.map +7 -0
  61. package/dist/cjs/outOfTheBox/ItemLink/index.js +106 -0
  62. package/dist/cjs/outOfTheBox/ItemLink/index.js.map +7 -0
  63. package/dist/cjs/outOfTheBox/ItemLink/styled.js +41 -0
  64. package/dist/cjs/outOfTheBox/ItemLink/styled.js.map +7 -0
  65. package/dist/cjs/outOfTheBox/ItemSection/index.js +79 -0
  66. package/dist/cjs/outOfTheBox/ItemSection/index.js.map +7 -0
  67. package/dist/cjs/outOfTheBox/ItemSection/styled.js +53 -0
  68. package/dist/cjs/outOfTheBox/ItemSection/styled.js.map +7 -0
  69. package/dist/cjs/outOfTheBox/ItemSeparator/index.js +63 -0
  70. package/dist/cjs/outOfTheBox/ItemSeparator/index.js.map +7 -0
  71. package/dist/cjs/outOfTheBox/ItemSubmenu/index.js +149 -0
  72. package/dist/cjs/outOfTheBox/ItemSubmenu/index.js.map +7 -0
  73. package/dist/cjs/outOfTheBox/ItemSubmenu/styled.js +49 -0
  74. package/dist/cjs/outOfTheBox/ItemSubmenu/styled.js.map +7 -0
  75. package/dist/cjs/outOfTheBox/ItemTextLabel/index.js +69 -0
  76. package/dist/cjs/outOfTheBox/ItemTextLabel/index.js.map +7 -0
  77. package/dist/cjs/outOfTheBox/ItemTextLabel/styled.js +43 -0
  78. package/dist/cjs/outOfTheBox/ItemTextLabel/styled.js.map +7 -0
  79. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js +166 -0
  80. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js.map +7 -0
  81. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/styled.js +49 -0
  82. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/styled.js.map +7 -0
  83. package/dist/cjs/outOfTheBox/ItemWithDate/index.js +91 -0
  84. package/dist/cjs/outOfTheBox/ItemWithDate/index.js.map +7 -0
  85. package/dist/cjs/outOfTheBox/ItemWithDate/styled.js +49 -0
  86. package/dist/cjs/outOfTheBox/ItemWithDate/styled.js.map +7 -0
  87. package/dist/cjs/outOfTheBox/index.js +77 -0
  88. package/dist/cjs/outOfTheBox/index.js.map +7 -0
  89. package/dist/cjs/parts/LeftNavContent/index.js +88 -0
  90. package/dist/cjs/parts/LeftNavContent/index.js.map +7 -0
  91. package/dist/cjs/parts/LeftNavContent/styled.js +113 -0
  92. package/dist/cjs/parts/LeftNavContent/styled.js.map +7 -0
  93. package/dist/cjs/parts/LeftNavContentWithScrollbar/index.js +101 -0
  94. package/dist/cjs/parts/LeftNavContentWithScrollbar/index.js.map +7 -0
  95. package/dist/cjs/parts/LeftNavFooterItem/index.js +125 -0
  96. package/dist/cjs/parts/LeftNavFooterItem/index.js.map +7 -0
  97. package/dist/cjs/parts/LeftNavFooterItem/styled.js +94 -0
  98. package/dist/cjs/parts/LeftNavFooterItem/styled.js.map +7 -0
  99. package/dist/cjs/parts/LeftNavLoading/index.js +52 -0
  100. package/dist/cjs/parts/LeftNavLoading/index.js.map +7 -0
  101. package/dist/cjs/parts/OutOfTheBoxMapItem.js +55 -0
  102. package/dist/cjs/parts/OutOfTheBoxMapItem.js.map +7 -0
  103. package/dist/cjs/prop-types.js +66 -0
  104. package/dist/cjs/prop-types.js.map +7 -0
  105. package/dist/esm/LeftNavigation.js +22 -0
  106. package/dist/esm/LeftNavigation.js.map +7 -0
  107. package/{esm → dist/esm}/LeftNavigationContext.js +15 -11
  108. package/dist/esm/LeftNavigationContext.js.map +7 -0
  109. package/dist/esm/common/getItemBackgroundStyle.js +22 -0
  110. package/dist/esm/common/getItemBackgroundStyle.js.map +7 -0
  111. package/dist/esm/common/getLeftBorderStyle.js +25 -0
  112. package/dist/esm/common/getLeftBorderStyle.js.map +7 -0
  113. package/dist/esm/common/getScrollbarStyle.js +29 -0
  114. package/dist/esm/common/getScrollbarStyle.js.map +7 -0
  115. package/dist/esm/common/index.js +5 -0
  116. package/dist/esm/common/index.js.map +7 -0
  117. package/dist/esm/configs/index.js +9 -0
  118. package/dist/esm/configs/index.js.map +7 -0
  119. package/dist/esm/configs/useLeftNavConfig.js +77 -0
  120. package/dist/esm/configs/useLeftNavConfig.js.map +7 -0
  121. package/dist/esm/configs/useLeftNavItems.js +53 -0
  122. package/dist/esm/configs/useLeftNavItems.js.map +7 -0
  123. package/dist/esm/configs/useLeftNavSmoothExpand.js +24 -0
  124. package/dist/esm/configs/useLeftNavSmoothExpand.js.map +7 -0
  125. package/dist/esm/exported-related/ChevronItem/index.js +14 -0
  126. package/dist/esm/exported-related/ChevronItem/index.js.map +7 -0
  127. package/dist/esm/exported-related/Icon/index.js +24 -0
  128. package/dist/esm/exported-related/Icon/index.js.map +7 -0
  129. package/dist/esm/exported-related/ItemRenderer/index.js +104 -0
  130. package/dist/esm/exported-related/ItemRenderer/index.js.map +7 -0
  131. package/dist/esm/exported-related/ItemRenderer/styled.js +61 -0
  132. package/dist/esm/exported-related/ItemRenderer/styled.js.map +7 -0
  133. package/dist/esm/exported-related/ItemRenderer/usePropsWithDefaults.js +40 -0
  134. package/dist/esm/exported-related/ItemRenderer/usePropsWithDefaults.js.map +7 -0
  135. package/dist/esm/exported-related/Notifications/index.js +58 -0
  136. package/dist/esm/exported-related/Notifications/index.js.map +7 -0
  137. package/dist/esm/exported-related/OpenWindowItem/index.js +21 -0
  138. package/dist/esm/exported-related/OpenWindowItem/index.js.map +7 -0
  139. package/dist/esm/exported-related/constants.js +28 -0
  140. package/dist/esm/exported-related/constants.js.map +7 -0
  141. package/dist/esm/exported-related/index.js +8 -0
  142. package/dist/esm/exported-related/index.js.map +7 -0
  143. package/dist/esm/hooks/index.js +5 -0
  144. package/dist/esm/hooks/index.js.map +7 -0
  145. package/dist/esm/hooks/useExpandableOnClickHandler.js +35 -0
  146. package/dist/esm/hooks/useExpandableOnClickHandler.js.map +7 -0
  147. package/{esm → dist/esm}/hooks/useKeyboardNavigation.js +30 -47
  148. package/dist/esm/hooks/useKeyboardNavigation.js.map +7 -0
  149. package/dist/esm/hooks/useOpenableOnClickHandler.js +40 -0
  150. package/dist/esm/hooks/useOpenableOnClickHandler.js.map +7 -0
  151. package/dist/esm/hooks/useSelectFirstBodyItem.js +23 -0
  152. package/dist/esm/hooks/useSelectFirstBodyItem.js.map +7 -0
  153. package/dist/esm/index.d.js +2 -0
  154. package/dist/esm/index.d.js.map +7 -0
  155. package/dist/esm/index.js +12 -0
  156. package/dist/esm/index.js.map +7 -0
  157. package/dist/esm/outOfTheBox/ItemControlledDrilldown/index.js +123 -0
  158. package/dist/esm/outOfTheBox/ItemControlledDrilldown/index.js.map +7 -0
  159. package/dist/esm/outOfTheBox/ItemControlledDrilldown/styled.js +20 -0
  160. package/dist/esm/outOfTheBox/ItemControlledDrilldown/styled.js.map +7 -0
  161. package/dist/esm/outOfTheBox/ItemHeader/index.js +118 -0
  162. package/dist/esm/outOfTheBox/ItemHeader/index.js.map +7 -0
  163. package/dist/esm/outOfTheBox/ItemHeader/styled.js +20 -0
  164. package/dist/esm/outOfTheBox/ItemHeader/styled.js.map +7 -0
  165. package/dist/esm/outOfTheBox/ItemLink/index.js +77 -0
  166. package/dist/esm/outOfTheBox/ItemLink/index.js.map +7 -0
  167. package/dist/esm/outOfTheBox/ItemLink/styled.js +12 -0
  168. package/dist/esm/outOfTheBox/ItemLink/styled.js.map +7 -0
  169. package/dist/esm/outOfTheBox/ItemSection/index.js +50 -0
  170. package/dist/esm/outOfTheBox/ItemSection/index.js.map +7 -0
  171. package/dist/esm/outOfTheBox/ItemSection/styled.js +24 -0
  172. package/dist/esm/outOfTheBox/ItemSection/styled.js.map +7 -0
  173. package/dist/esm/outOfTheBox/ItemSeparator/index.js +34 -0
  174. package/dist/esm/outOfTheBox/ItemSeparator/index.js.map +7 -0
  175. package/dist/esm/outOfTheBox/ItemSubmenu/index.js +120 -0
  176. package/dist/esm/outOfTheBox/ItemSubmenu/index.js.map +7 -0
  177. package/dist/esm/outOfTheBox/ItemSubmenu/styled.js +20 -0
  178. package/dist/esm/outOfTheBox/ItemSubmenu/styled.js.map +7 -0
  179. package/dist/esm/outOfTheBox/ItemTextLabel/index.js +40 -0
  180. package/dist/esm/outOfTheBox/ItemTextLabel/index.js.map +7 -0
  181. package/dist/esm/outOfTheBox/ItemTextLabel/styled.js +14 -0
  182. package/dist/esm/outOfTheBox/ItemTextLabel/styled.js.map +7 -0
  183. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js +137 -0
  184. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js.map +7 -0
  185. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/styled.js +20 -0
  186. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/styled.js.map +7 -0
  187. package/dist/esm/outOfTheBox/ItemWithDate/index.js +62 -0
  188. package/dist/esm/outOfTheBox/ItemWithDate/index.js.map +7 -0
  189. package/dist/esm/outOfTheBox/ItemWithDate/styled.js +20 -0
  190. package/dist/esm/outOfTheBox/ItemWithDate/styled.js.map +7 -0
  191. package/dist/esm/outOfTheBox/index.js +48 -0
  192. package/dist/esm/outOfTheBox/index.js.map +7 -0
  193. package/dist/esm/parts/LeftNavContent/index.js +67 -0
  194. package/dist/esm/parts/LeftNavContent/index.js.map +7 -0
  195. package/dist/esm/parts/LeftNavContent/styled.js +84 -0
  196. package/dist/esm/parts/LeftNavContent/styled.js.map +7 -0
  197. package/dist/esm/parts/LeftNavContentWithScrollbar/index.js +72 -0
  198. package/dist/esm/parts/LeftNavContentWithScrollbar/index.js.map +7 -0
  199. package/dist/esm/parts/LeftNavFooterItem/index.js +103 -0
  200. package/dist/esm/parts/LeftNavFooterItem/index.js.map +7 -0
  201. package/dist/esm/parts/LeftNavFooterItem/styled.js +65 -0
  202. package/dist/esm/parts/LeftNavFooterItem/styled.js.map +7 -0
  203. package/dist/esm/parts/LeftNavLoading/index.js +23 -0
  204. package/dist/esm/parts/LeftNavLoading/index.js.map +7 -0
  205. package/dist/esm/parts/OutOfTheBoxMapItem.js +26 -0
  206. package/dist/esm/parts/OutOfTheBoxMapItem.js.map +7 -0
  207. package/dist/esm/prop-types.js +37 -0
  208. package/dist/esm/prop-types.js.map +7 -0
  209. package/{types → dist/types}/LeftNavigation.d.ts +0 -0
  210. package/{types → dist/types}/LeftNavigationContext.d.ts +0 -0
  211. package/{types → dist/types}/common/getItemBackgroundStyle.d.ts +0 -0
  212. package/{types → dist/types}/common/getLeftBorderStyle.d.ts +0 -0
  213. package/{types → dist/types}/common/getScrollbarStyle.d.ts +0 -0
  214. package/{types → dist/types}/common/index.d.ts +0 -0
  215. package/{types → dist/types}/configs/index.d.ts +0 -0
  216. package/{types → dist/types}/configs/useLeftNavConfig.d.ts +0 -0
  217. package/{types → dist/types}/configs/useLeftNavItems.d.ts +0 -0
  218. package/{types → dist/types}/configs/useLeftNavSmoothExpand.d.ts +0 -0
  219. package/{types → dist/types}/exported-related/ChevronItem/index.d.ts +0 -0
  220. package/{types → dist/types}/exported-related/Icon/index.d.ts +0 -0
  221. package/{types → dist/types}/exported-related/ItemRenderer/index.d.ts +0 -0
  222. package/{types → dist/types}/exported-related/ItemRenderer/styled.d.ts +2 -2
  223. package/{types → dist/types}/exported-related/ItemRenderer/usePropsWithDefaults.d.ts +0 -0
  224. package/{types → dist/types}/exported-related/Notifications/index.d.ts +0 -0
  225. package/{types → dist/types}/exported-related/OpenWindowItem/index.d.ts +0 -0
  226. package/{types → dist/types}/exported-related/constants.d.ts +0 -0
  227. package/{types → dist/types}/exported-related/index.d.ts +0 -0
  228. package/{types → dist/types}/hooks/index.d.ts +0 -0
  229. package/{types → dist/types}/hooks/useExpandableOnClickHandler.d.ts +0 -0
  230. package/{types → dist/types}/hooks/useKeyboardNavigation.d.ts +0 -0
  231. package/{types → dist/types}/hooks/useOpenableOnClickHandler.d.ts +0 -0
  232. package/{types → dist/types}/hooks/useSelectFirstBodyItem.d.ts +0 -0
  233. package/{types → dist/types}/index.d.d.ts +0 -0
  234. package/{types → dist/types}/index.d.ts +0 -0
  235. package/{types → dist/types}/outOfTheBox/ItemControlledDrilldown/index.d.ts +0 -0
  236. package/{types/outOfTheBox/ItemWithDate → dist/types/outOfTheBox/ItemControlledDrilldown}/styled.d.ts +2 -2
  237. package/{types → dist/types}/outOfTheBox/ItemHeader/index.d.ts +0 -0
  238. package/{types → dist/types}/outOfTheBox/ItemHeader/styled.d.ts +1 -1
  239. package/{types → dist/types}/outOfTheBox/ItemLink/index.d.ts +0 -0
  240. package/{types/outOfTheBox/ItemTextLabel → dist/types/outOfTheBox/ItemLink}/styled.d.ts +1 -1
  241. package/{types → dist/types}/outOfTheBox/ItemSection/index.d.ts +0 -0
  242. package/{types → dist/types}/outOfTheBox/ItemSection/styled.d.ts +0 -0
  243. package/{types → dist/types}/outOfTheBox/ItemSeparator/index.d.ts +0 -0
  244. package/{types → dist/types}/outOfTheBox/ItemSubmenu/index.d.ts +0 -0
  245. package/{types → dist/types}/outOfTheBox/ItemSubmenu/styled.d.ts +1 -1
  246. package/{types → dist/types}/outOfTheBox/ItemTextLabel/index.d.ts +0 -0
  247. package/{types/outOfTheBox/ItemLink → dist/types/outOfTheBox/ItemTextLabel}/styled.d.ts +1 -1
  248. package/{types → dist/types}/outOfTheBox/ItemUncontrolledDrilldown/index.d.ts +0 -0
  249. package/{types → dist/types}/outOfTheBox/ItemUncontrolledDrilldown/styled.d.ts +2 -2
  250. package/{types → dist/types}/outOfTheBox/ItemWithDate/index.d.ts +0 -0
  251. package/{types/outOfTheBox/ItemControlledDrilldown → dist/types/outOfTheBox/ItemWithDate}/styled.d.ts +2 -2
  252. package/{types → dist/types}/outOfTheBox/index.d.ts +0 -0
  253. package/{types → dist/types}/parts/LeftNavContent/index.d.ts +0 -0
  254. package/{types → dist/types}/parts/LeftNavContent/styled.d.ts +0 -0
  255. package/{types → dist/types}/parts/LeftNavContentWithScrollbar/index.d.ts +0 -0
  256. package/{types → dist/types}/parts/LeftNavFooterItem/index.d.ts +0 -0
  257. package/{types → dist/types}/parts/LeftNavFooterItem/styled.d.ts +5 -5
  258. package/{types → dist/types}/parts/LeftNavLoading/index.d.ts +0 -0
  259. package/{types → dist/types}/parts/OutOfTheBoxMapItem.d.ts +0 -0
  260. package/{types → dist/types}/prop-types.d.ts +0 -0
  261. package/{types → dist/types}/tests/LeftNavigation.collapsed.test.d.ts +0 -0
  262. package/{types → dist/types}/tests/LeftNavigation.expanded.test.d.ts +0 -0
  263. package/{types → dist/types}/tests/LeftNavigation.opened.test.d.ts +0 -0
  264. package/{types → dist/types}/tests/events/LeftNavigation.events.keyboard.test.d.ts +0 -0
  265. package/{types → dist/types}/tests/events/LeftNavigation.events.subitems.test.d.ts +0 -0
  266. package/{types → dist/types}/tests/events/LeftNavigation.events.test.d.ts +0 -0
  267. package/{types → dist/types}/tests/events/LeftNavigation.focus.events.test.d.ts +0 -0
  268. package/package.json +128 -120
  269. package/cjs/LeftNavigation.js +0 -29
  270. package/cjs/LeftNavigationContext.js +0 -41
  271. package/cjs/common/getItemBackgroundStyle.js +0 -12
  272. package/cjs/common/getLeftBorderStyle.js +0 -12
  273. package/cjs/common/getScrollbarStyle.js +0 -7
  274. package/cjs/common/index.js +0 -13
  275. package/cjs/configs/index.js +0 -10
  276. package/cjs/configs/useLeftNavConfig.js +0 -102
  277. package/cjs/configs/useLeftNavItems.js +0 -80
  278. package/cjs/configs/useLeftNavSmoothExpand.js +0 -35
  279. package/cjs/exported-related/ChevronItem/index.js +0 -28
  280. package/cjs/exported-related/Icon/index.js +0 -36
  281. package/cjs/exported-related/ItemRenderer/index.js +0 -128
  282. package/cjs/exported-related/ItemRenderer/styled.js +0 -58
  283. package/cjs/exported-related/ItemRenderer/usePropsWithDefaults.js +0 -57
  284. package/cjs/exported-related/Notifications/index.js +0 -62
  285. package/cjs/exported-related/OpenWindowItem/index.js +0 -33
  286. package/cjs/exported-related/constants.js +0 -29
  287. package/cjs/exported-related/index.js +0 -23
  288. package/cjs/hooks/index.js +0 -13
  289. package/cjs/hooks/useExpandableOnClickHandler.js +0 -35
  290. package/cjs/hooks/useKeyboardNavigation.js +0 -110
  291. package/cjs/hooks/useOpenableOnClickHandler.js +0 -40
  292. package/cjs/hooks/useSelectFirstBodyItem.js +0 -39
  293. package/cjs/index.d.js +0 -2
  294. package/cjs/index.js +0 -30
  295. package/cjs/outOfTheBox/ItemControlledDrilldown/index.js +0 -158
  296. package/cjs/outOfTheBox/ItemControlledDrilldown/styled.js +0 -27
  297. package/cjs/outOfTheBox/ItemHeader/index.js +0 -144
  298. package/cjs/outOfTheBox/ItemHeader/styled.js +0 -22
  299. package/cjs/outOfTheBox/ItemLink/index.js +0 -97
  300. package/cjs/outOfTheBox/ItemLink/styled.js +0 -17
  301. package/cjs/outOfTheBox/ItemSection/index.js +0 -83
  302. package/cjs/outOfTheBox/ItemSection/styled.js +0 -23
  303. package/cjs/outOfTheBox/ItemSeparator/index.js +0 -52
  304. package/cjs/outOfTheBox/ItemSubmenu/index.js +0 -145
  305. package/cjs/outOfTheBox/ItemSubmenu/styled.js +0 -22
  306. package/cjs/outOfTheBox/ItemTextLabel/index.js +0 -70
  307. package/cjs/outOfTheBox/ItemTextLabel/styled.js +0 -23
  308. package/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js +0 -172
  309. package/cjs/outOfTheBox/ItemUncontrolledDrilldown/styled.js +0 -27
  310. package/cjs/outOfTheBox/ItemWithDate/index.js +0 -86
  311. package/cjs/outOfTheBox/ItemWithDate/styled.js +0 -27
  312. package/cjs/outOfTheBox/index.js +0 -62
  313. package/cjs/parts/LeftNavContent/index.js +0 -84
  314. package/cjs/parts/LeftNavContent/styled.js +0 -53
  315. package/cjs/parts/LeftNavContentWithScrollbar/index.js +0 -91
  316. package/cjs/parts/LeftNavFooterItem/index.js +0 -108
  317. package/cjs/parts/LeftNavFooterItem/styled.js +0 -39
  318. package/cjs/parts/LeftNavLoading/index.js +0 -34
  319. package/cjs/parts/OutOfTheBoxMapItem.js +0 -52
  320. package/cjs/prop-types.js +0 -47
  321. package/esm/LeftNavigation.js +0 -20
  322. package/esm/common/getItemBackgroundStyle.js +0 -8
  323. package/esm/common/getLeftBorderStyle.js +0 -8
  324. package/esm/common/getScrollbarStyle.js +0 -3
  325. package/esm/common/index.js +0 -3
  326. package/esm/configs/index.js +0 -2
  327. package/esm/configs/useLeftNavConfig.js +0 -93
  328. package/esm/configs/useLeftNavItems.js +0 -75
  329. package/esm/configs/useLeftNavSmoothExpand.js +0 -26
  330. package/esm/exported-related/ChevronItem/index.js +0 -19
  331. package/esm/exported-related/Icon/index.js +0 -27
  332. package/esm/exported-related/ItemRenderer/index.js +0 -119
  333. package/esm/exported-related/ItemRenderer/styled.js +0 -47
  334. package/esm/exported-related/ItemRenderer/usePropsWithDefaults.js +0 -49
  335. package/esm/exported-related/Notifications/index.js +0 -51
  336. package/esm/exported-related/OpenWindowItem/index.js +0 -23
  337. package/esm/exported-related/constants.js +0 -21
  338. package/esm/exported-related/index.js +0 -6
  339. package/esm/hooks/index.js +0 -3
  340. package/esm/hooks/useExpandableOnClickHandler.js +0 -31
  341. package/esm/hooks/useOpenableOnClickHandler.js +0 -36
  342. package/esm/hooks/useSelectFirstBodyItem.js +0 -35
  343. package/esm/index.d.js +0 -1
  344. package/esm/index.js +0 -8
  345. package/esm/outOfTheBox/ItemControlledDrilldown/index.js +0 -148
  346. package/esm/outOfTheBox/ItemControlledDrilldown/styled.js +0 -17
  347. package/esm/outOfTheBox/ItemHeader/index.js +0 -134
  348. package/esm/outOfTheBox/ItemHeader/styled.js +0 -12
  349. package/esm/outOfTheBox/ItemLink/index.js +0 -87
  350. package/esm/outOfTheBox/ItemLink/styled.js +0 -8
  351. package/esm/outOfTheBox/ItemSection/index.js +0 -73
  352. package/esm/outOfTheBox/ItemSection/styled.js +0 -13
  353. package/esm/outOfTheBox/ItemSeparator/index.js +0 -42
  354. package/esm/outOfTheBox/ItemSubmenu/index.js +0 -135
  355. package/esm/outOfTheBox/ItemSubmenu/styled.js +0 -12
  356. package/esm/outOfTheBox/ItemTextLabel/index.js +0 -61
  357. package/esm/outOfTheBox/ItemTextLabel/styled.js +0 -14
  358. package/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js +0 -162
  359. package/esm/outOfTheBox/ItemUncontrolledDrilldown/styled.js +0 -17
  360. package/esm/outOfTheBox/ItemWithDate/index.js +0 -76
  361. package/esm/outOfTheBox/ItemWithDate/styled.js +0 -17
  362. package/esm/outOfTheBox/index.js +0 -57
  363. package/esm/parts/LeftNavContent/index.js +0 -77
  364. package/esm/parts/LeftNavContent/styled.js +0 -39
  365. package/esm/parts/LeftNavContentWithScrollbar/index.js +0 -80
  366. package/esm/parts/LeftNavFooterItem/index.js +0 -98
  367. package/esm/parts/LeftNavFooterItem/styled.js +0 -26
  368. package/esm/parts/LeftNavLoading/index.js +0 -23
  369. package/esm/parts/OutOfTheBoxMapItem.js +0 -42
  370. package/esm/prop-types.js +0 -40
@@ -0,0 +1,104 @@
1
+ import * as React from "react";
2
+ import React2, { useContext, useMemo, useCallback } from "react";
3
+ import Grid from "@elliemae/ds-grid";
4
+ import { StyledItemWrapper, StyledItem } from "./styled";
5
+ import { LeftNavContext } from "../../LeftNavigationContext";
6
+ import { usePropsWithDefaults } from "./usePropsWithDefaults";
7
+ import { useKeyboardNavigation } from "../../hooks";
8
+ const ItemRenderer = (props) => {
9
+ const propsWithDefault = usePropsWithDefaults(props);
10
+ const {
11
+ item,
12
+ item: {
13
+ dsId,
14
+ itemOpts: { selectable, focuseable, indent, ariaLabel, ariaRole, ariaLive, ariaExpanded, ariaDescribedBy },
15
+ CollapsedComponent
16
+ },
17
+ subitems,
18
+ minHeight,
19
+ paddingTop,
20
+ onClick,
21
+ shadowStyle,
22
+ hasBorderBottom,
23
+ borderBottomMr,
24
+ children
25
+ } = propsWithDefault;
26
+ const ctx = useContext(LeftNavContext);
27
+ const {
28
+ leftNavProps: { onItemClick, openedItem },
29
+ expandedForAnimation,
30
+ selectedParent,
31
+ selectedItem,
32
+ setSelectedItem,
33
+ setFocusedItem,
34
+ visibleItemsRefs
35
+ } = ctx;
36
+ const opened = dsId === openedItem;
37
+ const handleOnClick = useCallback((e) => {
38
+ if (onClick)
39
+ onClick();
40
+ onItemClick(item, e);
41
+ if (selectable)
42
+ setSelectedItem(item.dsId);
43
+ }, [onItemClick, item, setSelectedItem, selectable, onClick]);
44
+ const handleFocus = useCallback(() => {
45
+ if (focuseable)
46
+ setFocusedItem(dsId);
47
+ }, [dsId, setFocusedItem, focuseable]);
48
+ const onKeyDown = useKeyboardNavigation({
49
+ item,
50
+ onClick: handleOnClick
51
+ });
52
+ const cols = useMemo(() => expandedForAnimation ? ["auto", "1fr", "auto"] : ["38px"], [expandedForAnimation]);
53
+ const isSelected = useMemo(() => selectedItem === dsId, [selectedItem, dsId]);
54
+ if (!expandedForAnimation && !CollapsedComponent) {
55
+ return null;
56
+ }
57
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(StyledItemWrapper, {
58
+ shadowStyle: shadowStyle(opened, item.type),
59
+ "data-testid": "leftnav-item-wrapper"
60
+ }, /* @__PURE__ */ React2.createElement(StyledItem, {
61
+ ref: visibleItemsRefs.current[dsId],
62
+ pt: paddingTop,
63
+ pl: indent === void 0 ? "xxxs" : `${indent}px`,
64
+ minHeight,
65
+ shadowStyle: shadowStyle(opened, item.type),
66
+ alignItems: "flex-start",
67
+ cols,
68
+ onClick: !opened ? handleOnClick : () => null,
69
+ onKeyDown,
70
+ selectable,
71
+ selected: isSelected,
72
+ selectedParent: selectedParent === dsId,
73
+ opened,
74
+ onFocus: handleFocus,
75
+ "data-testid": "leftnav-item-container",
76
+ tabIndex: focuseable ? 0 : -1,
77
+ "aria-describedby": ariaDescribedBy,
78
+ "aria-expanded": ariaExpanded,
79
+ role: ariaRole,
80
+ "data-selected": isSelected,
81
+ "data-selectedparent": selectedParent === dsId,
82
+ "aria-label": ariaLabel,
83
+ "aria-hidden": !focuseable,
84
+ "aria-live": ariaLive
85
+ }, !expandedForAnimation ? /* @__PURE__ */ React2.createElement(Grid, {
86
+ "data-testid": "leftnav-leftcomponent",
87
+ justifyContent: "center"
88
+ }, /* @__PURE__ */ React2.createElement(CollapsedComponent, {
89
+ item,
90
+ ctx
91
+ })) : children), hasBorderBottom && /* @__PURE__ */ React2.createElement("div", {
92
+ style: {
93
+ marginLeft: opened ? "16px" : "0px",
94
+ marginRight: borderBottomMr,
95
+ height: "1px",
96
+ width: `calc(100% - ${borderBottomMr} - ${opened ? "16px" : "0px"})`,
97
+ backgroundColor: "#E0E3E8"
98
+ }
99
+ })), subitems);
100
+ };
101
+ export {
102
+ ItemRenderer
103
+ };
104
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/ItemRenderer/index.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { useContext, useMemo, useCallback } from 'react';\nimport Grid from '@elliemae/ds-grid';\nimport { StyledItemWrapper, StyledItem } from './styled';\n\nimport { ItemRendererT } from '../../index.d';\nimport { LeftNavContext } from '../../LeftNavigationContext';\nimport { usePropsWithDefaults } from './usePropsWithDefaults';\nimport { useKeyboardNavigation } from '../../hooks';\n\nexport const ItemRenderer = (props: ItemRendererT): JSX.Element => {\n const propsWithDefault = usePropsWithDefaults(props);\n const {\n item,\n item: {\n dsId,\n itemOpts: { selectable, focuseable, indent, ariaLabel, ariaRole, ariaLive, ariaExpanded, ariaDescribedBy },\n CollapsedComponent,\n },\n subitems,\n minHeight,\n paddingTop,\n onClick,\n shadowStyle,\n hasBorderBottom,\n borderBottomMr,\n children,\n } = propsWithDefault;\n\n const ctx = useContext(LeftNavContext);\n const {\n leftNavProps: { onItemClick, openedItem },\n expandedForAnimation,\n selectedParent,\n selectedItem,\n setSelectedItem,\n setFocusedItem,\n visibleItemsRefs,\n } = ctx;\n\n const opened = dsId === openedItem;\n\n const handleOnClick = useCallback(\n (e) => {\n if (onClick) onClick(); // used by uncontrolled drilldowns\n onItemClick(item, e);\n if (selectable) setSelectedItem(item.dsId);\n },\n [onItemClick, item, setSelectedItem, selectable, onClick],\n );\n\n const handleFocus = useCallback(() => {\n if (focuseable) setFocusedItem(dsId);\n }, [dsId, setFocusedItem, focuseable]);\n\n const onKeyDown = useKeyboardNavigation({\n item,\n onClick: handleOnClick,\n });\n\n const cols = useMemo(() => (expandedForAnimation ? ['auto', '1fr', 'auto'] : ['38px']), [expandedForAnimation]);\n const isSelected = useMemo(() => selectedItem === dsId, [selectedItem, dsId]);\n\n if (!expandedForAnimation && !CollapsedComponent) {\n return null;\n }\n\n return (\n <>\n <StyledItemWrapper shadowStyle={shadowStyle(opened, item.type)} data-testid=\"leftnav-item-wrapper\">\n <StyledItem\n ref={visibleItemsRefs.current[dsId]}\n pt={paddingTop}\n pl={indent === undefined ? 'xxxs' : `${indent}px`}\n minHeight={minHeight}\n shadowStyle={shadowStyle(opened, item.type)}\n alignItems=\"flex-start\"\n cols={cols}\n onClick={!opened ? handleOnClick : () => null}\n onKeyDown={onKeyDown}\n selectable={selectable}\n selected={isSelected}\n selectedParent={selectedParent === dsId}\n opened={opened}\n onFocus={handleFocus}\n data-testid=\"leftnav-item-container\"\n tabIndex={focuseable ? 0 : -1}\n aria-describedby={ariaDescribedBy}\n aria-expanded={ariaExpanded}\n role={ariaRole}\n data-selected={isSelected}\n data-selectedparent={selectedParent === dsId}\n aria-label={ariaLabel}\n aria-hidden={!focuseable}\n aria-live={ariaLive}\n >\n {!expandedForAnimation ? (\n <Grid data-testid=\"leftnav-leftcomponent\" justifyContent=\"center\">\n <CollapsedComponent item={item} ctx={ctx} />\n </Grid>\n ) : (\n children\n )}\n </StyledItem>\n {hasBorderBottom && (\n <div\n style={{\n marginLeft: opened ? '16px' : '0px',\n marginRight: borderBottomMr,\n height: '1px',\n width: `calc(100% - ${borderBottomMr} - ${opened ? '16px' : '0px'})`,\n backgroundColor: '#E0E3E8',\n }}\n />\n )}\n </StyledItemWrapper>\n {subitems}\n </>\n );\n};\n"],
5
+ "mappings": "AAAA;ACEA;AACA;AACA;AAGA;AACA;AACA;AAEO,MAAM,eAAe,CAAC,UAAsC;AACjE,QAAM,mBAAmB,qBAAqB;AAC9C,QAAM;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,MACJ;AAAA,MACA,UAAU,EAAE,YAAY,YAAY,QAAQ,WAAW,UAAU,UAAU,cAAc;AAAA,MACzF;AAAA;AAAA,IAEF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAEJ,QAAM,MAAM,WAAW;AACvB,QAAM;AAAA,IACJ,cAAc,EAAE,aAAa;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAEJ,QAAM,SAAS,SAAS;AAExB,QAAM,gBAAgB,YACpB,CAAC,MAAM;AACL,QAAI;AAAS;AACb,gBAAY,MAAM;AAClB,QAAI;AAAY,sBAAgB,KAAK;AAAA,KAEvC,CAAC,aAAa,MAAM,iBAAiB,YAAY;AAGnD,QAAM,cAAc,YAAY,MAAM;AACpC,QAAI;AAAY,qBAAe;AAAA,KAC9B,CAAC,MAAM,gBAAgB;AAE1B,QAAM,YAAY,sBAAsB;AAAA,IACtC;AAAA,IACA,SAAS;AAAA;AAGX,QAAM,OAAO,QAAQ,MAAO,uBAAuB,CAAC,QAAQ,OAAO,UAAU,CAAC,SAAU,CAAC;AACzF,QAAM,aAAa,QAAQ,MAAM,iBAAiB,MAAM,CAAC,cAAc;AAEvE,MAAI,CAAC,wBAAwB,CAAC,oBAAoB;AAChD,WAAO;AAAA;AAGT,SACE,4DACE,qCAAC,mBAAD;AAAA,IAAmB,aAAa,YAAY,QAAQ,KAAK;AAAA,IAAO,eAAY;AAAA,KAC1E,qCAAC,YAAD;AAAA,IACE,KAAK,iBAAiB,QAAQ;AAAA,IAC9B,IAAI;AAAA,IACJ,IAAI,WAAW,SAAY,SAAS,GAAG;AAAA,IACvC;AAAA,IACA,aAAa,YAAY,QAAQ,KAAK;AAAA,IACtC,YAAW;AAAA,IACX;AAAA,IACA,SAAS,CAAC,SAAS,gBAAgB,MAAM;AAAA,IACzC;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,gBAAgB,mBAAmB;AAAA,IACnC;AAAA,IACA,SAAS;AAAA,IACT,eAAY;AAAA,IACZ,UAAU,aAAa,IAAI;AAAA,IAC3B,oBAAkB;AAAA,IAClB,iBAAe;AAAA,IACf,MAAM;AAAA,IACN,iBAAe;AAAA,IACf,uBAAqB,mBAAmB;AAAA,IACxC,cAAY;AAAA,IACZ,eAAa,CAAC;AAAA,IACd,aAAW;AAAA,KAEV,CAAC,uBACA,qCAAC,MAAD;AAAA,IAAM,eAAY;AAAA,IAAwB,gBAAe;AAAA,KACvD,qCAAC,oBAAD;AAAA,IAAoB;AAAA,IAAY;AAAA,QAGlC,WAGH,mBACC,qCAAC,OAAD;AAAA,IACE,OAAO;AAAA,MACL,YAAY,SAAS,SAAS;AAAA,MAC9B,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,OAAO,eAAe,oBAAoB,SAAS,SAAS;AAAA,MAC5D,iBAAiB;AAAA;AAAA,OAKxB;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,61 @@
1
+ import * as React from "react";
2
+ import Grid from "@elliemae/ds-grid";
3
+ import styled from "styled-components";
4
+ const borderOutside = (color, weight = 2) => `&:before {
5
+ content: '';
6
+ position: absolute;
7
+ top: 0;
8
+ left: 0;
9
+ right: 0;
10
+ bottom: 0;
11
+ border: ${weight}px solid ${color};
12
+ pointer-events: none;
13
+ }`;
14
+ const StyledItemWrapper = styled(Grid)`
15
+ position: relative;
16
+ ${(props) => props.shadowStyle(props.theme)}
17
+ `;
18
+ const getItemBackground = ({ selectable, opened, selected, theme }) => {
19
+ if (!selectable)
20
+ return "white";
21
+ if (selected && !opened)
22
+ return theme.colors.brand[200];
23
+ return theme.colors.neutral["000"];
24
+ };
25
+ const getItemHoverBackground = ({ selectable, opened, selected, theme }) => {
26
+ if (!selectable)
27
+ return "white";
28
+ if (selected && !opened)
29
+ return theme.colors.brand[200];
30
+ return theme.colors.brand["200"];
31
+ };
32
+ const StyledItem = styled(Grid)`
33
+ cursor: ${(props) => props.selectable && !props.opened ? "pointer" : "auto"};
34
+ min-height: ${(props) => props.minHeight};
35
+
36
+ background: ${getItemBackground};
37
+
38
+ ${(props) => props.selected && !props.opened ? borderOutside(props.theme.colors.brand[500], 1) : ""}
39
+
40
+ :hover {
41
+ background: ${getItemHoverBackground};
42
+ }
43
+
44
+ :active {
45
+ background: ${({ selectable, theme }) => selectable ? theme.colors.brand[200] : "white"};
46
+ }
47
+
48
+ ${(props) => props.shadowStyle(props.theme)};
49
+
50
+ outline: none;
51
+
52
+ ${(props) => props.tabIndex !== -1 ? `:focus {
53
+ ${borderOutside(props.theme.colors.brand[700])}
54
+ }` : ""}
55
+ `;
56
+ export {
57
+ StyledItem,
58
+ StyledItemWrapper,
59
+ borderOutside
60
+ };
61
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/ItemRenderer/styled.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable indent */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Grid from '@elliemae/ds-grid';\nimport styled from 'styled-components';\n\ninterface ItemProps {\n selected: boolean;\n selectable: boolean;\n opened: boolean;\n theme: any;\n shadowStyle: (theme: any) => string;\n}\n\nexport const borderOutside = (color, weight = 2): string => `&:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: ${weight}px solid ${color};\n pointer-events: none;\n}`;\n\nexport const StyledItemWrapper = styled(Grid)<{\n shadowStyle: (theme: any) => string;\n}>`\n position: relative;\n ${(props) => props.shadowStyle(props.theme)}\n`;\n\nconst getItemBackground = ({ selectable, opened, selected, theme }: ItemProps) => {\n if (!selectable) return 'white';\n if (selected && !opened) return theme.colors.brand[200];\n return theme.colors.neutral['000'];\n};\n\nconst getItemHoverBackground = ({ selectable, opened, selected, theme }: ItemProps) => {\n if (!selectable) return 'white';\n if (selected && !opened) return theme.colors.brand[200];\n return theme.colors.brand['200'];\n};\n\nexport const StyledItem = styled(Grid)<{ minHeight: string } & ItemProps>`\n cursor: ${(props) => (props.selectable && !props.opened ? 'pointer' : 'auto')};\n min-height: ${(props) => props.minHeight};\n\n background: ${getItemBackground};\n\n ${(props) => (props.selected && !props.opened ? borderOutside(props.theme.colors.brand[500], 1) : '')}\n\n :hover {\n background: ${getItemHoverBackground};\n }\n\n :active {\n background: ${({ selectable, theme }) => (selectable ? theme.colors.brand[200] : 'white')};\n }\n\n ${(props) => props.shadowStyle(props.theme)};\n\n outline: none;\n\n ${(props) =>\n props.tabIndex !== -1\n ? `:focus {\n ${borderOutside(props.theme.colors.brand[700])}\n }`\n : ''}\n`;\n"],
5
+ "mappings": "AAAA;ACEA;AACA;AAUO,MAAM,gBAAgB,CAAC,OAAO,SAAS,MAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAOhD,kBAAkB;AAAA;AAAA;AAIvB,MAAM,oBAAoB,OAAO;AAAA;AAAA,IAIpC,CAAC,UAAU,MAAM,YAAY,MAAM;AAAA;AAGvC,MAAM,oBAAoB,CAAC,EAAE,YAAY,QAAQ,UAAU,YAAuB;AAChF,MAAI,CAAC;AAAY,WAAO;AACxB,MAAI,YAAY,CAAC;AAAQ,WAAO,MAAM,OAAO,MAAM;AACnD,SAAO,MAAM,OAAO,QAAQ;AAAA;AAG9B,MAAM,yBAAyB,CAAC,EAAE,YAAY,QAAQ,UAAU,YAAuB;AACrF,MAAI,CAAC;AAAY,WAAO;AACxB,MAAI,YAAY,CAAC;AAAQ,WAAO,MAAM,OAAO,MAAM;AACnD,SAAO,MAAM,OAAO,MAAM;AAAA;AAGrB,MAAM,aAAa,OAAO;AAAA,YACrB,CAAC,UAAW,MAAM,cAAc,CAAC,MAAM,SAAS,YAAY;AAAA,gBACxD,CAAC,UAAU,MAAM;AAAA;AAAA,gBAEjB;AAAA;AAAA,IAEZ,CAAC,UAAW,MAAM,YAAY,CAAC,MAAM,SAAS,cAAc,MAAM,MAAM,OAAO,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,kBAGlF;AAAA;AAAA;AAAA;AAAA,kBAIA,CAAC,EAAE,YAAY,YAAa,aAAa,MAAM,OAAO,MAAM,OAAO;AAAA;AAAA;AAAA,IAGjF,CAAC,UAAU,MAAM,YAAY,MAAM;AAAA;AAAA;AAAA;AAAA,IAInC,CAAC,UACD,MAAM,aAAa,KACf;AAAA,MACF,cAAc,MAAM,MAAM,OAAO,MAAM;AAAA,aAErC;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,40 @@
1
+ import * as React from "react";
2
+ import { useMemo } from "react";
3
+ const itemDefaultProps = {
4
+ label: "",
5
+ labelOverflow: "truncate",
6
+ selectable: true,
7
+ focuseable: true,
8
+ openable: false,
9
+ closable: false,
10
+ ariaLabel: "",
11
+ ariaRole: "menuitem",
12
+ ariaLive: "off",
13
+ ariaExpanded: void 0,
14
+ ariaDescribedBy: void 0
15
+ };
16
+ const itemWithoutShadows = ["ds-left-nav-item-header", "ds-left-nav-item-link", "ds-left-nav-item-submenu"];
17
+ const usePropsWithDefaults = (props) => {
18
+ const propsWithDefault = useMemo(() => {
19
+ const itemWithDefaults = {
20
+ CollapsedComponent: () => null,
21
+ ...props.item,
22
+ itemOpts: { ...itemDefaultProps, ...props.item.itemOpts }
23
+ };
24
+ return {
25
+ minHeight: "48px",
26
+ paddingTop: "12px",
27
+ subitems: [],
28
+ shadowStyle: (opened, type) => (theme) => `box-shadow: ${opened || !itemWithoutShadows.includes(type) ? "inset 4px 0 0 0 #52A6EC" : "inset 4px 0 0 0 white"}`,
29
+ hasBorderBottom: false,
30
+ borderBottomMr: "0px",
31
+ ...props,
32
+ item: itemWithDefaults
33
+ };
34
+ }, [props]);
35
+ return propsWithDefault;
36
+ };
37
+ export {
38
+ usePropsWithDefaults
39
+ };
40
+ //# sourceMappingURL=usePropsWithDefaults.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/ItemRenderer/usePropsWithDefaults.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useMemo } from 'react';\nimport { itemOptsT, ItemRendererT } from '../../index.d';\n\nconst itemDefaultProps: itemOptsT = {\n label: '',\n labelOverflow: 'truncate',\n selectable: true,\n focuseable: true,\n openable: false,\n closable: false,\n ariaLabel: '',\n ariaRole: 'menuitem',\n ariaLive: 'off',\n ariaExpanded: undefined,\n ariaDescribedBy: undefined,\n};\n\nconst itemWithoutShadows = ['ds-left-nav-item-header', 'ds-left-nav-item-link', 'ds-left-nav-item-submenu'];\n\n// Make use Item props with defaults\nexport const usePropsWithDefaults = (props: ItemRendererT): ItemRendererT => {\n const propsWithDefault = useMemo(() => {\n const itemWithDefaults = {\n CollapsedComponent: () => null,\n ...props.item,\n itemOpts: { ...itemDefaultProps, ...props.item.itemOpts },\n };\n return {\n minHeight: '48px',\n paddingTop: '12px',\n subitems: [],\n shadowStyle: (opened: boolean, type: string) => (theme: any) =>\n `box-shadow: ${\n opened || !itemWithoutShadows.includes(type) ? 'inset 4px 0 0 0 #52A6EC' : 'inset 4px 0 0 0 white'\n }`,\n hasBorderBottom: false,\n borderBottomMr: '0px',\n ...props,\n item: itemWithDefaults,\n };\n }, [props]);\n\n return propsWithDefault;\n};\n"],
5
+ "mappings": "AAAA;ACAA;AAGA,MAAM,mBAA8B;AAAA,EAClC,OAAO;AAAA,EACP,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,EACd,iBAAiB;AAAA;AAGnB,MAAM,qBAAqB,CAAC,2BAA2B,yBAAyB;AAGzE,MAAM,uBAAuB,CAAC,UAAwC;AAC3E,QAAM,mBAAmB,QAAQ,MAAM;AACrC,UAAM,mBAAmB;AAAA,MACvB,oBAAoB,MAAM;AAAA,SACvB,MAAM;AAAA,MACT,UAAU,KAAK,qBAAqB,MAAM,KAAK;AAAA;AAEjD,WAAO;AAAA,MACL,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,aAAa,CAAC,QAAiB,SAAiB,CAAC,UAC/C,eACE,UAAU,CAAC,mBAAmB,SAAS,QAAQ,4BAA4B;AAAA,MAE/E,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,SACb;AAAA,MACH,MAAM;AAAA;AAAA,KAEP,CAAC;AAEJ,SAAO;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,58 @@
1
+ import * as React from "react";
2
+ import React2 from "react";
3
+ import {
4
+ AlertsSmallFill,
5
+ Notifications as InternalNotifications,
6
+ ExceptionsSmallFill,
7
+ MessagesSmallFill
8
+ } from "@elliemae/ds-icons";
9
+ import styled from "styled-components";
10
+ import Grid from "@elliemae/ds-grid";
11
+ const StyledIcon = styled.div`
12
+ display: flex;
13
+ flex-direction: column;
14
+ align-items: center;
15
+ `;
16
+ const Notifications = ({
17
+ exceptions = false,
18
+ alerts = false,
19
+ messages = false
20
+ }) => /* @__PURE__ */ React2.createElement(StyledIcon, null, /* @__PURE__ */ React2.createElement(InternalNotifications, {
21
+ size: "m",
22
+ color: ["brand-primary", 800],
23
+ "data-testid": "left-nav-notifications-icon"
24
+ }), (exceptions || alerts || messages) && /* @__PURE__ */ React2.createElement(Grid, {
25
+ cols: ["1fr", "1fr", "1fr"],
26
+ gutter: "xxxs",
27
+ mt: "2px"
28
+ }, /* @__PURE__ */ React2.createElement(Grid, {
29
+ width: "6px",
30
+ height: "6px",
31
+ "data-testid": "left-nav-exceptions-icon"
32
+ }, exceptions && /* @__PURE__ */ React2.createElement(ExceptionsSmallFill, {
33
+ width: "6px",
34
+ height: "6px",
35
+ color: ["warning", 900]
36
+ })), /* @__PURE__ */ React2.createElement(Grid, {
37
+ width: "6px",
38
+ height: "6px",
39
+ "data-testid": "left-nav-alerts-icon"
40
+ }, alerts && /* @__PURE__ */ React2.createElement(AlertsSmallFill, {
41
+ width: "6px",
42
+ height: "6px",
43
+ color: ["danger", 900]
44
+ })), /* @__PURE__ */ React2.createElement(Grid, {
45
+ width: "6px",
46
+ height: "6px",
47
+ "data-testid": "left-nav-messages-icon"
48
+ }, messages && /* @__PURE__ */ React2.createElement(MessagesSmallFill, {
49
+ width: "6px",
50
+ height: "6px",
51
+ color: ["success", 900]
52
+ }))));
53
+ var Notifications_default = Notifications;
54
+ export {
55
+ Notifications,
56
+ Notifications_default as default
57
+ };
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/Notifications/index.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport {\n AlertsSmallFill,\n Notifications as InternalNotifications,\n ExceptionsSmallFill,\n MessagesSmallFill,\n} from '@elliemae/ds-icons';\nimport styled from 'styled-components';\nimport Grid from '@elliemae/ds-grid';\n\nconst StyledIcon = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\ntype NotificationsProps = {\n exceptions?: boolean;\n alerts?: boolean;\n messages?: boolean;\n};\n\nexport const Notifications = ({\n exceptions = false,\n alerts = false,\n messages = false,\n}: NotificationsProps): JSX.Element => (\n <StyledIcon>\n <InternalNotifications size=\"m\" color={['brand-primary', 800]} data-testid=\"left-nav-notifications-icon\" />\n {(exceptions || alerts || messages) && (\n <Grid cols={['1fr', '1fr', '1fr']} gutter=\"xxxs\" mt=\"2px\">\n <Grid width=\"6px\" height=\"6px\" data-testid=\"left-nav-exceptions-icon\">\n {exceptions && <ExceptionsSmallFill width=\"6px\" height=\"6px\" color={['warning', 900]} />}\n </Grid>\n <Grid width=\"6px\" height=\"6px\" data-testid=\"left-nav-alerts-icon\">\n {alerts && <AlertsSmallFill width=\"6px\" height=\"6px\" color={['danger', 900]} />}\n </Grid>\n <Grid width=\"6px\" height=\"6px\" data-testid=\"left-nav-messages-icon\">\n {messages && <MessagesSmallFill width=\"6px\" height=\"6px\" color={['success', 900]} />}\n </Grid>\n </Grid>\n )}\n </StyledIcon>\n);\n\nexport default Notifications;\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACA;AAEA,MAAM,aAAa,OAAO;AAAA;AAAA;AAAA;AAAA;AAYnB,MAAM,gBAAgB,CAAC;AAAA,EAC5B,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,MAEX,qCAAC,YAAD,MACE,qCAAC,uBAAD;AAAA,EAAuB,MAAK;AAAA,EAAI,OAAO,CAAC,iBAAiB;AAAA,EAAM,eAAY;AAAA,IACzE,eAAc,UAAU,aACxB,qCAAC,MAAD;AAAA,EAAM,MAAM,CAAC,OAAO,OAAO;AAAA,EAAQ,QAAO;AAAA,EAAO,IAAG;AAAA,GAClD,qCAAC,MAAD;AAAA,EAAM,OAAM;AAAA,EAAM,QAAO;AAAA,EAAM,eAAY;AAAA,GACxC,cAAc,qCAAC,qBAAD;AAAA,EAAqB,OAAM;AAAA,EAAM,QAAO;AAAA,EAAM,OAAO,CAAC,WAAW;AAAA,KAElF,qCAAC,MAAD;AAAA,EAAM,OAAM;AAAA,EAAM,QAAO;AAAA,EAAM,eAAY;AAAA,GACxC,UAAU,qCAAC,iBAAD;AAAA,EAAiB,OAAM;AAAA,EAAM,QAAO;AAAA,EAAM,OAAO,CAAC,UAAU;AAAA,KAEzE,qCAAC,MAAD;AAAA,EAAM,OAAM;AAAA,EAAM,QAAO;AAAA,EAAM,eAAY;AAAA,GACxC,YAAY,qCAAC,mBAAD;AAAA,EAAmB,OAAM;AAAA,EAAM,QAAO;AAAA,EAAM,OAAO,CAAC,WAAW;AAAA;AAOtF,IAAO,wBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import React2 from "react";
3
+ import styled from "styled-components";
4
+ import { OpenWindow as OpenWindowIcon } from "@elliemae/ds-icons";
5
+ const StyledOpenWindow = styled(OpenWindowIcon)`
6
+ cursor: pointer;
7
+ :focus {
8
+ outline: 1px solid ${(props) => props.theme.colors.brand[800]};
9
+ }
10
+ `;
11
+ const OpenWindow = (props) => /* @__PURE__ */ React2.createElement(StyledOpenWindow, {
12
+ size: "s",
13
+ color: ["brand-primary", 800],
14
+ ...props
15
+ });
16
+ var OpenWindowItem_default = OpenWindow;
17
+ export {
18
+ OpenWindow,
19
+ OpenWindowItem_default as default
20
+ };
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/OpenWindowItem/index.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport styled from 'styled-components';\nimport { OpenWindow as OpenWindowIcon } from '@elliemae/ds-icons';\n\nconst StyledOpenWindow = styled(OpenWindowIcon)`\n cursor: pointer;\n :focus {\n outline: 1px solid ${(props) => props.theme.colors.brand[800]};\n }\n`;\n\nexport const OpenWindow = (props: unknown): JSX.Element => (\n <StyledOpenWindow size=\"s\" color={['brand-primary', 800]} {...props} />\n);\n\nexport default OpenWindow;\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AAEA,MAAM,mBAAmB,OAAO;AAAA;AAAA;AAAA,yBAGP,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;AAItD,MAAM,aAAa,CAAC,UACzB,qCAAC,kBAAD;AAAA,EAAkB,MAAK;AAAA,EAAI,OAAO,CAAC,iBAAiB;AAAA,KAAU;AAAA;AAGhE,IAAO,yBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,28 @@
1
+ import * as React from "react";
2
+ const LABEL_OVERFLOW = {
3
+ WRAP: "wrap",
4
+ WRAP_ALL: "wrapAll",
5
+ TRUNCATE: "truncate"
6
+ };
7
+ const ITEM_TYPES = {
8
+ LEFT_NAV_ITEM_HEADER: "ds-left-nav-item-header",
9
+ LEFT_NAV_ITEM_LINK: "ds-left-nav-item-link",
10
+ LEFT_NAV_ITEM_SUBMENU: "ds-left-nav-item-submenu",
11
+ LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN: "ds-left-nav-item-controlled-drilldown",
12
+ LEFT_NAV_ITEM_UNCONTROLLED_DRILLDOWN: "ds-left-nav-item-uncontrolled-drilldown",
13
+ LEFT_NAV_ITEM_SECTION: "ds-left-nav-item-section",
14
+ LEFT_NAV_ITEM_SEPARATOR: "ds-left-nav-item-separator",
15
+ LEFT_NAV_ITEM_TEXT_LABEL: "ds-left-nav-item-text-label",
16
+ LEFT_NAV_ITEM_WITH_DATE: "ds-left-nav-item-with-date"
17
+ };
18
+ const FOOTER_DS_ID = "ds-left-nav-__internal__-footer";
19
+ const FOOTER_MENU_CLOSE_DS_ID = "ds-left-nav-__internal__-footer-menu-close";
20
+ const CHEVRON_BACK_DS_ID = "ds-left-nav-__internal__-chevron-back";
21
+ export {
22
+ CHEVRON_BACK_DS_ID,
23
+ FOOTER_DS_ID,
24
+ FOOTER_MENU_CLOSE_DS_ID,
25
+ ITEM_TYPES,
26
+ LABEL_OVERFLOW
27
+ };
28
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/exported-related/constants.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const LABEL_OVERFLOW = {\n WRAP: 'wrap',\n WRAP_ALL: 'wrapAll',\n TRUNCATE: 'truncate',\n};\n\nexport const ITEM_TYPES = {\n LEFT_NAV_ITEM_HEADER: 'ds-left-nav-item-header',\n LEFT_NAV_ITEM_LINK: 'ds-left-nav-item-link',\n LEFT_NAV_ITEM_SUBMENU: 'ds-left-nav-item-submenu',\n LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN: 'ds-left-nav-item-controlled-drilldown',\n LEFT_NAV_ITEM_UNCONTROLLED_DRILLDOWN: 'ds-left-nav-item-uncontrolled-drilldown',\n LEFT_NAV_ITEM_SECTION: 'ds-left-nav-item-section',\n LEFT_NAV_ITEM_SEPARATOR: 'ds-left-nav-item-separator',\n LEFT_NAV_ITEM_TEXT_LABEL: 'ds-left-nav-item-text-label',\n LEFT_NAV_ITEM_WITH_DATE: 'ds-left-nav-item-with-date',\n};\n\nexport const FOOTER_DS_ID = 'ds-left-nav-__internal__-footer';\n\nexport const FOOTER_MENU_CLOSE_DS_ID = 'ds-left-nav-__internal__-footer-menu-close';\n\nexport const CHEVRON_BACK_DS_ID = 'ds-left-nav-__internal__-chevron-back';\n"],
5
+ "mappings": "AAAA;ACAO,MAAM,iBAAiB;AAAA,EAC5B,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA;AAGL,MAAM,aAAa;AAAA,EACxB,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,oCAAoC;AAAA,EACpC,sCAAsC;AAAA,EACtC,uBAAuB;AAAA,EACvB,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,yBAAyB;AAAA;AAGpB,MAAM,eAAe;AAErB,MAAM,0BAA0B;AAEhC,MAAM,qBAAqB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ export * from "./constants";
3
+ export * from "./ItemRenderer";
4
+ export * from "./ChevronItem";
5
+ export * from "./Notifications";
6
+ export * from "./OpenWindowItem";
7
+ export * from "./Icon";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/exported-related/index.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './constants';\nexport * from './ItemRenderer';\nexport * from './ChevronItem';\nexport * from './Notifications';\nexport * from './OpenWindowItem';\nexport * from './Icon';\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ export * from "./useOpenableOnClickHandler";
3
+ export * from "./useExpandableOnClickHandler";
4
+ export * from "./useKeyboardNavigation";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/index.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './useOpenableOnClickHandler';\nexport * from './useExpandableOnClickHandler';\nexport * from './useKeyboardNavigation';\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,35 @@
1
+ import * as React from "react";
2
+ import { useCallback, useContext } from "react";
3
+ import LeftNavigationContext from "../LeftNavigationContext";
4
+ const useExpandableOnClickHandler = ({
5
+ id,
6
+ onExpand,
7
+ onOpen,
8
+ selectable = true
9
+ }) => {
10
+ const {
11
+ leftNavProps: { expanded },
12
+ setSelectedItem
13
+ } = useContext(LeftNavigationContext);
14
+ const handleOnExpand = useCallback((e) => {
15
+ onExpand(e);
16
+ if (selectable)
17
+ setSelectedItem(id);
18
+ }, [id, onExpand, setSelectedItem, selectable]);
19
+ const handleOnOpen = useCallback((e) => {
20
+ onOpen(e);
21
+ if (selectable)
22
+ setSelectedItem(id);
23
+ }, [id, onOpen, setSelectedItem, selectable]);
24
+ const handleOnClick = useCallback((e) => {
25
+ if (!expanded)
26
+ handleOnExpand(e);
27
+ else
28
+ handleOnOpen(e);
29
+ }, [expanded, handleOnExpand, handleOnOpen]);
30
+ return handleOnClick;
31
+ };
32
+ export {
33
+ useExpandableOnClickHandler
34
+ };
35
+ //# sourceMappingURL=useExpandableOnClickHandler.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useExpandableOnClickHandler.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback, useContext } from 'react';\nimport LeftNavigationContext from '../LeftNavigationContext';\n\ntype useExpandableOnClickHandlerProps = {\n id: string;\n onExpand: React.MouseEventHandler & React.KeyboardEventHandler;\n onOpen: React.MouseEventHandler & React.KeyboardEventHandler;\n selectable?: boolean;\n};\n\nexport const useExpandableOnClickHandler = ({\n id,\n onExpand,\n onOpen,\n selectable = true,\n}: useExpandableOnClickHandlerProps): ((\n e: React.MouseEvent<HTMLElement>,\n) => void) => {\n const {\n leftNavProps: { expanded },\n setSelectedItem,\n } = useContext(LeftNavigationContext);\n\n const handleOnExpand = useCallback(\n (e) => {\n onExpand(e);\n if (selectable) setSelectedItem(id);\n },\n [id, onExpand, setSelectedItem, selectable],\n );\n\n const handleOnOpen = useCallback(\n (e) => {\n onOpen(e);\n if (selectable) setSelectedItem(id);\n },\n [id, onOpen, setSelectedItem, selectable],\n );\n\n const handleOnClick = useCallback(\n (e) => {\n if (!expanded) handleOnExpand(e);\n else handleOnOpen(e);\n },\n [expanded, handleOnExpand, handleOnOpen],\n );\n\n return handleOnClick;\n};\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AASO,MAAM,8BAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,MAGD;AACZ,QAAM;AAAA,IACJ,cAAc,EAAE;AAAA,IAChB;AAAA,MACE,WAAW;AAEf,QAAM,iBAAiB,YACrB,CAAC,MAAM;AACL,aAAS;AACT,QAAI;AAAY,sBAAgB;AAAA,KAElC,CAAC,IAAI,UAAU,iBAAiB;AAGlC,QAAM,eAAe,YACnB,CAAC,MAAM;AACL,WAAO;AACP,QAAI;AAAY,sBAAgB;AAAA,KAElC,CAAC,IAAI,QAAQ,iBAAiB;AAGhC,QAAM,gBAAgB,YACpB,CAAC,MAAM;AACL,QAAI,CAAC;AAAU,qBAAe;AAAA;AACzB,mBAAa;AAAA,KAEpB,CAAC,UAAU,gBAAgB;AAG7B,SAAO;AAAA;",
6
+ "names": []
7
+ }
@@ -1,8 +1,7 @@
1
- import { useContext, useMemo, useCallback, useLayoutEffect } from 'react';
2
- import { CHEVRON_BACK_DS_ID, FOOTER_MENU_CLOSE_DS_ID } from '../exported-related/constants.js';
3
- import { LeftNavContext } from '../LeftNavigationContext.js';
4
-
5
- /* eslint-disable max-statements */
1
+ import * as React from "react";
2
+ import { useCallback, useMemo, useLayoutEffect, useContext } from "react";
3
+ import { CHEVRON_BACK_DS_ID, FOOTER_MENU_CLOSE_DS_ID } from "../exported-related/constants";
4
+ import LeftNavContext from "../LeftNavigationContext";
6
5
  const KEY_CODES = {
7
6
  TAB: 9,
8
7
  ENTER: 13,
@@ -14,52 +13,29 @@ const KEY_CODES = {
14
13
  END: 35,
15
14
  HOME: 36
16
15
  };
17
-
18
16
  const nextIndex = (index, length) => (index + 1) % length;
19
-
20
17
  const prevIndex = (index, length) => (index - 1 + length) % length;
21
-
22
- const useKeyboardNavigation = _ref => {
23
- let {
24
- item,
25
- onClick
26
- } = _ref;
18
+ const useKeyboardNavigation = ({ item, onClick }) => {
27
19
  const {
28
20
  dsId,
29
- itemOpts: {
30
- selectable,
31
- openable,
32
- closable
33
- }
21
+ itemOpts: { selectable, openable, closable }
34
22
  } = item;
35
- const {
36
- visibleItems,
37
- visibleItemsRefs
38
- } = useContext(LeftNavContext);
39
- const currentIndex = useMemo(() => visibleItems.findIndex(visibleItemDsId => visibleItemDsId === dsId), [dsId, visibleItems]);
40
- const {
41
- setFocusedItem,
42
- focusedItem,
43
- setSelectedItem
44
- } = useContext(LeftNavContext);
45
- const focusAndSelect = useCallback(nextDsId => {
23
+ const { visibleItems, visibleItemsRefs } = useContext(LeftNavContext);
24
+ const currentIndex = useMemo(() => visibleItems.findIndex((visibleItemDsId) => visibleItemDsId === dsId), [dsId, visibleItems]);
25
+ const { setFocusedItem, focusedItem, setSelectedItem } = useContext(LeftNavContext);
26
+ const focusAndSelect = useCallback((nextDsId) => {
46
27
  setFocusedItem(nextDsId);
47
28
  setSelectedItem(nextDsId);
48
29
  }, [setFocusedItem, setSelectedItem]);
49
30
  useLayoutEffect(() => {
50
- var _visibleItemsRefs$cur, _visibleItemsRefs$cur2;
51
-
52
- if (dsId === focusedItem) (_visibleItemsRefs$cur = visibleItemsRefs.current[dsId]) === null || _visibleItemsRefs$cur === void 0 ? void 0 : (_visibleItemsRefs$cur2 = _visibleItemsRefs$cur.current) === null || _visibleItemsRefs$cur2 === void 0 ? void 0 : _visibleItemsRefs$cur2.focus();
31
+ if (dsId === focusedItem)
32
+ visibleItemsRefs.current[dsId]?.current?.focus();
53
33
  }, [dsId, focusedItem, visibleItemsRefs]);
54
- const onKeyDown = useCallback(e => {
55
- const {
56
- keyCode
57
- } = e; // Prevent default behaviour when not tab
58
-
34
+ const onKeyDown = useCallback((e) => {
35
+ const { keyCode } = e;
59
36
  if (keyCode !== KEY_CODES.TAB) {
60
37
  e.preventDefault();
61
38
  }
62
-
63
39
  if (keyCode === KEY_CODES.ENTER || keyCode === KEY_CODES.SPACE) {
64
40
  if (selectable) {
65
41
  onClick(e);
@@ -72,35 +48,42 @@ const useKeyboardNavigation = _ref => {
72
48
  setFocusedItem(dsId);
73
49
  }
74
50
  }
75
-
76
51
  if (openable && keyCode === KEY_CODES.RIGHT_ARROW) {
77
52
  onClick(e);
78
53
  }
79
-
80
54
  if (closable && keyCode === KEY_CODES.LEFT_ARROW) {
81
55
  onClick(e);
82
56
  setFocusedItem(dsId);
83
57
  }
84
-
85
58
  if (keyCode === KEY_CODES.DOWN_ARROW) {
86
59
  const nextDsId = visibleItems[nextIndex(currentIndex, visibleItems.length)];
87
60
  setFocusedItem(nextDsId);
88
61
  }
89
-
90
62
  if (keyCode === KEY_CODES.UP_ARROW) {
91
63
  const prevDsId = visibleItems[prevIndex(currentIndex, visibleItems.length)];
92
64
  setFocusedItem(prevDsId);
93
65
  }
94
-
95
66
  if (keyCode === KEY_CODES.HOME) {
96
67
  setFocusedItem(visibleItems[0]);
97
68
  }
98
-
99
69
  if (keyCode === KEY_CODES.END) {
100
70
  setFocusedItem(visibleItems[visibleItems.length - 1]);
101
71
  }
102
- }, [openable, closable, selectable, focusedItem, onClick, focusAndSelect, dsId, setFocusedItem, visibleItems, currentIndex]);
72
+ }, [
73
+ openable,
74
+ closable,
75
+ selectable,
76
+ focusedItem,
77
+ onClick,
78
+ focusAndSelect,
79
+ dsId,
80
+ setFocusedItem,
81
+ visibleItems,
82
+ currentIndex
83
+ ]);
103
84
  return onKeyDown;
104
85
  };
105
-
106
- export { useKeyboardNavigation };
86
+ export {
87
+ useKeyboardNavigation
88
+ };
89
+ //# sourceMappingURL=useKeyboardNavigation.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useKeyboardNavigation.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useMemo, useLayoutEffect, useContext } from 'react';\nimport { CHEVRON_BACK_DS_ID, FOOTER_MENU_CLOSE_DS_ID } from '../exported-related/constants';\nimport { GenericItemItemProps } from '../index.d';\nimport LeftNavContext from '../LeftNavigationContext';\n\nconst KEY_CODES = {\n TAB: 9,\n ENTER: 13,\n SPACE: 32,\n LEFT_ARROW: 37,\n UP_ARROW: 38,\n RIGHT_ARROW: 39,\n DOWN_ARROW: 40,\n END: 35,\n HOME: 36,\n};\n\nconst nextIndex = (index: number, length: number) => (index + 1) % length;\nconst prevIndex = (index: number, length: number) => (index - 1 + length) % length;\n\ntype useKeyboardNavigationProps = {\n item: GenericItemItemProps;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick: (e: any) => void;\n};\n\nexport const useKeyboardNavigation = ({ item, onClick }: useKeyboardNavigationProps): React.KeyboardEventHandler => {\n const {\n dsId,\n itemOpts: { selectable, openable, closable },\n } = item;\n\n const { visibleItems, visibleItemsRefs } = useContext(LeftNavContext);\n\n const currentIndex = useMemo(\n () => visibleItems.findIndex((visibleItemDsId) => visibleItemDsId === dsId),\n [dsId, visibleItems],\n );\n\n const { setFocusedItem, focusedItem, setSelectedItem } = useContext(LeftNavContext);\n\n const focusAndSelect = useCallback(\n (nextDsId: string) => {\n setFocusedItem(nextDsId);\n setSelectedItem(nextDsId);\n },\n [setFocusedItem, setSelectedItem],\n );\n\n useLayoutEffect(() => {\n if (dsId === focusedItem) visibleItemsRefs.current[dsId]?.current?.focus();\n }, [dsId, focusedItem, visibleItemsRefs]);\n\n const onKeyDown: React.KeyboardEventHandler = useCallback(\n (e) => {\n const { keyCode } = e;\n\n // Prevent default behaviour when not tab\n if (keyCode !== KEY_CODES.TAB) {\n e.preventDefault();\n }\n\n if (keyCode === KEY_CODES.ENTER || keyCode === KEY_CODES.SPACE) {\n if (selectable) {\n onClick(e);\n focusAndSelect(dsId);\n } else if (focusedItem === CHEVRON_BACK_DS_ID) {\n onClick(e);\n focusAndSelect(dsId);\n } else if (focusedItem === FOOTER_MENU_CLOSE_DS_ID) {\n onClick(e);\n setFocusedItem(dsId);\n }\n }\n\n if (openable && keyCode === KEY_CODES.RIGHT_ARROW) {\n onClick(e);\n }\n\n if (closable && keyCode === KEY_CODES.LEFT_ARROW) {\n onClick(e);\n setFocusedItem(dsId);\n }\n\n if (keyCode === KEY_CODES.DOWN_ARROW) {\n const nextDsId = visibleItems[nextIndex(currentIndex, visibleItems.length)];\n setFocusedItem(nextDsId);\n }\n\n if (keyCode === KEY_CODES.UP_ARROW) {\n const prevDsId = visibleItems[prevIndex(currentIndex, visibleItems.length)];\n setFocusedItem(prevDsId);\n }\n\n if (keyCode === KEY_CODES.HOME) {\n setFocusedItem(visibleItems[0]);\n }\n\n if (keyCode === KEY_CODES.END) {\n setFocusedItem(visibleItems[visibleItems.length - 1]);\n }\n },\n [\n openable,\n closable,\n selectable,\n focusedItem,\n onClick,\n focusAndSelect,\n dsId,\n setFocusedItem,\n visibleItems,\n currentIndex,\n ],\n );\n\n return onKeyDown;\n};\n"],
5
+ "mappings": "AAAA;ACGA;AACA;AAEA;AAEA,MAAM,YAAY;AAAA,EAChB,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,MAAM;AAAA;AAGR,MAAM,YAAY,CAAC,OAAe,WAAoB,SAAQ,KAAK;AACnE,MAAM,YAAY,CAAC,OAAe,WAAoB,SAAQ,IAAI,UAAU;AAQrE,MAAM,wBAAwB,CAAC,EAAE,MAAM,cAAsE;AAClH,QAAM;AAAA,IACJ;AAAA,IACA,UAAU,EAAE,YAAY,UAAU;AAAA,MAChC;AAEJ,QAAM,EAAE,cAAc,qBAAqB,WAAW;AAEtD,QAAM,eAAe,QACnB,MAAM,aAAa,UAAU,CAAC,oBAAoB,oBAAoB,OACtE,CAAC,MAAM;AAGT,QAAM,EAAE,gBAAgB,aAAa,oBAAoB,WAAW;AAEpE,QAAM,iBAAiB,YACrB,CAAC,aAAqB;AACpB,mBAAe;AACf,oBAAgB;AAAA,KAElB,CAAC,gBAAgB;AAGnB,kBAAgB,MAAM;AACpB,QAAI,SAAS;AAAa,uBAAiB,QAAQ,OAAO,SAAS;AAAA,KAClE,CAAC,MAAM,aAAa;AAEvB,QAAM,YAAwC,YAC5C,CAAC,MAAM;AACL,UAAM,EAAE,YAAY;AAGpB,QAAI,YAAY,UAAU,KAAK;AAC7B,QAAE;AAAA;AAGJ,QAAI,YAAY,UAAU,SAAS,YAAY,UAAU,OAAO;AAC9D,UAAI,YAAY;AACd,gBAAQ;AACR,uBAAe;AAAA,iBACN,gBAAgB,oBAAoB;AAC7C,gBAAQ;AACR,uBAAe;AAAA,iBACN,gBAAgB,yBAAyB;AAClD,gBAAQ;AACR,uBAAe;AAAA;AAAA;AAInB,QAAI,YAAY,YAAY,UAAU,aAAa;AACjD,cAAQ;AAAA;AAGV,QAAI,YAAY,YAAY,UAAU,YAAY;AAChD,cAAQ;AACR,qBAAe;AAAA;AAGjB,QAAI,YAAY,UAAU,YAAY;AACpC,YAAM,WAAW,aAAa,UAAU,cAAc,aAAa;AACnE,qBAAe;AAAA;AAGjB,QAAI,YAAY,UAAU,UAAU;AAClC,YAAM,WAAW,aAAa,UAAU,cAAc,aAAa;AACnE,qBAAe;AAAA;AAGjB,QAAI,YAAY,UAAU,MAAM;AAC9B,qBAAe,aAAa;AAAA;AAG9B,QAAI,YAAY,UAAU,KAAK;AAC7B,qBAAe,aAAa,aAAa,SAAS;AAAA;AAAA,KAGtD;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAIJ,SAAO;AAAA;",
6
+ "names": []
7
+ }