@redsift/design-system 11.5.0 → 11.6.0-muiv5-alpha.1

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 (710) hide show
  1. package/_virtual/_rollupPluginBabelHelpers.js +133 -0
  2. package/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  3. package/_virtual/jsx-runtime.js +4 -0
  4. package/_virtual/jsx-runtime.js.map +1 -0
  5. package/_virtual/react-jsx-runtime.development.js +4 -0
  6. package/_virtual/react-jsx-runtime.development.js.map +1 -0
  7. package/_virtual/react-jsx-runtime.production.min.js +4 -0
  8. package/_virtual/react-jsx-runtime.production.min.js.map +1 -0
  9. package/components/alert/Alert.d.ts +9 -0
  10. package/components/alert/Alert.js +117 -0
  11. package/components/alert/Alert.js.map +1 -0
  12. package/components/alert/intl/en-US.json.js +7 -0
  13. package/components/alert/intl/en-US.json.js.map +1 -0
  14. package/components/alert/intl/fr-FR.json.js +7 -0
  15. package/components/alert/intl/fr-FR.json.js.map +1 -0
  16. package/components/alert/intl/index.js +10 -0
  17. package/components/alert/intl/index.js.map +1 -0
  18. package/components/alert/styles.js +54 -0
  19. package/components/alert/styles.js.map +1 -0
  20. package/components/alert/types.d.ts +49 -0
  21. package/components/alert/types.js +20 -0
  22. package/components/alert/types.js.map +1 -0
  23. package/components/app-bar/AppBar.d.ts +9 -0
  24. package/components/app-bar/AppBar.js +95 -0
  25. package/components/app-bar/AppBar.js.map +1 -0
  26. package/components/app-bar/intl/en-US.json.js +9 -0
  27. package/components/app-bar/intl/en-US.json.js.map +1 -0
  28. package/components/app-bar/intl/fr-FR.json.js +9 -0
  29. package/components/app-bar/intl/fr-FR.json.js.map +1 -0
  30. package/components/app-bar/intl/index.js +10 -0
  31. package/components/app-bar/intl/index.js.map +1 -0
  32. package/components/app-bar/styles.js +139 -0
  33. package/components/app-bar/styles.js.map +1 -0
  34. package/components/app-bar/types.d.ts +31 -0
  35. package/components/app-container/AppContainer.d.ts +11 -0
  36. package/components/app-container/AppContainer.js +117 -0
  37. package/components/app-container/AppContainer.js.map +1 -0
  38. package/components/app-container/context.d.ts +6 -0
  39. package/components/app-container/context.js +6 -0
  40. package/components/app-container/context.js.map +1 -0
  41. package/components/app-container/styles.js +30 -0
  42. package/components/app-container/styles.js.map +1 -0
  43. package/components/app-container/types.d.ts +51 -0
  44. package/components/app-content/AppContent.d.ts +9 -0
  45. package/components/app-content/AppContent.js +42 -0
  46. package/components/app-content/AppContent.js.map +1 -0
  47. package/components/app-content/styles.js +54 -0
  48. package/components/app-content/styles.js.map +1 -0
  49. package/components/app-content/types.d.ts +19 -0
  50. package/components/app-side-panel/AppSidePanel.d.ts +9 -0
  51. package/components/app-side-panel/AppSidePanel.js +86 -0
  52. package/components/app-side-panel/AppSidePanel.js.map +1 -0
  53. package/components/app-side-panel/intl/en-US.json.js +9 -0
  54. package/components/app-side-panel/intl/en-US.json.js.map +1 -0
  55. package/components/app-side-panel/intl/fr-FR.json.js +9 -0
  56. package/components/app-side-panel/intl/fr-FR.json.js.map +1 -0
  57. package/components/app-side-panel/intl/index.js +10 -0
  58. package/components/app-side-panel/intl/index.js.map +1 -0
  59. package/components/app-side-panel/styles.js +183 -0
  60. package/components/app-side-panel/styles.js.map +1 -0
  61. package/components/app-side-panel/types.d.ts +39 -0
  62. package/components/app-side-panel/types.js +15 -0
  63. package/components/app-side-panel/types.js.map +1 -0
  64. package/components/app-side-panel/useAppSidePanel.d.ts +6 -0
  65. package/components/app-side-panel/useAppSidePanel.js +23 -0
  66. package/components/app-side-panel/useAppSidePanel.js.map +1 -0
  67. package/components/badge/Badge.d.ts +9 -0
  68. package/components/badge/Badge.js +44 -0
  69. package/components/badge/Badge.js.map +1 -0
  70. package/components/badge/styles.js +93 -0
  71. package/components/badge/styles.js.map +1 -0
  72. package/components/badge/types.d.ts +37 -0
  73. package/components/badge/types.js +14 -0
  74. package/components/badge/types.js.map +1 -0
  75. package/components/breadcrumb-item/BreadcrumbItem.d.ts +9 -0
  76. package/components/breadcrumb-item/BreadcrumbItem.js +47 -0
  77. package/components/breadcrumb-item/BreadcrumbItem.js.map +1 -0
  78. package/components/breadcrumb-item/styles.js +48 -0
  79. package/components/breadcrumb-item/styles.js.map +1 -0
  80. package/components/breadcrumb-item/types.d.ts +23 -0
  81. package/components/breadcrumbs/Breadcrumbs.d.ts +13 -0
  82. package/components/breadcrumbs/Breadcrumbs.js +61 -0
  83. package/components/breadcrumbs/Breadcrumbs.js.map +1 -0
  84. package/components/breadcrumbs/styles.js +38 -0
  85. package/components/breadcrumbs/styles.js.map +1 -0
  86. package/components/breadcrumbs/types.d.ts +19 -0
  87. package/components/button/Button.d.ts +13 -0
  88. package/components/button/Button.js +92 -0
  89. package/components/button/Button.js.map +1 -0
  90. package/components/button/styles.d.ts +20 -0
  91. package/components/button/styles.js +219 -0
  92. package/components/button/styles.js.map +1 -0
  93. package/components/button/types.d.ts +67 -0
  94. package/components/button/types.js +19 -0
  95. package/components/button/types.js.map +1 -0
  96. package/components/button-group/ButtonGroup.d.ts +9 -0
  97. package/components/button-group/ButtonGroup.js +67 -0
  98. package/components/button-group/ButtonGroup.js.map +1 -0
  99. package/components/button-group/styles.js +103 -0
  100. package/components/button-group/styles.js.map +1 -0
  101. package/components/button-group/types.d.ts +36 -0
  102. package/components/button-group/types.js +19 -0
  103. package/components/button-group/types.js.map +1 -0
  104. package/components/button-link/ButtonLink.d.ts +13 -0
  105. package/components/button-link/ButtonLink.js +85 -0
  106. package/components/button-link/ButtonLink.js.map +1 -0
  107. package/components/button-link/types.d.ts +18 -0
  108. package/components/card/Card.d.ts +13 -0
  109. package/components/card/Card.js +81 -0
  110. package/components/card/Card.js.map +1 -0
  111. package/components/card/intl/en-US.json.js +9 -0
  112. package/components/card/intl/en-US.json.js.map +1 -0
  113. package/components/card/intl/fr-FR.json.js +9 -0
  114. package/components/card/intl/fr-FR.json.js.map +1 -0
  115. package/components/card/intl/index.js +10 -0
  116. package/components/card/intl/index.js.map +1 -0
  117. package/components/card/styles.js +63 -0
  118. package/components/card/styles.js.map +1 -0
  119. package/components/card/types.d.ts +25 -0
  120. package/components/card-actions/CardActions.d.ts +9 -0
  121. package/components/card-actions/CardActions.js +33 -0
  122. package/components/card-actions/CardActions.js.map +1 -0
  123. package/components/card-actions/styles.js +15 -0
  124. package/components/card-actions/styles.js.map +1 -0
  125. package/components/card-actions/types.d.ts +11 -0
  126. package/components/card-body/CardBody.d.ts +9 -0
  127. package/components/card-body/CardBody.js +28 -0
  128. package/components/card-body/CardBody.js.map +1 -0
  129. package/components/card-body/styles.js +18 -0
  130. package/components/card-body/styles.js.map +1 -0
  131. package/components/card-body/types.d.ts +11 -0
  132. package/components/card-header/CardHeader.d.ts +9 -0
  133. package/components/card-header/CardHeader.js +56 -0
  134. package/components/card-header/CardHeader.js.map +1 -0
  135. package/components/card-header/styles.js +31 -0
  136. package/components/card-header/styles.js.map +1 -0
  137. package/components/card-header/types.d.ts +28 -0
  138. package/components/checkbox/Checkbox.d.ts +11 -0
  139. package/components/checkbox/Checkbox.js +135 -0
  140. package/components/checkbox/Checkbox.js.map +1 -0
  141. package/components/checkbox/styles.js +113 -0
  142. package/components/checkbox/styles.js.map +1 -0
  143. package/components/checkbox/types.d.ts +60 -0
  144. package/components/checkbox-group/CheckboxGroup.d.ts +10 -0
  145. package/components/checkbox-group/CheckboxGroup.js +101 -0
  146. package/components/checkbox-group/CheckboxGroup.js.map +1 -0
  147. package/components/checkbox-group/context.js +6 -0
  148. package/components/checkbox-group/context.js.map +1 -0
  149. package/components/checkbox-group/styles.js +78 -0
  150. package/components/checkbox-group/styles.js.map +1 -0
  151. package/components/checkbox-group/types.d.ts +72 -0
  152. package/components/checkbox-group/types.js +18 -0
  153. package/components/checkbox-group/types.js.map +1 -0
  154. package/components/conditional-wrapper/ConditionalWrapper.d.ts +6 -0
  155. package/components/conditional-wrapper/ConditionalWrapper.js +13 -0
  156. package/components/conditional-wrapper/ConditionalWrapper.js.map +1 -0
  157. package/components/conditional-wrapper/types.d.ts +10 -0
  158. package/components/detailed-card/DetailedCard.d.ts +15 -0
  159. package/components/detailed-card/DetailedCard.js +170 -0
  160. package/components/detailed-card/DetailedCard.js.map +1 -0
  161. package/components/detailed-card/intl/en-US.json.js +7 -0
  162. package/components/detailed-card/intl/en-US.json.js.map +1 -0
  163. package/components/detailed-card/intl/fr-FR.json.js +7 -0
  164. package/components/detailed-card/intl/fr-FR.json.js.map +1 -0
  165. package/components/detailed-card/intl/index.js +10 -0
  166. package/components/detailed-card/intl/index.js.map +1 -0
  167. package/components/detailed-card/styles.js +49 -0
  168. package/components/detailed-card/styles.js.map +1 -0
  169. package/components/detailed-card/types.d.ts +40 -0
  170. package/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.d.ts +9 -0
  171. package/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.js +33 -0
  172. package/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.js.map +1 -0
  173. package/components/detailed-card-collapsible-section-items/styles.js +35 -0
  174. package/components/detailed-card-collapsible-section-items/styles.js.map +1 -0
  175. package/components/detailed-card-collapsible-section-items/types.d.ts +16 -0
  176. package/components/detailed-card-header/DetailedCardHeader.d.ts +9 -0
  177. package/components/detailed-card-header/DetailedCardHeader.js +45 -0
  178. package/components/detailed-card-header/DetailedCardHeader.js.map +1 -0
  179. package/components/detailed-card-header/styles.js +26 -0
  180. package/components/detailed-card-header/styles.js.map +1 -0
  181. package/components/detailed-card-header/types.d.ts +20 -0
  182. package/components/detailed-card-section/DetailedCardSection.d.ts +9 -0
  183. package/components/detailed-card-section/DetailedCardSection.js +90 -0
  184. package/components/detailed-card-section/DetailedCardSection.js.map +1 -0
  185. package/components/detailed-card-section/intl/en-US.json.js +9 -0
  186. package/components/detailed-card-section/intl/en-US.json.js.map +1 -0
  187. package/components/detailed-card-section/intl/fr-FR.json.js +9 -0
  188. package/components/detailed-card-section/intl/fr-FR.json.js.map +1 -0
  189. package/components/detailed-card-section/intl/index.js +10 -0
  190. package/components/detailed-card-section/intl/index.js.map +1 -0
  191. package/components/detailed-card-section/styles.js +69 -0
  192. package/components/detailed-card-section/styles.js.map +1 -0
  193. package/components/detailed-card-section/types.d.ts +27 -0
  194. package/components/detailed-card-section-item/DetailedCardSectionItem.d.ts +9 -0
  195. package/components/detailed-card-section-item/DetailedCardSectionItem.js +64 -0
  196. package/components/detailed-card-section-item/DetailedCardSectionItem.js.map +1 -0
  197. package/components/detailed-card-section-item/styles.js +34 -0
  198. package/components/detailed-card-section-item/styles.js.map +1 -0
  199. package/components/detailed-card-section-item/types.d.ts +35 -0
  200. package/components/flexbox/Flexbox.d.ts +9 -0
  201. package/components/flexbox/Flexbox.js +44 -0
  202. package/components/flexbox/Flexbox.js.map +1 -0
  203. package/components/flexbox/styles.js +54 -0
  204. package/components/flexbox/styles.js.map +1 -0
  205. package/components/flexbox/types.d.ts +24 -0
  206. package/components/focus-within-group/FocusWithinGroup.d.ts +41 -0
  207. package/components/focus-within-group/FocusWithinGroup.js +91 -0
  208. package/components/focus-within-group/FocusWithinGroup.js.map +1 -0
  209. package/components/focus-within-group/context.d.ts +7 -0
  210. package/components/focus-within-group/context.js +21 -0
  211. package/components/focus-within-group/context.js.map +1 -0
  212. package/components/focus-within-group/reducer.d.ts +5 -0
  213. package/components/focus-within-group/reducer.js +419 -0
  214. package/components/focus-within-group/reducer.js.map +1 -0
  215. package/components/focus-within-group/types.d.ts +143 -0
  216. package/components/focus-within-group/types.js +42 -0
  217. package/components/focus-within-group/types.js.map +1 -0
  218. package/components/focus-within-group/useFocusOnList.d.ts +5 -0
  219. package/components/focus-within-group/useFocusOnList.js +44 -0
  220. package/components/focus-within-group/useFocusOnList.js.map +1 -0
  221. package/components/focus-within-group/useFocusOnListItem.d.ts +39 -0
  222. package/components/focus-within-group/useFocusOnListItem.js +148 -0
  223. package/components/focus-within-group/useFocusOnListItem.js.map +1 -0
  224. package/components/gradient-border/index.d.ts +14 -0
  225. package/components/gradient-border/index.js +38 -0
  226. package/components/gradient-border/index.js.map +1 -0
  227. package/components/grid/Grid.d.ts +13 -0
  228. package/components/grid/Grid.js +45 -0
  229. package/components/grid/Grid.js.map +1 -0
  230. package/components/grid/styles.js +55 -0
  231. package/components/grid/styles.js.map +1 -0
  232. package/components/grid/types.d.ts +22 -0
  233. package/components/grid-item/GridItem.d.ts +9 -0
  234. package/components/grid-item/GridItem.js +28 -0
  235. package/components/grid-item/GridItem.js.map +1 -0
  236. package/components/grid-item/styles.js +16 -0
  237. package/components/grid-item/styles.js.map +1 -0
  238. package/components/grid-item/types.d.ts +11 -0
  239. package/components/heading/Heading.d.ts +9 -0
  240. package/components/heading/Heading.js +50 -0
  241. package/components/heading/Heading.js.map +1 -0
  242. package/components/heading/styles.js +67 -0
  243. package/components/heading/styles.js.map +1 -0
  244. package/components/heading/types.d.ts +62 -0
  245. package/components/heading/types.js +26 -0
  246. package/components/heading/types.js.map +1 -0
  247. package/components/icon/Icon.d.ts +10 -0
  248. package/components/icon/Icon.js +116 -0
  249. package/components/icon/Icon.js.map +1 -0
  250. package/components/icon/styles.js +84 -0
  251. package/components/icon/styles.js.map +1 -0
  252. package/components/icon/types.d.ts +57 -0
  253. package/components/icon/types.js +18 -0
  254. package/components/icon/types.js.map +1 -0
  255. package/components/icon-button/IconButton.d.ts +12 -0
  256. package/components/icon-button/IconButton.js +81 -0
  257. package/components/icon-button/IconButton.js.map +1 -0
  258. package/components/icon-button/styles.js +31 -0
  259. package/components/icon-button/styles.js.map +1 -0
  260. package/components/icon-button/types.d.ts +56 -0
  261. package/components/icon-button/types.js +19 -0
  262. package/components/icon-button/types.js.map +1 -0
  263. package/components/icon-button-link/IconButtonLink.d.ts +13 -0
  264. package/components/icon-button-link/IconButtonLink.js +76 -0
  265. package/components/icon-button-link/IconButtonLink.js.map +1 -0
  266. package/components/icon-button-link/types.d.ts +18 -0
  267. package/components/item/Item.d.ts +10 -0
  268. package/components/item/Item.js +225 -0
  269. package/components/item/Item.js.map +1 -0
  270. package/components/item/styles.d.ts +20 -0
  271. package/components/item/styles.js +129 -0
  272. package/components/item/styles.js.map +1 -0
  273. package/components/item/types.d.ts +59 -0
  274. package/components/item/useMenuItem.js +55 -0
  275. package/components/item/useMenuItem.js.map +1 -0
  276. package/components/link/Link.d.ts +14 -0
  277. package/components/link/Link.js +67 -0
  278. package/components/link/Link.js.map +1 -0
  279. package/components/link/styles.d.ts +15 -0
  280. package/components/link/styles.js +145 -0
  281. package/components/link/styles.js.map +1 -0
  282. package/components/link/types.d.ts +40 -0
  283. package/components/link-button/LinkButton.d.ts +13 -0
  284. package/components/link-button/LinkButton.js +66 -0
  285. package/components/link-button/LinkButton.js.map +1 -0
  286. package/components/link-button/types.d.ts +13 -0
  287. package/components/listbox/ActiveDescendantListbox.d.ts +8 -0
  288. package/components/listbox/ActiveDescendantListbox.js +74 -0
  289. package/components/listbox/ActiveDescendantListbox.js.map +1 -0
  290. package/components/listbox/Listbox.d.ts +10 -0
  291. package/components/listbox/Listbox.js +110 -0
  292. package/components/listbox/Listbox.js.map +1 -0
  293. package/components/listbox/RovingTabindexListbox.d.ts +8 -0
  294. package/components/listbox/RovingTabindexListbox.js +30 -0
  295. package/components/listbox/RovingTabindexListbox.js.map +1 -0
  296. package/components/listbox/context.d.ts +7 -0
  297. package/components/listbox/context.js +15 -0
  298. package/components/listbox/context.js.map +1 -0
  299. package/components/listbox/reducer.d.ts +5 -0
  300. package/components/listbox/reducer.js +45 -0
  301. package/components/listbox/reducer.js.map +1 -0
  302. package/components/listbox/styles.js +44 -0
  303. package/components/listbox/styles.js.map +1 -0
  304. package/components/listbox/types.d.ts +101 -0
  305. package/components/listbox/types.js +32 -0
  306. package/components/listbox/types.js.map +1 -0
  307. package/components/listbox/useListboxItem.d.ts +12 -0
  308. package/components/listbox/useListboxItem.js +90 -0
  309. package/components/listbox/useListboxItem.js.map +1 -0
  310. package/components/number/Number.d.ts +9 -0
  311. package/components/number/Number.js +105 -0
  312. package/components/number/Number.js.map +1 -0
  313. package/components/number/styles.js +10 -0
  314. package/components/number/styles.js.map +1 -0
  315. package/components/number/types.d.ts +63 -0
  316. package/components/number-field/NumberField.d.ts +10 -0
  317. package/components/number-field/NumberField.js +216 -0
  318. package/components/number-field/NumberField.js.map +1 -0
  319. package/components/number-field/styles.js +240 -0
  320. package/components/number-field/styles.js.map +1 -0
  321. package/components/number-field/types.d.ts +74 -0
  322. package/components/number-field/types.js +14 -0
  323. package/components/number-field/types.js.map +1 -0
  324. package/components/pill/Pill.d.ts +9 -0
  325. package/components/pill/Pill.js +93 -0
  326. package/components/pill/Pill.js.map +1 -0
  327. package/components/pill/styles.js +305 -0
  328. package/components/pill/styles.js.map +1 -0
  329. package/components/pill/types.d.ts +47 -0
  330. package/components/pill/types.js +15 -0
  331. package/components/pill/types.js.map +1 -0
  332. package/components/progress-bar/ProgressBar.d.ts +9 -0
  333. package/components/progress-bar/ProgressBar.js +35 -0
  334. package/components/progress-bar/ProgressBar.js.map +1 -0
  335. package/components/progress-bar/styles.js +38 -0
  336. package/components/progress-bar/styles.js.map +1 -0
  337. package/components/progress-bar/types.d.ts +20 -0
  338. package/components/radio/Radio.d.ts +11 -0
  339. package/components/radio/Radio.js +128 -0
  340. package/components/radio/Radio.js.map +1 -0
  341. package/components/radio/styles.js +113 -0
  342. package/components/radio/styles.js.map +1 -0
  343. package/components/radio/types.d.ts +58 -0
  344. package/components/radio-group/RadioGroup.d.ts +10 -0
  345. package/components/radio-group/RadioGroup.js +89 -0
  346. package/components/radio-group/RadioGroup.js.map +1 -0
  347. package/components/radio-group/context.js +6 -0
  348. package/components/radio-group/context.js.map +1 -0
  349. package/components/radio-group/styles.js +78 -0
  350. package/components/radio-group/styles.js.map +1 -0
  351. package/components/radio-group/types.d.ts +68 -0
  352. package/components/radio-group/types.js +18 -0
  353. package/components/radio-group/types.js.map +1 -0
  354. package/components/shared/styles.d.ts +17 -0
  355. package/components/shared/styles.js +250 -0
  356. package/components/shared/styles.js.map +1 -0
  357. package/components/shield/Shield.d.ts +9 -0
  358. package/components/shield/Shield.js +136 -0
  359. package/components/shield/Shield.js.map +1 -0
  360. package/components/shield/styles.js +71 -0
  361. package/components/shield/styles.js.map +1 -0
  362. package/components/shield/types.d.ts +52 -0
  363. package/components/shield/types.js +25 -0
  364. package/components/shield/types.js.map +1 -0
  365. package/components/side-navigation-menu/SideNavigationMenu.d.ts +9 -0
  366. package/components/side-navigation-menu/SideNavigationMenu.js +367 -0
  367. package/components/side-navigation-menu/SideNavigationMenu.js.map +1 -0
  368. package/components/side-navigation-menu/context.js +6 -0
  369. package/components/side-navigation-menu/context.js.map +1 -0
  370. package/components/side-navigation-menu/reducer.js +26 -0
  371. package/components/side-navigation-menu/reducer.js.map +1 -0
  372. package/components/side-navigation-menu/styles.js +196 -0
  373. package/components/side-navigation-menu/styles.js.map +1 -0
  374. package/components/side-navigation-menu/types.d.ts +72 -0
  375. package/components/side-navigation-menu/types.js +21 -0
  376. package/components/side-navigation-menu/types.js.map +1 -0
  377. package/components/side-navigation-menu-bar/SideNavigationMenuBar.d.ts +9 -0
  378. package/components/side-navigation-menu-bar/SideNavigationMenuBar.js +217 -0
  379. package/components/side-navigation-menu-bar/SideNavigationMenuBar.js.map +1 -0
  380. package/components/side-navigation-menu-bar/context.js +6 -0
  381. package/components/side-navigation-menu-bar/context.js.map +1 -0
  382. package/components/side-navigation-menu-bar/styles.js +89 -0
  383. package/components/side-navigation-menu-bar/styles.js.map +1 -0
  384. package/components/side-navigation-menu-bar/types.d.ts +65 -0
  385. package/components/side-navigation-menu-bar/types.js +22 -0
  386. package/components/side-navigation-menu-bar/types.js.map +1 -0
  387. package/components/side-navigation-menu-bar/useSideNavigationMenuBar.d.ts +9 -0
  388. package/components/side-navigation-menu-bar/useSideNavigationMenuBar.js +70 -0
  389. package/components/side-navigation-menu-bar/useSideNavigationMenuBar.js.map +1 -0
  390. package/components/side-navigation-menu-item/SideNavigationMenuItem.d.ts +9 -0
  391. package/components/side-navigation-menu-item/SideNavigationMenuItem.js +115 -0
  392. package/components/side-navigation-menu-item/SideNavigationMenuItem.js.map +1 -0
  393. package/components/side-navigation-menu-item/styles.js +174 -0
  394. package/components/side-navigation-menu-item/styles.js.map +1 -0
  395. package/components/side-navigation-menu-item/types.d.ts +51 -0
  396. package/components/skeleton/Skeleton.d.ts +15 -0
  397. package/components/skeleton/Skeleton.js +42 -0
  398. package/components/skeleton/Skeleton.js.map +1 -0
  399. package/components/skeleton/styles.js +84 -0
  400. package/components/skeleton/styles.js.map +1 -0
  401. package/components/skeleton/types.d.ts +18 -0
  402. package/components/skeleton-circle/SkeletonCircle.d.ts +9 -0
  403. package/components/skeleton-circle/SkeletonCircle.js +36 -0
  404. package/components/skeleton-circle/SkeletonCircle.js.map +1 -0
  405. package/components/skeleton-circle/styles.js +26 -0
  406. package/components/skeleton-circle/styles.js.map +1 -0
  407. package/components/skeleton-circle/types.d.ts +12 -0
  408. package/components/skeleton-text/SkeletonText.d.ts +9 -0
  409. package/components/skeleton-text/SkeletonText.js +42 -0
  410. package/components/skeleton-text/SkeletonText.js.map +1 -0
  411. package/components/skeleton-text/styles.js +39 -0
  412. package/components/skeleton-text/styles.js.map +1 -0
  413. package/components/skeleton-text/types.d.ts +36 -0
  414. package/components/skeleton-text/types.js +20 -0
  415. package/components/skeleton-text/types.js.map +1 -0
  416. package/components/spinner/Spinner.d.ts +9 -0
  417. package/components/spinner/Spinner.js +82 -0
  418. package/components/spinner/Spinner.js.map +1 -0
  419. package/components/spinner/images/spinner-grey-l1.svg.js +4 -0
  420. package/components/spinner/images/spinner-grey-l1.svg.js.map +1 -0
  421. package/components/spinner/images/spinner-grey-l2.svg.js +4 -0
  422. package/components/spinner/images/spinner-grey-l2.svg.js.map +1 -0
  423. package/components/spinner/images/spinner-grey-l3.svg.js +4 -0
  424. package/components/spinner/images/spinner-grey-l3.svg.js.map +1 -0
  425. package/components/spinner/images/spinner-primary-n.svg.js +4 -0
  426. package/components/spinner/images/spinner-primary-n.svg.js.map +1 -0
  427. package/components/spinner/intl/en-US.json.js +7 -0
  428. package/components/spinner/intl/en-US.json.js.map +1 -0
  429. package/components/spinner/intl/fr-FR.json.js +7 -0
  430. package/components/spinner/intl/fr-FR.json.js.map +1 -0
  431. package/components/spinner/intl/index.js +10 -0
  432. package/components/spinner/intl/index.js.map +1 -0
  433. package/components/spinner/styles.js +13 -0
  434. package/components/spinner/styles.js.map +1 -0
  435. package/components/spinner/types.d.ts +38 -0
  436. package/components/spinner/types.js +16 -0
  437. package/components/spinner/types.js.map +1 -0
  438. package/components/switch/Switch.d.ts +11 -0
  439. package/components/switch/Switch.js +137 -0
  440. package/components/switch/Switch.js.map +1 -0
  441. package/components/switch/styles.js +187 -0
  442. package/components/switch/styles.js.map +1 -0
  443. package/components/switch/types.d.ts +58 -0
  444. package/components/switch-group/SwitchGroup.d.ts +10 -0
  445. package/components/switch-group/SwitchGroup.js +101 -0
  446. package/components/switch-group/SwitchGroup.js.map +1 -0
  447. package/components/switch-group/context.js +6 -0
  448. package/components/switch-group/context.js.map +1 -0
  449. package/components/switch-group/styles.js +78 -0
  450. package/components/switch-group/styles.js.map +1 -0
  451. package/components/switch-group/types.d.ts +72 -0
  452. package/components/switch-group/types.js +18 -0
  453. package/components/switch-group/types.js.map +1 -0
  454. package/components/text/Text.d.ts +9 -0
  455. package/components/text/Text.js +51 -0
  456. package/components/text/Text.js.map +1 -0
  457. package/components/text/styles.js +112 -0
  458. package/components/text/styles.js.map +1 -0
  459. package/components/text/types.d.ts +73 -0
  460. package/components/text/types.js +34 -0
  461. package/components/text/types.js.map +1 -0
  462. package/components/text-area/TextArea.d.ts +10 -0
  463. package/components/text-area/TextArea.js +165 -0
  464. package/components/text-area/TextArea.js.map +1 -0
  465. package/components/text-area/styles.js +240 -0
  466. package/components/text-area/styles.js.map +1 -0
  467. package/components/text-area/types.d.ts +28 -0
  468. package/components/text-area/types.js +14 -0
  469. package/components/text-area/types.js.map +1 -0
  470. package/components/text-field/TextField.d.ts +10 -0
  471. package/components/text-field/TextField.js +197 -0
  472. package/components/text-field/TextField.js.map +1 -0
  473. package/components/text-field/intl/en-US.json.js +8 -0
  474. package/components/text-field/intl/en-US.json.js.map +1 -0
  475. package/components/text-field/intl/fr-FR.json.js +8 -0
  476. package/components/text-field/intl/fr-FR.json.js.map +1 -0
  477. package/components/text-field/intl/index.js +10 -0
  478. package/components/text-field/intl/index.js.map +1 -0
  479. package/components/text-field/styles.d.ts +22 -0
  480. package/components/text-field/styles.js +252 -0
  481. package/components/text-field/styles.js.map +1 -0
  482. package/components/text-field/types.d.ts +99 -0
  483. package/components/text-field/types.js +18 -0
  484. package/components/text-field/types.js.map +1 -0
  485. package/components/theme/context.d.ts +11 -0
  486. package/components/theme/context.js +7 -0
  487. package/components/theme/context.js.map +1 -0
  488. package/components/theme/useTheme.d.ts +5 -0
  489. package/components/theme/useTheme.js +13 -0
  490. package/components/theme/useTheme.js.map +1 -0
  491. package/hooks/useBoundingRect.d.ts +8 -0
  492. package/hooks/useBoundingRect.js +17 -0
  493. package/hooks/useBoundingRect.js.map +1 -0
  494. package/hooks/useComputeNumberOfRows.d.ts +15 -0
  495. package/hooks/useComputeNumberOfRows.js +40 -0
  496. package/hooks/useComputeNumberOfRows.js.map +1 -0
  497. package/hooks/useIsLoaded.d.ts +5 -0
  498. package/hooks/useIsLoaded.js +14 -0
  499. package/hooks/useIsLoaded.js.map +1 -0
  500. package/hooks/useWindowSize.d.ts +8 -0
  501. package/hooks/useWindowSize.js +42 -0
  502. package/hooks/useWindowSize.js.map +1 -0
  503. package/index.d.ts +157 -4667
  504. package/index.js +121 -24514
  505. package/index.js.map +1 -1
  506. package/package.json +4 -3
  507. package/packages/popovers/src/components/tooltip/Tooltip.js +62 -0
  508. package/packages/popovers/src/components/tooltip/Tooltip.js.map +1 -0
  509. package/packages/popovers/src/components/tooltip/context.js +6 -0
  510. package/packages/popovers/src/components/tooltip/context.js.map +1 -0
  511. package/packages/popovers/src/components/tooltip/types.js +28 -0
  512. package/packages/popovers/src/components/tooltip/types.js.map +1 -0
  513. package/packages/popovers/src/components/tooltip/useTooltip.js +78 -0
  514. package/packages/popovers/src/components/tooltip/useTooltip.js.map +1 -0
  515. package/packages/popovers/src/components/tooltip/useTooltipContext.js +13 -0
  516. package/packages/popovers/src/components/tooltip/useTooltipContext.js.map +1 -0
  517. package/packages/popovers/src/components/tooltip-content/TooltipContent.js +80 -0
  518. package/packages/popovers/src/components/tooltip-content/TooltipContent.js.map +1 -0
  519. package/packages/popovers/src/components/tooltip-content/styles.js +128 -0
  520. package/packages/popovers/src/components/tooltip-content/styles.js.map +1 -0
  521. package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js +47 -0
  522. package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js.map +1 -0
  523. package/react-aria/internationalized/date/DateFormatter.d.ts +25 -0
  524. package/react-aria/internationalized/date/DateFormatter.js +187 -0
  525. package/react-aria/internationalized/date/DateFormatter.js.map +1 -0
  526. package/react-aria/internationalized/message/MessageDictionary.d.ts +7 -0
  527. package/react-aria/internationalized/message/MessageDictionary.js +82 -0
  528. package/react-aria/internationalized/message/MessageDictionary.js.map +1 -0
  529. package/react-aria/internationalized/message/MessageFormatter.js +38 -0
  530. package/react-aria/internationalized/message/MessageFormatter.js.map +1 -0
  531. package/react-aria/internationalized/number/NumberFormatter.d.ts +6 -0
  532. package/react-aria/internationalized/number/NumberFormatter.js +222 -0
  533. package/react-aria/internationalized/number/NumberFormatter.js.map +1 -0
  534. package/react-aria/internationalized/number/NumberParser.js +288 -0
  535. package/react-aria/internationalized/number/NumberParser.js.map +1 -0
  536. package/react-aria/internationalized/string/LocalizedStringDictionary.d.ts +21 -0
  537. package/react-aria/internationalized/string/LocalizedStringDictionary.js +118 -0
  538. package/react-aria/internationalized/string/LocalizedStringDictionary.js.map +1 -0
  539. package/react-aria/internationalized/string/LocalizedStringFormatter.d.ts +21 -0
  540. package/react-aria/internationalized/string/LocalizedStringFormatter.js +70 -0
  541. package/react-aria/internationalized/string/LocalizedStringFormatter.js.map +1 -0
  542. package/react-aria/react-aria/button/useButton.js +95 -0
  543. package/react-aria/react-aria/button/useButton.js.map +1 -0
  544. package/react-aria/react-aria/focus/focusSafely.js +33 -0
  545. package/react-aria/react-aria/focus/focusSafely.js.map +1 -0
  546. package/react-aria/react-aria/focus/useFocusRing.js +57 -0
  547. package/react-aria/react-aria/focus/useFocusRing.js.map +1 -0
  548. package/react-aria/react-aria/focus/useFocusable.js +47 -0
  549. package/react-aria/react-aria/focus/useFocusable.js.map +1 -0
  550. package/react-aria/react-aria/form/useFormValidation.js +112 -0
  551. package/react-aria/react-aria/form/useFormValidation.js.map +1 -0
  552. package/react-aria/react-aria/i18n/context.d.ts +19 -0
  553. package/react-aria/react-aria/i18n/context.js +41 -0
  554. package/react-aria/react-aria/i18n/context.js.map +1 -0
  555. package/react-aria/react-aria/i18n/useCollator.d.ts +8 -0
  556. package/react-aria/react-aria/i18n/useCollator.js +25 -0
  557. package/react-aria/react-aria/i18n/useCollator.js.map +1 -0
  558. package/react-aria/react-aria/i18n/useDateFormatter.d.ts +13 -0
  559. package/react-aria/react-aria/i18n/useDateFormatter.js +39 -0
  560. package/react-aria/react-aria/i18n/useDateFormatter.js.map +1 -0
  561. package/react-aria/react-aria/i18n/useDefaultLocale.d.ts +10 -0
  562. package/react-aria/react-aria/i18n/useDefaultLocale.js +67 -0
  563. package/react-aria/react-aria/i18n/useDefaultLocale.js.map +1 -0
  564. package/react-aria/react-aria/i18n/useFilter.d.ts +15 -0
  565. package/react-aria/react-aria/i18n/useFilter.js +58 -0
  566. package/react-aria/react-aria/i18n/useFilter.js.map +1 -0
  567. package/react-aria/react-aria/i18n/useListFormatter.d.ts +8 -0
  568. package/react-aria/react-aria/i18n/useListFormatter.js +20 -0
  569. package/react-aria/react-aria/i18n/useListFormatter.js.map +1 -0
  570. package/react-aria/react-aria/i18n/useLocalizedStringFormatter.d.ts +15 -0
  571. package/react-aria/react-aria/i18n/useLocalizedStringFormatter.js +38 -0
  572. package/react-aria/react-aria/i18n/useLocalizedStringFormatter.js.map +1 -0
  573. package/react-aria/react-aria/i18n/useMessageFormatter.d.ts +13 -0
  574. package/react-aria/react-aria/i18n/useMessageFormatter.js +32 -0
  575. package/react-aria/react-aria/i18n/useMessageFormatter.js.map +1 -0
  576. package/react-aria/react-aria/i18n/useNumberFormatter.d.ts +10 -0
  577. package/react-aria/react-aria/i18n/useNumberFormatter.js +21 -0
  578. package/react-aria/react-aria/i18n/useNumberFormatter.js.map +1 -0
  579. package/react-aria/react-aria/i18n/utils.js +49 -0
  580. package/react-aria/react-aria/i18n/utils.js.map +1 -0
  581. package/react-aria/react-aria/interactions/context.js +20 -0
  582. package/react-aria/react-aria/interactions/context.js.map +1 -0
  583. package/react-aria/react-aria/interactions/createEventHandler.js +48 -0
  584. package/react-aria/react-aria/interactions/createEventHandler.js.map +1 -0
  585. package/react-aria/react-aria/interactions/textSelection.js +85 -0
  586. package/react-aria/react-aria/interactions/textSelection.js.map +1 -0
  587. package/react-aria/react-aria/interactions/useFocus.js +53 -0
  588. package/react-aria/react-aria/interactions/useFocus.js.map +1 -0
  589. package/react-aria/react-aria/interactions/useFocusVisible.js +236 -0
  590. package/react-aria/react-aria/interactions/useFocusVisible.js.map +1 -0
  591. package/react-aria/react-aria/interactions/useFocusWithin.js +65 -0
  592. package/react-aria/react-aria/interactions/useFocusWithin.js.map +1 -0
  593. package/react-aria/react-aria/interactions/useKeyboard.js +27 -0
  594. package/react-aria/react-aria/interactions/useKeyboard.js.map +1 -0
  595. package/react-aria/react-aria/interactions/usePress.js +769 -0
  596. package/react-aria/react-aria/interactions/usePress.js.map +1 -0
  597. package/react-aria/react-aria/interactions/useScrollWheel.js +31 -0
  598. package/react-aria/react-aria/interactions/useScrollWheel.js.map +1 -0
  599. package/react-aria/react-aria/interactions/utils.js +116 -0
  600. package/react-aria/react-aria/interactions/utils.js.map +1 -0
  601. package/react-aria/react-aria/label/useField.js +42 -0
  602. package/react-aria/react-aria/label/useField.js.map +1 -0
  603. package/react-aria/react-aria/label/useLabel.js +42 -0
  604. package/react-aria/react-aria/label/useLabel.js.map +1 -0
  605. package/react-aria/react-aria/live-announcer/LiveAnnouncer.js +121 -0
  606. package/react-aria/react-aria/live-announcer/LiveAnnouncer.js.map +1 -0
  607. package/react-aria/react-aria/numberfield/intl/en-US.json.js +11 -0
  608. package/react-aria/react-aria/numberfield/intl/en-US.json.js.map +1 -0
  609. package/react-aria/react-aria/numberfield/intl/fr-FR.json.js +11 -0
  610. package/react-aria/react-aria/numberfield/intl/fr-FR.json.js.map +1 -0
  611. package/react-aria/react-aria/numberfield/intl/index.js +10 -0
  612. package/react-aria/react-aria/numberfield/intl/index.js.map +1 -0
  613. package/react-aria/react-aria/numberfield/useNumberField.js +294 -0
  614. package/react-aria/react-aria/numberfield/useNumberField.js.map +1 -0
  615. package/react-aria/react-aria/spinbutton/intl/en-US.json.js +7 -0
  616. package/react-aria/react-aria/spinbutton/intl/en-US.json.js.map +1 -0
  617. package/react-aria/react-aria/spinbutton/intl/fr-FR.json.js +7 -0
  618. package/react-aria/react-aria/spinbutton/intl/fr-FR.json.js.map +1 -0
  619. package/react-aria/react-aria/spinbutton/intl/index.js +10 -0
  620. package/react-aria/react-aria/spinbutton/intl/index.js.map +1 -0
  621. package/react-aria/react-aria/spinbutton/useSpinButton.js +168 -0
  622. package/react-aria/react-aria/spinbutton/useSpinButton.js.map +1 -0
  623. package/react-aria/react-aria/ssr/SSRProvider.d.ts +22 -0
  624. package/react-aria/react-aria/ssr/SSRProvider.js +157 -0
  625. package/react-aria/react-aria/ssr/SSRProvider.js.map +1 -0
  626. package/react-aria/react-aria/textfield/useFormattedTextField.js +142 -0
  627. package/react-aria/react-aria/textfield/useFormattedTextField.js.map +1 -0
  628. package/react-aria/react-aria/textfield/useTextField.js +156 -0
  629. package/react-aria/react-aria/textfield/useTextField.js.map +1 -0
  630. package/react-aria/react-aria/utils/chain.js +33 -0
  631. package/react-aria/react-aria/utils/chain.js.map +1 -0
  632. package/react-aria/react-aria/utils/domHelpers.js +14 -0
  633. package/react-aria/react-aria/utils/domHelpers.js.map +1 -0
  634. package/react-aria/react-aria/utils/filterDOMProps.js +45 -0
  635. package/react-aria/react-aria/utils/filterDOMProps.js.map +1 -0
  636. package/react-aria/react-aria/utils/focusWithoutScrolling.js +88 -0
  637. package/react-aria/react-aria/utils/focusWithoutScrolling.js.map +1 -0
  638. package/react-aria/react-aria/utils/isVirtualEvent.js +51 -0
  639. package/react-aria/react-aria/utils/isVirtualEvent.js.map +1 -0
  640. package/react-aria/react-aria/utils/mergeProps.js +48 -0
  641. package/react-aria/react-aria/utils/mergeProps.js.map +1 -0
  642. package/react-aria/react-aria/utils/openLink.js +55 -0
  643. package/react-aria/react-aria/utils/openLink.js.map +1 -0
  644. package/react-aria/react-aria/utils/platform.js +69 -0
  645. package/react-aria/react-aria/utils/platform.js.map +1 -0
  646. package/react-aria/react-aria/utils/runAfterTransition.js +100 -0
  647. package/react-aria/react-aria/utils/runAfterTransition.js.map +1 -0
  648. package/react-aria/react-aria/utils/useDeepMemo.js +16 -0
  649. package/react-aria/react-aria/utils/useDeepMemo.js.map +1 -0
  650. package/react-aria/react-aria/utils/useEffectEvent.js +31 -0
  651. package/react-aria/react-aria/utils/useEffectEvent.js.map +1 -0
  652. package/react-aria/react-aria/utils/useEvent.js +21 -0
  653. package/react-aria/react-aria/utils/useEvent.js.map +1 -0
  654. package/react-aria/react-aria/utils/useFormReset.js +23 -0
  655. package/react-aria/react-aria/utils/useFormReset.js.map +1 -0
  656. package/react-aria/react-aria/utils/useGlobalListeners.js +44 -0
  657. package/react-aria/react-aria/utils/useGlobalListeners.js.map +1 -0
  658. package/react-aria/react-aria/utils/useId.js +86 -0
  659. package/react-aria/react-aria/utils/useId.js.map +1 -0
  660. package/react-aria/react-aria/utils/useLabels.js +39 -0
  661. package/react-aria/react-aria/utils/useLabels.js.map +1 -0
  662. package/react-aria/react-aria/utils/useLayoutEffect.js +21 -0
  663. package/react-aria/react-aria/utils/useLayoutEffect.js.map +1 -0
  664. package/react-aria/react-aria/utils/useSyncRef.js +29 -0
  665. package/react-aria/react-aria/utils/useSyncRef.js.map +1 -0
  666. package/react-aria/react-aria/utils/useValueEffect.js +52 -0
  667. package/react-aria/react-aria/utils/useValueEffect.js.map +1 -0
  668. package/react-aria/react-stately/form/useFormValidationState.js +191 -0
  669. package/react-aria/react-stately/form/useFormValidationState.js.map +1 -0
  670. package/react-aria/react-stately/numberfield/useNumberFieldState.js +196 -0
  671. package/react-aria/react-stately/numberfield/useNumberFieldState.js.map +1 -0
  672. package/react-aria/react-stately/utils/number.js +56 -0
  673. package/react-aria/react-stately/utils/number.js.map +1 -0
  674. package/react-aria/react-stately/utils/useControlledState.js +68 -0
  675. package/react-aria/react-stately/utils/useControlledState.js.map +1 -0
  676. package/react-aria/react-types/shared/locale.d.ts +3 -0
  677. package/types/colors.d.ts +102 -0
  678. package/types/colors.js +64 -0
  679. package/types/colors.js.map +1 -0
  680. package/types/fonts.d.ts +12 -0
  681. package/types/fonts.js +10 -0
  682. package/types/fonts.js.map +1 -0
  683. package/types/helpers.d.ts +23 -0
  684. package/types/products.d.ts +40 -0
  685. package/types/products.js +38 -0
  686. package/types/products.js.map +1 -0
  687. package/types/styles.d.ts +283 -0
  688. package/types/styles.js +161 -0
  689. package/types/styles.js.map +1 -0
  690. package/utils/filterComponents.d.ts +12 -0
  691. package/utils/filterComponents.js +24 -0
  692. package/utils/filterComponents.js.map +1 -0
  693. package/utils/getTextWidth.d.ts +6 -0
  694. package/utils/getTextWidth.js +32 -0
  695. package/utils/getTextWidth.js.map +1 -0
  696. package/utils/isComponent.d.ts +12 -0
  697. package/utils/isComponent.js +15 -0
  698. package/utils/isComponent.js.map +1 -0
  699. package/utils/partitionComponents.d.ts +10 -0
  700. package/utils/partitionComponents.js +26 -0
  701. package/utils/partitionComponents.js.map +1 -0
  702. package/utils/redsift-design-tokens.d.ts +1389 -0
  703. package/utils/redsift-design-tokens.js +1391 -0
  704. package/utils/redsift-design-tokens.js.map +1 -0
  705. package/utils/useId.d.ts +6 -0
  706. package/utils/useId.js +42 -0
  707. package/utils/useId.js.map +1 -0
  708. package/utils/warnIfNoAccessibleLabelFound.d.ts +11 -0
  709. package/utils/warnIfNoAccessibleLabelFound.js +20 -0
  710. package/utils/warnIfNoAccessibleLabelFound.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":["../../../src/components/side-navigation-menu/styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { StyledSideNavigationMenuProps } from './types';\nimport { SideNavigationMenuBarVariant } from '../side-navigation-menu-bar';\n\n/**\n * Component style.\n */\nexport const StyledSideNavigationMenu = styled.div<StyledSideNavigationMenuProps>`\n .redsift-side-navigation-menu__current-indicator-container {\n min-width: 4px;\n }\n\n .redsift-side-navigation-menu__menu-container {\n width: 100%;\n }\n\n .redsift-badge {\n margin-left: 8px;\n }\n\n ${({ $isDisabled, $variant, $theme }) => css`\n .redsift-side-navigation-menu__menu-container > button {\n ${!$isDisabled\n ? css`\n & {\n color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-resting);\n }\n `\n : css`\n & {\n color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-disabled);\n }\n `}\n align-items: center;\n background-color: var(--redsift-color-${$theme}-components-side-navigation-background);\n border: none;\n border-radius: 0 4px 4px 0;\n display: flex;\n font-family: var(--redsift-typography-body-font-family);\n font-size: 14px;\n font-weight: var(--redsift-typography-body-font-weight);\n gap: 0;\n height: 40px;\n line-height: var(--redsift-typography-body-line-height);\n margin-left: -4px;\n transition: padding 300ms ease-out;\n padding: 0 16px 0 ${$variant === SideNavigationMenuBarVariant.shrinked ? '16px' : '16px'};\n text-decoration: none;\n text-transform: uppercase;\n width: calc(100% + ${$variant === SideNavigationMenuBarVariant.shrinked ? '0px' : '4px'});\n\n :hover,\n :focus-visible {\n outline: none;\n\n ${!$isDisabled\n ? css`\n background-color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-background-hover);\n &,\n .redsift-icon.first,\n .redsift-side-navigation-menu__expand-icon {\n color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-hover);\n }\n cursor: pointer;\n `\n : ''}\n }\n\n :active {\n ${!$isDisabled\n ? css`\n background-color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-background-active);\n `\n : ''}\n }\n\n @media (prefers-reduced-motion: no-preference) {\n :focus-visible {\n > span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {\n outline: 2px solid var(--redsift-color-primary-n);\n transition: outline-offset 75ms ease-out;\n }\n\n :not(:active):focus-visible {\n > span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {\n transition-duration: 0.25s;\n }\n }\n }\n\n :not(:active):focus-visible {\n > span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {\n outline-offset: 0.25rem;\n }\n }\n }\n }\n\n .content {\n transition: opacity 300ms ease-out;\n opacity: ${$variant === SideNavigationMenuBarVariant.shrinked ? '0' : '1'};\n overflow: hidden;\n white-space: nowrap;\n }\n `}\n\n .first {\n box-sizing: unset;\n margin-right: 8px;\n }\n\n .redsift-side-navigation-menu__expand-icon {\n transition: transform 300ms ease-out;\n ${({ $isDisabled, $theme }) =>\n !$isDisabled\n ? css`\n &,\n .redsift-icon.first {\n color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-resting);\n }\n `\n : css`\n &,\n .redsift-icon.first {\n color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-disabled);\n }\n `}\n ${({ $isExpanded }) =>\n !$isExpanded\n ? css`\n transform: rotate(0);\n `\n : css`\n transform: rotate(-180deg);\n `}\n margin-left: auto;\n\n transition: opacity 300ms ease-out;\n opacity: ${({ $variant }) => ($variant === SideNavigationMenuBarVariant.standard ? '1' : '0')};\n }\n\n [dir='rtl'] & {\n .redsift-side-navigation-menu__expand-icon {\n margin-left: unset;\n margin-right: auto;\n }\n }\n\n /**\n * Display children or not\n */\n\n .redsift-side-navigation-menu__menu-container > ul {\n list-style: none;\n margin: unset;\n padding: unset;\n margin-left: -4px;\n\n ${({ $variant }) => css`\n width: calc(100% + ${$variant === SideNavigationMenuBarVariant.shrinked ? '0px' : '4px'});\n `}\n margin-bottom: 4px;\n max-width: 241px;\n transition: height 300ms ease-out;\n overflow: hidden;\n ${({ $isExpanded, $numberOfChildren }) =>\n $isExpanded\n ? css`\n height: ${$numberOfChildren * 32}px;\n `\n : css`\n height: 0;\n `};\n }\n`;\n"],"names":["StyledSideNavigationMenu","styled","div","_ref","$isDisabled","$variant","$theme","css","SideNavigationMenuBarVariant","shrinked","_ref2","_ref3","$isExpanded","_ref4","standard","_ref5","_ref6","$numberOfChildren"],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { ComponentProps, MutableRefObject } from 'react';
