@lumx/react 3.10.1-alpha.0 → 3.10.1-alpha.2

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 (329) hide show
  1. package/_internal/17c3ea1d.js +137 -0
  2. package/_internal/17c3ea1d.js.map +1 -0
  3. package/_internal/1da25128.js +411 -0
  4. package/_internal/1da25128.js.map +1 -0
  5. package/_internal/230173a8.js +13 -0
  6. package/_internal/230173a8.js.map +1 -0
  7. package/_internal/23bdba2d.js +71 -0
  8. package/_internal/23bdba2d.js.map +1 -0
  9. package/_internal/26926e5c.d.ts +36 -0
  10. package/_internal/2a3d237c.js +12 -0
  11. package/_internal/2a3d237c.js.map +1 -0
  12. package/_internal/2c5dbb03.js +26 -0
  13. package/_internal/2c5dbb03.js.map +1 -0
  14. package/_internal/2e2abe51.js +2154 -0
  15. package/_internal/2e2abe51.js.map +1 -0
  16. package/_internal/31490c59.d.ts +167 -0
  17. package/_internal/3181f000.js +14 -0
  18. package/_internal/3181f000.js.map +1 -0
  19. package/_internal/35f100be.d.ts +104 -0
  20. package/_internal/36bd7352.js +219 -0
  21. package/_internal/36bd7352.js.map +1 -0
  22. package/_internal/3a1facc0.js +18 -0
  23. package/_internal/3a1facc0.js.map +1 -0
  24. package/_internal/4c20d932.js +89 -0
  25. package/_internal/4c20d932.js.map +1 -0
  26. package/_internal/4c28d012.js +305 -0
  27. package/_internal/4c28d012.js.map +1 -0
  28. package/_internal/4cd0bf32.js +160 -0
  29. package/_internal/4cd0bf32.js.map +1 -0
  30. package/_internal/4daccdd5.js +25 -0
  31. package/_internal/4daccdd5.js.map +1 -0
  32. package/_internal/524b1d04.js +64 -0
  33. package/_internal/524b1d04.js.map +1 -0
  34. package/_internal/53c94227.js +123 -0
  35. package/_internal/53c94227.js.map +1 -0
  36. package/_internal/54d9ded5.js +418 -0
  37. package/_internal/54d9ded5.js.map +1 -0
  38. package/_internal/56aec41b.js +652 -0
  39. package/_internal/56aec41b.js.map +1 -0
  40. package/_internal/5720caf5.js +124 -0
  41. package/_internal/5720caf5.js.map +1 -0
  42. package/_internal/646f0db6.js +113 -0
  43. package/_internal/646f0db6.js.map +1 -0
  44. package/_internal/6cc8dca8.d.ts +22 -0
  45. package/_internal/7f022f8c.d.ts +34 -0
  46. package/_internal/{index.d.ts → 8d67e1e3.d.ts} +1 -1
  47. package/_internal/b8f2948d.js +691 -0
  48. package/_internal/b8f2948d.js.map +1 -0
  49. package/_internal/bc28d510.js +784 -0
  50. package/_internal/bc28d510.js.map +1 -0
  51. package/_internal/c68d24e4.js +145 -0
  52. package/_internal/c68d24e4.js.map +1 -0
  53. package/_internal/c6c99f76.js +105 -0
  54. package/_internal/c6c99f76.js.map +1 -0
  55. package/_internal/cae46566.js +65 -0
  56. package/_internal/cae46566.js.map +1 -0
  57. package/_internal/components/alert-dialog/index.ts-623b1ed3.d.ts +37 -0
  58. package/_internal/components/alert-dialog/index.ts-f83bd6ef.js +148 -0
  59. package/_internal/components/alert-dialog/index.ts-f83bd6ef.js.map +1 -0
  60. package/_internal/components/autocomplete/index.ts-3f8f125c.js +264 -0
  61. package/_internal/components/autocomplete/index.ts-3f8f125c.js.map +1 -0
  62. package/_internal/components/autocomplete/index.ts-8d6b123f.d.ts +201 -0
  63. package/_internal/components/avatar/index.ts-93ee0ea9.js +89 -0
  64. package/_internal/components/avatar/index.ts-93ee0ea9.js.map +1 -0
  65. package/_internal/components/avatar/index.ts-f92852b4.d.ts +43 -0
  66. package/_internal/components/badge/index.ts-2d7700ef.d.ts +30 -0
  67. package/_internal/components/badge/index.ts-6753d67f.js +88 -0
  68. package/_internal/components/badge/index.ts-6753d67f.js.map +1 -0
  69. package/_internal/components/button/index.ts-031307ce.js +51 -0
  70. package/_internal/components/button/index.ts-031307ce.js.map +1 -0
  71. package/_internal/components/button/index.ts-b29e26a4.d.ts +22 -0
  72. package/_internal/components/checkbox/index.ts-a33166d7.js +127 -0
  73. package/_internal/components/checkbox/index.ts-a33166d7.js.map +1 -0
  74. package/_internal/components/checkbox/index.ts-f82358ff.d.ts +38 -0
  75. package/_internal/components/chip/index.ts-4a91f1a7.d.ts +68 -0
  76. package/_internal/components/chip/index.ts-a2b5b771.js +110 -0
  77. package/_internal/components/chip/index.ts-a2b5b771.js.map +1 -0
  78. package/_internal/components/comment-block/index.ts-58fa051a.js +121 -0
  79. package/_internal/components/comment-block/index.ts-58fa051a.js.map +1 -0
  80. package/_internal/components/comment-block/index.ts-8cfa5af0.d.ts +67 -0
  81. package/_internal/components/date-picker/index.ts-145262d5.js +2 -0
  82. package/_internal/components/date-picker/index.ts-145262d5.js.map +1 -0
  83. package/_internal/components/date-picker/index.ts-70a34fa7.d.ts +95 -0
  84. package/_internal/components/dialog/index.ts-ea044db2.js +224 -0
  85. package/_internal/components/dialog/index.ts-ea044db2.js.map +1 -0
  86. package/_internal/components/dialog/index.ts-eca28654.d.ts +55 -0
  87. package/_internal/components/divider/index.ts-4a56db75.js +55 -0
  88. package/_internal/components/divider/index.ts-4a56db75.js.map +1 -0
  89. package/_internal/components/divider/index.ts-b011d8ca.d.ts +18 -0
  90. package/_internal/components/drag-handle/index.ts-0aebf92f.js +54 -0
  91. package/_internal/components/drag-handle/index.ts-0aebf92f.js.map +1 -0
  92. package/_internal/components/drag-handle/index.ts-3ab31dd1.d.ts +18 -0
  93. package/_internal/components/dropdown/index.ts-2a17db51.js +154 -0
  94. package/_internal/components/dropdown/index.ts-2a17db51.js.map +1 -0
  95. package/_internal/components/dropdown/index.ts-b648a15c.d.ts +87 -0
  96. package/_internal/components/expansion-panel/index.ts-69f09f5b.d.ts +38 -0
  97. package/_internal/components/expansion-panel/index.ts-fae3762e.js +143 -0
  98. package/_internal/components/expansion-panel/index.ts-fae3762e.js.map +1 -0
  99. package/_internal/components/flag/index.ts-8dcd685b.js +56 -0
  100. package/_internal/components/flag/index.ts-8dcd685b.js.map +1 -0
  101. package/_internal/components/flag/index.ts-fda89adb.d.ts +23 -0
  102. package/_internal/components/flex-box/index.ts-87f2b58d.d.ts +43 -0
  103. package/_internal/components/flex-box/index.ts-c216e957.js +60 -0
  104. package/_internal/components/flex-box/index.ts-c216e957.js.map +1 -0
  105. package/_internal/components/generic-block/index.ts-999a62a4.js +115 -0
  106. package/_internal/components/generic-block/index.ts-999a62a4.js.map +1 -0
  107. package/_internal/components/generic-block/index.ts-cd3b0e21.d.ts +106 -0
  108. package/_internal/components/grid/index.ts-67e0694f.d.ts +50 -0
  109. package/_internal/components/grid/index.ts-fdf1b306.js +113 -0
  110. package/_internal/components/grid/index.ts-fdf1b306.js.map +1 -0
  111. package/_internal/components/grid-column/index.ts-97c61cbe.js +64 -0
  112. package/_internal/components/grid-column/index.ts-97c61cbe.js.map +1 -0
  113. package/_internal/components/grid-column/index.ts-c89e1c18.d.ts +31 -0
  114. package/_internal/components/heading/index.ts-0179e9a9.js +112 -0
  115. package/_internal/components/heading/index.ts-0179e9a9.js.map +1 -0
  116. package/_internal/components/heading/index.ts-587579e8.d.ts +37 -0
  117. package/_internal/components/icon/index.ts-740ca1de.js +2 -0
  118. package/_internal/components/icon/index.ts-740ca1de.js.map +1 -0
  119. package/_internal/components/icon/index.ts-b3fa5e15.d.ts +34 -0
  120. package/_internal/components/image-block/index.ts-36b3828f.d.ts +49 -0
  121. package/_internal/components/image-block/index.ts-ef5e2e7d.js +111 -0
  122. package/_internal/components/image-block/index.ts-ef5e2e7d.js.map +1 -0
  123. package/_internal/components/image-lightbox/index.ts-137f85a8.js +765 -0
  124. package/_internal/components/image-lightbox/index.ts-137f85a8.js.map +1 -0
  125. package/_internal/components/image-lightbox/index.ts-2cb92d18.d.ts +75 -0
  126. package/_internal/components/inline-list/index.ts-033dd358.js +76 -0
  127. package/_internal/components/inline-list/index.ts-033dd358.js.map +1 -0
  128. package/_internal/components/inline-list/index.ts-e1c8a3ff.d.ts +34 -0
  129. package/_internal/components/input-helper/index.ts-32a9ca90.d.ts +22 -0
  130. package/_internal/components/input-helper/index.ts-ab3a1ef5.js +75 -0
  131. package/_internal/components/input-helper/index.ts-ab3a1ef5.js.map +1 -0
  132. package/_internal/components/input-label/index.ts-86f2ea41.d.ts +24 -0
  133. package/_internal/components/input-label/index.ts-d6ca5569.js +60 -0
  134. package/_internal/components/input-label/index.ts-d6ca5569.js.map +1 -0
  135. package/_internal/components/lightbox/index.ts-5370e8e6.d.ts +36 -0
  136. package/_internal/components/lightbox/index.ts-7a16cdc7.js +149 -0
  137. package/_internal/components/lightbox/index.ts-7a16cdc7.js.map +1 -0
  138. package/_internal/components/link/index.ts-26435006.d.ts +37 -0
  139. package/_internal/components/link/index.ts-d04f4e53.js +120 -0
  140. package/_internal/components/link/index.ts-d04f4e53.js.map +1 -0
  141. package/_internal/components/link-preview/index.ts-e560a274.d.ts +36 -0
  142. package/_internal/components/link-preview/index.ts-fee89f66.js +109 -0
  143. package/_internal/components/link-preview/index.ts-fee89f66.js.map +1 -0
  144. package/_internal/components/list/index.ts-ab57902e.d.ts +118 -0
  145. package/_internal/components/list/index.ts-f3101625.js +86 -0
  146. package/_internal/components/list/index.ts-f3101625.js.map +1 -0
  147. package/_internal/components/message/index.ts-041cf0cb.js +97 -0
  148. package/_internal/components/message/index.ts-041cf0cb.js.map +1 -0
  149. package/_internal/components/message/index.ts-2d38e0ea.d.ts +37 -0
  150. package/_internal/components/mosaic/index.ts-232d5aed.d.ts +23 -0
  151. package/_internal/components/mosaic/index.ts-d2128cd3.js +94 -0
  152. package/_internal/components/mosaic/index.ts-d2128cd3.js.map +1 -0
  153. package/_internal/components/navigation/index.ts-6d8bea53.d.ts +58 -0
  154. package/_internal/components/navigation/index.ts-e8dc0a7f.js +222 -0
  155. package/_internal/components/navigation/index.ts-e8dc0a7f.js.map +1 -0
  156. package/_internal/components/notification/index.ts-235fd340.js +140 -0
  157. package/_internal/components/notification/index.ts-235fd340.js.map +1 -0
  158. package/_internal/components/notification/index.ts-bb3f03f6.d.ts +34 -0
  159. package/_internal/components/popover/index.ts-2f17a9b6.js +3 -0
  160. package/_internal/components/popover/index.ts-2f17a9b6.js.map +1 -0
  161. package/_internal/components/popover/index.ts-e3b4ff19.d.ts +66 -0
  162. package/_internal/components/post-block/index.ts-0acb9bb4.js +101 -0
  163. package/_internal/components/post-block/index.ts-0acb9bb4.js.map +1 -0
  164. package/_internal/components/post-block/index.ts-9b8ff90b.d.ts +41 -0
  165. package/_internal/components/progress/index.ts-2a713859.js +189 -0
  166. package/_internal/components/progress/index.ts-2a713859.js.map +1 -0
  167. package/_internal/components/progress/index.ts-dfdfa5fb.d.ts +60 -0
  168. package/_internal/components/progress-tracker/index.ts-2649f756.js +312 -0
  169. package/_internal/components/progress-tracker/index.ts-2649f756.js.map +1 -0
  170. package/_internal/components/progress-tracker/index.ts-95320f32.d.ts +101 -0
  171. package/_internal/components/radio-button/index.ts-5eaab4cf.d.ts +54 -0
  172. package/_internal/components/radio-button/index.ts-b4dfb2a0.js +150 -0
  173. package/_internal/components/radio-button/index.ts-b4dfb2a0.js.map +1 -0
  174. package/_internal/components/select/index.ts-a65e3507.d.ts +91 -0
  175. package/_internal/components/select/index.ts-e8fad28b.js +257 -0
  176. package/_internal/components/select/index.ts-e8fad28b.js.map +1 -0
  177. package/_internal/components/side-navigation/index.ts-3f5f3785.d.ts +60 -0
  178. package/_internal/components/side-navigation/index.ts-c9a5fc3e.js +184 -0
  179. package/_internal/components/side-navigation/index.ts-c9a5fc3e.js.map +1 -0
  180. package/_internal/components/skeleton/index.ts-a7daefac.d.ts +75 -0
  181. package/_internal/components/skeleton/index.ts-ffc995af.js +179 -0
  182. package/_internal/components/skeleton/index.ts-ffc995af.js.map +1 -0
  183. package/_internal/components/slider/index.ts-24a0d598.d.ts +52 -0
  184. package/_internal/components/slider/index.ts-72aadf4c.js +308 -0
  185. package/_internal/components/slider/index.ts-72aadf4c.js.map +1 -0
  186. package/_internal/components/slideshow/index.ts-c99f2892.js +151 -0
  187. package/_internal/components/slideshow/index.ts-c99f2892.js.map +1 -0
  188. package/_internal/components/slideshow/index.ts-e49462c6.d.ts +25 -0
  189. package/_internal/components/switch/index.ts-207ba52b.d.ts +34 -0
  190. package/_internal/components/switch/index.ts-542e6eaf.js +115 -0
  191. package/_internal/components/switch/index.ts-542e6eaf.js.map +1 -0
  192. package/_internal/components/table/index.ts-905ce390.js +310 -0
  193. package/_internal/components/table/index.ts-905ce390.js.map +1 -0
  194. package/_internal/components/table/index.ts-c4f39b2d.d.ts +108 -0
  195. package/_internal/components/tabs/index.ts-713119f4.js +289 -0
  196. package/_internal/components/tabs/index.ts-713119f4.js.map +1 -0
  197. package/_internal/components/tabs/index.ts-dbfc48d9.d.ts +106 -0
  198. package/_internal/components/text/index.ts-6afbe8cd.js +2 -0
  199. package/_internal/components/text/index.ts-6afbe8cd.js.map +1 -0
  200. package/_internal/components/text/index.ts-8a812048.d.ts +53 -0
  201. package/_internal/components/text-field/index.ts-92e6b3b3.d.ts +77 -0
  202. package/_internal/components/text-field/index.ts-c3be8563.js +341 -0
  203. package/_internal/components/text-field/index.ts-c3be8563.js.map +1 -0
  204. package/_internal/components/thumbnail/index.ts-16d7b403.js +40 -0
  205. package/_internal/components/thumbnail/index.ts-16d7b403.js.map +1 -0
  206. package/_internal/components/thumbnail/index.ts-1b6c0b48.d.ts +8 -0
  207. package/_internal/components/toolbar/index.ts-813b902e.js +63 -0
  208. package/_internal/components/toolbar/index.ts-813b902e.js.map +1 -0
  209. package/_internal/components/toolbar/index.ts-9f5129d1.d.ts +24 -0
  210. package/_internal/components/tooltip/index.ts-905c847c.js +322 -0
  211. package/_internal/components/tooltip/index.ts-905c847c.js.map +1 -0
  212. package/_internal/components/tooltip/index.ts-c6931e9e.d.ts +35 -0
  213. package/_internal/components/uploader/index.ts-31f21c2a.js +132 -0
  214. package/_internal/components/uploader/index.ts-31f21c2a.js.map +1 -0
  215. package/_internal/components/uploader/index.ts-c3ccba98.d.ts +51 -0
  216. package/_internal/components/user-block/index.ts-18c58e19.d.ts +50 -0
  217. package/_internal/components/user-block/index.ts-d43e5f3c.js +136 -0
  218. package/_internal/components/user-block/index.ts-d43e5f3c.js.map +1 -0
  219. package/_internal/dc3e28c8.d.ts +38 -0
  220. package/_internal/f39a1ba4.js +73 -0
  221. package/_internal/f39a1ba4.js.map +1 -0
  222. package/_internal/f3e77e3e.js +22 -0
  223. package/_internal/f3e77e3e.js.map +1 -0
  224. package/_internal/f502ab30.js +78 -0
  225. package/_internal/f502ab30.js.map +1 -0
  226. package/_internal/f52adbae.js +36 -0
  227. package/_internal/f52adbae.js.map +1 -0
  228. package/_internal/f57e1239.js +205 -0
  229. package/_internal/f57e1239.js.map +1 -0
  230. package/_internal/f5ff1aa4.d.ts +47 -0
  231. package/_internal/fb975afe.js +52 -0
  232. package/_internal/fb975afe.js.map +1 -0
  233. package/index.d.ts +66 -3023
  234. package/index.js +64 -14531
  235. package/index.js.map +1 -1
  236. package/package.json +3 -3
  237. package/src/components/alert-dialog/AlertDialog.tsx +3 -4
  238. package/src/components/autocomplete/Autocomplete.tsx +4 -3
  239. package/src/components/autocomplete/AutocompleteMultiple.tsx +7 -6
  240. package/src/components/avatar/Avatar.tsx +4 -3
  241. package/src/components/badge/Badge.tsx +7 -4
  242. package/src/components/badge/BadgeWrapper.tsx +7 -4
  243. package/src/components/button/Button.tsx +5 -3
  244. package/src/components/button/ButtonGroup.tsx +4 -3
  245. package/src/components/button/ButtonRoot.tsx +4 -3
  246. package/src/components/button/IconButton.tsx +3 -3
  247. package/src/components/checkbox/Checkbox.tsx +4 -3
  248. package/src/components/chip/Chip.tsx +8 -9
  249. package/src/components/chip/ChipGroup.tsx +5 -4
  250. package/src/components/comment-block/CommentBlock.tsx +4 -4
  251. package/src/components/date-picker/DatePicker.tsx +5 -3
  252. package/src/components/date-picker/DatePickerControlled.tsx +6 -3
  253. package/src/components/date-picker/DatePickerField.tsx +4 -3
  254. package/src/components/dialog/Dialog.tsx +4 -3
  255. package/src/components/divider/Divider.tsx +4 -3
  256. package/src/components/drag-handle/DragHandle.test.tsx +1 -1
  257. package/src/components/drag-handle/DragHandle.tsx +4 -3
  258. package/src/components/dropdown/Dropdown.tsx +4 -3
  259. package/src/components/expansion-panel/ExpansionPanel.tsx +4 -3
  260. package/src/components/flag/Flag.tsx +5 -3
  261. package/src/components/flex-box/FlexBox.tsx +8 -5
  262. package/src/components/generic-block/GenericBlock.tsx +4 -1
  263. package/src/components/grid/Grid.tsx +4 -3
  264. package/src/components/grid/GridItem.tsx +4 -3
  265. package/src/components/grid-column/GridColumn.tsx +5 -5
  266. package/src/components/heading/Heading.tsx +8 -4
  267. package/src/components/icon/Icon.tsx +5 -4
  268. package/src/components/image-block/ImageBlock.tsx +4 -3
  269. package/src/components/image-lightbox/ImageLightbox.tsx +4 -3
  270. package/src/components/inline-list/InlineList.tsx +4 -3
  271. package/src/components/input-helper/InputHelper.tsx +7 -4
  272. package/src/components/input-label/InputLabel.tsx +7 -4
  273. package/src/components/lightbox/Lightbox.tsx +4 -3
  274. package/src/components/link/Link.tsx +4 -3
  275. package/src/components/link-preview/LinkPreview.tsx +4 -3
  276. package/src/components/list/List.tsx +7 -5
  277. package/src/components/list/ListDivider.tsx +4 -3
  278. package/src/components/list/ListItem.tsx +4 -3
  279. package/src/components/list/ListSubheader.tsx +4 -3
  280. package/src/components/message/Message.tsx +7 -4
  281. package/src/components/mosaic/Mosaic.tsx +7 -5
  282. package/src/components/navigation/NavigationItem.tsx +1 -1
  283. package/src/components/navigation/NavigationSection.test.tsx +19 -6
  284. package/src/components/notification/Notification.tsx +4 -6
  285. package/src/components/popover/Popover.tsx +3 -2
  286. package/src/components/popover-dialog/PopoverDialog.tsx +5 -3
  287. package/src/components/post-block/PostBlock.tsx +4 -6
  288. package/src/components/progress/Progress.tsx +5 -4
  289. package/src/components/progress/ProgressCircular.tsx +4 -4
  290. package/src/components/progress/ProgressLinear.tsx +4 -4
  291. package/src/components/progress-tracker/ProgressTracker.tsx +5 -3
  292. package/src/components/progress-tracker/ProgressTrackerStep.tsx +5 -5
  293. package/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +24 -24
  294. package/src/components/radio-button/RadioButton.tsx +4 -4
  295. package/src/components/radio-button/RadioGroup.tsx +4 -3
  296. package/src/components/select/Select.tsx +3 -5
  297. package/src/components/select/SelectMultiple.tsx +3 -5
  298. package/src/components/side-navigation/SideNavigation.tsx +4 -4
  299. package/src/components/side-navigation/SideNavigationItem.tsx +4 -5
  300. package/src/components/skeleton/SkeletonCircle.tsx +5 -3
  301. package/src/components/skeleton/SkeletonRectangle.tsx +5 -3
  302. package/src/components/skeleton/SkeletonTypography.tsx +5 -3
  303. package/src/components/slider/Slider.tsx +4 -5
  304. package/src/components/slideshow/Slides.tsx +6 -4
  305. package/src/components/slideshow/Slideshow.tsx +5 -3
  306. package/src/components/slideshow/SlideshowControls.tsx +4 -3
  307. package/src/components/slideshow/SlideshowItem.tsx +4 -3
  308. package/src/components/slideshow/SlideshowItemGroup.tsx +5 -4
  309. package/src/components/switch/Switch.tsx +4 -5
  310. package/src/components/table/Table.tsx +4 -4
  311. package/src/components/table/TableBody.tsx +4 -3
  312. package/src/components/table/TableCell.tsx +5 -5
  313. package/src/components/table/TableHeader.tsx +4 -3
  314. package/src/components/table/TableRow.tsx +4 -3
  315. package/src/components/tabs/Tab.tsx +4 -3
  316. package/src/components/tabs/TabList.tsx +8 -5
  317. package/src/components/tabs/TabPanel.tsx +7 -5
  318. package/src/components/text/Text.tsx +6 -4
  319. package/src/components/text-field/TextField.tsx +4 -3
  320. package/src/components/thumbnail/Thumbnail.tsx +5 -5
  321. package/src/components/toolbar/Toolbar.tsx +4 -3
  322. package/src/components/tooltip/Tooltip.tsx +4 -3
  323. package/src/components/uploader/Uploader.tsx +5 -3
  324. package/src/components/user-block/UserBlock.tsx +6 -4
  325. package/src/testing/utils/commonTestsSuiteRTL.tsx +2 -1
  326. package/src/utils/react/forwardRef.ts +10 -0
  327. package/src/utils/react/forwardRefPolymorphic.ts +10 -0
  328. package/utils/index.d.ts +1 -1
  329. package/src/utils/forwardRefPolymorphic.ts +0 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ts-e8dc0a7f.js","sources":["../../../../src/utils/react/forwardRefPolymorphic.ts","../../../../src/components/navigation/NavigationItem.tsx","../../../../src/components/navigation/context.tsx","../../../../src/components/navigation/NavigationSection.tsx","../../../../src/components/navigation/Navigation.tsx"],"sourcesContent":["import React, { type ElementType } from 'react';\nimport type { ComponentRef } from '@lumx/react/utils/type';\n\ntype ForwardRefPolymorphic = <E extends ElementType, P extends { as?: E }>(\n render: (props: P, ref: ComponentRef<E>) => React.ReactNode,\n) => (props: P & { ref?: ComponentRef<E> }) => React.ReactNode;\n\n/** Same as `React.forwardRef` but inferring Ref type from the `as` prop. */\n/*#__NO_SIDE_EFFECTS__*/\nexport const forwardRefPolymorphic = React.forwardRef as ForwardRefPolymorphic;\n","import React, { ElementType, ReactNode } from 'react';\nimport { Icon, Placement, Size, Tooltip, Text } from '@lumx/react';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { ComponentRef, HasClassName, HasPolymorphicAs, HasTheme } from '@lumx/react/utils/type';\nimport classNames from 'classnames';\nimport { forwardRefPolymorphic } from '@lumx/react/utils/react/forwardRefPolymorphic';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { useOverflowTooltipLabel } from '@lumx/react/hooks/useOverflowTooltipLabel';\n\ntype BaseNavigationItemProps = {\n /** Icon (SVG path). */\n icon?: string;\n /** Label content. */\n label: ReactNode;\n /** Mark as the current page link */\n isCurrentPage?: boolean;\n};\n\n/** Make `href` required when `as` is `a` */\ntype RequiredLinkHref<E> = E extends 'a' ? { href: string } : Record<string, unknown>;\n\n/**\n * Navigation item props\n */\nexport type NavigationItemProps<E extends ElementType = 'a'> = HasPolymorphicAs<E> &\n HasTheme &\n HasClassName &\n BaseNavigationItemProps &\n RequiredLinkHref<E>;\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'NavigationItem';\n\n/**\n * Component default class name and class prefix.\n */\nexport const CLASSNAME = getRootClassName(COMPONENT_NAME);\n\nexport const NavigationItem = Object.assign(\n forwardRefPolymorphic(<E extends ElementType = 'a'>(props: NavigationItemProps<E>, ref: ComponentRef<E>) => {\n const { className, icon, label, isCurrentPage, as: Element = 'a', ...forwardedProps } = props;\n const theme = useTheme();\n const { tooltipLabel, labelRef } = useOverflowTooltipLabel();\n\n const buttonProps = Element === 'button' ? { type: 'button' } : {};\n\n return (\n <li\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n theme,\n }),\n )}\n >\n <Tooltip label={tooltipLabel} placement={Placement.TOP}>\n <Element\n className={handleBasicClasses({\n prefix: `${CLASSNAME}__link`,\n isSelected: isCurrentPage,\n })}\n ref={ref as React.Ref<any>}\n aria-current={isCurrentPage ? 'page' : undefined}\n {...buttonProps}\n {...forwardedProps}\n >\n {icon ? (\n <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} theme={theme} />\n ) : null}\n\n <Text as=\"span\" truncate className={`${CLASSNAME}__label`} ref={labelRef}>\n {label}\n </Text>\n </Element>\n </Tooltip>\n </li>\n );\n }),\n {\n displayName: COMPONENT_NAME,\n className: CLASSNAME,\n },\n);\n","import { createContext } from 'react';\nimport { Orientation } from '..';\n\nexport const NavigationContext = createContext<{ orientation?: Orientation } | undefined>({\n orientation: Orientation.vertical,\n});\n","import React, { forwardRef, ReactNode, useRef, useState, useContext } from 'react';\n\nimport { mdiChevronDown, mdiChevronUp } from '@lumx/icons';\nimport { Icon, Size, Text, Orientation, Popover, Placement, Theme } from '@lumx/react';\nimport classNames from 'classnames';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { HasClassName } from '@lumx/react/utils/type';\nimport { ThemeProvider, useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { useId } from '@lumx/react/hooks/useId';\n\nimport { CLASSNAME as ITEM_CLASSNAME } from './NavigationItem';\nimport { NavigationContext } from './context';\n\nexport interface NavigationSectionProps extends React.ComponentPropsWithoutRef<'button'>, HasClassName {\n /** Items inside the section */\n children: ReactNode;\n /** Icon (SVG path). */\n icon?: string;\n /** Label content. */\n label: string | ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'NavigationSection';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\nexport const NavigationSection = Object.assign(\n forwardRef<HTMLLIElement, NavigationSectionProps>((props, ref) => {\n const { children, className, label, icon, ...forwardedProps } = props;\n const [isOpen, setIsOpen] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const sectionId = useId();\n const { orientation } = useContext(NavigationContext) || {};\n const theme = useTheme();\n const isDropdown = orientation === Orientation.horizontal;\n return (\n <li\n className={classNames(\n className,\n CLASSNAME,\n ITEM_CLASSNAME,\n handleBasicClasses({\n prefix: ITEM_CLASSNAME,\n theme,\n }),\n )}\n ref={ref}\n >\n <button\n {...forwardedProps}\n aria-controls={sectionId}\n aria-expanded={isOpen}\n className={classNames(`${ITEM_CLASSNAME}__link`)}\n ref={buttonRef}\n onClick={(event) => {\n setIsOpen(!isOpen);\n event.stopPropagation();\n }}\n type=\"button\"\n >\n {icon ? <Icon className={`${ITEM_CLASSNAME}__icon`} icon={icon} size={Size.xs} /> : null}\n\n <Text as=\"span\" truncate className={`${ITEM_CLASSNAME}__label`} ref={ref}>\n {label}\n </Text>\n <Icon\n className={classNames(`${ITEM_CLASSNAME}__icon`, `${CLASSNAME}__chevron`)}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n />\n </button>\n {isOpen &&\n (isDropdown ? (\n <Popover\n anchorRef={buttonRef}\n isOpen={isOpen}\n placement={Placement.BOTTOM_START}\n usePortal={false}\n closeOnClickAway\n closeOnEscape\n onClick={() => setIsOpen(false)}\n onClose={() => setIsOpen(false)}\n zIndex={996}\n >\n <ThemeProvider value={Theme.light}>\n <ul className={`${CLASSNAME}__drawer--popover`} id={sectionId}>\n <NavigationContext.Provider value={{ orientation: Orientation.vertical }}>\n {children}\n </NavigationContext.Provider>\n </ul>\n </ThemeProvider>\n </Popover>\n ) : (\n <ul className={`${CLASSNAME}__drawer`} id={sectionId}>\n {children}\n </ul>\n ))}\n </li>\n );\n }),\n {\n displayName: COMPONENT_NAME,\n className: CLASSNAME,\n },\n);\n","import React, { forwardRef, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { HasAriaLabelOrLabelledBy, HasClassName, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { Orientation, Theme } from '@lumx/react';\nimport { ThemeProvider, useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { NavigationSection } from './NavigationSection';\nimport { NavigationItem } from './NavigationItem';\nimport { NavigationContext } from './context';\n\nexport type NavigationProps = React.ComponentProps<'nav'> &\n HasClassName &\n HasTheme & {\n /** Content of the navigation. These components should be of type NavigationItem to be rendered */\n children?: ReactNode;\n orientation?: Orientation;\n } & HasAriaLabelOrLabelledBy;\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Navigation';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props\n */\nconst DEFAULT_PROPS = {\n orientation: Orientation.vertical,\n};\n\nexport const Navigation = Object.assign(\n // eslint-disable-next-line react/display-name\n forwardRef<HTMLElement, NavigationProps>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const { children, className, theme = defaultTheme, orientation, ...forwardedProps } = props;\n return (\n <ThemeProvider value={theme}>\n <nav\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n theme,\n orientation,\n }),\n )}\n ref={ref}\n {...forwardedProps}\n >\n <NavigationContext.Provider value={{ orientation }}>\n <ul className={`${CLASSNAME}__list`}>{children}</ul>\n </NavigationContext.Provider>\n </nav>\n </ThemeProvider>\n );\n }),\n {\n displayName: COMPONENT_NAME,\n className: CLASSNAME,\n defaultProps: DEFAULT_PROPS,\n // Sub components\n Section: NavigationSection,\n Item: NavigationItem,\n },\n);\n"],"names":["forwardRefPolymorphic","React","forwardRef","COMPONENT_NAME","CLASSNAME","getRootClassName","NavigationItem","Object","assign","props","ref","className","icon","label","isCurrentPage","as","Element","forwardedProps","_objectWithoutProperties","_excluded","theme","useTheme","tooltipLabel","labelRef","useOverflowTooltipLabel","buttonProps","type","createElement","classNames","handleBasicClasses","prefix","Tooltip","placement","Placement","TOP","_extends","isSelected","undefined","Icon","size","Size","xs","Text","truncate","displayName","NavigationContext","createContext","orientation","Orientation","vertical","NavigationSection","children","isOpen","setIsOpen","useState","buttonRef","useRef","sectionId","useId","useContext","isDropdown","horizontal","ITEM_CLASSNAME","onClick","event","stopPropagation","mdiChevronUp","mdiChevronDown","Popover","anchorRef","BOTTOM_START","usePortal","closeOnClickAway","closeOnEscape","onClose","zIndex","ThemeProvider","value","Theme","light","id","Provider","DEFAULT_PROPS","Navigation","defaultTheme","defaultProps","Section","Item"],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ import { h as getRootClassName, i as forwardRef, T as Theme, j as _objectWithoutProperties, D as DOCUMENT, _ as _extends, g as classNames, k as _objectSpread2, S as Size, E as Emphasis, N as NOTIFICATION_TRANSITION_DURATION } from '../../1da25128.js';
