@lumx/react 3.20.1-alpha.12 → 3.20.1-alpha.13

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 (320) hide show
  1. package/_internal/Button-f19e18df.js +96 -0
  2. package/_internal/Button-f19e18df.js.map +1 -0
  3. package/_internal/{cdddaed8.js → ButtonRoot-ab633b1d.js} +19 -20
  4. package/_internal/ButtonRoot-ab633b1d.js.map +1 -0
  5. package/_internal/{85e3a5ca.js → Chip-4c572eec.js} +38 -34
  6. package/_internal/Chip-4c572eec.js.map +1 -0
  7. package/_internal/{7093ba23.js → ClickAwayProvider-bcce6ceb.js} +4 -6
  8. package/_internal/ClickAwayProvider-bcce6ceb.js.map +1 -0
  9. package/_internal/{ea04260d.js → DisabledStateContext-077b7bef.js} +6 -6
  10. package/_internal/DisabledStateContext-077b7bef.js.map +1 -0
  11. package/_internal/{370bdaed.js → HeadingLevelProvider-e4817816.js} +5 -7
  12. package/_internal/HeadingLevelProvider-e4817816.js.map +1 -0
  13. package/_internal/IconButton-10585058.js +72 -0
  14. package/_internal/IconButton-10585058.js.map +1 -0
  15. package/_internal/ImageCaption-4279b2b6.js +65 -0
  16. package/_internal/ImageCaption-4279b2b6.js.map +1 -0
  17. package/_internal/{f5508d3d.js → List-d5f5d465.js} +55 -56
  18. package/_internal/List-d5f5d465.js.map +1 -0
  19. package/_internal/{b1af5979.js → PopoverDialog-21e5c9dd.js} +165 -171
  20. package/_internal/PopoverDialog-21e5c9dd.js.map +1 -0
  21. package/_internal/{3f86608e.js → Portal-c43d098b.js} +2 -5
  22. package/_internal/Portal-c43d098b.js.map +1 -0
  23. package/_internal/{2c2b6a89.js → RawClickable-c76bbc4c.js} +7 -9
  24. package/_internal/RawClickable-c76bbc4c.js.map +1 -0
  25. package/_internal/{34c59f5b.js → Slides-01f513ce.js} +106 -112
  26. package/_internal/Slides-01f513ce.js.map +1 -0
  27. package/_internal/{3181f000.js → ThemeContext-3181f000.js} +1 -1
  28. package/_internal/ThemeContext-3181f000.js.map +1 -0
  29. package/_internal/{628468c4.js → Thumbnail-30d2a781.js} +50 -51
  30. package/_internal/Thumbnail-30d2a781.js.map +1 -0
  31. package/_internal/{3a4e4636.js → components/alert-dialog-8f1c163c.js} +39 -54
  32. package/_internal/components/alert-dialog-8f1c163c.js.map +1 -0
  33. package/_internal/{179a84d1.js → components/autocomplete-bfbdeb3c.js} +72 -67
  34. package/_internal/components/autocomplete-bfbdeb3c.js.map +1 -0
  35. package/_internal/components/avatar-6990e3e9.js +87 -0
  36. package/_internal/components/avatar-6990e3e9.js.map +1 -0
  37. package/_internal/{9c9df5f2.js → components/badge-81543bc7.js} +20 -19
  38. package/_internal/components/badge-81543bc7.js.map +1 -0
  39. package/_internal/{f93fe83e.js → components/button-927abe71.js} +14 -11
  40. package/_internal/components/button-927abe71.js.map +1 -0
  41. package/_internal/components/checkbox-dc4caec8.js +131 -0
  42. package/_internal/{f0900583.js.map → components/checkbox-dc4caec8.js.map} +1 -1
  43. package/_internal/{c0414b89.js → components/chip-fb3d0c76.js} +13 -10
  44. package/_internal/components/chip-fb3d0c76.js.map +1 -0
  45. package/_internal/components/comment-block-b84c4694.js +121 -0
  46. package/_internal/components/comment-block-b84c4694.js.map +1 -0
  47. package/_internal/components/date-picker-a425534c.js +2 -0
  48. package/_internal/components/date-picker-a425534c.js.map +1 -0
  49. package/_internal/{2f1716fa.js → components/dialog-7dbcb485.js} +69 -80
  50. package/_internal/components/dialog-7dbcb485.js.map +1 -0
  51. package/_internal/{3e653144.js → components/divider-12e9b6a0.js} +13 -9
  52. package/_internal/components/divider-12e9b6a0.js.map +1 -0
  53. package/_internal/components/drag-handle-a38ff757.js +53 -0
  54. package/_internal/components/drag-handle-a38ff757.js.map +1 -0
  55. package/_internal/{1ea72630.js → components/dropdown-38b0b6a0.js} +19 -17
  56. package/_internal/components/dropdown-38b0b6a0.js.map +1 -0
  57. package/_internal/{68c10f98.js → components/expansion-panel-c4b93653.js} +46 -54
  58. package/_internal/components/expansion-panel-c4b93653.js.map +1 -0
  59. package/_internal/{c2388b10.js → components/flag-c5e2f5f0.js} +19 -22
  60. package/_internal/components/flag-c5e2f5f0.js.map +1 -0
  61. package/_internal/{329b5f12.js → components/flex-box-c8701a85.js} +13 -10
  62. package/_internal/components/flex-box-c8701a85.js.map +1 -0
  63. package/_internal/{a84f4981.js → components/generic-block-0d6ad5a6.js} +30 -37
  64. package/_internal/components/generic-block-0d6ad5a6.js.map +1 -0
  65. package/_internal/{2f6c7f84.js → components/grid-3b194fe8.js} +22 -16
  66. package/_internal/components/grid-3b194fe8.js.map +1 -0
  67. package/_internal/{501f2f9f.js → components/grid-column-985b9327.js} +10 -8
  68. package/_internal/components/grid-column-985b9327.js.map +1 -0
  69. package/_internal/{193521fa.js → components/heading-5e954dfc.js} +13 -11
  70. package/_internal/components/heading-5e954dfc.js.map +1 -0
  71. package/_internal/{8ab42752.js → components/icon-2e7345ad.js} +29 -29
  72. package/_internal/components/icon-2e7345ad.js.map +1 -0
  73. package/_internal/components/image-block-8d21dd7e.js +109 -0
  74. package/_internal/components/image-block-8d21dd7e.js.map +1 -0
  75. package/_internal/{7f54e947.js → components/image-lightbox-4a5ab962.js} +105 -120
  76. package/_internal/components/image-lightbox-4a5ab962.js.map +1 -0
  77. package/_internal/{15eab19b.js → components/inline-list-4884f004.js} +25 -26
  78. package/_internal/components/inline-list-4884f004.js.map +1 -0
  79. package/_internal/{5f8f9454.js → components/input-helper-e644e05e.js} +14 -11
  80. package/_internal/components/input-helper-e644e05e.js.map +1 -0
  81. package/_internal/{b0a7a999.js → components/input-label-5e509a1b.js} +14 -12
  82. package/_internal/components/input-label-5e509a1b.js.map +1 -0
  83. package/_internal/{86aa4aa4.js → components/lightbox-bec1b95f.js} +59 -64
  84. package/_internal/components/lightbox-bec1b95f.js.map +1 -0
  85. package/_internal/components/link-9637b9e4.js +70 -0
  86. package/_internal/components/link-9637b9e4.js.map +1 -0
  87. package/_internal/components/link-preview-7a4a6e4b.js +108 -0
  88. package/_internal/components/link-preview-7a4a6e4b.js.map +1 -0
  89. package/_internal/{95cfd814.js → components/list-5c8f7122.js} +21 -14
  90. package/_internal/components/list-5c8f7122.js.map +1 -0
  91. package/_internal/{0be1006e.js → components/message-a67067d9.js} +27 -28
  92. package/_internal/components/message-a67067d9.js.map +1 -0
  93. package/_internal/components/mosaic-92b66c80.js +92 -0
  94. package/_internal/components/mosaic-92b66c80.js.map +1 -0
  95. package/_internal/components/navigation-4fd3917d.js +210 -0
  96. package/_internal/components/navigation-4fd3917d.js.map +1 -0
  97. package/_internal/{5ec059fe.js → components/notification-9063c963.js} +47 -52
  98. package/_internal/components/notification-9063c963.js.map +1 -0
  99. package/_internal/components/popover-3c4c54bd.js +3 -0
  100. package/_internal/components/popover-3c4c54bd.js.map +1 -0
  101. package/_internal/components/post-block-0cfc2206.js +99 -0
  102. package/_internal/components/post-block-0cfc2206.js.map +1 -0
  103. package/_internal/{f23cdf84.js → components/progress-eaf5b33d.js} +53 -46
  104. package/_internal/components/progress-eaf5b33d.js.map +1 -0
  105. package/_internal/{edab29ce.js → components/progress-tracker-4a65718d.js} +70 -69
  106. package/_internal/components/progress-tracker-4a65718d.js.map +1 -0
  107. package/_internal/components/radio-button-3ef8a325.js +148 -0
  108. package/_internal/components/radio-button-3ef8a325.js.map +1 -0
  109. package/_internal/components/select-d46cfe35.js +404 -0
  110. package/_internal/components/select-d46cfe35.js.map +1 -0
  111. package/_internal/{b477da26.js → components/side-navigation-75b22f19.js} +62 -67
  112. package/_internal/components/side-navigation-75b22f19.js.map +1 -0
  113. package/_internal/{6da19518.js → components/skeleton-361ce335.js} +34 -25
  114. package/_internal/components/skeleton-361ce335.js.map +1 -0
  115. package/_internal/{db4fdc7b.js → components/slider-8094cb5c.js} +60 -65
  116. package/_internal/components/slider-8094cb5c.js.map +1 -0
  117. package/_internal/{eaa8b1d8.js → components/slideshow-2e8cd372.js} +41 -41
  118. package/_internal/components/slideshow-2e8cd372.js.map +1 -0
  119. package/_internal/components/switch-5516949b.js +118 -0
  120. package/_internal/components/switch-5516949b.js.map +1 -0
  121. package/_internal/{be6da9b0.js → components/table-fa198ee6.js} +76 -73
  122. package/_internal/components/table-fa198ee6.js.map +1 -0
  123. package/_internal/{65f91970.js → components/tabs-bb9bc2a5.js} +48 -47
  124. package/_internal/components/tabs-bb9bc2a5.js.map +1 -0
  125. package/_internal/components/text-289c0526.js +2 -0
  126. package/_internal/components/text-289c0526.js.map +1 -0
  127. package/_internal/{b0b2e33d.js → components/text-field-82733568.js} +109 -122
  128. package/_internal/components/text-field-82733568.js.map +1 -0
  129. package/_internal/{76be70dd.js → components/thumbnail-e3acff82.js} +3 -3
  130. package/_internal/components/thumbnail-e3acff82.js.map +1 -0
  131. package/_internal/{bae266a9.js → components/toolbar-155562be.js} +18 -19
  132. package/_internal/components/toolbar-155562be.js.map +1 -0
  133. package/_internal/{9a4dfad0.js → components/tooltip-84ffb4f9.js} +42 -50
  134. package/_internal/components/tooltip-84ffb4f9.js.map +1 -0
  135. package/_internal/{9fdc715b.js → components/uploader-896a1d89.js} +38 -40
  136. package/_internal/components/uploader-896a1d89.js.map +1 -0
  137. package/_internal/{0d1a078c.js → components/user-block-8fd15895.js} +44 -45
  138. package/_internal/components/user-block-8fd15895.js.map +1 -0
  139. package/_internal/{4cd870a5.js → constants-b9e57936.js} +2 -2
  140. package/_internal/constants-b9e57936.js.map +1 -0
  141. package/_internal/{478b5c92.js → constants-d0e3f49e.js} +2 -2
  142. package/_internal/constants-d0e3f49e.js.map +1 -0
  143. package/_internal/{9d1336a1.js → context-21aeb1c7.js} +6 -6
  144. package/_internal/context-21aeb1c7.js.map +1 -0
  145. package/_internal/forwardRef-49d2bb84.js +80 -0
  146. package/_internal/forwardRef-49d2bb84.js.map +1 -0
  147. package/_internal/{230173a8.js → getFocusableElements-230173a8.js} +1 -1
  148. package/_internal/getFocusableElements-230173a8.js.map +1 -0
  149. package/_internal/{0420e67b.js → index-b4d256e7.js} +14 -15
  150. package/_internal/index-b4d256e7.js.map +1 -0
  151. package/_internal/{84dfe68f.js → index-f415b08e.js} +46 -52
  152. package/_internal/index-f415b08e.js.map +1 -0
  153. package/_internal/{78df9309.js → isComponent-78df9309.js} +1 -1
  154. package/_internal/isComponent-78df9309.js.map +1 -0
  155. package/_internal/{e806b848.js → isComponentType-e806b848.js} +1 -1
  156. package/_internal/isComponentType-e806b848.js.map +1 -0
  157. package/_internal/{f0d7d6ea.js → mergeRefs-f0d7d6ea.js} +1 -1
  158. package/_internal/mergeRefs-f0d7d6ea.js.map +1 -0
  159. package/_internal/{4daccdd5.js → partitionMulti-4daccdd5.js} +1 -1
  160. package/_internal/partitionMulti-4daccdd5.js.map +1 -0
  161. package/_internal/{825ac334.js → state-db358714.js} +2 -2
  162. package/_internal/state-db358714.js.map +1 -0
  163. package/_internal/{2a3d237c.js → useBooleanState-2a3d237c.js} +1 -1
  164. package/_internal/useBooleanState-2a3d237c.js.map +1 -0
  165. package/_internal/{d5f316cb.js → useCallbackOnEscape-ea4d9eb4.js} +3 -3
  166. package/_internal/useCallbackOnEscape-ea4d9eb4.js.map +1 -0
  167. package/_internal/{36bd7352.js → useDisableBodyScroll-36bd7352.js} +1 -1
  168. package/_internal/useDisableBodyScroll-36bd7352.js.map +1 -0
  169. package/_internal/{b8667090.js → useDisableStateProps-fffc365f.js} +2 -2
  170. package/_internal/useDisableStateProps-fffc365f.js.map +1 -0
  171. package/_internal/{5fe09341.js → useFocusTrap-c3c6378b.js} +4 -4
  172. package/_internal/useFocusTrap-c3c6378b.js.map +1 -0
  173. package/_internal/{3a1facc0.js → useId-3a1facc0.js} +1 -1
  174. package/_internal/useId-3a1facc0.js.map +1 -0
  175. package/_internal/{7daf0f24.js → useRovingTabIndex-7daf0f24.js} +1 -1
  176. package/_internal/useRovingTabIndex-7daf0f24.js.map +1 -0
  177. package/_internal/{e6dd117e.js → useTransitionVisibility-321fdbfa.js} +2 -2
  178. package/_internal/useTransitionVisibility-321fdbfa.js.map +1 -0
  179. package/_internal/{37b007a4.js → wrapChildrenIconWithSpaces-f86106ce.js} +3 -3
  180. package/_internal/wrapChildrenIconWithSpaces-f86106ce.js.map +1 -0
  181. package/index.d.ts +7 -352
  182. package/index.js +65 -111
  183. package/index.js.map +1 -1
  184. package/package.json +3 -3
  185. package/utils/index.d.ts +1 -1
  186. package/utils/index.js +3 -3
  187. package/_internal/0420e67b.js.map +0 -1
  188. package/_internal/0a490b07.js +0 -75
  189. package/_internal/0a490b07.js.map +0 -1
  190. package/_internal/0b9c76cb.js +0 -6
  191. package/_internal/0b9c76cb.js.map +0 -1
  192. package/_internal/0be1006e.js.map +0 -1
  193. package/_internal/0d1a078c.js.map +0 -1
  194. package/_internal/15eab19b.js.map +0 -1
  195. package/_internal/179a84d1.js.map +0 -1
  196. package/_internal/193521fa.js.map +0 -1
  197. package/_internal/1a90ea3d.js +0 -51
  198. package/_internal/1a90ea3d.js.map +0 -1
  199. package/_internal/1deba7d7.js +0 -224
  200. package/_internal/1deba7d7.js.map +0 -1
  201. package/_internal/1ea72630.js.map +0 -1
  202. package/_internal/21b83d16.js +0 -137
  203. package/_internal/21b83d16.js.map +0 -1
  204. package/_internal/230173a8.js.map +0 -1
  205. package/_internal/297bed8f.js +0 -457
  206. package/_internal/297bed8f.js.map +0 -1
  207. package/_internal/2a3d237c.js.map +0 -1
  208. package/_internal/2c2b6a89.js.map +0 -1
  209. package/_internal/2f1716fa.js.map +0 -1
  210. package/_internal/2f6c7f84.js.map +0 -1
  211. package/_internal/3181f000.js.map +0 -1
  212. package/_internal/329b5f12.js.map +0 -1
  213. package/_internal/332e9844.js +0 -2
  214. package/_internal/332e9844.js.map +0 -1
  215. package/_internal/34c59f5b.js.map +0 -1
  216. package/_internal/36bd7352.js.map +0 -1
  217. package/_internal/370bdaed.js.map +0 -1
  218. package/_internal/37b007a4.js.map +0 -1
  219. package/_internal/3a1facc0.js.map +0 -1
  220. package/_internal/3a4e4636.js.map +0 -1
  221. package/_internal/3e653144.js.map +0 -1
  222. package/_internal/3f86608e.js.map +0 -1
  223. package/_internal/478b5c92.js.map +0 -1
  224. package/_internal/4962be5b.js +0 -121
  225. package/_internal/4962be5b.js.map +0 -1
  226. package/_internal/49bbeed3.js +0 -6
  227. package/_internal/49bbeed3.js.map +0 -1
  228. package/_internal/4cd870a5.js.map +0 -1
  229. package/_internal/4daccdd5.js.map +0 -1
  230. package/_internal/501f2f9f.js.map +0 -1
  231. package/_internal/5e7b90e2.js +0 -2
  232. package/_internal/5e7b90e2.js.map +0 -1
  233. package/_internal/5ec059fe.js.map +0 -1
  234. package/_internal/5f8f9454.js.map +0 -1
  235. package/_internal/5fe09341.js.map +0 -1
  236. package/_internal/628468c4.js.map +0 -1
  237. package/_internal/6589b796.js +0 -280
  238. package/_internal/6589b796.js.map +0 -1
  239. package/_internal/65f91970.js.map +0 -1
  240. package/_internal/66f691d3.js +0 -74
  241. package/_internal/66f691d3.js.map +0 -1
  242. package/_internal/68c10f98.js.map +0 -1
  243. package/_internal/690ca33e.js +0 -109
  244. package/_internal/690ca33e.js.map +0 -1
  245. package/_internal/6ca04271.js +0 -108
  246. package/_internal/6ca04271.js.map +0 -1
  247. package/_internal/6da19518.js.map +0 -1
  248. package/_internal/7093ba23.js.map +0 -1
  249. package/_internal/74a4a214.js +0 -82
  250. package/_internal/74a4a214.js.map +0 -1
  251. package/_internal/76be70dd.js.map +0 -1
  252. package/_internal/78df9309.js.map +0 -1
  253. package/_internal/7b221b05.js +0 -9
  254. package/_internal/7b221b05.js.map +0 -1
  255. package/_internal/7daf0f24.js.map +0 -1
  256. package/_internal/7f54e947.js.map +0 -1
  257. package/_internal/825ac334.js.map +0 -1
  258. package/_internal/827b804a.js +0 -6
  259. package/_internal/827b804a.js.map +0 -1
  260. package/_internal/84dfe68f.js.map +0 -1
  261. package/_internal/85e3a5ca.js.map +0 -1
  262. package/_internal/86aa4aa4.js.map +0 -1
  263. package/_internal/88ec77c2.js +0 -130
  264. package/_internal/88ec77c2.js.map +0 -1
  265. package/_internal/8ab42752.js.map +0 -1
  266. package/_internal/95cfd814.js.map +0 -1
  267. package/_internal/9a4dfad0.js.map +0 -1
  268. package/_internal/9c9df5f2.js.map +0 -1
  269. package/_internal/9d1336a1.js.map +0 -1
  270. package/_internal/9fdc715b.js.map +0 -1
  271. package/_internal/a003602b.js +0 -116
  272. package/_internal/a003602b.js.map +0 -1
  273. package/_internal/a34639bd.js +0 -97
  274. package/_internal/a34639bd.js.map +0 -1
  275. package/_internal/a84f4981.js.map +0 -1
  276. package/_internal/b0a7a999.js.map +0 -1
  277. package/_internal/b0b2e33d.js.map +0 -1
  278. package/_internal/b1af5979.js.map +0 -1
  279. package/_internal/b477da26.js.map +0 -1
  280. package/_internal/b8667090.js.map +0 -1
  281. package/_internal/bae266a9.js.map +0 -1
  282. package/_internal/be6da9b0.js.map +0 -1
  283. package/_internal/c0414b89.js.map +0 -1
  284. package/_internal/c2388b10.js.map +0 -1
  285. package/_internal/c459a04d.js +0 -148
  286. package/_internal/c459a04d.js.map +0 -1
  287. package/_internal/c6ca7494.js +0 -2
  288. package/_internal/c6ca7494.js.map +0 -1
  289. package/_internal/cdddaed8.js.map +0 -1
  290. package/_internal/d0dd1815.js +0 -10
  291. package/_internal/d0dd1815.js.map +0 -1
  292. package/_internal/d45e3f16.js +0 -15
  293. package/_internal/d45e3f16.js.map +0 -1
  294. package/_internal/d5f316cb.js.map +0 -1
  295. package/_internal/d95844c1.d.ts +0 -7
  296. package/_internal/db4fdc7b.js.map +0 -1
  297. package/_internal/dbe0cf24.js +0 -75
  298. package/_internal/dbe0cf24.js.map +0 -1
  299. package/_internal/de24f857.js +0 -4
  300. package/_internal/de24f857.js.map +0 -1
  301. package/_internal/e2afb13f.js +0 -75
  302. package/_internal/e2afb13f.js.map +0 -1
  303. package/_internal/e52f0d3f.js +0 -94
  304. package/_internal/e52f0d3f.js.map +0 -1
  305. package/_internal/e6dd117e.js.map +0 -1
  306. package/_internal/e806b848.js.map +0 -1
  307. package/_internal/ea04260d.js.map +0 -1
  308. package/_internal/eaa8b1d8.js.map +0 -1
  309. package/_internal/eaf6c45a.js +0 -4
  310. package/_internal/eaf6c45a.js.map +0 -1
  311. package/_internal/edab29ce.js.map +0 -1
  312. package/_internal/ef5d1aac.js +0 -4
  313. package/_internal/ef5d1aac.js.map +0 -1
  314. package/_internal/f0900583.js +0 -142
  315. package/_internal/f0d7d6ea.js.map +0 -1
  316. package/_internal/f23cdf84.js.map +0 -1
  317. package/_internal/f52e979e.js +0 -3
  318. package/_internal/f52e979e.js.map +0 -1
  319. package/_internal/f5508d3d.js.map +0 -1
  320. package/_internal/f93fe83e.js.map +0 -1
