@foxford/ui 2.76.1 → 2.77.0-beta-ee6908c-20250807

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 (402) hide show
  1. package/LICENSE +27 -0
  2. package/components/Accordion/Accordion.js +1 -1
  3. package/components/Accordion/Accordion.js.map +1 -1
  4. package/components/Accordion/Accordion.mjs +1 -1
  5. package/components/Accordion/Accordion.mjs.map +1 -1
  6. package/components/Accordion/hooks.js +1 -1
  7. package/components/Accordion/hooks.js.map +1 -1
  8. package/components/Accordion/hooks.mjs +1 -1
  9. package/components/Accordion/hooks.mjs.map +1 -1
  10. package/components/AccordionItem/AccordionItem.js +1 -1
  11. package/components/AccordionItem/AccordionItem.js.map +1 -1
  12. package/components/AccordionItem/AccordionItem.mjs +1 -1
  13. package/components/AccordionItem/AccordionItem.mjs.map +1 -1
  14. package/components/ActionBtn/ActionBtn.js +1 -1
  15. package/components/ActionBtn/ActionBtn.js.map +1 -1
  16. package/components/ActionBtn/ActionBtn.mjs +1 -1
  17. package/components/ActionBtn/ActionBtn.mjs.map +1 -1
  18. package/components/ActionBtn/style.js.map +1 -1
  19. package/components/ActionBtn/style.mjs.map +1 -1
  20. package/components/Alert/Alert.js +1 -1
  21. package/components/Alert/Alert.js.map +1 -1
  22. package/components/Alert/Alert.mjs +1 -1
  23. package/components/Alert/Alert.mjs.map +1 -1
  24. package/components/Amount/Amount.js +1 -1
  25. package/components/Amount/Amount.js.map +1 -1
  26. package/components/Amount/Amount.mjs +1 -1
  27. package/components/Amount/Amount.mjs.map +1 -1
  28. package/components/Amount/data/index.js.map +1 -1
  29. package/components/Amount/data/index.mjs.map +1 -1
  30. package/components/Amount/style.js.map +1 -1
  31. package/components/Amount/style.mjs.map +1 -1
  32. package/components/Anchor/Anchor.js +1 -1
  33. package/components/Anchor/Anchor.js.map +1 -1
  34. package/components/Anchor/Anchor.mjs +1 -1
  35. package/components/Anchor/Anchor.mjs.map +1 -1
  36. package/components/Arrow/Arrow.js.map +1 -1
  37. package/components/Arrow/Arrow.mjs.map +1 -1
  38. package/components/ArrowBadge/ArrowBadge.js.map +1 -1
  39. package/components/ArrowBadge/ArrowBadge.mjs.map +1 -1
  40. package/components/AspectRatio/style.js.map +1 -1
  41. package/components/AspectRatio/style.mjs.map +1 -1
  42. package/components/Avatar/Avatar.js +1 -1
  43. package/components/Avatar/Avatar.js.map +1 -1
  44. package/components/Avatar/Avatar.mjs +1 -1
  45. package/components/Avatar/Avatar.mjs.map +1 -1
  46. package/components/Avatar/utils.js.map +1 -1
  47. package/components/Avatar/utils.mjs.map +1 -1
  48. package/components/Badge/Badge.js +1 -1
  49. package/components/Badge/Badge.js.map +1 -1
  50. package/components/Badge/Badge.mjs +1 -1
  51. package/components/Badge/Badge.mjs.map +1 -1
  52. package/components/Button/Button.js +1 -1
  53. package/components/Button/Button.js.map +1 -1
  54. package/components/Button/Button.mjs +1 -1
  55. package/components/Button/Button.mjs.map +1 -1
  56. package/components/Button/hooks.js.map +1 -1
  57. package/components/Button/hooks.mjs.map +1 -1
  58. package/components/Button/style.js.map +1 -1
  59. package/components/Button/style.mjs.map +1 -1
  60. package/components/Checkbox/Checkbox.js +1 -1
  61. package/components/Checkbox/Checkbox.js.map +1 -1
  62. package/components/Checkbox/Checkbox.mjs +1 -1
  63. package/components/Checkbox/Checkbox.mjs.map +1 -1
  64. package/components/Chip/Chip.js +1 -1
  65. package/components/Chip/Chip.js.map +1 -1
  66. package/components/Chip/Chip.mjs +1 -1
  67. package/components/Chip/Chip.mjs.map +1 -1
  68. package/components/Container/Container.js.map +1 -1
  69. package/components/Container/Container.mjs.map +1 -1
  70. package/components/Container/style.js.map +1 -1
  71. package/components/Container/style.mjs.map +1 -1
  72. package/components/ContextMenu/ContextMenu.js +1 -1
  73. package/components/ContextMenu/ContextMenu.js.map +1 -1
  74. package/components/ContextMenu/ContextMenu.mjs +1 -1
  75. package/components/ContextMenu/ContextMenu.mjs.map +1 -1
  76. package/components/ContextMenu/Item.js.map +1 -1
  77. package/components/ContextMenu/Item.mjs.map +1 -1
  78. package/components/ContextMenu/style.js.map +1 -1
  79. package/components/ContextMenu/style.mjs.map +1 -1
  80. package/components/ContextMenu.Multilevel/ContextMenu.Multilevel.js +1 -1
  81. package/components/ContextMenu.Multilevel/ContextMenu.Multilevel.js.map +1 -1
  82. package/components/ContextMenu.Multilevel/ContextMenu.Multilevel.mjs +1 -1
  83. package/components/ContextMenu.Multilevel/ContextMenu.Multilevel.mjs.map +1 -1
  84. package/components/ContextMenu.Multilevel/Controls.js.map +1 -1
  85. package/components/ContextMenu.Multilevel/Controls.mjs.map +1 -1
  86. package/components/Dialog/Dialog.js.map +1 -1
  87. package/components/Dialog/Dialog.mjs.map +1 -1
  88. package/components/DialogComponent/DialogComponent.js +1 -1
  89. package/components/DialogComponent/DialogComponent.js.map +1 -1
  90. package/components/DialogComponent/DialogComponent.mjs +1 -1
  91. package/components/DialogComponent/DialogComponent.mjs.map +1 -1
  92. package/components/DialogComponent/style.js.map +1 -1
  93. package/components/DialogComponent/style.mjs.map +1 -1
  94. package/components/Divider/style.js.map +1 -1
  95. package/components/Divider/style.mjs.map +1 -1
  96. package/components/Dropdown/Dropdown.js +1 -1
  97. package/components/Dropdown/Dropdown.js.map +1 -1
  98. package/components/Dropdown/Dropdown.mjs +1 -1
  99. package/components/Dropdown/Dropdown.mjs.map +1 -1
  100. package/components/Dropdown/DropdownMenuNoOptions.js +1 -1
  101. package/components/Dropdown/DropdownMenuNoOptions.js.map +1 -1
  102. package/components/Dropdown/DropdownMenuNoOptions.mjs +1 -1
  103. package/components/Dropdown/DropdownMenuNoOptions.mjs.map +1 -1
  104. package/components/Dropdown/hooks.js.map +1 -1
  105. package/components/Dropdown/hooks.mjs.map +1 -1
  106. package/components/FormInput/FormInput.js.map +1 -1
  107. package/components/FormInput/FormInput.mjs.map +1 -1
  108. package/components/FormInputLabel/FormInputLabel.js +1 -1
  109. package/components/FormInputLabel/FormInputLabel.js.map +1 -1
  110. package/components/FormInputLabel/FormInputLabel.mjs +1 -1
  111. package/components/FormInputLabel/FormInputLabel.mjs.map +1 -1
  112. package/components/FormLabel/FormLabel.js +1 -1
  113. package/components/FormLabel/FormLabel.js.map +1 -1
  114. package/components/FormLabel/FormLabel.mjs +1 -1
  115. package/components/FormLabel/FormLabel.mjs.map +1 -1
  116. package/components/Icon/Icon.js +1 -1
  117. package/components/Icon/Icon.js.map +1 -1
  118. package/components/Icon/Icon.mjs +1 -1
  119. package/components/Icon/Icon.mjs.map +1 -1
  120. package/components/Icon/bg-worker.js.map +1 -1
  121. package/components/Icon/bg-worker.mjs.map +1 -1
  122. package/components/Icon/list/default.js.map +1 -1
  123. package/components/Icon/list/default.mjs.map +1 -1
  124. package/components/Icon/list/icon-pack.js.map +1 -1
  125. package/components/Icon/list/icon-pack.mjs.map +1 -1
  126. package/components/IconButton/IconButton.js.map +1 -1
  127. package/components/IconButton/IconButton.mjs.map +1 -1
  128. package/components/Indicator/Indicator.js +1 -1
  129. package/components/Indicator/Indicator.js.map +1 -1
  130. package/components/Indicator/Indicator.mjs +1 -1
  131. package/components/Indicator/Indicator.mjs.map +1 -1
  132. package/components/Input/Input.js.map +1 -1
  133. package/components/Input/Input.mjs.map +1 -1
  134. package/components/Input/helpers.js.map +1 -1
  135. package/components/Input/helpers.mjs.map +1 -1
  136. package/components/Input.Phone/Input.Phone.js.map +1 -1
  137. package/components/Input.Phone/Input.Phone.mjs.map +1 -1
  138. package/components/InputCheckbox/InputCheckbox.js.map +1 -1
  139. package/components/InputCheckbox/InputCheckbox.mjs.map +1 -1
  140. package/components/InputRadio/InputRadio.js.map +1 -1
  141. package/components/InputRadio/InputRadio.mjs.map +1 -1
  142. package/components/ListItem/ListItem.js +1 -1
  143. package/components/ListItem/ListItem.js.map +1 -1
  144. package/components/ListItem/ListItem.mjs +1 -1
  145. package/components/ListItem/ListItem.mjs.map +1 -1
  146. package/components/Menu/Menu.js.map +1 -1
  147. package/components/Menu/Menu.mjs.map +1 -1
  148. package/components/MenuComponent/MenuComponent.js.map +1 -1
  149. package/components/MenuComponent/MenuComponent.mjs.map +1 -1
  150. package/components/MenuComponent/style.js +1 -1
  151. package/components/MenuComponent/style.js.map +1 -1
  152. package/components/MenuComponent/style.mjs +1 -1
  153. package/components/MenuComponent/style.mjs.map +1 -1
  154. package/components/MenuContainer/MenuContainer.js +1 -1
  155. package/components/MenuContainer/MenuContainer.js.map +1 -1
  156. package/components/MenuContainer/MenuContainer.mjs +1 -1
  157. package/components/MenuContainer/MenuContainer.mjs.map +1 -1
  158. package/components/MenuDivider/MenuDivider.js +1 -1
  159. package/components/MenuDivider/MenuDivider.js.map +1 -1
  160. package/components/MenuDivider/MenuDivider.mjs +1 -1
  161. package/components/MenuDivider/MenuDivider.mjs.map +1 -1
  162. package/components/MenuList/MenuList.js.map +1 -1
  163. package/components/MenuList/MenuList.mjs.map +1 -1
  164. package/components/Modal/Modal.js.map +1 -1
  165. package/components/Modal/Modal.mjs.map +1 -1
  166. package/components/Modal/adapter.js.map +1 -1
  167. package/components/Modal/adapter.mjs.map +1 -1
  168. package/components/Modal/style.js +1 -1
  169. package/components/Modal/style.js.map +1 -1
  170. package/components/Modal/style.mjs +1 -1
  171. package/components/Modal/style.mjs.map +1 -1
  172. package/components/Notification/Notification.js +1 -1
  173. package/components/Notification/Notification.js.map +1 -1
  174. package/components/Notification/Notification.mjs +1 -1
  175. package/components/Notification/Notification.mjs.map +1 -1
  176. package/components/Paper/Paper.js.map +1 -1
  177. package/components/Paper/Paper.mjs.map +1 -1
  178. package/components/Paper/style.js.map +1 -1
  179. package/components/Paper/style.mjs.map +1 -1
  180. package/components/Popover/Popover.js.map +1 -1
  181. package/components/Popover/Popover.mjs.map +1 -1
  182. package/components/PopoverComponent/PopoverComponent.js +1 -1
  183. package/components/PopoverComponent/PopoverComponent.js.map +1 -1
  184. package/components/PopoverComponent/PopoverComponent.mjs +1 -1
  185. package/components/PopoverComponent/PopoverComponent.mjs.map +1 -1
  186. package/components/Progress/Progress.js.map +1 -1
  187. package/components/Progress/Progress.mjs.map +1 -1
  188. package/components/Progress/style.js +1 -1
  189. package/components/Progress/style.js.map +1 -1
  190. package/components/Progress/style.mjs +1 -1
  191. package/components/Progress/style.mjs.map +1 -1
  192. package/components/Progress.Circle/Progress.Circle.js +1 -1
  193. package/components/Progress.Circle/Progress.Circle.js.map +1 -1
  194. package/components/Progress.Circle/Progress.Circle.mjs +1 -1
  195. package/components/Progress.Circle/Progress.Circle.mjs.map +1 -1
  196. package/components/Progress.Circle/style.js +1 -1
  197. package/components/Progress.Circle/style.js.map +1 -1
  198. package/components/Progress.Circle/style.mjs +1 -1
  199. package/components/Progress.Circle/style.mjs.map +1 -1
  200. package/components/Progress.Segmented/Progress.Segmented.js.map +1 -1
  201. package/components/Progress.Segmented/Progress.Segmented.mjs.map +1 -1
  202. package/components/Progress.Segmented/style.js.map +1 -1
  203. package/components/Progress.Segmented/style.mjs.map +1 -1
  204. package/components/ProgressCircle/ProgressCircle.js +1 -1
  205. package/components/ProgressCircle/ProgressCircle.js.map +1 -1
  206. package/components/ProgressCircle/ProgressCircle.mjs +1 -1
  207. package/components/ProgressCircle/ProgressCircle.mjs.map +1 -1
  208. package/components/ProgressCircle/style.js +1 -1
  209. package/components/ProgressCircle/style.js.map +1 -1
  210. package/components/ProgressCircle/style.mjs +1 -1
  211. package/components/ProgressCircle/style.mjs.map +1 -1
  212. package/components/ProgressLine/ProgressLine.js +1 -1
  213. package/components/ProgressLine/ProgressLine.js.map +1 -1
  214. package/components/ProgressLine/ProgressLine.mjs +1 -1
  215. package/components/ProgressLine/ProgressLine.mjs.map +1 -1
  216. package/components/Radio/Group.js.map +1 -1
  217. package/components/Radio/Group.mjs.map +1 -1
  218. package/components/Radio/Radio.js +1 -1
  219. package/components/Radio/Radio.js.map +1 -1
  220. package/components/Radio/Radio.mjs +1 -1
  221. package/components/Radio/Radio.mjs.map +1 -1
  222. package/components/Radio/style.js.map +1 -1
  223. package/components/Radio/style.mjs.map +1 -1
  224. package/components/Scrollable/Scrollable.js +1 -1
  225. package/components/Scrollable/Scrollable.js.map +1 -1
  226. package/components/Scrollable/Scrollable.mjs +1 -1
  227. package/components/Scrollable/Scrollable.mjs.map +1 -1
  228. package/components/Section/Section.js.map +1 -1
  229. package/components/Section/Section.mjs.map +1 -1
  230. package/components/Section/style.js +1 -1
  231. package/components/Section/style.js.map +1 -1
  232. package/components/Section/style.mjs +1 -1
  233. package/components/Section/style.mjs.map +1 -1
  234. package/components/Select/Select.js.map +1 -1
  235. package/components/Select/Select.mjs.map +1 -1
  236. package/components/Select/style.js +1 -1
  237. package/components/Select/style.js.map +1 -1
  238. package/components/Select/style.mjs +1 -1
  239. package/components/Select/style.mjs.map +1 -1
  240. package/components/Separator/Separator.js.map +1 -1
  241. package/components/Separator/Separator.mjs.map +1 -1
  242. package/components/Separator/SeparatorText.js.map +1 -1
  243. package/components/Separator/SeparatorText.mjs.map +1 -1
  244. package/components/Separator/style.js +1 -1
  245. package/components/Separator/style.js.map +1 -1
  246. package/components/Separator/style.mjs +1 -1
  247. package/components/Separator/style.mjs.map +1 -1
  248. package/components/Spacer/Spacer.js.map +1 -1
  249. package/components/Spacer/Spacer.mjs.map +1 -1
  250. package/components/Spacer/style.js.map +1 -1
  251. package/components/Spacer/style.mjs.map +1 -1
  252. package/components/Spinner/Spinner.js.map +1 -1
  253. package/components/Spinner/Spinner.mjs.map +1 -1
  254. package/components/Spinner/style.js +1 -1
  255. package/components/Spinner/style.js.map +1 -1
  256. package/components/Spinner/style.mjs +1 -1
  257. package/components/Spinner/style.mjs.map +1 -1
  258. package/components/Switch/Switch.js.map +1 -1
  259. package/components/Switch/Switch.mjs.map +1 -1
  260. package/components/Switcher/style.js.map +1 -1
  261. package/components/Switcher/style.mjs.map +1 -1
  262. package/components/Tab/Tab.js +1 -1
  263. package/components/Tab/Tab.js.map +1 -1
  264. package/components/Tab/Tab.mjs +1 -1
  265. package/components/Tab/Tab.mjs.map +1 -1
  266. package/components/TabList/TabList.js +1 -1
  267. package/components/TabList/TabList.js.map +1 -1
  268. package/components/TabList/TabList.mjs +1 -1
  269. package/components/TabList/TabList.mjs.map +1 -1
  270. package/components/TabList/TabListMenuTab.js +1 -1
  271. package/components/TabList/TabListMenuTab.js.map +1 -1
  272. package/components/TabList/TabListMenuTab.mjs +1 -1
  273. package/components/TabList/TabListMenuTab.mjs.map +1 -1
  274. package/components/TabList/TabListPanel.js.map +1 -1
  275. package/components/TabList/TabListPanel.mjs.map +1 -1
  276. package/components/TabList/hooks.js +1 -1
  277. package/components/TabList/hooks.js.map +1 -1
  278. package/components/TabList/hooks.mjs +1 -1
  279. package/components/TabList/hooks.mjs.map +1 -1
  280. package/components/TabList/style.js +1 -1
  281. package/components/TabList/style.js.map +1 -1
  282. package/components/TabList/style.mjs +1 -1
  283. package/components/TabList/style.mjs.map +1 -1
  284. package/components/TabListTab/TabListTab.js.map +1 -1
  285. package/components/TabListTab/TabListTab.mjs.map +1 -1
  286. package/components/TabListTab/style.js +1 -1
  287. package/components/TabListTab/style.js.map +1 -1
  288. package/components/TabListTab/style.mjs +1 -1
  289. package/components/TabListTab/style.mjs.map +1 -1
  290. package/components/Tabs/Tabs.js.map +1 -1
  291. package/components/Tabs/Tabs.mjs.map +1 -1
  292. package/components/Tabs/style.js +1 -1
  293. package/components/Tabs/style.js.map +1 -1
  294. package/components/Tabs/style.mjs +1 -1
  295. package/components/Tabs/style.mjs.map +1 -1
  296. package/components/Tag/Tag.js +1 -1
  297. package/components/Tag/Tag.js.map +1 -1
  298. package/components/Tag/Tag.mjs +1 -1
  299. package/components/Tag/Tag.mjs.map +1 -1
  300. package/components/Tag/style.js +1 -1
  301. package/components/Tag/style.js.map +1 -1
  302. package/components/Tag/style.mjs +1 -1
  303. package/components/Tag/style.mjs.map +1 -1
  304. package/components/Text/Ellipsis.js +1 -1
  305. package/components/Text/Ellipsis.js.map +1 -1
  306. package/components/Text/Ellipsis.mjs +1 -1
  307. package/components/Text/Ellipsis.mjs.map +1 -1
  308. package/components/Text/Text.js.map +1 -1
  309. package/components/Text/Text.mjs.map +1 -1
  310. package/components/Text/style.js.map +1 -1
  311. package/components/Text/style.mjs.map +1 -1
  312. package/components/Text.Ellipse/Text.Ellipse.js +1 -1
  313. package/components/Text.Ellipse/Text.Ellipse.js.map +1 -1
  314. package/components/Text.Ellipse/Text.Ellipse.mjs +1 -1
  315. package/components/Text.Ellipse/Text.Ellipse.mjs.map +1 -1
  316. package/components/Textarea/Textarea.js +1 -1
  317. package/components/Textarea/Textarea.js.map +1 -1
  318. package/components/Textarea/Textarea.mjs +1 -1
  319. package/components/Textarea/Textarea.mjs.map +1 -1
  320. package/components/Tooltip/Tooltip.js.map +1 -1
  321. package/components/Tooltip/Tooltip.mjs.map +1 -1
  322. package/components/Tooltip/TooltipWrapper.js.map +1 -1
  323. package/components/Tooltip/TooltipWrapper.mjs.map +1 -1
  324. package/components/TooltipComponent/TooltipComponent.js +1 -1
  325. package/components/TooltipComponent/TooltipComponent.js.map +1 -1
  326. package/components/TooltipComponent/TooltipComponent.mjs +1 -1
  327. package/components/TooltipComponent/TooltipComponent.mjs.map +1 -1
  328. package/dts/index.d.ts +2630 -2557
  329. package/hocs/withMergedProps.js.map +1 -1
  330. package/hocs/withMergedProps.mjs.map +1 -1
  331. package/hocs/withTranslation.js +1 -1
  332. package/hocs/withTranslation.js.map +1 -1
  333. package/hocs/withTranslation.mjs +1 -1
  334. package/hocs/withTranslation.mjs.map +1 -1
  335. package/hooks/use-config-priority.js.map +1 -1
  336. package/hooks/use-config-priority.mjs +1 -1
  337. package/hooks/use-config-priority.mjs.map +1 -1
  338. package/hooks/useClickOutside.js.map +1 -1
  339. package/hooks/useClickOutside.mjs.map +1 -1
  340. package/hooks/useMergedPalette.js +1 -1
  341. package/hooks/useMergedPalette.js.map +1 -1
  342. package/hooks/useMergedPalette.mjs +1 -1
  343. package/hooks/useMergedPalette.mjs.map +1 -1
  344. package/hooks/useMergedProps.js.map +1 -1
  345. package/hooks/useMergedProps.mjs.map +1 -1
  346. package/hooks/useMergedSizes.js.map +1 -1
  347. package/hooks/useMergedSizes.mjs.map +1 -1
  348. package/hooks/useResizeObserver.js.map +1 -1
  349. package/hooks/useResizeObserver.mjs.map +1 -1
  350. package/hooks/useScrollMonitor.js +1 -1
  351. package/hooks/useScrollMonitor.js.map +1 -1
  352. package/hooks/useScrollMonitor.mjs +1 -1
  353. package/hooks/useScrollMonitor.mjs.map +1 -1
  354. package/hooks/useScrollThresholds.js.map +1 -1
  355. package/hooks/useScrollThresholds.mjs.map +1 -1
  356. package/mixins/color.js.map +1 -1
  357. package/mixins/color.mjs.map +1 -1
  358. package/mixins/create-responsive-props.js.map +1 -1
  359. package/mixins/create-responsive-props.mjs.map +1 -1
  360. package/mixins/display.js.map +1 -1
  361. package/mixins/display.mjs.map +1 -1
  362. package/mixins/responsive-margin.js.map +1 -1
  363. package/mixins/responsive-margin.mjs.map +1 -1
  364. package/mixins/responsive-property.js +1 -1
  365. package/mixins/responsive-property.js.map +1 -1
  366. package/mixins/responsive-property.mjs +1 -1
  367. package/mixins/responsive-property.mjs.map +1 -1
  368. package/mixins/screen.js +1 -1
  369. package/mixins/screen.js.map +1 -1
  370. package/mixins/screen.mjs +1 -1
  371. package/mixins/screen.mjs.map +1 -1
  372. package/mixins/shared.js +4 -4
  373. package/mixins/shared.js.map +1 -1
  374. package/mixins/shared.mjs +4 -4
  375. package/mixins/shared.mjs.map +1 -1
  376. package/mixins/vAlign.js.map +1 -1
  377. package/mixins/vAlign.mjs.map +1 -1
  378. package/package.json +7 -6
  379. package/shared/enums/sizeInput.js.map +1 -1
  380. package/shared/enums/sizeInput.mjs.map +1 -1
  381. package/shared/resize-observer.js.map +1 -1
  382. package/shared/resize-observer.mjs.map +1 -1
  383. package/shared/utils/colors.js.map +1 -1
  384. package/shared/utils/colors.mjs.map +1 -1
  385. package/shared/utils/dom.js.map +1 -1
  386. package/shared/utils/dom.mjs.map +1 -1
  387. package/shared/utils/react.js.map +1 -1
  388. package/shared/utils/react.mjs.map +1 -1
  389. package/shared/utils/rel-builder.js +1 -1
  390. package/shared/utils/rel-builder.js.map +1 -1
  391. package/shared/utils/rel-builder.mjs +1 -1
  392. package/shared/utils/rel-builder.mjs.map +1 -1
  393. package/theme/colors-dark.js.map +1 -1
  394. package/theme/colors-dark.mjs.map +1 -1
  395. package/theme/colors-light.js.map +1 -1
  396. package/theme/colors-light.mjs.map +1 -1
  397. package/theme/colors.js.map +1 -1
  398. package/theme/colors.mjs.map +1 -1
  399. package/theme/global-styled.js.map +1 -1
  400. package/theme/global-styled.mjs.map +1 -1
  401. package/theme/theme-provider.js.map +1 -1
  402. package/theme/theme-provider.mjs.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"withMergedProps.js","sources":["../../../src/hocs/withMergedProps.tsx"],"sourcesContent":["import { forwardRef, CSSProperties } from 'react'\nimport type { ThemePreset, Size, Color, CSSColor, ColorPaletteKey, KeysOfUnion, WithThemePreset } from 'shared/types'\nimport { useMergedProps } from 'hooks/useMergedProps'\nimport { useMergedSizes } from 'hooks/useMergedSizes'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\n\ntype WrappedComponentProps = {\n preset?: ThemePreset\n sizes?: Partial<Record<Size, CSSProperties>>\n palette?: Partial<Record<ColorPaletteKey, Color>>\n}\n\ntype MergedProps<T extends WrappedComponentProps> = Omit<T, 'preset' | 'sizes' | 'palette'> & {\n preset: ThemePreset\n sizes: Record<KeysOfUnion<T['sizes']>, CSSProperties>\n palette: Partial<Record<KeysOfUnion<T['palette']>, CSSColor>>\n}\n\ntype WithMergedPropsOptions<T extends WrappedComponentProps> = {\n displayName: string\n sizes:\n | Record<KeysOfUnion<T['sizes']>, CSSProperties>\n | ((props: WithThemePreset<T>) => Record<KeysOfUnion<T['sizes']>, CSSProperties>)\n}\n\nfunction withMergedProps<T extends WrappedComponentProps, R extends HTMLElement = HTMLElement>(\n WrappedComponent: React.FC<MergedProps<T>>,\n options: WithMergedPropsOptions<T>\n) {\n const WithMergedProps = forwardRef<R, T>((wrappedComponentProps, ref) => {\n const props = useMergedProps(wrappedComponentProps, options.displayName)\n const sizes = useMergedSizes(props, options.sizes)\n const palette = useMergedPalette(props)\n\n WrappedComponent.displayName = options.displayName\n\n return <WrappedComponent {...props} sizes={sizes} palette={palette} ref={ref} />\n })\n\n WithMergedProps.displayName = `WithMergedProps${options.displayName}`\n\n return WithMergedProps\n}\n\nexport { withMergedProps }\n"],"names":["WrappedComponent","options","WithMergedProps","forwardRef","wrappedComponentProps","ref","props","useMergedProps","displayName","sizes","useMergedSizes","palette","useMergedPalette","_jsx"],"mappings":"2RAyBA,CACEA,EACAC,KAEA,MAAMC,EAAkBC,MAAAA,YAAiB,CAACC,EAAuBC,KAC/D,MAAMC,EAAQC,eAAcA,eAACH,EAAuBH,EAAQO,aAC5D,MAAMC,EAAQC,eAAcA,eAACJ,EAAOL,EAAQQ,OAC5C,MAAME,EAAUC,kCAAiBN,GAIjC,OAFAN,EAAiBQ,YAAcP,EAAQO,YAEhCK,WAAAA,IAACb,EAAgB,IAAKM,EAAOG,MAAOA,EAAOE,QAASA,EAASN,IAAKA,GAAO,IAKlF,OAFAH,EAAgBM,YAAc,kBAAkBP,EAAQO,cAEjDN,CACT"}
