@onesy/ui-react 1.0.130 → 1.0.131

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 (444) hide show
  1. package/Accordion/Accordion.js +342 -242
  2. package/Accordion/index.js +12 -7
  3. package/AdvancedTextField/AdvancedTextField.js +165 -157
  4. package/AdvancedTextField/index.js +12 -7
  5. package/Append/Append.js +502 -519
  6. package/Append/index.js +12 -7
  7. package/AreaChart/AreaChart.js +53 -40
  8. package/AreaChart/index.js +12 -7
  9. package/AreaChartItem/AreaChartItem.js +325 -237
  10. package/AreaChartItem/index.js +12 -7
  11. package/AudioPlayer/AudioPlayer.js +683 -466
  12. package/AudioPlayer/index.js +12 -7
  13. package/AudioRecorder/AudioRecorder.js +359 -259
  14. package/AudioRecorder/index.js +12 -7
  15. package/AutoComplete/AutoComplete.js +693 -568
  16. package/AutoComplete/index.js +12 -7
  17. package/AutoCompleteCountry/AutoCompleteCountry.js +99 -62
  18. package/AutoCompleteCountry/index.js +12 -7
  19. package/AutoCompleteCurrency/AutoCompleteCurrency.js +73 -61
  20. package/AutoCompleteCurrency/index.js +12 -7
  21. package/Avatar/Avatar.js +113 -86
  22. package/Avatar/index.js +12 -7
  23. package/AvatarGroup/AvatarGroup.js +104 -87
  24. package/AvatarGroup/index.js +12 -7
  25. package/Backdrop/Backdrop.js +160 -139
  26. package/Backdrop/index.js +12 -7
  27. package/Badge/Badge.js +116 -96
  28. package/Badge/index.js +12 -7
  29. package/Banner/Banner.js +126 -85
  30. package/Banner/index.js +12 -7
  31. package/BottomAppBar/BottomAppBar.js +89 -60
  32. package/BottomAppBar/index.js +12 -7
  33. package/BottomSheet/BottomSheet.js +66 -59
  34. package/BottomSheet/index.js +12 -7
  35. package/Box/Box.js +43 -35
  36. package/Box/index.js +12 -7
  37. package/Breadcrumbs/Breadcrumbs.js +168 -144
  38. package/Breadcrumbs/index.js +12 -7
  39. package/BubbleChart/BubbleChart.js +261 -132
  40. package/BubbleChart/index.js +12 -7
  41. package/BubbleChartItem/BubbleChartItem.js +228 -161
  42. package/BubbleChartItem/index.js +12 -7
  43. package/Button/Button.js +488 -467
  44. package/Button/index.js +12 -7
  45. package/Buttons/Buttons.js +366 -293
  46. package/Buttons/index.js +12 -7
  47. package/Calendar/Calendar.js +715 -452
  48. package/Calendar/index.js +12 -7
  49. package/CalendarAvailability/CalendarAvailability.js +709 -388
  50. package/CalendarAvailability/index.js +12 -7
  51. package/CalendarMenu/CalendarMenu.js +430 -303
  52. package/CalendarMenu/index.js +12 -7
  53. package/CalendarMonth/CalendarMonth.js +537 -498
  54. package/CalendarMonth/index.js +12 -7
  55. package/CalendarViews/CalendarViews.js +403 -254
  56. package/CalendarViews/index.js +12 -7
  57. package/CalendarWeek/CalendarWeek.js +536 -395
  58. package/CalendarWeek/index.js +12 -7
  59. package/Card/Card.js +133 -101
  60. package/Card/index.js +12 -7
  61. package/CardButton/CardButton.js +78 -58
  62. package/CardButton/index.js +12 -7
  63. package/CardFooter/CardFooter.js +58 -39
  64. package/CardFooter/index.js +12 -7
  65. package/CardHeader/CardHeader.js +61 -44
  66. package/CardHeader/index.js +12 -7
  67. package/CardImage/CardImage.js +80 -67
  68. package/CardImage/index.js +12 -7
  69. package/CardMain/CardMain.js +53 -39
  70. package/CardMain/index.js +12 -7
  71. package/Carousel/Carousel.js +1025 -913
  72. package/Carousel/index.js +12 -7
  73. package/Chart/Chart.js +1325 -1174
  74. package/Chart/index.js +12 -7
  75. package/Checkbox/Checkbox.js +339 -325
  76. package/Checkbox/index.js +12 -7
  77. package/Chip/Chip.js +131 -102
  78. package/Chip/index.js +12 -7
  79. package/Chips/Chips.js +121 -94
  80. package/Chips/index.js +12 -7
  81. package/ClickListener/ClickListener.js +86 -89
  82. package/ClickListener/index.js +12 -7
  83. package/Clock/Clock.js +470 -417
  84. package/Clock/index.js +12 -7
  85. package/ColorTextField/ColorTextField.js +234 -171
  86. package/ColorTextField/index.js +12 -7
  87. package/ColumnChart/ColumnChart.js +63 -46
  88. package/ColumnChart/index.js +12 -7
  89. package/ColumnChartItem/ColumnChartItem.js +208 -149
  90. package/ColumnChartItem/index.js +12 -7
  91. package/Confirm/Confirm.js +184 -129
  92. package/Confirm/Context.js +9 -7
  93. package/Confirm/index.js +32 -13
  94. package/Confirm/useConfirm.js +11 -10
  95. package/Container/Container.js +154 -133
  96. package/Container/index.js +12 -7
  97. package/CookieBanner/CookieBanner.js +142 -76
  98. package/CookieBanner/index.js +12 -7
  99. package/Countdown/Countdown.js +403 -255
  100. package/Countdown/index.js +12 -7
  101. package/DatePicker/DatePicker.js +802 -547
  102. package/DatePicker/index.js +12 -7
  103. package/DateRangePicker/DateRangePicker.js +44 -37
  104. package/DateRangePicker/index.js +12 -7
  105. package/DateTimePicker/DateTimePicker.js +672 -459
  106. package/DateTimePicker/index.js +12 -7
  107. package/DateTimeRangePicker/DateTimeRangePicker.js +44 -37
  108. package/DateTimeRangePicker/index.js +12 -7
  109. package/Divider/Divider.js +198 -185
  110. package/Divider/index.js +12 -7
  111. package/DonutChart/DonutChart.js +49 -42
  112. package/DonutChart/index.js +12 -7
  113. package/DragAndDropList/DragAndDropList.js +160 -156
  114. package/DragAndDropList/index.js +12 -7
  115. package/Drawing/Drawing.js +850 -523
  116. package/Drawing/index.js +12 -7
  117. package/DropZone/DropZone.js +239 -201
  118. package/DropZone/index.js +12 -7
  119. package/Emojis/Emojis.js +409 -317
  120. package/Emojis/emojis_list.js +7279 -9250
  121. package/Emojis/index.js +19 -9
  122. package/Expand/Expand.js +201 -149
  123. package/Expand/index.js +12 -7
  124. package/Fab/Fab.js +46 -26
  125. package/Fab/index.js +12 -7
  126. package/Fade/Fade.js +131 -101
  127. package/Fade/index.js +12 -7
  128. package/FileChoose/FileChoose.js +218 -150
  129. package/FileChoose/index.js +12 -7
  130. package/Focus/Focus.js +87 -88
  131. package/Focus/index.js +12 -7
  132. package/Form/Form.js +194 -120
  133. package/Form/index.js +12 -7
  134. package/FormRow/FormRow.js +123 -78
  135. package/FormRow/index.js +12 -7
  136. package/Forms/Forms.js +55 -41
  137. package/Forms/index.js +12 -7
  138. package/Frame/Frame.js +212 -150
  139. package/Frame/index.js +12 -7
  140. package/Grid/Grid.js +231 -166
  141. package/Grid/index.js +12 -7
  142. package/Grow/Grow.js +137 -109
  143. package/Grow/index.js +12 -7
  144. package/HTMLCanvas/HTMLCanvas.js +752 -542
  145. package/HTMLCanvas/index.js +24 -21
  146. package/IFrame/IFrame.js +122 -104
  147. package/IFrame/index.js +12 -7
  148. package/Icon/Icon.js +112 -95
  149. package/Icon/index.js +24 -21
  150. package/IconButton/IconButton.js +49 -37
  151. package/IconButton/index.js +12 -7
  152. package/Image/Image.js +285 -252
  153. package/Image/index.js +12 -7
  154. package/ImageCrop/ImageCrop.js +1073 -1048
  155. package/ImageCrop/index.js +12 -7
  156. package/ImageEdit/ImageEdit.js +1088 -783
  157. package/ImageEdit/index.js +12 -7
  158. package/ImageGallery/ImageGallery.js +518 -473
  159. package/ImageGallery/index.js +12 -7
  160. package/ImageList/ImageList.js +136 -129
  161. package/ImageList/index.js +12 -7
  162. package/ImageListItem/ImageListItem.js +101 -87
  163. package/ImageListItem/index.js +12 -7
  164. package/ImageListItemBox/ImageListItemBox.js +61 -50
  165. package/ImageListItemBox/index.js +12 -7
  166. package/Info/Info.js +99 -63
  167. package/Info/index.js +12 -7
  168. package/Interaction/Interaction.js +405 -345
  169. package/Interaction/index.js +12 -7
  170. package/Keyframes/Context.js +9 -7
  171. package/Keyframes/Keyframes.js +189 -174
  172. package/Keyframes/index.js +42 -25
  173. package/Keyframes/useKeyframes.js +11 -10
  174. package/Label/Label.js +177 -151
  175. package/Label/index.js +12 -7
  176. package/Labels/Labels.js +126 -98
  177. package/Labels/index.js +12 -7
  178. package/Line/Line.js +296 -174
  179. package/Line/index.js +12 -7
  180. package/LineChart/LineChart.js +57 -40
  181. package/LineChart/index.js +12 -7
  182. package/LineChartItem/LineChartItem.js +239 -177
  183. package/LineChartItem/index.js +12 -7
  184. package/LinearMeter/LinearMeter.js +453 -377
  185. package/LinearMeter/index.js +12 -7
  186. package/LinearProgress/LinearProgress.js +324 -255
  187. package/LinearProgress/index.js +12 -7
  188. package/Link/Link.js +182 -127
  189. package/Link/index.js +12 -7
  190. package/Links/Links.js +277 -156
  191. package/Links/index.js +12 -7
  192. package/List/List.js +148 -113
  193. package/List/index.js +12 -7
  194. package/ListItem/ListItem.js +388 -362
  195. package/ListItem/index.js +12 -7
  196. package/ListSubheader/ListSubheader.js +52 -44
  197. package/ListSubheader/index.js +12 -7
  198. package/MainProgress/Context.js +9 -7
  199. package/MainProgress/MainProgress.js +193 -161
  200. package/MainProgress/index.js +32 -13
  201. package/MainProgress/useMainProgress.js +11 -10
  202. package/Markdown/Markdown.js +676 -704
  203. package/Markdown/index.js +12 -7
  204. package/Masonry/Masonry.js +207 -181
  205. package/Masonry/index.js +12 -7
  206. package/Medias/Medias.js +436 -398
  207. package/Medias/index.js +12 -7
  208. package/Menu/Menu.js +278 -243
  209. package/Menu/index.js +12 -7
  210. package/MenuDesktop/MenuDesktop.js +496 -419
  211. package/MenuDesktop/index.js +12 -7
  212. package/MenuItem/MenuItem.js +286 -231
  213. package/MenuItem/index.js +12 -7
  214. package/Meta/Meta.js +78 -54
  215. package/Meta/index.js +12 -7
  216. package/Modal/Modal.js +333 -272
  217. package/Modal/index.js +12 -7
  218. package/ModalFooter/ModalFooter.js +50 -39
  219. package/ModalFooter/index.js +12 -7
  220. package/ModalHeader/ModalHeader.js +51 -39
  221. package/ModalHeader/index.js +12 -7
  222. package/ModalIcon/ModalIcon.js +29 -23
  223. package/ModalIcon/index.js +12 -7
  224. package/ModalMain/ModalMain.js +50 -41
  225. package/ModalMain/index.js +12 -7
  226. package/ModalText/ModalText.js +47 -37
  227. package/ModalText/index.js +12 -7
  228. package/ModalTitle/ModalTitle.js +47 -37
  229. package/ModalTitle/index.js +12 -7
  230. package/MoreOptions/MoreOptions.js +72 -52
  231. package/MoreOptions/index.js +12 -7
  232. package/Move/Move.js +166 -141
  233. package/Move/index.js +12 -7
  234. package/NavigationBar/NavigationBar.js +133 -109
  235. package/NavigationBar/index.js +12 -7
  236. package/NavigationDrawer/NavigationDrawer.js +241 -211
  237. package/NavigationDrawer/index.js +12 -7
  238. package/NavigationItem/NavigationItem.js +293 -262
  239. package/NavigationItem/index.js +12 -7
  240. package/NavigationRail/NavigationRail.js +187 -150
  241. package/NavigationRail/index.js +12 -7
  242. package/NotFound/NotFound.js +89 -66
  243. package/NotFound/index.js +12 -7
  244. package/NumericTextField/NumericTextField.js +217 -212
  245. package/NumericTextField/index.js +12 -7
  246. package/Page/Page.js +131 -67
  247. package/Page/index.js +12 -7
  248. package/PageTransition/PageTransition.js +112 -102
  249. package/PageTransition/index.js +12 -7
  250. package/Pagination/Pagination.js +153 -98
  251. package/Pagination/index.js +12 -7
  252. package/PaginationItem/PaginationItem.js +85 -65
  253. package/PaginationItem/index.js +12 -7
  254. package/Parallax/Parallax.js +138 -145
  255. package/Parallax/index.js +12 -7
  256. package/Path/Path.js +40 -35
  257. package/Path/index.js +12 -7
  258. package/PieChart/PieChart.js +382 -267
  259. package/PieChart/index.js +12 -7
  260. package/Placeholder/Placeholder.js +125 -117
  261. package/Placeholder/index.js +12 -7
  262. package/Portal/Portal.js +37 -38
  263. package/Portal/index.js +12 -7
  264. package/Properties/Properties.js +85 -64
  265. package/Properties/index.js +12 -7
  266. package/Property/Property.js +120 -108
  267. package/Property/index.js +12 -7
  268. package/Radio/Radio.js +211 -181
  269. package/Radio/index.js +12 -7
  270. package/Radios/Radios.js +124 -92
  271. package/Radios/index.js +12 -7
  272. package/Rating/Rating.js +353 -360
  273. package/Rating/index.js +12 -7
  274. package/Reset/Reset.js +19 -24
  275. package/Reset/index.js +12 -7
  276. package/Reveal/Reveal.js +98 -89
  277. package/Reveal/index.js +12 -7
  278. package/RichTextEditor/RichTextEditor.js +1764 -972
  279. package/RichTextEditor/index.js +12 -7
  280. package/RoundMeter/RoundMeter.js +629 -537
  281. package/RoundMeter/index.js +12 -7
  282. package/RoundProgress/RoundProgress.js +233 -174
  283. package/RoundProgress/index.js +12 -7
  284. package/ScatterChart/ScatterChart.js +53 -40
  285. package/ScatterChart/index.js +12 -7
  286. package/ScatterChartItem/ScatterChartItem.js +214 -153
  287. package/ScatterChartItem/index.js +12 -7
  288. package/ScreenCapture/ScreenCapture.js +427 -335
  289. package/ScreenCapture/index.js +12 -7
  290. package/Section/Section.js +380 -319
  291. package/Section/index.js +12 -7
  292. package/SectionAction/SectionAction.js +72 -61
  293. package/SectionAction/index.js +12 -7
  294. package/SectionBoxes/SectionBoxes.js +240 -208
  295. package/SectionBoxes/index.js +12 -7
  296. package/SectionCards/SectionCards.js +256 -217
  297. package/SectionCards/index.js +12 -7
  298. package/SectionCarousel/SectionCarousel.js +284 -242
  299. package/SectionCarousel/index.js +12 -7
  300. package/SectionContact/SectionContact.js +174 -116
  301. package/SectionContact/index.js +12 -7
  302. package/SectionImageGallery/SectionImageGallery.js +64 -51
  303. package/SectionImageGallery/index.js +12 -7
  304. package/SectionLogos/SectionLogos.js +123 -109
  305. package/SectionLogos/index.js +12 -7
  306. package/SectionMedia/SectionMedia.js +170 -152
  307. package/SectionMedia/index.js +12 -7
  308. package/SectionReviews/SectionReviews.js +170 -129
  309. package/SectionReviews/index.js +12 -7
  310. package/SectionTextMedia/SectionTextMedia.js +187 -142
  311. package/SectionTextMedia/index.js +12 -7
  312. package/SectionTimeline/SectionTimeline.js +126 -95
  313. package/SectionTimeline/index.js +12 -7
  314. package/SectionWatch/SectionWatch.js +65 -53
  315. package/SectionWatch/index.js +12 -7
  316. package/Select/Select.js +517 -406
  317. package/Select/index.js +12 -7
  318. package/Share/Share.js +458 -319
  319. package/Share/index.js +12 -7
  320. package/Slide/Slide.js +184 -140
  321. package/Slide/index.js +12 -7
  322. package/Slider/Slider.js +927 -837
  323. package/Slider/index.js +12 -7
  324. package/SmartTextField/SmartTextField.js +1406 -1014
  325. package/SmartTextField/index.js +12 -7
  326. package/Snackbar/Snackbar.js +227 -185
  327. package/Snackbar/index.js +12 -7
  328. package/Snackbars/Context.js +9 -7
  329. package/Snackbars/Snackbars.js +234 -210
  330. package/Snackbars/index.js +32 -13
  331. package/Snackbars/useSnackbars.js +11 -10
  332. package/Space/Space.js +1683 -968
  333. package/Space/index.js +24 -21
  334. package/SpeechToText/SpeechToText.js +207 -172
  335. package/SpeechToText/index.js +12 -7
  336. package/SpeedDial/SpeedDial.js +434 -398
  337. package/SpeedDial/index.js +12 -7
  338. package/SpeedDialItem/SpeedDialItem.js +89 -63
  339. package/SpeedDialItem/index.js +12 -7
  340. package/SpyScroll/SpyScroll.js +154 -142
  341. package/SpyScroll/index.js +12 -7
  342. package/Step/Step.js +181 -127
  343. package/Step/index.js +12 -7
  344. package/Stepper/Stepper.js +159 -139
  345. package/Stepper/index.js +12 -7
  346. package/Surface/Surface.js +760 -798
  347. package/Surface/index.js +12 -7
  348. package/Switch/Switch.js +688 -532
  349. package/Switch/index.js +12 -7
  350. package/Tab/Tab.js +185 -150
  351. package/Tab/index.js +12 -7
  352. package/Table/Table.js +100 -77
  353. package/Table/index.js +12 -7
  354. package/TableBody/TableBody.js +76 -63
  355. package/TableBody/index.js +12 -7
  356. package/TableCell/TableCell.js +258 -220
  357. package/TableCell/index.js +12 -7
  358. package/TableFooter/TableFooter.js +60 -48
  359. package/TableFooter/index.js +12 -7
  360. package/TableHead/TableHead.js +139 -120
  361. package/TableHead/index.js +12 -7
  362. package/TableHeader/TableHeader.js +65 -50
  363. package/TableHeader/index.js +12 -7
  364. package/TablePagination/TablePagination.js +171 -98
  365. package/TablePagination/index.js +12 -7
  366. package/TableRow/TableRow.js +77 -64
  367. package/TableRow/index.js +12 -7
  368. package/Tabs/Tabs.js +425 -377
  369. package/Tabs/index.js +12 -7
  370. package/Text/Text.js +131 -113
  371. package/Text/index.js +12 -7
  372. package/TextField/TextField.js +940 -879
  373. package/TextField/index.js +12 -7
  374. package/TextToSpeech/TextToSpeech.js +176 -153
  375. package/TextToSpeech/index.js +12 -7
  376. package/TimePicker/TimePicker.js +985 -718
  377. package/TimePicker/index.js +12 -7
  378. package/TimeRangePicker/TimeRangePicker.js +44 -37
  379. package/TimeRangePicker/index.js +12 -7
  380. package/Timeline/Timeline.js +54 -42
  381. package/Timeline/index.js +12 -7
  382. package/TimelineItem/TimelineItem.js +144 -147
  383. package/TimelineItem/index.js +12 -7
  384. package/Timer/Timer.js +321 -204
  385. package/Timer/index.js +12 -7
  386. package/ToggleButton/ToggleButton.js +67 -58
  387. package/ToggleButton/index.js +12 -7
  388. package/ToggleButtons/ToggleButtons.js +46 -37
  389. package/ToggleButtons/index.js +12 -7
  390. package/Tooltip/Tooltip.js +489 -454
  391. package/Tooltip/index.js +12 -7
  392. package/TopAppBar/TopAppBar.js +237 -197
  393. package/TopAppBar/index.js +12 -7
  394. package/Transition/Context.js +9 -7
  395. package/Transition/Transition.js +321 -339
  396. package/Transition/index.js +42 -25
  397. package/Transition/useTransition.js +11 -10
  398. package/Transitions/Transitions.js +215 -179
  399. package/Transitions/index.js +12 -7
  400. package/Tree/Tree.js +375 -312
  401. package/Tree/index.js +12 -7
  402. package/Type/Type.js +251 -152
  403. package/Type/index.js +12 -7
  404. package/VideoPlayer/VideoPlayer.js +866 -656
  405. package/VideoPlayer/index.js +12 -7
  406. package/ViewSplit/ViewSplit.js +413 -387
  407. package/ViewSplit/index.js +12 -7
  408. package/Watch/Watch.js +436 -290
  409. package/Watch/index.js +12 -7
  410. package/Weather/Weather.js +294 -247
  411. package/Weather/index.js +12 -7
  412. package/Whiteboard/Whiteboard.js +1392 -1292
  413. package/Whiteboard/index.js +12 -7
  414. package/Widgets/Context.js +9 -7
  415. package/Widgets/Widgets.js +220 -168
  416. package/Widgets/index.js +32 -13
  417. package/Widgets/useWidgets.js +11 -10
  418. package/WindowSplit/WindowSplit.js +381 -336
  419. package/WindowSplit/index.js +12 -7
  420. package/Zoom/Zoom.js +126 -99
  421. package/Zoom/index.js +12 -7
  422. package/esm/Buttons/Buttons.js +1 -1
  423. package/esm/index.js +1 -1
  424. package/index.js +4053 -660
  425. package/package.json +1 -1
  426. package/types.js +4 -1
  427. package/useForm/index.js +25 -11
  428. package/useForm/useForm.js +203 -174
  429. package/useForm/validate.js +215 -203
  430. package/useLocation/index.js +12 -7
  431. package/useLocation/useLocation.js +54 -49
  432. package/useMediaQuery/index.js +12 -7
  433. package/useMediaQuery/useMediaQuery.js +44 -43
  434. package/useQuery/index.js +12 -7
  435. package/useQuery/useQuery.js +14 -10
  436. package/useScroll/index.js +12 -7
  437. package/useScroll/useScroll.js +61 -56
  438. package/useSubscription/index.js +12 -7
  439. package/useSubscription/useSubscription.js +35 -35
  440. package/useSwipe/index.js +12 -7
  441. package/useSwipe/useSwipe.js +157 -131
  442. package/useVisible/index.js +12 -7
  443. package/useVisible/useVisible.js +86 -76
  444. package/utils.js +1224 -1362