@@ -1,21 +1,22 @@
1
+ import { f as forwardRef, _ as _extends, c as classNames } from './forwardRef-49d2bb84.js';
1
2
  import React__default, { useState, useRef, useCallback } from 'react';
2
- import { m as getRootClassName, n as forwardRef, d as Emphasis, l as classNames } from './6589b796.js';
3
+ import { getRootClassName } from '@lumx/core/js/utils/className';
4
+ import { mdiChevronRight, mdiChevronLeft } from '@lumx/icons';
3
5
  import last from 'lodash/last';
4
- import { o as onEnterPressed } from './88ec77c2.js';
5
- import { V as VISUALLY_HIDDEN } from './478b5c92.js';
6
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
- import { I as IconButton } from './0a490b07.js';
8
- import { a as mdiChevronRight, m as mdiChevronLeft } from './827b804a.js';
9
- import { FlexBox } from './329b5f12.js';
10
- import { Toolbar } from './bae266a9.js';
11
- import { TextField } from './b0b2e33d.js';
12
- import { T as Text } from './0420e67b.js';
13
- import { a as Button } from './a34639bd.js';
14
- import { u as useBooleanState } from './2a3d237c.js';
15
- import { u as useDisableStateProps } from './b8667090.js';
16
- import { P as Popover } from './84dfe68f.js';
17
- import { H as HeadingLevelProvider } from './370bdaed.js';
18
- import { P as Placement } from './4cd870a5.js';
6
+ import { onEnterPressed } from '@lumx/core/js/utils';
7
+ import { V as VISUALLY_HIDDEN } from './constants-d0e3f49e.js';
8
+ import { I as IconButton } from './IconButton-10585058.js';
9
+ import { FlexBox } from './components/flex-box-c8701a85.js';
10
+ import { Toolbar } from './components/toolbar-155562be.js';
11
+ import { Emphasis } from '@lumx/core/js/constants';
12
+ import { TextField } from './components/text-field-82733568.js';
13
+ import { T as Text } from './index-b4d256e7.js';
14
+ import { a as Button } from './Button-f19e18df.js';
15
+ import { u as useBooleanState } from './useBooleanState-2a3d237c.js';
16
+ import { u as useDisableStateProps } from './useDisableStateProps-fffc365f.js';
17
+ import { P as Popover } from './index-f415b08e.js';
18
+ import { H as HeadingLevelProvider } from './HeadingLevelProvider-e4817816.js';
19
+ import { P as Placement } from './constants-b9e57936.js';
19
20
 