1
+ {"version":3,"file":"withMergedProps.js","sources":["../../../src/hocs/withMergedProps.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport type { ThemePreset, Size, Color, CSSColor, ColorPaletteKey, KeysOfUnion, WithThemePreset } from 'shared/types'\nimport { useMergedProps } from 'hooks/useMergedProps'\nimport { useMergedSizes } from 'hooks/useMergedSizes'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\n\ntype WrappedComponentProps = {\n preset?: ThemePreset\n sizes?: Partial<Record<Size, React.CSSProperties>>\n palette?: Partial<Record<ColorPaletteKey, Color>>\n}\n\nexport type MergedProps<T extends WrappedComponentProps> = Omit<T, 'preset' | 'sizes' | 'palette'> & {\n preset: ThemePreset\n sizes: Record<KeysOfUnion<T['sizes']>, React.CSSProperties>\n palette: Partial<Record<KeysOfUnion<T['palette']>, CSSColor>>\n}\n\ntype WithMergedPropsOptions<T extends WrappedComponentProps> = {\n displayName: string\n sizes:\n | Record<KeysOfUnion<T['sizes']>, React.CSSProperties>\n | ((props: WithThemePreset<T>) => Record<KeysOfUnion<T['sizes']>, React.CSSProperties>)\n}\n\nfunction withMergedProps<T extends WrappedComponentProps, R extends HTMLElement = HTMLElement>(\n WrappedComponent: React.FC<MergedProps<T>>,\n options: WithMergedPropsOptions<T>\n) {\n const WithMergedProps = forwardRef<R, T>((wrappedComponentProps, ref) => {\n const props = useMergedProps(wrappedComponentProps, options.displayName)\n const sizes = useMergedSizes(props, options.sizes)\n const palette = useMergedPalette(props)\n\n WrappedComponent.displayName = options.displayName\n\n return <WrappedComponent {...props} sizes={sizes} palette={palette} ref={ref} />\n })\n\n WithMergedProps.displayName = `WithMergedProps${options.displayName}`\n\n return WithMergedProps\n}\n\nexport { withMergedProps }\n"],"names":["WrappedComponent","options","WithMergedProps","forwardRef","wrappedComponentProps","ref","props","useMergedProps","displayName","sizes","useMergedSizes","palette","useMergedPalette","_jsx"],"mappings":"2RAyBA,CACEA,EACAC,KAEA,MAAMC,EAAkBC,MAAAA,YAAiB,CAACC,EAAuBC,KAC/D,MAAMC,EAAQC,eAAcA,eAACH,EAAuBH,EAAQO,aAC5D,MAAMC,EAAQC,eAAcA,eAACJ,EAAOL,EAAQQ,OAC5C,MAAME,EAAUC,kCAAiBN,GAIjC,OAFAN,EAAiBQ,YAAcP,EAAQO,YAEhCK,WAAAA,IAACb,EAAgB,IAAKM,EAAOG,MAAOA,EAAOE,QAASA,EAASN,IAAKA,GAAO,IAKlF,OAFAH,EAAgBM,YAAc,kBAAkBP,EAAQO,cAEjDN,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"withMergedProps.mjs","sources":["../../../src/hocs/withMergedProps.tsx"],"sourcesContent":["import { forwardRef, CSSProperties } from 'react'\nimport type { ThemePreset, Size, Color, CSSColor, ColorPaletteKey, KeysOfUnion, WithThemePreset } from 'shared/types'\nimport { useMergedProps } from 'hooks/useMergedProps'\nimport { useMergedSizes } from 'hooks/useMergedSizes'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\n\ntype WrappedComponentProps = {\n preset?: ThemePreset\n sizes?: Partial<Record<Size, CSSProperties>>\n palette?: Partial<Record<ColorPaletteKey, Color>>\n}\n\ntype MergedProps<T extends WrappedComponentProps> = Omit<T, 'preset' | 'sizes' | 'palette'> & {\n preset: ThemePreset\n sizes: Record<KeysOfUnion<T['sizes']>, CSSProperties>\n palette: Partial<Record<KeysOfUnion<T['palette']>, CSSColor>>\n}\n\ntype WithMergedPropsOptions<T extends WrappedComponentProps> = {\n displayName: string\n sizes:\n | Record<KeysOfUnion<T['sizes']>, CSSProperties>\n | ((props: WithThemePreset<T>) => Record<KeysOfUnion<T['sizes']>, CSSProperties>)\n}\n\nfunction withMergedProps<T extends WrappedComponentProps, R extends HTMLElement = HTMLElement>(\n WrappedComponent: React.FC<MergedProps<T>>,\n options: WithMergedPropsOptions<T>\n) {\n const WithMergedProps = forwardRef<R, T>((wrappedComponentProps, ref) => {\n const props = useMergedProps(wrappedComponentProps, options.displayName)\n const sizes = useMergedSizes(props, options.sizes)\n const palette = useMergedPalette(props)\n\n WrappedComponent.displayName = options.displayName\n\n return <WrappedComponent {...props} sizes={sizes} palette={palette} ref={ref} />\n })\n\n WithMergedProps.displayName = `WithMergedProps${options.displayName}`\n\n return WithMergedProps\n}\n\nexport { withMergedProps }\n"],"names":["withMergedProps","WrappedComponent","options","WithMergedProps","forwardRef","wrappedComponentProps","ref","props","useMergedProps","displayName","sizes","useMergedSizes","palette","useMergedPalette","_jsx"],"mappings":"6OAyBA,SAASA,gBACPC,EACAC,GAEA,MAAMC,EAAkBC,YAAiB,CAACC,EAAuBC,KAC/D,MAAMC,EAAQC,eAAeH,EAAuBH,EAAQO,aAC5D,MAAMC,EAAQC,eAAeJ,EAAOL,EAAQQ,OAC5C,MAAME,EAAUC,iBAAiBN,GAIjC,OAFAN,EAAiBQ,YAAcP,EAAQO,YAEhCK,IAACb,EAAgB,IAAKM,EAAOG,MAAOA,EAAOE,QAASA,EAASN,IAAKA,GAAO,IAKlF,OAFAH,EAAgBM,YAAc,kBAAkBP,EAAQO,cAEjDN,CACT"}
1
+ {"version":3,"file":"withMergedProps.mjs","sources":["../../../src/hocs/withMergedProps.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport type { ThemePreset, Size, Color, CSSColor, ColorPaletteKey, KeysOfUnion, WithThemePreset } from 'shared/types'\nimport { useMergedProps } from 'hooks/useMergedProps'\nimport { useMergedSizes } from 'hooks/useMergedSizes'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\n\ntype WrappedComponentProps = {\n preset?: ThemePreset\n sizes?: Partial<Record<Size, React.CSSProperties>>\n palette?: Partial<Record<ColorPaletteKey, Color>>\n}\n\nexport type MergedProps<T extends WrappedComponentProps> = Omit<T, 'preset' | 'sizes' | 'palette'> & {\n preset: ThemePreset\n sizes: Record<KeysOfUnion<T['sizes']>, React.CSSProperties>\n palette: Partial<Record<KeysOfUnion<T['palette']>, CSSColor>>\n}\n\ntype WithMergedPropsOptions<T extends WrappedComponentProps> = {\n displayName: string\n sizes:\n | Record<KeysOfUnion<T['sizes']>, React.CSSProperties>\n | ((props: WithThemePreset<T>) => Record<KeysOfUnion<T['sizes']>, React.CSSProperties>)\n}\n\nfunction withMergedProps<T extends WrappedComponentProps, R extends HTMLElement = HTMLElement>(\n WrappedComponent: React.FC<MergedProps<T>>,\n options: WithMergedPropsOptions<T>\n) {\n const WithMergedProps = forwardRef<R, T>((wrappedComponentProps, ref) => {\n const props = useMergedProps(wrappedComponentProps, options.displayName)\n const sizes = useMergedSizes(props, options.sizes)\n const palette = useMergedPalette(props)\n\n WrappedComponent.displayName = options.displayName\n\n return <WrappedComponent {...props} sizes={sizes} palette={palette} ref={ref} />\n })\n\n WithMergedProps.displayName = `WithMergedProps${options.displayName}`\n\n return WithMergedProps\n}\n\nexport { withMergedProps }\n"],"names":["withMergedProps","WrappedComponent","options","WithMergedProps","forwardRef","wrappedComponentProps","ref","props","useMergedProps","displayName","sizes","useMergedSizes","palette","useMergedPalette","_jsx"],"mappings":"6OAyBA,SAASA,gBACPC,EACAC,GAEA,MAAMC,EAAkBC,YAAiB,CAACC,EAAuBC,KAC/D,MAAMC,EAAQC,eAAeH,EAAuBH,EAAQO,aAC5D,MAAMC,EAAQC,eAAeJ,EAAOL,EAAQQ,OAC5C,MAAME,EAAUC,iBAAiBN,GAIjC,OAFAN,EAAiBQ,YAAcP,EAAQO,YAEhCK,IAACb,EAAgB,IAAKM,EAAOG,MAAOA,EAAOE,QAASA,EAASN,IAAKA,GAAO,IAKlF,OAFAH,EAAgBM,YAAc,kBAAkBP,EAAQO,cAEjDN,CACT"}
@@ -1,2 +1,2 @@
1
- 'use strict';var React=require('react');var styled=require('styled-components');var constants=require('../shared/constants.js');var jsxRuntime=require('react/jsx-runtime');const ARROW_KEYS=[...constants.keyboardKeys.ArrowUp.key,...constants.keyboardKeys.ArrowRight.key,...constants.keyboardKeys.ArrowDown.key,...constants.keyboardKeys.ArrowLeft.key];const DraggingGlobals=styled.createGlobalStyle(["body *{cursor:grabbing !important;user-select:none !important;}"]);exports.withTranslation=function(e){return React.forwardRef(((t,r)=>{const n=React.useRef(null);React.useImperativeHandle(r,(()=>n.current),[]);const s=React.useRef({top:0,left:0,limit:{top:1/0,left:1/0},reset(){this.top=0,this.left=0,this.limit.top=1/0,this.limit.left=1/0},set(e){const t=e.getBoundingClientRect();this.top=t.top,this.left=t.left,this.limit.top=window.innerHeight-t.height,this.limit.left=window.innerWidth-t.width},get(e,t){return this[e]-=t,this[e]<0?this[e]=0:this[e]>this.limit[e]&&(this[e]=this.limit[e]),this[e]}});const o=React.useRef({x:0,y:0});const i=React.useRef(-1);const[c,a]=React.useState(!1);const[u,l]=React.useState(!1);const handleDragging=e=>{cancelAnimationFrame(i.current),i.current=requestAnimationFrame((()=>{if(n.current){const t=o.current.x-e.clientX;n.current.style.top=`${s.current.get('top',o.current.y-e.clientY)}px`,n.current.style.left=`${s.current.get('left',t)}px`,o.current.x=e.clientX,o.current.y=e.clientY}}))};const handleDragEnd=()=>{document.removeEventListener('pointermove',handleDragging),document.removeEventListener('pointerup',handleDragEnd),document.querySelectorAll('iframe').forEach((e=>{e.style.pointerEvents='auto'})),a(!1)};return React.useEffect((()=>{const handleResize=()=>{n.current&&(s.current.reset(),n.current.style.top='',n.current.style.left='',l(!1))};return c||window.addEventListener('resize',handleResize),()=>{window.removeEventListener('resize',handleResize)}}),[c]),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[c&&jsxRuntime.jsx(DraggingGlobals,{}),jsxRuntime.jsx(e,{...t,ref:n,dragging:c,translated:u,onGrab:e=>{n.current&&(s.current.set(n.current),o.current.x=e.clientX,o.current.y=e.clientY,n.current.style.top=`${s.current.get('top',0)}px`,n.current.style.left=`${s.current.get('left',0)}px`,document.querySelectorAll('iframe').forEach((e=>{e.style.pointerEvents='none'})),document.addEventListener('pointermove',handleDragging),document.addEventListener('pointerup',handleDragEnd),a(!0),l(!0))},onNudge:e=>{ARROW_KEYS.includes(e.key)&&(e.persist(),e.preventDefault(),cancelAnimationFrame(i.current),i.current=requestAnimationFrame((()=>{if(n.current){s.current.set(n.current);let t=s.current.get('top',0);let r=s.current.get('left',0);constants.keyboardKeys.ArrowUp.validate(e.key)?t=s.current.get('top',7):constants.keyboardKeys.ArrowDown.validate(e.key)?t=s.current.get('top',-7):constants.keyboardKeys.ArrowLeft.validate(e.key)?r=s.current.get('left',7):constants.keyboardKeys.ArrowRight.validate(e.key)&&(r=s.current.get('left',-7)),n.current.style.top=`${t}px`,n.current.style.left=`${r}px`,l(!0)}})))}})]})}))};
1
+ 'use strict';var React=require('react');var styled=require('styled-components');var constants=require('../shared/constants.js');var jsxRuntime=require('react/jsx-runtime');const ARROW_KEYS=[...constants.keyboardKeys.ArrowUp.key,...constants.keyboardKeys.ArrowRight.key,...constants.keyboardKeys.ArrowDown.key,...constants.keyboardKeys.ArrowLeft.key];const DraggingGlobals=styled.createGlobalStyle(["body *{cursor:grabbing !important;user-select:none !important;}"]);exports.withTranslation=function(e){return React.forwardRef(((t,r)=>{const n=React.useRef(null);React.useImperativeHandle(r,(()=>n.current),[]);const s=React.useRef({top:0,left:0,limit:{top:1/0,left:1/0},reset(){this.top=0,this.left=0,this.limit.top=1/0,this.limit.left=1/0},set(e){const t=e.getBoundingClientRect();this.top=t.top,this.left=t.left,this.limit.top=window.innerHeight-t.height,this.limit.left=window.innerWidth-t.width},get(e,t){return this[e]-=t,this[e]<0?this[e]=0:this[e]>this.limit[e]&&(this[e]=this.limit[e]),this[e]}});const o=React.useRef({x:0,y:0});const i=React.useRef(-1);const[c,a]=React.useState(!1);const[u,l]=React.useState(!1);const handleDragging=e=>{cancelAnimationFrame(i.current),i.current=requestAnimationFrame((()=>{if(n.current){const t=o.current.x-e.clientX;n.current.style.top=`${s.current.get('top',o.current.y-e.clientY)}px`,n.current.style.left=`${s.current.get('left',t)}px`,o.current.x=e.clientX,o.current.y=e.clientY}}))};const handleDragEnd=()=>{document.removeEventListener('pointermove',handleDragging),document.removeEventListener('pointerup',handleDragEnd),document.querySelectorAll('iframe').forEach((e=>{e.style.pointerEvents='auto'})),a(!1)};return React.useEffect((()=>{const handleResize=()=>{n.current&&(s.current.reset(),n.current.style.top='',n.current.style.left='',l(!1))};return c||window.addEventListener('resize',handleResize),()=>{window.removeEventListener('resize',handleResize)}}),[c]),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[c?jsxRuntime.jsx(DraggingGlobals,{}):null,jsxRuntime.jsx(e,{...t,ref:n,dragging:c,translated:u,onGrab:e=>{n.current&&(s.current.set(n.current),o.current.x=e.clientX,o.current.y=e.clientY,n.current.style.top=`${s.current.get('top',0)}px`,n.current.style.left=`${s.current.get('left',0)}px`,document.querySelectorAll('iframe').forEach((e=>{e.style.pointerEvents='none'})),document.addEventListener('pointermove',handleDragging),document.addEventListener('pointerup',handleDragEnd),a(!0),l(!0))},onNudge:e=>{ARROW_KEYS.includes(e.key)&&(e.persist(),e.preventDefault(),cancelAnimationFrame(i.current),i.current=requestAnimationFrame((()=>{if(n.current){s.current.set(n.current);let t=s.current.get('top',0);let r=s.current.get('left',0);constants.keyboardKeys.ArrowUp.validate(e.key)?t=s.current.get('top',7):constants.keyboardKeys.ArrowDown.validate(e.key)?t=s.current.get('top',-7):constants.keyboardKeys.ArrowLeft.validate(e.key)?r=s.current.get('left',7):constants.keyboardKeys.ArrowRight.validate(e.key)&&(r=s.current.get('left',-7)),n.current.style.top=`${t}px`,n.current.style.left=`${r}px`,l(!0)}})))}})]})}))};
2
2
  //# sourceMappingURL=withTranslation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"withTranslation.js","sources":["../../../src/hocs/withTranslation.tsx"],"sourcesContent":["import { useState, forwardRef, useRef, useImperativeHandle, useEffect } from 'react'\nimport { createGlobalStyle } from 'styled-components'\nimport { keyboardKeys } from 'shared/constants'\n\ntype InjectedTranslationProps<T extends HTMLElement, P> = P & {\n ref?: React.Ref<T>\n dragging: boolean\n translated: boolean\n onGrab: React.PointerEventHandler<T>\n onNudge: React.KeyboardEventHandler<T>\n}\n\nconst ARROW_KEYS: string[] = [\n ...keyboardKeys.ArrowUp.key,\n ...keyboardKeys.ArrowRight.key,\n ...keyboardKeys.ArrowDown.key,\n ...keyboardKeys.ArrowLeft.key,\n]\n\nconst DraggingGlobals = createGlobalStyle`\n body * {\n cursor: grabbing !important; \n user-select: none !important;\n }\n`\n\nfunction withTranslation<T extends HTMLElement, P>(Component: React.FC<InjectedTranslationProps<T, P>>) {\n const WithTranslation = forwardRef<T, P>((props, forwardedRef) => {\n const root = useRef<T | null>(null)\n\n useImperativeHandle<T | null, T | null>(forwardedRef, () => root.current, [])\n\n const position = useRef({\n top: 0,\n left: 0,\n limit: {\n top: Infinity,\n left: Infinity,\n },\n reset() {\n this.top = 0\n this.left = 0\n this.limit.top = Infinity\n this.limit.left = Infinity\n },\n set(e: T) {\n const rect = e.getBoundingClientRect()\n\n this.top = rect.top\n this.left = rect.left\n\n this.limit.top = window.innerHeight - rect.height\n this.limit.left = window.innerWidth - rect.width\n },\n get(pos: 'top' | 'left', delta: number) {\n this[pos] -= delta\n\n if (this[pos] < 0) {\n this[pos] = 0\n } else if (this[pos] > this.limit[pos]) {\n this[pos] = this.limit[pos]\n }\n\n return this[pos]\n },\n })\n\n const pointer = useRef({ x: 0, y: 0 })\n\n const animationId = useRef(-1)\n\n const [dragging, setDragging] = useState(false)\n const [translated, setTranslated] = useState(false)\n\n const handleDragging = (evt: PointerEvent) => {\n cancelAnimationFrame(animationId.current)\n animationId.current = requestAnimationFrame(() => {\n if (root.current) {\n const deltaX = pointer.current.x - evt.clientX\n const deltaY = pointer.current.y - evt.clientY\n\n root.current.style.top = `${position.current.get('top', deltaY)}px`\n root.current.style.left = `${position.current.get('left', deltaX)}px`\n\n pointer.current.x = evt.clientX\n pointer.current.y = evt.clientY\n }\n })\n }\n\n const handleDragEnd = () => {\n document.removeEventListener('pointermove', handleDragging)\n document.removeEventListener('pointerup', handleDragEnd)\n\n document.querySelectorAll('iframe').forEach((iframe) => {\n iframe.style.pointerEvents = 'auto'\n })\n\n setDragging(false)\n }\n\n const handleDragStart: React.PointerEventHandler<T> = (evt) => {\n if (!root.current) return\n\n position.current.set(root.current)\n\n pointer.current.x = evt.clientX\n pointer.current.y = evt.clientY\n\n root.current.style.top = `${position.current.get('top', 0)}px`\n root.current.style.left = `${position.current.get('left', 0)}px`\n\n document.querySelectorAll('iframe').forEach((iframe) => {\n iframe.style.pointerEvents = 'none'\n })\n\n document.addEventListener('pointermove', handleDragging)\n document.addEventListener('pointerup', handleDragEnd)\n\n setDragging(true)\n setTranslated(true)\n }\n\n const handleNudge: React.KeyboardEventHandler<T> = (evt) => {\n if (ARROW_KEYS.includes(evt.key)) {\n evt.persist()\n evt.preventDefault()\n\n cancelAnimationFrame(animationId.current)\n animationId.current = requestAnimationFrame(() => {\n if (root.current) {\n position.current.set(root.current)\n\n let top = position.current.get('top', 0)\n let left = position.current.get('left', 0)\n\n if (keyboardKeys.ArrowUp.validate(evt.key)) {\n top = position.current.get('top', 7)\n } else if (keyboardKeys.ArrowDown.validate(evt.key)) {\n top = position.current.get('top', -7)\n } else if (keyboardKeys.ArrowLeft.validate(evt.key)) {\n left = position.current.get('left', 7)\n } else if (keyboardKeys.ArrowRight.validate(evt.key)) {\n left = position.current.get('left', -7)\n }\n\n root.current.style.top = `${top}px`\n root.current.style.left = `${left}px`\n\n setTranslated(true)\n }\n })\n }\n }\n\n useEffect(() => {\n const handleResize = () => {\n if (root.current) {\n position.current.reset()\n\n root.current.style.top = ''\n root.current.style.left = ''\n\n setTranslated(false)\n }\n }\n\n if (!dragging) {\n window.addEventListener('resize', handleResize)\n }\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [dragging])\n\n return (\n <>\n {dragging && <DraggingGlobals />}\n <Component\n {...props}\n ref={root}\n dragging={dragging}\n translated={translated}\n onGrab={handleDragStart}\n onNudge={handleNudge}\n />\n </>\n )\n })\n\n return WithTranslation\n}\n\nexport { withTranslation }\n"],"names":["ARROW_KEYS","keyboardKeys","ArrowUp","key","ArrowRight","ArrowDown","ArrowLeft","DraggingGlobals","createGlobalStyle","Component","forwardRef","props","forwardedRef","root","useRef","useImperativeHandle","current","position","top","left","limit","Infinity","reset","this","set","e","rect","getBoundingClientRect","window","innerHeight","height","innerWidth","width","get","pos","delta","pointer","x","y","animationId","dragging","setDragging","useState","translated","setTranslated","handleDragging","evt","cancelAnimationFrame","requestAnimationFrame","deltaX","clientX","style","clientY","handleDragEnd","document","removeEventListener","querySelectorAll","forEach","iframe","pointerEvents","useEffect","handleResize","addEventListener","_jsxs","_Fragment","children","_jsx","jsx","ref","onGrab","onNudge","includes","persist","preventDefault","validate"],"mappings":"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"}
