@veracity/vui 0.3.1 → 0.4.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 (438) hide show
  1. package/avatar/avatar.d.ts +2 -2
  2. package/avatar/avatar.js +9 -29
  3. package/avatar/avatar.types.d.ts +9 -2
  4. package/avatar/helpers.d.ts +2 -0
  5. package/avatar/helpers.js +26 -0
  6. package/avatar/index.d.ts +1 -1
  7. package/avatar/index.js +1 -1
  8. package/avatar/theme.d.ts +1 -0
  9. package/avatar/theme.js +7 -0
  10. package/box/box.d.ts +2 -2
  11. package/box/box.js +9 -8
  12. package/box/box.types.d.ts +13 -2
  13. package/box/index.d.ts +1 -1
  14. package/box/index.js +1 -1
  15. package/box/theme.d.ts +1 -0
  16. package/box/theme.js +2 -0
  17. package/button/button.d.ts +7 -3
  18. package/button/button.js +24 -14
  19. package/button/button.types.d.ts +16 -34
  20. package/button/buttonIcon.d.ts +1 -0
  21. package/button/buttonIcon.js +3 -5
  22. package/button/buttonText.d.ts +1 -0
  23. package/button/buttonText.js +3 -5
  24. package/button/buttons.js +1 -1
  25. package/button/consts.js +2 -2
  26. package/button/index.d.ts +2 -2
  27. package/button/index.js +3 -3
  28. package/button/theme.d.ts +1 -0
  29. package/button/theme.js +5 -3
  30. package/buttonGroup/buttonGroup.d.ts +5 -2
  31. package/buttonGroup/buttonGroup.js +12 -8
  32. package/buttonGroup/buttonGroup.types.d.ts +4 -2
  33. package/buttonGroup/helpers.d.ts +1 -1
  34. package/buttonGroup/helpers.js +1 -1
  35. package/buttonGroup/index.d.ts +1 -1
  36. package/buttonGroup/index.js +2 -2
  37. package/card/card.d.ts +4 -0
  38. package/card/card.js +8 -0
  39. package/card/card.types.d.ts +3 -2
  40. package/card/index.d.ts +1 -1
  41. package/card/index.js +1 -1
  42. package/card/theme.d.ts +1 -0
  43. package/card/theme.js +2 -0
  44. package/checkbox/checkbox.d.ts +5 -4
  45. package/checkbox/checkbox.js +20 -10
  46. package/checkbox/checkbox.types.d.ts +21 -4
  47. package/checkbox/checkboxGroup.d.ts +5 -2
  48. package/checkbox/checkboxGroup.js +11 -7
  49. package/checkbox/checkboxGroup.types.d.ts +9 -2
  50. package/checkbox/index.d.ts +1 -1
  51. package/checkbox/index.js +2 -2
  52. package/checkbox/theme.d.ts +1 -0
  53. package/checkbox/theme.js +2 -0
  54. package/core/index.d.ts +4 -5
  55. package/core/index.js +4 -12
  56. package/core/media.d.ts +38 -0
  57. package/core/media.js +79 -0
  58. package/core/styled.d.ts +3 -0
  59. package/core/styled.js +21 -3
  60. package/core/theme.d.ts +41 -0
  61. package/core/theme.js +94 -0
  62. package/core/vui.d.ts +31 -0
  63. package/core/vui.js +20 -0
  64. package/core/vuiProvider/fontFaces.js +4 -0
  65. package/core/{globalStyle.d.ts → vuiProvider/globalStyle.d.ts} +7 -0
  66. package/core/{globalStyle.js → vuiProvider/globalStyle.js} +17 -9
  67. package/core/vuiProvider/index.d.ts +5 -0
  68. package/core/vuiProvider/index.js +26 -0
  69. package/core/{resetCSS.d.ts → vuiProvider/resetCSS.d.ts} +1 -0
  70. package/core/{resetCSS.js → vuiProvider/resetCSS.js} +2 -1
  71. package/core/vuiProvider/vuiProvider.d.ts +13 -0
  72. package/core/{vuiProvider.js → vuiProvider/vuiProvider.js} +3 -2
  73. package/divider/divider.d.ts +2 -2
  74. package/divider/divider.js +5 -4
  75. package/divider/divider.types.d.ts +5 -2
  76. package/divider/index.d.ts +1 -1
  77. package/divider/index.js +1 -1
  78. package/divider/theme.d.ts +1 -0
  79. package/divider/theme.js +2 -0
  80. package/footer/consts.d.ts +108 -8
  81. package/footer/consts.js +21 -9
  82. package/footer/footer.d.ts +3 -1
  83. package/footer/footer.js +21 -10
  84. package/footer/footer.types.d.ts +5 -0
  85. package/footer/footerColumn.d.ts +122 -121
  86. package/footer/footerColumn.js +1 -0
  87. package/footer/footerHeading.d.ts +1 -0
  88. package/footer/footerHeading.js +1 -0
  89. package/footer/footerLink.d.ts +1 -0
  90. package/footer/footerLink.js +1 -0
  91. package/footer/footerRow.d.ts +1 -0
  92. package/footer/footerRow.js +1 -0
  93. package/footer/footerSection.d.ts +1 -0
  94. package/footer/footerSection.js +2 -1
  95. package/footer/footerTrademark.d.ts +1 -0
  96. package/footer/footerTrademark.js +1 -0
  97. package/footer/helpers.d.ts +2 -3
  98. package/footer/helpers.js +16 -16
  99. package/footer/index.d.ts +2 -1
  100. package/footer/index.js +2 -2
  101. package/footer/theme.d.ts +1 -0
  102. package/footer/theme.js +2 -0
  103. package/header/consts.d.ts +58 -0
  104. package/header/consts.js +76 -0
  105. package/header/context.d.ts +4 -0
  106. package/header/context.js +23 -0
  107. package/header/header.d.ts +34 -0
  108. package/header/header.js +133 -0
  109. package/header/header.types.d.ts +103 -0
  110. package/header/headerAccount.d.ts +4 -0
  111. package/header/headerAccount.js +109 -0
  112. package/header/headerAccount.types.d.ts +35 -0
  113. package/header/headerContent.d.ts +4 -0
  114. package/header/headerContent.js +28 -0
  115. package/header/headerCreateAccount.d.ts +4 -0
  116. package/header/headerCreateAccount.js +47 -0
  117. package/header/headerDivider.d.ts +4 -0
  118. package/header/headerDivider.js +28 -0
  119. package/header/headerLinkItem.d.ts +4 -0
  120. package/header/headerLinkItem.js +53 -0
  121. package/header/headerLinksList.d.ts +4 -0
  122. package/header/headerLinksList.js +44 -0
  123. package/header/headerLogo.d.ts +4 -0
  124. package/header/headerLogo.js +44 -0
  125. package/header/headerMobileContent.d.ts +4 -0
  126. package/header/headerMobileContent.js +31 -0
  127. package/header/headerMobileToggle.d.ts +4 -0
  128. package/header/headerMobileToggle.js +33 -0
  129. package/header/headerNotifications.d.ts +4 -0
  130. package/header/headerNotifications.js +51 -0
  131. package/header/headerServices.d.ts +4 -0
  132. package/header/headerServices.js +55 -0
  133. package/header/headerSignIn.d.ts +4 -0
  134. package/header/headerSignIn.js +40 -0
  135. package/header/helpers.d.ts +17 -0
  136. package/header/helpers.js +66 -0
  137. package/header/index.d.ts +21 -0
  138. package/header/index.js +38 -0
  139. package/header/loggedInHeader.d.ts +4 -0
  140. package/header/loggedInHeader.js +57 -0
  141. package/header/loggedOutHeader.d.ts +4 -0
  142. package/header/loggedOutHeader.js +57 -0
  143. package/header/theme.d.ts +85 -0
  144. package/header/theme.js +89 -0
  145. package/heading/heading.d.ts +2 -2
  146. package/heading/heading.js +5 -4
  147. package/heading/heading.types.d.ts +7 -2
  148. package/heading/headings.js +1 -1
  149. package/heading/index.d.ts +1 -1
  150. package/heading/index.js +2 -2
  151. package/heading/theme.d.ts +1 -0
  152. package/heading/theme.js +2 -0
  153. package/icon/helpers.js +2 -2
  154. package/icon/icon.d.ts +1 -0
  155. package/icon/icon.js +2 -2
  156. package/icon/icon.types.d.ts +7 -4
  157. package/icon/index.d.ts +1 -1
  158. package/icon/index.js +1 -1
  159. package/icon/theme.d.ts +1 -0
  160. package/icon/theme.js +2 -0
  161. package/icons/baseIcons/fal/falFileInvoiceDollar.d.ts +3 -0
  162. package/icons/baseIcons/fal/falFileInvoiceDollar.js +7 -0
  163. package/icons/baseIcons/fas/fasCalendarAlt.js +1 -1
  164. package/icons/baseIcons/icons.d.ts +1 -0
  165. package/icons/baseIcons/icons.js +5 -3
  166. package/icons/baseIcons/types.d.ts +1 -1
  167. package/icons/cache.d.ts +15 -0
  168. package/icons/{library.js → cache.js} +10 -6
  169. package/icons/index.d.ts +1 -1
  170. package/icons/index.js +3 -3
  171. package/icons/types.d.ts +10 -3
  172. package/image/image.d.ts +2 -0
  173. package/image/image.js +11 -2
  174. package/image/image.types.d.ts +3 -2
  175. package/image/index.d.ts +1 -1
  176. package/image/index.js +1 -1
  177. package/image/theme.d.ts +1 -0
  178. package/image/theme.js +2 -0
  179. package/index.d.ts +3 -1
  180. package/index.js +3 -1
  181. package/input/consts.js +2 -2
  182. package/input/helpers.d.ts +1 -0
  183. package/input/helpers.js +1 -0
  184. package/input/index.d.ts +1 -1
  185. package/input/index.js +2 -2
  186. package/input/input.d.ts +7 -3
  187. package/input/input.js +17 -7
  188. package/input/input.types.d.ts +36 -7
  189. package/input/inputIcon.d.ts +1 -0
  190. package/input/inputIcon.js +2 -1
  191. package/input/inputInput.d.ts +2 -2
  192. package/input/inputInput.js +10 -5
  193. package/input/theme.d.ts +1 -0
  194. package/input/theme.js +2 -0
  195. package/link/index.d.ts +1 -1
  196. package/link/index.js +2 -2
  197. package/link/link.d.ts +6 -3
  198. package/link/link.js +15 -9
  199. package/link/link.types.d.ts +15 -7
  200. package/link/linkIcon.d.ts +1 -0
  201. package/link/linkIcon.js +3 -5
  202. package/link/linkText.d.ts +1 -0
  203. package/link/linkText.js +3 -5
  204. package/link/theme.d.ts +6 -0
  205. package/link/theme.js +9 -1
  206. package/list/index.d.ts +1 -1
  207. package/list/index.js +2 -2
  208. package/list/list.d.ts +3 -3
  209. package/list/list.js +13 -8
  210. package/list/list.types.d.ts +29 -8
  211. package/list/listDivider.d.ts +1 -0
  212. package/list/listDivider.js +3 -5
  213. package/list/listHeading.d.ts +1 -0
  214. package/list/listHeading.js +4 -6
  215. package/list/listIcon.d.ts +1 -0
  216. package/list/listIcon.js +3 -5
  217. package/list/listItem.d.ts +5 -2
  218. package/list/listItem.js +52 -19
  219. package/list/listText.d.ts +1 -0
  220. package/list/listText.js +3 -5
  221. package/list/theme.d.ts +1 -0
  222. package/list/theme.js +5 -2
  223. package/menu/menu.d.ts +1 -0
  224. package/menu/menu.js +1 -0
  225. package/menu/menu.types.d.ts +3 -0
  226. package/menu/menuButton.d.ts +1 -0
  227. package/menu/menuButton.js +3 -4
  228. package/menu/menuItem.d.ts +1 -0
  229. package/menu/menuItem.js +9 -23
  230. package/menu/menuList.d.ts +1 -0
  231. package/menu/menuList.js +3 -4
  232. package/menu/theme.d.ts +16 -2
  233. package/menu/theme.js +18 -3
  234. package/modal/context.d.ts +4 -0
  235. package/modal/context.js +23 -0
  236. package/modal/focusLock.d.ts +9 -0
  237. package/modal/focusLock.js +47 -0
  238. package/modal/focusLock.types.d.ts +28 -0
  239. package/modal/focusLock.types.js +2 -0
  240. package/modal/index.d.ts +7 -0
  241. package/modal/index.js +24 -0
  242. package/modal/modal.d.ts +10 -0
  243. package/modal/modal.js +109 -0
  244. package/modal/modal.types.d.ts +40 -0
  245. package/modal/modal.types.js +2 -0
  246. package/modal/modalBackdrop.d.ts +4 -0
  247. package/modal/modalBackdrop.js +38 -0
  248. package/modal/modalManager.d.ts +12 -0
  249. package/modal/modalManager.js +33 -0
  250. package/modal/theme.d.ts +7 -0
  251. package/modal/theme.js +12 -0
  252. package/notification/consts.js +2 -2
  253. package/notification/index.d.ts +2 -2
  254. package/notification/index.js +3 -3
  255. package/notification/notification.d.ts +5 -1
  256. package/notification/notification.js +12 -27
  257. package/notification/notification.types.d.ts +11 -4
  258. package/notification/notificationButton.d.ts +1 -0
  259. package/notification/notificationButton.js +4 -5
  260. package/notification/notificationIcon.d.ts +1 -0
  261. package/notification/notificationIcon.js +7 -7
  262. package/notification/notificationText.d.ts +1 -0
  263. package/notification/notificationText.js +3 -5
  264. package/notification/notificationTitle.d.ts +1 -0
  265. package/notification/notificationTitle.js +3 -5
  266. package/notification/theme.d.ts +1 -0
  267. package/notification/theme.js +2 -0
  268. package/p/index.d.ts +1 -1
  269. package/p/index.js +1 -1
  270. package/p/p.d.ts +2 -2
  271. package/p/p.js +5 -4
  272. package/p/p.types.d.ts +7 -2
  273. package/p/theme.d.ts +1 -0
  274. package/p/theme.js +2 -0
  275. package/package.json +3 -1
  276. package/panel/index.d.ts +1 -1
  277. package/panel/index.js +1 -1
  278. package/panel/panel.d.ts +4 -0
  279. package/panel/panel.js +4 -0
  280. package/panel/panel.types.d.ts +1 -2
  281. package/panel/theme.d.ts +1 -0
  282. package/panel/theme.js +2 -0
  283. package/popover/consts.d.ts +6 -0
  284. package/popover/consts.js +42 -0
  285. package/popover/index.d.ts +1 -1
  286. package/popover/index.js +1 -1
  287. package/popover/popover.d.ts +6 -2
  288. package/popover/popover.js +20 -4
  289. package/popover/popover.types.d.ts +4 -1
  290. package/popover/popoverContent.d.ts +2 -1
  291. package/popover/popoverContent.js +6 -1
  292. package/popover/popoverTrigger.d.ts +4 -0
  293. package/popover/popoverTrigger.js +4 -0
  294. package/popover/theme.d.ts +1 -0
  295. package/popover/theme.js +2 -0
  296. package/popover/usePopover.d.ts +5 -0
  297. package/popover/usePopover.js +26 -18
  298. package/popover/usePopover.types.d.ts +17 -6
  299. package/portal/index.d.ts +3 -0
  300. package/{styles → portal}/index.js +5 -5
  301. package/portal/portal.d.ts +5 -0
  302. package/portal/portal.js +56 -0
  303. package/portal/portal.types.d.ts +7 -0
  304. package/portal/portal.types.js +2 -0
  305. package/radio/index.d.ts +1 -1
  306. package/radio/index.js +2 -2
  307. package/radio/radio.d.ts +5 -4
  308. package/radio/radio.js +20 -10
  309. package/radio/radio.types.d.ts +19 -4
  310. package/radio/radioGroup.d.ts +5 -2
  311. package/radio/radioGroup.js +11 -7
  312. package/radio/radioGroup.types.d.ts +10 -2
  313. package/radio/theme.d.ts +1 -0
  314. package/radio/theme.js +2 -0
  315. package/skeleton/index.d.ts +1 -1
  316. package/skeleton/index.js +1 -1
  317. package/skeleton/skeleton.d.ts +2 -2
  318. package/skeleton/skeleton.js +4 -3
  319. package/skeleton/skeleton.types.d.ts +5 -2
  320. package/skeleton/theme.d.ts +1 -0
  321. package/skeleton/theme.js +2 -0
  322. package/spinner/index.d.ts +1 -1
  323. package/spinner/index.js +1 -1
  324. package/spinner/spinner.d.ts +6 -2
  325. package/spinner/spinner.js +12 -5
  326. package/spinner/spinner.types.d.ts +10 -6
  327. package/spinner/theme.d.ts +1 -0
  328. package/spinner/theme.js +2 -0
  329. package/svg/helpers.d.ts +1 -1
  330. package/svg/index.d.ts +1 -1
  331. package/svg/index.js +1 -1
  332. package/svg/svg.d.ts +6 -1
  333. package/svg/svg.js +16 -5
  334. package/svg/svg.types.d.ts +7 -5
  335. package/switch/context.d.ts +2 -2
  336. package/switch/index.d.ts +1 -1
  337. package/switch/index.js +2 -2
  338. package/switch/switch.d.ts +6 -3
  339. package/switch/switch.js +15 -12
  340. package/switch/switch.types.d.ts +37 -4
  341. package/switch/switchButton.d.ts +5 -5
  342. package/switch/switchButton.js +34 -26
  343. package/switch/switchLabel.d.ts +1 -0
  344. package/switch/switchLabel.js +3 -5
  345. package/switch/theme.d.ts +1 -0
  346. package/switch/theme.js +2 -0
  347. package/system/animations.d.ts +3 -4
  348. package/system/backgrounds.d.ts +4 -5
  349. package/system/borders.d.ts +60 -61
  350. package/system/custom.d.ts +4 -4
  351. package/system/effects.d.ts +7 -8
  352. package/system/flexboxGrids.d.ts +5 -6
  353. package/system/flexboxes.d.ts +28 -29
  354. package/system/grids.d.ts +25 -26
  355. package/system/index.d.ts +0 -1
  356. package/system/index.js +0 -6
  357. package/system/interactivity.d.ts +11 -12
  358. package/system/layout.d.ts +31 -32
  359. package/system/sizing.d.ts +13 -14
  360. package/system/space.d.ts +37 -38
  361. package/system/system.d.ts +4 -5
  362. package/system/system.js +3 -1
  363. package/system/tables.d.ts +5 -6
  364. package/system/transforms.d.ts +22 -23
  365. package/system/transitions.d.ts +11 -12
  366. package/system/typography.d.ts +33 -34
  367. package/t/index.d.ts +1 -1
  368. package/t/index.js +1 -1
  369. package/t/t.d.ts +2 -2
  370. package/t/t.js +5 -4
  371. package/t/t.types.d.ts +8 -2
  372. package/t/theme.d.ts +1 -0
  373. package/t/theme.js +2 -0
  374. package/tag/index.d.ts +1 -1
  375. package/tag/index.js +2 -2
  376. package/tag/tag.d.ts +6 -3
  377. package/tag/tag.js +14 -7
  378. package/tag/tag.types.d.ts +19 -6
  379. package/tag/tagButton.d.ts +1 -0
  380. package/tag/tagButton.js +4 -16
  381. package/tag/tagIcon.d.ts +1 -0
  382. package/tag/tagIcon.js +3 -5
  383. package/tag/tagText.d.ts +1 -0
  384. package/tag/tagText.js +3 -5
  385. package/tag/theme.d.ts +1 -0
  386. package/tag/theme.js +8 -0
  387. package/textarea/helpers.d.ts +1 -0
  388. package/textarea/helpers.js +1 -0
  389. package/textarea/index.d.ts +1 -1
  390. package/textarea/index.js +1 -1
  391. package/textarea/textarea.d.ts +5 -3
  392. package/textarea/textarea.js +23 -10
  393. package/textarea/textarea.types.d.ts +22 -2
  394. package/textarea/theme.d.ts +1 -0
  395. package/textarea/theme.js +2 -0
  396. package/theme/components.d.ts +129 -2
  397. package/theme/components.js +38 -36
  398. package/theme/defaultTheme.d.ts +134 -2
  399. package/theme/foundations/colors.d.ts +10 -0
  400. package/theme/foundations/colors.js +8 -2
  401. package/theme/foundations/index.d.ts +5 -0
  402. package/theme/foundations/shadows.js +3 -3
  403. package/theme/foundations/transformers.js +3 -2
  404. package/theme/index.d.ts +1 -3
  405. package/theme/index.js +4 -5
  406. package/theme/types.d.ts +3 -2
  407. package/utils/assertion.d.ts +5 -5
  408. package/utils/assertion.js +8 -4
  409. package/utils/index.d.ts +1 -0
  410. package/utils/index.js +1 -0
  411. package/utils/object.d.ts +2 -2
  412. package/utils/object.js +3 -1
  413. package/utils/react.d.ts +10 -5
  414. package/utils/react.js +64 -9
  415. package/utils/string.d.ts +5 -0
  416. package/utils/string.js +19 -0
  417. package/utils/styles.d.ts +2 -2
  418. package/utils/styles.js +4 -4
  419. package/utils/types.d.ts +11 -4
  420. package/core/types/component.d.ts +0 -25
  421. package/core/types/index.d.ts +0 -2
  422. package/core/types/index.js +0 -14
  423. package/core/types/themeGet.d.ts +0 -24
  424. package/core/utils.d.ts +0 -56
  425. package/core/utils.js +0 -194
  426. package/core/vuiProvider.d.ts +0 -20
  427. package/icons/library.d.ts +0 -11
  428. package/popover/plugins.d.ts +0 -3
  429. package/popover/plugins.js +0 -24
  430. package/styles/fontFaces.js +0 -4
  431. package/styles/helpers.d.ts +0 -4
  432. package/styles/helpers.js +0 -8
  433. package/styles/index.d.ts +0 -3
  434. /package/{styles → core/vuiProvider}/animations.d.ts +0 -0
  435. /package/{styles → core/vuiProvider}/animations.js +0 -0
  436. /package/{styles → core/vuiProvider}/fontFaces.d.ts +0 -0
  437. /package/{core/types/component.js → header/header.types.js} +0 -0
  438. /package/{core/types/themeGet.js → header/headerAccount.types.js} +0 -0