20
21
  /**
21
22
  * Add a number of months from a date while resetting the day to prevent month length mismatches.
@@ -258,6 +259,10 @@ function formatDayNumber(locale, date) {
258
259
  return formattedDate;
259
260
  }
260
261
 
262
+ /**
263
+ * Defines the props of the component.
264
+ */
265
+
261
266
  /**
262
267
  * Component display name.
263
268
  */
@@ -344,112 +349,98 @@ const DatePickerControlled = forwardRef((props, ref) => {
344
349
  if (monthHasChanged) setLabelAriaLive('polite');
345
350
  }, [monthHasChanged]);
346
351
  const yearLabel = getYearDisplayName(locale);
347
- return /*#__PURE__*/jsxs("div", {
352
+ return /*#__PURE__*/React__default.createElement("div", {
348
353
  ref: ref,
349
354
  className: `${CLASSNAME$1}`,
350
- style: style,
351
- children: [/*#__PURE__*/jsx(Toolbar, {
352
- className: `${CLASSNAME$1}__toolbar`,
353
- after: /*#__PURE__*/jsx(IconButton, {
354
- ...nextButtonProps,
355
- emphasis: Emphasis.low,
356
- icon: mdiChevronRight,
357
- onClick: onNextMonthChange
358
- }),
359
- before: /*#__PURE__*/jsx(IconButton, {
360
- ...previousButtonProps,
361
- emphasis: Emphasis.low,
362
- icon: mdiChevronLeft,
363
- onClick: onPrevMonthChange
364
- }),
365
- label: /*#__PURE__*/jsxs(Fragment, {
366
- children: [/*#__PURE__*/jsx("span", {
367
- "aria-live": labelAriaLive,
368
- className: onMonthChange ? VISUALLY_HIDDEN : '',
369
- dir: "auto",
370
- children: monthYear
371
- }), onMonthChange && /*#__PURE__*/jsx(FlexBox, {
372
- className: `${CLASSNAME$1}__month`,
373
- orientation: "horizontal",
374
- hAlign: "center",
375
- gap: "regular",
376
- vAlign: "center",
377
- dir: "auto",
378
- children: RegExp(`(.*)(${formattedYear})(.*)`).exec(monthYear)?.slice(1).filter(part => part !== '').map(part => part === formattedYear ? /*#__PURE__*/jsx(TextField, {
379
- value: currentYear,
380
- "aria-label": yearLabel,
381
- onChange: onYearChange,
382
- type: "number",
383
- max: 9999,
384
- min: 0,
385
- onBlur: updateYear,
386
- onKeyPress: updateYearOnEnterPressed,
387
- className: `${CLASSNAME$1}__year`
388
- }, "year") : /*#__PURE__*/jsx(Text, {
389
- as: "p",
390
- children: part
391
- }, part))
392
- })]
393
- })
394
- }), /*#__PURE__*/jsxs("div", {
395
- className: `${CLASSNAME$1}__calendar`,
396
- children: [/*#__PURE__*/jsx("div", {
397
- className: `${CLASSNAME$1}__week-days ${CLASSNAME$1}__days-wrapper`,
398
- children: weekDays.map(({
399
- letter,
400
- number,
401
- long
402
- }) => /*#__PURE__*/jsxs("div", {
403
- className: `${CLASSNAME$1}__day-wrapper`,
404
- children: [/*#__PURE__*/jsx("span", {
405
- className: `${CLASSNAME$1}__week-day`,
406
- "aria-hidden": true,
407
- children: letter.toLocaleUpperCase()
408
- }), /*#__PURE__*/jsx("span", {
409
- className: "visually-hidden",
410
- children: long
411
- })]
412
- }, number))
413
- }), /*#__PURE__*/jsx("div", {
414
- className: `${CLASSNAME$1}__month-days ${CLASSNAME$1}__days-wrapper`,
415
- children: weeks.flatMap((week, weekIndex) => {
416
- return weekDays.map((weekDay, dayIndex) => {
417
- const {
418
- date,
419
- isOutOfRange
420
- } = week[weekDay.number] || {};
421
- const key = `${weekIndex}-${dayIndex}`;
422
- const isToday = !isOutOfRange && date && isSameDay(date, new Date());
423
- const isSelected = date && value && isSameDay(value, date);
424
- return /*#__PURE__*/jsx("div", {
425
- className: `${CLASSNAME$1}__day-wrapper`,
426
- children: date && /*#__PURE__*/jsxs(Button, {
427
- ref: isSelected || !value && isToday ? todayOrSelectedDateRef : null,
428
- className: classNames(`${CLASSNAME$1}__month-day`, {
429
- [`${CLASSNAME$1}__month-day--is-today`]: isToday
430
- }),
431
- disabled: isOutOfRange,
432
- isSelected: isSelected,
433
- emphasis: "low",
434
- onClick: () => onChange(date),
435
- children: [/*#__PURE__*/jsx("span", {
436
- "aria-hidden": true,
437
- children: formatDayNumber(locale, date)
438
- }), /*#__PURE__*/jsx("span", {
439
- className: VISUALLY_HIDDEN,
440
- children: date.toLocaleDateString(locale, {
441
- day: 'numeric',
442
- month: 'long',
443
- year: 'numeric'
444
- })
445
- })]
446
- })
447
- }, key);
448
- });
449
- })
450
- })]
451
- })]
452
- });
355
+ style: style
356
+ }, /*#__PURE__*/React__default.createElement(Toolbar, {
357
+ className: `${CLASSNAME$1}__toolbar`,
358
+ after: /*#__PURE__*/React__default.createElement(IconButton, _extends({}, nextButtonProps, {
359
+ emphasis: Emphasis.low,
360
+ icon: mdiChevronRight,
361
+ onClick: onNextMonthChange
362
+ })),
363
+ before: /*#__PURE__*/React__default.createElement(IconButton, _extends({}, previousButtonProps, {
364
+ emphasis: Emphasis.low,
365
+ icon: mdiChevronLeft,
366
+ onClick: onPrevMonthChange
367
+ })),
368
+ label: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("span", {
369
+ "aria-live": labelAriaLive,
370
+ className: onMonthChange ? VISUALLY_HIDDEN : '',
371
+ dir: "auto"
372
+ }, monthYear), onMonthChange && /*#__PURE__*/React__default.createElement(FlexBox, {
373
+ className: `${CLASSNAME$1}__month`,
374
+ orientation: "horizontal",
375
+ hAlign: "center",
376
+ gap: "regular",
377
+ vAlign: "center",
378
+ dir: "auto"
379
+ }, RegExp(`(.*)(${formattedYear})(.*)`).exec(monthYear)?.slice(1).filter(part => part !== '').map(part => part === formattedYear ? /*#__PURE__*/React__default.createElement(TextField, {
380
+ value: currentYear,
381
+ "aria-label": yearLabel,
382
+ onChange: onYearChange,
383
+ type: "number",
384
+ max: 9999,
385
+ min: 0,
386
+ onBlur: updateYear,
387
+ onKeyPress: updateYearOnEnterPressed,
388
+ key: "year",
389
+ className: `${CLASSNAME$1}__year`
390
+ }) : /*#__PURE__*/React__default.createElement(Text, {
391
+ as: "p",
392
+ key: part
393
+ }, part))))
394
+ }), /*#__PURE__*/React__default.createElement("div", {
395
+ className: `${CLASSNAME$1}__calendar`
396
+ }, /*#__PURE__*/React__default.createElement("div", {
397
+ className: `${CLASSNAME$1}__week-days ${CLASSNAME$1}__days-wrapper`
398
+ }, weekDays.map(({
399
+ letter,
400
+ number,
401
+ long
402
+ }) => /*#__PURE__*/React__default.createElement("div", {
403
+ key: number,
404
+ className: `${CLASSNAME$1}__day-wrapper`
405
+ }, /*#__PURE__*/React__default.createElement("span", {
406
+ className: `${CLASSNAME$1}__week-day`,
407
+ "aria-hidden": true
408
+ }, letter.toLocaleUpperCase()), /*#__PURE__*/React__default.createElement("span", {
409
+ className: "visually-hidden"
410
+ }, long)))), /*#__PURE__*/React__default.createElement("div", {
411
+ className: `${CLASSNAME$1}__month-days ${CLASSNAME$1}__days-wrapper`
412
+ }, weeks.flatMap((week, weekIndex) => {
413
+ return weekDays.map((weekDay, dayIndex) => {
414
+ const {
415
+ date,
416
+ isOutOfRange
417
+ } = week[weekDay.number] || {};
418
+ const key = `${weekIndex}-${dayIndex}`;
419
+ const isToday = !isOutOfRange && date && isSameDay(date, new Date());
420
+ const isSelected = date && value && isSameDay(value, date);
421
+ return /*#__PURE__*/React__default.createElement("div", {
422
+ key: key,
423
+ className: `${CLASSNAME$1}__day-wrapper`
424
+ }, date && /*#__PURE__*/React__default.createElement(Button, {
425
+ ref: isSelected || !value && isToday ? todayOrSelectedDateRef : null,
426
+ className: classNames(`${CLASSNAME$1}__month-day`, {
427
+ [`${CLASSNAME$1}__month-day--is-today`]: isToday
428
+ }),
429
+ disabled: isOutOfRange,
430
+ isSelected: isSelected,
431
+ emphasis: "low",
432
+ onClick: () => onChange(date)
433
+ }, /*#__PURE__*/React__default.createElement("span", {
434
+ "aria-hidden": true
435
+ }, formatDayNumber(locale, date)), /*#__PURE__*/React__default.createElement("span", {
436
+ className: VISUALLY_HIDDEN
437
+ }, date.toLocaleDateString(locale, {
438
+ day: 'numeric',
439
+ month: 'long',
440
+ year: 'numeric'
441
+ }))));
442
+ });
443
+ }))));
453
444
  });