2
+ import { BadgeProps } from '../badge/types.js';
3
+ import { SideNavigationMenuBarVariant } from '../side-navigation-menu-bar/types.js';
4
+ import { IconProps } from '../icon/types.js';
5
+ import { Theme } from '../../types/colors.js';
6
+
7
+ /**
8
+ * Context props.
9
+ */
10
+ type SideNavigationMenuContextProps = {
11
+ menuItems: Set<HTMLAnchorElement | HTMLButtonElement>;
12
+ };
13
+ /**
14
+ * Reducer props.
15
+ */
16
+ type SideNavigationMenuReducerState = {
17
+ isExpanded: boolean;
18
+ currentIndex: number;
19
+ previousIndex: number;
20
+ };
21
+ declare enum SideNavigationMenuReducerActionType {
22
+ Expand = "expand",
23
+ Collapse = "collapse",
24
+ Move = "move"
25
+ }
26
+ type SideNavigationMenuReducerAction = {
27
+ type: SideNavigationMenuReducerActionType;
28
+ index?: number;
29
+ };
30
+ /**
31
+ * Component props.
32
+ */
33
+ interface SideNavigationMenuProps extends ComponentProps<'div'> {
34
+ /** Custom props to pass to the button. */
35
+ buttonProps?: ComponentProps<'button'>;
36
+ /** Custom ref to pass to the button. */
37
+ buttonRef?: MutableRefObject<HTMLButtonElement>;
38
+ /** Custom props to pass to the Badge component, if any. */
39
+ badgeProps?: Omit<BadgeProps, 'ref'>;
40
+ /** Whether or not the menu contains children that have a badge. */
41
+ hasBadge?: boolean;
42
+ /**
43
+ * Can be a string or an array of strings containing `d` property of the `path` SVG element.<br />
44
+ * Can also be a ReactElement.
45
+ */
46
+ icon?: IconProps['icon'];
47
+ /** Custom props to pass to the Icon component. */
48
+ iconProps?: Omit<IconProps, 'ref' | 'icon'>;
49
+ /** Custom ref to pass to the Icon component. */
50
+ iconRef?: MutableRefObject<HTMLElement>;
51
+ /** Whether the component is disabled or not. */
52
+ isDisabled?: boolean;
53
+ /** Whether the menu is expanded or not. */
54
+ isExpanded?: boolean;
55
+ /** By default, the badge is hidden when the menu is expanded. This prop controls this behavior. */
56
+ keepBadgeVisible?: boolean;
57
+ /** Custom props to pass to the menu. */
58
+ menuProps?: ComponentProps<'ul'>;
59
+ /** Custom ref to pass to the menu. */
60
+ menuRef?: MutableRefObject<HTMLUListElement>;
61
+ /** Theme. */
62
+ theme?: Theme;
63
+ }
64
+ type StyledSideNavigationMenuProps = Omit<SideNavigationMenuProps, 'isDisabled' | 'isExpanded'> & {
65
+ $isDisabled: SideNavigationMenuProps['isDisabled'];
66
+ $isExpanded: SideNavigationMenuProps['isExpanded'];
67
+ $numberOfChildren: number;
68
+ $variant: SideNavigationMenuBarVariant;
69
+ $theme: SideNavigationMenuProps['theme'];
70
+ };
71
+
72
+ export { SideNavigationMenuContextProps, SideNavigationMenuProps, SideNavigationMenuReducerAction, SideNavigationMenuReducerActionType, SideNavigationMenuReducerState, StyledSideNavigationMenuProps };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Context props.
3
+ */
4
+
5
+ /**
6
+ * Reducer props.
7
+ */
8
+
9
+ let SideNavigationMenuReducerActionType = /*#__PURE__*/function (SideNavigationMenuReducerActionType) {
10
+ SideNavigationMenuReducerActionType["Expand"] = "expand";
11
+ SideNavigationMenuReducerActionType["Collapse"] = "collapse";
12
+ SideNavigationMenuReducerActionType["Move"] = "move";
13
+ return SideNavigationMenuReducerActionType;
14
+ }({});
15
+
16
+ /**
17
+ * Component props.
18
+ */
19
+
20
+ export { SideNavigationMenuReducerActionType };
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../src/components/side-navigation-menu/types.ts"],"sourcesContent":["import { ComponentProps, MutableRefObject } from 'react';\nimport { IconProps } from '../icon';\nimport { SideNavigationMenuBarVariant } from '../side-navigation-menu-bar';\nimport { Theme } from '@redsift/design-system/types';\nimport { BadgeProps } from '../badge';\n\n/**\n * Context props.\n */\nexport type SideNavigationMenuContextProps = {\n menuItems: Set<HTMLAnchorElement | HTMLButtonElement>;\n};\n\n/**\n * Reducer props.\n */\nexport type SideNavigationMenuReducerState = {\n isExpanded: boolean;\n currentIndex: number;\n previousIndex: number;\n};\n\nexport enum SideNavigationMenuReducerActionType {\n Expand = 'expand',\n Collapse = 'collapse',\n Move = 'move',\n}\n\nexport type SideNavigationMenuReducerAction = {\n type: SideNavigationMenuReducerActionType;\n index?: number;\n};\n\n/**\n * Component props.\n */\nexport interface SideNavigationMenuProps extends ComponentProps<'div'> {\n /** Custom props to pass to the button. */\n buttonProps?: ComponentProps<'button'>;\n /** Custom ref to pass to the button. */\n buttonRef?: MutableRefObject<HTMLButtonElement>;\n /** Custom props to pass to the Badge component, if any. */\n badgeProps?: Omit<BadgeProps, 'ref'>;\n /** Whether or not the menu contains children that have a badge. */\n hasBadge?: boolean;\n /**\n * Can be a string or an array of strings containing `d` property of the `path` SVG element.<br />\n * Can also be a ReactElement.\n */\n icon?: IconProps['icon'];\n /** Custom props to pass to the Icon component. */\n iconProps?: Omit<IconProps, 'ref' | 'icon'>;\n /** Custom ref to pass to the Icon component. */\n iconRef?: MutableRefObject<HTMLElement>;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the menu is expanded or not. */\n isExpanded?: boolean;\n /** By default, the badge is hidden when the menu is expanded. This prop controls this behavior. */\n keepBadgeVisible?: boolean;\n /** Custom props to pass to the menu. */\n menuProps?: ComponentProps<'ul'>;\n /** Custom ref to pass to the menu. */\n menuRef?: MutableRefObject<HTMLUListElement>;\n /** Theme. */\n theme?: Theme;\n}\n\nexport type StyledSideNavigationMenuProps = Omit<SideNavigationMenuProps, 'isDisabled' | 'isExpanded'> & {\n $isDisabled: SideNavigationMenuProps['isDisabled'];\n $isExpanded: SideNavigationMenuProps['isExpanded'];\n $numberOfChildren: number;\n $variant: SideNavigationMenuBarVariant;\n $theme: SideNavigationMenuProps['theme'];\n};\n"],"names":["SideNavigationMenuReducerActionType"],"mappings":"AAMA;AACA;AACA;;AAKA;AACA;AACA;;AAOYA,IAAAA,mCAAmC,0BAAnCA,mCAAmC,EAAA;EAAnCA,mCAAmC,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;EAAnCA,mCAAmC,CAAA,UAAA,CAAA,GAAA,UAAA,CAAA;EAAnCA,mCAAmC,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAAnCA,mCAAmC,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;;AAW/C;AACA;AACA;;;;"}
@@ -0,0 +1,9 @@
1
+ import { SideNavigationMenuBarProps } from './types.js';
2
+ import { Comp } from '../../types/helpers.js';
3
+
4
+ /**
5
+ * The SideNavigationMenuBar component.
6
+ */
7
+ declare const SideNavigationMenuBar: Comp<SideNavigationMenuBarProps, HTMLElement>;
8
+
9
+ export { SideNavigationMenuBar };
@@ -0,0 +1,217 @@
1
+ import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React__default, { forwardRef, useRef, useContext, useState, useEffect, useMemo } from 'react';
3
+ import classNames from 'classnames';
4
+ import { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound.js';
5
+ import { StyledSideNavigationMenuBar } from './styles.js';
6
+ import { SideNavigationMenuBarVariant } from './types.js';
7
+ import { SideNavigationMenuBarContext } from './context.js';
8
+ import { useBoundingClientRect } from '../../hooks/useBoundingRect.js';
9
+ import { filterComponents } from '../../utils/filterComponents.js';
10
+ import { SideNavigationMenu } from '../side-navigation-menu/SideNavigationMenu.js';
11
+ import { AppContainerContext } from '../app-container/context.js';
12
+ import { useTheme } from '../theme/useTheme.js';
13
+ import { AppSidePanelVariant } from '../app-side-panel/types.js';
14
+ import { ThemeProvider } from '../theme/context.js';
15
+ import { SideNavigationMenuItem } from '../side-navigation-menu-item/SideNavigationMenuItem.js';
16
+
17
+ const _excluded = ["aria-label", "aria-labelledby", "canHaveMultipleMenuOpenAtOnce", "children", "className", "isDisabled", "menubarProps", "menubarRef", "theme", "variant"];
18
+ const COMPONENT_NAME = 'SideNavigationMenuBar';
19
+ const CLASSNAME = 'redsift-side-navigation-menu-bar';
20
+
21
+ /**
22
+ * Hook to store the previous index for further use
23
+ */
24
+ const usePrevious = value => {
25
+ const ref = useRef(0);
26
+ useEffect(() => {
27
+ ref.current = value;
28
+ }, [value]);
29
+ return ref.current;
30
+ };
31
+
32
+ /**
33
+ * The SideNavigationMenuBar component.
34
+ */
35
+ const SideNavigationMenuBar = /*#__PURE__*/forwardRef((props, ref) => {
36
+ const navRef = ref || useRef();
37
+ const {
38
+ 'aria-label': ariaLabel,
39
+ 'aria-labelledby': ariaLabelledby,
40
+ canHaveMultipleMenuOpenAtOnce,
41
+ children,
42
+ className,
43
+ isDisabled,
44
+ menubarProps = {},
45
+ menubarRef = useRef(),
46
+ theme: propsTheme,
47
+ variant: propsVariant = SideNavigationMenuBarVariant.standard
48
+ } = props,
49
+ forwardedProps = _objectWithoutProperties(props, _excluded);
50
+ warnIfNoAccessibleLabelFound(props, undefined, 'SideNavigationMenuBar');
51
+ const appContainerState = useContext(AppContainerContext);
52
+ const theme = useTheme(propsTheme);
53
+ const {
54
+ top
55
+ } = useBoundingClientRect(navRef, [children]);
56
+ const [variant, setVariant] = useState(appContainerState ? appContainerState.sidePanelVariant === AppSidePanelVariant.hidden ? SideNavigationMenuBarVariant.shrinked : appContainerState.sidePanelVariant : propsVariant);
57
+ const [currentOpenMenuId, setCurrentOpenMenuId] = useState();
58
+ useEffect(() => {
59
+ setVariant(propsVariant);
60
+ }, [propsVariant]);
61
+ useEffect(() => {
62
+ if (appContainerState && appContainerState.sidePanelVariant && appContainerState.sidePanelVariant !== variant) {
63
+ setVariant(appContainerState.sidePanelVariant === AppSidePanelVariant.hidden ? SideNavigationMenuBarVariant.shrinked : appContainerState.sidePanelVariant);
64
+ }
65
+ }, [appContainerState === null || appContainerState === void 0 ? void 0 : appContainerState.sidePanelVariant]);
66
+
67
+ /**
68
+ * Create an array containing only valid children being either SideNavigationMenu or SideNavigationMenuItem.
69
+ */
70
+ const childArray = filterComponents([SideNavigationMenu, SideNavigationMenuItem])(children);
71
+ const navItems = childArray.map((child, index) => {
72
+ var _child$key, _child$key2;
73
+ return /*#__PURE__*/React__default.createElement("li", {
74
+ key: (_child$key = child.key) !== null && _child$key !== void 0 ? _child$key : index,
75
+ role: "none"
76
+ }, /*#__PURE__*/React__default.cloneElement(child, {
77
+ isDisabled: child.props.isDisabled || isDisabled || undefined,
78
+ key: (_child$key2 = child.key) !== null && _child$key2 !== void 0 ? _child$key2 : index,
79
+ tabIndex: index === 0 ? 0 : -1
80
+ }));
81
+ });
82
+ const menuItems = useRef(new Set()).current;
83
+ const [currentIndex, setCurrentIndex] = useState(0);
84
+ const previousIndex = usePrevious(currentIndex);
85
+ const first = () => setCurrentIndex(0);
86
+ const last = () => setCurrentIndex(menuItems.size - 1);
87
+ const next = () => {
88
+ const index = currentIndex === menuItems.size - 1 ? 0 : currentIndex + 1;
89
+ setCurrentIndex(index);
90
+ };
91
+ const previous = () => {
92
+ const index = currentIndex === 0 ? menuItems.size - 1 : currentIndex - 1;
93
+ setCurrentIndex(index);
94
+ };
95
+ const match = event => {
96
+ const items = Array.from(menuItems);
97
+
98
+ // Reorder the array, starting with the currentNode
99
+ const reorderedItems = [...items.slice(currentIndex), ...items.slice(0, currentIndex)];
100
+
101
+ // Find all nodes that begin with the pressed letter
102
+ const matches = reorderedItems.filter(menuItem => {
103
+ const {
104
+ textContent
105
+ } = menuItem;
106
+ // istanbul ignore next
107
+ const firstLetter = textContent === null || textContent === void 0 ? void 0 : textContent.toLowerCase().charAt(0);
108
+ return event.key === firstLetter;
109
+ });
110
+
111
+ // Exit early if there are no matches
112
+ if (!matches.length) {
113
+ return;
114
+ }
115
+
116
+ // If the focused item is a match, focus the next match.
117
+ // Otherwise, focus the first match
118
+ const currentNode = items[currentIndex];
119
+ const nextMatch = matches.includes(currentNode) ? matches[1] : matches[0];
120
+ const index = items.findIndex(item => {
121
+ return item === nextMatch;
122
+ });
123
+ setCurrentIndex(index);
124
+ };
125
+ const keyDown = e => {
126
+ var _menubarProps$onKeyDo, _currentNode$parentNo;
127
+ (_menubarProps$onKeyDo = menubarProps.onKeyDown) === null || _menubarProps$onKeyDo === void 0 ? void 0 : _menubarProps$onKeyDo.call(menubarProps, e);
128
+ e.stopPropagation();
129
+ const currentNode = e.target;
130
+ // istanbul ignore next
131
+ const parentMenu = currentNode === null || currentNode === void 0 ? void 0 : (_currentNode$parentNo = currentNode.parentNode) === null || _currentNode$parentNo === void 0 ? void 0 : _currentNode$parentNo.parentNode;
132
+ const isFromSubmenu = parentMenu.getAttribute('role') === 'menu';
133
+ switch (e.code) {
134
+ case 'ArrowUp':
135
+ e.preventDefault();
136
+ previous();
137
+ break;
138
+ case 'ArrowDown':
139
+ e.preventDefault();
140
+ next();
141
+ break;
142
+ case 'ArrowRight':
143
+ e.preventDefault();
144
+ if (isFromSubmenu) {
145
+ next();
146
+ }
147
+ break;
148
+ case 'End':
149
+ e.preventDefault();
150
+ last();
151
+ break;
152
+ case 'Home':
153
+ e.preventDefault();
154
+ first();
155
+ break;
156
+ case 'Enter':
157
+ case 'Space':
158
+ e.preventDefault();
159
+ currentNode.click();
160
+ break;
161
+ default:
162
+ match(e);
163
+ break;
164
+ }
165
+ };
166
+ const value = useMemo(() => ({
167
+ menuItems,
168
+ sideNavigationMenuBarVariant: variant,
169
+ setSideNavigationMenuBarVariant: setVariant,
170
+ currentOpenMenuId,
171
+ setCurrentOpenMenuId: value => {
172
+ if (!canHaveMultipleMenuOpenAtOnce) {
173
+ setCurrentOpenMenuId(value);
174
+ }
175
+ }
176
+ }), [menuItems, variant, setVariant, currentOpenMenuId, setCurrentOpenMenuId]);
177
+ useEffect(() => {
178
+ if (currentIndex !== previousIndex) {
179
+ const items = Array.from(menuItems);
180
+ const currentNode = items[currentIndex];
181
+ const previousNode = items[previousIndex];
182
+
183
+ // istanbul ignore next
184
+ previousNode === null || previousNode === void 0 ? void 0 : previousNode.setAttribute('tabindex', '-1');
185
+ currentNode === null || currentNode === void 0 ? void 0 : currentNode.setAttribute('tabindex', '0');
186
+ currentNode === null || currentNode === void 0 ? void 0 : currentNode.focus();
187
+ }
188
+ }, [currentIndex, previousIndex, menuItems]);
189
+ return /*#__PURE__*/React__default.createElement(ThemeProvider, {
190
+ value: {
191
+ theme
192
+ }
193
+ }, /*#__PURE__*/React__default.createElement(StyledSideNavigationMenuBar, _extends({}, forwardedProps, {
194
+ $isDisabled: isDisabled,
195
+ $marginTop: top,
196
+ $theme: theme,
197
+ $variant: variant,
198
+ "aria-label": ariaLabel,
199
+ "aria-labelledby": ariaLabelledby,
200
+ className: classNames(SideNavigationMenuBar.className, className),
201
+ ref: navRef
202
+ }), /*#__PURE__*/React__default.createElement(SideNavigationMenuBarContext.Provider, {
203
+ value: value
204
+ }, /*#__PURE__*/React__default.createElement("ul", _extends({}, menubarProps, {
205
+ "aria-label": ariaLabel,
206
+ "aria-labelledby": ariaLabelledby,
207
+ "aria-orientation": "vertical",
208
+ onKeyDown: keyDown,
209
+ ref: menubarRef,
210
+ role: "menubar"
211
+ }), navItems))));
212
+ });
213
+ SideNavigationMenuBar.className = CLASSNAME;
214
+ SideNavigationMenuBar.displayName = COMPONENT_NAME;
215
+
216
+ export { SideNavigationMenuBar };
217
+ //# sourceMappingURL=SideNavigationMenuBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SideNavigationMenuBar.js","sources":["../../../src/components/side-navigation-menu-bar/SideNavigationMenuBar.tsx"],"sourcesContent":["import React, {\n forwardRef,\n KeyboardEvent,\n MutableRefObject,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { SideNavigationMenu } from '../side-navigation-menu';\nimport { SideNavigationMenuItem } from '../side-navigation-menu-item';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { StyledSideNavigationMenuBar } from './styles';\nimport { SideNavigationMenuBarProps, SideNavigationMenuBarContextProps, SideNavigationMenuBarVariant } from './types';\nimport { SideNavigationMenuBarContext } from './context';\nimport { useBoundingClientRect } from '../../hooks/useBoundingRect';\nimport { filterComponents } from '../../utils/filterComponents';\nimport { AppContainerContext } from '../app-container';\nimport { ThemeProvider, useTheme } from '../theme';\nimport { AppSidePanelVariant } from '../app-side-panel';\n\nconst COMPONENT_NAME = 'SideNavigationMenuBar';\nconst CLASSNAME = 'redsift-side-navigation-menu-bar';\n\n/**\n * Hook to store the previous index for further use\n */\nconst usePrevious = (value: number) => {\n const ref = useRef(0);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n};\n\n/**\n * The SideNavigationMenuBar component.\n */\nexport const SideNavigationMenuBar: Comp<SideNavigationMenuBarProps, HTMLElement> = forwardRef((props, ref) => {\n const navRef = (ref || useRef<HTMLElement>()) as MutableRefObject<HTMLElement>;\n\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n canHaveMultipleMenuOpenAtOnce,\n children,\n className,\n isDisabled,\n menubarProps = {},\n menubarRef = useRef<HTMLUListElement>(),\n theme: propsTheme,\n variant: propsVariant = SideNavigationMenuBarVariant.standard,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props, undefined, 'SideNavigationMenuBar');\n const appContainerState = useContext(AppContainerContext);\n const theme = useTheme(propsTheme);\n const { top } = useBoundingClientRect(navRef, [children]);\n const [variant, setVariant] = useState<SideNavigationMenuBarVariant>(\n appContainerState\n ? appContainerState.sidePanelVariant === AppSidePanelVariant.hidden\n ? SideNavigationMenuBarVariant.shrinked\n : appContainerState.sidePanelVariant\n : propsVariant!\n );\n const [currentOpenMenuId, setCurrentOpenMenuId] = useState<string | undefined>();\n\n useEffect(() => {\n setVariant(propsVariant!);\n }, [propsVariant]);\n\n useEffect(() => {\n if (appContainerState && appContainerState.sidePanelVariant && appContainerState.sidePanelVariant !== variant) {\n setVariant(\n appContainerState.sidePanelVariant === AppSidePanelVariant.hidden\n ? SideNavigationMenuBarVariant.shrinked\n : appContainerState.sidePanelVariant\n );\n }\n }, [appContainerState?.sidePanelVariant]);\n\n /**\n * Create an array containing only valid children being either SideNavigationMenu or SideNavigationMenuItem.\n */\n const childArray = filterComponents([SideNavigationMenu, SideNavigationMenuItem])(children);\n const navItems = childArray.map((child, index) => {\n return (\n <li key={child.key ?? index} role=\"none\">\n {React.cloneElement(child, {\n isDisabled: child.props.isDisabled || isDisabled || undefined,\n key: child.key ?? index,\n tabIndex: index === 0 ? 0 : -1,\n })}\n </li>\n );\n });\n\n const menuItems = useRef<Set<HTMLAnchorElement | HTMLButtonElement>>(new Set()).current;\n const [currentIndex, setCurrentIndex] = useState(0);\n const previousIndex = usePrevious(currentIndex);\n\n const first = () => setCurrentIndex(0);\n\n const last = () => setCurrentIndex(menuItems.size - 1);\n\n const next = () => {\n const index = currentIndex === menuItems.size - 1 ? 0 : currentIndex + 1;\n setCurrentIndex(index);\n };\n\n const previous = () => {\n const index = currentIndex === 0 ? menuItems.size - 1 : currentIndex - 1;\n setCurrentIndex(index);\n };\n\n const match = (event: React.KeyboardEvent<HTMLUListElement>) => {\n const items = Array.from(menuItems);\n\n // Reorder the array, starting with the currentNode\n const reorderedItems = [...items.slice(currentIndex), ...items.slice(0, currentIndex)];\n\n // Find all nodes that begin with the pressed letter\n const matches = reorderedItems.filter((menuItem) => {\n const { textContent } = menuItem;\n // istanbul ignore next\n const firstLetter = textContent?.toLowerCase().charAt(0);\n return event.key === firstLetter;\n });\n\n // Exit early if there are no matches\n if (!matches.length) {\n return;\n }\n\n // If the focused item is a match, focus the next match.\n // Otherwise, focus the first match\n const currentNode = items[currentIndex];\n const nextMatch = matches.includes(currentNode) ? matches[1] : matches[0];\n const index = items.findIndex((item) => {\n return item === nextMatch;\n });\n\n setCurrentIndex(index);\n };\n\n const keyDown = (e: KeyboardEvent<HTMLUListElement>) => {\n menubarProps.onKeyDown?.(e);\n e.stopPropagation();\n\n const currentNode = e.target as HTMLUListElement;\n // istanbul ignore next\n const parentMenu = currentNode?.parentNode?.parentNode as HTMLElement;\n const isFromSubmenu = parentMenu.getAttribute('role') === 'menu';\n\n switch (e.code) {\n case 'ArrowUp':\n e.preventDefault();\n previous();\n break;\n case 'ArrowDown':\n e.preventDefault();\n next();\n break;\n case 'ArrowRight':\n e.preventDefault();\n if (isFromSubmenu) {\n next();\n }\n break;\n case 'End':\n e.preventDefault();\n last();\n break;\n case 'Home':\n e.preventDefault();\n first();\n break;\n case 'Enter':\n case 'Space':\n e.preventDefault();\n currentNode.click();\n break;\n default:\n match(e);\n break;\n }\n };\n\n const value = useMemo<SideNavigationMenuBarContextProps>(\n () => ({\n menuItems,\n sideNavigationMenuBarVariant: variant,\n setSideNavigationMenuBarVariant: setVariant,\n currentOpenMenuId,\n setCurrentOpenMenuId: (value: React.SetStateAction<string | undefined>) => {\n if (!canHaveMultipleMenuOpenAtOnce) {\n setCurrentOpenMenuId(value);\n }\n },\n }),\n [menuItems, variant, setVariant, currentOpenMenuId, setCurrentOpenMenuId]\n );\n\n useEffect(() => {\n if (currentIndex !== previousIndex) {\n const items = Array.from(menuItems);\n const currentNode = items[currentIndex] as HTMLElement;\n const previousNode = items[previousIndex] as HTMLElement;\n\n // istanbul ignore next\n previousNode?.setAttribute('tabindex', '-1');\n currentNode?.setAttribute('tabindex', '0');\n currentNode?.focus();\n }\n }, [currentIndex, previousIndex, menuItems]);\n\n return (\n <ThemeProvider value={{ theme }}>\n <StyledSideNavigationMenuBar\n {...forwardedProps}\n $isDisabled={isDisabled}\n $marginTop={top}\n $theme={theme}\n $variant={variant}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={classNames(SideNavigationMenuBar.className, className)}\n ref={navRef as MutableRefObject<HTMLElement>}\n >\n <SideNavigationMenuBarContext.Provider value={value}>\n <ul\n {...menubarProps}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-orientation=\"vertical\"\n onKeyDown={keyDown}\n ref={menubarRef as MutableRefObject<HTMLUListElement>}\n role=\"menubar\"\n >\n {navItems}\n </ul>\n </SideNavigationMenuBarContext.Provider>\n </StyledSideNavigationMenuBar>\n </ThemeProvider>\n );\n});\nSideNavigationMenuBar.className = CLASSNAME;\nSideNavigationMenuBar.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","usePrevious","value","ref","useRef","useEffect","current","SideNavigationMenuBar","forwardRef","props","navRef","ariaLabel","ariaLabelledby","canHaveMultipleMenuOpenAtOnce","children","className","isDisabled","menubarProps","menubarRef","theme","propsTheme","variant","propsVariant","SideNavigationMenuBarVariant","standard","forwardedProps","_objectWithoutProperties","_excluded","warnIfNoAccessibleLabelFound","undefined","appContainerState","useContext","AppContainerContext","useTheme","top","useBoundingClientRect","setVariant","useState","sidePanelVariant","AppSidePanelVariant","hidden","shrinked","currentOpenMenuId","setCurrentOpenMenuId","childArray","filterComponents","SideNavigationMenu","SideNavigationMenuItem","navItems","map","child","index","_child$key","_child$key2","React","createElement","key","role","cloneElement","tabIndex","menuItems","Set","currentIndex","setCurrentIndex","previousIndex","first","last","size","next","previous","match","event","items","Array","from","reorderedItems","slice","matches","filter","menuItem","textContent","firstLetter","toLowerCase","charAt","length","currentNode","nextMatch","includes","findIndex","item","keyDown","e","_menubarProps$onKeyDo","_currentNode$parentNo","onKeyDown","call","stopPropagation","target","parentMenu","parentNode","isFromSubmenu","getAttribute","code","preventDefault","click","useMemo","sideNavigationMenuBarVariant","setSideNavigationMenuBarVariant","previousNode","setAttribute","focus","ThemeProvider","StyledSideNavigationMenuBar","_extends","$isDisabled","$marginTop","$theme","$variant","classNames","SideNavigationMenuBarContext","Provider","displayName"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import React__default from 'react';
2
+
3
+ const SideNavigationMenuBarContext = /*#__PURE__*/React__default.createContext(null);
4
+
5
+ export { SideNavigationMenuBarContext };
6
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../../src/components/side-navigation-menu-bar/context.ts"],"sourcesContent":["import React from 'react';\nimport { SideNavigationMenuBarContextProps } from './types';\n\nexport const SideNavigationMenuBarContext =\n React.createContext<SideNavigationMenuBarContextProps>(null!);\n"],"names":["SideNavigationMenuBarContext","React","createContext"],"mappings":";;AAGO,MAAMA,4BAA4B,gBACvCC,cAAK,CAACC,aAAa,CAAoC,IAAK;;;;"}
@@ -0,0 +1,89 @@
1
+ import styled, { css } from 'styled-components';
2
+ import { SideNavigationMenuBarVariant } from './types.js';
3
+
4
+ /**
5
+ * Component style.
6
+ */
7
+ const StyledSideNavigationMenuBar = styled.nav`
8
+ background-color: ${_ref => {
9
+ let {
10
+ $theme
11
+ } = _ref;
12
+ return `var(--redsift-color-${$theme}-components-side-navigation-background)`;
13
+ }};
14
+ box-sizing: content-box;
15
+ overflow-x: hidden;
16
+ overflow-y: auto;
17
+ scrollbar-gutter: stable;
18
+ transition: width 300ms ease-out;
19
+ width: ${_ref2 => {
20
+ let {
21
+ $variant
22
+ } = _ref2;
23
+ return $variant === SideNavigationMenuBarVariant.shrinked ? '64px' : '250px';
24
+ }};
25
+
26
+ ${_ref3 => {
27
+ let {
28
+ $marginTop = 0
29
+ } = _ref3;
30
+ return $marginTop ? css`
31
+ height: calc(100% - ${$marginTop}px);
32
+ ` : '';
33
+ }}
34
+
35
+ ul {
36
+ list-style: none;
37
+ margin: unset;
38
+ padding: unset;
39
+ }
40
+
41
+ scrollbar-color: ${_ref4 => {
42
+ let {
43
+ $theme
44
+ } = _ref4;
45
+ return `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-resting) transparent`;
46
+ }};
47
+ scrollbar-width: thin;
48
+
49
+ &::-webkit-scrollbar {
50
+ block-size: 9px;
51
+ inline-size: 9px;
52
+ }
53
+
54
+ &::-webkit-scrollbar-thumb {
55
+ background-clip: padding-box;
56
+ background-color: ${_ref5 => {
57
+ let {
58
+ $theme
59
+ } = _ref5;
60
+ return `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-resting)`;
61
+ }};
62
+ border-radius: 0px;
63
+ border-left: 2px solid transparent;
64
+ border-right: 2px solid transparent;
65
+ }
66
+
67
+ &::-webkit-scrollbar-track {
68
+ background-color: transparent;
69
+ }
70
+
71
+ &::-webkit-scrollbar-thumb:horizontal,
72
+ &::-webkit-scrollbar-thumb:vertical {
73
+ &:hover {
74
+ background-color: ${_ref6 => {
75
+ let {
76
+ $theme
77
+ } = _ref6;
78
+ return `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-hover)`;
79
+ }};
80
+ }
81
+ }
82
+
83
+ &::-webkit-scrollbar-corner {
84
+ visibility: hidden;
85
+ }
86
+ `;
87
+
88
+ export { StyledSideNavigationMenuBar };
89
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":["../../../src/components/side-navigation-menu-bar/styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { SideNavigationMenuBarVariant, StyledSideNavigationMenuBarProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSideNavigationMenuBar = styled.nav<StyledSideNavigationMenuBarProps>`\n background-color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-side-navigation-background)`};\n box-sizing: content-box;\n overflow-x: hidden;\n overflow-y: auto;\n scrollbar-gutter: stable;\n transition: width 300ms ease-out;\n width: ${({ $variant }) => ($variant === SideNavigationMenuBarVariant.shrinked ? '64px' : '250px')};\n\n ${({ $marginTop = 0 }) =>\n $marginTop\n ? css`\n height: calc(100% - ${$marginTop}px);\n `\n : ''}\n\n ul {\n list-style: none;\n margin: unset;\n padding: unset;\n }\n\n scrollbar-color: ${({ $theme }) =>\n `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-resting) transparent`};\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n block-size: 9px;\n inline-size: 9px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-clip: padding-box;\n background-color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-resting)`};\n border-radius: 0px;\n border-left: 2px solid transparent;\n border-right: 2px solid transparent;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-thumb:horizontal,\n &::-webkit-scrollbar-thumb:vertical {\n &:hover {\n background-color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-hover)`};\n }\n }\n\n &::-webkit-scrollbar-corner {\n visibility: hidden;\n }\n`;\n"],"names":["StyledSideNavigationMenuBar","styled","nav","_ref","$theme","_ref2","$variant","SideNavigationMenuBarVariant","shrinked","_ref3","$marginTop","css","_ref4","_ref5","_ref6"],"mappings":";;;AAGA;AACA;AACA;AACaA,MAAAA,2BAA2B,GAAGC,MAAM,CAACC,GAAsC,CAAA;AACxF,oBAAA,EAAsBC,IAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,MAAAA;AAAO,GAAC,GAAAD,IAAA,CAAA;EAAA,OAAM,CAAA,oBAAA,EAAsBC,MAAO,CAAwC,uCAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AAC7G;AACA;AACA;AACA;AACA;AACA,SAAA,EAAWC,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,QAAAA;AAAS,GAAC,GAAAD,KAAA,CAAA;EAAA,OAAMC,QAAQ,KAAKC,4BAA4B,CAACC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAAA,CAAE,CAAA;AACrG;AACA,EAAA,EAAIC,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,UAAU,GAAG,CAAA;AAAE,GAAC,GAAAD,KAAA,CAAA;EAAA,OACnBC,UAAU,GACNC,GAAI,CAAA;AACZ,8BAAA,EAAgCD,UAAW,CAAA;AAC3C,QAAA,CAAS,GACD,EAAE,CAAA;AAAA,CAAC,CAAA;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAA,EAAqBE,KAAA,IAAA;EAAA,IAAC;AAAER,IAAAA,MAAAA;AAAO,GAAC,GAAAQ,KAAA,CAAA;EAAA,OAC3B,CAAA,oBAAA,EAAsBR,MAAO,CAA2D,0DAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAA,EAAwBS,KAAA,IAAA;EAAA,IAAC;AAAET,IAAAA,MAAAA;AAAO,GAAC,GAAAS,KAAA,CAAA;EAAA,OAAM,CAAA,oBAAA,EAAsBT,MAAO,CAA+C,8CAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAA,EAA0BU,KAAA,IAAA;EAAA,IAAC;AAAEV,IAAAA,MAAAA;AAAO,GAAC,GAAAU,KAAA,CAAA;EAAA,OAAM,CAAA,oBAAA,EAAsBV,MAAO,CAA6C,4CAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;;;;"}
@@ -0,0 +1,65 @@
1
+ import { Dispatch, SetStateAction, ComponentProps, MutableRefObject } from 'react';
2
+ import { SideNavigationMenuItemProps } from '../side-navigation-menu-item/types.js';
3
+ import { SideNavigationMenuProps } from '../side-navigation-menu/types.js';
4
+ import { ValueOf } from '../../types/helpers.js';
5
+ import { Theme } from '../../types/colors.js';
6
+
7
+ /**
8
+ * Component variant.
9
+ */
10
+ declare const SideNavigationMenuBarVariant: {
11
+ readonly shrinked: "shrinked";
12
+ readonly standard: "standard";
13
+ };
14
+ type SideNavigationMenuBarVariant = ValueOf<typeof SideNavigationMenuBarVariant>;
15
+ /**
16
+ * Context props.
17
+ */
18
+ type SideNavigationMenuBarContextProps = {
19
+ /** List of menu items. */
20
+ menuItems: Set<HTMLAnchorElement | HTMLButtonElement>;
21
+ /** Side navigation variant. */
22
+ sideNavigationMenuBarVariant: SideNavigationMenuBarVariant;
23
+ /** Change side navigation variant. */
24
+ setSideNavigationMenuBarVariant: Dispatch<SetStateAction<SideNavigationMenuBarVariant>>;
25
+ /** Current open menu, used to close other menu when canHaveMultipleMenuOpenAtOnce is false. */
26
+ currentOpenMenuId?: string;
27
+ /** Change current open menu id. */
28
+ setCurrentOpenMenuId?: Dispatch<SetStateAction<string | undefined>>;
29
+ };
30
+ /**
31
+ * Component props.
32
+ */
33
+ interface SideNavigationMenuBarProps extends ComponentProps<'nav'> {
34
+ /** Whether or not opening a menu closes the others. */
35
+ canHaveMultipleMenuOpenAtOnce?: boolean;
36
+ /** Whether the component is disabled or not. */
37
+ isDisabled?: boolean;
38
+ /** Custom props to pass to the menubar. */
39
+ menubarProps?: ComponentProps<'ul'>;
40
+ /** Custom ref to pass to the menubar. */
41
+ menubarRef?: MutableRefObject<HTMLUListElement>;
42
+ /** Theme. */
43
+ theme?: Theme;
44
+ /** Variant. */
45
+ variant?: SideNavigationMenuBarVariant;
46
+ }
47
+ type StyledSideNavigationMenuBarProps = Omit<SideNavigationMenuBarProps, 'isDisabled'> & {
48
+ $isDisabled: SideNavigationMenuBarProps['isDisabled'];
49
+ $marginTop?: number;
50
+ $variant: SideNavigationMenuBarProps['variant'];
51
+ $theme: SideNavigationMenuBarProps['theme'];
52
+ };
53
+ /**
54
+ * Hook props.
55
+ */
56
+ interface MenuItem extends Omit<SideNavigationMenuItemProps, 'children'> {
57
+ title: string;
58
+ }
59
+ interface Menu extends Omit<SideNavigationMenuProps, 'children'> {
60
+ title: string;
61
+ children: MenuItem[];
62
+ }
63
+ type MenuBarItems = (Menu | MenuItem)[];
64
+
65
+ export { Menu, MenuBarItems, MenuItem, SideNavigationMenuBarContextProps, SideNavigationMenuBarProps, SideNavigationMenuBarVariant, StyledSideNavigationMenuBarProps };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Component variant.
3
+ */
4
+ const SideNavigationMenuBarVariant = {
5
+ shrinked: 'shrinked',
6
+ standard: 'standard'
7
+ };
8
+
9
+ /**
10
+ * Context props.
11
+ */
12
+
13
+ /**
14
+ * Component props.
15
+ */
16
+
17
+ /**
18
+ * Hook props.
19
+ */
20
+
21
+ export { SideNavigationMenuBarVariant };
22
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../src/components/side-navigation-menu-bar/types.ts"],"sourcesContent":["import { ComponentProps, Dispatch, MutableRefObject, SetStateAction } from 'react';\nimport { SideNavigationMenuProps } from '../side-navigation-menu';\nimport { SideNavigationMenuItemProps } from '../side-navigation-menu-item';\nimport { Theme, ValueOf } from '@redsift/design-system/types';\n\n/**\n * Component variant.\n */\nexport const SideNavigationMenuBarVariant = {\n shrinked: 'shrinked',\n standard: 'standard',\n} as const;\nexport type SideNavigationMenuBarVariant = ValueOf<typeof SideNavigationMenuBarVariant>;\n\n/**\n * Context props.\n */\nexport type SideNavigationMenuBarContextProps = {\n /** List of menu items. */\n menuItems: Set<HTMLAnchorElement | HTMLButtonElement>;\n /** Side navigation variant. */\n sideNavigationMenuBarVariant: SideNavigationMenuBarVariant;\n /** Change side navigation variant. */\n setSideNavigationMenuBarVariant: Dispatch<SetStateAction<SideNavigationMenuBarVariant>>;\n /** Current open menu, used to close other menu when canHaveMultipleMenuOpenAtOnce is false. */\n currentOpenMenuId?: string;\n /** Change current open menu id. */\n setCurrentOpenMenuId?: Dispatch<SetStateAction<string | undefined>>;\n};\n\n/**\n * Component props.\n */\nexport interface SideNavigationMenuBarProps extends ComponentProps<'nav'> {\n /** Whether or not opening a menu closes the others. */\n canHaveMultipleMenuOpenAtOnce?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Custom props to pass to the menubar. */\n menubarProps?: ComponentProps<'ul'>;\n /** Custom ref to pass to the menubar. */\n menubarRef?: MutableRefObject<HTMLUListElement>;\n /** Theme. */\n theme?: Theme;\n /** Variant. */\n variant?: SideNavigationMenuBarVariant;\n}\n\nexport type StyledSideNavigationMenuBarProps = Omit<SideNavigationMenuBarProps, 'isDisabled'> & {\n $isDisabled: SideNavigationMenuBarProps['isDisabled'];\n $marginTop?: number;\n $variant: SideNavigationMenuBarProps['variant'];\n $theme: SideNavigationMenuBarProps['theme'];\n};\n\n/**\n * Hook props.\n */\nexport interface MenuItem extends Omit<SideNavigationMenuItemProps, 'children'> {\n title: string;\n}\nexport interface Menu extends Omit<SideNavigationMenuProps, 'children'> {\n title: string;\n children: MenuItem[];\n}\nexport type MenuBarItems = (Menu | MenuItem)[];\n"],"names":["SideNavigationMenuBarVariant","shrinked","standard"],"mappings":"AAKA;AACA;AACA;AACO,MAAMA,4BAA4B,GAAG;AAC1CC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,QAAQ,EAAE,UAAA;AACZ,EAAU;;AAGV;AACA;AACA;;AAcA;AACA;AACA;;AAuBA;AACA;AACA;;;;"}
@@ -0,0 +1,9 @@
1
+ import { MenuBarItems, SideNavigationMenuBarProps } from './types.js';
2
+
3
+ interface UseSideNavigationMenuBarProps {
4
+ items: MenuBarItems;
5
+ isActive?: (href: string) => boolean;
6
+ }
7
+ declare const useSideNavigationMenuBar: ({ items, isActive, }: UseSideNavigationMenuBarProps) => Omit<SideNavigationMenuBarProps, 'ref'>;
8
+
9
+ export { UseSideNavigationMenuBarProps, useSideNavigationMenuBar };