package/Append/Append.js CHANGED
@@ -1,532 +1,515 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const jsx_runtime_1 = require("react/jsx-runtime");
7
- const react_1 = __importDefault(require("react"));
8
- const utils_1 = require("@onesy/utils");
9
- const style_react_1 = require("@onesy/style-react");
10
- const Portal_1 = __importDefault(require("../Portal"));
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _utils = require("@onesy/utils");
11
+ var _styleReact = require("@onesy/style-react");
12
+ var _Portal = _interopRequireDefault(require("../Portal"));
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
15
  const valuesDefault = {
12
- x: 0,
13
- y: 0,
14
- switch: false,
15
- init: true
16
+ x: 0,
17
+ y: 0,
18
+ switch: false,
19
+ init: true
16
20
  };
17
- const Append = (props_) => {
18
- var _a, _b;
19
- const theme = (0, style_react_1.useOnesyTheme)();
20
- const props = react_1.default.useMemo(() => { var _a, _b, _c, _d, _e, _f, _g, _h; return (Object.assign(Object.assign(Object.assign({}, (_d = (_c = (_b = (_a = theme === null || theme === void 0 ? void 0 : theme.ui) === null || _a === void 0 ? void 0 : _a.elements) === null || _b === void 0 ? void 0 : _b.all) === null || _c === void 0 ? void 0 : _c.props) === null || _d === void 0 ? void 0 : _d.default), (_h = (_g = (_f = (_e = theme === null || theme === void 0 ? void 0 : theme.ui) === null || _e === void 0 ? void 0 : _e.elements) === null || _f === void 0 ? void 0 : _f.onesyAppend) === null || _g === void 0 ? void 0 : _g.props) === null || _h === void 0 ? void 0 : _h.default), props_)); }, [props_]);
21
- const Portal = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Portal) || Portal_1.default; }, [theme]);
22
- const { open, portal = false, accelerated = true, anchor, anchorElement: anchorElement_, offset = [0, 0], padding = [0, 0], paddingUnfollow = props.padding || [0, 0], inset: inset_, position: position_ = 'bottom', alignment: alignment_ = 'end', switch: switch_ = true, overflow = true, unfollow = false, onScreen = true, style: style_, update, element, parent: parentElement, additional, children } = props;
23
- const [init, setInit] = react_1.default.useState(false);
24
- const [values, setValues] = react_1.default.useState(valuesDefault);
25
- const refs = {
26
- root: react_1.default.useRef(undefined),
27
- element: react_1.default.useRef(undefined),
28
- values: react_1.default.useRef(values),
29
- alignment: react_1.default.useRef(undefined),
30
- position: react_1.default.useRef(undefined),
31
- portal: react_1.default.useRef(undefined),
32
- props: react_1.default.useRef(undefined),
33
- anchor: react_1.default.useRef(undefined),
34
- additional: react_1.default.useRef(undefined)
21
+ const Append = props_ => {
22
+ var _props, _refs$root$current4;
23
+ const theme = (0, _styleReact.useOnesyTheme)();
24
+ const props = _react.default.useMemo(() => {
25
+ var _theme$ui, _theme$ui2;
26
+ return _objectSpread(_objectSpread(_objectSpread({}, theme === null || theme === void 0 || (_theme$ui = theme.ui) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.elements) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.all) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.props) === null || _theme$ui === void 0 ? void 0 : _theme$ui.default), theme === null || theme === void 0 || (_theme$ui2 = theme.ui) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.elements) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.onesyAppend) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.props) === null || _theme$ui2 === void 0 ? void 0 : _theme$ui2.default), props_);
27
+ }, [props_]);
28
+ const Portal = _react.default.useMemo(() => {
29
+ var _theme$elements;
30
+ return (theme === null || theme === void 0 || (_theme$elements = theme.elements) === null || _theme$elements === void 0 ? void 0 : _theme$elements.Portal) || _Portal.default;
31
+ }, [theme]);
32
+ const {
33
+ open,
34
+ portal = false,
35
+ accelerated = true,
36
+ anchor,
37
+ anchorElement: anchorElement_,
38
+ offset = [0, 0],
39
+ padding = [0, 0],
40
+ paddingUnfollow = props.padding || [0, 0],
41
+ inset: inset_,
42
+ position: position_ = 'bottom',
43
+ alignment: alignment_ = 'end',
44
+ switch: switch_ = true,
45
+ overflow = true,
46
+ unfollow = false,
47
+ onScreen = true,
48
+ style: style_,
49
+ update,
50
+ element,
51
+ parent: parentElement,
52
+ additional,
53
+ children
54
+ } = props;
55
+ const [init, setInit] = _react.default.useState(false);
56
+ const [values, setValues] = _react.default.useState(valuesDefault);
57
+ const refs = {
58
+ root: _react.default.useRef(undefined),
59
+ element: _react.default.useRef(undefined),
60
+ values: _react.default.useRef(values),
61
+ alignment: _react.default.useRef(undefined),
62
+ position: _react.default.useRef(undefined),
63
+ portal: _react.default.useRef(undefined),
64
+ props: _react.default.useRef(undefined),
65
+ anchor: _react.default.useRef(undefined),
66
+ additional: _react.default.useRef(undefined)
67
+ };
68
+ refs.alignment.current = alignment_;
69
+ if (theme.direction === 'rtl' && ['top', 'bottom'].includes(position_)) {
70
+ if (alignment_ === 'start') refs.alignment.current = 'end';else if (alignment_ === 'end') refs.alignment.current = 'start';
71
+ }
72
+ refs.position.current = position_;
73
+ refs.portal.current = portal;
74
+ refs.anchor.current = anchor;
75
+ refs.additional.current = additional;
76
+ const anchorElement = anchorElement_ !== null && anchorElement_ !== void 0 && anchorElement_.current ? anchorElement_ === null || anchorElement_ === void 0 ? void 0 : anchorElement_.current : anchorElement_;
77
+ if (anchorElement) refs.root.current = anchorElement;
78
+ refs.props.current = props;
79
+ const onScroll = _react.default.useCallback(event => {
80
+ // Only if it's parent's scroll event
81
+ // if (event.target.contains(refs.root.current) && anchor === undefined) make();
82
+
83
+ make();
84
+ }, [anchor]);
85
+ const observerMethod = _react.default.useCallback(mutations => {
86
+ for (const mutation of mutations) {
87
+ if (mutation.target === refs.root.current ?
88
+ // Root attributes or childList
89
+ ['attributes', 'childList'].includes(mutation.type) && [null, undefined, 'style'].includes(mutation.attributeName) :
90
+ // or subtree's childList
91
+ ['attributes', 'childList'].includes(mutation.type) && [null, undefined, 'style'].includes(mutation.attributeName)) {
92
+ if (refs.anchor.current === undefined) make();
93
+ }
94
+ }
95
+ }, []);
96
+ const observerResizeMethod = _react.default.useCallback(() => {
97
+ if (refs.anchor.current === undefined) make();
98
+ }, []);
99
+ _react.default.useEffect(() => {
100
+ var _refs$root$current;
101
+ const rootWindow = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current = refs.root.current) === null || _refs$root$current === void 0 || (_refs$root$current = _refs$root$current.ownerDocument) === null || _refs$root$current === void 0 ? void 0 : _refs$root$current.defaultView) || window : undefined;
102
+ make();
103
+
104
+ // Scroll
105
+ rootWindow.addEventListener('scroll', onScroll, true);
106
+
107
+ // Init
108
+ setInit(true);
109
+ return () => {
110
+ rootWindow.removeEventListener('scroll', onScroll);
35
111
  };