454
445
  DatePickerControlled.displayName = COMPONENT_NAME$2;
455
446
  DatePickerControlled.className = CLASSNAME$1;
@@ -481,9 +472,9 @@ const DatePicker = forwardRef((props, ref) => {
481
472
  const onDatePickerChange = newDate => {
482
473
  onChange(newDate);
483
474
  };
484
- return /*#__PURE__*/jsx(DatePickerControlled, {
485
- ref: ref,
486
- ...forwardedProps,
475
+ return /*#__PURE__*/React.createElement(DatePickerControlled, _extends({
476
+ ref: ref
477
+ }, forwardedProps, {
487
478
  defaultMonth: defaultMonth,
488
479
  locale: locale,
489
480
  value: value,
@@ -492,11 +483,15 @@ const DatePicker = forwardRef((props, ref) => {
492
483
  selectedMonth: selectedMonth,
493
484
  onChange: onDatePickerChange,
494
485
  onMonthChange: setSelectedMonth
495
- });
486
+ }));
496
487
  });
497
488
  DatePicker.displayName = COMPONENT_NAME$3;
498
489
  DatePicker.className = CLASSNAME$1;
499
490
 
491
+ /**
492
+ * Defines the props of the component.
493
+ */
494
+
500
495
  /**
501
496
  * Component display name.
502
497
  */
@@ -550,47 +545,49 @@ const DatePickerField = forwardRef((props, ref) => {
550
545
  day: 'numeric'
551
546
  }) || '';
552
547
  const todayOrSelectedDateRef = React__default.useRef(null);
553
- return /*#__PURE__*/jsxs(Fragment, {
554
- children: [/*#__PURE__*/jsx(TextField, {
555
- ref: ref,
556
- ...forwardedProps,
557
- name: name,
558
- forceFocusStyle: isOpen,
559
- textFieldRef: anchorRef,
560
- value: textFieldValue,
561
- onClick: toggleOpen,
562
- onChange: onTextFieldChange,
563
- onKeyPress: handleKeyboardNav,
564
- ...disabledStateProps,
565
- readOnly: true,
566
- "aria-haspopup": "dialog"
567
- }), isOpen ? /*#__PURE__*/jsx(PopoverDialog
568
- // Can't use `aria-labelledby` targeting the text field label element (not correctly read on some screen readers)
569
- , {
570
- "aria-label": forwardedProps.label,
571
- anchorRef: anchorRef,
572
- placement: Placement.BOTTOM_START,
573
- isOpen: isOpen,
574
- onClose: close
575
- // On open, focus the selected day or today
576
- ,
577
- focusElement: todayOrSelectedDateRef,
578
- children: /*#__PURE__*/jsx(DatePicker, {
579
- locale: locale,
580
- maxDate: maxDate,
581
- minDate: minDate,
582
- value: value,
583
- todayOrSelectedDateRef: todayOrSelectedDateRef,
584
- onChange: onDatePickerChange,
585
- defaultMonth: defaultMonth,
586
- nextButtonProps: nextButtonProps,
587
- previousButtonProps: previousButtonProps
588
- })
589
- }) : null]
590
- });
548
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TextField, _extends({
549
+ ref: ref
550
+ }, forwardedProps, {
551
+ name: name,
552
+ forceFocusStyle: isOpen,
553
+ textFieldRef: anchorRef,
554
+ value: textFieldValue,
555
+ onClick: toggleOpen,
556
+ onChange: onTextFieldChange,
557
+ onKeyPress: handleKeyboardNav
558
+ }, disabledStateProps, {
559
+ readOnly: true,
560
+ "aria-haspopup": "dialog"
561
+ })), isOpen ? /*#__PURE__*/React__default.createElement(PopoverDialog
562
+ // Can't use `aria-labelledby` targeting the text field label element (not correctly read on some screen readers)
563
+ , {
564
+ "aria-label": forwardedProps.label,
565
+ anchorRef: anchorRef,
566
+ placement: Placement.BOTTOM_START,
567
+ isOpen: isOpen,
568
+ onClose: close
569
+ // On open, focus the selected day or today
570
+ ,
571
+ focusElement: todayOrSelectedDateRef
572
+ }, /*#__PURE__*/React__default.createElement(DatePicker, {
573
+ locale: locale,
574
+ maxDate: maxDate,
575
+ minDate: minDate,
576
+ value: value,
577
+ todayOrSelectedDateRef: todayOrSelectedDateRef,
578
+ onChange: onDatePickerChange,
579
+ defaultMonth: defaultMonth,
580
+ nextButtonProps: nextButtonProps,
581
+ previousButtonProps: previousButtonProps
582
+ })) : null);
591
583
  });
592
584
  DatePickerField.displayName = COMPONENT_NAME$1;
593
585
 
586
+ /**
587
+ * PopoverDialog props.
588
+ * The PopoverDialog has the same props as the Popover but requires an accessible label.
589
+ */
590
+
594
591
  /**
595
592
  * Component display name.
596
593
  */