@@ -20,11 +20,10 @@ var button_1 = require("../button");
20
20
  var core_1 = require("../core");
21
21
  var popover_1 = require("../popover");
22
22
  var context_1 = require("./context");
23
+ /** Displays PopoverTrigger as a button. */
23
24
  exports.MenuButton = (0, core_1.vui)(function (props, ref) {
24
- var _a;
25
- var menuProps = (_a = (0, context_1.useMenuContext)()) !== null && _a !== void 0 ? _a : {};
26
- var styles = (0, core_1.useStyleConfig)('Menu', __assign(__assign({}, menuProps), props));
27
- return react_1.default.createElement(popover_1.PopoverTrigger, __assign({ as: button_1.AppButton, className: "vui-menuButton", ref: ref }, styles.button, props));
25
+ var styles = (0, core_1.useStyleConfig)('Menu', __assign(__assign({}, (0, context_1.useMenuContext)()), props));
26
+ return react_1.default.createElement(popover_1.PopoverTrigger, __assign({ as: button_1.TextButton, className: "vui-menuButton", ref: ref }, styles.button, props));
28
27
  });
29
28
  exports.MenuButton.displayName = 'MenuButton';
30
29
  exports.default = exports.MenuButton;
@@ -1,3 +1,4 @@
1
1
  import { ListItemProps } from '../list';