1
+ {"version":3,"file":"withTranslation.js","sources":["../../../src/hocs/withTranslation.tsx"],"sourcesContent":["import { useState, forwardRef, useRef, useImperativeHandle, useEffect } from 'react'\nimport { createGlobalStyle } from 'styled-components'\nimport { keyboardKeys } from 'shared/constants'\n\nexport type InjectedTranslationProps<T extends HTMLElement, P> = P & {\n ref?: React.Ref<T>\n dragging: boolean\n translated: boolean\n onGrab: React.PointerEventHandler<T>\n onNudge: React.KeyboardEventHandler<T>\n}\n\nconst ARROW_KEYS: string[] = [\n ...keyboardKeys.ArrowUp.key,\n ...keyboardKeys.ArrowRight.key,\n ...keyboardKeys.ArrowDown.key,\n ...keyboardKeys.ArrowLeft.key,\n]\n\nconst DraggingGlobals = createGlobalStyle`\n body * {\n cursor: grabbing !important; \n user-select: none !important;\n }\n`\n\nfunction withTranslation<T extends HTMLElement, P>(Component: React.FC<InjectedTranslationProps<T, P>>) {\n const WithTranslation = forwardRef<T, P>((props, forwardedRef) => {\n const root = useRef<T | null>(null)\n\n useImperativeHandle<T | null, T | null>(forwardedRef, () => root.current, [])\n\n const position = useRef({\n top: 0,\n left: 0,\n limit: {\n top: Infinity,\n left: Infinity,\n },\n reset() {\n this.top = 0\n this.left = 0\n this.limit.top = Infinity\n this.limit.left = Infinity\n },\n set(e: T) {\n const rect = e.getBoundingClientRect()\n\n this.top = rect.top\n this.left = rect.left\n\n this.limit.top = window.innerHeight - rect.height\n this.limit.left = window.innerWidth - rect.width\n },\n get(pos: 'top' | 'left', delta: number) {\n this[pos] -= delta\n\n if (this[pos] < 0) {\n this[pos] = 0\n } else if (this[pos] > this.limit[pos]) {\n this[pos] = this.limit[pos]\n }\n\n return this[pos]\n },\n })\n\n const pointer = useRef({ x: 0, y: 0 })\n\n const animationId = useRef(-1)\n\n const [dragging, setDragging] = useState(false)\n const [translated, setTranslated] = useState(false)\n\n const handleDragging = (evt: PointerEvent) => {\n cancelAnimationFrame(animationId.current)\n animationId.current = requestAnimationFrame(() => {\n if (root.current) {\n const deltaX = pointer.current.x - evt.clientX\n const deltaY = pointer.current.y - evt.clientY\n\n root.current.style.top = `${position.current.get('top', deltaY)}px`\n root.current.style.left = `${position.current.get('left', deltaX)}px`\n\n pointer.current.x = evt.clientX\n pointer.current.y = evt.clientY\n }\n })\n }\n\n const handleDragEnd = () => {\n document.removeEventListener('pointermove', handleDragging)\n document.removeEventListener('pointerup', handleDragEnd)\n\n document.querySelectorAll('iframe').forEach((iframe) => {\n iframe.style.pointerEvents = 'auto'\n })\n\n setDragging(false)\n }\n\n const handleDragStart: React.PointerEventHandler<T> = (evt) => {\n if (!root.current) return\n\n position.current.set(root.current)\n\n pointer.current.x = evt.clientX\n pointer.current.y = evt.clientY\n\n root.current.style.top = `${position.current.get('top', 0)}px`\n root.current.style.left = `${position.current.get('left', 0)}px`\n\n document.querySelectorAll('iframe').forEach((iframe) => {\n iframe.style.pointerEvents = 'none'\n })\n\n document.addEventListener('pointermove', handleDragging)\n document.addEventListener('pointerup', handleDragEnd)\n\n setDragging(true)\n setTranslated(true)\n }\n\n const handleNudge: React.KeyboardEventHandler<T> = (evt) => {\n if (ARROW_KEYS.includes(evt.key)) {\n evt.persist()\n evt.preventDefault()\n\n cancelAnimationFrame(animationId.current)\n animationId.current = requestAnimationFrame(() => {\n if (root.current) {\n position.current.set(root.current)\n\n let top = position.current.get('top', 0)\n let left = position.current.get('left', 0)\n\n if (keyboardKeys.ArrowUp.validate(evt.key)) {\n top = position.current.get('top', 7)\n } else if (keyboardKeys.ArrowDown.validate(evt.key)) {\n top = position.current.get('top', -7)\n } else if (keyboardKeys.ArrowLeft.validate(evt.key)) {\n left = position.current.get('left', 7)\n } else if (keyboardKeys.ArrowRight.validate(evt.key)) {\n left = position.current.get('left', -7)\n }\n\n root.current.style.top = `${top}px`\n root.current.style.left = `${left}px`\n\n setTranslated(true)\n }\n })\n }\n }\n\n useEffect(() => {\n const handleResize = () => {\n if (root.current) {\n position.current.reset()\n\n root.current.style.top = ''\n root.current.style.left = ''\n\n setTranslated(false)\n }\n }\n\n if (!dragging) {\n window.addEventListener('resize', handleResize)\n }\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [dragging])\n\n return (\n <>\n {dragging ? <DraggingGlobals /> : null}\n <Component\n {...props}\n ref={root}\n dragging={dragging}\n translated={translated}\n onGrab={handleDragStart}\n onNudge={handleNudge}\n />\n </>\n )\n })\n\n return WithTranslation\n}\n\nexport { withTranslation }\n"],"names":["ARROW_KEYS","keyboardKeys","ArrowUp","key","ArrowRight","ArrowDown","ArrowLeft","DraggingGlobals","createGlobalStyle","Component","forwardRef","props","forwardedRef","root","useRef","useImperativeHandle","current","position","top","left","limit","Infinity","reset","this","set","e","rect","getBoundingClientRect","window","innerHeight","height","innerWidth","width","get","pos","delta","pointer","x","y","animationId","dragging","setDragging","useState","translated","setTranslated","handleDragging","evt","cancelAnimationFrame","requestAnimationFrame","deltaX","clientX","style","clientY","handleDragEnd","document","removeEventListener","querySelectorAll","forEach","iframe","pointerEvents","useEffect","handleResize","addEventListener","_jsxs","_Fragment","children","_jsx","jsx","ref","onGrab","onNudge","includes","persist","preventDefault","validate"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{forwardRef,useRef,useImperativeHandle,useState,useEffect}from'react';import{createGlobalStyle}from'styled-components';import{keyboardKeys}from'../shared/constants.mjs';import{jsxs,Fragment,jsx}from'react/jsx-runtime';const ARROW_KEYS=[...keyboardKeys.ArrowUp.key,...keyboardKeys.ArrowRight.key,...keyboardKeys.ArrowDown.key,...keyboardKeys.ArrowLeft.key];const DraggingGlobals=createGlobalStyle(["body *{cursor:grabbing !important;user-select:none !important;}"]);function withTranslation(e){return forwardRef(((t,r)=>{const n=useRef(null);useImperativeHandle(r,(()=>n.current),[]);const o=useRef({top:0,left:0,limit:{top:1/0,left:1/0},reset(){this.top=0,this.left=0,this.limit.top=1/0,this.limit.left=1/0},set(e){const t=e.getBoundingClientRect();this.top=t.top,this.left=t.left,this.limit.top=window.innerHeight-t.height,this.limit.left=window.innerWidth-t.width},get(e,t){return this[e]-=t,this[e]<0?this[e]=0:this[e]>this.limit[e]&&(this[e]=this.limit[e]),this[e]}});const s=useRef({x:0,y:0});const i=useRef(-1);const[c,l]=useState(!1);const[u,a]=useState(!1);const handleDragging=e=>{cancelAnimationFrame(i.current),i.current=requestAnimationFrame((()=>{if(n.current){const t=s.current.x-e.clientX;n.current.style.top=`${o.current.get('top',s.current.y-e.clientY)}px`,n.current.style.left=`${o.current.get('left',t)}px`,s.current.x=e.clientX,s.current.y=e.clientY}}))};const handleDragEnd=()=>{document.removeEventListener('pointermove',handleDragging),document.removeEventListener('pointerup',handleDragEnd),document.querySelectorAll('iframe').forEach((e=>{e.style.pointerEvents='auto'})),l(!1)};return useEffect((()=>{const handleResize=()=>{n.current&&(o.current.reset(),n.current.style.top='',n.current.style.left='',a(!1))};return c||window.addEventListener('resize',handleResize),()=>{window.removeEventListener('resize',handleResize)}}),[c]),jsxs(Fragment,{children:[c&&jsx(DraggingGlobals,{}),jsx(e,{...t,ref:n,dragging:c,translated:u,onGrab:e=>{n.current&&(o.current.set(n.current),s.current.x=e.clientX,s.current.y=e.clientY,n.current.style.top=`${o.current.get('top',0)}px`,n.current.style.left=`${o.current.get('left',0)}px`,document.querySelectorAll('iframe').forEach((e=>{e.style.pointerEvents='none'})),document.addEventListener('pointermove',handleDragging),document.addEventListener('pointerup',handleDragEnd),l(!0),a(!0))},onNudge:e=>{ARROW_KEYS.includes(e.key)&&(e.persist(),e.preventDefault(),cancelAnimationFrame(i.current),i.current=requestAnimationFrame((()=>{if(n.current){o.current.set(n.current);let t=o.current.get('top',0);let r=o.current.get('left',0);keyboardKeys.ArrowUp.validate(e.key)?t=o.current.get('top',7):keyboardKeys.ArrowDown.validate(e.key)?t=o.current.get('top',-7):keyboardKeys.ArrowLeft.validate(e.key)?r=o.current.get('left',7):keyboardKeys.ArrowRight.validate(e.key)&&(r=o.current.get('left',-7)),n.current.style.top=`${t}px`,n.current.style.left=`${r}px`,a(!0)}})))}})]})}))}export{withTranslation};
1
+ import{forwardRef,useRef,useImperativeHandle,useState,useEffect}from'react';import{createGlobalStyle}from'styled-components';import{keyboardKeys}from'../shared/constants.mjs';import{jsxs,Fragment,jsx}from'react/jsx-runtime';const ARROW_KEYS=[...keyboardKeys.ArrowUp.key,...keyboardKeys.ArrowRight.key,...keyboardKeys.ArrowDown.key,...keyboardKeys.ArrowLeft.key];const DraggingGlobals=createGlobalStyle(["body *{cursor:grabbing !important;user-select:none !important;}"]);function withTranslation(e){return forwardRef(((t,r)=>{const n=useRef(null);useImperativeHandle(r,(()=>n.current),[]);const o=useRef({top:0,left:0,limit:{top:1/0,left:1/0},reset(){this.top=0,this.left=0,this.limit.top=1/0,this.limit.left=1/0},set(e){const t=e.getBoundingClientRect();this.top=t.top,this.left=t.left,this.limit.top=window.innerHeight-t.height,this.limit.left=window.innerWidth-t.width},get(e,t){return this[e]-=t,this[e]<0?this[e]=0:this[e]>this.limit[e]&&(this[e]=this.limit[e]),this[e]}});const s=useRef({x:0,y:0});const i=useRef(-1);const[c,l]=useState(!1);const[u,a]=useState(!1);const handleDragging=e=>{cancelAnimationFrame(i.current),i.current=requestAnimationFrame((()=>{if(n.current){const t=s.current.x-e.clientX;n.current.style.top=`${o.current.get('top',s.current.y-e.clientY)}px`,n.current.style.left=`${o.current.get('left',t)}px`,s.current.x=e.clientX,s.current.y=e.clientY}}))};const handleDragEnd=()=>{document.removeEventListener('pointermove',handleDragging),document.removeEventListener('pointerup',handleDragEnd),document.querySelectorAll('iframe').forEach((e=>{e.style.pointerEvents='auto'})),l(!1)};return useEffect((()=>{const handleResize=()=>{n.current&&(o.current.reset(),n.current.style.top='',n.current.style.left='',a(!1))};return c||window.addEventListener('resize',handleResize),()=>{window.removeEventListener('resize',handleResize)}}),[c]),jsxs(Fragment,{children:[c?jsx(DraggingGlobals,{}):null,jsx(e,{...t,ref:n,dragging:c,translated:u,onGrab:e=>{n.current&&(o.current.set(n.current),s.current.x=e.clientX,s.current.y=e.clientY,n.current.style.top=`${o.current.get('top',0)}px`,n.current.style.left=`${o.current.get('left',0)}px`,document.querySelectorAll('iframe').forEach((e=>{e.style.pointerEvents='none'})),document.addEventListener('pointermove',handleDragging),document.addEventListener('pointerup',handleDragEnd),l(!0),a(!0))},onNudge:e=>{ARROW_KEYS.includes(e.key)&&(e.persist(),e.preventDefault(),cancelAnimationFrame(i.current),i.current=requestAnimationFrame((()=>{if(n.current){o.current.set(n.current);let t=o.current.get('top',0);let r=o.current.get('left',0);keyboardKeys.ArrowUp.validate(e.key)?t=o.current.get('top',7):keyboardKeys.ArrowDown.validate(e.key)?t=o.current.get('top',-7):keyboardKeys.ArrowLeft.validate(e.key)?r=o.current.get('left',7):keyboardKeys.ArrowRight.validate(e.key)&&(r=o.current.get('left',-7)),n.current.style.top=`${t}px`,n.current.style.left=`${r}px`,a(!0)}})))}})]})}))}export{withTranslation};
2
2
  //# sourceMappingURL=withTranslation.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"withTranslation.mjs","sources":["../../../src/hocs/withTranslation.tsx"],"sourcesContent":["import { useState, forwardRef, useRef, useImperativeHandle, useEffect } from 'react'\nimport { createGlobalStyle } from 'styled-components'\nimport { keyboardKeys } from 'shared/constants'\n\ntype InjectedTranslationProps<T extends HTMLElement, P> = P & {\n ref?: React.Ref<T>\n dragging: boolean\n translated: boolean\n onGrab: React.PointerEventHandler<T>\n onNudge: React.KeyboardEventHandler<T>\n}\n\nconst ARROW_KEYS: string[] = [\n ...keyboardKeys.ArrowUp.key,\n ...keyboardKeys.ArrowRight.key,\n ...keyboardKeys.ArrowDown.key,\n ...keyboardKeys.ArrowLeft.key,\n]\n\nconst DraggingGlobals = createGlobalStyle`\n body * {\n cursor: grabbing !important; \n user-select: none !important;\n }\n`\n\nfunction withTranslation<T extends HTMLElement, P>(Component: React.FC<InjectedTranslationProps<T, P>>) {\n const WithTranslation = forwardRef<T, P>((props, forwardedRef) => {\n const root = useRef<T | null>(null)\n\n useImperativeHandle<T | null, T | null>(forwardedRef, () => root.current, [])\n\n const position = useRef({\n top: 0,\n left: 0,\n limit: {\n top: Infinity,\n left: Infinity,\n },\n reset() {\n this.top = 0\n this.left = 0\n this.limit.top = Infinity\n this.limit.left = Infinity\n },\n set(e: T) {\n const rect = e.getBoundingClientRect()\n\n this.top = rect.top\n this.left = rect.left\n\n this.limit.top = window.innerHeight - rect.height\n this.limit.left = window.innerWidth - rect.width\n },\n get(pos: 'top' | 'left', delta: number) {\n this[pos] -= delta\n\n if (this[pos] < 0) {\n this[pos] = 0\n } else if (this[pos] > this.limit[pos]) {\n this[pos] = this.limit[pos]\n }\n\n return this[pos]\n },\n })\n\n const pointer = useRef({ x: 0, y: 0 })\n\n const animationId = useRef(-1)\n\n const [dragging, setDragging] = useState(false)\n const [translated, setTranslated] = useState(false)\n\n const handleDragging = (evt: PointerEvent) => {\n cancelAnimationFrame(animationId.current)\n animationId.current = requestAnimationFrame(() => {\n if (root.current) {\n const deltaX = pointer.current.x - evt.clientX\n const deltaY = pointer.current.y - evt.clientY\n\n root.current.style.top = `${position.current.get('top', deltaY)}px`\n root.current.style.left = `${position.current.get('left', deltaX)}px`\n\n pointer.current.x = evt.clientX\n pointer.current.y = evt.clientY\n }\n })\n }\n\n const handleDragEnd = () => {\n document.removeEventListener('pointermove', handleDragging)\n document.removeEventListener('pointerup', handleDragEnd)\n\n document.querySelectorAll('iframe').forEach((iframe) => {\n iframe.style.pointerEvents = 'auto'\n })\n\n setDragging(false)\n }\n\n const handleDragStart: React.PointerEventHandler<T> = (evt) => {\n if (!root.current) return\n\n position.current.set(root.current)\n\n pointer.current.x = evt.clientX\n pointer.current.y = evt.clientY\n\n root.current.style.top = `${position.current.get('top', 0)}px`\n root.current.style.left = `${position.current.get('left', 0)}px`\n\n document.querySelectorAll('iframe').forEach((iframe) => {\n iframe.style.pointerEvents = 'none'\n })\n\n document.addEventListener('pointermove', handleDragging)\n document.addEventListener('pointerup', handleDragEnd)\n\n setDragging(true)\n setTranslated(true)\n }\n\n const handleNudge: React.KeyboardEventHandler<T> = (evt) => {\n if (ARROW_KEYS.includes(evt.key)) {\n evt.persist()\n evt.preventDefault()\n\n cancelAnimationFrame(animationId.current)\n animationId.current = requestAnimationFrame(() => {\n if (root.current) {\n position.current.set(root.current)\n\n let top = position.current.get('top', 0)\n let left = position.current.get('left', 0)\n\n if (keyboardKeys.ArrowUp.validate(evt.key)) {\n top = position.current.get('top', 7)\n } else if (keyboardKeys.ArrowDown.validate(evt.key)) {\n top = position.current.get('top', -7)\n } else if (keyboardKeys.ArrowLeft.validate(evt.key)) {\n left = position.current.get('left', 7)\n } else if (keyboardKeys.ArrowRight.validate(evt.key)) {\n left = position.current.get('left', -7)\n }\n\n root.current.style.top = `${top}px`\n root.current.style.left = `${left}px`\n\n setTranslated(true)\n }\n })\n }\n }\n\n useEffect(() => {\n const handleResize = () => {\n if (root.current) {\n position.current.reset()\n\n root.current.style.top = ''\n root.current.style.left = ''\n\n setTranslated(false)\n }\n }\n\n if (!dragging) {\n window.addEventListener('resize', handleResize)\n }\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [dragging])\n\n return (\n <>\n {dragging && <DraggingGlobals />}\n <Component\n {...props}\n ref={root}\n dragging={dragging}\n translated={translated}\n onGrab={handleDragStart}\n onNudge={handleNudge}\n />\n </>\n )\n })\n\n return WithTranslation\n}\n\nexport { withTranslation }\n"],"names":["ARROW_KEYS","keyboardKeys","ArrowUp","key","ArrowRight","ArrowDown","ArrowLeft","DraggingGlobals","createGlobalStyle","withTranslation","Component","forwardRef","props","forwardedRef","root","useRef","useImperativeHandle","current","position","top","left","limit","Infinity","reset","this","set","e","rect","getBoundingClientRect","window","innerHeight","height","innerWidth","width","get","pos","delta","pointer","x","y","animationId","dragging","setDragging","useState","translated","setTranslated","handleDragging","evt","cancelAnimationFrame","requestAnimationFrame","deltaX","clientX","style","clientY","handleDragEnd","document","removeEventListener","querySelectorAll","forEach","iframe","pointerEvents","useEffect","handleResize","addEventListener","_jsxs","_Fragment","children","_jsx","ref","onGrab","onNudge","includes","persist","preventDefault","validate"],"mappings":"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"}
1
+ {"version":3,"file":"withTranslation.mjs","sources":["../../../src/hocs/withTranslation.tsx"],"sourcesContent":["import { useState, forwardRef, useRef, useImperativeHandle, useEffect } from 'react'\nimport { createGlobalStyle } from 'styled-components'\nimport { keyboardKeys } from 'shared/constants'\n\nexport type InjectedTranslationProps<T extends HTMLElement, P> = P & {\n ref?: React.Ref<T>\n dragging: boolean\n translated: boolean\n onGrab: React.PointerEventHandler<T>\n onNudge: React.KeyboardEventHandler<T>\n}\n\nconst ARROW_KEYS: string[] = [\n ...keyboardKeys.ArrowUp.key,\n ...keyboardKeys.ArrowRight.key,\n ...keyboardKeys.ArrowDown.key,\n ...keyboardKeys.ArrowLeft.key,\n]\n\nconst DraggingGlobals = createGlobalStyle`\n body * {\n cursor: grabbing !important; \n user-select: none !important;\n }\n`\n\nfunction withTranslation<T extends HTMLElement, P>(Component: React.FC<InjectedTranslationProps<T, P>>) {\n const WithTranslation = forwardRef<T, P>((props, forwardedRef) => {\n const root = useRef<T | null>(null)\n\n useImperativeHandle<T | null, T | null>(forwardedRef, () => root.current, [])\n\n const position = useRef({\n top: 0,\n left: 0,\n limit: {\n top: Infinity,\n left: Infinity,\n },\n reset() {\n this.top = 0\n this.left = 0\n this.limit.top = Infinity\n this.limit.left = Infinity\n },\n set(e: T) {\n const rect = e.getBoundingClientRect()\n\n this.top = rect.top\n this.left = rect.left\n\n this.limit.top = window.innerHeight - rect.height\n this.limit.left = window.innerWidth - rect.width\n },\n get(pos: 'top' | 'left', delta: number) {\n this[pos] -= delta\n\n if (this[pos] < 0) {\n this[pos] = 0\n } else if (this[pos] > this.limit[pos]) {\n this[pos] = this.limit[pos]\n }\n\n return this[pos]\n },\n })\n\n const pointer = useRef({ x: 0, y: 0 })\n\n const animationId = useRef(-1)\n\n const [dragging, setDragging] = useState(false)\n const [translated, setTranslated] = useState(false)\n\n const handleDragging = (evt: PointerEvent) => {\n cancelAnimationFrame(animationId.current)\n animationId.current = requestAnimationFrame(() => {\n if (root.current) {\n const deltaX = pointer.current.x - evt.clientX\n const deltaY = pointer.current.y - evt.clientY\n\n root.current.style.top = `${position.current.get('top', deltaY)}px`\n root.current.style.left = `${position.current.get('left', deltaX)}px`\n\n pointer.current.x = evt.clientX\n pointer.current.y = evt.clientY\n }\n })\n }\n\n const handleDragEnd = () => {\n document.removeEventListener('pointermove', handleDragging)\n document.removeEventListener('pointerup', handleDragEnd)\n\n document.querySelectorAll('iframe').forEach((iframe) => {\n iframe.style.pointerEvents = 'auto'\n })\n\n setDragging(false)\n }\n\n const handleDragStart: React.PointerEventHandler<T> = (evt) => {\n if (!root.current) return\n\n position.current.set(root.current)\n\n pointer.current.x = evt.clientX\n pointer.current.y = evt.clientY\n\n root.current.style.top = `${position.current.get('top', 0)}px`\n root.current.style.left = `${position.current.get('left', 0)}px`\n\n document.querySelectorAll('iframe').forEach((iframe) => {\n iframe.style.pointerEvents = 'none'\n })\n\n document.addEventListener('pointermove', handleDragging)\n document.addEventListener('pointerup', handleDragEnd)\n\n setDragging(true)\n setTranslated(true)\n }\n\n const handleNudge: React.KeyboardEventHandler<T> = (evt) => {\n if (ARROW_KEYS.includes(evt.key)) {\n evt.persist()\n evt.preventDefault()\n\n cancelAnimationFrame(animationId.current)\n animationId.current = requestAnimationFrame(() => {\n if (root.current) {\n position.current.set(root.current)\n\n let top = position.current.get('top', 0)\n let left = position.current.get('left', 0)\n\n if (keyboardKeys.ArrowUp.validate(evt.key)) {\n top = position.current.get('top', 7)\n } else if (keyboardKeys.ArrowDown.validate(evt.key)) {\n top = position.current.get('top', -7)\n } else if (keyboardKeys.ArrowLeft.validate(evt.key)) {\n left = position.current.get('left', 7)\n } else if (keyboardKeys.ArrowRight.validate(evt.key)) {\n left = position.current.get('left', -7)\n }\n\n root.current.style.top = `${top}px`\n root.current.style.left = `${left}px`\n\n setTranslated(true)\n }\n })\n }\n }\n\n useEffect(() => {\n const handleResize = () => {\n if (root.current) {\n position.current.reset()\n\n root.current.style.top = ''\n root.current.style.left = ''\n\n setTranslated(false)\n }\n }\n\n if (!dragging) {\n window.addEventListener('resize', handleResize)\n }\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [dragging])\n\n return (\n <>\n {dragging ? <DraggingGlobals /> : null}\n <Component\n {...props}\n ref={root}\n dragging={dragging}\n translated={translated}\n onGrab={handleDragStart}\n onNudge={handleNudge}\n />\n </>\n )\n })\n\n return WithTranslation\n}\n\nexport { withTranslation }\n"],"names":["ARROW_KEYS","keyboardKeys","ArrowUp","key","ArrowRight","ArrowDown","ArrowLeft","DraggingGlobals","createGlobalStyle","withTranslation","Component","forwardRef","props","forwardedRef","root","useRef","useImperativeHandle","current","position","top","left","limit","Infinity","reset","this","set","e","rect","getBoundingClientRect","window","innerHeight","height","innerWidth","width","get","pos","delta","pointer","x","y","animationId","dragging","setDragging","useState","translated","setTranslated","handleDragging","evt","cancelAnimationFrame","requestAnimationFrame","deltaX","clientX","style","clientY","handleDragEnd","document","removeEventListener","querySelectorAll","forEach","iframe","pointerEvents","useEffect","handleResize","addEventListener","_jsxs","_Fragment","children","_jsx","ref","onGrab","onNudge","includes","persist","preventDefault","validate"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-config-priority.js","sources":["../../../src/hooks/use-config-priority.ts"],"sourcesContent":["import { useMemo } from 'react'\n\n/**\n *\n * @deprecated it will be deleted in near future\n */\nexport function useConfigPriority<T extends object>(minor?: Partial<T>, major?: Partial<T>): Partial<T> {\n return useMemo(() => {\n const minorConfig = minor ?? {}\n const majorConfig = major ?? {}\n const uniqueKeys = [...new Set([...Object.keys(minorConfig), ...Object.keys(majorConfig)])]\n\n return uniqueKeys.reduce((prioritized, key) => {\n let finalVal\n\n if (valid(minorConfig[key])) finalVal = minorConfig[key]\n if (valid(majorConfig[key])) finalVal = majorConfig[key]\n\n return valid(finalVal) ? { ...prioritized, [key]: finalVal } : prioritized\n }, {} as Partial<T>)\n }, [minor, major])\n}\n\nfunction valid(value: unknown): boolean {\n return Boolean(value) || typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string'\n}\n"],"names":["valid","value","Boolean","minor","major","useMemo","minorConfig","majorConfig","Set","Object","keys","reduce","prioritized","key","finalVal"],"mappings":"wCAuBA,SAASA,MAAMC,GACb,OAAOC,QAAQD,WAAiBA,GAAU,kBAAoBA,GAAU,iBAAmBA,GAAU,QACvG,2BAnBO,CAA6CE,EAAoBC,IAC/DC,MAAOA,SAAC,KACb,MAAMC,EAAcH,GAAS,GAC7B,MAAMI,EAAcH,GAAS,GAG7B,MAFmB,IAAI,IAAII,IAAI,IAAIC,OAAOC,KAAKJ,MAAiBG,OAAOC,KAAKH,MAE1DI,QAAO,CAACC,EAAaC,KACrC,IAAIC,EAKJ,OAHId,MAAMM,EAAYO,MAAOC,EAAWR,EAAYO,IAChDb,MAAMO,EAAYM,MAAOC,EAAWP,EAAYM,IAE7Cb,MAAMc,GAAY,IAAKF,EAAaC,CAACA,GAAMC,GAAaF,CAAW,GACzE,CAAgB,EAAC,GACnB,CAACT,EAAOC"}
1
+ {"version":3,"file":"use-config-priority.js","sources":["../../../src/hooks/use-config-priority.ts"],"sourcesContent":["import { useMemo } from 'react'\n\nfunction valid(value: unknown): boolean {\n return Boolean(value) || typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string'\n}\n\n/**\n *\n * @deprecated it will be deleted in near future\n */\nexport function useConfigPriority<T extends object>(minor?: Partial<T>, major?: Partial<T>): Partial<T> {\n return useMemo(() => {\n const minorConfig: Partial<T> = minor ?? {}\n const majorConfig: Partial<T> = major ?? {}\n const uniqueKeys = [...new Set([...Object.keys(minorConfig), ...Object.keys(majorConfig)])]\n\n return uniqueKeys.reduce((prioritized, key) => {\n let finalVal\n\n if (valid(minorConfig[key as keyof T])) finalVal = minorConfig[key as keyof T]\n if (valid(majorConfig[key as keyof T])) finalVal = majorConfig[key as keyof T]\n\n return valid(finalVal) ? { ...prioritized, [key]: finalVal } : prioritized\n }, {} as Partial<T>)\n }, [minor, major])\n}\n"],"names":["valid","value","Boolean","minor","major","useMemo","minorConfig","majorConfig","Set","Object","keys","reduce","prioritized","key","finalVal"],"mappings":"wCAEA,SAASA,MAAMC,GACb,OAAOC,QAAQD,WAAiBA,GAAU,kBAAoBA,GAAU,iBAAmBA,GAAU,QACvG,2BAMO,CAA6CE,EAAoBC,IAC/DC,MAAOA,SAAC,KACb,MAAMC,EAA0BH,GAAS,GACzC,MAAMI,EAA0BH,GAAS,GAGzC,MAFmB,IAAI,IAAII,IAAI,IAAIC,OAAOC,KAAKJ,MAAiBG,OAAOC,KAAKH,MAE1DI,QAAO,CAACC,EAAaC,KACrC,IAAIC,EAKJ,OAHId,MAAMM,EAAYO,MAAkBC,EAAWR,EAAYO,IAC3Db,MAAMO,EAAYM,MAAkBC,EAAWP,EAAYM,IAExDb,MAAMc,GAAY,IAAKF,EAAaC,CAACA,GAAMC,GAAaF,CAAW,GACzE,CAAgB,EAAC,GACnB,CAACT,EAAOC"}
@@ -1,2 +1,2 @@
1
- import{useMemo}from'react';function useConfigPriority(e,t){return useMemo((()=>{const o=e??{};const r=t??{};return[...new Set([...Object.keys(o),...Object.keys(r)])].reduce(((e,t)=>{let n;return valid(o[t])&&(n=o[t]),valid(r[t])&&(n=r[t]),valid(n)?{...e,[t]:n}:e}),{})}),[e,t])}function valid(e){return Boolean(e)||typeof e=='boolean'||typeof e=='number'||typeof e=='string'}export{useConfigPriority};
1
+ import{useMemo}from'react';function valid(e){return Boolean(e)||typeof e=='boolean'||typeof e=='number'||typeof e=='string'}function useConfigPriority(e,t){return useMemo((()=>{const o=e??{};const r=t??{};return[...new Set([...Object.keys(o),...Object.keys(r)])].reduce(((e,t)=>{let n;return valid(o[t])&&(n=o[t]),valid(r[t])&&(n=r[t]),valid(n)?{...e,[t]:n}:e}),{})}),[e,t])}export{useConfigPriority};
2
2
  //# sourceMappingURL=use-config-priority.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-config-priority.mjs","sources":["../../../src/hooks/use-config-priority.ts"],"sourcesContent":["import { useMemo } from 'react'\n\n/**\n *\n * @deprecated it will be deleted in near future\n */\nexport function useConfigPriority<T extends object>(minor?: Partial<T>, major?: Partial<T>): Partial<T> {\n return useMemo(() => {\n const minorConfig = minor ?? {}\n const majorConfig = major ?? {}\n const uniqueKeys = [...new Set([...Object.keys(minorConfig), ...Object.keys(majorConfig)])]\n\n return uniqueKeys.reduce((prioritized, key) => {\n let finalVal\n\n if (valid(minorConfig[key])) finalVal = minorConfig[key]\n if (valid(majorConfig[key])) finalVal = majorConfig[key]\n\n return valid(finalVal) ? { ...prioritized, [key]: finalVal } : prioritized\n }, {} as Partial<T>)\n }, [minor, major])\n}\n\nfunction valid(value: unknown): boolean {\n return Boolean(value) || typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string'\n}\n"],"names":["useConfigPriority","minor","major","useMemo","minorConfig","majorConfig","Set","Object","keys","reduce","prioritized","key","finalVal","valid","value","Boolean"],"mappings":"2BAMO,SAASA,kBAAoCC,EAAoBC,GACtE,OAAOC,SAAQ,KACb,MAAMC,EAAcH,GAAS,GAC7B,MAAMI,EAAcH,GAAS,GAG7B,MAFmB,IAAI,IAAII,IAAI,IAAIC,OAAOC,KAAKJ,MAAiBG,OAAOC,KAAKH,MAE1DI,QAAO,CAACC,EAAaC,KACrC,IAAIC,EAKJ,OAHIC,MAAMT,EAAYO,MAAOC,EAAWR,EAAYO,IAChDE,MAAMR,EAAYM,MAAOC,EAAWP,EAAYM,IAE7CE,MAAMD,GAAY,IAAKF,EAAaC,CAACA,GAAMC,GAAaF,CAAW,GACzE,CAAgB,EAAC,GACnB,CAACT,EAAOC,GACb,CAEA,SAASW,MAAMC,GACb,OAAOC,QAAQD,WAAiBA,GAAU,kBAAoBA,GAAU,iBAAmBA,GAAU,QACvG"}
1
+ {"version":3,"file":"use-config-priority.mjs","sources":["../../../src/hooks/use-config-priority.ts"],"sourcesContent":["import { useMemo } from 'react'\n\nfunction valid(value: unknown): boolean {\n return Boolean(value) || typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string'\n}\n\n/**\n *\n * @deprecated it will be deleted in near future\n */\nexport function useConfigPriority<T extends object>(minor?: Partial<T>, major?: Partial<T>): Partial<T> {\n return useMemo(() => {\n const minorConfig: Partial<T> = minor ?? {}\n const majorConfig: Partial<T> = major ?? {}\n const uniqueKeys = [...new Set([...Object.keys(minorConfig), ...Object.keys(majorConfig)])]\n\n return uniqueKeys.reduce((prioritized, key) => {\n let finalVal\n\n if (valid(minorConfig[key as keyof T])) finalVal = minorConfig[key as keyof T]\n if (valid(majorConfig[key as keyof T])) finalVal = majorConfig[key as keyof T]\n\n return valid(finalVal) ? { ...prioritized, [key]: finalVal } : prioritized\n }, {} as Partial<T>)\n }, [minor, major])\n}\n"],"names":["valid","value","Boolean","useConfigPriority","minor","major","useMemo","minorConfig","majorConfig","Set","Object","keys","reduce","prioritized","key","finalVal"],"mappings":"2BAEA,SAASA,MAAMC,GACb,OAAOC,QAAQD,WAAiBA,GAAU,kBAAoBA,GAAU,iBAAmBA,GAAU,QACvG,CAMO,SAASE,kBAAoCC,EAAoBC,GACtE,OAAOC,SAAQ,KACb,MAAMC,EAA0BH,GAAS,GACzC,MAAMI,EAA0BH,GAAS,GAGzC,MAFmB,IAAI,IAAII,IAAI,IAAIC,OAAOC,KAAKJ,MAAiBG,OAAOC,KAAKH,MAE1DI,QAAO,CAACC,EAAaC,KACrC,IAAIC,EAKJ,OAHIf,MAAMO,EAAYO,MAAkBC,EAAWR,EAAYO,IAC3Dd,MAAMQ,EAAYM,MAAkBC,EAAWP,EAAYM,IAExDd,MAAMe,GAAY,IAAKF,EAAaC,CAACA,GAAMC,GAAaF,CAAW,GACzE,CAAgB,EAAC,GACnB,CAACT,EAAOC,GACb"}
@@ -1 +1 @@
1
- {"version":3,"file":"useClickOutside.js","sources":["../../../src/hooks/useClickOutside.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { getDomTargets } from 'shared/utils/dom'\nimport type { DomTarget } from 'shared/types'\n\nexport const useClickOutside = (\n target: DomTarget | DomTarget[],\n callback: (evt: MouseEvent) => void,\n options?: {\n enabled?: boolean\n event?: 'click' | 'mousedown'\n once?: boolean\n passive?: boolean\n signal?: AbortSignal\n capture?: boolean\n }\n) => {\n const { enabled = true, event = 'click', once, passive, signal, capture } = options ?? {}\n\n useEffect(() => {\n const listenerOptions = { once, passive, signal, capture }\n\n const listener = (evt: MouseEvent) => {\n const domTargets = getDomTargets(target)\n\n const evtTarget = evt.target as Node\n\n if (\n evtTarget &&\n evtTarget.isConnected &&\n domTargets.length > 0 &&\n domTargets.every((target) => !target.contains(evtTarget))\n ) {\n callback(evt)\n }\n }\n\n if (enabled) {\n document.addEventListener(event, listener, listenerOptions)\n }\n\n return () => {\n document.removeEventListener(event, listener, listenerOptions)\n }\n }, [target, callback, enabled, event, once, passive, signal, capture])\n}\n"],"names":["useClickOutside","target","callback","options","enabled","event","once","passive","signal","capture","useEffect","listenerOptions","listener","evt","domTargets","getDomTargets","evtTarget","isConnected","length","every","contains","document","addEventListener","removeEventListener"],"mappings":"0GAI+BA,CAC7BC,EACAC,EACAC,KASA,MAAMC,QAAEA,GAAU,EAAIC,MAAEA,EAAQ,QAAOC,KAAEA,EAAIC,QAAEA,EAAOC,OAAEA,EAAMC,QAAEA,GAAYN,GAAW,CAAA,EAEvFO,MAAAA,WAAU,KACR,MAAMC,EAAkB,CAAEL,OAAMC,UAASC,SAAQC,WAEjD,MAAMG,SAAYC,IAChB,MAAMC,EAAaC,kBAAcd,GAEjC,MAAMe,EAAYH,EAAIZ,OAGpBe,GACAA,EAAUC,aACVH,EAAWI,OAAS,GACpBJ,EAAWK,OAAOlB,IAAYA,EAAOmB,SAASJ,MAE9Cd,EAASW,EACX,EAOF,OAJIT,GACFiB,SAASC,iBAAiBjB,EAAOO,SAAUD,GAGtC,KACLU,SAASE,oBAAoBlB,EAAOO,SAAUD,EAAgB,CAC/D,GACA,CAACV,EAAQC,EAAUE,EAASC,EAAOC,EAAMC,EAASC,EAAQC,GAAS"}
1
+ {"version":3,"file":"useClickOutside.js","sources":["../../../src/hooks/useClickOutside.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { getDomTargets } from 'shared/utils/dom'\nimport type { DomTarget } from 'shared/types'\n\nexport const useClickOutside = (\n target: DomTarget | DomTarget[],\n callback: (evt: MouseEvent) => void,\n options?: {\n enabled?: boolean\n event?: 'click' | 'mousedown'\n once?: boolean\n passive?: boolean\n signal?: AbortSignal\n capture?: boolean\n }\n) => {\n const { enabled = true, event = 'click', once, passive, signal, capture } = options ?? {}\n\n useEffect(() => {\n const listenerOptions = { once, passive, signal, capture }\n\n const listener = (evt: MouseEvent) => {\n const domTargets = getDomTargets(target)\n\n const evtTarget = evt.target as Node\n\n if (\n evtTarget &&\n evtTarget.isConnected &&\n domTargets.length > 0 &&\n domTargets.every((item) => !item.contains(evtTarget))\n ) {\n callback(evt)\n }\n }\n\n if (enabled) {\n document.addEventListener(event, listener, listenerOptions)\n }\n\n return () => {\n document.removeEventListener(event, listener, listenerOptions)\n }\n }, [target, callback, enabled, event, once, passive, signal, capture])\n}\n"],"names":["useClickOutside","target","callback","options","enabled","event","once","passive","signal","capture","useEffect","listenerOptions","listener","evt","domTargets","getDomTargets","evtTarget","isConnected","length","every","item","contains","document","addEventListener","removeEventListener"],"mappings":"0GAI+BA,CAC7BC,EACAC,EACAC,KASA,MAAMC,QAAEA,GAAU,EAAIC,MAAEA,EAAQ,QAAOC,KAAEA,EAAIC,QAAEA,EAAOC,OAAEA,EAAMC,QAAEA,GAAYN,GAAW,CAAA,EAEvFO,MAAAA,WAAU,KACR,MAAMC,EAAkB,CAAEL,OAAMC,UAASC,SAAQC,WAEjD,MAAMG,SAAYC,IAChB,MAAMC,EAAaC,kBAAcd,GAEjC,MAAMe,EAAYH,EAAIZ,OAGpBe,GACAA,EAAUC,aACVH,EAAWI,OAAS,GACpBJ,EAAWK,OAAOC,IAAUA,EAAKC,SAASL,MAE1Cd,EAASW,EACX,EAOF,OAJIT,GACFkB,SAASC,iBAAiBlB,EAAOO,SAAUD,GAGtC,KACLW,SAASE,oBAAoBnB,EAAOO,SAAUD,EAAgB,CAC/D,GACA,CAACV,EAAQC,EAAUE,EAASC,EAAOC,EAAMC,EAASC,EAAQC,GAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"useClickOutside.mjs","sources":["../../../src/hooks/useClickOutside.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { getDomTargets } from 'shared/utils/dom'\nimport type { DomTarget } from 'shared/types'\n\nexport const useClickOutside = (\n target: DomTarget | DomTarget[],\n callback: (evt: MouseEvent) => void,\n options?: {\n enabled?: boolean\n event?: 'click' | 'mousedown'\n once?: boolean\n passive?: boolean\n signal?: AbortSignal\n capture?: boolean\n }\n) => {\n const { enabled = true, event = 'click', once, passive, signal, capture } = options ?? {}\n\n useEffect(() => {\n const listenerOptions = { once, passive, signal, capture }\n\n const listener = (evt: MouseEvent) => {\n const domTargets = getDomTargets(target)\n\n const evtTarget = evt.target as Node\n\n if (\n evtTarget &&\n evtTarget.isConnected &&\n domTargets.length > 0 &&\n domTargets.every((target) => !target.contains(evtTarget))\n ) {\n callback(evt)\n }\n }\n\n if (enabled) {\n document.addEventListener(event, listener, listenerOptions)\n }\n\n return () => {\n document.removeEventListener(event, listener, listenerOptions)\n }\n }, [target, callback, enabled, event, once, passive, signal, capture])\n}\n"],"names":["useClickOutside","target","callback","options","enabled","event","once","passive","signal","capture","useEffect","listenerOptions","listener","evt","domTargets","getDomTargets","evtTarget","isConnected","length","every","contains","document","addEventListener","removeEventListener"],"mappings":"gFAIO,MAAMA,gBAAkBA,CAC7BC,EACAC,EACAC,KASA,MAAMC,QAAEA,GAAU,EAAIC,MAAEA,EAAQ,QAAOC,KAAEA,EAAIC,QAAEA,EAAOC,OAAEA,EAAMC,QAAEA,GAAYN,GAAW,CAAA,EAEvFO,WAAU,KACR,MAAMC,EAAkB,CAAEL,OAAMC,UAASC,SAAQC,WAEjD,MAAMG,SAAYC,IAChB,MAAMC,EAAaC,cAAcd,GAEjC,MAAMe,EAAYH,EAAIZ,OAGpBe,GACAA,EAAUC,aACVH,EAAWI,OAAS,GACpBJ,EAAWK,OAAOlB,IAAYA,EAAOmB,SAASJ,MAE9Cd,EAASW,EACX,EAOF,OAJIT,GACFiB,SAASC,iBAAiBjB,EAAOO,SAAUD,GAGtC,KACLU,SAASE,oBAAoBlB,EAAOO,SAAUD,EAAgB,CAC/D,GACA,CAACV,EAAQC,EAAUE,EAASC,EAAOC,EAAMC,EAASC,EAAQC,GAAS"}
1
+ {"version":3,"file":"useClickOutside.mjs","sources":["../../../src/hooks/useClickOutside.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { getDomTargets } from 'shared/utils/dom'\nimport type { DomTarget } from 'shared/types'\n\nexport const useClickOutside = (\n target: DomTarget | DomTarget[],\n callback: (evt: MouseEvent) => void,\n options?: {\n enabled?: boolean\n event?: 'click' | 'mousedown'\n once?: boolean\n passive?: boolean\n signal?: AbortSignal\n capture?: boolean\n }\n) => {\n const { enabled = true, event = 'click', once, passive, signal, capture } = options ?? {}\n\n useEffect(() => {\n const listenerOptions = { once, passive, signal, capture }\n\n const listener = (evt: MouseEvent) => {\n const domTargets = getDomTargets(target)\n\n const evtTarget = evt.target as Node\n\n if (\n evtTarget &&\n evtTarget.isConnected &&\n domTargets.length > 0 &&\n domTargets.every((item) => !item.contains(evtTarget))\n ) {\n callback(evt)\n }\n }\n\n if (enabled) {\n document.addEventListener(event, listener, listenerOptions)\n }\n\n return () => {\n document.removeEventListener(event, listener, listenerOptions)\n }\n }, [target, callback, enabled, event, once, passive, signal, capture])\n}\n"],"names":["useClickOutside","target","callback","options","enabled","event","once","passive","signal","capture","useEffect","listenerOptions","listener","evt","domTargets","getDomTargets","evtTarget","isConnected","length","every","item","contains","document","addEventListener","removeEventListener"],"mappings":"gFAIO,MAAMA,gBAAkBA,CAC7BC,EACAC,EACAC,KASA,MAAMC,QAAEA,GAAU,EAAIC,MAAEA,EAAQ,QAAOC,KAAEA,EAAIC,QAAEA,EAAOC,OAAEA,EAAMC,QAAEA,GAAYN,GAAW,CAAA,EAEvFO,WAAU,KACR,MAAMC,EAAkB,CAAEL,OAAMC,UAASC,SAAQC,WAEjD,MAAMG,SAAYC,IAChB,MAAMC,EAAaC,cAAcd,GAEjC,MAAMe,EAAYH,EAAIZ,OAGpBe,GACAA,EAAUC,aACVH,EAAWI,OAAS,GACpBJ,EAAWK,OAAOC,IAAUA,EAAKC,SAASL,MAE1Cd,EAASW,EACX,EAOF,OAJIT,GACFkB,SAASC,iBAAiBlB,EAAOO,SAAUD,GAGtC,KACLW,SAASE,oBAAoBnB,EAAOO,SAAUD,EAAgB,CAC/D,GACA,CAACV,EAAQC,EAAUE,EAASC,EAAOC,EAAMC,EAASC,EAAQC,GAAS"}
@@ -1,2 +1,2 @@
1
- 'use strict';var styled=require('styled-components');exports.useMergedPalette=e=>{const t=styled.useTheme();const s=e.palette??{};return Object.keys(s).reduce(((e,r)=>{const c=t.colors[s[r]]??s[r];return c&&(e[r]=c),e}),{})};
1
+ 'use strict';var styled=require('styled-components');exports.useMergedPalette=e=>{const t=styled.useTheme();const s=e.palette??{};return Object.keys(s).reduce(((e,r)=>{const c=s[r];if(!c)return e;const n=t.colors[c]??c;return n&&(e[r]=n),e}),{})};
2
2
  //# sourceMappingURL=useMergedPalette.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMergedPalette.js","sources":["../../../src/hooks/useMergedPalette.ts"],"sourcesContent":["import { useTheme } from 'styled-components'\nimport type { ColorPaletteKey, Color, CSSColor, KeysOfUnion } from 'shared/types'\n\nexport function useMergedPalette<\n T extends {\n palette?: Partial<Record<ColorPaletteKey, Color>>\n }\n>(componentProps: T): Partial<Record<KeysOfUnion<T['palette']>, CSSColor>> {\n const theme = useTheme()\n\n const palette = componentProps.palette ?? {}\n\n return Object.keys(palette).reduce<Partial<Record<KeysOfUnion<T['palette']>, CSSColor>>>((injected, key) => {\n const cssColor = theme.colors[palette[key]] ?? palette[key]\n\n if (cssColor) {\n injected[key] = cssColor\n }\n\n return injected\n }, {})\n}\n"],"names":["componentProps","theme","useTheme","palette","Object","keys","reduce","injected","key","cssColor","colors"],"mappings":"8EAOEA,IACA,MAAMC,EAAQC,OAAAA,WAEd,MAAMC,EAAUH,EAAeG,SAAW,GAE1C,OAAOC,OAAOC,KAAKF,GAASG,QAA6D,CAACC,EAAUC,KAClG,MAAMC,EAAWR,EAAMS,OAAOP,EAAQK,KAASL,EAAQK,GAMvD,OAJIC,IACFF,EAASC,GAAOC,GAGXF,CAAQ,GACd,CAAE,EACP"}
1
+ {"version":3,"file":"useMergedPalette.js","sources":["../../../src/hooks/useMergedPalette.ts"],"sourcesContent":["import { useTheme } from 'styled-components'\nimport type { ColorPaletteKey, Color, CSSColor, KeysOfUnion } from 'shared/types'\n\nexport function useMergedPalette<\n T extends {\n palette?: Partial<Record<ColorPaletteKey, Color>>\n },\n>(componentProps: T): Partial<Record<KeysOfUnion<T['palette']>, CSSColor>> {\n const theme = useTheme()\n\n const palette = componentProps.palette ?? {}\n\n return Object.keys(palette).reduce<Partial<Record<KeysOfUnion<T['palette']>, CSSColor>>>((injected, key) => {\n const colorKeyOrValue = palette[key as ColorPaletteKey]\n\n if (!colorKeyOrValue) {\n return injected\n }\n\n const cssColor = theme.colors[colorKeyOrValue as keyof typeof theme.colors] ?? colorKeyOrValue\n\n if (cssColor) {\n injected[key as KeysOfUnion<T['palette']>] = cssColor\n }\n\n return injected\n }, {})\n}\n"],"names":["componentProps","theme","useTheme","palette","Object","keys","reduce","injected","key","colorKeyOrValue","cssColor","colors"],"mappings":"8EAOEA,IACA,MAAMC,EAAQC,OAAAA,WAEd,MAAMC,EAAUH,EAAeG,SAAW,GAE1C,OAAOC,OAAOC,KAAKF,GAASG,QAA6D,CAACC,EAAUC,KAClG,MAAMC,EAAkBN,EAAQK,GAEhC,IAAKC,EACH,OAAOF,EAGT,MAAMG,EAAWT,EAAMU,OAAOF,IAAiDA,EAM/E,OAJIC,IACFH,EAASC,GAAoCE,GAGxCH,CAAQ,GACd,CAAE,EACP"}
@@ -1,2 +1,2 @@
1
- import{useTheme}from'styled-components';function useMergedPalette(e){const t=useTheme();const o=e.palette??{};return Object.keys(o).reduce(((e,r)=>{const s=t.colors[o[r]]??o[r];return s&&(e[r]=s),e}),{})}export{useMergedPalette};
1
+ import{useTheme}from'styled-components';function useMergedPalette(e){const t=useTheme();const r=e.palette??{};return Object.keys(r).reduce(((e,o)=>{const s=r[o];if(!s)return e;const n=t.colors[s]??s;return n&&(e[o]=n),e}),{})}export{useMergedPalette};
2
2
  //# sourceMappingURL=useMergedPalette.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMergedPalette.mjs","sources":["../../../src/hooks/useMergedPalette.ts"],"sourcesContent":["import { useTheme } from 'styled-components'\nimport type { ColorPaletteKey, Color, CSSColor, KeysOfUnion } from 'shared/types'\n\nexport function useMergedPalette<\n T extends {\n palette?: Partial<Record<ColorPaletteKey, Color>>\n }\n>(componentProps: T): Partial<Record<KeysOfUnion<T['palette']>, CSSColor>> {\n const theme = useTheme()\n\n const palette = componentProps.palette ?? {}\n\n return Object.keys(palette).reduce<Partial<Record<KeysOfUnion<T['palette']>, CSSColor>>>((injected, key) => {\n const cssColor = theme.colors[palette[key]] ?? palette[key]\n\n if (cssColor) {\n injected[key] = cssColor\n }\n\n return injected\n }, {})\n}\n"],"names":["useMergedPalette","componentProps","theme","useTheme","palette","Object","keys","reduce","injected","key","cssColor","colors"],"mappings":"wCAGO,SAASA,iBAIdC,GACA,MAAMC,EAAQC,WAEd,MAAMC,EAAUH,EAAeG,SAAW,GAE1C,OAAOC,OAAOC,KAAKF,GAASG,QAA6D,CAACC,EAAUC,KAClG,MAAMC,EAAWR,EAAMS,OAAOP,EAAQK,KAASL,EAAQK,GAMvD,OAJIC,IACFF,EAASC,GAAOC,GAGXF,CAAQ,GACd,CAAE,EACP"}
1
+ {"version":3,"file":"useMergedPalette.mjs","sources":["../../../src/hooks/useMergedPalette.ts"],"sourcesContent":["import { useTheme } from 'styled-components'\nimport type { ColorPaletteKey, Color, CSSColor, KeysOfUnion } from 'shared/types'\n\nexport function useMergedPalette<\n T extends {\n palette?: Partial<Record<ColorPaletteKey, Color>>\n },\n>(componentProps: T): Partial<Record<KeysOfUnion<T['palette']>, CSSColor>> {\n const theme = useTheme()\n\n const palette = componentProps.palette ?? {}\n\n return Object.keys(palette).reduce<Partial<Record<KeysOfUnion<T['palette']>, CSSColor>>>((injected, key) => {\n const colorKeyOrValue = palette[key as ColorPaletteKey]\n\n if (!colorKeyOrValue) {\n return injected\n }\n\n const cssColor = theme.colors[colorKeyOrValue as keyof typeof theme.colors] ?? colorKeyOrValue\n\n if (cssColor) {\n injected[key as KeysOfUnion<T['palette']>] = cssColor\n }\n\n return injected\n }, {})\n}\n"],"names":["useMergedPalette","componentProps","theme","useTheme","palette","Object","keys","reduce","injected","key","colorKeyOrValue","cssColor","colors"],"mappings":"wCAGO,SAASA,iBAIdC,GACA,MAAMC,EAAQC,WAEd,MAAMC,EAAUH,EAAeG,SAAW,GAE1C,OAAOC,OAAOC,KAAKF,GAASG,QAA6D,CAACC,EAAUC,KAClG,MAAMC,EAAkBN,EAAQK,GAEhC,IAAKC,EACH,OAAOF,EAGT,MAAMG,EAAWT,EAAMU,OAAOF,IAAiDA,EAM/E,OAJIC,IACFH,EAASC,GAAoCE,GAGxCH,CAAQ,GACd,CAAE,EACP"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMergedProps.js","sources":["../../../src/hooks/useMergedProps.ts"],"sourcesContent":["import { useTheme } from 'styled-components'\nimport { deepmerge } from 'shared/utils/misc'\nimport type { ThemePreset, WithThemePreset } from 'shared/types'\n\nexport function useMergedProps<\n T extends {\n preset?: ThemePreset\n }\n>(componentProps: T, componentName: string): WithThemePreset<T> {\n const theme = useTheme()\n\n const context = theme.components ?? {}\n const contextProps: T = context[componentName] ?? {}\n const mergedProps = deepmerge(contextProps, componentProps) as T\n\n return {\n ...mergedProps,\n preset: mergedProps.preset ?? theme.preset,\n }\n}\n"],"names":["componentProps","componentName","theme","useTheme","mergedProps","deepmerge","components","preset"],"mappings":"wHAIO,CAILA,EAAmBC,KACnB,MAAMC,EAAQC,OAAAA,WAId,MAAMC,EAAcC,KAAAA,WAFJH,EAAMI,YAAc,IACJL,IAAkB,CAAA,EACND,GAE5C,MAAO,IACFI,EACHG,OAAQH,EAAYG,QAAUL,EAAMK,OAExC"}
1
+ {"version":3,"file":"useMergedProps.js","sources":["../../../src/hooks/useMergedProps.ts"],"sourcesContent":["import { useTheme } from 'styled-components'\nimport { deepmerge } from 'shared/utils/misc'\nimport type { ThemePreset, WithThemePreset } from 'shared/types'\n\nexport function useMergedProps<\n T extends {\n preset?: ThemePreset\n },\n>(componentProps: T, componentName: string): WithThemePreset<T> {\n const theme = useTheme()\n\n const contextComponents = theme.components ?? {}\n\n const contextProps = contextComponents[componentName as keyof typeof contextComponents] ?? {}\n const mergedProps = deepmerge(contextProps, componentProps) as T\n\n return {\n ...mergedProps,\n preset: mergedProps.preset ?? theme.preset,\n }\n}\n"],"names":["componentProps","componentName","theme","useTheme","mergedProps","deepmerge","components","preset"],"mappings":"wHAIO,CAILA,EAAmBC,KACnB,MAAMC,EAAQC,OAAAA,WAKd,MAAMC,EAAcC,KAAAA,WAHMH,EAAMI,YAAc,IAEPL,IAAoD,CAAA,EAC/CD,GAE5C,MAAO,IACFI,EACHG,OAAQH,EAAYG,QAAUL,EAAMK,OAExC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMergedProps.mjs","sources":["../../../src/hooks/useMergedProps.ts"],"sourcesContent":["import { useTheme } from 'styled-components'\nimport { deepmerge } from 'shared/utils/misc'\nimport type { ThemePreset, WithThemePreset } from 'shared/types'\n\nexport function useMergedProps<\n T extends {\n preset?: ThemePreset\n }\n>(componentProps: T, componentName: string): WithThemePreset<T> {\n const theme = useTheme()\n\n const context = theme.components ?? {}\n const contextProps: T = context[componentName] ?? {}\n const mergedProps = deepmerge(contextProps, componentProps) as T\n\n return {\n ...mergedProps,\n preset: mergedProps.preset ?? theme.preset,\n }\n}\n"],"names":["useMergedProps","componentProps","componentName","theme","useTheme","mergedProps","deepmerge","components","preset"],"mappings":"wFAIO,SAASA,eAIdC,EAAmBC,GACnB,MAAMC,EAAQC,WAId,MAAMC,EAAcC,WAFJH,EAAMI,YAAc,IACJL,IAAkB,CAAA,EACND,GAE5C,MAAO,IACFI,EACHG,OAAQH,EAAYG,QAAUL,EAAMK,OAExC"}
1
+ {"version":3,"file":"useMergedProps.mjs","sources":["../../../src/hooks/useMergedProps.ts"],"sourcesContent":["import { useTheme } from 'styled-components'\nimport { deepmerge } from 'shared/utils/misc'\nimport type { ThemePreset, WithThemePreset } from 'shared/types'\n\nexport function useMergedProps<\n T extends {\n preset?: ThemePreset\n },\n>(componentProps: T, componentName: string): WithThemePreset<T> {\n const theme = useTheme()\n\n const contextComponents = theme.components ?? {}\n\n const contextProps = contextComponents[componentName as keyof typeof contextComponents] ?? {}\n const mergedProps = deepmerge(contextProps, componentProps) as T\n\n return {\n ...mergedProps,\n preset: mergedProps.preset ?? theme.preset,\n }\n}\n"],"names":["useMergedProps","componentProps","componentName","theme","useTheme","mergedProps","deepmerge","components","preset"],"mappings":"wFAIO,SAASA,eAIdC,EAAmBC,GACnB,MAAMC,EAAQC,WAKd,MAAMC,EAAcC,WAHMH,EAAMI,YAAc,IAEPL,IAAoD,CAAA,EAC/CD,GAE5C,MAAO,IACFI,EACHG,OAAQH,EAAYG,QAAUL,EAAMK,OAExC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMergedSizes.js","sources":["../../../src/hooks/useMergedSizes.ts"],"sourcesContent":["import type { CSSProperties } from 'react'\nimport { deepmerge } from 'shared/utils/misc'\nimport type { KeysOfUnion, WithThemePreset, Size } from 'shared/types'\n\nexport function useMergedSizes<\n T extends WithThemePreset<{\n sizes?: Partial<Record<Size, CSSProperties>>\n }>\n>(\n componentProps: T,\n componentSizes:\n | Record<KeysOfUnion<T['sizes']>, CSSProperties>\n | ((props: T) => Record<KeysOfUnion<T['sizes']>, CSSProperties>)\n) {\n const sizesDefault = typeof componentSizes === 'function' ? componentSizes(componentProps) : componentSizes\n const sizesProp = componentProps.sizes ?? {}\n\n return deepmerge(sizesDefault, sizesProp) as Record<KeysOfUnion<T['sizes']>, CSSProperties>\n}\n"],"names":["componentProps","componentSizes","sizesDefault","deepmerge","sizes"],"mappings":"gFAIO,CAKLA,EACAC,KAIA,MAAMC,SAAsBD,GAAmB,WAAaA,EAAeD,GAAkBC,EAG7F,OAAOE,KAASA,UAACD,EAFCF,EAAeI,OAAS,GAG5C"}
1
+ {"version":3,"file":"useMergedSizes.js","sources":["../../../src/hooks/useMergedSizes.ts"],"sourcesContent":["import type { CSSProperties } from 'react'\nimport { deepmerge } from 'shared/utils/misc'\nimport type { KeysOfUnion, WithThemePreset, Size } from 'shared/types'\n\nexport function useMergedSizes<\n T extends WithThemePreset<{\n sizes?: Partial<Record<Size, CSSProperties>>\n }>,\n>(\n componentProps: T,\n componentSizes:\n | Record<KeysOfUnion<T['sizes']>, CSSProperties>\n | ((props: T) => Record<KeysOfUnion<T['sizes']>, CSSProperties>)\n) {\n const sizesDefault = typeof componentSizes === 'function' ? componentSizes(componentProps) : componentSizes\n const sizesProp = componentProps.sizes ?? {}\n\n return deepmerge(sizesDefault, sizesProp) as Record<KeysOfUnion<T['sizes']>, CSSProperties>\n}\n"],"names":["componentProps","componentSizes","sizesDefault","deepmerge","sizes"],"mappings":"gFAIO,CAKLA,EACAC,KAIA,MAAMC,SAAsBD,GAAmB,WAAaA,EAAeD,GAAkBC,EAG7F,OAAOE,KAASA,UAACD,EAFCF,EAAeI,OAAS,GAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMergedSizes.mjs","sources":["../../../src/hooks/useMergedSizes.ts"],"sourcesContent":["import type { CSSProperties } from 'react'\nimport { deepmerge } from 'shared/utils/misc'\nimport type { KeysOfUnion, WithThemePreset, Size } from 'shared/types'\n\nexport function useMergedSizes<\n T extends WithThemePreset<{\n sizes?: Partial<Record<Size, CSSProperties>>\n }>\n>(\n componentProps: T,\n componentSizes:\n | Record<KeysOfUnion<T['sizes']>, CSSProperties>\n | ((props: T) => Record<KeysOfUnion<T['sizes']>, CSSProperties>)\n) {\n const sizesDefault = typeof componentSizes === 'function' ? componentSizes(componentProps) : componentSizes\n const sizesProp = componentProps.sizes ?? {}\n\n return deepmerge(sizesDefault, sizesProp) as Record<KeysOfUnion<T['sizes']>, CSSProperties>\n}\n"],"names":["useMergedSizes","componentProps","componentSizes","sizesDefault","deepmerge","sizes"],"mappings":"gDAIO,SAASA,eAKdC,EACAC,GAIA,MAAMC,SAAsBD,GAAmB,WAAaA,EAAeD,GAAkBC,EAG7F,OAAOE,UAAUD,EAFCF,EAAeI,OAAS,GAG5C"}
1
+ {"version":3,"file":"useMergedSizes.mjs","sources":["../../../src/hooks/useMergedSizes.ts"],"sourcesContent":["import type { CSSProperties } from 'react'\nimport { deepmerge } from 'shared/utils/misc'\nimport type { KeysOfUnion, WithThemePreset, Size } from 'shared/types'\n\nexport function useMergedSizes<\n T extends WithThemePreset<{\n sizes?: Partial<Record<Size, CSSProperties>>\n }>,\n>(\n componentProps: T,\n componentSizes:\n | Record<KeysOfUnion<T['sizes']>, CSSProperties>\n | ((props: T) => Record<KeysOfUnion<T['sizes']>, CSSProperties>)\n) {\n const sizesDefault = typeof componentSizes === 'function' ? componentSizes(componentProps) : componentSizes\n const sizesProp = componentProps.sizes ?? {}\n\n return deepmerge(sizesDefault, sizesProp) as Record<KeysOfUnion<T['sizes']>, CSSProperties>\n}\n"],"names":["useMergedSizes","componentProps","componentSizes","sizesDefault","deepmerge","sizes"],"mappings":"gDAIO,SAASA,eAKdC,EACAC,GAIA,MAAMC,SAAsBD,GAAmB,WAAaA,EAAeD,GAAkBC,EAG7F,OAAOE,UAAUD,EAFCF,EAAeI,OAAS,GAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeObserver.js","sources":["../../../src/hooks/useResizeObserver.ts"],"sourcesContent":["import { useLayoutEffect, useState } from 'react'\nimport { resizeObserver } from 'shared/resize-observer'\nimport { getDomTargets } from 'shared/utils/dom'\nimport type { DomTarget } from 'shared/types'\n\nexport const useResizeObserver = <T extends HTMLElement = HTMLElement>({\n enabled = true,\n target,\n onResize,\n}: {\n onResize: (target: T) => void\n target?: DomTarget<T> | DomTarget<T>[]\n enabled?: boolean\n}) => {\n const [animationRequests] = useState<WeakMap<T, number>>(() => new WeakMap())\n\n useLayoutEffect(() => {\n const targets = getDomTargets<T>(target)\n\n if (enabled) {\n targets.forEach((observerTarget) => {\n observerTarget[resizeObserver.symbol] = (e: T) => {\n const reqId = animationRequests.get(observerTarget)\n\n if (reqId) {\n cancelAnimationFrame(reqId)\n }\n\n animationRequests.set(\n observerTarget,\n requestAnimationFrame(() => {\n onResize(e)\n })\n )\n }\n\n resizeObserver.observe(observerTarget)\n })\n }\n\n return () => {\n targets.forEach((observerTarget) => {\n resizeObserver.unobserve(observerTarget)\n })\n }\n }, [enabled, animationRequests, target, onResize])\n}\n"],"names":["useResizeObserver","enabled","target","onResize","animationRequests","useState","WeakMap","useLayoutEffect","targets","getDomTargets","forEach","observerTarget","resizeObserver","symbol","e","reqId","get","cancelAnimationFrame","set","requestAnimationFrame","observe","unobserve"],"mappings":"uKAKiCA,EAC/BC,WAAU,EACVC,SACAC,eAMA,MAAOC,GAAqBC,MAAAA,UAA6B,IAAM,IAAIC,UAEnEC,MAAAA,iBAAgB,KACd,MAAMC,EAAUC,kBAAiBP,GAuBjC,OArBID,GACFO,EAAQE,SAASC,IACfA,EAAeC,eAAcA,eAACC,QAAWC,IACvC,MAAMC,EAAQX,EAAkBY,IAAIL,GAEhCI,GACFE,qBAAqBF,GAGvBX,EAAkBc,IAChBP,EACAQ,uBAAsB,KACpBhB,EAASW,EAAE,IAEd,EAGHF,8BAAeQ,QAAQT,EAAe,IAInC,KACLH,EAAQE,SAASC,IACfC,8BAAeS,UAAUV,EAAe,GACxC,CACH,GACA,CAACV,EAASG,EAAmBF,EAAQC,GAAU"}
1
+ {"version":3,"file":"useResizeObserver.js","sources":["../../../src/hooks/useResizeObserver.ts"],"sourcesContent":["import { useLayoutEffect, useState } from 'react'\nimport { resizeObserver } from 'shared/resize-observer'\nimport { getDomTargets } from 'shared/utils/dom'\nimport type { DomTarget } from 'shared/types'\n\nexport const useResizeObserver = <T extends HTMLElement = HTMLElement>({\n enabled = true,\n target,\n onResize,\n}: {\n onResize: (target: T) => void\n target?: DomTarget<T> | DomTarget<T>[]\n enabled?: boolean\n}) => {\n const [animationRequests] = useState<WeakMap<T, number>>(() => new WeakMap())\n\n useLayoutEffect(() => {\n const targets = getDomTargets<T>(target)\n\n if (enabled) {\n targets.forEach((observerTarget) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n observerTarget[resizeObserver.symbol] = (e: T) => {\n const reqId = animationRequests.get(observerTarget)\n\n if (reqId) {\n cancelAnimationFrame(reqId)\n }\n\n animationRequests.set(\n observerTarget,\n requestAnimationFrame(() => {\n onResize(e)\n })\n )\n }\n\n resizeObserver.observe(observerTarget)\n })\n }\n\n return () => {\n targets.forEach((observerTarget) => {\n resizeObserver.unobserve(observerTarget)\n })\n }\n }, [enabled, animationRequests, target, onResize])\n}\n"],"names":["useResizeObserver","enabled","target","onResize","animationRequests","useState","WeakMap","useLayoutEffect","targets","getDomTargets","forEach","observerTarget","resizeObserver","symbol","e","reqId","get","cancelAnimationFrame","set","requestAnimationFrame","observe","unobserve"],"mappings":"uKAKiCA,EAC/BC,WAAU,EACVC,SACAC,eAMA,MAAOC,GAAqBC,MAAAA,UAA6B,IAAM,IAAIC,UAEnEC,MAAAA,iBAAgB,KACd,MAAMC,EAAUC,kBAAiBP,GAyBjC,OAvBID,GACFO,EAAQE,SAASC,IAGfA,EAAeC,eAAcA,eAACC,QAAWC,IACvC,MAAMC,EAAQX,EAAkBY,IAAIL,GAEhCI,GACFE,qBAAqBF,GAGvBX,EAAkBc,IAChBP,EACAQ,uBAAsB,KACpBhB,EAASW,EAAE,IAEd,EAGHF,8BAAeQ,QAAQT,EAAe,IAInC,KACLH,EAAQE,SAASC,IACfC,8BAAeS,UAAUV,EAAe,GACxC,CACH,GACA,CAACV,EAASG,EAAmBF,EAAQC,GAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeObserver.mjs","sources":["../../../src/hooks/useResizeObserver.ts"],"sourcesContent":["import { useLayoutEffect, useState } from 'react'\nimport { resizeObserver } from 'shared/resize-observer'\nimport { getDomTargets } from 'shared/utils/dom'\nimport type { DomTarget } from 'shared/types'\n\nexport const useResizeObserver = <T extends HTMLElement = HTMLElement>({\n enabled = true,\n target,\n onResize,\n}: {\n onResize: (target: T) => void\n target?: DomTarget<T> | DomTarget<T>[]\n enabled?: boolean\n}) => {\n const [animationRequests] = useState<WeakMap<T, number>>(() => new WeakMap())\n\n useLayoutEffect(() => {\n const targets = getDomTargets<T>(target)\n\n if (enabled) {\n targets.forEach((observerTarget) => {\n observerTarget[resizeObserver.symbol] = (e: T) => {\n const reqId = animationRequests.get(observerTarget)\n\n if (reqId) {\n cancelAnimationFrame(reqId)\n }\n\n animationRequests.set(\n observerTarget,\n requestAnimationFrame(() => {\n onResize(e)\n })\n )\n }\n\n resizeObserver.observe(observerTarget)\n })\n }\n\n return () => {\n targets.forEach((observerTarget) => {\n resizeObserver.unobserve(observerTarget)\n })\n }\n }, [enabled, animationRequests, target, onResize])\n}\n"],"names":["useResizeObserver","enabled","target","onResize","animationRequests","useState","WeakMap","useLayoutEffect","targets","getDomTargets","forEach","observerTarget","resizeObserver","symbol","e","reqId","get","cancelAnimationFrame","set","requestAnimationFrame","observe","unobserve"],"mappings":"yJAKO,MAAMA,kBAAoBA,EAC/BC,WAAU,EACVC,SACAC,eAMA,MAAOC,GAAqBC,UAA6B,IAAM,IAAIC,UAEnEC,iBAAgB,KACd,MAAMC,EAAUC,cAAiBP,GAuBjC,OArBID,GACFO,EAAQE,SAASC,IACfA,EAAeC,eAAeC,QAAWC,IACvC,MAAMC,EAAQX,EAAkBY,IAAIL,GAEhCI,GACFE,qBAAqBF,GAGvBX,EAAkBc,IAChBP,EACAQ,uBAAsB,KACpBhB,EAASW,EAAE,IAEd,EAGHF,eAAeQ,QAAQT,EAAe,IAInC,KACLH,EAAQE,SAASC,IACfC,eAAeS,UAAUV,EAAe,GACxC,CACH,GACA,CAACV,EAASG,EAAmBF,EAAQC,GAAU"}
1
+ {"version":3,"file":"useResizeObserver.mjs","sources":["../../../src/hooks/useResizeObserver.ts"],"sourcesContent":["import { useLayoutEffect, useState } from 'react'\nimport { resizeObserver } from 'shared/resize-observer'\nimport { getDomTargets } from 'shared/utils/dom'\nimport type { DomTarget } from 'shared/types'\n\nexport const useResizeObserver = <T extends HTMLElement = HTMLElement>({\n enabled = true,\n target,\n onResize,\n}: {\n onResize: (target: T) => void\n target?: DomTarget<T> | DomTarget<T>[]\n enabled?: boolean\n}) => {\n const [animationRequests] = useState<WeakMap<T, number>>(() => new WeakMap())\n\n useLayoutEffect(() => {\n const targets = getDomTargets<T>(target)\n\n if (enabled) {\n targets.forEach((observerTarget) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n observerTarget[resizeObserver.symbol] = (e: T) => {\n const reqId = animationRequests.get(observerTarget)\n\n if (reqId) {\n cancelAnimationFrame(reqId)\n }\n\n animationRequests.set(\n observerTarget,\n requestAnimationFrame(() => {\n onResize(e)\n })\n )\n }\n\n resizeObserver.observe(observerTarget)\n })\n }\n\n return () => {\n targets.forEach((observerTarget) => {\n resizeObserver.unobserve(observerTarget)\n })\n }\n }, [enabled, animationRequests, target, onResize])\n}\n"],"names":["useResizeObserver","enabled","target","onResize","animationRequests","useState","WeakMap","useLayoutEffect","targets","getDomTargets","forEach","observerTarget","resizeObserver","symbol","e","reqId","get","cancelAnimationFrame","set","requestAnimationFrame","observe","unobserve"],"mappings":"yJAKO,MAAMA,kBAAoBA,EAC/BC,WAAU,EACVC,SACAC,eAMA,MAAOC,GAAqBC,UAA6B,IAAM,IAAIC,UAEnEC,iBAAgB,KACd,MAAMC,EAAUC,cAAiBP,GAyBjC,OAvBID,GACFO,EAAQE,SAASC,IAGfA,EAAeC,eAAeC,QAAWC,IACvC,MAAMC,EAAQX,EAAkBY,IAAIL,GAEhCI,GACFE,qBAAqBF,GAGvBX,EAAkBc,IAChBP,EACAQ,uBAAsB,KACpBhB,EAASW,EAAE,IAEd,EAGHF,eAAeQ,QAAQT,EAAe,IAInC,KACLH,EAAQE,SAASC,IACfC,eAAeS,UAAUV,EAAe,GACxC,CACH,GACA,CAACV,EAASG,EAAmBF,EAAQC,GAAU"}
@@ -1,2 +1,2 @@
1
- 'use strict';var React=require('react');exports.useScrollMonitor=({target:e,scrollThrottleMS:t=0,scrollEndDebounceMS:r=200,onScroll:n,onScrollStart:c,onScrollEnd:l,listenerOptions:o})=>{const u=React.useRef(null);const s=React.useRef(null);const a=React.useRef(!1);React.useEffect((()=>{const i=(e=>{let t=null;const r=document;return e?(e instanceof HTMLElement?t=e:typeof e=='string'?t=document.querySelector(e):e.current instanceof HTMLElement&&(t=e.current),t??r):r})(e);const listener=e=>{c&&((e,t)=>{a.current||(t(e),a.current=!0)})(e,c),n&&((e,r)=>{t!==0?u.current||(u.current=setTimeout((()=>{u.current=null}),t),r(e)):r(e)})(e,n),(c||l)&&(e=>{s.current&&clearTimeout(s.current),s.current=setTimeout((()=>{s.current=null,(e=>{c&&(a.current=!1),l&&l(e)})(e)}),t+r)})(e)};return i.addEventListener('scroll',listener,o),()=>{i.removeEventListener('scroll',listener,o)}}),[e,t,r,n,c,l,o])};
1
+ 'use strict';var React=require('react');exports.useScrollMonitor=({target:e,scrollThrottleMS:t=0,scrollEndDebounceMS:r=200,onScroll:n,onScrollStart:c,onScrollEnd:l,listenerOptions:o})=>{const u=React.useRef(null);const s=React.useRef(null);const a=React.useRef(!1);React.useEffect((()=>{const i=(e=>{let t=null;const r=document;return e?(e instanceof HTMLElement?t=e:typeof e=='string'?t=document.querySelector(e):e.current instanceof HTMLElement&&(t=e.current),t??r):r})(e);const listener=e=>{c&&((e,t)=>{a.current||(t(e),a.current=!0)})(e,c),n&&((e,r)=>{t!==0?u.current||(u.current=setTimeout((()=>{u.current=null}),t),r(e)):r(e)})(e,n),(c||l)&&(e=>{s.current&&clearTimeout(s.current),s.current=setTimeout((()=>{var t;s.current=null,t=e,c&&(a.current=!1),l&&l(t)}),t+r)})(e)};return i.addEventListener('scroll',listener,o),()=>{i.removeEventListener('scroll',listener,o)}}),[e,t,r,n,c,l,o])};
2
2
  //# sourceMappingURL=useScrollMonitor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollMonitor.js","sources":["../../../src/hooks/useScrollMonitor.ts"],"sourcesContent":["import { useRef, useEffect } from 'react'\nimport type { RefObject } from 'react'\n\nconst getMonitorTarget = (\n target?: RefObject<HTMLElement> | HTMLElement | string | null\n): HTMLElement | Element | Document => {\n let monitorTarget = null\n const defaultTarget = document\n\n if (!target) return defaultTarget\n\n if (target instanceof HTMLElement) {\n monitorTarget = target\n } else if (typeof target === 'string') {\n monitorTarget = document.querySelector(target)\n } else if (target.current instanceof HTMLElement) {\n monitorTarget = target.current\n }\n\n return monitorTarget ?? defaultTarget\n}\n\nexport const useScrollMonitor = ({\n target,\n scrollThrottleMS = 0,\n scrollEndDebounceMS = 200,\n onScroll,\n onScrollStart,\n onScrollEnd,\n listenerOptions,\n}: {\n target?: RefObject<HTMLElement> | HTMLElement | string | null\n scrollThrottleMS?: number\n scrollEndDebounceMS?: number\n onScroll?: (evt: Event) => void\n onScrollStart?: (evt: Event) => void\n onScrollEnd?: (evt: Event) => void\n // eslint-disable-next-line jsx-control-statements/jsx-jcs-no-undef\n listenerOptions?: AddEventListenerOptions | boolean\n}) => {\n const throttleTimerId = useRef<ReturnType<typeof setTimeout> | null>(null)\n const debounceTimerId = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const startHandlerLocked = useRef<boolean>(false)\n\n useEffect(() => {\n const monitorTarget = getMonitorTarget(target)\n\n const handleScrollStart = (evt: Event, cb: (evt: Event) => void) => {\n if (startHandlerLocked.current) return\n\n cb(evt)\n startHandlerLocked.current = true\n }\n\n const handleScroll = (evt: Event, cb: (evt: Event) => void) => {\n if (scrollThrottleMS === 0) {\n cb(evt)\n return\n }\n\n if (throttleTimerId.current) return\n\n throttleTimerId.current = setTimeout(() => {\n throttleTimerId.current = null\n }, scrollThrottleMS)\n\n cb(evt)\n }\n\n const handleScrollEnd = (evt: Event, cb: (evt: Event) => void) => {\n if (debounceTimerId.current) {\n clearTimeout(debounceTimerId.current)\n }\n\n debounceTimerId.current = setTimeout(() => {\n debounceTimerId.current = null\n cb(evt)\n }, scrollThrottleMS + scrollEndDebounceMS)\n }\n\n const listener = (evt: Event) => {\n if (onScrollStart) {\n handleScrollStart(evt, onScrollStart)\n }\n if (onScroll) {\n handleScroll(evt, onScroll)\n }\n if (onScrollStart || onScrollEnd) {\n handleScrollEnd(evt, (evt) => {\n if (onScrollStart) startHandlerLocked.current = false\n if (onScrollEnd) onScrollEnd(evt)\n })\n }\n }\n\n monitorTarget.addEventListener('scroll', listener, listenerOptions)\n\n return () => {\n monitorTarget.removeEventListener('scroll', listener, listenerOptions)\n }\n }, [target, scrollThrottleMS, scrollEndDebounceMS, onScroll, onScrollStart, onScrollEnd, listenerOptions])\n}\n"],"names":["useScrollMonitor","target","scrollThrottleMS","scrollEndDebounceMS","onScroll","onScrollStart","onScrollEnd","listenerOptions","throttleTimerId","useRef","debounceTimerId","startHandlerLocked","useEffect","monitorTarget","defaultTarget","document","HTMLElement","querySelector","current","getMonitorTarget","listener","evt","handleScrollStart","cb","handleScroll","setTimeout","handleScrollEnd","clearTimeout","addEventListener","removeEventListener"],"mappings":"iEAsBgCA,EAC9BC,SACAC,mBAAmB,EACnBC,sBAAsB,IACtBC,WACAC,gBACAC,cACAC,sBAWA,MAAMC,EAAkBC,aAA6C,MACrE,MAAMC,EAAkBD,aAA6C,MAErE,MAAME,EAAqBF,cAAgB,GAE3CG,MAAAA,WAAU,KACR,MAAMC,EA1CRZ,KAEA,IAAIY,EAAgB,KACpB,MAAMC,EAAgBC,SAEtB,OAAKd,GAEDA,aAAkBe,YACpBH,EAAgBZ,SACAA,GAAW,SAC3BY,EAAgBE,SAASE,cAAchB,GAC9BA,EAAOiB,mBAAmBF,cACnCH,EAAgBZ,EAAOiB,SAGlBL,GAAiBC,GAVJA,CAUiB,EA2BbK,CAAiBlB,GAmCvC,MAAMmB,SAAYC,IACZhB,GAlCoBiB,EAACD,EAAYE,KACjCZ,EAAmBO,UAEvBK,EAAGF,GACHV,EAAmBO,SAAU,EAAI,EA+B/BI,CAAkBD,EAAKhB,GAErBD,GA9BeoB,EAACH,EAAYE,KAC5BrB,IAAqB,EAKrBM,EAAgBU,UAEpBV,EAAgBU,QAAUO,YAAW,KACnCjB,EAAgBU,QAAU,IAAI,GAC7BhB,GAEHqB,EAAGF,IAVDE,EAAGF,EAUE,EAmBLG,CAAaH,EAAKjB,IAEhBC,GAAiBC,IAlBCoB,CAACL,IACnBX,EAAgBQ,SAClBS,aAAajB,EAAgBQ,SAG/BR,EAAgBQ,QAAUO,YAAW,KACnCf,EAAgBQ,QAAU,KAaJG,KAChBhB,IAAeM,EAAmBO,SAAU,GAC5CZ,GAAaA,EAAYe,EAAI,EAdnCE,CAAGF,EAAI,GACNnB,EAAmBC,EAAoB,EAWxCuB,CAAgBL,EAIlB,EAKF,OAFAR,EAAce,iBAAiB,SAAUR,SAAUb,GAE5C,KACLM,EAAcgB,oBAAoB,SAAUT,SAAUb,EAAgB,CACvE,GACA,CAACN,EAAQC,EAAkBC,EAAqBC,EAAUC,EAAeC,EAAaC,GAAiB"}
1
+ {"version":3,"file":"useScrollMonitor.js","sources":["../../../src/hooks/useScrollMonitor.ts"],"sourcesContent":["import { useRef, useEffect } from 'react'\nimport type { RefObject } from 'react'\n\nconst getMonitorTarget = (\n target?: RefObject<HTMLElement> | HTMLElement | string | null\n): HTMLElement | Element | Document => {\n let monitorTarget = null\n const defaultTarget = document\n\n if (!target) return defaultTarget\n\n if (target instanceof HTMLElement) {\n monitorTarget = target\n } else if (typeof target === 'string') {\n monitorTarget = document.querySelector(target)\n } else if (target.current instanceof HTMLElement) {\n monitorTarget = target.current\n }\n\n return monitorTarget ?? defaultTarget\n}\n\nexport const useScrollMonitor = ({\n target,\n scrollThrottleMS = 0,\n scrollEndDebounceMS = 200,\n onScroll,\n onScrollStart,\n onScrollEnd,\n listenerOptions,\n}: {\n target?: RefObject<HTMLElement> | HTMLElement | string | null\n scrollThrottleMS?: number\n scrollEndDebounceMS?: number\n onScroll?: (evt: Event) => void\n onScrollStart?: (evt: Event) => void\n onScrollEnd?: (evt: Event) => void\n listenerOptions?: AddEventListenerOptions | boolean\n}) => {\n const throttleTimerId = useRef<ReturnType<typeof setTimeout> | null>(null)\n const debounceTimerId = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const startHandlerLocked = useRef<boolean>(false)\n\n useEffect(() => {\n const monitorTarget = getMonitorTarget(target)\n\n const handleScrollStart = (evt: Event, cb: (evt: Event) => void) => {\n if (startHandlerLocked.current) return\n\n cb(evt)\n startHandlerLocked.current = true\n }\n\n const handleScroll = (evt: Event, cb: (evt: Event) => void) => {\n if (scrollThrottleMS === 0) {\n cb(evt)\n return\n }\n\n if (throttleTimerId.current) return\n\n throttleTimerId.current = setTimeout(() => {\n throttleTimerId.current = null\n }, scrollThrottleMS)\n\n cb(evt)\n }\n\n const handleScrollEnd = (evt: Event, cb: (evt: Event) => void) => {\n if (debounceTimerId.current) {\n clearTimeout(debounceTimerId.current)\n }\n\n debounceTimerId.current = setTimeout(() => {\n debounceTimerId.current = null\n cb(evt)\n }, scrollThrottleMS + scrollEndDebounceMS)\n }\n\n const listener = (evt: Event) => {\n if (onScrollStart) {\n handleScrollStart(evt, onScrollStart)\n }\n if (onScroll) {\n handleScroll(evt, onScroll)\n }\n if (onScrollStart || onScrollEnd) {\n handleScrollEnd(evt, (scrollEvt) => {\n if (onScrollStart) startHandlerLocked.current = false\n if (onScrollEnd) onScrollEnd(scrollEvt)\n })\n }\n }\n\n monitorTarget.addEventListener('scroll', listener, listenerOptions)\n\n return () => {\n monitorTarget.removeEventListener('scroll', listener, listenerOptions)\n }\n }, [target, scrollThrottleMS, scrollEndDebounceMS, onScroll, onScrollStart, onScrollEnd, listenerOptions])\n}\n"],"names":["useScrollMonitor","target","scrollThrottleMS","scrollEndDebounceMS","onScroll","onScrollStart","onScrollEnd","listenerOptions","throttleTimerId","useRef","debounceTimerId","startHandlerLocked","useEffect","monitorTarget","defaultTarget","document","HTMLElement","querySelector","current","getMonitorTarget","listener","evt","handleScrollStart","cb","handleScroll","setTimeout","handleScrollEnd","clearTimeout","scrollEvt","addEventListener","removeEventListener"],"mappings":"iEAsBgCA,EAC9BC,SACAC,mBAAmB,EACnBC,sBAAsB,IACtBC,WACAC,gBACAC,cACAC,sBAUA,MAAMC,EAAkBC,aAA6C,MACrE,MAAMC,EAAkBD,aAA6C,MAErE,MAAME,EAAqBF,cAAgB,GAE3CG,MAAAA,WAAU,KACR,MAAMC,EAzCRZ,KAEA,IAAIY,EAAgB,KACpB,MAAMC,EAAgBC,SAEtB,OAAKd,GAEDA,aAAkBe,YACpBH,EAAgBZ,SACAA,GAAW,SAC3BY,EAAgBE,SAASE,cAAchB,GAC9BA,EAAOiB,mBAAmBF,cACnCH,EAAgBZ,EAAOiB,SAGlBL,GAAiBC,GAVJA,CAUiB,EA0BbK,CAAiBlB,GAmCvC,MAAMmB,SAAYC,IACZhB,GAlCoBiB,EAACD,EAAYE,KACjCZ,EAAmBO,UAEvBK,EAAGF,GACHV,EAAmBO,SAAU,EAAI,EA+B/BI,CAAkBD,EAAKhB,GAErBD,GA9BeoB,EAACH,EAAYE,KAC5BrB,IAAqB,EAKrBM,EAAgBU,UAEpBV,EAAgBU,QAAUO,YAAW,KACnCjB,EAAgBU,QAAU,IAAI,GAC7BhB,GAEHqB,EAAGF,IAVDE,EAAGF,EAUE,EAmBLG,CAAaH,EAAKjB,IAEhBC,GAAiBC,IAlBCoB,CAACL,IACnBX,EAAgBQ,SAClBS,aAAajB,EAAgBQ,SAG/BR,EAAgBQ,QAAUO,YAAW,KAcbG,MAbtBlB,EAAgBQ,QAAU,KAaJU,EAZnBP,EAaGhB,IAAeM,EAAmBO,SAAU,GAC5CZ,GAAaA,EAAYsB,EAdxB,GACN1B,EAAmBC,EAAoB,EAWxCuB,CAAgBL,EAIlB,EAKF,OAFAR,EAAcgB,iBAAiB,SAAUT,SAAUb,GAE5C,KACLM,EAAciB,oBAAoB,SAAUV,SAAUb,EAAgB,CACvE,GACA,CAACN,EAAQC,EAAkBC,EAAqBC,EAAUC,EAAeC,EAAaC,GAAiB"}
@@ -1,2 +1,2 @@
1
- import{useRef,useEffect}from'react';const useScrollMonitor=({target:e,scrollThrottleMS:t=0,scrollEndDebounceMS:r=200,onScroll:n,onScrollStart:o,onScrollEnd:c,listenerOptions:l})=>{const u=useRef(null);const s=useRef(null);const i=useRef(!1);useEffect((()=>{const f=(e=>{let t=null;const r=document;return e?(e instanceof HTMLElement?t=e:typeof e=='string'?t=document.querySelector(e):e.current instanceof HTMLElement&&(t=e.current),t??r):r})(e);const listener=e=>{o&&((e,t)=>{i.current||(t(e),i.current=!0)})(e,o),n&&((e,r)=>{t!==0?u.current||(u.current=setTimeout((()=>{u.current=null}),t),r(e)):r(e)})(e,n),(o||c)&&(e=>{s.current&&clearTimeout(s.current),s.current=setTimeout((()=>{s.current=null,(e=>{o&&(i.current=!1),c&&c(e)})(e)}),t+r)})(e)};return f.addEventListener('scroll',listener,l),()=>{f.removeEventListener('scroll',listener,l)}}),[e,t,r,n,o,c,l])};export{useScrollMonitor};
1
+ import{useRef,useEffect}from'react';const useScrollMonitor=({target:e,scrollThrottleMS:r=0,scrollEndDebounceMS:t=200,onScroll:n,onScrollStart:o,onScrollEnd:c,listenerOptions:l})=>{const u=useRef(null);const s=useRef(null);const i=useRef(!1);useEffect((()=>{const f=(e=>{let r=null;const t=document;return e?(e instanceof HTMLElement?r=e:typeof e=='string'?r=document.querySelector(e):e.current instanceof HTMLElement&&(r=e.current),r??t):t})(e);const listener=e=>{o&&((e,r)=>{i.current||(r(e),i.current=!0)})(e,o),n&&((e,t)=>{r!==0?u.current||(u.current=setTimeout((()=>{u.current=null}),r),t(e)):t(e)})(e,n),(o||c)&&(e=>{s.current&&clearTimeout(s.current),s.current=setTimeout((()=>{var r;s.current=null,r=e,o&&(i.current=!1),c&&c(r)}),r+t)})(e)};return f.addEventListener('scroll',listener,l),()=>{f.removeEventListener('scroll',listener,l)}}),[e,r,t,n,o,c,l])};export{useScrollMonitor};
2
2
  //# sourceMappingURL=useScrollMonitor.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollMonitor.mjs","sources":["../../../src/hooks/useScrollMonitor.ts"],"sourcesContent":["import { useRef, useEffect } from 'react'\nimport type { RefObject } from 'react'\n\nconst getMonitorTarget = (\n target?: RefObject<HTMLElement> | HTMLElement | string | null\n): HTMLElement | Element | Document => {\n let monitorTarget = null\n const defaultTarget = document\n\n if (!target) return defaultTarget\n\n if (target instanceof HTMLElement) {\n monitorTarget = target\n } else if (typeof target === 'string') {\n monitorTarget = document.querySelector(target)\n } else if (target.current instanceof HTMLElement) {\n monitorTarget = target.current\n }\n\n return monitorTarget ?? defaultTarget\n}\n\nexport const useScrollMonitor = ({\n target,\n scrollThrottleMS = 0,\n scrollEndDebounceMS = 200,\n onScroll,\n onScrollStart,\n onScrollEnd,\n listenerOptions,\n}: {\n target?: RefObject<HTMLElement> | HTMLElement | string | null\n scrollThrottleMS?: number\n scrollEndDebounceMS?: number\n onScroll?: (evt: Event) => void\n onScrollStart?: (evt: Event) => void\n onScrollEnd?: (evt: Event) => void\n // eslint-disable-next-line jsx-control-statements/jsx-jcs-no-undef\n listenerOptions?: AddEventListenerOptions | boolean\n}) => {\n const throttleTimerId = useRef<ReturnType<typeof setTimeout> | null>(null)\n const debounceTimerId = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const startHandlerLocked = useRef<boolean>(false)\n\n useEffect(() => {\n const monitorTarget = getMonitorTarget(target)\n\n const handleScrollStart = (evt: Event, cb: (evt: Event) => void) => {\n if (startHandlerLocked.current) return\n\n cb(evt)\n startHandlerLocked.current = true\n }\n\n const handleScroll = (evt: Event, cb: (evt: Event) => void) => {\n if (scrollThrottleMS === 0) {\n cb(evt)\n return\n }\n\n if (throttleTimerId.current) return\n\n throttleTimerId.current = setTimeout(() => {\n throttleTimerId.current = null\n }, scrollThrottleMS)\n\n cb(evt)\n }\n\n const handleScrollEnd = (evt: Event, cb: (evt: Event) => void) => {\n if (debounceTimerId.current) {\n clearTimeout(debounceTimerId.current)\n }\n\n debounceTimerId.current = setTimeout(() => {\n debounceTimerId.current = null\n cb(evt)\n }, scrollThrottleMS + scrollEndDebounceMS)\n }\n\n const listener = (evt: Event) => {\n if (onScrollStart) {\n handleScrollStart(evt, onScrollStart)\n }\n if (onScroll) {\n handleScroll(evt, onScroll)\n }\n if (onScrollStart || onScrollEnd) {\n handleScrollEnd(evt, (evt) => {\n if (onScrollStart) startHandlerLocked.current = false\n if (onScrollEnd) onScrollEnd(evt)\n })\n }\n }\n\n monitorTarget.addEventListener('scroll', listener, listenerOptions)\n\n return () => {\n monitorTarget.removeEventListener('scroll', listener, listenerOptions)\n }\n }, [target, scrollThrottleMS, scrollEndDebounceMS, onScroll, onScrollStart, onScrollEnd, listenerOptions])\n}\n"],"names":["useScrollMonitor","target","scrollThrottleMS","scrollEndDebounceMS","onScroll","onScrollStart","onScrollEnd","listenerOptions","throttleTimerId","useRef","debounceTimerId","startHandlerLocked","useEffect","monitorTarget","defaultTarget","document","HTMLElement","querySelector","current","getMonitorTarget","listener","evt","handleScrollStart","cb","handleScroll","setTimeout","handleScrollEnd","clearTimeout","addEventListener","removeEventListener"],"mappings":"oCAsBO,MAAMA,iBAAmBA,EAC9BC,SACAC,mBAAmB,EACnBC,sBAAsB,IACtBC,WACAC,gBACAC,cACAC,sBAWA,MAAMC,EAAkBC,OAA6C,MACrE,MAAMC,EAAkBD,OAA6C,MAErE,MAAME,EAAqBF,QAAgB,GAE3CG,WAAU,KACR,MAAMC,EA1CRZ,KAEA,IAAIY,EAAgB,KACpB,MAAMC,EAAgBC,SAEtB,OAAKd,GAEDA,aAAkBe,YACpBH,EAAgBZ,SACAA,GAAW,SAC3BY,EAAgBE,SAASE,cAAchB,GAC9BA,EAAOiB,mBAAmBF,cACnCH,EAAgBZ,EAAOiB,SAGlBL,GAAiBC,GAVJA,CAUiB,EA2BbK,CAAiBlB,GAmCvC,MAAMmB,SAAYC,IACZhB,GAlCoBiB,EAACD,EAAYE,KACjCZ,EAAmBO,UAEvBK,EAAGF,GACHV,EAAmBO,SAAU,EAAI,EA+B/BI,CAAkBD,EAAKhB,GAErBD,GA9BeoB,EAACH,EAAYE,KAC5BrB,IAAqB,EAKrBM,EAAgBU,UAEpBV,EAAgBU,QAAUO,YAAW,KACnCjB,EAAgBU,QAAU,IAAI,GAC7BhB,GAEHqB,EAAGF,IAVDE,EAAGF,EAUE,EAmBLG,CAAaH,EAAKjB,IAEhBC,GAAiBC,IAlBCoB,CAACL,IACnBX,EAAgBQ,SAClBS,aAAajB,EAAgBQ,SAG/BR,EAAgBQ,QAAUO,YAAW,KACnCf,EAAgBQ,QAAU,KAaJG,KAChBhB,IAAeM,EAAmBO,SAAU,GAC5CZ,GAAaA,EAAYe,EAAI,EAdnCE,CAAGF,EAAI,GACNnB,EAAmBC,EAAoB,EAWxCuB,CAAgBL,EAIlB,EAKF,OAFAR,EAAce,iBAAiB,SAAUR,SAAUb,GAE5C,KACLM,EAAcgB,oBAAoB,SAAUT,SAAUb,EAAgB,CACvE,GACA,CAACN,EAAQC,EAAkBC,EAAqBC,EAAUC,EAAeC,EAAaC,GAAiB"}
1
+ {"version":3,"file":"useScrollMonitor.mjs","sources":["../../../src/hooks/useScrollMonitor.ts"],"sourcesContent":["import { useRef, useEffect } from 'react'\nimport type { RefObject } from 'react'\n\nconst getMonitorTarget = (\n target?: RefObject<HTMLElement> | HTMLElement | string | null\n): HTMLElement | Element | Document => {\n let monitorTarget = null\n const defaultTarget = document\n\n if (!target) return defaultTarget\n\n if (target instanceof HTMLElement) {\n monitorTarget = target\n } else if (typeof target === 'string') {\n monitorTarget = document.querySelector(target)\n } else if (target.current instanceof HTMLElement) {\n monitorTarget = target.current\n }\n\n return monitorTarget ?? defaultTarget\n}\n\nexport const useScrollMonitor = ({\n target,\n scrollThrottleMS = 0,\n scrollEndDebounceMS = 200,\n onScroll,\n onScrollStart,\n onScrollEnd,\n listenerOptions,\n}: {\n target?: RefObject<HTMLElement> | HTMLElement | string | null\n scrollThrottleMS?: number\n scrollEndDebounceMS?: number\n onScroll?: (evt: Event) => void\n onScrollStart?: (evt: Event) => void\n onScrollEnd?: (evt: Event) => void\n listenerOptions?: AddEventListenerOptions | boolean\n}) => {\n const throttleTimerId = useRef<ReturnType<typeof setTimeout> | null>(null)\n const debounceTimerId = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const startHandlerLocked = useRef<boolean>(false)\n\n useEffect(() => {\n const monitorTarget = getMonitorTarget(target)\n\n const handleScrollStart = (evt: Event, cb: (evt: Event) => void) => {\n if (startHandlerLocked.current) return\n\n cb(evt)\n startHandlerLocked.current = true\n }\n\n const handleScroll = (evt: Event, cb: (evt: Event) => void) => {\n if (scrollThrottleMS === 0) {\n cb(evt)\n return\n }\n\n if (throttleTimerId.current) return\n\n throttleTimerId.current = setTimeout(() => {\n throttleTimerId.current = null\n }, scrollThrottleMS)\n\n cb(evt)\n }\n\n const handleScrollEnd = (evt: Event, cb: (evt: Event) => void) => {\n if (debounceTimerId.current) {\n clearTimeout(debounceTimerId.current)\n }\n\n debounceTimerId.current = setTimeout(() => {\n debounceTimerId.current = null\n cb(evt)\n }, scrollThrottleMS + scrollEndDebounceMS)\n }\n\n const listener = (evt: Event) => {\n if (onScrollStart) {\n handleScrollStart(evt, onScrollStart)\n }\n if (onScroll) {\n handleScroll(evt, onScroll)\n }\n if (onScrollStart || onScrollEnd) {\n handleScrollEnd(evt, (scrollEvt) => {\n if (onScrollStart) startHandlerLocked.current = false\n if (onScrollEnd) onScrollEnd(scrollEvt)\n })\n }\n }\n\n monitorTarget.addEventListener('scroll', listener, listenerOptions)\n\n return () => {\n monitorTarget.removeEventListener('scroll', listener, listenerOptions)\n }\n }, [target, scrollThrottleMS, scrollEndDebounceMS, onScroll, onScrollStart, onScrollEnd, listenerOptions])\n}\n"],"names":["useScrollMonitor","target","scrollThrottleMS","scrollEndDebounceMS","onScroll","onScrollStart","onScrollEnd","listenerOptions","throttleTimerId","useRef","debounceTimerId","startHandlerLocked","useEffect","monitorTarget","defaultTarget","document","HTMLElement","querySelector","current","getMonitorTarget","listener","evt","handleScrollStart","cb","handleScroll","setTimeout","handleScrollEnd","clearTimeout","scrollEvt","addEventListener","removeEventListener"],"mappings":"oCAsBO,MAAMA,iBAAmBA,EAC9BC,SACAC,mBAAmB,EACnBC,sBAAsB,IACtBC,WACAC,gBACAC,cACAC,sBAUA,MAAMC,EAAkBC,OAA6C,MACrE,MAAMC,EAAkBD,OAA6C,MAErE,MAAME,EAAqBF,QAAgB,GAE3CG,WAAU,KACR,MAAMC,EAzCRZ,KAEA,IAAIY,EAAgB,KACpB,MAAMC,EAAgBC,SAEtB,OAAKd,GAEDA,aAAkBe,YACpBH,EAAgBZ,SACAA,GAAW,SAC3BY,EAAgBE,SAASE,cAAchB,GAC9BA,EAAOiB,mBAAmBF,cACnCH,EAAgBZ,EAAOiB,SAGlBL,GAAiBC,GAVJA,CAUiB,EA0BbK,CAAiBlB,GAmCvC,MAAMmB,SAAYC,IACZhB,GAlCoBiB,EAACD,EAAYE,KACjCZ,EAAmBO,UAEvBK,EAAGF,GACHV,EAAmBO,SAAU,EAAI,EA+B/BI,CAAkBD,EAAKhB,GAErBD,GA9BeoB,EAACH,EAAYE,KAC5BrB,IAAqB,EAKrBM,EAAgBU,UAEpBV,EAAgBU,QAAUO,YAAW,KACnCjB,EAAgBU,QAAU,IAAI,GAC7BhB,GAEHqB,EAAGF,IAVDE,EAAGF,EAUE,EAmBLG,CAAaH,EAAKjB,IAEhBC,GAAiBC,IAlBCoB,CAACL,IACnBX,EAAgBQ,SAClBS,aAAajB,EAAgBQ,SAG/BR,EAAgBQ,QAAUO,YAAW,KAcbG,MAbtBlB,EAAgBQ,QAAU,KAaJU,EAZnBP,EAaGhB,IAAeM,EAAmBO,SAAU,GAC5CZ,GAAaA,EAAYsB,EAdxB,GACN1B,EAAmBC,EAAoB,EAWxCuB,CAAgBL,EAIlB,EAKF,OAFAR,EAAcgB,iBAAiB,SAAUT,SAAUb,GAE5C,KACLM,EAAciB,oBAAoB,SAAUV,SAAUb,EAAgB,CACvE,GACA,CAACN,EAAQC,EAAkBC,EAAqBC,EAAUC,EAAeC,EAAaC,GAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollThresholds.js","sources":["../../../src/hooks/useScrollThresholds.ts"],"sourcesContent":["import { useState, useMemo, useCallback } from 'react'\nimport { useResizeObserver } from 'hooks/useResizeObserver'\nimport { DomTarget } from 'shared/types'\n\nexport const useScrollThresholds = ({ enabled = true, target }: { target: DomTarget; enabled?: boolean }) => {\n const [top, setTop] = useState<boolean | null>(null)\n const [bottom, setBottom] = useState<boolean | null>(null)\n const [left, setLeft] = useState<boolean | null>(null)\n const [right, setRight] = useState<boolean | null>(null)\n\n const scrollThresholds = useMemo(() => ({ top, bottom, left, right }), [top, bottom, left, right])\n\n const setScrollThresholds = useCallback((e: HTMLElement) => {\n if (e.scrollHeight === e.clientHeight) {\n setTop(null)\n setBottom(null)\n } else {\n setTop(e.scrollTop <= 0)\n setBottom(e.scrollHeight - e.clientHeight - e.scrollTop <= 1)\n }\n if (e.scrollWidth === e.clientWidth) {\n setLeft(null)\n setRight(null)\n } else {\n setLeft(e.scrollLeft <= 0)\n setRight(e.scrollWidth - e.clientWidth - e.scrollLeft <= 1)\n }\n }, [])\n\n useResizeObserver({ enabled, target, onResize: setScrollThresholds })\n\n return {\n scrollThresholds,\n setScrollThresholds,\n }\n}\n"],"names":["useScrollThresholds","enabled","target","top","setTop","useState","bottom","setBottom","left","setLeft","right","setRight","scrollThresholds","useMemo","setScrollThresholds","useCallback","e","scrollHeight","clientHeight","scrollTop","scrollWidth","clientWidth","scrollLeft","useResizeObserver","onResize"],"mappings":"4HAImCA,EAAGC,WAAU,EAAMC,aACpD,MAAOC,EAAKC,GAAUC,MAAQA,SAAiB,MAC/C,MAAOC,EAAQC,GAAaF,MAAQA,SAAiB,MACrD,MAAOG,EAAMC,GAAWJ,MAAQA,SAAiB,MACjD,MAAOK,EAAOC,GAAYN,MAAQA,SAAiB,MAEnD,MAAMO,EAAmBC,MAAAA,SAAQ,KAAO,CAAEV,MAAKG,SAAQE,OAAME,WAAU,CAACP,EAAKG,EAAQE,EAAME,IAE3F,MAAMI,EAAsBC,MAAWA,aAAEC,IACnCA,EAAEC,eAAiBD,EAAEE,cACvBd,EAAO,MACPG,EAAU,QAEVH,EAAOY,EAAEG,WAAa,GACtBZ,EAAUS,EAAEC,aAAeD,EAAEE,aAAeF,EAAEG,WAAa,IAEzDH,EAAEI,cAAgBJ,EAAEK,aACtBZ,EAAQ,MACRE,EAAS,QAETF,EAAQO,EAAEM,YAAc,GACxBX,EAASK,EAAEI,YAAcJ,EAAEK,YAAcL,EAAEM,YAAc,GAC3D,GACC,IAIH,OAFAC,oCAAkB,CAAEtB,UAASC,SAAQsB,SAAUV,IAExC,CACLF,mBACAE,sBACD"}
1
+ {"version":3,"file":"useScrollThresholds.js","sources":["../../../src/hooks/useScrollThresholds.ts"],"sourcesContent":["import { useState, useMemo, useCallback } from 'react'\nimport { useResizeObserver } from 'hooks/useResizeObserver'\nimport type { DomTarget } from 'shared/types'\n\nexport const useScrollThresholds = ({ enabled = true, target }: { target: DomTarget; enabled?: boolean }) => {\n const [top, setTop] = useState<boolean | null>(null)\n const [bottom, setBottom] = useState<boolean | null>(null)\n const [left, setLeft] = useState<boolean | null>(null)\n const [right, setRight] = useState<boolean | null>(null)\n\n const scrollThresholds = useMemo(() => ({ top, bottom, left, right }), [top, bottom, left, right])\n\n const setScrollThresholds = useCallback((e: HTMLElement) => {\n if (e.scrollHeight === e.clientHeight) {\n setTop(null)\n setBottom(null)\n } else {\n setTop(e.scrollTop <= 0)\n setBottom(e.scrollHeight - e.clientHeight - e.scrollTop <= 1)\n }\n if (e.scrollWidth === e.clientWidth) {\n setLeft(null)\n setRight(null)\n } else {\n setLeft(e.scrollLeft <= 0)\n setRight(e.scrollWidth - e.clientWidth - e.scrollLeft <= 1)\n }\n }, [])\n\n useResizeObserver({ enabled, target, onResize: setScrollThresholds })\n\n return {\n scrollThresholds,\n setScrollThresholds,\n }\n}\n"],"names":["useScrollThresholds","enabled","target","top","setTop","useState","bottom","setBottom","left","setLeft","right","setRight","scrollThresholds","useMemo","setScrollThresholds","useCallback","e","scrollHeight","clientHeight","scrollTop","scrollWidth","clientWidth","scrollLeft","useResizeObserver","onResize"],"mappings":"4HAImCA,EAAGC,WAAU,EAAMC,aACpD,MAAOC,EAAKC,GAAUC,MAAQA,SAAiB,MAC/C,MAAOC,EAAQC,GAAaF,MAAQA,SAAiB,MACrD,MAAOG,EAAMC,GAAWJ,MAAQA,SAAiB,MACjD,MAAOK,EAAOC,GAAYN,MAAQA,SAAiB,MAEnD,MAAMO,EAAmBC,MAAAA,SAAQ,KAAO,CAAEV,MAAKG,SAAQE,OAAME,WAAU,CAACP,EAAKG,EAAQE,EAAME,IAE3F,MAAMI,EAAsBC,MAAWA,aAAEC,IACnCA,EAAEC,eAAiBD,EAAEE,cACvBd,EAAO,MACPG,EAAU,QAEVH,EAAOY,EAAEG,WAAa,GACtBZ,EAAUS,EAAEC,aAAeD,EAAEE,aAAeF,EAAEG,WAAa,IAEzDH,EAAEI,cAAgBJ,EAAEK,aACtBZ,EAAQ,MACRE,EAAS,QAETF,EAAQO,EAAEM,YAAc,GACxBX,EAASK,EAAEI,YAAcJ,EAAEK,YAAcL,EAAEM,YAAc,GAC3D,GACC,IAIH,OAFAC,oCAAkB,CAAEtB,UAASC,SAAQsB,SAAUV,IAExC,CACLF,mBACAE,sBACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollThresholds.mjs","sources":["../../../src/hooks/useScrollThresholds.ts"],"sourcesContent":["import { useState, useMemo, useCallback } from 'react'\nimport { useResizeObserver } from 'hooks/useResizeObserver'\nimport { DomTarget } from 'shared/types'\n\nexport const useScrollThresholds = ({ enabled = true, target }: { target: DomTarget; enabled?: boolean }) => {\n const [top, setTop] = useState<boolean | null>(null)\n const [bottom, setBottom] = useState<boolean | null>(null)\n const [left, setLeft] = useState<boolean | null>(null)\n const [right, setRight] = useState<boolean | null>(null)\n\n const scrollThresholds = useMemo(() => ({ top, bottom, left, right }), [top, bottom, left, right])\n\n const setScrollThresholds = useCallback((e: HTMLElement) => {\n if (e.scrollHeight === e.clientHeight) {\n setTop(null)\n setBottom(null)\n } else {\n setTop(e.scrollTop <= 0)\n setBottom(e.scrollHeight - e.clientHeight - e.scrollTop <= 1)\n }\n if (e.scrollWidth === e.clientWidth) {\n setLeft(null)\n setRight(null)\n } else {\n setLeft(e.scrollLeft <= 0)\n setRight(e.scrollWidth - e.clientWidth - e.scrollLeft <= 1)\n }\n }, [])\n\n useResizeObserver({ enabled, target, onResize: setScrollThresholds })\n\n return {\n scrollThresholds,\n setScrollThresholds,\n }\n}\n"],"names":["useScrollThresholds","enabled","target","top","setTop","useState","bottom","setBottom","left","setLeft","right","setRight","scrollThresholds","useMemo","setScrollThresholds","useCallback","e","scrollHeight","clientHeight","scrollTop","scrollWidth","clientWidth","scrollLeft","useResizeObserver","onResize"],"mappings":"uGAIO,MAAMA,oBAAsBA,EAAGC,WAAU,EAAMC,aACpD,MAAOC,EAAKC,GAAUC,SAAyB,MAC/C,MAAOC,EAAQC,GAAaF,SAAyB,MACrD,MAAOG,EAAMC,GAAWJ,SAAyB,MACjD,MAAOK,EAAOC,GAAYN,SAAyB,MAEnD,MAAMO,EAAmBC,SAAQ,KAAO,CAAEV,MAAKG,SAAQE,OAAME,WAAU,CAACP,EAAKG,EAAQE,EAAME,IAE3F,MAAMI,EAAsBC,aAAaC,IACnCA,EAAEC,eAAiBD,EAAEE,cACvBd,EAAO,MACPG,EAAU,QAEVH,EAAOY,EAAEG,WAAa,GACtBZ,EAAUS,EAAEC,aAAeD,EAAEE,aAAeF,EAAEG,WAAa,IAEzDH,EAAEI,cAAgBJ,EAAEK,aACtBZ,EAAQ,MACRE,EAAS,QAETF,EAAQO,EAAEM,YAAc,GACxBX,EAASK,EAAEI,YAAcJ,EAAEK,YAAcL,EAAEM,YAAc,GAC3D,GACC,IAIH,OAFAC,kBAAkB,CAAEtB,UAASC,SAAQsB,SAAUV,IAExC,CACLF,mBACAE,sBACD"}
1
+ {"version":3,"file":"useScrollThresholds.mjs","sources":["../../../src/hooks/useScrollThresholds.ts"],"sourcesContent":["import { useState, useMemo, useCallback } from 'react'\nimport { useResizeObserver } from 'hooks/useResizeObserver'\nimport type { DomTarget } from 'shared/types'\n\nexport const useScrollThresholds = ({ enabled = true, target }: { target: DomTarget; enabled?: boolean }) => {\n const [top, setTop] = useState<boolean | null>(null)\n const [bottom, setBottom] = useState<boolean | null>(null)\n const [left, setLeft] = useState<boolean | null>(null)\n const [right, setRight] = useState<boolean | null>(null)\n\n const scrollThresholds = useMemo(() => ({ top, bottom, left, right }), [top, bottom, left, right])\n\n const setScrollThresholds = useCallback((e: HTMLElement) => {\n if (e.scrollHeight === e.clientHeight) {\n setTop(null)\n setBottom(null)\n } else {\n setTop(e.scrollTop <= 0)\n setBottom(e.scrollHeight - e.clientHeight - e.scrollTop <= 1)\n }\n if (e.scrollWidth === e.clientWidth) {\n setLeft(null)\n setRight(null)\n } else {\n setLeft(e.scrollLeft <= 0)\n setRight(e.scrollWidth - e.clientWidth - e.scrollLeft <= 1)\n }\n }, [])\n\n useResizeObserver({ enabled, target, onResize: setScrollThresholds })\n\n return {\n scrollThresholds,\n setScrollThresholds,\n }\n}\n"],"names":["useScrollThresholds","enabled","target","top","setTop","useState","bottom","setBottom","left","setLeft","right","setRight","scrollThresholds","useMemo","setScrollThresholds","useCallback","e","scrollHeight","clientHeight","scrollTop","scrollWidth","clientWidth","scrollLeft","useResizeObserver","onResize"],"mappings":"uGAIO,MAAMA,oBAAsBA,EAAGC,WAAU,EAAMC,aACpD,MAAOC,EAAKC,GAAUC,SAAyB,MAC/C,MAAOC,EAAQC,GAAaF,SAAyB,MACrD,MAAOG,EAAMC,GAAWJ,SAAyB,MACjD,MAAOK,EAAOC,GAAYN,SAAyB,MAEnD,MAAMO,EAAmBC,SAAQ,KAAO,CAAEV,MAAKG,SAAQE,OAAME,WAAU,CAACP,EAAKG,EAAQE,EAAME,IAE3F,MAAMI,EAAsBC,aAAaC,IACnCA,EAAEC,eAAiBD,EAAEE,cACvBd,EAAO,MACPG,EAAU,QAEVH,EAAOY,EAAEG,WAAa,GACtBZ,EAAUS,EAAEC,aAAeD,EAAEE,aAAeF,EAAEG,WAAa,IAEzDH,EAAEI,cAAgBJ,EAAEK,aACtBZ,EAAQ,MACRE,EAAS,QAETF,EAAQO,EAAEM,YAAc,GACxBX,EAASK,EAAEI,YAAcJ,EAAEK,YAAcL,EAAEM,YAAc,GAC3D,GACC,IAIH,OAFAC,kBAAkB,CAAEtB,UAASC,SAAQsB,SAAUV,IAExC,CACLF,mBACAE,sBACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"color.js","sources":["../../../src/mixins/color.ts"],"sourcesContent":["import { css, DefaultTheme, FlattenSimpleInterpolation } from 'styled-components'\nimport type { CSSColor, Color } from 'shared/types'\n\ntype ColorPropertyVariants = 'color' | 'fontColor' | `${string}Color` | `color${string}`\ntype ColorCalcProperty = (_color: CSSColor) => FlattenSimpleInterpolation | null\ntype ColorCssProperty = string | ColorCalcProperty\nexport type ColorProperty<T extends ColorPropertyVariants = 'color'> = {\n /**\n * Color name, HEX, rgb or rgba\n */\n [key in `${T}`]?: Color // eslint-disable-line no-unused-vars\n}\n\nexport const getColor = (color: Color, props: { theme: DefaultTheme }) => {\n if (typeof color === 'string' && (color.includes('#') || color.includes('rgb'))) return color\n\n if (props.theme.colors[color]) return props.theme.colors[color]\n\n return color\n}\n\nexport const color =\n (color?: Color | string, cssProperty: ColorCssProperty = 'color') =>\n () =>\n (props: { theme: DefaultTheme }) => {\n const colorVal = color || props?.theme?.textColor || props?.theme?.fallbackColor\n const _color = getColor(colorVal as Color, props)\n\n if (typeof cssProperty === 'function') {\n return cssProperty(_color)\n }\n\n return css`\n ${cssProperty}: ${_color};\n `\n }\n"],"names":["getColor","color","props","includes","theme","colors","cssProperty","_color","textColor","fallbackColor","css"],"mappings":"2DAaaA,SAAWA,CAACC,EAAcC,WAC1BD,GAAU,WAAaA,EAAME,SAAS,MAAQF,EAAME,SAAS,QAAgBF,EAEpFC,EAAME,MAAMC,OAAOJ,GAAeC,EAAME,MAAMC,OAAOJ,GAElDA,gBAIPA,CAACA,EAAwBK,EAAgC,UACzD,IACCJ,IAEC,MAAMK,EAASP,SADEC,GAASC,GAAOE,OAAOI,WAAaN,GAAOE,OAAOK,cACxBP,GAE3C,cAAWI,GAAgB,WAClBA,EAAYC,GAGdG,OAAAA,IAAG,CAAA,GAAA,IAAA,KACNJ,EAAgBC,EAAM"}
1
+ {"version":3,"file":"color.js","sources":["../../../src/mixins/color.ts"],"sourcesContent":["import { css } from 'styled-components'\nimport type { DefaultTheme, FlattenSimpleInterpolation } from 'styled-components'\nimport type { CSSColor, Color } from 'shared/types'\n\ntype ColorPropertyVariants = 'color' | 'fontColor' | `${string}Color` | `color${string}`\ntype ColorCalcProperty = (_color: CSSColor) => FlattenSimpleInterpolation | null\ntype ColorCssProperty = string | ColorCalcProperty\n\nexport type ColorProperty<T extends ColorPropertyVariants = 'color'> = Partial<Record<T, Color>>\n\nexport const getColor = (color: Color, props: { theme: DefaultTheme }) => {\n if (typeof color === 'string' && (color.includes('#') || color.includes('rgb'))) return color\n\n if (props.theme.colors[color as keyof typeof props.theme.colors]) {\n return props.theme.colors[color as keyof typeof props.theme.colors]\n }\n\n return color\n}\n\nexport const color =\n (name?: Color | string, cssProperty: ColorCssProperty = 'color') =>\n () =>\n (props: { theme: DefaultTheme }) => {\n const colorVal = name || props?.theme?.textColor || props?.theme?.fallbackColor\n const _color = getColor(colorVal as Color, props)\n\n if (typeof cssProperty === 'function') {\n return cssProperty(_color as CSSColor)\n }\n\n return css`\n ${cssProperty}: ${_color};\n `\n }\n"],"names":["getColor","color","props","includes","theme","colors","name","cssProperty","_color","textColor","fallbackColor","css"],"mappings":"2DAUaA,SAAWA,CAACC,EAAcC,WAC1BD,GAAU,WAAaA,EAAME,SAAS,MAAQF,EAAME,SAAS,QAAgBF,EAEpFC,EAAME,MAAMC,OAAOJ,GACdC,EAAME,MAAMC,OAAOJ,GAGrBA,gBAIPA,CAACK,EAAuBC,EAAgC,UACxD,IACCL,IAEC,MAAMM,EAASR,SADEM,GAAQJ,GAAOE,OAAOK,WAAaP,GAAOE,OAAOM,cACvBR,GAE3C,cAAWK,GAAgB,WAClBA,EAAYC,GAGdG,OAAAA,IAAG,CAAA,GAAA,IAAA,KACNJ,EAAgBC,EAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"color.mjs","sources":["../../../src/mixins/color.ts"],"sourcesContent":["import { css, DefaultTheme, FlattenSimpleInterpolation } from 'styled-components'\nimport type { CSSColor, Color } from 'shared/types'\n\ntype ColorPropertyVariants = 'color' | 'fontColor' | `${string}Color` | `color${string}`\ntype ColorCalcProperty = (_color: CSSColor) => FlattenSimpleInterpolation | null\ntype ColorCssProperty = string | ColorCalcProperty\nexport type ColorProperty<T extends ColorPropertyVariants = 'color'> = {\n /**\n * Color name, HEX, rgb or rgba\n */\n [key in `${T}`]?: Color // eslint-disable-line no-unused-vars\n}\n\nexport const getColor = (color: Color, props: { theme: DefaultTheme }) => {\n if (typeof color === 'string' && (color.includes('#') || color.includes('rgb'))) return color\n\n if (props.theme.colors[color]) return props.theme.colors[color]\n\n return color\n}\n\nexport const color =\n (color?: Color | string, cssProperty: ColorCssProperty = 'color') =>\n () =>\n (props: { theme: DefaultTheme }) => {\n const colorVal = color || props?.theme?.textColor || props?.theme?.fallbackColor\n const _color = getColor(colorVal as Color, props)\n\n if (typeof cssProperty === 'function') {\n return cssProperty(_color)\n }\n\n return css`\n ${cssProperty}: ${_color};\n `\n }\n"],"names":["getColor","color","props","includes","theme","colors","cssProperty","_color","textColor","fallbackColor","css"],"mappings":"yCAaaA,SAAWA,CAACC,EAAcC,WAC1BD,GAAU,WAAaA,EAAME,SAAS,MAAQF,EAAME,SAAS,QAAgBF,EAEpFC,EAAME,MAAMC,OAAOJ,GAAeC,EAAME,MAAMC,OAAOJ,GAElDA,EAGIA,MAAAA,MACXA,CAACA,EAAwBK,EAAgC,UACzD,IACCJ,IAEC,MAAMK,EAASP,SADEC,GAASC,GAAOE,OAAOI,WAAaN,GAAOE,OAAOK,cACxBP,GAE3C,cAAWI,GAAgB,WAClBA,EAAYC,GAGdG,IAAG,CAAA,GAAA,IAAA,KACNJ,EAAgBC,EAAM"}
1
+ {"version":3,"file":"color.mjs","sources":["../../../src/mixins/color.ts"],"sourcesContent":["import { css } from 'styled-components'\nimport type { DefaultTheme, FlattenSimpleInterpolation } from 'styled-components'\nimport type { CSSColor, Color } from 'shared/types'\n\ntype ColorPropertyVariants = 'color' | 'fontColor' | `${string}Color` | `color${string}`\ntype ColorCalcProperty = (_color: CSSColor) => FlattenSimpleInterpolation | null\ntype ColorCssProperty = string | ColorCalcProperty\n\nexport type ColorProperty<T extends ColorPropertyVariants = 'color'> = Partial<Record<T, Color>>\n\nexport const getColor = (color: Color, props: { theme: DefaultTheme }) => {\n if (typeof color === 'string' && (color.includes('#') || color.includes('rgb'))) return color\n\n if (props.theme.colors[color as keyof typeof props.theme.colors]) {\n return props.theme.colors[color as keyof typeof props.theme.colors]\n }\n\n return color\n}\n\nexport const color =\n (name?: Color | string, cssProperty: ColorCssProperty = 'color') =>\n () =>\n (props: { theme: DefaultTheme }) => {\n const colorVal = name || props?.theme?.textColor || props?.theme?.fallbackColor\n const _color = getColor(colorVal as Color, props)\n\n if (typeof cssProperty === 'function') {\n return cssProperty(_color as CSSColor)\n }\n\n return css`\n ${cssProperty}: ${_color};\n `\n }\n"],"names":["getColor","color","props","includes","theme","colors","name","cssProperty","_color","textColor","fallbackColor","css"],"mappings":"yCAUaA,SAAWA,CAACC,EAAcC,WAC1BD,GAAU,WAAaA,EAAME,SAAS,MAAQF,EAAME,SAAS,QAAgBF,EAEpFC,EAAME,MAAMC,OAAOJ,GACdC,EAAME,MAAMC,OAAOJ,GAGrBA,EAGIA,MAAAA,MACXA,CAACK,EAAuBC,EAAgC,UACxD,IACCL,IAEC,MAAMM,EAASR,SADEM,GAAQJ,GAAOE,OAAOK,WAAaP,GAAOE,OAAOM,cACvBR,GAE3C,cAAWK,GAAgB,WAClBA,EAAYC,GAGdG,IAAG,CAAA,GAAA,IAAA,KACNJ,EAAgBC,EAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-responsive-props.js","sources":["../../../src/mixins/create-responsive-props.ts"],"sourcesContent":["import { css } from 'styled-components'\nimport type { ThemedStyledProps, DefaultTheme, CSSObject, FlattenInterpolation, ThemeProps } from 'styled-components'\nimport { screenMinM, screenMaxM, screenMaxS, screenMinL, screenMaxL, screenMaxXs, screenMaxXxs } from 'mixins/screen'\nimport { getMediaQueryByResponsiveProp, desktopFirst } from 'mixins/shared'\nimport type { MediaQuery } from 'mixins/screen'\nimport type { ResponsivePropKey } from 'shared/types'\nimport type { ResponsiveProps } from 'shared/interfaces'\n\ntype MediaFunction = ReturnType<ReturnType<MediaQuery>>\n\n/**\n *\n * Factory to create mixins to enable responsive interface for any set of props\n */\nfunction createResponsivePropsMixin<K extends ResponsivePropKey, V, P extends ResponsiveProps<K, V>>(\n propsKeys: K[],\n buildCSSObject: (propKey: K, propValue: V, props: ThemedStyledProps<P, DefaultTheme>) => CSSObject\n): (props: ThemedStyledProps<P, DefaultTheme>) => FlattenInterpolation<ThemeProps<DefaultTheme>> {\n const propsRegExp = new RegExp(`^(${propsKeys.join('|')})$`)\n const breakpointsPropsRegExp = new RegExp(`^(${propsKeys.join('|')})(XXS|XS|S|M|L|XL)$`)\n const breakpointsRegExp = /(XXS|XS|S|M|L|XL)$/\n\n const deviceQueries = [screenMinM, screenMaxM, screenMaxS]\n const breakpointsQueries = [screenMinL, screenMaxL, screenMaxM, screenMaxS, screenMaxXs, screenMaxXxs]\n\n return (props) => {\n const propsKeys = Object.keys(props).reduce(\n (groups, propKey) => {\n if (propsRegExp.test(propKey)) groups[0].push(propKey)\n else if (breakpointsPropsRegExp.test(propKey)) groups[1].push(propKey)\n\n return groups\n },\n [[], []] as [string[], string[]]\n )\n\n const interpolations = propsKeys[0].reduce((acc, propKey) => {\n const propValue: V | V[] = props[propKey]\n\n if (!Array.isArray(propValue)) {\n const cssObject = buildCSSObject(propKey as K, propValue, props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(cssObject)\n }\n } else if (propValue.length > 0) {\n const mediaFunctions: MediaFunction[] = []\n const queries = propValue.length > deviceQueries.length ? breakpointsQueries : deviceQueries\n\n for (let i = 0; i < propValue.length; i++) {\n if (!queries[i]) break\n\n const cssObject = buildCSSObject(propKey as K, propValue[i], props)\n\n if (Object.keys(cssObject).length > 0) {\n mediaFunctions.push(queries[i]()`${cssObject}`)\n }\n }\n\n acc.push(...mediaFunctions)\n }\n\n return acc\n }, [] as (CSSObject | MediaFunction)[])\n\n const breakpointsInterpolations = propsKeys[1].sort(desktopFirst).reduce((acc, propKey) => {\n const cssObject = buildCSSObject(propKey.replace(breakpointsRegExp, '') as K, props[propKey], props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(getMediaQueryByResponsiveProp(propKey)()`${cssObject}`)\n }\n\n return acc\n }, [] as MediaFunction[])\n\n return css`\n ${interpolations}\n ${breakpointsInterpolations}\n `\n }\n}\n\nexport type { ResponsiveProps }\n\nexport { createResponsivePropsMixin }\n"],"names":["propsKeys","buildCSSObject","propsRegExp","RegExp","join","breakpointsPropsRegExp","breakpointsRegExp","deviceQueries","screenMinM","screenMaxM","screenMaxS","breakpointsQueries","screenMinL","screenMaxL","screenMaxXs","screenMaxXxs","props","Object","keys","reduce","groups","propKey","test","push","interpolations","acc","propValue","Array","isArray","length","mediaFunctions","queries","i","cssObject","breakpointsInterpolations","sort","desktopFirst","replace","getMediaQueryByResponsiveProp","css"],"mappings":"4JAcA,CACEA,EACAC,KAEA,MAAMC,EAAc,IAAIC,OAAO,KAAKH,EAAUI,KAAK,UACnD,MAAMC,EAAyB,IAAIF,OAAO,KAAKH,EAAUI,KAAK,2BAC9D,MAAME,EAAoB,qBAE1B,MAAMC,EAAgB,CAACC,OAAAA,WAAYC,OAAUA,WAAEC,OAAUA,YACzD,MAAMC,EAAqB,CAACC,OAAAA,WAAYC,OAAUA,WAAEJ,OAAUA,WAAEC,kBAAYI,OAAAA,YAAaC,OAAAA,cAEzF,OAAQC,IACN,MAAMhB,EAAYiB,OAAOC,KAAKF,GAAOG,QACnC,CAACC,EAAQC,KACHnB,EAAYoB,KAAKD,GAAUD,EAAO,GAAGG,KAAKF,GACrChB,EAAuBiB,KAAKD,IAAUD,EAAO,GAAGG,KAAKF,GAEvDD,IAET,CAAC,GAAI,KAGP,MAAMI,EAAiBxB,EAAU,GAAGmB,QAAO,CAACM,EAAKJ,KAC/C,MAAMK,EAAqBV,EAAMK,GAEjC,GAAKM,MAAMC,QAAQF,IAMZ,GAAIA,EAAUG,OAAS,EAAG,CAC/B,MAAMC,EAAkC,GACxC,MAAMC,EAAUL,EAAUG,OAAStB,EAAcsB,OAASlB,EAAqBJ,EAE/E,IAAK,IAAIyB,EAAI,EAAGA,EAAIN,EAAUG,QACvBE,EAAQC,GADuBA,IAAK,CAGzC,MAAMC,EAAYhC,EAAeoB,EAAcK,EAAUM,GAAIhB,GAEzDC,OAAOC,KAAKe,GAAWJ,OAAS,GAClCC,EAAeP,KAAKQ,EAAQC,IAAI,GAAGC,IAEvC,CAEAR,EAAIF,QAAQO,EACd,MArB+B,CAC7B,MAAMG,EAAYhC,EAAeoB,EAAcK,EAAWV,GAEtDC,OAAOC,KAAKe,GAAWJ,OAAS,GAClCJ,EAAIF,KAAKU,EAEb,CAiBA,OAAOR,CAAG,GACT,IAEH,MAAMS,EAA4BlC,EAAU,GAAGmC,KAAKC,OAAYA,cAAEjB,QAAO,CAACM,EAAKJ,KAC7E,MAAMY,EAAYhC,EAAeoB,EAAQgB,QAAQ/B,EAAmB,IAAUU,EAAMK,GAAUL,GAM9F,OAJIC,OAAOC,KAAKe,GAAWJ,OAAS,GAClCJ,EAAIF,KAAKe,qCAA8BjB,EAA9BiB,EAAwC,GAAGL,KAG/CR,CAAG,GACT,IAEH,OAAOc,OAAAA,IAAG,CAAA,GAAA,IAAA,IACNf,EACAU,EAAyB,CAGjC"}
1
+ {"version":3,"file":"create-responsive-props.js","sources":["../../../src/mixins/create-responsive-props.ts"],"sourcesContent":["import { css } from 'styled-components'\nimport type { ThemedStyledProps, DefaultTheme, CSSObject, FlattenInterpolation, ThemeProps } from 'styled-components'\nimport { screenMinM, screenMaxM, screenMaxS, screenMinL, screenMaxL, screenMaxXs, screenMaxXxs } from 'mixins/screen'\nimport { getMediaQueryByResponsiveProp, desktopFirst } from 'mixins/shared'\nimport type { MediaQuery } from 'mixins/screen'\nimport type { ResponsivePropKey } from 'shared/types'\nimport type { ResponsiveProps } from 'shared/interfaces'\n\ntype MediaFunction = ReturnType<ReturnType<MediaQuery>>\n\n/**\n *\n * Factory to create mixins to enable responsive interface for any set of props\n */\nfunction createResponsivePropsMixin<K extends ResponsivePropKey, V, P extends ResponsiveProps<K, V>>(\n propsNames: K[],\n buildCSSObject: (propKey: K, propValue: V, props: ThemedStyledProps<P, DefaultTheme>) => CSSObject\n): (props: ThemedStyledProps<P, DefaultTheme>) => FlattenInterpolation<ThemeProps<DefaultTheme>> {\n const propsRegExp = new RegExp(`^(${propsNames.join('|')})$`)\n const breakpointsPropsRegExp = new RegExp(`^(${propsNames.join('|')})(XXS|XS|S|M|L|XL)$`)\n const breakpointsRegExp = /(XXS|XS|S|M|L|XL)$/\n\n const deviceQueries = [screenMinM, screenMaxM, screenMaxS]\n const breakpointsQueries = [screenMinL, screenMaxL, screenMaxM, screenMaxS, screenMaxXs, screenMaxXxs]\n\n return (props) => {\n const propsKeys = Object.keys(props).reduce(\n (groups, propKey) => {\n if (propsRegExp.test(propKey)) groups[0].push(propKey)\n else if (breakpointsPropsRegExp.test(propKey)) groups[1].push(propKey)\n\n return groups\n },\n [[], []] as [string[], string[]]\n )\n\n const interpolations = propsKeys[0].reduce(\n (acc, propKey) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const propValue: V | V[] = props[propKey]\n\n if (!Array.isArray(propValue)) {\n const cssObject = buildCSSObject(propKey as K, propValue, props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(cssObject)\n }\n } else if (propValue.length > 0) {\n const mediaFunctions: MediaFunction[] = []\n const queries = propValue.length > deviceQueries.length ? breakpointsQueries : deviceQueries\n\n for (let i = 0; i < propValue.length; i++) {\n if (!queries[i]) break\n\n const cssObject = buildCSSObject(propKey as K, propValue[i], props)\n\n if (Object.keys(cssObject).length > 0) {\n mediaFunctions.push(queries[i]()`${cssObject}`)\n }\n }\n\n acc.push(...mediaFunctions)\n }\n\n return acc\n },\n [] as (CSSObject | MediaFunction)[]\n )\n\n const breakpointsInterpolations = propsKeys[1].sort(desktopFirst).reduce((acc, propKey) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const cssObject = buildCSSObject(propKey.replace(breakpointsRegExp, '') as K, props[propKey], props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(getMediaQueryByResponsiveProp(propKey)()`${cssObject}`)\n }\n\n return acc\n }, [] as MediaFunction[])\n\n return css`\n ${interpolations}\n ${breakpointsInterpolations}\n `\n }\n}\n\nexport type { ResponsiveProps }\n\nexport { createResponsivePropsMixin }\n"],"names":["propsNames","buildCSSObject","propsRegExp","RegExp","join","breakpointsPropsRegExp","breakpointsRegExp","deviceQueries","screenMinM","screenMaxM","screenMaxS","breakpointsQueries","screenMinL","screenMaxL","screenMaxXs","screenMaxXxs","props","propsKeys","Object","keys","reduce","groups","propKey","test","push","interpolations","acc","propValue","Array","isArray","length","mediaFunctions","queries","i","cssObject","breakpointsInterpolations","sort","desktopFirst","replace","getMediaQueryByResponsiveProp","css"],"mappings":"4JAcA,CACEA,EACAC,KAEA,MAAMC,EAAc,IAAIC,OAAO,KAAKH,EAAWI,KAAK,UACpD,MAAMC,EAAyB,IAAIF,OAAO,KAAKH,EAAWI,KAAK,2BAC/D,MAAME,EAAoB,qBAE1B,MAAMC,EAAgB,CAACC,OAAAA,WAAYC,OAAUA,WAAEC,OAAUA,YACzD,MAAMC,EAAqB,CAACC,OAAAA,WAAYC,OAAUA,WAAEJ,OAAUA,WAAEC,kBAAYI,OAAAA,YAAaC,OAAAA,cAEzF,OAAQC,IACN,MAAMC,EAAYC,OAAOC,KAAKH,GAAOI,QACnC,CAACC,EAAQC,KACHpB,EAAYqB,KAAKD,GAAUD,EAAO,GAAGG,KAAKF,GACrCjB,EAAuBkB,KAAKD,IAAUD,EAAO,GAAGG,KAAKF,GAEvDD,IAET,CAAC,GAAI,KAGP,MAAMI,EAAiBR,EAAU,GAAGG,QAClC,CAACM,EAAKJ,KAGJ,MAAMK,EAAqBX,EAAMM,GAEjC,GAAKM,MAAMC,QAAQF,IAMZ,GAAIA,EAAUG,OAAS,EAAG,CAC/B,MAAMC,EAAkC,GACxC,MAAMC,EAAUL,EAAUG,OAASvB,EAAcuB,OAASnB,EAAqBJ,EAE/E,IAAK,IAAI0B,EAAI,EAAGA,EAAIN,EAAUG,QACvBE,EAAQC,GADuBA,IAAK,CAGzC,MAAMC,EAAYjC,EAAeqB,EAAcK,EAAUM,GAAIjB,GAEzDE,OAAOC,KAAKe,GAAWJ,OAAS,GAClCC,EAAeP,KAAKQ,EAAQC,IAAI,GAAGC,IAEvC,CAEAR,EAAIF,QAAQO,EACd,MArB+B,CAC7B,MAAMG,EAAYjC,EAAeqB,EAAcK,EAAWX,GAEtDE,OAAOC,KAAKe,GAAWJ,OAAS,GAClCJ,EAAIF,KAAKU,EAEb,CAiBA,OAAOR,CAAG,GAEZ,IAGF,MAAMS,EAA4BlB,EAAU,GAAGmB,KAAKC,OAAYA,cAAEjB,QAAO,CAACM,EAAKJ,KAG7E,MAAMY,EAAYjC,EAAeqB,EAAQgB,QAAQhC,EAAmB,IAAUU,EAAMM,GAAUN,GAM9F,OAJIE,OAAOC,KAAKe,GAAWJ,OAAS,GAClCJ,EAAIF,KAAKe,qCAA8BjB,EAA9BiB,EAAwC,GAAGL,KAG/CR,CAAG,GACT,IAEH,OAAOc,OAAAA,IAAG,CAAA,GAAA,IAAA,IACNf,EACAU,EAAyB,CAGjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-responsive-props.mjs","sources":["../../../src/mixins/create-responsive-props.ts"],"sourcesContent":["import { css } from 'styled-components'\nimport type { ThemedStyledProps, DefaultTheme, CSSObject, FlattenInterpolation, ThemeProps } from 'styled-components'\nimport { screenMinM, screenMaxM, screenMaxS, screenMinL, screenMaxL, screenMaxXs, screenMaxXxs } from 'mixins/screen'\nimport { getMediaQueryByResponsiveProp, desktopFirst } from 'mixins/shared'\nimport type { MediaQuery } from 'mixins/screen'\nimport type { ResponsivePropKey } from 'shared/types'\nimport type { ResponsiveProps } from 'shared/interfaces'\n\ntype MediaFunction = ReturnType<ReturnType<MediaQuery>>\n\n/**\n *\n * Factory to create mixins to enable responsive interface for any set of props\n */\nfunction createResponsivePropsMixin<K extends ResponsivePropKey, V, P extends ResponsiveProps<K, V>>(\n propsKeys: K[],\n buildCSSObject: (propKey: K, propValue: V, props: ThemedStyledProps<P, DefaultTheme>) => CSSObject\n): (props: ThemedStyledProps<P, DefaultTheme>) => FlattenInterpolation<ThemeProps<DefaultTheme>> {\n const propsRegExp = new RegExp(`^(${propsKeys.join('|')})$`)\n const breakpointsPropsRegExp = new RegExp(`^(${propsKeys.join('|')})(XXS|XS|S|M|L|XL)$`)\n const breakpointsRegExp = /(XXS|XS|S|M|L|XL)$/\n\n const deviceQueries = [screenMinM, screenMaxM, screenMaxS]\n const breakpointsQueries = [screenMinL, screenMaxL, screenMaxM, screenMaxS, screenMaxXs, screenMaxXxs]\n\n return (props) => {\n const propsKeys = Object.keys(props).reduce(\n (groups, propKey) => {\n if (propsRegExp.test(propKey)) groups[0].push(propKey)\n else if (breakpointsPropsRegExp.test(propKey)) groups[1].push(propKey)\n\n return groups\n },\n [[], []] as [string[], string[]]\n )\n\n const interpolations = propsKeys[0].reduce((acc, propKey) => {\n const propValue: V | V[] = props[propKey]\n\n if (!Array.isArray(propValue)) {\n const cssObject = buildCSSObject(propKey as K, propValue, props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(cssObject)\n }\n } else if (propValue.length > 0) {\n const mediaFunctions: MediaFunction[] = []\n const queries = propValue.length > deviceQueries.length ? breakpointsQueries : deviceQueries\n\n for (let i = 0; i < propValue.length; i++) {\n if (!queries[i]) break\n\n const cssObject = buildCSSObject(propKey as K, propValue[i], props)\n\n if (Object.keys(cssObject).length > 0) {\n mediaFunctions.push(queries[i]()`${cssObject}`)\n }\n }\n\n acc.push(...mediaFunctions)\n }\n\n return acc\n }, [] as (CSSObject | MediaFunction)[])\n\n const breakpointsInterpolations = propsKeys[1].sort(desktopFirst).reduce((acc, propKey) => {\n const cssObject = buildCSSObject(propKey.replace(breakpointsRegExp, '') as K, props[propKey], props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(getMediaQueryByResponsiveProp(propKey)()`${cssObject}`)\n }\n\n return acc\n }, [] as MediaFunction[])\n\n return css`\n ${interpolations}\n ${breakpointsInterpolations}\n `\n }\n}\n\nexport type { ResponsiveProps }\n\nexport { createResponsivePropsMixin }\n"],"names":["createResponsivePropsMixin","propsKeys","buildCSSObject","propsRegExp","RegExp","join","breakpointsPropsRegExp","breakpointsRegExp","deviceQueries","screenMinM","screenMaxM","screenMaxS","breakpointsQueries","screenMinL","screenMaxL","screenMaxXs","screenMaxXxs","props","Object","keys","reduce","groups","propKey","test","push","interpolations","acc","propValue","Array","isArray","length","mediaFunctions","queries","i","cssObject","breakpointsInterpolations","sort","desktopFirst","replace","getMediaQueryByResponsiveProp","css"],"mappings":"kNAcA,SAASA,2BACPC,EACAC,GAEA,MAAMC,EAAc,IAAIC,OAAO,KAAKH,EAAUI,KAAK,UACnD,MAAMC,EAAyB,IAAIF,OAAO,KAAKH,EAAUI,KAAK,2BAC9D,MAAME,EAAoB,qBAE1B,MAAMC,EAAgB,CAACC,WAAYC,WAAYC,YAC/C,MAAMC,EAAqB,CAACC,WAAYC,WAAYJ,WAAYC,WAAYI,YAAaC,cAEzF,OAAQC,IACN,MAAMhB,EAAYiB,OAAOC,KAAKF,GAAOG,QACnC,CAACC,EAAQC,KACHnB,EAAYoB,KAAKD,GAAUD,EAAO,GAAGG,KAAKF,GACrChB,EAAuBiB,KAAKD,IAAUD,EAAO,GAAGG,KAAKF,GAEvDD,IAET,CAAC,GAAI,KAGP,MAAMI,EAAiBxB,EAAU,GAAGmB,QAAO,CAACM,EAAKJ,KAC/C,MAAMK,EAAqBV,EAAMK,GAEjC,GAAKM,MAAMC,QAAQF,IAMZ,GAAIA,EAAUG,OAAS,EAAG,CAC/B,MAAMC,EAAkC,GACxC,MAAMC,EAAUL,EAAUG,OAAStB,EAAcsB,OAASlB,EAAqBJ,EAE/E,IAAK,IAAIyB,EAAI,EAAGA,EAAIN,EAAUG,QACvBE,EAAQC,GADuBA,IAAK,CAGzC,MAAMC,EAAYhC,EAAeoB,EAAcK,EAAUM,GAAIhB,GAEzDC,OAAOC,KAAKe,GAAWJ,OAAS,GAClCC,EAAeP,KAAKQ,EAAQC,IAAI,GAAGC,IAEvC,CAEAR,EAAIF,QAAQO,EACd,MArB+B,CAC7B,MAAMG,EAAYhC,EAAeoB,EAAcK,EAAWV,GAEtDC,OAAOC,KAAKe,GAAWJ,OAAS,GAClCJ,EAAIF,KAAKU,EAEb,CAiBA,OAAOR,CAAG,GACT,IAEH,MAAMS,EAA4BlC,EAAU,GAAGmC,KAAKC,cAAcjB,QAAO,CAACM,EAAKJ,KAC7E,MAAMY,EAAYhC,EAAeoB,EAAQgB,QAAQ/B,EAAmB,IAAUU,EAAMK,GAAUL,GAM9F,OAJIC,OAAOC,KAAKe,GAAWJ,OAAS,GAClCJ,EAAIF,KAAKe,8BAA8BjB,EAA9BiB,EAAwC,GAAGL,KAG/CR,CAAG,GACT,IAEH,OAAOc,IAAG,CAAA,GAAA,IAAA,IACNf,EACAU,EAAyB,CAGjC"}
1
+ {"version":3,"file":"create-responsive-props.mjs","sources":["../../../src/mixins/create-responsive-props.ts"],"sourcesContent":["import { css } from 'styled-components'\nimport type { ThemedStyledProps, DefaultTheme, CSSObject, FlattenInterpolation, ThemeProps } from 'styled-components'\nimport { screenMinM, screenMaxM, screenMaxS, screenMinL, screenMaxL, screenMaxXs, screenMaxXxs } from 'mixins/screen'\nimport { getMediaQueryByResponsiveProp, desktopFirst } from 'mixins/shared'\nimport type { MediaQuery } from 'mixins/screen'\nimport type { ResponsivePropKey } from 'shared/types'\nimport type { ResponsiveProps } from 'shared/interfaces'\n\ntype MediaFunction = ReturnType<ReturnType<MediaQuery>>\n\n/**\n *\n * Factory to create mixins to enable responsive interface for any set of props\n */\nfunction createResponsivePropsMixin<K extends ResponsivePropKey, V, P extends ResponsiveProps<K, V>>(\n propsNames: K[],\n buildCSSObject: (propKey: K, propValue: V, props: ThemedStyledProps<P, DefaultTheme>) => CSSObject\n): (props: ThemedStyledProps<P, DefaultTheme>) => FlattenInterpolation<ThemeProps<DefaultTheme>> {\n const propsRegExp = new RegExp(`^(${propsNames.join('|')})$`)\n const breakpointsPropsRegExp = new RegExp(`^(${propsNames.join('|')})(XXS|XS|S|M|L|XL)$`)\n const breakpointsRegExp = /(XXS|XS|S|M|L|XL)$/\n\n const deviceQueries = [screenMinM, screenMaxM, screenMaxS]\n const breakpointsQueries = [screenMinL, screenMaxL, screenMaxM, screenMaxS, screenMaxXs, screenMaxXxs]\n\n return (props) => {\n const propsKeys = Object.keys(props).reduce(\n (groups, propKey) => {\n if (propsRegExp.test(propKey)) groups[0].push(propKey)\n else if (breakpointsPropsRegExp.test(propKey)) groups[1].push(propKey)\n\n return groups\n },\n [[], []] as [string[], string[]]\n )\n\n const interpolations = propsKeys[0].reduce(\n (acc, propKey) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const propValue: V | V[] = props[propKey]\n\n if (!Array.isArray(propValue)) {\n const cssObject = buildCSSObject(propKey as K, propValue, props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(cssObject)\n }\n } else if (propValue.length > 0) {\n const mediaFunctions: MediaFunction[] = []\n const queries = propValue.length > deviceQueries.length ? breakpointsQueries : deviceQueries\n\n for (let i = 0; i < propValue.length; i++) {\n if (!queries[i]) break\n\n const cssObject = buildCSSObject(propKey as K, propValue[i], props)\n\n if (Object.keys(cssObject).length > 0) {\n mediaFunctions.push(queries[i]()`${cssObject}`)\n }\n }\n\n acc.push(...mediaFunctions)\n }\n\n return acc\n },\n [] as (CSSObject | MediaFunction)[]\n )\n\n const breakpointsInterpolations = propsKeys[1].sort(desktopFirst).reduce((acc, propKey) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const cssObject = buildCSSObject(propKey.replace(breakpointsRegExp, '') as K, props[propKey], props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(getMediaQueryByResponsiveProp(propKey)()`${cssObject}`)\n }\n\n return acc\n }, [] as MediaFunction[])\n\n return css`\n ${interpolations}\n ${breakpointsInterpolations}\n `\n }\n}\n\nexport type { ResponsiveProps }\n\nexport { createResponsivePropsMixin }\n"],"names":["createResponsivePropsMixin","propsNames","buildCSSObject","propsRegExp","RegExp","join","breakpointsPropsRegExp","breakpointsRegExp","deviceQueries","screenMinM","screenMaxM","screenMaxS","breakpointsQueries","screenMinL","screenMaxL","screenMaxXs","screenMaxXxs","props","propsKeys","Object","keys","reduce","groups","propKey","test","push","interpolations","acc","propValue","Array","isArray","length","mediaFunctions","queries","i","cssObject","breakpointsInterpolations","sort","desktopFirst","replace","getMediaQueryByResponsiveProp","css"],"mappings":"kNAcA,SAASA,2BACPC,EACAC,GAEA,MAAMC,EAAc,IAAIC,OAAO,KAAKH,EAAWI,KAAK,UACpD,MAAMC,EAAyB,IAAIF,OAAO,KAAKH,EAAWI,KAAK,2BAC/D,MAAME,EAAoB,qBAE1B,MAAMC,EAAgB,CAACC,WAAYC,WAAYC,YAC/C,MAAMC,EAAqB,CAACC,WAAYC,WAAYJ,WAAYC,WAAYI,YAAaC,cAEzF,OAAQC,IACN,MAAMC,EAAYC,OAAOC,KAAKH,GAAOI,QACnC,CAACC,EAAQC,KACHpB,EAAYqB,KAAKD,GAAUD,EAAO,GAAGG,KAAKF,GACrCjB,EAAuBkB,KAAKD,IAAUD,EAAO,GAAGG,KAAKF,GAEvDD,IAET,CAAC,GAAI,KAGP,MAAMI,EAAiBR,EAAU,GAAGG,QAClC,CAACM,EAAKJ,KAGJ,MAAMK,EAAqBX,EAAMM,GAEjC,GAAKM,MAAMC,QAAQF,IAMZ,GAAIA,EAAUG,OAAS,EAAG,CAC/B,MAAMC,EAAkC,GACxC,MAAMC,EAAUL,EAAUG,OAASvB,EAAcuB,OAASnB,EAAqBJ,EAE/E,IAAK,IAAI0B,EAAI,EAAGA,EAAIN,EAAUG,QACvBE,EAAQC,GADuBA,IAAK,CAGzC,MAAMC,EAAYjC,EAAeqB,EAAcK,EAAUM,GAAIjB,GAEzDE,OAAOC,KAAKe,GAAWJ,OAAS,GAClCC,EAAeP,KAAKQ,EAAQC,IAAI,GAAGC,IAEvC,CAEAR,EAAIF,QAAQO,EACd,MArB+B,CAC7B,MAAMG,EAAYjC,EAAeqB,EAAcK,EAAWX,GAEtDE,OAAOC,KAAKe,GAAWJ,OAAS,GAClCJ,EAAIF,KAAKU,EAEb,CAiBA,OAAOR,CAAG,GAEZ,IAGF,MAAMS,EAA4BlB,EAAU,GAAGmB,KAAKC,cAAcjB,QAAO,CAACM,EAAKJ,KAG7E,MAAMY,EAAYjC,EAAeqB,EAAQgB,QAAQhC,EAAmB,IAAUU,EAAMM,GAAUN,GAM9F,OAJIE,OAAOC,KAAKe,GAAWJ,OAAS,GAClCJ,EAAIF,KAAKe,8BAA8BjB,EAA9BiB,EAAwC,GAAGL,KAG/CR,CAAG,GACT,IAEH,OAAOc,IAAG,CAAA,GAAA,IAAA,IACNf,EACAU,EAAyB,CAGjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sources":["../../../src/mixins/display.ts"],"sourcesContent":["import { css } from 'styled-components'\n\ntype Display = 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'table-cell' | 'inherit' | 'none'\n\nexport interface DisplayProperty {\n display?: Display\n}\n\nexport const display = (display: Display) => () =>\n css`\n display: ${display};\n `\n"],"names":["display","css"],"mappings":"qEAQwBA,GAAqB,IAC3CC,OAAAA,IACaD,CAAAA,WAAAA,KAAAA"}
1
+ {"version":3,"file":"display.js","sources":["../../../src/mixins/display.ts"],"sourcesContent":["import { css } from 'styled-components'\n\ntype Display = 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'table-cell' | 'inherit' | 'none'\n\nexport interface DisplayProperty {\n display?: Display\n}\n\nexport const display = (value: Display) => () => css`\n display: ${value};\n`\n"],"names":["value","css"],"mappings":"qEAQwBA,GAAmB,IAAMC,OAAAA,IACpCD,CAAAA,WAAAA,KAAAA"}