@@ -623,8 +620,7 @@ const PopoverDialog = forwardRef((props, ref) => {
623
620
  className,
624
621
  ...forwardedProps
625
622
  } = props;
626
- return /*#__PURE__*/jsx(Popover, {
627
- ...forwardedProps,
623
+ return /*#__PURE__*/React.createElement(Popover, _extends({}, forwardedProps, {
628
624
  ref: ref,
629
625
  className: classNames(className, CLASSNAME),
630
626
  role: "dialog",
@@ -638,16 +634,14 @@ const PopoverDialog = forwardRef((props, ref) => {
638
634
  focusElement: focusElement,
639
635
  closeOnClickAway: true,
640
636
  closeOnEscape: true,
641
- withFocusTrap: true,
642
- children: /*#__PURE__*/jsx(HeadingLevelProvider, {
643
- level: 2,
644
- children: children
645
- })
646
- });
637
+ withFocusTrap: true
638
+ }), /*#__PURE__*/React.createElement(HeadingLevelProvider, {
639
+ level: 2
640
+ }, children));
647
641
  });
648
642
  PopoverDialog.displayName = COMPONENT_NAME;
649
643
  PopoverDialog.className = CLASSNAME;
650
644
  PopoverDialog.defaultProps = DEFAULT_PROPS;
651
645
 
652
646
  export { DatePicker as D, PopoverDialog as P, DatePickerControlled as a, DatePickerField as b };
653
- //# sourceMappingURL=b1af5979.js.map
647
+ //# sourceMappingURL=PopoverDialog-21e5c9dd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverDialog-21e5c9dd.js","sources":["../../src/utils/date/addMonthResetDay.ts","../../src/utils/date/isDateValid.ts","../../src/components/date-picker/constants.ts","../../src/utils/date/getFirstDayOfWeek.ts","../../src/utils/date/getWeekDays.ts","../../src/utils/date/getMonthCalendar.ts","../../src/utils/date/isSameDay.ts","../../src/utils/locale/getCurrentLocale.ts","../../src/utils/locale/parseLocale.ts","../../src/hooks/usePreviousValue.ts","../../src/utils/date/getYearDisplayName.ts","../../src/utils/date/formatDayNumber.ts","../../src/components/date-picker/DatePickerControlled.tsx","../../src/components/date-picker/DatePicker.tsx","../../src/components/date-picker/DatePickerField.tsx","../../src/components/popover-dialog/PopoverDialog.tsx"],"sourcesContent":["/**\n * Add a number of months from a date while resetting the day to prevent month length mismatches.\n */\nexport function addMonthResetDay(date: Date, monthOffset: number) {\n const newDate = new Date(date.getTime());\n newDate.setDate(1);\n newDate.setMonth(date.getMonth() + monthOffset);\n return newDate;\n}\n","/**\n * Check if given date is valid.\n */\nexport const isDateValid = (date?: Date) => date instanceof Date && !Number.isNaN(date.getTime());\n","import { getRootClassName } from '@lumx/core/js/utils/className';\n\n/**\n * Component display name.\n */\nexport const COMPONENT_NAME = 'DatePicker';\n\n/**\n * Component default class name and class prefix.\n */\nexport const CLASSNAME = getRootClassName(COMPONENT_NAME);\n","import { Locale } from '@lumx/react/utils/locale/types';\n\n/** Get first day of week for locale from the browser API */\nexport const getFromBrowser = (locale: Locale): number | undefined => {\n try {\n const localeMetadata = new Intl.Locale(locale.code) as any;\n const { firstDay } = localeMetadata.getWeekInfo?.() || localeMetadata.weekInfo;\n // Sunday is represented as `0` in Date.getDay()\n if (firstDay === 7) return 0;\n return firstDay;\n } catch (e) {\n return undefined;\n }\n};\n\n/** List first day for each locale (could be removed when all browser implement Locale weekInfo) */\nconst FIRST_DAY_FOR_LOCALES = [\n {\n // Locales with Sunday as the first day of the week\n localeRX: /^(af|ar-(dz|eg|sa)|bn|cy|en-(ca|us|za)|fr-ca|gd|he|hi|ja|km|ko|pt-br|te|th|ug|zh-hk)$/i,\n firstDay: 0,\n },\n {\n // Locales with Monday as the first day of the week\n localeRX:\n /^(ar-(ma|tn)|az|be|bg|bs|ca|cs|da|de|el|en-(au|gb|ie|in|nz)|eo|es|et|eu|fi|fr|fy|gl|gu|hr|ht|hu|hy|id|is|it|ka|kk|kn|lb|lt|lv|mk|mn|ms|mt|nb|nl|nn|oc|pl|pt|ro|ru|sk|sl|sq|sr|sv|ta|tr|uk|uz|vi|zh-(cn|tw))$/i,\n firstDay: 1,\n },\n {\n // Locales with Saturday as the first day of the week\n localeRX: /^(ar|fa-ir)$/i,\n firstDay: 6,\n },\n];\n\n/** Find first day of week for locale from the constant */\nconst getFromConstant = (locale: Locale, searchBy: keyof Locale = 'code'): number | undefined => {\n // Search for locale (lang + region)\n for (const { localeRX, firstDay } of FIRST_DAY_FOR_LOCALES) {\n if (localeRX.test(locale[searchBy] as string)) return firstDay;\n }\n // Fallback search for locale lang\n if (locale.code !== locale.language) {\n return getFromConstant(locale, 'language');\n }\n return undefined;\n};\n\n/**\n * Get first day of the week for the given locale code (language + region).\n */\nexport const getFirstDayOfWeek = (locale: Locale): number | undefined => {\n // Get from browser API\n const firstDay = getFromBrowser(locale);\n if (firstDay !== undefined) return firstDay;\n\n // Get from constant\n return getFromConstant(locale);\n};\n","import { Locale } from '@lumx/react/utils/locale/types';\nimport { getFirstDayOfWeek } from './getFirstDayOfWeek';\n\nexport type WeekDayInfo = { letter: string; number: number; long: string };\n\nexport const DAYS_PER_WEEK = 7;\n\n/**\n * List week days (based on locale) with the week day letter (ex: \"M\" for \"Monday\") and week day number\n * (0-based index starting on Sunday).\n */\nexport const getWeekDays = (locale: Locale): Array<WeekDayInfo> => {\n const iterDate = new Date();\n const firstDay = getFirstDayOfWeek(locale) ?? 1;\n\n // Go to start of the week\n const offset = firstDay - iterDate.getDay();\n iterDate.setDate(iterDate.getDate() + offset);\n\n // Iterate through the days of the week\n const weekDays: Array<WeekDayInfo> = [];\n for (let i = 0; i < DAYS_PER_WEEK; i++) {\n // Single letter week day (ex: \"M\" for \"Monday\", \"L\" for \"Lundi\", etc.)\n const letter = iterDate.toLocaleDateString(locale.code, { weekday: 'narrow' });\n // Weed day long notation\n const long = iterDate.toLocaleDateString(locale.code, { weekday: 'long' });\n // Day number (1-based index starting on Monday)\n const number = iterDate.getDay();\n\n weekDays.push({ letter, number, long });\n iterDate.setDate(iterDate.getDate() + 1);\n }\n return weekDays;\n};\n","import last from 'lodash/last';\n\nimport { getWeekDays, WeekDayInfo } from '@lumx/react/utils/date/getWeekDays';\nimport { Locale } from '@lumx/react/utils/locale/types';\n\ntype AnnotatedDay = { date: Date; isOutOfRange?: boolean };\ntype AnnotatedWeek = Partial<Record<number, AnnotatedDay>>;\n\ninterface MonthCalendar {\n weekDays: Array<WeekDayInfo>;\n weeks: Array<AnnotatedWeek>;\n}\n\n/** Up to 6 rows can appear in a month calendar => 4 weeks + 1 start of month partial week + 1 send of month partial week */\nconst MONTH_ROW_COUNT = 6;\n\n/**\n * Get month calendar.\n * A list of weeks with days indexed by week day number\n */\nexport const getMonthCalendar = (\n locale: Locale,\n referenceDate = new Date(),\n rangeMinDate?: Date,\n rangeMaxDate?: Date,\n): MonthCalendar => {\n const month = referenceDate.getMonth();\n const iterDate = new Date(referenceDate);\n iterDate.setDate(1);\n\n const minDate = rangeMinDate && new Date(rangeMinDate);\n const maxDate = rangeMaxDate && new Date(rangeMaxDate);\n // Reset time to compare dates only.\n iterDate.setUTCHours(0, 0, 0, 0);\n minDate?.setUTCHours(0, 0, 0, 0);\n maxDate?.setUTCHours(0, 0, 0, 0);\n\n const weekDays = getWeekDays(locale);\n const lastDayOfWeek = last(weekDays) as WeekDayInfo;\n\n const weeks: Array<AnnotatedWeek> = [];\n let week: AnnotatedWeek = {};\n let rowCount = 0;\n\n while (rowCount < MONTH_ROW_COUNT) {\n const weekDayNumber = iterDate.getDay();\n const day: AnnotatedDay = { date: new Date(iterDate.getTime()) };\n\n // If a range is specified, check if the day is out of range.\n // min and max date are included within the valid range.\n if ((minDate && iterDate < minDate) || (maxDate && iterDate > maxDate)) {\n day.isOutOfRange = true;\n }\n\n if (iterDate.getMonth() === month) {\n week[weekDayNumber] = day;\n }\n\n if (weekDayNumber === lastDayOfWeek.number) {\n weeks.push(week);\n rowCount += 1;\n week = {};\n }\n iterDate.setDate(iterDate.getDate() + 1);\n }\n if (Object.keys(week).length) weeks.push(week);\n\n return { weeks, weekDays };\n};\n","import { isDateValid } from '@lumx/react/utils/date/isDateValid';\n\n/**\n * Check `date1` is on the same day as `date2`.\n */\nexport const isSameDay = (date1: Date, date2: Date) =>\n isDateValid(date1) &&\n isDateValid(date2) &&\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate();\n","/**\n * Get current browser locale.\n */\nexport const getCurrentLocale = (): string => navigator.languages?.[0] || navigator.language;\n","import { Locale } from '@lumx/react/utils/locale/types';\n\n/**\n * Parse locale code\n * @example\n * parseLocale('EN') // => { code: 'en', language: 'en' }\n * parseLocale('en_us') // => { code: 'en-US', language: 'en', region: 'US' }\n * parseLocale('EN-US') // => { code: 'en-US', language: 'en', region: 'US' }\n */\nexport function parseLocale(locale: string): Locale | undefined {\n const [rawLanguage, rawRegion] = locale.split(/[-_]/);\n if (!rawLanguage) {\n return undefined;\n }\n const language = rawLanguage.toLowerCase();\n let region: string | undefined;\n let code = language;\n if (rawRegion) {\n region = rawRegion.toUpperCase();\n code += `-${region}`;\n }\n return { code, region, language };\n}\n","import React from 'react';\n/**\n * Returns the value from the previous render.\n */\nexport function usePreviousValue<V>(value: V): V | undefined {\n const prevValueRef = React.useRef<V>();\n const prevValue = prevValueRef.current;\n React.useEffect(() => {\n prevValueRef.current = value;\n }, [value]);\n return prevValue;\n}\n","export const getYearDisplayName = (locale: string) => {\n let label: string | undefined;\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const displayNames = new Intl.DisplayNames(locale, { type: 'dateTimeField' });\n label = displayNames.of('year');\n } catch (error) {\n label = '';\n }\n return label;\n};\n","export function formatDayNumber(locale: string, date: Date): string {\n const formattedDate = date.toLocaleDateString(locale, { day: 'numeric' });\n if (formattedDate.match(/\\d/)) return formattedDate.replace(/\\D*(\\d+)\\D*/g, '$1');\n return formattedDate;\n}\n","import React, { KeyboardEventHandler } from 'react';\n\nimport classNames from 'classnames';\n\nimport {\n Button,\n DatePickerProps,\n Emphasis,\n FlexBox,\n IconButton,\n Text,\n TextField,\n TextFieldProps,\n Toolbar,\n} from '@lumx/react';\nimport { mdiChevronLeft, mdiChevronRight } from '@lumx/icons';\nimport { getMonthCalendar } from '@lumx/react/utils/date/getMonthCalendar';\nimport { isSameDay } from '@lumx/react/utils/date/isSameDay';\nimport { getCurrentLocale } from '@lumx/react/utils/locale/getCurrentLocale';\nimport { parseLocale } from '@lumx/react/utils/locale/parseLocale';\nimport { Locale } from '@lumx/react/utils/locale/types';\nimport { usePreviousValue } from '@lumx/react/hooks/usePreviousValue';\nimport { getYearDisplayName } from '@lumx/react/utils/date/getYearDisplayName';\nimport { onEnterPressed } from '@lumx/core/js/utils';\nimport { addMonthResetDay } from '@lumx/react/utils/date/addMonthResetDay';\nimport { formatDayNumber } from '@lumx/react/utils/date/formatDayNumber';\nimport { VISUALLY_HIDDEN } from '@lumx/react/constants';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { CLASSNAME } from './constants';\n\n/**\n * Defines the props of the component.\n */\nexport interface DatePickerControlledProps extends DatePickerProps {\n /** Selected month to display. */\n selectedMonth: Date;\n /** On previous month change callback. */\n onPrevMonthChange(): void;\n /** On next month change callback. */\n onNextMonthChange(): void;\n /** On month/year change callback. */\n onMonthChange?: (newMonth: Date) => void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'DatePickerControlled';\n\n/**\n * DatePickerControlled component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePickerControlled = forwardRef<DatePickerControlledProps, HTMLDivElement>((props, ref) => {\n const {\n locale = getCurrentLocale(),\n maxDate,\n minDate,\n nextButtonProps,\n onChange,\n onNextMonthChange,\n onPrevMonthChange,\n previousButtonProps,\n selectedMonth,\n todayOrSelectedDateRef,\n value,\n onMonthChange,\n style,\n } = props;\n const { weeks, weekDays } = React.useMemo(() => {\n const localeObj = parseLocale(locale) as Locale;\n return getMonthCalendar(localeObj, selectedMonth, minDate, maxDate);\n }, [locale, minDate, maxDate, selectedMonth]);\n\n const selectedYear = selectedMonth.getFullYear();\n const formattedYear = selectedMonth.toLocaleDateString(locale, { year: 'numeric' }).slice(0, 4);\n const [currentYear, setCurrentYear] = React.useState(String(selectedYear));\n\n // Updates month offset when validating year. Adds or removes 12 months per year when updating year value.\n const updateMonthOffset = React.useCallback(\n (newYearValue: string) => {\n const yearNumber = Number(newYearValue);\n if (yearNumber < 0 && yearNumber >= 9999) {\n return;\n }\n\n const previousYearNumber = selectedMonth.getFullYear();\n const offset = (yearNumber - previousYearNumber) * 12;\n onMonthChange?.(addMonthResetDay(selectedMonth, offset));\n },\n [selectedMonth, onMonthChange],\n );\n\n const onYearChange = React.useCallback<TextFieldProps['onChange']>(\n (newYearValue, _, event) => {\n setCurrentYear(newYearValue);\n\n // Detect if change is coming from the spin up/down arrows\n const inputType = (event?.nativeEvent as any)?.inputType;\n if (\n // Chrome/Safari\n !inputType ||\n // Firefox\n inputType === 'insertReplacementText'\n ) {\n updateMonthOffset(newYearValue);\n }\n },\n [updateMonthOffset],\n );\n\n const updateYear = React.useCallback(() => {\n updateMonthOffset(currentYear);\n }, [updateMonthOffset, currentYear]);\n\n const updateYearOnEnterPressed: KeyboardEventHandler = React.useMemo(\n () => onEnterPressed(updateYear),\n [updateYear],\n );\n\n const monthYear = selectedMonth.toLocaleDateString(locale, { year: 'numeric', month: 'long' });\n\n // Update current year when selected year changes\n React.useEffect(() => {\n setCurrentYear(String(selectedYear));\n }, [selectedYear]);\n\n const prevSelectedMonth = usePreviousValue(selectedMonth);\n const monthHasChanged = prevSelectedMonth && !isSameDay(selectedMonth, prevSelectedMonth);\n\n // Only set the aria-live after the month has changed otherwise it can get announced on mount when used in the popover dialog\n const [labelAriaLive, setLabelAriaLive] = React.useState<'polite'>();\n React.useEffect(() => {\n if (monthHasChanged) setLabelAriaLive('polite');\n }, [monthHasChanged]);\n\n const yearLabel = getYearDisplayName(locale);\n\n return (\n <div ref={ref} className={`${CLASSNAME}`} style={style}>\n <Toolbar\n className={`${CLASSNAME}__toolbar`}\n after={\n <IconButton\n {...nextButtonProps}\n emphasis={Emphasis.low}\n icon={mdiChevronRight}\n onClick={onNextMonthChange}\n />\n }\n before={\n <IconButton\n {...previousButtonProps}\n emphasis={Emphasis.low}\n icon={mdiChevronLeft}\n onClick={onPrevMonthChange}\n />\n }\n label={\n <>\n <span aria-live={labelAriaLive} className={onMonthChange ? VISUALLY_HIDDEN : ''} dir=\"auto\">\n {monthYear}\n </span>\n {onMonthChange && (\n <FlexBox\n className={`${CLASSNAME}__month`}\n orientation=\"horizontal\"\n hAlign=\"center\"\n gap=\"regular\"\n vAlign=\"center\"\n dir=\"auto\"\n >\n {RegExp(`(.*)(${formattedYear})(.*)`)\n .exec(monthYear)\n ?.slice(1)\n .filter((part) => part !== '')\n .map((part) =>\n part === formattedYear ? (\n <TextField\n value={currentYear}\n aria-label={yearLabel}\n onChange={onYearChange}\n type=\"number\"\n max={9999}\n min={0}\n onBlur={updateYear}\n onKeyPress={updateYearOnEnterPressed}\n key=\"year\"\n className={`${CLASSNAME}__year`}\n />\n ) : (\n <Text as=\"p\" key={part}>\n {part}\n </Text>\n ),\n )}\n </FlexBox>\n )}\n </>\n }\n />\n <div className={`${CLASSNAME}__calendar`}>\n <div className={`${CLASSNAME}__week-days ${CLASSNAME}__days-wrapper`}>\n {weekDays.map(({ letter, number, long }) => (\n <div key={number} className={`${CLASSNAME}__day-wrapper`}>\n <span className={`${CLASSNAME}__week-day`} aria-hidden>\n {letter.toLocaleUpperCase()}\n </span>\n <span className=\"visually-hidden\">{long}</span>\n </div>\n ))}\n </div>\n\n <div className={`${CLASSNAME}__month-days ${CLASSNAME}__days-wrapper`}>\n {weeks.flatMap((week, weekIndex) => {\n return weekDays.map((weekDay, dayIndex) => {\n const { date, isOutOfRange } = week[weekDay.number] || {};\n const key = `${weekIndex}-${dayIndex}`;\n const isToday = !isOutOfRange && date && isSameDay(date, new Date());\n const isSelected = date && value && isSameDay(value, date);\n\n return (\n <div key={key} className={`${CLASSNAME}__day-wrapper`}>\n {date && (\n <Button\n ref={isSelected || (!value && isToday) ? todayOrSelectedDateRef : null}\n className={classNames(`${CLASSNAME}__month-day`, {\n [`${CLASSNAME}__month-day--is-today`]: isToday,\n })}\n disabled={isOutOfRange}\n isSelected={isSelected}\n emphasis=\"low\"\n onClick={() => onChange(date)}\n >\n <span aria-hidden>{formatDayNumber(locale, date)}</span>\n <span className={VISUALLY_HIDDEN}>\n {date.toLocaleDateString(locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n })}\n </span>\n </Button>\n )}\n </div>\n );\n });\n })}\n </div>\n </div>\n </div>\n );\n});\nDatePickerControlled.displayName = COMPONENT_NAME;\nDatePickerControlled.className = CLASSNAME;\n","import { useState } from 'react';\n\nimport { addMonthResetDay } from '@lumx/react/utils/date/addMonthResetDay';\nimport { isDateValid } from '@lumx/react/utils/date/isDateValid';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { CLASSNAME, COMPONENT_NAME } from './constants';\nimport { DatePickerControlled } from './DatePickerControlled';\nimport { DatePickerProps } from './types';\n\n/**\n * DatePicker component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePicker = forwardRef<DatePickerProps, HTMLDivElement>((props, ref) => {\n const { defaultMonth, locale, value, onChange, ...forwardedProps } = props;\n\n let referenceDate = value || defaultMonth || new Date();\n if (!isDateValid(referenceDate)) {\n // eslint-disable-next-line no-console\n console.warn(`[@lumx/react/DatePicker] Invalid date provided ${referenceDate}`);\n referenceDate = new Date();\n }\n\n const [selectedMonth, setSelectedMonth] = useState(referenceDate);\n const setPrevMonth = () => setSelectedMonth((current) => addMonthResetDay(current, -1));\n const setNextMonth = () => setSelectedMonth((current) => addMonthResetDay(current, +1));\n\n const onDatePickerChange = (newDate?: Date) => {\n onChange(newDate);\n };\n\n return (\n <DatePickerControlled\n ref={ref}\n {...forwardedProps}\n defaultMonth={defaultMonth}\n locale={locale}\n value={value}\n onPrevMonthChange={setPrevMonth}\n onNextMonthChange={setNextMonth}\n selectedMonth={selectedMonth}\n onChange={onDatePickerChange}\n onMonthChange={setSelectedMonth}\n />\n );\n});\nDatePicker.displayName = COMPONENT_NAME;\nDatePicker.className = CLASSNAME;\n","import React, { SyntheticEvent, useCallback, useRef } from 'react';\n\nimport { DatePicker, IconButtonProps, Placement, PopoverDialog, TextField, TextFieldProps } from '@lumx/react';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getCurrentLocale } from '@lumx/react/utils/locale/getCurrentLocale';\nimport { useBooleanState } from '@lumx/react/hooks/useBooleanState';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useDisableStateProps } from '@lumx/react/utils/disabled/useDisableStateProps';\n\n/**\n * Defines the props of the component.\n */\nexport interface DatePickerFieldProps extends Omit<TextFieldProps, 'value' | 'onChange'>, GenericProps {\n /** Default month. */\n defaultMonth?: Date;\n /** Locale (language or region) to use. */\n locale?: string;\n /** Date after which dates can't be selected. */\n maxDate?: Date;\n /** Date before which dates can't be selected. */\n minDate?: Date;\n /** Props to pass to the next month button (minus those already set by the DatePickerControlled props). */\n nextButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Props to pass to the previous month button (minus those already set by the DatePickerControlled props). */\n previousButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Currently selected date. */\n value: Date | undefined;\n /** On change callback. */\n onChange(value: Date | undefined, name?: string, event?: SyntheticEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'DatePickerField';\n\n/**\n * DatePickerField component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePickerField = forwardRef<DatePickerFieldProps, HTMLDivElement>((props, ref) => {\n const { disabledStateProps, otherProps } = useDisableStateProps(props);\n const {\n defaultMonth,\n locale = getCurrentLocale(),\n maxDate,\n minDate,\n name,\n nextButtonProps,\n onChange,\n previousButtonProps,\n value,\n ...forwardedProps\n } = otherProps;\n const anchorRef = useRef(null);\n\n const [isOpen, close, , toggleOpen] = useBooleanState(false);\n\n const handleKeyboardNav = useCallback(\n (evt: React.KeyboardEvent) => {\n if (evt.key === 'Enter' || evt.key === ' ') {\n toggleOpen();\n }\n },\n [toggleOpen],\n );\n const onTextFieldChange = useCallback(\n (textFieldValue: string, textFieldName?: string, event?: SyntheticEvent) => {\n if (!textFieldValue) {\n onChange(undefined, textFieldName, event);\n }\n },\n [onChange],\n );\n const onDatePickerChange = useCallback(\n (newDate?: Date) => {\n onChange(newDate, name);\n close();\n },\n [name, onChange, close],\n );\n\n // Format date for text field\n const textFieldValue = value?.toLocaleDateString(locale, { year: 'numeric', month: 'long', day: 'numeric' }) || '';\n\n const todayOrSelectedDateRef = React.useRef(null);\n\n return (\n <>\n <TextField\n ref={ref}\n {...forwardedProps}\n name={name}\n forceFocusStyle={isOpen}\n textFieldRef={anchorRef}\n value={textFieldValue}\n onClick={toggleOpen}\n onChange={onTextFieldChange}\n onKeyPress={handleKeyboardNav}\n {...disabledStateProps}\n readOnly\n aria-haspopup=\"dialog\"\n />\n {isOpen ? (\n <PopoverDialog\n // Can't use `aria-labelledby` targeting the text field label element (not correctly read on some screen readers)\n aria-label={forwardedProps.label}\n anchorRef={anchorRef}\n placement={Placement.BOTTOM_START}\n isOpen={isOpen}\n onClose={close}\n // On open, focus the selected day or today\n focusElement={todayOrSelectedDateRef}\n >\n <DatePicker\n locale={locale}\n maxDate={maxDate}\n minDate={minDate}\n value={value}\n todayOrSelectedDateRef={todayOrSelectedDateRef}\n onChange={onDatePickerChange}\n defaultMonth={defaultMonth}\n nextButtonProps={nextButtonProps}\n previousButtonProps={previousButtonProps}\n />\n </PopoverDialog>\n ) : null}\n </>\n );\n});\nDatePickerField.displayName = COMPONENT_NAME;\n","import classNames from 'classnames';\n\nimport { HasAriaLabelOrLabelledBy } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { HeadingLevelProvider } from '@lumx/react/components/heading';\nimport { Popover, PopoverProps } from '../popover/Popover';\n\n/**\n * PopoverDialog props.\n * The PopoverDialog has the same props as the Popover but requires an accessible label.\n */\nexport type PopoverDialogProps = PopoverProps & HasAriaLabelOrLabelledBy;\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'PopoverDialog';\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<PopoverDialogProps> = {};\n\n/**\n * PopoverDialog component.\n * Defines a popover that acts like a dialog\n * * Has a dialog aria role\n * * Sets a focus trap within the popover\n * * Closes on click away and escape.\n */\nexport const PopoverDialog = forwardRef<PopoverDialogProps, HTMLDivElement>((props, ref) => {\n const {\n children,\n isOpen,\n focusElement,\n 'aria-label': ariaLabel,\n label = ariaLabel,\n className,\n ...forwardedProps\n } = props;\n\n return (\n <Popover\n {...forwardedProps}\n ref={ref}\n className={classNames(className, CLASSNAME)}\n role=\"dialog\"\n aria-modal=\"true\"\n /**\n * If a label is set, set as aria-label.\n * If it is undefined, the label can be set using the `aria-label` and `aria-labelledby` props\n */\n aria-label={label}\n isOpen={isOpen}\n focusElement={focusElement}\n closeOnClickAway\n closeOnEscape\n withFocusTrap\n >\n <HeadingLevelProvider level={2}>{children}</HeadingLevelProvider>\n </Popover>\n );\n});\n\nPopoverDialog.displayName = COMPONENT_NAME;\nPopoverDialog.className = CLASSNAME;\nPopoverDialog.defaultProps = DEFAULT_PROPS;\n"],"names":["addMonthResetDay","date","monthOffset","newDate","Date","getTime","setDate","setMonth","getMonth","isDateValid","Number","isNaN","COMPONENT_NAME","CLASSNAME","getRootClassName","getFromBrowser","locale","localeMetadata","Intl","Locale","code","firstDay","getWeekInfo","weekInfo","e","undefined","FIRST_DAY_FOR_LOCALES","localeRX","getFromConstant","searchBy","test","language","getFirstDayOfWeek","DAYS_PER_WEEK","getWeekDays","iterDate","offset","getDay","getDate","weekDays","i","letter","toLocaleDateString","weekday","long","number","push","MONTH_ROW_COUNT","getMonthCalendar","referenceDate","rangeMinDate","rangeMaxDate","month","minDate","maxDate","setUTCHours","lastDayOfWeek","last","weeks","week","rowCount","weekDayNumber","day","isOutOfRange","Object","keys","length","isSameDay","date1","date2","getFullYear","getCurrentLocale","navigator","languages","parseLocale","rawLanguage","rawRegion","split","toLowerCase","region","toUpperCase","usePreviousValue","value","prevValueRef","React","useRef","prevValue","current","useEffect","getYearDisplayName","label","displayNames","DisplayNames","type","of","error","formatDayNumber","formattedDate","match","replace","DatePickerControlled","forwardRef","props","ref","nextButtonProps","onChange","onNextMonthChange","onPrevMonthChange","previousButtonProps","selectedMonth","todayOrSelectedDateRef","onMonthChange","style","useMemo","localeObj","selectedYear","formattedYear","year","slice","currentYear","setCurrentYear","useState","String","updateMonthOffset","useCallback","newYearValue","yearNumber","previousYearNumber","onYearChange","_","event","inputType","nativeEvent","updateYear","updateYearOnEnterPressed","onEnterPressed","monthYear","prevSelectedMonth","monthHasChanged","labelAriaLive","setLabelAriaLive","yearLabel","createElement","className","Toolbar","after","IconButton","_extends","emphasis","Emphasis","low","icon","mdiChevronRight","onClick","before","mdiChevronLeft","Fragment","VISUALLY_HIDDEN","dir","FlexBox","orientation","hAlign","gap","vAlign","RegExp","exec","filter","part","map","TextField","max","min","onBlur","onKeyPress","key","Text","as","toLocaleUpperCase","flatMap","weekIndex","weekDay","dayIndex","isToday","isSelected","Button","classNames","disabled","displayName","DatePicker","defaultMonth","forwardedProps","console","warn","setSelectedMonth","setPrevMonth","setNextMonth","onDatePickerChange","DatePickerField","disabledStateProps","otherProps","useDisableStateProps","name","anchorRef","isOpen","close","toggleOpen","useBooleanState","handleKeyboardNav","evt","onTextFieldChange","textFieldValue","textFieldName","forceFocusStyle","textFieldRef","readOnly","PopoverDialog","placement","Placement","BOTTOM_START","onClose","focusElement","DEFAULT_PROPS","children","ariaLabel","Popover","role","closeOnClickAway","closeOnEscape","withFocusTrap","HeadingLevelProvider","level","defaultProps"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import React__default from 'react';
2
2
  import { createPortal } from 'react-dom';
3
- import { jsx, Fragment } from 'react/jsx-runtime';
4
3
 
5
4
  /**
6
5
  * Portal initializing function.
@@ -34,12 +33,10 @@ const Portal = ({
34
33
  return context?.teardown;
35
34
  }, [context?.teardown, enabled]);
36
35
  if (!context?.container) {
37
- return /*#__PURE__*/jsx(Fragment, {
38
- children: children
39
- });
36
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, children);
40
37
  }