2
+ /** Displays a list item and by default closes the menu on click. */
2
3
  export declare const MenuItem: import("../core").VuiComponent<"li", ListItemProps>;
3
4
  export default MenuItem;
package/menu/menuItem.js CHANGED
@@ -10,25 +10,6 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
- Object.defineProperty(o, "default", { enumerable: true, value: v });
22
- }) : function(o, v) {
23
- o["default"] = v;
24
- });
25
- var __importStar = (this && this.__importStar) || function (mod) {
26
- if (mod && mod.__esModule) return mod;
27
- var result = {};
28
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
- __setModuleDefault(result, mod);
30
- return result;
31
- };
32
13
  var __rest = (this && this.__rest) || function (s, e) {
33
14
  var t = {};
34
15
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -40,23 +21,28 @@ var __rest = (this && this.__rest) || function (s, e) {
40
21
  }
41
22
  return t;
42
23
  };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
43
27
  Object.defineProperty(exports, "__esModule", { value: true });
44
28
  exports.MenuItem = void 0;
45
- var react_1 = __importStar(require("react"));
46
- var context_1 = require("./context");
29
+ var react_1 = __importDefault(require("react"));
47
30
  var core_1 = require("../core");
48
31
  var list_1 = require("../list");
49
32
  var popover_1 = require("../popover");