2
+ import React__default, { useRef } from 'react';
3
+ import { createPortal } from 'react-dom';
4
+ import isFunction from 'lodash/isFunction';
5
+ import { e as mdiAlert, f as mdiInformation, g as mdiCheckCircle, h as mdiAlertCircle, I as Icon } from '../../c6c99f76.js';
6
+ import { u as useTransitionVisibility } from '../../fb975afe.js';
7
+ import { m as mergeRefs } from '../../f52adbae.js';
8
+ import { u as useTheme } from '../../3181f000.js';
9
+ import { h as handleBasicClasses } from '../../f57e1239.js';
10
+ import { a as Button } from '../../4c20d932.js';
11
+
12
+ /**
13
+ * Notification icon and colors according to their type.
14
+ */
15
+ const NOTIFICATION_CONFIGURATION = {
16
+ error: {
17
+ color: 'red',
18
+ icon: mdiAlert
19
+ },
20
+ info: {
21
+ color: 'blue',
22
+ icon: mdiInformation
23
+ },
24
+ success: {
25
+ color: 'green',
26
+ icon: mdiCheckCircle
27
+ },
28
+ warning: {
29
+ color: 'yellow',
30
+ icon: mdiAlertCircle
31
+ }
32
+ };
33
+
34
+ const _excluded = ["actionLabel", "className", "content", "isOpen", "onActionClick", "onClick", "theme", "type", "zIndex", "usePortal", "style"];
35
+
36
+ /**
37
+ * Defines the props of the component.
38
+ */
39
+
40
+ /**
41
+ * Component display name.
42
+ */
43
+ const COMPONENT_NAME = 'Notification';
44
+
45
+ /**
46
+ * Component default class name and class prefix.
47
+ */
48
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
49
+
50
+ /**
51
+ * Component default props.
52
+ */
53
+ const DEFAULT_PROPS = {
54
+ zIndex: 9999,
55
+ usePortal: true
56
+ };
57
+
58
+ /* eslint-disable react-hooks/rules-of-hooks, jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */
59
+ /**
60
+ * Notification component.
61
+ *
62
+ * @param props Component props.
63
+ * @param ref Component ref.
64
+ * @return React element.
65
+ */
66
+ const Notification = forwardRef((props, ref) => {
67
+ const defaultTheme = useTheme() || Theme.light;
68
+ const {
69
+ actionLabel,
70
+ className,
71
+ content,
72
+ isOpen,
73
+ onActionClick,
74
+ onClick,
75
+ theme = defaultTheme,
76
+ type,
77
+ zIndex,
78
+ usePortal,
79
+ style
80
+ } = props,
81
+ forwardedProps = _objectWithoutProperties(props, _excluded);
82
+ if (!DOCUMENT) {
83
+ // Can't render in SSR.
84
+ return null;
85
+ }
86
+ const {
87
+ color,
88
+ icon
89
+ } = NOTIFICATION_CONFIGURATION[type] || {};
90
+ const rootRef = useRef(null);
91
+ const isVisible = useTransitionVisibility(rootRef, !!isOpen, NOTIFICATION_TRANSITION_DURATION);
92
+ const hasAction = Boolean(onActionClick) && Boolean(actionLabel);
93
+ const handleCallback = evt => {
94
+ if (isFunction(onActionClick)) {
95
+ onActionClick();
96
+ }
97
+ evt.stopPropagation();
98
+ };
99
+ if (!type || !isVisible) {
100
+ return null;
101
+ }
102
+ const notification =
103
+ /*#__PURE__*/
104
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
105
+ React__default.createElement("div", _extends({
106
+ ref: mergeRefs(ref, rootRef),
107
+ role: "alert"
108
+ }, forwardedProps, {
109
+ className: classNames(className, handleBasicClasses({
110
+ color,
111
+ hasAction,
112
+ isHidden: !isOpen,
113
+ prefix: CLASSNAME
114
+ })),
115
+ onClick: onClick,
116
+ style: _objectSpread2(_objectSpread2({}, style), {}, {
117
+ zIndex
118
+ })
119
+ }), /*#__PURE__*/React__default.createElement("div", {
120
+ className: `${CLASSNAME}__icon`
121
+ }, /*#__PURE__*/React__default.createElement(Icon, {
122
+ icon: icon,
123
+ size: Size.s
124
+ })), /*#__PURE__*/React__default.createElement("div", {
125
+ className: `${CLASSNAME}__content`
126
+ }, content), hasAction && /*#__PURE__*/React__default.createElement("div", {
127
+ className: `${CLASSNAME}__action`
128
+ }, /*#__PURE__*/React__default.createElement(Button, {
129
+ emphasis: Emphasis.medium,
130
+ theme: theme,
131
+ onClick: handleCallback
132
+ }, /*#__PURE__*/React__default.createElement("span", null, actionLabel))));
133
+ return usePortal ? /*#__PURE__*/createPortal(notification, document.body) : notification;
134
+ });
135
+ Notification.displayName = COMPONENT_NAME;
136
+ Notification.className = CLASSNAME;
137
+ Notification.defaultProps = DEFAULT_PROPS;
138
+
139
+ export { Notification };
140
+ //# sourceMappingURL=index.ts-235fd340.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ts-235fd340.js","sources":["../../../../src/components/notification/constants.ts","../../../../src/components/notification/Notification.tsx"],"sourcesContent":["import { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons';\n\n/**\n * Notification delay before hiding.\n */\nexport const HIDE_DELAY = 6000;\n\n/**\n * Notification icon and colors according to their type.\n */\nexport const NOTIFICATION_CONFIGURATION = {\n error: {\n color: 'red',\n icon: mdiAlert,\n },\n info: {\n color: 'blue',\n icon: mdiInformation,\n },\n success: {\n color: 'green',\n icon: mdiCheckCircle,\n },\n warning: {\n color: 'yellow',\n icon: mdiAlertCircle,\n },\n};\n","import React, { useRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport classNames from 'classnames';\nimport isFunction from 'lodash/isFunction';\n\nimport { Button, Emphasis, Icon, Kind, Size, Theme } from '@lumx/react';\nimport { DOCUMENT, NOTIFICATION_TRANSITION_DURATION } from '@lumx/react/constants';\nimport { NOTIFICATION_CONFIGURATION } from '@lumx/react/components/notification/constants';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { useTransitionVisibility } from '@lumx/react/hooks/useTransitionVisibility';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface NotificationProps extends GenericProps, HasTheme {\n /** Action button label. */\n actionLabel?: string;\n /** Content. */\n content?: React.ReactNode;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Notification type. */\n type?: Kind;\n /** Z-axis position. */\n zIndex?: number;\n /** On action button click callback. */\n onActionClick?(): void;\n /** On click callback. */\n onClick?(): void;\n /** Whether the notification should be rendered into a DOM node that exists outside the DOM hierarchy of the parent component. */\n usePortal?: boolean;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Notification';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<NotificationProps> = {\n zIndex: 9999,\n usePortal: true,\n};\n\n/* eslint-disable react-hooks/rules-of-hooks, jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\n/**\n * Notification component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Notification = forwardRef<NotificationProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n actionLabel,\n className,\n content,\n isOpen,\n onActionClick,\n onClick,\n theme = defaultTheme,\n type,\n zIndex,\n usePortal,\n style,\n ...forwardedProps\n } = props;\n if (!DOCUMENT) {\n // Can't render in SSR.\n return null;\n }\n const { color, icon } = NOTIFICATION_CONFIGURATION[type as Kind] || {};\n const rootRef = useRef<HTMLDivElement>(null);\n const isVisible = useTransitionVisibility(rootRef, !!isOpen, NOTIFICATION_TRANSITION_DURATION);\n const hasAction: boolean = Boolean(onActionClick) && Boolean(actionLabel);\n\n const handleCallback = (evt: React.MouseEvent) => {\n if (isFunction(onActionClick)) {\n onActionClick();\n }\n evt.stopPropagation();\n };\n\n if (!type || !isVisible) {\n return null;\n }\n\n const notification = (\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n <div\n ref={mergeRefs(ref, rootRef)}\n role=\"alert\"\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n color,\n hasAction,\n isHidden: !isOpen,\n prefix: CLASSNAME,\n }),\n )}\n onClick={onClick}\n style={{ ...style, zIndex }}\n >\n <div className={`${CLASSNAME}__icon`}>\n <Icon icon={icon} size={Size.s} />\n </div>\n <div className={`${CLASSNAME}__content`}>{content}</div>\n {hasAction && (\n <div className={`${CLASSNAME}__action`}>\n <Button emphasis={Emphasis.medium} theme={theme} onClick={handleCallback}>\n <span>{actionLabel}</span>\n </Button>\n </div>\n )}\n </div>\n );\n\n return usePortal ? createPortal(notification, document.body) : notification;\n});\nNotification.displayName = COMPONENT_NAME;\nNotification.className = CLASSNAME;\nNotification.defaultProps = DEFAULT_PROPS;\n"],"names":["NOTIFICATION_CONFIGURATION","error","color","icon","mdiAlert","info","mdiInformation","success","mdiCheckCircle","warning","mdiAlertCircle","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","zIndex","usePortal","Notification","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","actionLabel","className","content","isOpen","onActionClick","onClick","theme","type","style","forwardedProps","_objectWithoutProperties","_excluded","DOCUMENT","rootRef","useRef","isVisible","useTransitionVisibility","NOTIFICATION_TRANSITION_DURATION","hasAction","Boolean","handleCallback","evt","isFunction","stopPropagation","notification","React","createElement","_extends","mergeRefs","role","classNames","handleBasicClasses","isHidden","prefix","_objectSpread","Icon","size","Size","s","Button","emphasis","Emphasis","medium","createPortal","document","body","displayName","defaultProps"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { G as GenericProps, H as HasTheme, K as Kind, C as Comp } from '../../8d67e1e3.js';
2
+ import React from 'react';
3
+
4
+ /**
5
+ * Defines the props of the component.
6
+ */
7
+ interface NotificationProps extends GenericProps, HasTheme {
8
+ /** Action button label. */
9
+ actionLabel?: string;
10
+ /** Content. */
11
+ content?: React.ReactNode;
12
+ /** Whether the component is open or not. */
13
+ isOpen?: boolean;
14
+ /** Notification type. */
15
+ type?: Kind;
16
+ /** Z-axis position. */
17
+ zIndex?: number;
18
+ /** On action button click callback. */
19
+ onActionClick?(): void;
20
+ /** On click callback. */
21
+ onClick?(): void;
22
+ /** Whether the notification should be rendered into a DOM node that exists outside the DOM hierarchy of the parent component. */
23
+ usePortal?: boolean;
24
+ }
25
+ /**
26
+ * Notification component.
27
+ *
28
+ * @param props Component props.
29
+ * @param ref Component ref.
30
+ * @return React element.
31
+ */
32
+ declare const Notification: Comp<NotificationProps, HTMLDivElement>;
33
+
34
+ export { Notification, type NotificationProps };
@@ -0,0 +1,3 @@
1
+ export { P as Popover } from '../../54d9ded5.js';
2
+ export { P as Placement } from '../../2e2abe51.js';
3
+ //# sourceMappingURL=index.ts-2f17a9b6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ts-2f17a9b6.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,66 @@
1
+ import React, { RefObject, ReactNode } from 'react';
2
+ import { G as GenericProps, H as HasTheme, C as Comp } from '../../8d67e1e3.js';
3
+ import { E as Elevation, F as FitAnchorWidth, O as Offset, P as Placement } from '../../f5ff1aa4.js';
4
+
5
+ /**
6
+ * Defines the props of the component.
7
+ */
8
+ interface PopoverProps extends GenericProps, HasTheme {
9
+ /** Reference to the DOM element used to set the position of the popover. */
10
+ anchorRef: React.RefObject<HTMLElement>;
11
+ /** Customize the root element. (Must accept ref forwarding and props forwarding!). */
12
+ as?: React.ElementType;
13
+ /** Element which will act as boundary when opening the popover. */
14
+ boundaryRef?: RefObject<HTMLElement>;
15
+ /** Content. */
16
+ children: ReactNode;
17
+ /** Whether a click anywhere out of the popover would close it. */
18
+ closeOnClickAway?: boolean;
19
+ /** Whether an escape key press would close the popover. */
20
+ closeOnEscape?: boolean;
21
+ /** Shadow elevation. */
22
+ elevation?: Elevation;
23
+ /**
24
+ * Manage popover width:
25
+ * - `maxWidth`: popover not bigger than anchor
26
+ * - `minWidth` or `true`: popover not smaller than anchor
27
+ * - `width`: popover equal to the anchor.
28
+ */
29
+ fitToAnchorWidth?: FitAnchorWidth | boolean;
30
+ /** Shrink popover if even after flipping there is not enough space. */
31
+ fitWithinViewportHeight?: boolean;
32
+ /** Element to focus when opening the popover. */
33
+ focusElement?: RefObject<HTMLElement>;
34
+ /** Whether the focus should go back on the anchor when popover closes and focus is within. */
35
+ focusAnchorOnClose?: boolean;
36
+ /** Whether we put an arrow or not. */
37
+ hasArrow?: boolean;
38
+ /** Whether the popover is open or not. */
39
+ isOpen: boolean;
40
+ /** Offset placement relative to anchor. */
41
+ offset?: Offset;
42
+ /** Reference to the parent element that triggered the popover (will get back focus on close or else fallback on the anchor element). */
43
+ parentElement?: RefObject<HTMLElement>;
44
+ /** Placement relative to anchor. */
45
+ placement?: Placement;
46
+ /** Whether the popover should be rendered into a DOM node that exists outside the DOM hierarchy of the parent component. */
47
+ usePortal?: boolean;
48
+ /** The element in which the focus trap should be set. Default to popover. */
49
+ focusTrapZoneElement?: RefObject<HTMLElement>;
50
+ /** Z-axis position. */
51
+ zIndex?: number;
52
+ /** On close callback (on click away or Escape pressed). */
53
+ onClose?(): void;
54
+ /** Whether the popover should trap the focus within itself. Default to false. */
55
+ withFocusTrap?: boolean;
56
+ }
57
+ /**
58
+ * Popover component.
59
+ *
60
+ * @param props Component props.
61
+ * @param ref Component ref.
62
+ * @return React element.
63
+ */
64
+ declare const Popover: Comp<PopoverProps, HTMLDivElement>;
65
+
66
+ export { Elevation, Offset, Placement, Popover, type PopoverProps };
@@ -0,0 +1,101 @@
1
+ import { h as getRootClassName, O as Orientation, i as forwardRef, T as Theme, j as _objectWithoutProperties, _ as _extends, g as classNames } from '../../1da25128.js';
2
+ import React__default from 'react';
3
+ import isObject from 'lodash/isObject';
4
+ import { u as useTheme } from '../../3181f000.js';
5
+ import { h as handleBasicClasses } from '../../f57e1239.js';
6
+ import { ThumbnailVariant } from '../thumbnail/index.ts-16d7b403.js';
7
+ import { T as Thumbnail } from '../../4c28d012.js';
8
+
9
+ const _excluded = ["actions", "attachments", "author", "className", "meta", "onClick", "orientation", "tags", "text", "theme", "thumbnailProps", "title"];
10
+
11
+ /**
12
+ * Defines the props of the component.
13
+ */
14
+
15
+ /**
16
+ * Component display name.
17
+ */
18
+ const COMPONENT_NAME = 'PostBlock';
19
+
20
+ /**
21
+ * Component default class name and class prefix.
22
+ */
23
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
24
+
25
+ /**
26
+ * Component default props.
27
+ */
28
+ const DEFAULT_PROPS = {
29
+ orientation: Orientation.horizontal
30
+ };
31
+
32
+ /**
33
+ * PostBlock component.
34
+ *
35
+ * @param props Component props.
36
+ * @param ref Component ref.
37
+ * @return React element.
38
+ */
39
+ const PostBlock = forwardRef((props, ref) => {
40
+ const defaultTheme = useTheme() || Theme.light;
41
+ const {
42
+ actions,
43
+ attachments,
44
+ author,
45
+ className,
46
+ meta,
47
+ onClick,
48
+ orientation,
49
+ tags,
50
+ text,
51
+ theme = defaultTheme,
52
+ thumbnailProps,
53
+ title
54
+ } = props,
55
+ forwardedProps = _objectWithoutProperties(props, _excluded);
56
+ return /*#__PURE__*/React__default.createElement("div", _extends({
57
+ ref: ref,
58
+ className: classNames(className, handleBasicClasses({
59
+ prefix: CLASSNAME,
60
+ orientation,
61
+ theme
62
+ }))
63
+ }, forwardedProps), thumbnailProps && /*#__PURE__*/React__default.createElement("div", {
64
+ className: `${CLASSNAME}__thumbnail`
65
+ }, /*#__PURE__*/React__default.createElement(Thumbnail, _extends({}, thumbnailProps, {
66
+ theme: theme,
67
+ variant: ThumbnailVariant.rounded
68
+ }))), /*#__PURE__*/React__default.createElement("div", {
69
+ className: `${CLASSNAME}__wrapper`
70
+ }, author && /*#__PURE__*/React__default.createElement("div", {
71
+ className: `${CLASSNAME}__author`
72
+ }, author), title && /*#__PURE__*/React__default.createElement("button", {
73
+ type: "button",
74
+ className: `${CLASSNAME}__title`,
75
+ onClick: onClick
76
+ }, title), meta && /*#__PURE__*/React__default.createElement("span", {
77
+ className: `${CLASSNAME}__meta`
78
+ }, meta), isObject(text) && text.__html ?
79
+ /*#__PURE__*/
80
+ // eslint-disable-next-line react/no-danger
81
+ React__default.createElement("p", {
82
+ dangerouslySetInnerHTML: text,
83
+ className: `${CLASSNAME}__text`
84
+ }) : /*#__PURE__*/React__default.createElement("p", {
85
+ className: `${CLASSNAME}__text`
86
+ }, text), attachments && /*#__PURE__*/React__default.createElement("div", {
87
+ className: `${CLASSNAME}__attachments`
88
+ }, attachments), (tags || actions) && /*#__PURE__*/React__default.createElement("div", {
89
+ className: `${CLASSNAME}__toolbar`
90
+ }, tags && /*#__PURE__*/React__default.createElement("div", {
91
+ className: `${CLASSNAME}__tags`
92
+ }, tags), actions && /*#__PURE__*/React__default.createElement("div", {
93
+ className: `${CLASSNAME}__actions`
94
+ }, actions))));
95
+ });
96
+ PostBlock.displayName = COMPONENT_NAME;
97
+ PostBlock.className = CLASSNAME;
98
+ PostBlock.defaultProps = DEFAULT_PROPS;
99
+
100
+ export { PostBlock };
101
+ //# sourceMappingURL=index.ts-0acb9bb4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ts-0acb9bb4.js","sources":["../../../../src/components/post-block/PostBlock.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport isObject from 'lodash/isObject';\n\nimport { Orientation, Theme, Thumbnail, ThumbnailProps, ThumbnailVariant } from '@lumx/react';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface PostBlockProps extends GenericProps, HasTheme {\n /** Action toolbar content. */\n actions?: ReactNode;\n /** Attachment content. */\n attachments?: ReactNode;\n /** Author content. */\n author?: ReactNode;\n /** Metadata content. */\n meta?: ReactNode;\n /** Orientation. */\n orientation?: Orientation;\n /** Tag content. */\n tags?: ReactNode;\n /** Content (string, or sanitized html). */\n text?: string | { __html: string };\n /** Thumbnail. */\n thumbnailProps?: ThumbnailProps;\n /** Title. */\n title: string;\n /** On click callback. */\n onClick?(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'PostBlock';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<PostBlockProps> = {\n orientation: Orientation.horizontal,\n};\n\n/**\n * PostBlock component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const PostBlock = forwardRef<PostBlockProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n actions,\n attachments,\n author,\n className,\n meta,\n onClick,\n orientation,\n tags,\n text,\n theme = defaultTheme,\n thumbnailProps,\n title,\n ...forwardedProps\n } = props;\n\n return (\n <div\n ref={ref}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, orientation, theme }))}\n {...forwardedProps}\n >\n {thumbnailProps && (\n <div className={`${CLASSNAME}__thumbnail`}>\n <Thumbnail {...thumbnailProps} theme={theme} variant={ThumbnailVariant.rounded} />\n </div>\n )}\n <div className={`${CLASSNAME}__wrapper`}>\n {author && <div className={`${CLASSNAME}__author`}>{author}</div>}\n\n {title && (\n <button type=\"button\" className={`${CLASSNAME}__title`} onClick={onClick}>\n {title}\n </button>\n )}\n\n {meta && <span className={`${CLASSNAME}__meta`}>{meta}</span>}\n\n {isObject(text) && text.__html ? (\n // eslint-disable-next-line react/no-danger\n <p dangerouslySetInnerHTML={text} className={`${CLASSNAME}__text`} />\n ) : (\n <p className={`${CLASSNAME}__text`}>{text}</p>\n )}\n\n {attachments && <div className={`${CLASSNAME}__attachments`}>{attachments}</div>}\n {(tags || actions) && (\n <div className={`${CLASSNAME}__toolbar`}>\n {tags && <div className={`${CLASSNAME}__tags`}>{tags}</div>}\n {actions && <div className={`${CLASSNAME}__actions`}>{actions}</div>}\n </div>\n )}\n </div>\n </div>\n );\n});\nPostBlock.displayName = COMPONENT_NAME;\nPostBlock.className = CLASSNAME;\nPostBlock.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","orientation","Orientation","horizontal","PostBlock","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","actions","attachments","author","className","meta","onClick","tags","text","theme","thumbnailProps","title","forwardedProps","_objectWithoutProperties","_excluded","React","createElement","_extends","classNames","handleBasicClasses","prefix","Thumbnail","variant","ThumbnailVariant","rounded","type","isObject","__html","dangerouslySetInnerHTML","displayName","defaultProps"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { G as GenericProps, H as HasTheme, O as Orientation, C as Comp } from '../../8d67e1e3.js';
2
+ import { ReactNode } from 'react';
3
+ import { T as ThumbnailProps } from '../../35f100be.js';
4
+
5
+ /**
6
+ * Defines the props of the component.
7
+ */
8
+ interface PostBlockProps extends GenericProps, HasTheme {
9
+ /** Action toolbar content. */
10
+ actions?: ReactNode;
11
+ /** Attachment content. */
12
+ attachments?: ReactNode;
13
+ /** Author content. */
14
+ author?: ReactNode;
15
+ /** Metadata content. */
16
+ meta?: ReactNode;
17
+ /** Orientation. */
18
+ orientation?: Orientation;
19
+ /** Tag content. */
20
+ tags?: ReactNode;
21
+ /** Content (string, or sanitized html). */
22
+ text?: string | {
23
+ __html: string;
24
+ };
25
+ /** Thumbnail. */
26
+ thumbnailProps?: ThumbnailProps;
27
+ /** Title. */
28
+ title: string;
29
+ /** On click callback. */
30
+ onClick?(): void;
31
+ }
32
+ /**
33
+ * PostBlock component.
34
+ *
35
+ * @param props Component props.
36
+ * @param ref Component ref.
37
+ * @return React element.
38
+ */
39
+ declare const PostBlock: Comp<PostBlockProps, HTMLDivElement>;
40
+
41
+ export { PostBlock, type PostBlockProps };