41
38
  return /*#__PURE__*/createPortal(children, context.container);
42
39
  };
43
40
 
44
41
  export { Portal as P, PortalProvider as a };
45
- //# sourceMappingURL=3f86608e.js.map
42
+ //# sourceMappingURL=Portal-c43d098b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Portal-c43d098b.js","sources":["../../src/utils/Portal/PortalProvider.tsx","../../src/utils/Portal/Portal.tsx"],"sourcesContent":["import React from 'react';\n\ntype Container = DocumentFragment | Element;\n\n/**\n * Portal initializing function.\n * If it does not provide a container, the Portal children will render in classic React tree and not in a portal.\n */\nexport type PortalInit = () => {\n container?: Container;\n teardown?: () => void;\n};\n\nexport const PortalContext = React.createContext<PortalInit>(() => ({ container: document.body }));\n\nexport interface PortalProviderProps {\n children?: React.ReactNode;\n value: PortalInit;\n}\n\n/**\n * Customize where <Portal> wrapped elements render (tooltip, popover, dialog, etc.)\n */\nexport const PortalProvider: React.FC<PortalProviderProps> = PortalContext.Provider;\n","import React from 'react';\nimport { createPortal } from 'react-dom';\nimport { PortalContext } from './PortalProvider';\n\nexport interface PortalProps {\n enabled?: boolean;\n children: React.ReactNode;\n}\n\n/**\n * Render children in a portal outside the current DOM position\n * (defaults to `document.body` but can be customized with the PortalContextProvider)\n */\nexport const Portal: React.FC<PortalProps> = ({ children, enabled = true }) => {\n const init = React.useContext(PortalContext);\n const context = React.useMemo(\n () => {\n return enabled ? init() : null;\n },\n // Only update on 'enabled'\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [enabled],\n );\n\n React.useLayoutEffect(() => {\n return context?.teardown;\n }, [context?.teardown, enabled]);\n\n if (!context?.container) {\n return <>{children}</>;\n }\n return createPortal(children, context.container);\n};\n"],"names":["PortalContext","React","createContext","container","document","body","PortalProvider","Provider","Portal","children","enabled","init","useContext","context","useMemo","useLayoutEffect","teardown","createElement","Fragment","createPortal"],"mappings":";;;AAIA;AACA;AACA;AACA;;AAMO,MAAMA,aAAa,gBAAGC,cAAK,CAACC,aAAa,CAAa,OAAO;EAAEC,SAAS,EAAEC,QAAQ,CAACC,IAAAA;AAAK,CAAC,CAAC,CAAC,CAAA;AAOlG;AACA;AACA;AACaC,MAAAA,cAA6C,GAAGN,aAAa,CAACO;;ACd3E;AACA;AACA;AACA;AACO,MAAMC,MAA6B,GAAGA,CAAC;EAAEC,QAAQ;AAAEC,EAAAA,OAAO,GAAG,IAAA;AAAK,CAAC,KAAK;AAC3E,EAAA,MAAMC,IAAI,GAAGV,cAAK,CAACW,UAAU,CAACZ,aAAa,CAAC,CAAA;AAC5C,EAAA,MAAMa,OAAO,GAAGZ,cAAK,CAACa,OAAO,CACzB,MAAM;AACF,IAAA,OAAOJ,OAAO,GAAGC,IAAI,EAAE,GAAG,IAAI,CAAA;GACjC;AACD;AACA;EACA,CAACD,OAAO,CACZ,CAAC,CAAA;EAEDT,cAAK,CAACc,eAAe,CAAC,MAAM;IACxB,OAAOF,OAAO,EAAEG,QAAQ,CAAA;GAC3B,EAAE,CAACH,OAAO,EAAEG,QAAQ,EAAEN,OAAO,CAAC,CAAC,CAAA;AAEhC,EAAA,IAAI,CAACG,OAAO,EAAEV,SAAS,EAAE;IACrB,oBAAOF,cAAA,CAAAgB,aAAA,CAAAhB,cAAA,CAAAiB,QAAA,EAAGT,IAAAA,EAAAA,QAAW,CAAC,CAAA;AAC1B,GAAA;AACA,EAAA,oBAAOU,YAAY,CAACV,QAAQ,EAAEI,OAAO,CAACV,SAAS,CAAC,CAAA;AACpD;;;;"}
@@ -1,5 +1,5 @@
1
+ import { _ as _extends } from './forwardRef-49d2bb84.js';
1
2
  import React__default from 'react';