33
+ var utils_1 = require("../utils");
34
+ var context_1 = require("./context");
35
+ /** Displays a list item and by default closes the menu on click. */
50
36
  exports.MenuItem = (0, core_1.vui)(function (props, ref) {
51
37
  var _a, _b;
52
38
  var onClickProp = props.onClick, rest = __rest(props, ["onClick"]);
53
39
  var instance = ((_a = (0, popover_1.usePopoverContext)()) !== null && _a !== void 0 ? _a : {}).instance;
54
40
  var _c = (_b = (0, context_1.useMenuContext)()) !== null && _b !== void 0 ? _b : {}, closeOnSelect = _c.closeOnSelect, menuProps = __rest(_c, ["closeOnSelect"]);
55
41
  var styles = (0, core_1.useStyleConfig)('Menu', __assign(__assign({}, menuProps), props));
56
- var onClick = (0, react_1.useCallback)(function (e) {
42
+ var onClick = (0, utils_1.useCallbackRef)(function (e) {
57
43
  onClickProp === null || onClickProp === void 0 ? void 0 : onClickProp(e);
58
44
  closeOnSelect && (instance === null || instance === void 0 ? void 0 : instance.hide());
59
- }, [closeOnSelect, instance]);
45
+ });
60
46
  return react_1.default.createElement(list_1.ListItem, __assign({ className: "vui-menuItem", isInteractive: true, onClick: onClick, ref: ref }, styles.item, rest));
61
47
  });
