@elliemae/ds-left-navigation 2.3.0-alpha.9 → 2.3.0-next.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/cjs/LeftNavigation.js +29 -0
  2. package/cjs/LeftNavigationContext.js +41 -0
  3. package/cjs/common/getItemBackgroundStyle.js +12 -0
  4. package/cjs/common/getLeftBorderStyle.js +12 -0
  5. package/cjs/common/getScrollbarStyle.js +7 -0
  6. package/cjs/common/index.js +13 -0
  7. package/cjs/configs/index.js +10 -0
  8. package/cjs/configs/useLeftNavConfig.js +102 -0
  9. package/cjs/configs/useLeftNavItems.js +80 -0
  10. package/cjs/configs/useLeftNavSmoothExpand.js +35 -0
  11. package/cjs/exported-related/ChevronItem/index.js +28 -0
  12. package/cjs/exported-related/Icon/index.js +36 -0
  13. package/cjs/exported-related/ItemRenderer/index.js +128 -0
  14. package/cjs/exported-related/ItemRenderer/styled.js +58 -0
  15. package/cjs/exported-related/ItemRenderer/usePropsWithDefaults.js +57 -0
  16. package/cjs/exported-related/Notifications/index.js +62 -0
  17. package/cjs/exported-related/OpenWindowItem/index.js +33 -0
  18. package/cjs/exported-related/constants.js +29 -0
  19. package/cjs/exported-related/index.js +23 -0
  20. package/cjs/hooks/index.js +13 -0
  21. package/cjs/hooks/useExpandableOnClickHandler.js +35 -0
  22. package/cjs/hooks/useKeyboardNavigation.js +110 -0
  23. package/cjs/hooks/useOpenableOnClickHandler.js +40 -0
  24. package/cjs/hooks/useSelectFirstBodyItem.js +39 -0
  25. package/cjs/index.d.js +2 -0
  26. package/cjs/index.js +30 -0
  27. package/cjs/outOfTheBox/ItemControlledDrilldown/index.js +158 -0
  28. package/cjs/outOfTheBox/ItemControlledDrilldown/styled.js +27 -0
  29. package/cjs/outOfTheBox/ItemHeader/index.js +144 -0
  30. package/cjs/outOfTheBox/ItemHeader/styled.js +22 -0
  31. package/cjs/outOfTheBox/ItemLink/index.js +97 -0
  32. package/cjs/outOfTheBox/ItemLink/styled.js +17 -0
  33. package/cjs/outOfTheBox/ItemSection/index.js +83 -0
  34. package/cjs/outOfTheBox/ItemSection/styled.js +23 -0
  35. package/cjs/outOfTheBox/ItemSeparator/index.js +52 -0
  36. package/cjs/outOfTheBox/ItemSubmenu/index.js +145 -0
  37. package/cjs/outOfTheBox/ItemSubmenu/styled.js +22 -0
  38. package/cjs/outOfTheBox/ItemTextLabel/index.js +70 -0
  39. package/cjs/outOfTheBox/ItemTextLabel/styled.js +23 -0
  40. package/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js +172 -0
  41. package/cjs/outOfTheBox/ItemUncontrolledDrilldown/styled.js +27 -0
  42. package/cjs/outOfTheBox/ItemWithDate/index.js +86 -0
  43. package/cjs/outOfTheBox/ItemWithDate/styled.js +27 -0
  44. package/cjs/outOfTheBox/index.js +62 -0
  45. package/cjs/parts/LeftNavContent/index.js +84 -0
  46. package/cjs/parts/LeftNavContent/styled.js +53 -0
  47. package/cjs/parts/LeftNavContentWithScrollbar/index.js +91 -0
  48. package/cjs/parts/LeftNavFooterItem/index.js +108 -0
  49. package/cjs/parts/LeftNavFooterItem/styled.js +39 -0
  50. package/cjs/parts/LeftNavLoading/index.js +34 -0
  51. package/cjs/parts/OutOfTheBoxMapItem.js +52 -0
  52. package/cjs/prop-types.js +47 -0
  53. package/esm/LeftNavigation.js +20 -0
  54. package/{dist/esm → esm}/LeftNavigationContext.js +11 -15
  55. package/esm/common/getItemBackgroundStyle.js +8 -0
  56. package/esm/common/getLeftBorderStyle.js +8 -0
  57. package/esm/common/getScrollbarStyle.js +3 -0
  58. package/esm/common/index.js +3 -0
  59. package/esm/configs/index.js +2 -0
  60. package/esm/configs/useLeftNavConfig.js +93 -0
  61. package/esm/configs/useLeftNavItems.js +75 -0
  62. package/esm/configs/useLeftNavSmoothExpand.js +26 -0
  63. package/esm/exported-related/ChevronItem/index.js +19 -0
  64. package/esm/exported-related/Icon/index.js +27 -0
  65. package/esm/exported-related/ItemRenderer/index.js +119 -0
  66. package/esm/exported-related/ItemRenderer/styled.js +47 -0
  67. package/esm/exported-related/ItemRenderer/usePropsWithDefaults.js +49 -0
  68. package/esm/exported-related/Notifications/index.js +51 -0
  69. package/esm/exported-related/OpenWindowItem/index.js +23 -0
  70. package/esm/exported-related/constants.js +21 -0
  71. package/esm/exported-related/index.js +6 -0
  72. package/esm/hooks/index.js +3 -0
  73. package/esm/hooks/useExpandableOnClickHandler.js +31 -0
  74. package/{dist/esm → esm}/hooks/useKeyboardNavigation.js +47 -30
  75. package/esm/hooks/useOpenableOnClickHandler.js +36 -0
  76. package/esm/hooks/useSelectFirstBodyItem.js +35 -0
  77. package/esm/index.d.js +1 -0
  78. package/esm/index.js +8 -0
  79. package/esm/outOfTheBox/ItemControlledDrilldown/index.js +148 -0
  80. package/esm/outOfTheBox/ItemControlledDrilldown/styled.js +17 -0
  81. package/esm/outOfTheBox/ItemHeader/index.js +134 -0
  82. package/esm/outOfTheBox/ItemHeader/styled.js +12 -0
  83. package/esm/outOfTheBox/ItemLink/index.js +87 -0
  84. package/esm/outOfTheBox/ItemLink/styled.js +8 -0
  85. package/esm/outOfTheBox/ItemSection/index.js +73 -0
  86. package/esm/outOfTheBox/ItemSection/styled.js +13 -0
  87. package/esm/outOfTheBox/ItemSeparator/index.js +42 -0
  88. package/esm/outOfTheBox/ItemSubmenu/index.js +135 -0
  89. package/esm/outOfTheBox/ItemSubmenu/styled.js +12 -0
  90. package/esm/outOfTheBox/ItemTextLabel/index.js +61 -0
  91. package/esm/outOfTheBox/ItemTextLabel/styled.js +14 -0
  92. package/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js +162 -0
  93. package/esm/outOfTheBox/ItemUncontrolledDrilldown/styled.js +17 -0
  94. package/esm/outOfTheBox/ItemWithDate/index.js +76 -0
  95. package/esm/outOfTheBox/ItemWithDate/styled.js +17 -0
  96. package/esm/outOfTheBox/index.js +57 -0
  97. package/esm/parts/LeftNavContent/index.js +77 -0
  98. package/esm/parts/LeftNavContent/styled.js +39 -0
  99. package/esm/parts/LeftNavContentWithScrollbar/index.js +80 -0
  100. package/esm/parts/LeftNavFooterItem/index.js +98 -0
  101. package/esm/parts/LeftNavFooterItem/styled.js +26 -0
  102. package/esm/parts/LeftNavLoading/index.js +23 -0
  103. package/esm/parts/OutOfTheBoxMapItem.js +42 -0
  104. package/esm/prop-types.js +40 -0
  105. package/package.json +121 -123
  106. package/{dist/types → types}/LeftNavigation.d.ts +0 -0
  107. package/{dist/types → types}/LeftNavigationContext.d.ts +0 -0
  108. package/{dist/types → types}/common/getItemBackgroundStyle.d.ts +0 -0
  109. package/{dist/types → types}/common/getLeftBorderStyle.d.ts +0 -0
  110. package/{dist/types → types}/common/getScrollbarStyle.d.ts +0 -0
  111. package/{dist/types → types}/common/index.d.ts +0 -0
  112. package/{dist/types → types}/configs/index.d.ts +0 -0
  113. package/{dist/types → types}/configs/useLeftNavConfig.d.ts +0 -0
  114. package/{dist/types → types}/configs/useLeftNavItems.d.ts +0 -0
  115. package/{dist/types → types}/configs/useLeftNavSmoothExpand.d.ts +0 -0
  116. package/{dist/types → types}/exported-related/ChevronItem/index.d.ts +0 -0
  117. package/{dist/types → types}/exported-related/Icon/index.d.ts +0 -0
  118. package/{dist/types → types}/exported-related/ItemRenderer/index.d.ts +0 -0
  119. package/{dist/types → types}/exported-related/ItemRenderer/styled.d.ts +2 -2
  120. package/{dist/types → types}/exported-related/ItemRenderer/usePropsWithDefaults.d.ts +0 -0
  121. package/{dist/types → types}/exported-related/Notifications/index.d.ts +0 -0
  122. package/{dist/types → types}/exported-related/OpenWindowItem/index.d.ts +0 -0
  123. package/{dist/types → types}/exported-related/constants.d.ts +0 -0
  124. package/{dist/types → types}/exported-related/index.d.ts +0 -0
  125. package/{dist/types → types}/hooks/index.d.ts +0 -0
  126. package/{dist/types → types}/hooks/useExpandableOnClickHandler.d.ts +0 -0
  127. package/{dist/types → types}/hooks/useKeyboardNavigation.d.ts +0 -0
  128. package/{dist/types → types}/hooks/useOpenableOnClickHandler.d.ts +0 -0
  129. package/{dist/types → types}/hooks/useSelectFirstBodyItem.d.ts +0 -0
  130. package/{dist/types → types}/index.d.d.ts +0 -0
  131. package/{dist/types → types}/index.d.ts +0 -0
  132. package/{dist/types → types}/outOfTheBox/ItemControlledDrilldown/index.d.ts +0 -0
  133. package/{dist/types/outOfTheBox/ItemUncontrolledDrilldown → types/outOfTheBox/ItemControlledDrilldown}/styled.d.ts +2 -2
  134. package/{dist/types → types}/outOfTheBox/ItemHeader/index.d.ts +0 -0
  135. package/{dist/types → types}/outOfTheBox/ItemHeader/styled.d.ts +1 -1
  136. package/{dist/types → types}/outOfTheBox/ItemLink/index.d.ts +0 -0
  137. package/{dist/types → types}/outOfTheBox/ItemLink/styled.d.ts +1 -1
  138. package/{dist/types → types}/outOfTheBox/ItemSection/index.d.ts +0 -0
  139. package/{dist/types → types}/outOfTheBox/ItemSection/styled.d.ts +0 -0
  140. package/{dist/types → types}/outOfTheBox/ItemSeparator/index.d.ts +0 -0
  141. package/{dist/types → types}/outOfTheBox/ItemSubmenu/index.d.ts +0 -0
  142. package/{dist/types → types}/outOfTheBox/ItemSubmenu/styled.d.ts +1 -1
  143. package/{dist/types → types}/outOfTheBox/ItemTextLabel/index.d.ts +0 -0
  144. package/{dist/types → types}/outOfTheBox/ItemTextLabel/styled.d.ts +1 -1
  145. package/{dist/types → types}/outOfTheBox/ItemUncontrolledDrilldown/index.d.ts +0 -0
  146. package/{dist/types/outOfTheBox/ItemWithDate → types/outOfTheBox/ItemUncontrolledDrilldown}/styled.d.ts +2 -2
  147. package/{dist/types → types}/outOfTheBox/ItemWithDate/index.d.ts +0 -0
  148. package/{dist/types/outOfTheBox/ItemControlledDrilldown → types/outOfTheBox/ItemWithDate}/styled.d.ts +2 -2
  149. package/{dist/types → types}/outOfTheBox/index.d.ts +0 -0
  150. package/{dist/types → types}/parts/LeftNavContent/index.d.ts +0 -0
  151. package/{dist/types → types}/parts/LeftNavContent/styled.d.ts +0 -0
  152. package/{dist/types → types}/parts/LeftNavContentWithScrollbar/index.d.ts +0 -0
  153. package/{dist/types → types}/parts/LeftNavFooterItem/index.d.ts +0 -0
  154. package/{dist/types → types}/parts/LeftNavFooterItem/styled.d.ts +5 -5
  155. package/{dist/types → types}/parts/LeftNavLoading/index.d.ts +0 -0
  156. package/{dist/types → types}/parts/OutOfTheBoxMapItem.d.ts +0 -0
  157. package/{dist/types → types}/prop-types.d.ts +0 -0
  158. package/{dist/types → types}/tests/LeftNavigation.collapsed.test.d.ts +0 -0
  159. package/{dist/types → types}/tests/LeftNavigation.expanded.test.d.ts +0 -0
  160. package/{dist/types → types}/tests/LeftNavigation.opened.test.d.ts +0 -0
  161. package/{dist/types → types}/tests/events/LeftNavigation.events.keyboard.test.d.ts +0 -0
  162. package/{dist/types → types}/tests/events/LeftNavigation.events.subitems.test.d.ts +0 -0
  163. package/{dist/types → types}/tests/events/LeftNavigation.events.test.d.ts +0 -0
  164. package/{dist/types → types}/tests/events/LeftNavigation.focus.events.test.d.ts +0 -0
  165. package/dist/cjs/LeftNavigation.js +0 -51
  166. package/dist/cjs/LeftNavigation.js.map +0 -7
  167. package/dist/cjs/LeftNavigationContext.js +0 -67
  168. package/dist/cjs/LeftNavigationContext.js.map +0 -7
  169. package/dist/cjs/common/getItemBackgroundStyle.js +0 -51
  170. package/dist/cjs/common/getItemBackgroundStyle.js.map +0 -7
  171. package/dist/cjs/common/getLeftBorderStyle.js +0 -54
  172. package/dist/cjs/common/getLeftBorderStyle.js.map +0 -7
  173. package/dist/cjs/common/getScrollbarStyle.js +0 -58
  174. package/dist/cjs/common/getScrollbarStyle.js.map +0 -7
  175. package/dist/cjs/common/index.js +0 -30
  176. package/dist/cjs/common/index.js.map +0 -7
  177. package/dist/cjs/configs/index.js +0 -38
  178. package/dist/cjs/configs/index.js.map +0 -7
  179. package/dist/cjs/configs/useLeftNavConfig.js +0 -106
  180. package/dist/cjs/configs/useLeftNavConfig.js.map +0 -7
  181. package/dist/cjs/configs/useLeftNavItems.js +0 -82
  182. package/dist/cjs/configs/useLeftNavItems.js.map +0 -7
  183. package/dist/cjs/configs/useLeftNavSmoothExpand.js +0 -53
  184. package/dist/cjs/configs/useLeftNavSmoothExpand.js.map +0 -7
  185. package/dist/cjs/exported-related/ChevronItem/index.js +0 -43
  186. package/dist/cjs/exported-related/ChevronItem/index.js.map +0 -7
  187. package/dist/cjs/exported-related/Icon/index.js +0 -53
  188. package/dist/cjs/exported-related/Icon/index.js.map +0 -7
  189. package/dist/cjs/exported-related/ItemRenderer/index.js +0 -133
  190. package/dist/cjs/exported-related/ItemRenderer/index.js.map +0 -7
  191. package/dist/cjs/exported-related/ItemRenderer/styled.js +0 -90
  192. package/dist/cjs/exported-related/ItemRenderer/styled.js.map +0 -7
  193. package/dist/cjs/exported-related/ItemRenderer/usePropsWithDefaults.js +0 -69
  194. package/dist/cjs/exported-related/ItemRenderer/usePropsWithDefaults.js.map +0 -7
  195. package/dist/cjs/exported-related/Notifications/index.js +0 -82
  196. package/dist/cjs/exported-related/Notifications/index.js.map +0 -7
  197. package/dist/cjs/exported-related/OpenWindowItem/index.js +0 -50
  198. package/dist/cjs/exported-related/OpenWindowItem/index.js.map +0 -7
  199. package/dist/cjs/exported-related/constants.js +0 -57
  200. package/dist/cjs/exported-related/constants.js.map +0 -7
  201. package/dist/cjs/exported-related/index.js +0 -33
  202. package/dist/cjs/exported-related/index.js.map +0 -7
  203. package/dist/cjs/hooks/index.js +0 -30
  204. package/dist/cjs/hooks/index.js.map +0 -7
  205. package/dist/cjs/hooks/useExpandableOnClickHandler.js +0 -64
  206. package/dist/cjs/hooks/useExpandableOnClickHandler.js.map +0 -7
  207. package/dist/cjs/hooks/useKeyboardNavigation.js +0 -118
  208. package/dist/cjs/hooks/useKeyboardNavigation.js.map +0 -7
  209. package/dist/cjs/hooks/useOpenableOnClickHandler.js +0 -69
  210. package/dist/cjs/hooks/useOpenableOnClickHandler.js.map +0 -7
  211. package/dist/cjs/hooks/useSelectFirstBodyItem.js +0 -52
  212. package/dist/cjs/hooks/useSelectFirstBodyItem.js.map +0 -7
  213. package/dist/cjs/index.d.js +0 -27
  214. package/dist/cjs/index.d.js.map +0 -7
  215. package/dist/cjs/index.js +0 -41
  216. package/dist/cjs/index.js.map +0 -7
  217. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/index.js +0 -152
  218. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/index.js.map +0 -7
  219. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/styled.js +0 -49
  220. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/styled.js.map +0 -7
  221. package/dist/cjs/outOfTheBox/ItemHeader/index.js +0 -147
  222. package/dist/cjs/outOfTheBox/ItemHeader/index.js.map +0 -7
  223. package/dist/cjs/outOfTheBox/ItemHeader/styled.js +0 -49
  224. package/dist/cjs/outOfTheBox/ItemHeader/styled.js.map +0 -7
  225. package/dist/cjs/outOfTheBox/ItemLink/index.js +0 -106
  226. package/dist/cjs/outOfTheBox/ItemLink/index.js.map +0 -7
  227. package/dist/cjs/outOfTheBox/ItemLink/styled.js +0 -41
  228. package/dist/cjs/outOfTheBox/ItemLink/styled.js.map +0 -7
  229. package/dist/cjs/outOfTheBox/ItemSection/index.js +0 -79
  230. package/dist/cjs/outOfTheBox/ItemSection/index.js.map +0 -7
  231. package/dist/cjs/outOfTheBox/ItemSection/styled.js +0 -53
  232. package/dist/cjs/outOfTheBox/ItemSection/styled.js.map +0 -7
  233. package/dist/cjs/outOfTheBox/ItemSeparator/index.js +0 -63
  234. package/dist/cjs/outOfTheBox/ItemSeparator/index.js.map +0 -7
  235. package/dist/cjs/outOfTheBox/ItemSubmenu/index.js +0 -149
  236. package/dist/cjs/outOfTheBox/ItemSubmenu/index.js.map +0 -7
  237. package/dist/cjs/outOfTheBox/ItemSubmenu/styled.js +0 -49
  238. package/dist/cjs/outOfTheBox/ItemSubmenu/styled.js.map +0 -7
  239. package/dist/cjs/outOfTheBox/ItemTextLabel/index.js +0 -69
  240. package/dist/cjs/outOfTheBox/ItemTextLabel/index.js.map +0 -7
  241. package/dist/cjs/outOfTheBox/ItemTextLabel/styled.js +0 -43
  242. package/dist/cjs/outOfTheBox/ItemTextLabel/styled.js.map +0 -7
  243. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js +0 -166
  244. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js.map +0 -7
  245. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/styled.js +0 -49
  246. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/styled.js.map +0 -7
  247. package/dist/cjs/outOfTheBox/ItemWithDate/index.js +0 -91
  248. package/dist/cjs/outOfTheBox/ItemWithDate/index.js.map +0 -7
  249. package/dist/cjs/outOfTheBox/ItemWithDate/styled.js +0 -49
  250. package/dist/cjs/outOfTheBox/ItemWithDate/styled.js.map +0 -7
  251. package/dist/cjs/outOfTheBox/index.js +0 -77
  252. package/dist/cjs/outOfTheBox/index.js.map +0 -7
  253. package/dist/cjs/parts/LeftNavContent/index.js +0 -88
  254. package/dist/cjs/parts/LeftNavContent/index.js.map +0 -7
  255. package/dist/cjs/parts/LeftNavContent/styled.js +0 -113
  256. package/dist/cjs/parts/LeftNavContent/styled.js.map +0 -7
  257. package/dist/cjs/parts/LeftNavContentWithScrollbar/index.js +0 -101
  258. package/dist/cjs/parts/LeftNavContentWithScrollbar/index.js.map +0 -7
  259. package/dist/cjs/parts/LeftNavFooterItem/index.js +0 -125
  260. package/dist/cjs/parts/LeftNavFooterItem/index.js.map +0 -7
  261. package/dist/cjs/parts/LeftNavFooterItem/styled.js +0 -94
  262. package/dist/cjs/parts/LeftNavFooterItem/styled.js.map +0 -7
  263. package/dist/cjs/parts/LeftNavLoading/index.js +0 -52
  264. package/dist/cjs/parts/LeftNavLoading/index.js.map +0 -7
  265. package/dist/cjs/parts/OutOfTheBoxMapItem.js +0 -55
  266. package/dist/cjs/parts/OutOfTheBoxMapItem.js.map +0 -7
  267. package/dist/cjs/prop-types.js +0 -66
  268. package/dist/cjs/prop-types.js.map +0 -7
  269. package/dist/esm/LeftNavigation.js +0 -22
  270. package/dist/esm/LeftNavigation.js.map +0 -7
  271. package/dist/esm/LeftNavigationContext.js.map +0 -7
  272. package/dist/esm/common/getItemBackgroundStyle.js +0 -22
  273. package/dist/esm/common/getItemBackgroundStyle.js.map +0 -7
  274. package/dist/esm/common/getLeftBorderStyle.js +0 -25
  275. package/dist/esm/common/getLeftBorderStyle.js.map +0 -7
  276. package/dist/esm/common/getScrollbarStyle.js +0 -29
  277. package/dist/esm/common/getScrollbarStyle.js.map +0 -7
  278. package/dist/esm/common/index.js +0 -5
  279. package/dist/esm/common/index.js.map +0 -7
  280. package/dist/esm/configs/index.js +0 -9
  281. package/dist/esm/configs/index.js.map +0 -7
  282. package/dist/esm/configs/useLeftNavConfig.js +0 -77
  283. package/dist/esm/configs/useLeftNavConfig.js.map +0 -7
  284. package/dist/esm/configs/useLeftNavItems.js +0 -53
  285. package/dist/esm/configs/useLeftNavItems.js.map +0 -7
  286. package/dist/esm/configs/useLeftNavSmoothExpand.js +0 -24
  287. package/dist/esm/configs/useLeftNavSmoothExpand.js.map +0 -7
  288. package/dist/esm/exported-related/ChevronItem/index.js +0 -14
  289. package/dist/esm/exported-related/ChevronItem/index.js.map +0 -7
  290. package/dist/esm/exported-related/Icon/index.js +0 -24
  291. package/dist/esm/exported-related/Icon/index.js.map +0 -7
  292. package/dist/esm/exported-related/ItemRenderer/index.js +0 -104
  293. package/dist/esm/exported-related/ItemRenderer/index.js.map +0 -7
  294. package/dist/esm/exported-related/ItemRenderer/styled.js +0 -61
  295. package/dist/esm/exported-related/ItemRenderer/styled.js.map +0 -7
  296. package/dist/esm/exported-related/ItemRenderer/usePropsWithDefaults.js +0 -40
  297. package/dist/esm/exported-related/ItemRenderer/usePropsWithDefaults.js.map +0 -7
  298. package/dist/esm/exported-related/Notifications/index.js +0 -58
  299. package/dist/esm/exported-related/Notifications/index.js.map +0 -7
  300. package/dist/esm/exported-related/OpenWindowItem/index.js +0 -21
  301. package/dist/esm/exported-related/OpenWindowItem/index.js.map +0 -7
  302. package/dist/esm/exported-related/constants.js +0 -28
  303. package/dist/esm/exported-related/constants.js.map +0 -7
  304. package/dist/esm/exported-related/index.js +0 -8
  305. package/dist/esm/exported-related/index.js.map +0 -7
  306. package/dist/esm/hooks/index.js +0 -5
  307. package/dist/esm/hooks/index.js.map +0 -7
  308. package/dist/esm/hooks/useExpandableOnClickHandler.js +0 -35
  309. package/dist/esm/hooks/useExpandableOnClickHandler.js.map +0 -7
  310. package/dist/esm/hooks/useKeyboardNavigation.js.map +0 -7
  311. package/dist/esm/hooks/useOpenableOnClickHandler.js +0 -40
  312. package/dist/esm/hooks/useOpenableOnClickHandler.js.map +0 -7
  313. package/dist/esm/hooks/useSelectFirstBodyItem.js +0 -23
  314. package/dist/esm/hooks/useSelectFirstBodyItem.js.map +0 -7
  315. package/dist/esm/index.d.js +0 -2
  316. package/dist/esm/index.d.js.map +0 -7
  317. package/dist/esm/index.js +0 -12
  318. package/dist/esm/index.js.map +0 -7
  319. package/dist/esm/outOfTheBox/ItemControlledDrilldown/index.js +0 -123
  320. package/dist/esm/outOfTheBox/ItemControlledDrilldown/index.js.map +0 -7
  321. package/dist/esm/outOfTheBox/ItemControlledDrilldown/styled.js +0 -20
  322. package/dist/esm/outOfTheBox/ItemControlledDrilldown/styled.js.map +0 -7
  323. package/dist/esm/outOfTheBox/ItemHeader/index.js +0 -118
  324. package/dist/esm/outOfTheBox/ItemHeader/index.js.map +0 -7
  325. package/dist/esm/outOfTheBox/ItemHeader/styled.js +0 -20
  326. package/dist/esm/outOfTheBox/ItemHeader/styled.js.map +0 -7
  327. package/dist/esm/outOfTheBox/ItemLink/index.js +0 -77
  328. package/dist/esm/outOfTheBox/ItemLink/index.js.map +0 -7
  329. package/dist/esm/outOfTheBox/ItemLink/styled.js +0 -12
  330. package/dist/esm/outOfTheBox/ItemLink/styled.js.map +0 -7
  331. package/dist/esm/outOfTheBox/ItemSection/index.js +0 -50
  332. package/dist/esm/outOfTheBox/ItemSection/index.js.map +0 -7
  333. package/dist/esm/outOfTheBox/ItemSection/styled.js +0 -24
  334. package/dist/esm/outOfTheBox/ItemSection/styled.js.map +0 -7
  335. package/dist/esm/outOfTheBox/ItemSeparator/index.js +0 -34
  336. package/dist/esm/outOfTheBox/ItemSeparator/index.js.map +0 -7
  337. package/dist/esm/outOfTheBox/ItemSubmenu/index.js +0 -120
  338. package/dist/esm/outOfTheBox/ItemSubmenu/index.js.map +0 -7
  339. package/dist/esm/outOfTheBox/ItemSubmenu/styled.js +0 -20
  340. package/dist/esm/outOfTheBox/ItemSubmenu/styled.js.map +0 -7
  341. package/dist/esm/outOfTheBox/ItemTextLabel/index.js +0 -40
  342. package/dist/esm/outOfTheBox/ItemTextLabel/index.js.map +0 -7
  343. package/dist/esm/outOfTheBox/ItemTextLabel/styled.js +0 -14
  344. package/dist/esm/outOfTheBox/ItemTextLabel/styled.js.map +0 -7
  345. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js +0 -137
  346. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js.map +0 -7
  347. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/styled.js +0 -20
  348. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/styled.js.map +0 -7
  349. package/dist/esm/outOfTheBox/ItemWithDate/index.js +0 -62
  350. package/dist/esm/outOfTheBox/ItemWithDate/index.js.map +0 -7
  351. package/dist/esm/outOfTheBox/ItemWithDate/styled.js +0 -20
  352. package/dist/esm/outOfTheBox/ItemWithDate/styled.js.map +0 -7
  353. package/dist/esm/outOfTheBox/index.js +0 -48
  354. package/dist/esm/outOfTheBox/index.js.map +0 -7
  355. package/dist/esm/parts/LeftNavContent/index.js +0 -67
  356. package/dist/esm/parts/LeftNavContent/index.js.map +0 -7
  357. package/dist/esm/parts/LeftNavContent/styled.js +0 -84
  358. package/dist/esm/parts/LeftNavContent/styled.js.map +0 -7
  359. package/dist/esm/parts/LeftNavContentWithScrollbar/index.js +0 -72
  360. package/dist/esm/parts/LeftNavContentWithScrollbar/index.js.map +0 -7
  361. package/dist/esm/parts/LeftNavFooterItem/index.js +0 -103
  362. package/dist/esm/parts/LeftNavFooterItem/index.js.map +0 -7
  363. package/dist/esm/parts/LeftNavFooterItem/styled.js +0 -65
  364. package/dist/esm/parts/LeftNavFooterItem/styled.js.map +0 -7
  365. package/dist/esm/parts/LeftNavLoading/index.js +0 -23
  366. package/dist/esm/parts/LeftNavLoading/index.js.map +0 -7
  367. package/dist/esm/parts/OutOfTheBoxMapItem.js +0 -26
  368. package/dist/esm/parts/OutOfTheBoxMapItem.js.map +0 -7
  369. package/dist/esm/prop-types.js +0 -37
  370. package/dist/esm/prop-types.js.map +0 -7
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+
3
+ const useLeftNavSmoothExpand = (props, smoothExpandOpts) => {
4
+ const {
5
+ expanded
6
+ } = props;
7
+ const {
8
+ expandedForAnimation,
9
+ timeoutRef,
10
+ setExpandedForAnimation
11
+ } = smoothExpandOpts;
12
+ React.useEffect(() => {
13
+ // If expanded changes, we need to smoothly transition to the non-expanded state
14
+ // so we need to wait for 350ms
15
+ if (!expanded && expandedForAnimation) {
16
+ if (timeoutRef.current) clearTimeout(timeoutRef.current);
17
+ timeoutRef.current = setTimeout(() => setExpandedForAnimation(false), 350);
18
+ } else if (expanded) setExpandedForAnimation(true); // eslint-disable-next-line react-hooks/exhaustive-deps
19
+
20
+ }, [expanded]);
21
+ React.useEffect(() => () => {
22
+ if (timeoutRef.current) clearTimeout(timeoutRef.current);
23
+ }, [timeoutRef]);
24
+ };
25
+
26
+ export { useLeftNavSmoothExpand as default, useLeftNavSmoothExpand };
@@ -0,0 +1,19 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
+ import 'react';
8
+ import { ChevronSmallRight } from '@elliemae/ds-icons';
9
+ import { jsx } from 'react/jsx-runtime';
10
+
11
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
+
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+ const ChevronItem = props => /*#__PURE__*/jsx(ChevronSmallRight, _objectSpread({
15
+ size: "m",
16
+ color: ['brand-primary', 800]
17
+ }, props));
18
+
19
+ export { ChevronItem, ChevronItem as default };
@@ -0,0 +1,27 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
+ import 'react';
8
+ import styled from 'styled-components';
9
+ import { jsx } from 'react/jsx-runtime';
10
+
11
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
+
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+
15
+ const AugmentedIcon = Icon => styled(Icon).withConfig({
16
+ componentId: "sc-1eek2uh-0"
17
+ })(["cursor:pointer;outline:0;:focus,:active{outline:1px solid #1e79c2;}"]);
18
+
19
+ const Icon = IconComponent => props => {
20
+ const StyledComponent = AugmentedIcon(IconComponent);
21
+ return /*#__PURE__*/jsx(StyledComponent, _objectSpread({
22
+ color: ['brand-primary', 800],
23
+ tabIndex: 0
24
+ }, props));
25
+ };
26
+
27
+ export { Icon };
@@ -0,0 +1,119 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import { useContext, useCallback, useMemo } from 'react';
3
+ import Grid from '@elliemae/ds-grid';
4
+ import { StyledItemWrapper, StyledItem } from './styled.js';
5
+ import { LeftNavContext } from '../../LeftNavigationContext.js';
6
+ import { usePropsWithDefaults } from './usePropsWithDefaults.js';
7
+ import { useKeyboardNavigation } from '../../hooks/useKeyboardNavigation.js';
8
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
9
+
10
+ const ItemRenderer = props => {
11
+ const propsWithDefault = usePropsWithDefaults(props);
12
+ const {
13
+ item,
14
+ item: {
15
+ dsId,
16
+ itemOpts: {
17
+ selectable,
18
+ focuseable,
19
+ indent,
20
+ ariaLabel,
21
+ ariaRole,
22
+ ariaLive,
23
+ ariaExpanded,
24
+ ariaDescribedBy
25
+ },
26
+ CollapsedComponent
27
+ },
28
+ subitems,
29
+ minHeight,
30
+ paddingTop,
31
+ onClick,
32
+ shadowStyle,
33
+ hasBorderBottom,
34
+ borderBottomMr,
35
+ children
36
+ } = propsWithDefault;
37
+ const ctx = useContext(LeftNavContext);
38
+ const {
39
+ leftNavProps: {
40
+ onItemClick,
41
+ openedItem
42
+ },
43
+ expandedForAnimation,
44
+ selectedParent,
45
+ selectedItem,
46
+ setSelectedItem,
47
+ setFocusedItem,
48
+ visibleItemsRefs
49
+ } = ctx;
50
+ const opened = dsId === openedItem;
51
+ const handleOnClick = useCallback(e => {
52
+ if (onClick) onClick(); // used by uncontrolled drilldowns
53
+
54
+ onItemClick(item, e);
55
+ if (selectable) setSelectedItem(item.dsId);
56
+ }, [onItemClick, item, setSelectedItem, selectable, onClick]);
57
+ const handleFocus = useCallback(() => {
58
+ if (focuseable) setFocusedItem(dsId);
59
+ }, [dsId, setFocusedItem, focuseable]);
60
+ const onKeyDown = useKeyboardNavigation({
61
+ item,
62
+ onClick: handleOnClick
63
+ });
64
+ const cols = useMemo(() => expandedForAnimation ? ['auto', '1fr', 'auto'] : ['38px'], [expandedForAnimation]);
65
+ const isSelected = useMemo(() => selectedItem === dsId, [selectedItem, dsId]);
66
+
67
+ if (!expandedForAnimation && !CollapsedComponent) {
68
+ return null;
69
+ }
70
+
71
+ return /*#__PURE__*/jsxs(Fragment, {
72
+ children: [/*#__PURE__*/_jsx(StyledItemWrapper, {
73
+ shadowStyle: shadowStyle(opened, item.type),
74
+ "data-testid": "leftnav-item-wrapper"
75
+ }, void 0, /*#__PURE__*/jsx(StyledItem, {
76
+ ref: visibleItemsRefs.current[dsId],
77
+ pt: paddingTop,
78
+ pl: indent === undefined ? 'xxxs' : "".concat(indent, "px"),
79
+ minHeight: minHeight,
80
+ shadowStyle: shadowStyle(opened, item.type),
81
+ alignItems: "flex-start",
82
+ cols: cols,
83
+ onClick: !opened ? handleOnClick : () => null,
84
+ onKeyDown: onKeyDown,
85
+ selectable: selectable,
86
+ selected: isSelected,
87
+ selectedParent: selectedParent === dsId,
88
+ opened: opened,
89
+ onFocus: handleFocus,
90
+ "data-testid": "leftnav-item-container",
91
+ tabIndex: focuseable ? 0 : -1,
92
+ "aria-describedby": ariaDescribedBy,
93
+ "aria-expanded": ariaExpanded,
94
+ role: ariaRole,
95
+ "data-selected": isSelected,
96
+ "data-selectedparent": selectedParent === dsId,
97
+ "aria-label": ariaLabel,
98
+ "aria-hidden": !focuseable,
99
+ "aria-live": ariaLive,
100
+ children: !expandedForAnimation ? /*#__PURE__*/_jsx(Grid, {
101
+ "data-testid": "leftnav-leftcomponent",
102
+ justifyContent: "center"
103
+ }, void 0, /*#__PURE__*/_jsx(CollapsedComponent, {
104
+ item: item,
105
+ ctx: ctx
106
+ })) : children
107
+ }), hasBorderBottom && /*#__PURE__*/_jsx("div", {
108
+ style: {
109
+ marginLeft: opened ? '16px' : '0px',
110
+ marginRight: borderBottomMr,
111
+ height: '1px',
112
+ width: "calc(100% - ".concat(borderBottomMr, " - ").concat(opened ? '16px' : '0px', ")"),
113
+ backgroundColor: '#E0E3E8'
114
+ }
115
+ })), subitems]
116
+ });
117
+ };
118
+
119
+ export { ItemRenderer };
@@ -0,0 +1,47 @@
1
+ import Grid from '@elliemae/ds-grid';
2
+ import styled from 'styled-components';
3
+
4
+ /* eslint-disable indent */
5
+ const borderOutside = function (color) {
6
+ let weight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
7
+ return "&:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: ".concat(weight, "px solid ").concat(color, ";\n pointer-events: none;\n}");
8
+ };
9
+ const StyledItemWrapper = /*#__PURE__*/styled(Grid).withConfig({
10
+ componentId: "sc-11wzgfh-0"
11
+ })(["position:relative;", ""], props => props.shadowStyle(props.theme));
12
+
13
+ const getItemBackground = _ref => {
14
+ let {
15
+ selectable,
16
+ opened,
17
+ selected,
18
+ theme
19
+ } = _ref;
20
+ if (!selectable) return 'white';
21
+ if (selected && !opened) return theme.colors.brand[200];
22
+ return theme.colors.neutral['000'];
23
+ };
24
+
25
+ const getItemHoverBackground = _ref2 => {
26
+ let {
27
+ selectable,
28
+ opened,
29
+ selected,
30
+ theme
31
+ } = _ref2;
32
+ if (!selectable) return 'white';
33
+ if (selected && !opened) return theme.colors.brand[200];
34
+ return theme.colors.brand['200'];
35
+ };
36
+
37
+ const StyledItem = /*#__PURE__*/styled(Grid).withConfig({
38
+ componentId: "sc-11wzgfh-1"
39
+ })(["cursor:", ";min-height:", ";background:", ";", ":hover{background:", ";}:active{background:", ";}", ";outline:none;", ""], props => props.selectable && !props.opened ? 'pointer' : 'auto', props => props.minHeight, getItemBackground, props => props.selected && !props.opened ? borderOutside(props.theme.colors.brand[500], 1) : '', getItemHoverBackground, _ref3 => {
40
+ let {
41
+ selectable,
42
+ theme
43
+ } = _ref3;
44
+ return selectable ? theme.colors.brand[200] : 'white';
45
+ }, props => props.shadowStyle(props.theme), props => props.tabIndex !== -1 ? ":focus {\n ".concat(borderOutside(props.theme.colors.brand[700]), "\n }") : '');
46
+
47
+ export { StyledItem, StyledItemWrapper, borderOutside };
@@ -0,0 +1,49 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
+ import { useMemo } from 'react';
8
+
9
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
+
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12
+ const itemDefaultProps = {
13
+ label: '',
14
+ labelOverflow: 'truncate',
15
+ selectable: true,
16
+ focuseable: true,
17
+ openable: false,
18
+ closable: false,
19
+ ariaLabel: '',
20
+ ariaRole: 'menuitem',
21
+ ariaLive: 'off',
22
+ ariaExpanded: undefined,
23
+ ariaDescribedBy: undefined
24
+ };
25
+ const itemWithoutShadows = ['ds-left-nav-item-header', 'ds-left-nav-item-link', 'ds-left-nav-item-submenu']; // Make use Item props with defaults
26
+
27
+ const usePropsWithDefaults = props => {
28
+ const propsWithDefault = useMemo(() => {
29
+ const itemWithDefaults = _objectSpread(_objectSpread({
30
+ CollapsedComponent: () => null
31
+ }, props.item), {}, {
32
+ itemOpts: _objectSpread(_objectSpread({}, itemDefaultProps), props.item.itemOpts)
33
+ });
34
+
35
+ return _objectSpread(_objectSpread({
36
+ minHeight: '48px',
37
+ paddingTop: '12px',
38
+ subitems: [],
39
+ shadowStyle: (opened, type) => theme => "box-shadow: ".concat(opened || !itemWithoutShadows.includes(type) ? 'inset 4px 0 0 0 #52A6EC' : 'inset 4px 0 0 0 white'),
40
+ hasBorderBottom: false,
41
+ borderBottomMr: '0px'
42
+ }, props), {}, {
43
+ item: itemWithDefaults
44
+ });
45
+ }, [props]);
46
+ return propsWithDefault;
47
+ };
48
+
49
+ export { usePropsWithDefaults };
@@ -0,0 +1,51 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import 'react';
3
+ import { Notifications as Notifications$1, ExceptionsSmallFill, AlertsSmallFill, MessagesSmallFill } from '@elliemae/ds-icons';
4
+ import styled from 'styled-components';
5
+ import Grid from '@elliemae/ds-grid';
6
+
7
+ const StyledIcon = /*#__PURE__*/styled.div.withConfig({
8
+ componentId: "sc-hasbsd-0"
9
+ })(["display:flex;flex-direction:column;align-items:center;"]);
10
+ const Notifications = _ref => {
11
+ let {
12
+ exceptions = false,
13
+ alerts = false,
14
+ messages = false
15
+ } = _ref;
16
+ return /*#__PURE__*/_jsx(StyledIcon, {}, void 0, /*#__PURE__*/_jsx(Notifications$1, {
17
+ size: "m",
18
+ color: ['brand-primary', 800],
19
+ "data-testid": "left-nav-notifications-icon"
20
+ }), (exceptions || alerts || messages) && /*#__PURE__*/_jsx(Grid, {
21
+ cols: ['1fr', '1fr', '1fr'],
22
+ gutter: "xxxs",
23
+ mt: "2px"
24
+ }, void 0, /*#__PURE__*/_jsx(Grid, {
25
+ width: "6px",
26
+ height: "6px",
27
+ "data-testid": "left-nav-exceptions-icon"
28
+ }, void 0, exceptions && /*#__PURE__*/_jsx(ExceptionsSmallFill, {
29
+ width: "6px",
30
+ height: "6px",
31
+ color: ['warning', 900]
32
+ })), /*#__PURE__*/_jsx(Grid, {
33
+ width: "6px",
34
+ height: "6px",
35
+ "data-testid": "left-nav-alerts-icon"
36
+ }, void 0, alerts && /*#__PURE__*/_jsx(AlertsSmallFill, {
37
+ width: "6px",
38
+ height: "6px",
39
+ color: ['danger', 900]
40
+ })), /*#__PURE__*/_jsx(Grid, {
41
+ width: "6px",
42
+ height: "6px",
43
+ "data-testid": "left-nav-messages-icon"
44
+ }, void 0, messages && /*#__PURE__*/_jsx(MessagesSmallFill, {
45
+ width: "6px",
46
+ height: "6px",
47
+ color: ['success', 900]
48
+ }))));
49
+ };
50
+
51
+ export { Notifications, Notifications as default };
@@ -0,0 +1,23 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
+ import 'react';
8
+ import styled from 'styled-components';
9
+ import { OpenWindow as OpenWindow$1 } from '@elliemae/ds-icons';
10
+ import { jsx } from 'react/jsx-runtime';
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+ const StyledOpenWindow = /*#__PURE__*/styled(OpenWindow$1).withConfig({
16
+ componentId: "sc-g53ios-0"
17
+ })(["cursor:pointer;:focus{outline:1px solid ", ";}"], props => props.theme.colors.brand[800]);
18
+ const OpenWindow = props => /*#__PURE__*/jsx(StyledOpenWindow, _objectSpread({
19
+ size: "s",
20
+ color: ['brand-primary', 800]
21
+ }, props));
22
+
23
+ export { OpenWindow, OpenWindow as default };
@@ -0,0 +1,21 @@
1
+ const LABEL_OVERFLOW = {
2
+ WRAP: 'wrap',
3
+ WRAP_ALL: 'wrapAll',
4
+ TRUNCATE: 'truncate'
5
+ };
6
+ const ITEM_TYPES = {
7
+ LEFT_NAV_ITEM_HEADER: 'ds-left-nav-item-header',
8
+ LEFT_NAV_ITEM_LINK: 'ds-left-nav-item-link',
9
+ LEFT_NAV_ITEM_SUBMENU: 'ds-left-nav-item-submenu',
10
+ LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN: 'ds-left-nav-item-controlled-drilldown',
11
+ LEFT_NAV_ITEM_UNCONTROLLED_DRILLDOWN: 'ds-left-nav-item-uncontrolled-drilldown',
12
+ LEFT_NAV_ITEM_SECTION: 'ds-left-nav-item-section',
13
+ LEFT_NAV_ITEM_SEPARATOR: 'ds-left-nav-item-separator',
14
+ LEFT_NAV_ITEM_TEXT_LABEL: 'ds-left-nav-item-text-label',
15
+ LEFT_NAV_ITEM_WITH_DATE: 'ds-left-nav-item-with-date'
16
+ };
17
+ const FOOTER_DS_ID = 'ds-left-nav-__internal__-footer';
18
+ const FOOTER_MENU_CLOSE_DS_ID = 'ds-left-nav-__internal__-footer-menu-close';
19
+ const CHEVRON_BACK_DS_ID = 'ds-left-nav-__internal__-chevron-back';
20
+
21
+ export { CHEVRON_BACK_DS_ID, FOOTER_DS_ID, FOOTER_MENU_CLOSE_DS_ID, ITEM_TYPES, LABEL_OVERFLOW };
@@ -0,0 +1,6 @@
1
+ export { CHEVRON_BACK_DS_ID, FOOTER_DS_ID, FOOTER_MENU_CLOSE_DS_ID, ITEM_TYPES, LABEL_OVERFLOW } from './constants.js';
2
+ export { ItemRenderer } from './ItemRenderer/index.js';
3
+ export { ChevronItem } from './ChevronItem/index.js';
4
+ export { Notifications } from './Notifications/index.js';
5
+ export { OpenWindow } from './OpenWindowItem/index.js';
6
+ export { Icon } from './Icon/index.js';
@@ -0,0 +1,3 @@
1
+ export { useOpenableOnClickHandler } from './useOpenableOnClickHandler.js';
2
+ export { useExpandableOnClickHandler } from './useExpandableOnClickHandler.js';
3
+ export { useKeyboardNavigation } from './useKeyboardNavigation.js';
@@ -0,0 +1,31 @@
1
+ import { useContext, useCallback } from 'react';
2
+ import { LeftNavContext } from '../LeftNavigationContext.js';
3
+
4
+ const useExpandableOnClickHandler = _ref => {
5
+ let {
6
+ id,
7
+ onExpand,
8
+ onOpen,
9
+ selectable = true
10
+ } = _ref;
11
+ const {
12
+ leftNavProps: {
13
+ expanded
14
+ },
15
+ setSelectedItem
16
+ } = useContext(LeftNavContext);
17
+ const handleOnExpand = useCallback(e => {
18
+ onExpand(e);
19
+ if (selectable) setSelectedItem(id);
20
+ }, [id, onExpand, setSelectedItem, selectable]);
21
+ const handleOnOpen = useCallback(e => {
22
+ onOpen(e);
23
+ if (selectable) setSelectedItem(id);
24
+ }, [id, onOpen, setSelectedItem, selectable]);
25
+ const handleOnClick = useCallback(e => {
26
+ if (!expanded) handleOnExpand(e);else handleOnOpen(e);
27
+ }, [expanded, handleOnExpand, handleOnOpen]);
28
+ return handleOnClick;
29
+ };
30
+
31
+ export { useExpandableOnClickHandler };
@@ -1,7 +1,8 @@
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";
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 */
5
6
  const KEY_CODES = {
6
7
  TAB: 9,
7
8
  ENTER: 13,
@@ -13,29 +14,52 @@ const KEY_CODES = {
13
14
  END: 35,
14
15
  HOME: 36
15
16
  };
17
+
16
18
  const nextIndex = (index, length) => (index + 1) % length;
19
+
17
20
  const prevIndex = (index, length) => (index - 1 + length) % length;
18
- const useKeyboardNavigation = ({ item, onClick }) => {
21
+
22
+ const useKeyboardNavigation = _ref => {
23
+ let {
24
+ item,
25
+ onClick
26
+ } = _ref;
19
27
  const {
20
28
  dsId,
21
- itemOpts: { selectable, openable, closable }
29
+ itemOpts: {
30
+ selectable,
31
+ openable,
32
+ closable
33
+ }
22
34
  } = item;
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) => {
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 => {
27
46
  setFocusedItem(nextDsId);
28
47
  setSelectedItem(nextDsId);
29
48
  }, [setFocusedItem, setSelectedItem]);
30
49
  useLayoutEffect(() => {
31
- if (dsId === focusedItem)
32
- visibleItemsRefs.current[dsId]?.current?.focus();
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();
33
53
  }, [dsId, focusedItem, visibleItemsRefs]);
34
- const onKeyDown = useCallback((e) => {
35
- const { keyCode } = e;
54
+ const onKeyDown = useCallback(e => {
55
+ const {
56
+ keyCode
57
+ } = e; // Prevent default behaviour when not tab
58
+
36
59
  if (keyCode !== KEY_CODES.TAB) {
37
60
  e.preventDefault();
38
61
  }
62
+
39
63
  if (keyCode === KEY_CODES.ENTER || keyCode === KEY_CODES.SPACE) {
40
64
  if (selectable) {
41
65
  onClick(e);
@@ -48,42 +72,35 @@ const useKeyboardNavigation = ({ item, onClick }) => {
48
72
  setFocusedItem(dsId);
49
73
  }
50
74
  }
75
+
51
76
  if (openable && keyCode === KEY_CODES.RIGHT_ARROW) {
52
77
  onClick(e);
53
78
  }
79
+
54
80
  if (closable && keyCode === KEY_CODES.LEFT_ARROW) {
55
81
  onClick(e);
56
82
  setFocusedItem(dsId);
57
83
  }
84
+
58
85
  if (keyCode === KEY_CODES.DOWN_ARROW) {
59
86
  const nextDsId = visibleItems[nextIndex(currentIndex, visibleItems.length)];
60
87
  setFocusedItem(nextDsId);
61
88
  }
89
+
62
90
  if (keyCode === KEY_CODES.UP_ARROW) {
63
91
  const prevDsId = visibleItems[prevIndex(currentIndex, visibleItems.length)];
64
92
  setFocusedItem(prevDsId);
65
93
  }
94
+
66
95
  if (keyCode === KEY_CODES.HOME) {
67
96
  setFocusedItem(visibleItems[0]);
68
97
  }
98
+
69
99
  if (keyCode === KEY_CODES.END) {
70
100
  setFocusedItem(visibleItems[visibleItems.length - 1]);
71
101
  }
72
- }, [
73
- openable,
74
- closable,
75
- selectable,
76
- focusedItem,
77
- onClick,
78
- focusAndSelect,
79
- dsId,
80
- setFocusedItem,
81
- visibleItems,
82
- currentIndex
83
- ]);
102
+ }, [openable, closable, selectable, focusedItem, onClick, focusAndSelect, dsId, setFocusedItem, visibleItems, currentIndex]);
84
103
  return onKeyDown;
85
104
  };
86
- export {
87
- useKeyboardNavigation
88
- };
89
- //# sourceMappingURL=useKeyboardNavigation.js.map
105
+
106
+ export { useKeyboardNavigation };
@@ -0,0 +1,36 @@
1
+ import { useContext, useCallback } from 'react';
2
+ import { LeftNavContext } from '../LeftNavigationContext.js';
3
+
4
+ const useOpenableOnClickHandler = _ref => {
5
+ let {
6
+ id,
7
+ opened,
8
+ onExpand,
9
+ onOpen,
10
+ onClose
11
+ } = _ref;
12
+ const {
13
+ leftNavProps: {
14
+ expanded
15
+ },
16
+ setSelectedItem
17
+ } = useContext(LeftNavContext);
18
+ const handleOnExpand = useCallback(e => {
19
+ onExpand(e);
20
+ setSelectedItem(id);
21
+ }, [id, onExpand, setSelectedItem]);
22
+ const handleOnOpen = useCallback(e => {
23
+ onOpen(e);
24
+ setSelectedItem(id);
25
+ }, [id, onOpen, setSelectedItem]);
26
+ const handleOnClose = useCallback(e => {
27
+ onClose(e);
28
+ setSelectedItem(id);
29
+ }, [id, onClose, setSelectedItem]);
30
+ const handleOnClick = useCallback(e => {
31
+ if (!expanded) handleOnExpand(e);else if (!opened) handleOnOpen(e);else handleOnClose(e);
32
+ }, [expanded, opened, handleOnExpand, handleOnOpen, handleOnClose]);
33
+ return handleOnClick;
34
+ };
35
+
36
+ export { useOpenableOnClickHandler };
@@ -0,0 +1,35 @@
1
+ import 'core-js/modules/esnext.async-iterator.some.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.some.js';
4
+ import { useEffect } from 'react';
5
+ import { ITEM_TYPES } from '../exported-related/constants.js';
6
+
7
+ const {
8
+ LEFT_NAV_ITEM_SEPARATOR,
9
+ LEFT_NAV_ITEM_SECTION
10
+ } = ITEM_TYPES;
11
+
12
+ const isSelectableOutOfTheBox = elem => typeof elem.type === 'string' && elem.type !== LEFT_NAV_ITEM_SEPARATOR && elem.type !== LEFT_NAV_ITEM_SECTION;
13
+
14
+ const isSelectableCustom = elem => elem.itemOpts.selectable;
15
+
16
+ const isItemInsideTheTree = (item, itemID) => {
17
+ var _item$itemOpts, _item$itemOpts$items;
18
+
19
+ return item.dsId === itemID || !!(item !== null && item !== void 0 && (_item$itemOpts = item.itemOpts) !== null && _item$itemOpts !== void 0 && (_item$itemOpts$items = _item$itemOpts.items) !== null && _item$itemOpts$items !== void 0 && _item$itemOpts$items.some(it => isItemInsideTheTree(it, itemID)));
20
+ };
21
+
22
+ const useSelectFirstBodyItem = (items, openedItem, selectedItem, setSelectedItem, disableDefaultSelection) => {
23
+ useEffect(() => {
24
+ if (!disableDefaultSelection && items && items.length && openedItem) {
25
+ var _items$index$dsId;
26
+
27
+ const index = items.findIndex(elem => isSelectableOutOfTheBox(elem) || isSelectableCustom(elem));
28
+ const isItemInside = items.some(it => isItemInsideTheTree(it, selectedItem));
29
+ if (isItemInside) setSelectedItem(selectedItem);else if (index !== -1) setSelectedItem((_items$index$dsId = items[index].dsId) !== null && _items$index$dsId !== void 0 ? _items$index$dsId : '');
30
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
31
+
32
+ }, [openedItem, setSelectedItem, disableDefaultSelection]);
33
+ };
34
+
35
+ export { useSelectFirstBodyItem };
package/esm/index.d.js ADDED
@@ -0,0 +1 @@
1
+
package/esm/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export { LeftNavItemOptionsSchema, LeftNavItemPropsSchema } from './prop-types.js';
2
+ export { LeftNavigation, LeftNavigationWithSchema, LeftNavigation as default } from './LeftNavigation.js';
3
+ export { CHEVRON_BACK_DS_ID, FOOTER_DS_ID, FOOTER_MENU_CLOSE_DS_ID, ITEM_TYPES, LABEL_OVERFLOW } from './exported-related/constants.js';
4
+ export { ItemRenderer } from './exported-related/ItemRenderer/index.js';
5
+ export { ChevronItem } from './exported-related/ChevronItem/index.js';
6
+ export { Notifications } from './exported-related/Notifications/index.js';
7
+ export { OpenWindow } from './exported-related/OpenWindowItem/index.js';
8
+ export { Icon } from './exported-related/Icon/index.js';