36
- refs.alignment.current = alignment_;
37
- if (theme.direction === 'rtl' && ['top', 'bottom'].includes(position_)) {
38
- if (alignment_ === 'start')
39
- refs.alignment.current = 'end';
40
- else if (alignment_ === 'end')
41
- refs.alignment.current = 'start';
112
+ }, []);
113
+
114
+ // Anchor
115
+ _react.default.useEffect(() => {
116
+ if (init) {
117
+ if (open) make();else {
118
+ if (refs.props.current.clearOnClose) setValues(valuesDefault);
119
+ }
42
120
  }
43
- refs.position.current = position_;
44
- refs.portal.current = portal;
45
- refs.anchor.current = anchor;
46
- refs.additional.current = additional;
47
- const anchorElement = (anchorElement_ === null || anchorElement_ === void 0 ? void 0 : anchorElement_.current) ? anchorElement_ === null || anchorElement_ === void 0 ? void 0 : anchorElement_.current : anchorElement_;
48
- if (anchorElement)
49
- refs.root.current = anchorElement;
50
- refs.props.current = props;
51
- const onScroll = react_1.default.useCallback((event) => {
52
- // Only if it's parent's scroll event
53
- // if (event.target.contains(refs.root.current) && anchor === undefined) make();
54
- make();
55
- }, [anchor]);
56
- const observerMethod = react_1.default.useCallback((mutations) => {
57
- for (const mutation of mutations) {
58
- if (mutation.target === refs.root.current ?
59
- // Root attributes or childList
60
- ['attributes', 'childList'].includes(mutation.type) && [null, undefined, 'style'].includes(mutation.attributeName) :
61
- // or subtree's childList
62
- ['attributes', 'childList'].includes(mutation.type) && [null, undefined, 'style'].includes(mutation.attributeName)) {
63
- if (refs.anchor.current === undefined)
64
- make();
65
- }
66
- }
67
- }, []);
68
- const observerResizeMethod = react_1.default.useCallback(() => {
69
- if (refs.anchor.current === undefined)
70
- make();
71
- }, []);
72
- react_1.default.useEffect(() => {
73
- var _a, _b;
74
- const rootWindow = (0, utils_1.isEnvironment)('browser') ? (((_b = (_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) || window) : undefined;
75
- make();
76
- // Scroll
77
- rootWindow.addEventListener('scroll', onScroll, true);
78
- // Init
79
- setInit(true);
80
- return () => {
81
- rootWindow.removeEventListener('scroll', onScroll);
82
- };
83
- }, []);
84
- // Anchor
85
- react_1.default.useEffect(() => {
86
- if (init) {
87
- if (open)
88
- make();
89
- else {
90
- if (refs.props.current.clearOnClose)
91
- setValues(valuesDefault);
92
- }
93
- }
94
- }, [open]);
95
- // Anchor
96
- react_1.default.useEffect(() => {
97
- if (init) {
98
- if ((anchor === null || anchor === void 0 ? void 0 : anchor.x) && (anchor === null || anchor === void 0 ? void 0 : anchor.y))
99
- make();
100
- }
101
- }, [anchor]);
102
- // Anchor
103
- react_1.default.useEffect(() => {
104
- make();
105
- }, [anchorElement]);
106
- // Anchor element
107
- react_1.default.useEffect(() => {
108
- // Resize
109
- const observer = new MutationObserver(observerMethod);
110
- try {
111
- if (refs.root.current) {
112
- observer.observe(refs.root.current, { attributes: true, childList: true, subtree: true });
113
- }
114
- }
115
- catch (error) { }
116
- return () => {
117
- if (refs.root.current) {
118
- observer.disconnect();
119
- }
120
- };
121
- }, [anchor, refs.root.current]);
122
- // Element resize
123
- react_1.default.useEffect(() => {
124
- // Resize
125
- const observer = new MutationObserver(observerMethod);
126
- try {
127
- if (refs.element.current) {
128
- observer.observe(refs.element.current, { attributes: true, childList: true, subtree: true });
129
- }
130
- }
131
- catch (error) { }
132
- return () => {
133
- if (refs.element.current) {
134
- observer.disconnect();
135
- }
136
- };
137
- }, [anchor, refs.element.current]);
138
- // Update
139
- react_1.default.useEffect(() => {
140
- if (init)
141
- make();
142
- }, [update]);
143
- // Update
144
- react_1.default.useEffect(() => {
145
- if (init) {
146
- if ((0, utils_1.is)('function', refs.props.current.onUpdate))
147
- refs.props.current.onUpdate(values);
148
- }
149
- }, [values]);
150
- const getBoundingRect = react_1.default.useCallback((elementHTML) => new Promise(async (resolve, reject) => {
151
- if (!(elementHTML === null || elementHTML === void 0 ? void 0 : elementHTML.getBoundingClientRect))
152
- return;
153
- let tries = 5;
154
- while (tries) {
155
- const valueRect = elementHTML.getBoundingClientRect();
156
- if ((valueRect === null || valueRect === void 0 ? void 0 : valueRect.height) && (valueRect === null || valueRect === void 0 ? void 0 : valueRect.width))
157
- return resolve(valueRect);
158
- tries--;
159
- await (0, utils_1.wait)(40);
160
- }
161
- }), []);
162
- const getValues = async () => {
163
- var _a;
164
- if (!((refs.root.current || refs.anchor.current) && refs.element.current))
165
- return;
166
- const wrapperRect = await getBoundingRect((_a = (refs.root.current || refs.element.current)) === null || _a === void 0 ? void 0 : _a.parentElement);
167
- if (!wrapperRect)
168
- return;
169
- const resolve = () => {
170
- if (!anchor)
171
- return;
172
- if (!portal) {
173
- anchor.x = anchor.x - wrapperRect.x;
174
- anchor.y = anchor.y - wrapperRect.y;
175
- }
176
- return anchor;
177
- };
178
- // Anchor relative to parent values
179
- const anchor_ = resolve();
180
- const rect = {
181
- root: anchor_ || await getBoundingRect(refs.root.current),
182
- element: await getBoundingRect(refs.element.current)
183
- };
184
- const rectOffset = {
185
- root: {
186
- x: refs.root.current ? refs.root.current.offsetLeft : anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.x,
187
- y: refs.root.current ? refs.root.current.offsetTop : anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.y,
188
- width: refs.root.current ? refs.root.current.offsetLeft + refs.root.current.offsetWidth : (anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.x) + (anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.width),
189
- height: refs.root.current ? refs.root.current.offsetTop + refs.root.current.offsetHeight : (anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.y) + (anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.height)
190
- },
191
- element: {
192
- x: refs.element.current.offsetLeft,
193
- y: refs.element.current.offsetTop,
194
- width: refs.element.current.offsetLeft + refs.element.current.offsetWidth,
195
- height: refs.element.current.offsetTop + refs.element.current.offsetHeight
196
- }
197
- };
198
- return {
199
- rect,
200
- rectOffset
201
- };
121
+ }, [open]);
122
+
123
+ // Anchor
124
+ _react.default.useEffect(() => {
125
+ if (init) {
126
+ if (anchor !== null && anchor !== void 0 && anchor.x && anchor !== null && anchor !== void 0 && anchor.y) make();
127
+ }
128
+ }, [anchor]);
129
+
130
+ // Anchor
131
+ _react.default.useEffect(() => {
132
+ make();
133
+ }, [anchorElement]);
134
+
135
+ // Anchor element
136
+ _react.default.useEffect(() => {
137
+ // Resize
138
+ const observer = new MutationObserver(observerMethod);
139
+ try {
140
+ if (refs.root.current) {
141
+ observer.observe(refs.root.current, {
142
+ attributes: true,
143
+ childList: true,
144
+ subtree: true
145
+ });
146
+ }
147
+ } catch (error) {}
148
+ return () => {
149
+ if (refs.root.current) {
150
+ observer.disconnect();
151
+ }
202
152
  };
203
- const make = async (value = { position: refs.position.current, alignment: refs.alignment.current, inset: inset_, switch: false }, valueMeasurements_) => {
204
- var _a, _b, _c;
205
- const valueMeasurements = valueMeasurements_ !== undefined ? valueMeasurements_ : await getValues();
206
- if (!valueMeasurements || (valueMeasurements.rect.element.width === 0 && valueMeasurements.rect.element.height === 0))
207
- return;
208
- const rootDocument = (0, utils_1.isEnvironment)('browser') ? (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document) : undefined;
209
- const wrapperRect = (overflow || switch_) && (refs.root.current || refs.element.current).parentElement.getBoundingClientRect();
210
- const scrollableParents = (0, utils_1.element)(refs.root.current).parents().filter(item => {
211
- if (!(item instanceof Element))
212
- return;
213
- const overflow_ = window.getComputedStyle(item).overflow;
214
- return ((overflow_.includes('auto') ||
215
- overflow_.includes('hidden')) &&
216
- (!refs.portal.current ||
217
- (item.clientHeight !== item.scrollHeight) ||
218
- ((item.clientHeight > window.innerHeight) ||
219
- (item.clientWidth > window.innerWidth))));
153
+ }, [anchor, refs.root.current]);
154
+
155
+ // Element resize
156
+ _react.default.useEffect(() => {
157
+ // Resize
158
+ const observer = new MutationObserver(observerMethod);
159
+ try {
160
+ if (refs.element.current) {
161
+ observer.observe(refs.element.current, {
162
+ attributes: true,
163
+ childList: true,
164
+ subtree: true
220
165
  });
221
- // If no parents, ie. anchor
222
- // add rootDocument.body as an only value
223
- if (!scrollableParents.length)
224
- scrollableParents.push(rootDocument.body);
225
- const { position, alignment, inset, switch: switched } = value;
226
- const { rect } = valueMeasurements;
227
- let { rectOffset } = valueMeasurements;
228
- // We need both root and element refs
229
- // to make our values for it
230
- const values_ = {
231
- x: 0,
232
- y: 0
233
- };
234
- const rootX = portal ? rect.root.x : rectOffset.root.x;
235
- const rootY = portal ? rect.root.y : rectOffset.root.y;
236
- const rootBottom = portal ? rect.root.bottom : rectOffset.root.y + rect.root.height;
237
- const rootRight = portal ? rect.root.right : rectOffset.root.x + rect.root.width;
238
- const parent_ = (_c = (parentElement !== undefined ? parentElement : portal ? rootDocument.body : (_b = refs.root.current) === null || _b === void 0 ? void 0 : _b.parentElement)) === null || _c === void 0 ? void 0 : _c.getBoundingClientRect();
239
- // Top, Bottom
240
- if (['top', 'bottom'].includes(position)) {
241
- if (alignment === 'start')
242
- values_.x = rootX;
243
- if (!alignment || alignment === 'center')
244
- values_.x = rootX + ((rect.root.width - rect.element.width) / 2);
245
- if (alignment === 'end')
246
- values_.x = rootX + rect.root.width - rect.element.width;
247
- if (position === 'top') {
248
- values_.y = rootBottom - (parent_.height || 0) - offset[1] - rect.root.height;
249
- if (inset)
250
- values_.y = rootBottom - (parent_.height || 0) - rect.root.height + rect.element.height + offset[1];
251
- }
252
- else {
253
- values_.y = rootY + offset[1] + rect.root.height;
254
- if (inset)
255
- values_.y = rootY + rect.root.height - rect.element.height - offset[1];
256
- }
257
- }
258
- // Left
259
- if (['left', 'right'].includes(position)) {
260
- if (alignment === 'start')
261
- values_.y = rootY;
262
- if (!alignment || alignment === 'center')
263
- values_.y = rootY + ((rect.root.height - rect.element.height) / 2);
264
- if (alignment === 'end')
265
- values_.y = rootY + rect.root.height - rect.element.height;
266
- if (position === 'left') {
267
- values_.x = rootRight - (parent_.width || 0) - offset[0] - rect.root.width;
268
- if (inset)
269
- values_.x = rootRight - (parent_.width || 0) - rect.root.width + rect.element.width + offset[0];
270
- }
271
- else {
272
- values_.x = rootX + offset[0] + rect.root.width;
273
- if (inset)
274
- values_.x = rootX + rect.root.width - rect.element.width - offset[0];
275
- }
276
- }
277
- // Absolute position
278
- if (portal) {
279
- values_.y += rootDocument.documentElement.scrollTop;
280
- values_.x += rootDocument.documentElement.scrollLeft;
281
- }
282
- // Overflow
283
- if (overflow) {
284
- // If x or y is out of bounds of the parent
285
- // or window push them to 0 value
286
- // only if that value doesn't unfollow them from the element
287
- // or unfollow them if unfollow is true
288
- if (portal)
289
- rectOffset = rect;
290
- const top = (portal ? rootDocument.documentElement.scrollTop : 0);
291
- const left = (portal ? rootDocument.documentElement.scrollLeft : 0);
292
- const rootY_ = !portal ? wrapperRect.y + rectOffset.root.y : rect.root.y;
293
- const valueY = !portal ? wrapperRect.y + values_.y : values_.y;
294
- const rootX_ = !portal ? wrapperRect.x + rectOffset.root.x : rect.root.x;
295
- const valueX = !portal ? wrapperRect.x + values_.x : values_.x;
296
- const wrapperRectY = !portal ? wrapperRect.y : 0;
297
- const wrapperRectX = !portal ? wrapperRect.x : 0;
298
- if (['left', 'right'].includes(position)) {
299
- // All parents that are scrollable
300
- const valuesY = [values_.y];
301
- let result = values_.y;
302
- scrollableParents.forEach((parent) => {
303
- const scrollParentRect = parent.getBoundingClientRect();
304
- const scrollParentY = scrollParentRect.y - Math.abs(rect.root.y);
305
- const valueScrollParentY = valueY - scrollParentRect.y;
306
- // top
307
- if ((valueY - top <= 0 + padding[1]) ||
308
- (valueScrollParentY - top <= 0 + padding[1])) {
309
- if ((rootY_ + rect.root.height) > 0 || unfollow) {
310
- const mathValues = [
311
- values_.y,
312
- top,
313
- scrollParentY,
314
- scrollParentRect.y - wrapperRectY + top,
315
- 0
316
- ];
317
- if (!portal)
318
- mathValues.push(rectOffset.root.y - rootY_);
319
- values_.y = Math.max(...mathValues);
320
- // padding
321
- const padding_ = values_.y > (rectOffset.root.y + rect.root.height + top) && unfollow ? paddingUnfollow : padding;
322
- const scrollRoot = scrollParentRect.y - wrapperRectY >= 0;
323
- values_.y += (0, utils_1.clamp)(Math.abs(values_.y - (scrollRoot ? scrollParentRect.y : 0) + wrapperRectY - padding_[1]), 0, padding_[1]);
324
- if (!unfollow)
325
- values_.y = (0, utils_1.clamp)(values_.y, Number.MIN_SAFE_INTEGER, rectOffset.root.y + rect.root.height + top);
326
- }
327
- else
328
- values_.y = rectOffset.root.y + rect.root.height + top;
329
- valuesY.push(values_.y);
330
- result = Math.max(...valuesY);
331
- }
332
- // bottom
333
- if ((valueY + rect.element.height - top >= window.innerHeight - padding[1]) ||
334
- (values_.y + rect.element.height - top >= scrollParentRect.y + scrollParentRect.height - wrapperRectY - padding[1])) {
335
- if (((rect.root.y < window.innerHeight) ||
336
- (rectOffset.root.y < scrollParentRect.y + scrollParentRect.height - wrapperRectY))
337
- || unfollow) {
338
- const mathValues = [
339
- values_.y,
340
- window.innerHeight - wrapperRectY - rect.element.height + top,
341
- scrollParentRect.y + scrollParentRect.height - wrapperRectY - rect.element.height + top
342
- ];
343
- values_.y = Math.abs(Math.min(...mathValues));
344
- // padding
345
- const padding_ = values_.y < (rectOffset.root.y - rect.element.height + top) && unfollow ? paddingUnfollow : padding;
346
- const scrollRoot = scrollParentRect.y - wrapperRectY >= 0;
347
- values_.y -= (0, utils_1.clamp)(Math.abs(values_.y - ((scrollRoot ? scrollParentRect.y + scrollParentRect.height : window.innerHeight) - wrapperRectY - rect.element.height - padding_[1])), 0, padding_[1]);
348
- if (!unfollow)
349
- values_.y = (0, utils_1.clamp)(values_.y, rectOffset.root.y - rect.element.height + top, Number.MAX_SAFE_INTEGER);
350
- }
351
- else
352
- values_.y = rectOffset.root.y - rect.element.height + top;
353
- valuesY.push(values_.y);
354
- result = Math.min(...valuesY);
355
- }
356
- // Reset
357
- values_.y = valuesY[0];
358
- });
359
- values_.y = result;
360
- }
361
- if (['top', 'bottom'].includes(position)) {
362
- // All parents that are scrollable
363
- const valuesX = [values_.x];
364
- let result = values_.x;
365
- scrollableParents.forEach((parent) => {
366
- const scrollParentRect = parent.getBoundingClientRect();
367
- const scrollParentX = scrollParentRect.x - Math.abs(rect.root.x);
368
- const valueScrollParentX = valueX - scrollParentRect.x;
369
- // left
370
- if ((valueX - left <= 0 + padding[0]) ||
371
- (valueScrollParentX - left <= 0 + padding[0])) {
372
- if ((rootX_ + rect.root.width) > 0 || unfollow) {
373
- const mathValues = [
374
- values_.x,
375
- left,
376
- scrollParentX,
377
- scrollParentRect.x - wrapperRectX + left,
378
- 0
379
- ];
380
- if (!portal)
381
- mathValues.push(rectOffset.root.x - rootX_);
382
- values_.x = Math.max(...mathValues);
383
- // padding
384
- const padding_ = (values_.x > rectOffset.root.x + rect.root.width + left) && unfollow ? paddingUnfollow : padding;
385
- const scrollRoot = scrollParentRect.x - wrapperRectX >= 0;
386
- values_.x += (0, utils_1.clamp)(Math.abs(values_.x - (scrollRoot ? scrollParentRect.x : 0) + wrapperRectX - padding_[0]), 0, padding_[0]);
387
- if (!unfollow)
388
- values_.x = (0, utils_1.clamp)(values_.x, Number.MIN_SAFE_INTEGER, rectOffset.root.x + rect.root.width + left);
389
- }
390
- else
391
- values_.x = rectOffset.root.x + rect.root.width + left;
392
- valuesX.push(values_.x);
393
- result = Math.max(...valuesX);
394
- }
395
- // right
396
- if ((valueX + rect.element.width - left >= window.innerWidth - padding[0]) ||
397
- (values_.x + rect.element.width - left >= scrollParentRect.x + scrollParentRect.width - wrapperRectX - padding[0])) {
398
- if (((rect.root.x < window.innerWidth) ||
399
- (rectOffset.root.x < scrollParentRect.x + scrollParentRect.width - wrapperRectX))
400
- || unfollow) {
401
- const mathValues = [
402
- values_.x,
403
- window.innerWidth - wrapperRectX - rect.element.width + left,
404
- scrollParentRect.x + scrollParentRect.width - wrapperRectX - rect.element.width + left
405
- ];
406
- values_.x = Math.abs(Math.min(...mathValues));
407
- // padding
408
- const padding_ = (values_.x < rectOffset.root.x - rect.element.width + left) && unfollow ? paddingUnfollow : padding;
409
- const scrollRoot = scrollParentRect.x - wrapperRectX >= 0;
410
- values_.x -= (0, utils_1.clamp)(Math.abs(values_.x - ((scrollRoot ? scrollParentRect.x + scrollParentRect.width : window.innerWidth) - wrapperRectX - rect.element.width - padding_[1])), 0, padding_[1]);
411
- if (!unfollow)
412
- values_.x = (0, utils_1.clamp)(values_.x, rectOffset.root.x - rect.element.width + left, Number.MAX_SAFE_INTEGER);
413
- }
414
- else
415
- values_.x = rectOffset.root.x - rect.element.width + left;
416
- valuesX.push(values_.x);
417
- result = Math.min(...valuesX);
418
- }
419
- // Reset
420
- values_.x = valuesX[0];
421
- });
422
- values_.x = result;
423
- }
424
- }
425
- // Switch
426
- if (switch_ && !value.switch) {
427
- let newPosition = position;
428
- const rectValue = {
429
- element: {}
430
- };
431
- if (position_ === 'top')
432
- rectValue.element.y = rect.root.y - offset[1] - rect.element.height;
433
- if (position_ === 'bottom')
434
- rectValue.element.y = rect.root.y + rect.root.height + offset[1];
435
- if (position_ === 'left')
436
- rectValue.element.x = rect.root.x - offset[0] - rect.element.width;
437
- if (position_ === 'right')
438
- rectValue.element.x = rect.root.x + rect.root.width + offset[0];
439
- const update_ = scrollableParents.some(parent => {
440
- const rectParent = parent.getBoundingClientRect();
441
- if (position_ === 'top')
442
- return !(rectValue.element.y - (['top', 'bottom'].includes(position_) ? padding[0] : 0) >= 0 &&
443
- rectValue.element.y - (['top', 'bottom'].includes(position_) ? padding[0] : 0) >= rectParent.y);
444
- if (position_ === 'bottom')
445
- return !(rectValue.element.y + rect.element.height + (['top', 'bottom'].includes(position_) ? padding[0] : 0) <= window.innerHeight &&
446
- rectValue.element.y + rect.element.height + (['top', 'bottom'].includes(position_) ? padding[0] : 0) <= rectParent.y + rectParent.height);
447
- if (position_ === 'left')
448
- return !(rectValue.element.x - (['left', 'right'].includes(position_) ? padding[1] : 0) >= 0 &&
449
- rectValue.element.x - (['left', 'right'].includes(position_) ? padding[1] : 0) >= rectParent.x);
450
- if (position_ === 'right')
451
- return !(rectValue.element.x + rect.element.width + (['left', 'right'].includes(position_) ? padding[1] : 0) <= window.innerWidth &&
452
- rectValue.element.x + rect.element.width + (['left', 'right'].includes(position_) ? padding[1] : 0) <= rectParent.x + rectParent.width);
453
- });
454
- if (update_) {
455
- if (position_ === 'top')
456
- newPosition = 'bottom';
457
- if (position_ === 'left')
458
- newPosition = 'right';
459
- if (position_ === 'right')
460
- newPosition = 'left';
461
- if (position_ === 'bottom')
462
- newPosition = 'top';
463
- return make({ position: newPosition, alignment: alignment_, inset: inset_, switch: true });
464
- }
465
- }
466
- refs.values.current = Object.assign({ position: value.position, alignment: value.alignment, switch: switched, init: false }, values_);
467
- if ((0, utils_1.is)('function', refs.additional.current)) {
468
- refs.values.current = Object.assign(Object.assign({}, refs.values.current), additional(rect, rectOffset));
469
- }
470
- if (portal) {
471
- const paddingX = padding[1] || 0;
472
- refs.values.current.x = (0, utils_1.clamp)(refs.values.current.x, paddingX, (window.innerWidth - rect.element.width - paddingX));
473
- }
474
- // Update
475
- setValues(refs.values.current);
166
+ }
167
+ } catch (error) {}
168
+ return () => {
169
+ if (refs.element.current) {
170
+ observer.disconnect();
171
+ }
172
+ };
173
+ }, [anchor, refs.element.current]);
174
+
175
+ // Update
176
+ _react.default.useEffect(() => {
177
+ if (init) make();
178
+ }, [update]);
179
+
180
+ // Update
181
+ _react.default.useEffect(() => {
182
+ if (init) {
183
+ if ((0, _utils.is)('function', refs.props.current.onUpdate)) refs.props.current.onUpdate(values);
184
+ }
185
+ }, [values]);
186
+ const getBoundingRect = _react.default.useCallback(elementHTML => new Promise(async (resolve, reject) => {
187
+ if (!(elementHTML !== null && elementHTML !== void 0 && elementHTML.getBoundingClientRect)) return;
188
+ let tries = 5;
189
+ while (tries) {
190
+ const valueRect = elementHTML.getBoundingClientRect();
191
+ if (valueRect !== null && valueRect !== void 0 && valueRect.height && valueRect !== null && valueRect !== void 0 && valueRect.width) return resolve(valueRect);
192
+ tries--;
193
+ await (0, _utils.wait)(40);
194
+ }
195
+ }), []);
196
+ const getValues = async () => {
197
+ var _ref;
198
+ if (!((refs.root.current || refs.anchor.current) && refs.element.current)) return;
199
+ const wrapperRect = await getBoundingRect((_ref = refs.root.current || refs.element.current) === null || _ref === void 0 ? void 0 : _ref.parentElement);
200
+ if (!wrapperRect) return;
201
+ const resolve = () => {
202
+ if (!anchor) return;
203
+ if (!portal) {
204
+ anchor.x = anchor.x - wrapperRect.x;
205
+ anchor.y = anchor.y - wrapperRect.y;
206
+ }
207
+ return anchor;
208
+ };
209
+
210
+ // Anchor relative to parent values
211
+ const anchor_ = resolve();
212
+ const rect = {
213
+ root: anchor_ || (await getBoundingRect(refs.root.current)),
214
+ element: await getBoundingRect(refs.element.current)
215
+ };
216
+ const rectOffset = {
217
+ root: {
218
+ x: refs.root.current ? refs.root.current.offsetLeft : anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.x,
219
+ y: refs.root.current ? refs.root.current.offsetTop : anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.y,
220
+ width: refs.root.current ? refs.root.current.offsetLeft + refs.root.current.offsetWidth : (anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.x) + (anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.width),
221
+ height: refs.root.current ? refs.root.current.offsetTop + refs.root.current.offsetHeight : (anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.y) + (anchor_ === null || anchor_ === void 0 ? void 0 : anchor_.height)
222
+ },
223
+ element: {
224
+ x: refs.element.current.offsetLeft,
225
+ y: refs.element.current.offsetTop,
226
+ width: refs.element.current.offsetLeft + refs.element.current.offsetWidth,
227
+ height: refs.element.current.offsetTop + refs.element.current.offsetHeight
228
+ }
476
229
  };
477
- let style = {};
478
- style.position = 'absolute';
479
- if (values.position === 'top')
480
- style.inset = 'auto auto 0px 0px';
481
- else if (values.position === 'left')
482
- style.inset = '0px 0px auto auto';
483
- else
484
- style.inset = '0px auto auto 0px';
485
- if (accelerated) {
486
- const ppiHigh = (0, utils_1.isEnvironment)('browser') && window.devicePixelRatio > 1;
487
- if (ppiHigh)
488
- style.transform = `translate3d(${values.x}px, ${values.y}px, 0px)`;
489
- else
490
- style.transform = `translate(${values.x}px, ${values.y}px)`;
230
+ return {
231
+ rect,
232
+ rectOffset
233
+ };
234
+ };
235
+ const make = async (value = {
236
+ position: refs.position.current,
237
+ alignment: refs.alignment.current,
238
+ inset: inset_,
239
+ switch: false
240
+ }, valueMeasurements_) => {
241
+ var _refs$root$current2, _ref2, _refs$root$current3;
242
+ const valueMeasurements = valueMeasurements_ !== undefined ? valueMeasurements_ : await getValues();
243
+ if (!valueMeasurements || valueMeasurements.rect.element.width === 0 && valueMeasurements.rect.element.height === 0) return;
244
+ const rootDocument = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current2 = refs.root.current) === null || _refs$root$current2 === void 0 ? void 0 : _refs$root$current2.ownerDocument) || window.document : undefined;
245
+ const wrapperRect = (overflow || switch_) && (refs.root.current || refs.element.current).parentElement.getBoundingClientRect();
246
+ const scrollableParents = (0, _utils.element)(refs.root.current).parents().filter(item => {
247
+ if (!(item instanceof Element)) return;
248
+ const overflow_ = window.getComputedStyle(item).overflow;
249
+ return (overflow_.includes('auto') || overflow_.includes('hidden')) && (!refs.portal.current || item.clientHeight !== item.scrollHeight || item.clientHeight > window.innerHeight || item.clientWidth > window.innerWidth);
250
+ });
251
+
252
+ // If no parents, ie. anchor
253
+ // add rootDocument.body as an only value
254
+ if (!scrollableParents.length) scrollableParents.push(rootDocument.body);
255
+ const {
256
+ position,
257
+ alignment,
258
+ inset,
259
+ switch: switched
260
+ } = value;
261
+ const {
262
+ rect
263
+ } = valueMeasurements;
264
+ let {
265
+ rectOffset
266
+ } = valueMeasurements;
267
+
268
+ // We need both root and element refs
269
+ // to make our values for it
270
+ const values_ = {
271
+ x: 0,
272
+ y: 0
273
+ };
274
+ const rootX = portal ? rect.root.x : rectOffset.root.x;
275
+ const rootY = portal ? rect.root.y : rectOffset.root.y;
276
+ const rootBottom = portal ? rect.root.bottom : rectOffset.root.y + rect.root.height;
277
+ const rootRight = portal ? rect.root.right : rectOffset.root.x + rect.root.width;
278
+ const parent_ = (_ref2 = parentElement !== undefined ? parentElement : portal ? rootDocument.body : (_refs$root$current3 = refs.root.current) === null || _refs$root$current3 === void 0 ? void 0 : _refs$root$current3.parentElement) === null || _ref2 === void 0 ? void 0 : _ref2.getBoundingClientRect();
279
+
280
+ // Top, Bottom
281
+ if (['top', 'bottom'].includes(position)) {
282
+ if (alignment === 'start') values_.x = rootX;
283
+ if (!alignment || alignment === 'center') values_.x = rootX + (rect.root.width - rect.element.width) / 2;
284
+ if (alignment === 'end') values_.x = rootX + rect.root.width - rect.element.width;
285
+ if (position === 'top') {
286
+ values_.y = rootBottom - (parent_.height || 0) - offset[1] - rect.root.height;
287
+ if (inset) values_.y = rootBottom - (parent_.height || 0) - rect.root.height + rect.element.height + offset[1];
288
+ } else {
289
+ values_.y = rootY + offset[1] + rect.root.height;
290
+ if (inset) values_.y = rootY + rect.root.height - rect.element.height - offset[1];
291
+ }
292
+ }
293
+
294
+ // Left
295
+ if (['left', 'right'].includes(position)) {
296
+ if (alignment === 'start') values_.y = rootY;
297
+ if (!alignment || alignment === 'center') values_.y = rootY + (rect.root.height - rect.element.height) / 2;
298
+ if (alignment === 'end') values_.y = rootY + rect.root.height - rect.element.height;
299
+ if (position === 'left') {
300
+ values_.x = rootRight - (parent_.width || 0) - offset[0] - rect.root.width;
301
+ if (inset) values_.x = rootRight - (parent_.width || 0) - rect.root.width + rect.element.width + offset[0];
302
+ } else {
303
+ values_.x = rootX + offset[0] + rect.root.width;
304
+ if (inset) values_.x = rootX + rect.root.width - rect.element.width - offset[0];
305
+ }
491
306
  }
492
- else {
493
- style.top = values.y;
494
- style.left = values.x;
307
+
308
+ // Absolute position
309
+ if (portal) {
310
+ values_.y += rootDocument.documentElement.scrollTop;
311
+ values_.x += rootDocument.documentElement.scrollLeft;
312
+ }
313
+
314
+ // Overflow
315
+ if (overflow) {
316
+ // If x or y is out of bounds of the parent
317
+ // or window push them to 0 value
318
+ // only if that value doesn't unfollow them from the element
319
+ // or unfollow them if unfollow is true
320
+ if (portal) rectOffset = rect;
321
+ const top = portal ? rootDocument.documentElement.scrollTop : 0;
322
+ const left = portal ? rootDocument.documentElement.scrollLeft : 0;
323
+ const rootY_ = !portal ? wrapperRect.y + rectOffset.root.y : rect.root.y;
324
+ const valueY = !portal ? wrapperRect.y + values_.y : values_.y;
325
+ const rootX_ = !portal ? wrapperRect.x + rectOffset.root.x : rect.root.x;
326
+ const valueX = !portal ? wrapperRect.x + values_.x : values_.x;
327
+ const wrapperRectY = !portal ? wrapperRect.y : 0;
328
+ const wrapperRectX = !portal ? wrapperRect.x : 0;
329
+ if (['left', 'right'].includes(position)) {
330
+ // All parents that are scrollable
331
+ const valuesY = [values_.y];
332
+ let result = values_.y;
333
+ scrollableParents.forEach(parent => {
334
+ const scrollParentRect = parent.getBoundingClientRect();
335
+ const scrollParentY = scrollParentRect.y - Math.abs(rect.root.y);
336
+ const valueScrollParentY = valueY - scrollParentRect.y;
337
+
338
+ // top
339
+ if (valueY - top <= 0 + padding[1] || valueScrollParentY - top <= 0 + padding[1]) {
340
+ if (rootY_ + rect.root.height > 0 || unfollow) {
341
+ const mathValues = [values_.y, top, scrollParentY, scrollParentRect.y - wrapperRectY + top, 0];
342
+ if (!portal) mathValues.push(rectOffset.root.y - rootY_);
343
+ values_.y = Math.max(...mathValues);
344
+
345
+ // padding
346
+ const padding_ = values_.y > rectOffset.root.y + rect.root.height + top && unfollow ? paddingUnfollow : padding;
347
+ const scrollRoot = scrollParentRect.y - wrapperRectY >= 0;
348
+ values_.y += (0, _utils.clamp)(Math.abs(values_.y - (scrollRoot ? scrollParentRect.y : 0) + wrapperRectY - padding_[1]), 0, padding_[1]);
349
+ if (!unfollow) values_.y = (0, _utils.clamp)(values_.y, Number.MIN_SAFE_INTEGER, rectOffset.root.y + rect.root.height + top);
350
+ } else values_.y = rectOffset.root.y + rect.root.height + top;
351
+ valuesY.push(values_.y);
352
+ result = Math.max(...valuesY);
353
+ }
354
+
355
+ // bottom
356
+ if (valueY + rect.element.height - top >= window.innerHeight - padding[1] || values_.y + rect.element.height - top >= scrollParentRect.y + scrollParentRect.height - wrapperRectY - padding[1]) {
357
+ if (rect.root.y < window.innerHeight || rectOffset.root.y < scrollParentRect.y + scrollParentRect.height - wrapperRectY || unfollow) {
358
+ const mathValues = [values_.y, window.innerHeight - wrapperRectY - rect.element.height + top, scrollParentRect.y + scrollParentRect.height - wrapperRectY - rect.element.height + top];
359
+ values_.y = Math.abs(Math.min(...mathValues));
360
+
361
+ // padding
362
+ const padding_ = values_.y < rectOffset.root.y - rect.element.height + top && unfollow ? paddingUnfollow : padding;
363
+ const scrollRoot = scrollParentRect.y - wrapperRectY >= 0;
364
+ values_.y -= (0, _utils.clamp)(Math.abs(values_.y - ((scrollRoot ? scrollParentRect.y + scrollParentRect.height : window.innerHeight) - wrapperRectY - rect.element.height - padding_[1])), 0, padding_[1]);
365
+ if (!unfollow) values_.y = (0, _utils.clamp)(values_.y, rectOffset.root.y - rect.element.height + top, Number.MAX_SAFE_INTEGER);
366
+ } else values_.y = rectOffset.root.y - rect.element.height + top;
367
+ valuesY.push(values_.y);
368
+ result = Math.min(...valuesY);
369
+ }
370
+
371
+ // Reset
372
+ values_.y = valuesY[0];
373
+ });
374
+ values_.y = result;
375
+ }
376
+ if (['top', 'bottom'].includes(position)) {
377
+ // All parents that are scrollable
378
+ const valuesX = [values_.x];
379
+ let result = values_.x;
380
+ scrollableParents.forEach(parent => {
381
+ const scrollParentRect = parent.getBoundingClientRect();
382
+ const scrollParentX = scrollParentRect.x - Math.abs(rect.root.x);
383
+ const valueScrollParentX = valueX - scrollParentRect.x;
384
+
385
+ // left
386
+ if (valueX - left <= 0 + padding[0] || valueScrollParentX - left <= 0 + padding[0]) {
387
+ if (rootX_ + rect.root.width > 0 || unfollow) {
388
+ const mathValues = [values_.x, left, scrollParentX, scrollParentRect.x - wrapperRectX + left, 0];
389
+ if (!portal) mathValues.push(rectOffset.root.x - rootX_);
390
+ values_.x = Math.max(...mathValues);
391
+
392
+ // padding
393
+ const padding_ = values_.x > rectOffset.root.x + rect.root.width + left && unfollow ? paddingUnfollow : padding;
394
+ const scrollRoot = scrollParentRect.x - wrapperRectX >= 0;
395
+ values_.x += (0, _utils.clamp)(Math.abs(values_.x - (scrollRoot ? scrollParentRect.x : 0) + wrapperRectX - padding_[0]), 0, padding_[0]);
396
+ if (!unfollow) values_.x = (0, _utils.clamp)(values_.x, Number.MIN_SAFE_INTEGER, rectOffset.root.x + rect.root.width + left);
397
+ } else values_.x = rectOffset.root.x + rect.root.width + left;
398
+ valuesX.push(values_.x);
399
+ result = Math.max(...valuesX);
400
+ }
401
+
402
+ // right
403
+ if (valueX + rect.element.width - left >= window.innerWidth - padding[0] || values_.x + rect.element.width - left >= scrollParentRect.x + scrollParentRect.width - wrapperRectX - padding[0]) {
404
+ if (rect.root.x < window.innerWidth || rectOffset.root.x < scrollParentRect.x + scrollParentRect.width - wrapperRectX || unfollow) {
405
+ const mathValues = [values_.x, window.innerWidth - wrapperRectX - rect.element.width + left, scrollParentRect.x + scrollParentRect.width - wrapperRectX - rect.element.width + left];
406
+ values_.x = Math.abs(Math.min(...mathValues));
407
+
408
+ // padding
409
+ const padding_ = values_.x < rectOffset.root.x - rect.element.width + left && unfollow ? paddingUnfollow : padding;
410
+ const scrollRoot = scrollParentRect.x - wrapperRectX >= 0;
411
+ values_.x -= (0, _utils.clamp)(Math.abs(values_.x - ((scrollRoot ? scrollParentRect.x + scrollParentRect.width : window.innerWidth) - wrapperRectX - rect.element.width - padding_[1])), 0, padding_[1]);
412
+ if (!unfollow) values_.x = (0, _utils.clamp)(values_.x, rectOffset.root.x - rect.element.width + left, Number.MAX_SAFE_INTEGER);
413
+ } else values_.x = rectOffset.root.x - rect.element.width + left;
414
+ valuesX.push(values_.x);
415
+ result = Math.min(...valuesX);
416
+ }
417
+
418
+ // Reset
419
+ values_.x = valuesX[0];
420
+ });
421
+ values_.x = result;
422
+ }
495
423
  }
496
- style = Object.assign(Object.assign(Object.assign(Object.assign({}, (_a = element === null || element === void 0 ? void 0 : element.props) === null || _a === void 0 ? void 0 : _a.style), style), style_), values === null || values === void 0 ? void 0 : values.style);
497
- const PortalComponent = portal ? Portal : react_1.default.Fragment;
498
- const PortalComponentProps = {};
499
- const rootDocumentElement = (0, utils_1.isEnvironment)('browser') ? (((_b = refs.root.current) === null || _b === void 0 ? void 0 : _b.ownerDocument) || window.document) : undefined;
500
- if (portal && (0, utils_1.isEnvironment)('browser')) {
501
- PortalComponentProps.element = rootDocumentElement.body;
502
- // relative
503
- rootDocumentElement.body.style.position = rootDocumentElement.body.style.position || 'relative';
504
- rootDocumentElement.body.style.margin = rootDocumentElement.body.style.margin || '0';
424
+
425
+ // Switch
426
+ if (switch_ && !value.switch) {
427
+ let newPosition = position;
428
+ const rectValue = {
429
+ element: {}
430
+ };
431
+ if (position_ === 'top') rectValue.element.y = rect.root.y - offset[1] - rect.element.height;
432
+ if (position_ === 'bottom') rectValue.element.y = rect.root.y + rect.root.height + offset[1];
433
+ if (position_ === 'left') rectValue.element.x = rect.root.x - offset[0] - rect.element.width;
434
+ if (position_ === 'right') rectValue.element.x = rect.root.x + rect.root.width + offset[0];
435
+ const update_ = scrollableParents.some(parent => {
436
+ const rectParent = parent.getBoundingClientRect();
437
+ if (position_ === 'top') return !(rectValue.element.y - (['top', 'bottom'].includes(position_) ? padding[0] : 0) >= 0 && rectValue.element.y - (['top', 'bottom'].includes(position_) ? padding[0] : 0) >= rectParent.y);
438
+ if (position_ === 'bottom') return !(rectValue.element.y + rect.element.height + (['top', 'bottom'].includes(position_) ? padding[0] : 0) <= window.innerHeight && rectValue.element.y + rect.element.height + (['top', 'bottom'].includes(position_) ? padding[0] : 0) <= rectParent.y + rectParent.height);
439
+ if (position_ === 'left') return !(rectValue.element.x - (['left', 'right'].includes(position_) ? padding[1] : 0) >= 0 && rectValue.element.x - (['left', 'right'].includes(position_) ? padding[1] : 0) >= rectParent.x);
440
+ if (position_ === 'right') return !(rectValue.element.x + rect.element.width + (['left', 'right'].includes(position_) ? padding[1] : 0) <= window.innerWidth && rectValue.element.x + rect.element.width + (['left', 'right'].includes(position_) ? padding[1] : 0) <= rectParent.x + rectParent.width);
441
+ });
442
+ if (update_) {
443
+ if (position_ === 'top') newPosition = 'bottom';
444
+ if (position_ === 'left') newPosition = 'right';
445
+ if (position_ === 'right') newPosition = 'left';
446
+ if (position_ === 'bottom') newPosition = 'top';
447
+ return make({
448
+ position: newPosition,
449
+ alignment: alignment_,
450
+ inset: inset_,
451
+ switch: true
452
+ });
453
+ }
454
+ }
455
+ refs.values.current = _objectSpread({
456
+ position: value.position,
457
+ alignment: value.alignment,
458
+ switch: switched,
459
+ init: false
460
+ }, values_);
461
+ if ((0, _utils.is)('function', refs.additional.current)) {
462
+ refs.values.current = _objectSpread(_objectSpread({}, refs.values.current), additional(rect, rectOffset));
463
+ }
464
+ if (portal) {
465
+ const paddingX = padding[1] || 0;
466
+ refs.values.current.x = (0, _utils.clamp)(refs.values.current.x, paddingX, window.innerWidth - rect.element.width - paddingX);
467
+ }
468
+
469
+ // Update
470
+ setValues(refs.values.current);
471
+ };
472
+ let style = {};
473
+ style.position = 'absolute';
474
+ if (values.position === 'top') style.inset = 'auto auto 0px 0px';else if (values.position === 'left') style.inset = '0px 0px auto auto';else style.inset = '0px auto auto 0px';
475
+ if (accelerated) {
476
+ const ppiHigh = (0, _utils.isEnvironment)('browser') && window.devicePixelRatio > 1;
477
+ if (ppiHigh) style.transform = `translate3d(${values.x}px, ${values.y}px, 0px)`;else style.transform = `translate(${values.x}px, ${values.y}px)`;
478
+ } else {
479
+ style.top = values.y;
480
+ style.left = values.x;
481
+ }
482
+ style = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, element === null || element === void 0 || (_props = element.props) === null || _props === void 0 ? void 0 : _props.style), style), style_), values === null || values === void 0 ? void 0 : values.style);
483
+ const PortalComponent = portal ? Portal : _react.default.Fragment;
484
+ const PortalComponentProps = {};
485
+ const rootDocumentElement = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current4 = refs.root.current) === null || _refs$root$current4 === void 0 ? void 0 : _refs$root$current4.ownerDocument) || window.document : undefined;
486
+ if (portal && (0, _utils.isEnvironment)('browser')) {
487
+ PortalComponentProps.element = rootDocumentElement.body;
488
+
489
+ // relative
490
+ rootDocumentElement.body.style.position = rootDocumentElement.body.style.position || 'relative';
491
+ rootDocumentElement.body.style.margin = rootDocumentElement.body.style.margin || '0';
492
+ }
493
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children && /*#__PURE__*/_react.default.cloneElement(children, {
494
+ ref: item => {
495
+ if (children.ref) {
496
+ if ((0, _utils.is)('function', children.ref)) children.ref(item);else children.ref.current = item;
497
+ }
498
+ refs.root.current = item;
505
499
  }
506
- return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [children && react_1.default.cloneElement(children, {
507
- ref: (item) => {
508
- if (children.ref) {
509
- if ((0, utils_1.is)('function', children.ref))
510
- children.ref(item);
511
- else
512
- children.ref.current = item;
513
- }
514
- refs.root.current = item;
515
- }
516
- }), open && (children || anchorElement || anchor) && ((0, jsx_runtime_1.jsx)(PortalComponent, Object.assign({}, PortalComponentProps, { children: (0, utils_1.is)('function', element) ?
517
- element({ ref: refs.element, values, style }) :
518
- react_1.default.cloneElement(element, {
519
- ref: (item) => {
520
- if (element === null || element === void 0 ? void 0 : element.ref) {
521
- if ((0, utils_1.is)('function', element.ref))
522
- element.ref(item);
523
- else
524
- element.ref.current = item;
525
- }
526
- refs.element.current = item;
527
- },
528
- style
529
- }) })))] }));
500
+ }), open && (children || anchorElement || anchor) && /*#__PURE__*/_react.default.createElement(PortalComponent, PortalComponentProps, (0, _utils.is)('function', element) ? element({
501
+ ref: refs.element,
502
+ values,
503
+ style
504
+ }) : /*#__PURE__*/_react.default.cloneElement(element, {
505
+ ref: item => {
506
+ if (element !== null && element !== void 0 && element.ref) {
507
+ if ((0, _utils.is)('function', element.ref)) element.ref(item);else element.ref.current = item;
508
+ }
509
+ refs.element.current = item;
510
+ },
511
+ style
512
+ })));
530
513
  };
531
514
  Append.displayName = 'onesy-Append';
532
- exports.default = Append;
515
+ var _default = exports.default = Append;