62
48
  exports.MenuItem.displayName = 'MenuItem';
@@ -1,6 +1,7 @@
1
1
  import { VuiComponent } from '../core';
2
2
  import List from '../list';
3
3
  import { MenuListProps } from './menu.types';
4
+ /** Displays a list of menu items in a popover content element. */
4
5
  export declare const MenuList: VuiComponent<"ul", MenuListProps> & {
5
6
  Divider: typeof List.Divider;
6
7
  Heading: typeof List.Heading;
package/menu/menuList.js CHANGED
@@ -31,13 +31,12 @@ var core_1 = require("../core");
31
31
  var list_1 = __importDefault(require("../list"));
32
32
  var popover_1 = require("../popover");
33
33
  var context_1 = require("./context");
34
+ /** Displays a list of menu items in a popover content element. */
34
35
  exports.MenuList = (0, core_1.vui)(function (props, ref) {
35
- var _a;
36
36
  var contentProps = props.contentProps, contentRef = props.contentRef, rest = __rest(props, ["contentProps", "contentRef"]);
37
- var menuProps = (_a = (0, context_1.useMenuContext)()) !== null && _a !== void 0 ? _a : {};
38
- var styles = (0, core_1.useStyleConfig)('Menu', __assign(__assign({}, menuProps), props));
37
+ var styles = (0, core_1.useStyleConfig)('Menu', __assign(__assign({}, (0, context_1.useMenuContext)()), props));
39
38
  return (react_1.default.createElement(popover_1.PopoverContent, __assign({ ref: contentRef }, contentProps),
40
- react_1.default.createElement(list_1.default, __assign({ className: "vui-menuList", p: 1, ref: ref, size: "sm" }, styles.list, rest))));
39
+ react_1.default.createElement(list_1.default, __assign({ className: "vui-menuList", py: 1, ref: ref, w: "100%" }, styles.list, rest))));
41
40
  });
42
41
  exports.MenuList.displayName = 'MenuList';
43
42
  exports.MenuList.Divider = list_1.default.Divider;
package/menu/theme.d.ts CHANGED
@@ -1,7 +1,21 @@
1
1
  declare const _default: {
2
- defaultProps: {};
2
+ baseStyle: {};
3
+ defaultProps: {
4
+ size: string;
5
+ };
3
6
  parts: string[];
4
- sizes: {};
7
+ sizes: {
8
+ md: {
9
+ list: {
10
+ size: string;
11
+ };
12
+ };
13
+ lg: {
14
+ list: {
15
+ size: string;
16
+ };
17
+ };
18
+ };
5
19
  variants: {};
6
20
  };
7
21
  export default _default;
package/menu/theme.js CHANGED
@@ -1,10 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var defaultProps = {};
4
- var parts = ['container', 'button', 'item', 'list'];
5
- var sizes = {};
3
+ var baseStyle = {};
4
+ var defaultProps = {
5
+ size: 'md'
6
+ };
7
+ var parts = ['button', 'item', 'list'];
8
+ var sizes = {
9
+ md: {
10
+ list: {
11
+ size: 'sm'
12
+ }
13
+ },
14
+ lg: {
15
+ list: {
16
+ size: 'md'
17
+ }
18
+ }
19
+ };
6
20
  var variants = {};