2
- import { jsx } from 'react/jsx-runtime';
3
3
 
4
4
  /** Same as `React.forwardRef` but inferring Ref type from the `as` prop. */
5
5
  const forwardRefPolymorphic = React__default.forwardRef;
@@ -31,11 +31,10 @@ const RawClickable = forwardRefPolymorphic((props, ref) => {
31
31
  tabIndex: isDisabled ? '-1' : forwardedProps.tabIndex
32
32
  };
33
33
  }
34
- return /*#__PURE__*/jsx(Component, {
34
+ return /*#__PURE__*/React.createElement(Component, _extends({
35
35
  ref: ref,
36
- "aria-disabled": isAnyDisabled || undefined,
37
- ...forwardedProps,
38
- ...clickableProps,
36
+ "aria-disabled": isAnyDisabled || undefined
37
+ }, forwardedProps, clickableProps, {
39
38
  onClick: event => {
40
39
  if (isAnyDisabled) {
41
40
  event.stopPropagation();
@@ -43,10 +42,9 @@ const RawClickable = forwardRefPolymorphic((props, ref) => {
43
42
  return;
44
43
  }
45
44
  onClick?.(event);
46
- },
47
- children: children
48
- });
45
+ }
46
+ }), children);
49
47
  });
50
48
 
51
49
  export { RawClickable as R, forwardRefPolymorphic as f };