7
21
  exports.default = {
22
+ baseStyle: baseStyle,
8
23
  defaultProps: defaultProps,
9
24
  parts: parts,
10
25
  sizes: sizes,
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { ModalContext } from './modal.types';
3
+ declare const ModalProvider: import("react").Provider<ModalContext>, useModalContext: () => ModalContext;
4
+ export { ModalProvider, useModalContext };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.useModalContext = exports.ModalProvider = void 0;
20
+ var utils_1 = require("../utils");
21
+ var _a = __read((0, utils_1.createContext)({ isOptional: true }), 2), ModalProvider = _a[0], useModalContext = _a[1];
22
+ exports.ModalProvider = ModalProvider;
23
+ exports.useModalContext = useModalContext;
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ import { FocusLockProps } from './focusLock.types';
3
+ /**
4
+ * Traps the focus within the provided content. That is, tabbing with keyboard will
5
+ * only cycle through the children and won't leave the boundary of the FocusLock.
6
+ * This behavior enhances accessibility of the Modal component.
7
+ */
8
+ export declare const FocusLock: FC<FocusLockProps>;
9
+ export default FocusLock;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.FocusLock = void 0;
26
+ var react_1 = __importStar(require("react"));
27
+ var react_focus_lock_1 = __importDefault(require("react-focus-lock"));
28
+ /**
29
+ * Traps the focus within the provided content. That is, tabbing with keyboard will
30
+ * only cycle through the children and won't leave the boundary of the FocusLock.
31
+ * This behavior enhances accessibility of the Modal component.
32
+ */
33
+ var FocusLock = function (props) {
34
+ var autoFocus = props.autoFocus, children = props.children, crossFrame = props.crossFrame, finalFocusRef = props.finalFocusRef, initialFocusRef = props.initialFocusRef, isDisabled = props.isDisabled, persistentFocus = props.persistentFocus, returnFocusProp = props.returnFocus;
35
+ var onActivation = react_1.default.useCallback(function () {
36
+ var _a;
37
+ (_a = initialFocusRef === null || initialFocusRef === void 0 ? void 0 : initialFocusRef.current) === null || _a === void 0 ? void 0 : _a.focus();
38
+ }, [initialFocusRef]);
39
+ var onDeactivation = (0, react_1.useCallback)(function () {
40
+ var _a;
41
+ (_a = finalFocusRef === null || finalFocusRef === void 0 ? void 0 : finalFocusRef.current) === null || _a === void 0 ? void 0 : _a.focus();
42
+ }, [finalFocusRef]);
43
+ var returnFocus = returnFocusProp && !finalFocusRef;
44
+ return (react_1.default.createElement(react_focus_lock_1.default, { autoFocus: autoFocus, crossFrame: crossFrame, disabled: isDisabled, onActivation: onActivation, onDeactivation: onDeactivation, persistentFocus: persistentFocus, returnFocus: returnFocus }, children));
45
+ };
46
+ exports.FocusLock = FocusLock;
47
+ exports.default = exports.FocusLock;
@@ -0,0 +1,28 @@
1
+ /// <reference types="react" />
2
+ export declare type FocusableElement = {
3
+ focus(options?: FocusOptions): void;
4
+ };
5
+ export declare type FocusLockProps = {
6
+ /**
7
+ * The first focuable element within the 'children' will be auto-focused once 'FocusLock' mounts.
8
+ * @default true
9
+ */
10
+ autoFocus?: boolean;
11
+ /**
12
+ * Enables aggressive focus capturing within iframes.
13
+ * - 'true' keeps focus in the lock, no matter where the lock is active.
14
+ * - 'false' allows focus to move outside of iframe, if enabled inside iframe.
15
+ * @default true
16
+ */
17
+ crossFrame?: boolean;
18
+ /** 'ref' of the element to return focus to when FocusLock unmounts. */
19
+ finalFocusRef?: React.RefObject<FocusableElement>;
20
+ /** 'ref' of the element to receive focus initially when FocusLock mounts. */
21
+ initialFocusRef?: React.RefObject<FocusableElement>;
22
+ /** Disables focus trapping. */
23
+ isDisabled?: boolean;
24
+ /** Disables text selections inside, and outside focus lock. */
25
+ persistentFocus?: boolean;
26
+ /** Focus will be returned to the element that triggered the FocusLock once it unmounts. */
27
+ returnFocus?: boolean;
28
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ export * from './context';
2
+ export * from './focusLock';
3
+ export * from './focusLock.types';
4
+ export * from './modal';
5
+ export { default as Modal } from './modal';
6
+ export * from './modal.types';
7
+ export * from './modalBackdrop';
package/modal/index.js ADDED
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.Modal = void 0;
17
+ __exportStar(require("./context"), exports);
18
+ __exportStar(require("./focusLock"), exports);
19
+ __exportStar(require("./focusLock.types"), exports);
20
+ __exportStar(require("./modal"), exports);
21
+ var modal_1 = require("./modal");
22
+ Object.defineProperty(exports, "Modal", { enumerable: true, get: function () { return __importDefault(modal_1).default; } });
23
+ __exportStar(require("./modal.types"), exports);
24
+ __exportStar(require("./modalBackdrop"), exports);
@@ -0,0 +1,10 @@
1
+ import { ModalProps } from './modal.types';
2
+ export declare const ModalBase: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("..").SystemProps, never>;
3
+ /**
4
+ * Displays provided content on top of a dark backdrop element with fixed position.
5
+ * By default uses Portal for content and closes when clicking backdrop or pressing 'Escape'.
6
+ * Uses focus and scroll lock to achieve proper accessibility.
7
+ * More about accessibility: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/dialog_role
8
+ */
9
+ export declare const Modal: import("../core").VuiComponent<"div", ModalProps>;
10
+ export default Modal;
package/modal/modal.js ADDED
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __rest = (this && this.__rest) || function (s, e) {
37
+ var t = {};
38
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
39
+ t[p] = s[p];
40
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
41
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
42
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
43
+ t[p[i]] = s[p[i]];
44
+ }
45
+ return t;
46
+ };
47
+ var __importDefault = (this && this.__importDefault) || function (mod) {
48
+ return (mod && mod.__esModule) ? mod : { "default": mod };
49
+ };
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.Modal = exports.ModalBase = void 0;
52
+ var react_1 = __importStar(require("react"));
53
+ var react_remove_scroll_1 = require("react-remove-scroll");
54
+ var core_1 = require("../core");
55
+ var portal_1 = __importDefault(require("../portal"));
56
+ var utils_1 = require("../utils");
57
+ var context_1 = require("./context");
58
+ var focusLock_1 = __importDefault(require("./focusLock"));
59
+ var modalBackdrop_1 = __importDefault(require("./modalBackdrop"));
60
+ var modalManager_1 = require("./modalManager");
61
+ exports.ModalBase = core_1.styled.divBox(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n\tinset: 0px;\n\toutline: none;\n\tposition: fixed;\n\tz-index: 1000;\n"], ["\n\tinset: 0px;\n\toutline: none;\n\tposition: fixed;\n\tz-index: 1000;\n"
62
+ /**
63
+ * Displays provided content on top of a dark backdrop element with fixed position.
64
+ * By default uses Portal for content and closes when clicking backdrop or pressing 'Escape'.
65
+ * Uses focus and scroll lock to achieve proper accessibility.
66
+ * More about accessibility: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/dialog_role
67
+ */
68
+ ])));
69
+ /**
70
+ * Displays provided content on top of a dark backdrop element with fixed position.
71
+ * By default uses Portal for content and closes when clicking backdrop or pressing 'Escape'.
72
+ * Uses focus and scroll lock to achieve proper accessibility.
73
+ * More about accessibility: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/dialog_role
74
+ */
75
+ exports.Modal = (0, core_1.vui)(function (props, ref) {
76
+ var _a;
77
+ var allowPinchZoom = props.allowPinchZoom, children = props.children, disableAutoFocus = props.disableAutoFocus, disableBackdropClose = props.disableBackdropClose, disableEscClose = props.disableEscClose, disablePortal = props.disablePortal, disableReturnFocus = props.disableReturnFocus, disableScrollLock = props.disableScrollLock, finalFocusRef = props.finalFocusRef, hideBackdrop = props.hideBackdrop, initialFocusRef = props.initialFocusRef, isOpen = props.isOpen, onBackdropClickProp = props.onBackdropClick, onClose = props.onClose, onEsc = props.onEsc, onKeyDownProp = props.onKeyDown, preserveScrollBar = props.preserveScrollBar, rest = __rest(props, ["allowPinchZoom", "children", "disableAutoFocus", "disableBackdropClose", "disableEscClose", "disablePortal", "disableReturnFocus", "disableScrollLock", "finalFocusRef", "hideBackdrop", "initialFocusRef", "isOpen", "onBackdropClick", "onClose", "onEsc", "onKeyDown", "preserveScrollBar"]);
78
+ var modalRef = (0, react_1.useRef)(null);
79
+ (0, modalManager_1.useModalManager)(modalRef, isOpen);
80
+ if (!isOpen)
81
+ return null;
82
+ var onBackdropClick = function (e) {
83
+ e.stopPropagation();
84
+ if (!modalManager_1.manager.isTopModal(modalRef))
85
+ return;
86
+ !disableBackdropClose && (onClose === null || onClose === void 0 ? void 0 : onClose());
87
+ onBackdropClickProp === null || onBackdropClickProp === void 0 ? void 0 : onBackdropClickProp(e);
88
+ };
89
+ var onKeyDown = function (e) {
90
+ onKeyDownProp === null || onKeyDownProp === void 0 ? void 0 : onKeyDownProp(e);
91
+ if (e.key === 'Escape') {
92
+ e.stopPropagation();
93
+ !disableEscClose && (onClose === null || onClose === void 0 ? void 0 : onClose());
94
+ onEsc === null || onEsc === void 0 ? void 0 : onEsc();
95
+ }
96
+ };
97
+ var childProps = { tabIndex: (_a = children === null || children === void 0 ? void 0 : children.props.tabIndex) !== null && _a !== void 0 ? _a : -1 };
98
+ var context = { isOpen: isOpen, onBackdropClick: onBackdropClick, onClose: onClose };
99
+ return (react_1.default.createElement(context_1.ModalProvider, { value: context },
100
+ react_1.default.createElement(portal_1.default, { disablePortal: disablePortal },
101
+ react_1.default.createElement(exports.ModalBase, __assign({ className: "vui-modal", onKeyDown: onKeyDown, ref: (0, utils_1.mergeRefs)(ref, modalRef), role: "presentation", tabIndex: -1 }, rest),
102
+ !hideBackdrop && react_1.default.createElement(modalBackdrop_1.default, null),
103
+ react_1.default.createElement(focusLock_1.default, { autoFocus: !disableAutoFocus, finalFocusRef: finalFocusRef, initialFocusRef: initialFocusRef,
104
+ // isDisabled={disableTrapFocus} Consider if this prop might be useful for some use case
105
+ returnFocus: !disableReturnFocus },
106
+ react_1.default.createElement(react_remove_scroll_1.RemoveScroll, { allowPinchZoom: allowPinchZoom, enabled: !disableScrollLock, forwardProps: true, removeScrollBar: !preserveScrollBar }, (0, react_1.cloneElement)(children, childProps)))))));
107
+ });
108
+ exports.default = exports.Modal;
109
+ var templateObject_1;
@@ -0,0 +1,40 @@
1
+ /// <reference types="react" />
2
+ import { SystemProps } from '../system';
3
+ import { MouseEvent } from '../utils';
4
+ import { FocusableElement } from './focusLock.types';
5
+ export declare type ModalBackdropProps = SystemProps;
6
+ export declare type ModalContext = Pick<ModalProps, 'isOpen' | 'onBackdropClick' | 'onClose'>;
7
+ export declare type ModalProps = SystemProps & {
8
+ /** Handle zoom/pinch gestures on iOS devices when scroll locking is enabled. */
9
+ allowPinchZoom?: boolean;
10
+ /** A single child content element. */
11
+ children: React.ReactElement;
12
+ /** It won't auto-focus the first focuable element within the 'children' once FocusLock mounts. */
13
+ disableAutoFocus?: boolean;
14
+ /** Clicking Backdrop element will not trigger 'onClose'. */
15
+ disableBackdropClose?: boolean;
16
+ /** Pressing 'Escape' will not trigger 'onClose'. */
17
+ disableEscClose?: boolean;
18
+ /** The children will be under the DOM hierarchy of the parent component. */
19
+ disablePortal?: boolean;
20
+ /** Focus won't be returned to the element that triggered the FocusLock once it unmounts. */
21
+ disableReturnFocus?: boolean;
22
+ /** Allows scrolling to happen on the content beneath the Modal. */
23
+ disableScrollLock?: boolean;
24
+ /** 'ref' of the element to return focus to when FocusLock unmounts. */
25
+ finalFocusRef?: React.RefObject<FocusableElement>;
26
+ /** Hides the dark backdrop element that is normally displayed beneath modal content. */
27
+ hideBackdrop?: boolean;
28
+ /** 'ref' of the element to receive focus initially when FocusLock mounts. */
29
+ initialFocusRef?: React.RefObject<FocusableElement>;
30
+ /** Displays the modal with its content on top of a backdrop. */
31
+ isOpen?: boolean;
32
+ /** Callback triggered when the backdrop element is clicked. Defaults to onClose. */
33
+ onBackdropClick?: (e: MouseEvent) => void;
34
+ /** Callback triggered to close the modal. */
35
+ onClose?: () => void;
36
+ /** Callback triggered when pressing 'Escape' key. Defaults to onClose. */
37
+ onEsc?: () => void;
38
+ /** Test this prop on Windows scrollbars */
39
+ preserveScrollBar?: boolean;
40
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export declare const ModalBackdropBase: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("..").SystemProps, never>;
2
+ /** Displays a dark overlay underneath modal content, but on top of page content . */
3
+ export declare const ModalBackdrop: import("../core").VuiComponent<"div", import("..").SystemProps>;
4
+ export default ModalBackdrop;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.ModalBackdrop = exports.ModalBackdropBase = void 0;
22
+ var react_1 = __importDefault(require("react"));
23
+ var core_1 = require("../core");
24
+ var theme_1 = require("../theme");
25
+ var utils_1 = require("../utils");
26
+ var context_1 = require("./context");
27
+ exports.ModalBackdropBase = core_1.styled.divBox(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n\tanimation: vui-fadeIn 0.3s ease;\n\tbackground-color: ", ";\n\tinset: 0px;\n\tposition: fixed;\n\tz-index: -1;\n"], ["\n\tanimation: vui-fadeIn 0.3s ease;\n\tbackground-color: ", ";\n\tinset: 0px;\n\tposition: fixed;\n\tz-index: -1;\n"
28
+ /** Displays a dark overlay underneath modal content, but on top of page content . */
29
+ ])), (0, utils_1.hexToRGBA)(theme_1.colors.prussian[80], 0.3));
30
+ /** Displays a dark overlay underneath modal content, but on top of page content . */
31
+ exports.ModalBackdrop = (0, core_1.vui)(function (props, ref) {
32
+ var _a;
33
+ var onBackdropClick = ((_a = (0, context_1.useModalContext)()) !== null && _a !== void 0 ? _a : {}).onBackdropClick;
34
+ return react_1.default.createElement(exports.ModalBackdropBase, __assign({ className: "vui-modalBackdrop", onClick: onBackdropClick, ref: ref }, props));
35
+ });
36
+ exports.ModalBackdrop.displayName = 'ModalBackdrop';
37
+ exports.default = exports.ModalBackdrop;
38
+ var templateObject_1;
@@ -0,0 +1,12 @@
1
+ import { Ref } from 'react';
2
+ /** State management for nested modals. */
3
+ declare class ModalManager {
4
+ modals: any[];
5
+ add: (modal: any) => void;
6
+ remove: (modal: any) => void;
7
+ isTopModal: (modal: any) => boolean;
8
+ }
9
+ export declare const manager: ModalManager;
10
+ /** Refs of new modals will be automatically added/removed from the state when rendering. */
11
+ export declare function useModalManager(ref: Ref<any>, isOpen?: boolean): void;
12
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useModalManager = exports.manager = void 0;
4
+ var react_1 = require("react");
5
+ /** State management for nested modals. */
6
+ var ModalManager = /** @class */ (function () {
7
+ function ModalManager() {
8
+ var _this = this;
9
+ this.modals = [];
10
+ this.add = function (modal) {
11
+ _this.modals.push(modal);
12
+ };
13
+ this.remove = function (modal) {
14
+ _this.modals = _this.modals.filter(function (m) { return m !== modal; });
15
+ };
16
+ this.isTopModal = function (modal) {
17
+ var topmostModal = _this.modals[_this.modals.length - 1];
18
+ return topmostModal === modal;
19
+ };
20
+ }
21
+ return ModalManager;
22
+ }());
23
+ exports.manager = new ModalManager();
24
+ /** Refs of new modals will be automatically added/removed from the state when rendering. */
25
+ function useModalManager(ref, isOpen) {
26
+ (0, react_1.useEffect)(function () {
27
+ isOpen && exports.manager.add(ref);
28
+ return function () {
29
+ exports.manager.remove(ref);
30
+ };
31
+ }, [isOpen, ref]);
32
+ }
33
+ exports.useModalManager = useModalManager;
@@ -0,0 +1,7 @@
1
+ declare const _default: {
2
+ baseStyle: {};
3
+ defaultProps: {};
4
+ sizes: {};
5
+ variants: {};
6
+ };
7
+ export default _default;
package/modal/theme.js ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var baseStyle = {};
4
+ var defaultProps = {};
5
+ var sizes = {};
6
+ var variants = {};
7
+ exports.default = {
8
+ baseStyle: baseStyle,
9
+ defaultProps: defaultProps,
10
+ sizes: sizes,
11
+ variants: variants
12
+ };
@@ -18,8 +18,8 @@ exports.notificationStatusMapping = {
18
18
  colorScheme: 'blue',
19
19
  iconProps: {
20
20
  animation: 'vui-spin 0.6s linear infinite',
21
- fill: ['blue.40', 'blue.60'],
22
- name: 'fadSpinnerThird'
21
+ name: 'fadSpinnerThird',
22
+ pathFill: ['blue.40', 'blue.60']
23
23
  }
24
24
  },
25
25
  success: {
@@ -1,8 +1,8 @@
1
+ export * from './context';
1
2
  export * from './notification';
3
+ export { default } from './notification';
2
4
  export * from './notification.types';
3
5
  export * from './notificationButton';
4
6
  export * from './notificationIcon';
5
7
  export * from './notificationText';
6
8
  export * from './notificationTitle';
7
- export * from './context';
8
- export { default } from './notification';
@@ -14,12 +14,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.default = void 0;
17
+ __exportStar(require("./context"), exports);
17
18
  __exportStar(require("./notification"), exports);
19
+ var notification_1 = require("./notification");
20
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(notification_1).default; } });
18
21
  __exportStar(require("./notification.types"), exports);
19
22
  __exportStar(require("./notificationButton"), exports);
20
23
  __exportStar(require("./notificationIcon"), exports);
21
24
  __exportStar(require("./notificationText"), exports);
22
25
  __exportStar(require("./notificationTitle"), exports);
23
- __exportStar(require("./context"), exports);
24
- var notification_1 = require("./notification");
25
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(notification_1).default; } });