52
- //# sourceMappingURL=2c2b6a89.js.map
50
+ //# sourceMappingURL=RawClickable-c76bbc4c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RawClickable-c76bbc4c.js","sources":["../../src/utils/react/forwardRefPolymorphic.ts","../../src/utils/react/RawClickable.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 & React.ComponentProps<E> & { ref?: ComponentRef<E> }) => React.JSX.Element;\n\n/** Same as `React.forwardRef` but inferring Ref type from the `as` prop. */\nexport const forwardRefPolymorphic = React.forwardRef as ForwardRefPolymorphic;\n","import { AriaAttributes, ElementType } from 'react';\nimport { forwardRefPolymorphic } from '@lumx/react/utils/react/forwardRefPolymorphic';\nimport { ComponentRef, HasPolymorphicAs } from '@lumx/react/utils/type';\nimport { HasRequiredLinkHref } from '@lumx/react/utils/type/HasRequiredLinkHref';\n\ntype ClickableElement = 'a' | 'button' | ElementType;\n\ntype BaseClickableProps<E extends ClickableElement> = {\n children?: React.ReactNode;\n isDisabled?: boolean;\n disabled?: boolean;\n 'aria-disabled'?: AriaAttributes['aria-disabled'];\n onClick?: React.MouseEventHandler<E>;\n};\n\nexport type RawClickableProps<E extends ClickableElement> = HasPolymorphicAs<E> &\n HasRequiredLinkHref<E> &\n BaseClickableProps<E>;\n\n/**\n * Render clickable element (link, button or custom element)\n * (also does some basic disabled state handling)\n */\nexport const RawClickable = forwardRefPolymorphic(\n <E extends ClickableElement>(props: RawClickableProps<E>, ref: ComponentRef<E>) => {\n const {\n children,\n onClick,\n disabled,\n isDisabled = disabled,\n 'aria-disabled': ariaDisabled,\n as,\n ...forwardedProps\n } = props;\n\n const isAnyDisabled = isDisabled || ariaDisabled === 'true' || ariaDisabled === true;\n\n const Component = as as any;\n let clickableProps;\n if (Component === 'button') {\n clickableProps = { type: forwardedProps.type || 'button', disabled: isDisabled };\n } else {\n clickableProps = { tabIndex: isDisabled ? '-1' : forwardedProps.tabIndex };\n }\n\n return (\n <Component\n ref={ref}\n aria-disabled={isAnyDisabled || undefined}\n {...forwardedProps}\n {...clickableProps}\n onClick={(event: any) => {\n if (isAnyDisabled) {\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n onClick?.(event);\n }}\n >\n {children}\n </Component>\n );\n },\n);\n"],"names":["forwardRefPolymorphic","React","forwardRef","RawClickable","props","ref","children","onClick","disabled","isDisabled","ariaDisabled","as","forwardedProps","isAnyDisabled","Component","clickableProps","type","tabIndex","createElement","_extends","undefined","event","stopPropagation","preventDefault"],"mappings":";;;AAOA;AACaA,MAAAA,qBAAqB,GAAGC,cAAK,CAACC;;ACW3C;AACA;AACA;AACA;AACO,MAAMC,YAAY,GAAGH,qBAAqB,CAC7C,CAA6BI,KAA2B,EAAEC,GAAoB,KAAK;EAC/E,MAAM;IACFC,QAAQ;IACRC,OAAO;IACPC,QAAQ;AACRC,IAAAA,UAAU,GAAGD,QAAQ;AACrB,IAAA,eAAe,EAAEE,YAAY;IAC7BC,EAAE;IACF,GAAGC,cAAAA;AACP,GAAC,GAAGR,KAAK,CAAA;EAET,MAAMS,aAAa,GAAGJ,UAAU,IAAIC,YAAY,KAAK,MAAM,IAAIA,YAAY,KAAK,IAAI,CAAA;EAEpF,MAAMI,SAAS,GAAGH,EAAS,CAAA;AAC3B,EAAA,IAAII,cAAc,CAAA;EAClB,IAAID,SAAS,KAAK,QAAQ,EAAE;AACxBC,IAAAA,cAAc,GAAG;AAAEC,MAAAA,IAAI,EAAEJ,cAAc,CAACI,IAAI,IAAI,QAAQ;AAAER,MAAAA,QAAQ,EAAEC,UAAAA;KAAY,CAAA;AACpF,GAAC,MAAM;AACHM,IAAAA,cAAc,GAAG;AAAEE,MAAAA,QAAQ,EAAER,UAAU,GAAG,IAAI,GAAGG,cAAc,CAACK,QAAAA;KAAU,CAAA;AAC9E,GAAA;AAEA,EAAA,oBACIhB,KAAA,CAAAiB,aAAA,CAACJ,SAAS,EAAAK,QAAA,CAAA;AACNd,IAAAA,GAAG,EAAEA,GAAI;AACT,IAAA,eAAA,EAAeQ,aAAa,IAAIO,SAAAA;GAC5BR,EAAAA,cAAc,EACdG,cAAc,EAAA;IAClBR,OAAO,EAAGc,KAAU,IAAK;AACrB,MAAA,IAAIR,aAAa,EAAE;QACfQ,KAAK,CAACC,eAAe,EAAE,CAAA;QACvBD,KAAK,CAACE,cAAc,EAAE,CAAA;AACtB,QAAA,OAAA;AACJ,OAAA;MACAhB,OAAO,GAAGc,KAAK,CAAC,CAAA;AACpB,KAAA;AAAE,GAAA,CAAA,EAEDf,QACM,CAAC,CAAA;AAEpB,CACJ;;;;"}