@qoretechnologies/reqore 0.78.6-pr.715.gdfefa70 → 0.78.7-pr.717.gae33bdc

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 (366) hide show
  1. package/.claude/CLAUDE.md +14 -0
  2. package/dist/components/Accordion/index.d.ts.map +1 -1
  3. package/dist/components/Accordion/index.js +73 -23
  4. package/dist/components/Accordion/index.js.map +1 -1
  5. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  6. package/dist/components/Breadcrumbs/index.js +344 -44
  7. package/dist/components/Breadcrumbs/index.js.map +1 -1
  8. package/dist/components/Breadcrumbs/item.d.ts.map +1 -1
  9. package/dist/components/Breadcrumbs/item.js +6 -2
  10. package/dist/components/Breadcrumbs/item.js.map +1 -1
  11. package/dist/components/Bubble/index.d.ts.map +1 -1
  12. package/dist/components/Bubble/index.js +20 -43
  13. package/dist/components/Bubble/index.js.map +1 -1
  14. package/dist/components/Button/index.d.ts +75 -0
  15. package/dist/components/Button/index.d.ts.map +1 -1
  16. package/dist/components/Button/index.js +324 -110
  17. package/dist/components/Button/index.js.map +1 -1
  18. package/dist/components/ButtonRail/index.d.ts.map +1 -1
  19. package/dist/components/ButtonRail/index.js +3 -2
  20. package/dist/components/ButtonRail/index.js.map +1 -1
  21. package/dist/components/Callout/index.d.ts +4 -3
  22. package/dist/components/Callout/index.d.ts.map +1 -1
  23. package/dist/components/Callout/index.js +78 -27
  24. package/dist/components/Callout/index.js.map +1 -1
  25. package/dist/components/Checkbox/index.d.ts.map +1 -1
  26. package/dist/components/Checkbox/index.js +120 -44
  27. package/dist/components/Checkbox/index.js.map +1 -1
  28. package/dist/components/Collapse/index.d.ts.map +1 -1
  29. package/dist/components/Collapse/index.js +7 -36
  30. package/dist/components/Collapse/index.js.map +1 -1
  31. package/dist/components/CollapsibleContent/index.d.ts.map +1 -1
  32. package/dist/components/CollapsibleContent/index.js +11 -39
  33. package/dist/components/CollapsibleContent/index.js.map +1 -1
  34. package/dist/components/Collection/index.js +3 -3
  35. package/dist/components/Collection/index.js.map +1 -1
  36. package/dist/components/Collection/item.d.ts.map +1 -1
  37. package/dist/components/Collection/item.js +4 -4
  38. package/dist/components/Collection/item.js.map +1 -1
  39. package/dist/components/Columns/column.d.ts.map +1 -1
  40. package/dist/components/Columns/column.js +6 -35
  41. package/dist/components/Columns/column.js.map +1 -1
  42. package/dist/components/Columns/index.d.ts.map +1 -1
  43. package/dist/components/Columns/index.js +3 -35
  44. package/dist/components/Columns/index.js.map +1 -1
  45. package/dist/components/Comment/index.js +8 -8
  46. package/dist/components/Comment/index.js.map +1 -1
  47. package/dist/components/CommentFeed/index.js +2 -2
  48. package/dist/components/CommentFeed/index.js.map +1 -1
  49. package/dist/components/Content/index.d.ts.map +1 -1
  50. package/dist/components/Content/index.js +3 -35
  51. package/dist/components/Content/index.js.map +1 -1
  52. package/dist/components/Content/wrapper.js +2 -2
  53. package/dist/components/Content/wrapper.js.map +1 -1
  54. package/dist/components/ControlGroup/index.d.ts.map +1 -1
  55. package/dist/components/ControlGroup/index.js +52 -19
  56. package/dist/components/ControlGroup/index.js.map +1 -1
  57. package/dist/components/ControlGroup/item.d.ts.map +1 -1
  58. package/dist/components/ControlGroup/item.js +35 -6
  59. package/dist/components/ControlGroup/item.js.map +1 -1
  60. package/dist/components/DataView/index.d.ts.map +1 -1
  61. package/dist/components/DataView/index.js +35 -65
  62. package/dist/components/DataView/index.js.map +1 -1
  63. package/dist/components/DatePicker/index.d.ts.map +1 -1
  64. package/dist/components/DatePicker/index.js +40 -8
  65. package/dist/components/DatePicker/index.js.map +1 -1
  66. package/dist/components/DescriptionList/index.d.ts.map +1 -1
  67. package/dist/components/DescriptionList/index.js +36 -42
  68. package/dist/components/DescriptionList/index.js.map +1 -1
  69. package/dist/components/Drawer/backdrop.d.ts.map +1 -1
  70. package/dist/components/Drawer/backdrop.js +35 -6
  71. package/dist/components/Drawer/backdrop.js.map +1 -1
  72. package/dist/components/Drawer/index.d.ts.map +1 -1
  73. package/dist/components/Drawer/index.js +77 -66
  74. package/dist/components/Drawer/index.js.map +1 -1
  75. package/dist/components/Dropdown/index.d.ts.map +1 -1
  76. package/dist/components/Dropdown/index.js +3 -1
  77. package/dist/components/Dropdown/index.js.map +1 -1
  78. package/dist/components/Dropdown/list.d.ts.map +1 -1
  79. package/dist/components/Dropdown/list.js +90 -19
  80. package/dist/components/Dropdown/list.js.map +1 -1
  81. package/dist/components/Effect/index.d.ts +37 -6
  82. package/dist/components/Effect/index.d.ts.map +1 -1
  83. package/dist/components/Effect/index.js +216 -49
  84. package/dist/components/Effect/index.js.map +1 -1
  85. package/dist/components/EntityRow/index.d.ts +19 -1
  86. package/dist/components/EntityRow/index.d.ts.map +1 -1
  87. package/dist/components/EntityRow/index.js +139 -44
  88. package/dist/components/EntityRow/index.js.map +1 -1
  89. package/dist/components/FadeScroller/index.d.ts.map +1 -1
  90. package/dist/components/FadeScroller/index.js +14 -64
  91. package/dist/components/FadeScroller/index.js.map +1 -1
  92. package/dist/components/FeatureCard/index.d.ts +7 -1
  93. package/dist/components/FeatureCard/index.d.ts.map +1 -1
  94. package/dist/components/FeatureCard/index.js +82 -27
  95. package/dist/components/FeatureCard/index.js.map +1 -1
  96. package/dist/components/Header/index.d.ts.map +1 -1
  97. package/dist/components/Header/index.js +8 -5
  98. package/dist/components/Header/index.js.map +1 -1
  99. package/dist/components/Icon/index.d.ts.map +1 -1
  100. package/dist/components/Icon/index.js +39 -19
  101. package/dist/components/Icon/index.js.map +1 -1
  102. package/dist/components/IconPicker/index.js +2 -2
  103. package/dist/components/IconPicker/index.js.map +1 -1
  104. package/dist/components/Input/index.d.ts +44 -1
  105. package/dist/components/Input/index.d.ts.map +1 -1
  106. package/dist/components/Input/index.js +96 -30
  107. package/dist/components/Input/index.js.map +1 -1
  108. package/dist/components/InputClearButton/index.d.ts +7 -2
  109. package/dist/components/InputClearButton/index.d.ts.map +1 -1
  110. package/dist/components/InputClearButton/index.js +47 -8
  111. package/dist/components/InputClearButton/index.js.map +1 -1
  112. package/dist/components/InternalPopover/index.d.ts.map +1 -1
  113. package/dist/components/InternalPopover/index.js +56 -19
  114. package/dist/components/InternalPopover/index.js.map +1 -1
  115. package/dist/components/KeyboardShortcut/index.js +3 -3
  116. package/dist/components/KeyboardShortcut/index.js.map +1 -1
  117. package/dist/components/Layout/content.js +2 -2
  118. package/dist/components/Layout/content.js.map +1 -1
  119. package/dist/components/Layout/index.d.ts.map +1 -1
  120. package/dist/components/Layout/index.js +3 -35
  121. package/dist/components/Layout/index.js.map +1 -1
  122. package/dist/components/Link/index.d.ts.map +1 -1
  123. package/dist/components/Link/index.js +12 -39
  124. package/dist/components/Link/index.js.map +1 -1
  125. package/dist/components/Menu/divider.d.ts.map +1 -1
  126. package/dist/components/Menu/divider.js +11 -6
  127. package/dist/components/Menu/divider.js.map +1 -1
  128. package/dist/components/Menu/index.d.ts.map +1 -1
  129. package/dist/components/Menu/index.js +40 -22
  130. package/dist/components/Menu/index.js.map +1 -1
  131. package/dist/components/Menu/item.d.ts.map +1 -1
  132. package/dist/components/Menu/item.js +35 -5
  133. package/dist/components/Menu/item.js.map +1 -1
  134. package/dist/components/Menu/section.d.ts.map +1 -1
  135. package/dist/components/Menu/section.js +11 -6
  136. package/dist/components/Menu/section.js.map +1 -1
  137. package/dist/components/Message/index.d.ts.map +1 -1
  138. package/dist/components/Message/index.js +20 -4
  139. package/dist/components/Message/index.js.map +1 -1
  140. package/dist/components/NavRail/index.d.ts +2 -0
  141. package/dist/components/NavRail/index.d.ts.map +1 -1
  142. package/dist/components/NavRail/index.js +136 -46
  143. package/dist/components/NavRail/index.js.map +1 -1
  144. package/dist/components/Navbar/divider.d.ts.map +1 -1
  145. package/dist/components/Navbar/divider.js +35 -6
  146. package/dist/components/Navbar/divider.js.map +1 -1
  147. package/dist/components/Navbar/group.js +3 -3
  148. package/dist/components/Navbar/group.js.map +1 -1
  149. package/dist/components/Navbar/index.js +3 -3
  150. package/dist/components/Navbar/index.js.map +1 -1
  151. package/dist/components/Navbar/item.js +3 -3
  152. package/dist/components/Navbar/item.js.map +1 -1
  153. package/dist/components/Notifications/index.d.ts.map +1 -1
  154. package/dist/components/Notifications/index.js +6 -35
  155. package/dist/components/Notifications/index.js.map +1 -1
  156. package/dist/components/Notifications/notification.d.ts +6 -2
  157. package/dist/components/Notifications/notification.d.ts.map +1 -1
  158. package/dist/components/Notifications/notification.js +95 -60
  159. package/dist/components/Notifications/notification.js.map +1 -1
  160. package/dist/components/Notifications/styles.d.ts +20 -0
  161. package/dist/components/Notifications/styles.d.ts.map +1 -1
  162. package/dist/components/Notifications/styles.js +45 -17
  163. package/dist/components/Notifications/styles.js.map +1 -1
  164. package/dist/components/Paging/index.d.ts.map +1 -1
  165. package/dist/components/Paging/index.js +19 -19
  166. package/dist/components/Paging/index.js.map +1 -1
  167. package/dist/components/Panel/index.d.ts +15 -0
  168. package/dist/components/Panel/index.d.ts.map +1 -1
  169. package/dist/components/Panel/index.js +513 -202
  170. package/dist/components/Panel/index.js.map +1 -1
  171. package/dist/components/Paragraph/index.d.ts +6 -0
  172. package/dist/components/Paragraph/index.d.ts.map +1 -1
  173. package/dist/components/Paragraph/index.js +65 -13
  174. package/dist/components/Paragraph/index.js.map +1 -1
  175. package/dist/components/Popover/index.d.ts +8 -0
  176. package/dist/components/Popover/index.d.ts.map +1 -1
  177. package/dist/components/Popover/index.js +169 -21
  178. package/dist/components/Popover/index.js.map +1 -1
  179. package/dist/components/Progress/index.d.ts.map +1 -1
  180. package/dist/components/Progress/index.js +11 -43
  181. package/dist/components/Progress/index.js.map +1 -1
  182. package/dist/components/Rating/index.d.ts.map +1 -1
  183. package/dist/components/Rating/index.js +33 -47
  184. package/dist/components/Rating/index.js.map +1 -1
  185. package/dist/components/RichTextEditor/index.d.ts.map +1 -1
  186. package/dist/components/RichTextEditor/index.js +130 -52
  187. package/dist/components/RichTextEditor/index.js.map +1 -1
  188. package/dist/components/RowActionsMenu/index.d.ts +80 -0
  189. package/dist/components/RowActionsMenu/index.d.ts.map +1 -0
  190. package/dist/components/RowActionsMenu/index.js +182 -0
  191. package/dist/components/RowActionsMenu/index.js.map +1 -0
  192. package/dist/components/SegmentedControl/index.d.ts.map +1 -1
  193. package/dist/components/SegmentedControl/index.js +92 -77
  194. package/dist/components/SegmentedControl/index.js.map +1 -1
  195. package/dist/components/Select/valuePreview.js +2 -2
  196. package/dist/components/Select/valuePreview.js.map +1 -1
  197. package/dist/components/SeverityRow/index.d.ts +20 -1
  198. package/dist/components/SeverityRow/index.d.ts.map +1 -1
  199. package/dist/components/SeverityRow/index.js +58 -15
  200. package/dist/components/SeverityRow/index.js.map +1 -1
  201. package/dist/components/Skeleton/index.d.ts.map +1 -1
  202. package/dist/components/Skeleton/index.js +6 -35
  203. package/dist/components/Skeleton/index.js.map +1 -1
  204. package/dist/components/Slider/index.js +9 -9
  205. package/dist/components/Slider/index.js.map +1 -1
  206. package/dist/components/Spacer/index.js +7 -7
  207. package/dist/components/Spacer/index.js.map +1 -1
  208. package/dist/components/Span/index.d.ts.map +1 -1
  209. package/dist/components/Span/index.js +43 -11
  210. package/dist/components/Span/index.js.map +1 -1
  211. package/dist/components/StackedBar/index.d.ts.map +1 -1
  212. package/dist/components/StackedBar/index.js +48 -47
  213. package/dist/components/StackedBar/index.js.map +1 -1
  214. package/dist/components/Statistic/index.d.ts +0 -8
  215. package/dist/components/Statistic/index.d.ts.map +1 -1
  216. package/dist/components/Statistic/index.js +44 -45
  217. package/dist/components/Statistic/index.js.map +1 -1
  218. package/dist/components/Table/body.d.ts.map +1 -1
  219. package/dist/components/Table/body.js +12 -44
  220. package/dist/components/Table/body.js.map +1 -1
  221. package/dist/components/Table/cell.d.ts.map +1 -1
  222. package/dist/components/Table/cell.js +76 -52
  223. package/dist/components/Table/cell.js.map +1 -1
  224. package/dist/components/Table/header.d.ts.map +1 -1
  225. package/dist/components/Table/header.js +15 -12
  226. package/dist/components/Table/header.js.map +1 -1
  227. package/dist/components/Table/headerCell.d.ts.map +1 -1
  228. package/dist/components/Table/headerCell.js +8 -38
  229. package/dist/components/Table/headerCell.js.map +1 -1
  230. package/dist/components/Table/helpers.d.ts +20 -0
  231. package/dist/components/Table/helpers.d.ts.map +1 -1
  232. package/dist/components/Table/helpers.js +52 -1
  233. package/dist/components/Table/helpers.js.map +1 -1
  234. package/dist/components/Table/index.d.ts +57 -2
  235. package/dist/components/Table/index.d.ts.map +1 -1
  236. package/dist/components/Table/index.js +154 -59
  237. package/dist/components/Table/index.js.map +1 -1
  238. package/dist/components/Table/row.d.ts +3 -1
  239. package/dist/components/Table/row.d.ts.map +1 -1
  240. package/dist/components/Table/row.js +44 -13
  241. package/dist/components/Table/row.js.map +1 -1
  242. package/dist/components/Table/scrollbar.js +3 -3
  243. package/dist/components/Table/scrollbar.js.map +1 -1
  244. package/dist/components/Tabs/content.js +2 -2
  245. package/dist/components/Tabs/content.js.map +1 -1
  246. package/dist/components/Tabs/index.js +3 -3
  247. package/dist/components/Tabs/index.js.map +1 -1
  248. package/dist/components/Tabs/item.d.ts.map +1 -1
  249. package/dist/components/Tabs/item.js +8 -6
  250. package/dist/components/Tabs/item.js.map +1 -1
  251. package/dist/components/Tabs/list.d.ts.map +1 -1
  252. package/dist/components/Tabs/list.js +6 -4
  253. package/dist/components/Tabs/list.js.map +1 -1
  254. package/dist/components/Tag/group.d.ts.map +1 -1
  255. package/dist/components/Tag/group.js +3 -35
  256. package/dist/components/Tag/group.js.map +1 -1
  257. package/dist/components/Tag/index.d.ts +77 -3
  258. package/dist/components/Tag/index.d.ts.map +1 -1
  259. package/dist/components/Tag/index.js +315 -83
  260. package/dist/components/Tag/index.js.map +1 -1
  261. package/dist/components/Testimonial/index.d.ts +6 -1
  262. package/dist/components/Testimonial/index.d.ts.map +1 -1
  263. package/dist/components/Testimonial/index.js +59 -23
  264. package/dist/components/Testimonial/index.js.map +1 -1
  265. package/dist/components/Textarea/index.d.ts +16 -0
  266. package/dist/components/Textarea/index.d.ts.map +1 -1
  267. package/dist/components/Textarea/index.js +178 -33
  268. package/dist/components/Textarea/index.js.map +1 -1
  269. package/dist/components/Tier/group.d.ts.map +1 -1
  270. package/dist/components/Tier/group.js +9 -8
  271. package/dist/components/Tier/group.js.map +1 -1
  272. package/dist/components/Tier/index.d.ts +5 -0
  273. package/dist/components/Tier/index.d.ts.map +1 -1
  274. package/dist/components/Tier/index.js +14 -10
  275. package/dist/components/Tier/index.js.map +1 -1
  276. package/dist/components/Timeline/index.d.ts +2 -0
  277. package/dist/components/Timeline/index.d.ts.map +1 -1
  278. package/dist/components/Timeline/index.js +73 -28
  279. package/dist/components/Timeline/index.js.map +1 -1
  280. package/dist/components/TooltipComponent/index.d.ts.map +1 -1
  281. package/dist/components/TooltipComponent/index.js +6 -7
  282. package/dist/components/TooltipComponent/index.js.map +1 -1
  283. package/dist/components/Tree/index.d.ts.map +1 -1
  284. package/dist/components/Tree/index.js +27 -23
  285. package/dist/components/Tree/index.js.map +1 -1
  286. package/dist/components/Tree/modal.d.ts.map +1 -1
  287. package/dist/components/Tree/modal.js +3 -1
  288. package/dist/components/Tree/modal.js.map +1 -1
  289. package/dist/constants/sizes.d.ts +5 -0
  290. package/dist/constants/sizes.d.ts.map +1 -1
  291. package/dist/constants/sizes.js +6 -1
  292. package/dist/constants/sizes.js.map +1 -1
  293. package/dist/constants/theme.d.ts +0 -21
  294. package/dist/constants/theme.d.ts.map +1 -1
  295. package/dist/constants/theme.js.map +1 -1
  296. package/dist/containers/ReqoreProvider.d.ts.map +1 -1
  297. package/dist/containers/ReqoreProvider.js +27 -13
  298. package/dist/containers/ReqoreProvider.js.map +1 -1
  299. package/dist/containers/UIProvider.d.ts +10 -0
  300. package/dist/containers/UIProvider.d.ts.map +1 -1
  301. package/dist/containers/UIProvider.js +34 -36
  302. package/dist/containers/UIProvider.js.map +1 -1
  303. package/dist/context/SurfaceContext.d.ts +18 -0
  304. package/dist/context/SurfaceContext.d.ts.map +1 -0
  305. package/dist/context/SurfaceContext.js +39 -0
  306. package/dist/context/SurfaceContext.js.map +1 -0
  307. package/dist/helpers/colors.d.ts +183 -11
  308. package/dist/helpers/colors.d.ts.map +1 -1
  309. package/dist/helpers/colors.js +736 -100
  310. package/dist/helpers/colors.js.map +1 -1
  311. package/dist/helpers/hoveringPointer.d.ts +54 -0
  312. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  313. package/dist/helpers/hoveringPointer.js +66 -0
  314. package/dist/helpers/hoveringPointer.js.map +1 -0
  315. package/dist/helpers/iconProps.d.ts +14 -0
  316. package/dist/helpers/iconProps.d.ts.map +1 -0
  317. package/dist/helpers/iconProps.js +33 -0
  318. package/dist/helpers/iconProps.js.map +1 -0
  319. package/dist/helpers/styled.d.ts +39 -26
  320. package/dist/helpers/styled.d.ts.map +1 -1
  321. package/dist/helpers/styled.js +156 -4
  322. package/dist/helpers/styled.js.map +1 -1
  323. package/dist/helpers/surface.d.ts +31 -0
  324. package/dist/helpers/surface.d.ts.map +1 -0
  325. package/dist/helpers/surface.js +87 -0
  326. package/dist/helpers/surface.js.map +1 -0
  327. package/dist/hooks/useAutoFocus.d.ts.map +1 -1
  328. package/dist/hooks/useAutoFocus.js +11 -1
  329. package/dist/hooks/useAutoFocus.js.map +1 -1
  330. package/dist/hooks/useCloneThroughFragments.d.ts.map +1 -1
  331. package/dist/hooks/useCloneThroughFragments.js +51 -18
  332. package/dist/hooks/useCloneThroughFragments.js.map +1 -1
  333. package/dist/hooks/useCombinedRefs.d.ts +16 -6
  334. package/dist/hooks/useCombinedRefs.d.ts.map +1 -1
  335. package/dist/hooks/useCombinedRefs.js +34 -27
  336. package/dist/hooks/useCombinedRefs.js.map +1 -1
  337. package/dist/hooks/useDragToScroll.d.ts +58 -0
  338. package/dist/hooks/useDragToScroll.d.ts.map +1 -0
  339. package/dist/hooks/useDragToScroll.js +262 -0
  340. package/dist/hooks/useDragToScroll.js.map +1 -0
  341. package/dist/hooks/useDrawnSurface.d.ts +38 -0
  342. package/dist/hooks/useDrawnSurface.d.ts.map +1 -0
  343. package/dist/hooks/useDrawnSurface.js +48 -0
  344. package/dist/hooks/useDrawnSurface.js.map +1 -0
  345. package/dist/hooks/useMarqueeOnHover.d.ts.map +1 -1
  346. package/dist/hooks/useMarqueeOnHover.js +10 -0
  347. package/dist/hooks/useMarqueeOnHover.js.map +1 -1
  348. package/dist/hooks/usePaging.d.ts +9 -4
  349. package/dist/hooks/usePaging.d.ts.map +1 -1
  350. package/dist/hooks/usePaging.js +21 -32
  351. package/dist/hooks/usePaging.js.map +1 -1
  352. package/dist/hooks/usePointerDrag.d.ts.map +1 -1
  353. package/dist/hooks/usePointerDrag.js +13 -3
  354. package/dist/hooks/usePointerDrag.js.map +1 -1
  355. package/dist/hooks/useReqoreMedia.d.ts +22 -7
  356. package/dist/hooks/useReqoreMedia.d.ts.map +1 -1
  357. package/dist/hooks/useReqoreMedia.js +33 -9
  358. package/dist/hooks/useReqoreMedia.js.map +1 -1
  359. package/dist/index.d.ts +6 -0
  360. package/dist/index.d.ts.map +1 -1
  361. package/dist/index.js +11 -3
  362. package/dist/index.js.map +1 -1
  363. package/dist/styles.js +6 -6
  364. package/dist/styles.js.map +1 -1
  365. package/package.json +3 -4
  366. package/vitest.config.ts +115 -31
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCardHoverFill = exports.getCardMarkColor = exports.getDrawnEffectTextColor = exports.getUnpaintedSurface = void 0;
4
+ var polished_1 = require("polished");
5
+ var colors_1 = require("./colors");
6
+ var Effect_1 = require("../components/Effect");
7
+ /**
8
+ * `color` as the theme resolves it (a theme color, a shade of one, a hex), or undefined where it cannot: a CSS color
9
+ * name, a variable, a four-digit hex. Never throws: a color the theme cannot read is no reason to unmount the
10
+ * component that was given it.
11
+ */
12
+ var resolveColor = function (theme, color) {
13
+ if (!color) {
14
+ return undefined;
15
+ }
16
+ try {
17
+ var resolved = (0, colors_1.getColorFromMaybeString)(theme, color);
18
+ return resolved && (0, colors_1.isValidSixCharHex)(resolved) ? resolved : undefined;
19
+ }
20
+ catch (_a) {
21
+ return undefined;
22
+ }
23
+ };
24
+ /**
25
+ * What an element that paints nothing (`unpainted`: transparent, or drawn at no opacity) is drawn on. The surface a
26
+ * component around it hands down (`useReqoreSurface`) when one does; with none around it, the main of the
27
+ * `customTheme` it was given - how a consumer says what it painted under it (a band, a card of its own) - drawn over
28
+ * the page when it is translucent; undefined otherwise (the theme's surface, `getThemeSurface`). An intent is not a
29
+ * surface: an element in an intent with nothing around it is drawn on the page.
30
+ */
31
+ var getUnpaintedSurface = function (theme, customTheme, surface, unpainted) {
32
+ if (surface || !unpainted) {
33
+ return surface;
34
+ }
35
+ var own = resolveColor(theme, customTheme === null || customTheme === void 0 ? void 0 : customTheme.main);
36
+ return own ? (0, colors_1.getDrawnColor)(own, (0, colors_1.getThemeSurface)(theme)) : undefined;
37
+ };
38
+ exports.getUnpaintedSurface = getUnpaintedSurface;
39
+ /**
40
+ * The color a text effect draws `color` in on `backgrounds` (`getEffectTextColor`: a theme color in the shade of it
41
+ * that reads there, any other as given), or undefined where it draws none - a CSS color name, a variable, a
42
+ * four-digit hex, which its text does not take either: it keeps the color it inherits. Never throws.
43
+ */
44
+ var getDrawnEffectTextColor = function (theme, color, backgrounds) {
45
+ if (!resolveColor(theme, color)) {
46
+ return undefined;
47
+ }
48
+ try {
49
+ var drawn = (0, Effect_1.getEffectTextColor)(theme, color, undefined, backgrounds);
50
+ return drawn && (0, colors_1.isValidSixCharHex)(drawn) ? drawn : undefined;
51
+ }
52
+ catch (_a) {
53
+ return undefined;
54
+ }
55
+ };
56
+ exports.getDrawnEffectTextColor = getDrawnEffectTextColor;
57
+ /**
58
+ * The color a card's own mark (an entity row's icon, a callout's icon, a testimonial's avatar and quote mark) is
59
+ * drawn in on `backgrounds`: its `own` color, moved to a shade that stands out by 3:1 there when it is a theme's;
60
+ * else its intent's shade that does; else the card's `text`.
61
+ */
62
+ var getCardMarkColor = function (theme, backgrounds, text, own, intent) {
63
+ var _a;
64
+ if (own) {
65
+ return ((_a = (0, colors_1.getReadableIconLook)(theme, backgrounds, text, 1, own).color) !== null && _a !== void 0 ? _a : own);
66
+ }
67
+ if (intent) {
68
+ return (0, colors_1.getReadableIntentColor)(theme, intent, colors_1.READABLE_ICON_CONTRAST, backgrounds);
69
+ }
70
+ return text;
71
+ };
72
+ exports.getCardMarkColor = getCardMarkColor;
73
+ /**
74
+ * The fill a clickable card paints while it is hovered: a wash of its intent (4% when it paints nothing at rest,
75
+ * else 10%), or else of the theme a step lighter (8% when it paints nothing at rest), or `opaque`, the card's own.
76
+ * What its styled rule paints, and what what it holds is read on as well as on its resting fill: a card's text and
77
+ * its fainter text were read on the resting fill only, and a hovered row's metadata fell to 4.2:1 (qorus#646).
78
+ */
79
+ var getCardHoverFill = function (theme, intent, transparent, opaque) {
80
+ return intent
81
+ ? (0, polished_1.rgba)(theme.intents[intent], transparent ? 0.04 : 0.1)
82
+ : transparent
83
+ ? (0, polished_1.rgba)((0, colors_1.changeLightness)((0, colors_1.getMainBackgroundColor)(theme), 0.08), 0.08)
84
+ : opaque;
85
+ };
86
+ exports.getCardHoverFill = getCardHoverFill;
87
+ //# sourceMappingURL=surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface.js","sourceRoot":"","sources":["../../src/helpers/surface.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAutoFocus.d.ts","sourceRoot":"","sources":["../../src/hooks/useAutoFocus.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,CAAC,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC;IAC/E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,YAAY,GACvB,SAAS,gBAAgB,GAAG,mBAAmB,EAC/C,QAAQ,qBAAqB,EAC7B,WAAW,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,SA4FhC,CAAC"}
1
+ {"version":3,"file":"useAutoFocus.d.ts","sourceRoot":"","sources":["../../src/hooks/useAutoFocus.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,CAAC,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC;IAC/E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,YAAY,GACvB,SAAS,gBAAgB,GAAG,mBAAmB,EAC/C,QAAQ,qBAAqB,EAC7B,WAAW,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,SAsGhC,CAAC"}
@@ -6,6 +6,9 @@ var react_use_1 = require("react-use");
6
6
  var useAutoFocus = function (element, rules, onChange) {
7
7
  var isInViewport = (0, react_1.useRef)(false);
8
8
  var observer = (0, react_1.useRef)(null);
9
+ /** The element auto-focus has already settled on, so a changing reference to the SAME node is not taken
10
+ * for a new one — see the effect below. */
11
+ var settledElement = (0, react_1.useRef)(null);
9
12
  var focus = (0, react_1.useCallback)(function () {
10
13
  if (!rules.viewportOnly || isInViewport.current) {
11
14
  if (rules.clearOnFocus) {
@@ -36,7 +39,14 @@ var useAutoFocus = function (element, rules, onChange) {
36
39
  }
37
40
  }, [rules === null || rules === void 0 ? void 0 : rules.shortcut, focus]);
38
41
  (0, react_use_1.useUpdateEffect)(function () {
39
- if (element && rules) {
42
+ // Only when a genuinely new element appears — the field opening, or a different element taking its
43
+ // place. Not every time the element reference changes: a controlled input hands React a new ref callback
44
+ // on each render, so the SAME node arrives under a changing identity on every keystroke. Re-running this
45
+ // re-applied focus and moved the selection to the end mid-edit, which dropped a character being typed
46
+ // (qorus#646). React reconciles the same node, so once settled its identity here is stable across those
47
+ // re-renders.
48
+ if (element && rules && settledElement.current !== element) {
49
+ settledElement.current = element;
40
50
  if (rules.viewportOnly) {
41
51
  observer.current = new IntersectionObserver(function (entries) {
42
52
  entries.forEach(function (entry) {
@@ -1 +1 @@
1
- {"version":3,"file":"useAutoFocus.js","sourceRoot":"","sources":["../../src/hooks/useAutoFocus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAutoFocus.js","sourceRoot":"","sources":["../../src/hooks/useAutoFocus.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCloneThroughFragments.d.ts","sourceRoot":"","sources":["../../src/hooks/useCloneThroughFragments.ts"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAEpD,eAAO,MAAM,wBAAwB,GACnC,aAAa,CACX,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EACnC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAClC,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,GAAG,EAAE;sBAIyB,KAAK,CAAC,SAAS,KAAG,KAAK,CAAC,SAAS;CA0BvE,CAAC"}
1
+ {"version":3,"file":"useCloneThroughFragments.d.ts","sourceRoot":"","sources":["../../src/hooks/useCloneThroughFragments.ts"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAEpD,eAAO,MAAM,wBAAwB,GACnC,aAAa,CACX,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EACnC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAClC,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,GAAG,EAAE;sBAEyB,KAAK,CAAC,SAAS,KAAG,KAAK,CAAC,SAAS;CAsDvE,CAAC"}
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -36,26 +47,48 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
47
  exports.useCloneThroughFragments = void 0;
37
48
  var react_1 = __importStar(require("react"));
38
49
  var useCloneThroughFragments = function (propsMapper, deps) {
39
- var realIndex = 0;
40
50
  var clone = (0, react_1.useCallback)(function (children) {
41
- return react_1.default.Children.map(children, function (child, reactIndex) {
42
- if (child && react_1.default.isValidElement(child)) {
43
- if (child.type === react_1.default.Fragment) {
44
- return clone(child.props.children);
51
+ /* Counted per call, from the first child: the clone is kept between renders (`deps`), and a count kept with
52
+ it went on from where the last render left it - a group re-rendering by itself numbered its first child
53
+ the fourth. */
54
+ var realIndex = 0;
55
+ var cloneLevel = function (nodes) {
56
+ /* The keys given at this level of the children. A child keeps its own key, so React keeps it
57
+ (and its state) when another is added before it; a key given again is made unique (`#1`,
58
+ `#2`, ...), as the place a control group joined to every key used to make it. Children keyed
59
+ by what they say (a label, a name) can repeat it, and two children with one key are one to
60
+ React: it warns, and on an update drops or repeats one of them. A fragment's children are
61
+ keyed under the fragment, so each level counts its own. */
62
+ var given = new Map();
63
+ return react_1.default.Children.map(nodes, function (child, reactIndex) {
64
+ var _a;
65
+ if (child && react_1.default.isValidElement(child)) {
66
+ if (child.type === react_1.default.Fragment) {
67
+ return cloneLevel(child.props.children);
68
+ }
69
+ var props = propsMapper(child.props, reactIndex, realIndex, child.type);
70
+ /*
71
+ * Because of the way React.Children.map works, we have to
72
+ * manually decrement the index for every child that is `null`
73
+ * because react maps through null children and returns them in `Count`
74
+ * We filter these children out in the `realChildCount` variable,
75
+ * but the index is still incremented
76
+ * */
77
+ realIndex = realIndex + 1;
78
+ // a key the mapper set (a control group's `reactKey`) is the caller's to keep unique
79
+ if ((props === null || props === void 0 ? void 0 : props.key) === undefined && child.key !== null) {
80
+ var times = (_a = given.get(child.key)) !== null && _a !== void 0 ? _a : 0;
81
+ given.set(child.key, times + 1);
82
+ if (times > 0) {
83
+ return react_1.default.cloneElement(child, __assign(__assign({}, props), { key: "".concat(child.key, "#").concat(times) }));
84
+ }
85
+ }
86
+ return react_1.default.cloneElement(child, props);
45
87
  }
46
- var props = propsMapper(child.props, reactIndex, realIndex, child.type);
47
- /*
48
- * Because of the way React.Children.map works, we have to
49
- * manually decrement the index for every child that is `null`
50
- * because react maps through null children and returns them in `Count`
51
- * We filter these children out in the `realChildCount` variable,
52
- * but the index is still incremented
53
- * */
54
- realIndex = realIndex + 1;
55
- return react_1.default.cloneElement(child, props);
56
- }
57
- return child;
58
- });
88
+ return child;
89
+ });
90
+ };
91
+ return cloneLevel(children);
59
92
  }, deps);
60
93
  return (0, react_1.useMemo)(function () { return ({ clone: clone }); }, [clone]);
61
94
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useCloneThroughFragments.js","sourceRoot":"","sources":["../../src/hooks/useCloneThroughFragments.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAoD;AAE7C,IAAM,wBAAwB,GAAG,UACtC,WAKiC,EACjC,IAAY;IAEZ,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,IAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,UAAC,QAAyB;QAClD,OAAO,eAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAK,EAAE,UAAU;YACpD,IAAI,KAAK,IAAI,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzC,IAAI,KAAK,CAAC,IAAI,KAAK,eAAK,CAAC,QAAQ,EAAE,CAAC;oBAClC,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACrC,CAAC;gBAED,IAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE1E;;;;;;qBAMK;gBACL,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;gBAE1B,OAAO,eAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,OAAO,IAAA,eAAO,EAAC,cAAM,OAAA,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,EAAX,CAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AArCW,QAAA,wBAAwB,4BAqCnC"}
1
+ {"version":3,"file":"useCloneThroughFragments.js","sourceRoot":"","sources":["../../src/hooks/useCloneThroughFragments.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAoD;AAE7C,IAAM,wBAAwB,GAAG,UACtC,WAKiC,EACjC,IAAY;IAEZ,IAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,UAAC,QAAyB;QAClD;;yBAEiB;QACjB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,IAAM,UAAU,GAAG,UAAC,KAAsB;YACxC;;;;;yEAK6D;YAC7D,IAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;YAE3C,OAAO,eAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,UAAC,KAAK,EAAE,UAAU;;gBACjD,IAAI,KAAK,IAAI,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzC,IAAI,KAAK,CAAC,IAAI,KAAK,eAAK,CAAC,QAAQ,EAAE,CAAC;wBAClC,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC1C,CAAC;oBAED,IAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAE1E;;;;;;yBAMK;oBACL,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;oBAE1B,qFAAqF;oBACrF,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,MAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;wBACnD,IAAM,KAAK,GAAG,MAAA,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAI,CAAC,CAAC;wBAExC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;wBAEhC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;4BACd,OAAO,eAAK,CAAC,YAAY,CAAC,KAAK,wBAAO,KAAK,KAAE,GAAG,EAAE,UAAG,KAAK,CAAC,GAAG,cAAI,KAAK,CAAE,IAAG,CAAC;wBAC/E,CAAC;oBACH,CAAC;oBAED,OAAO,eAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC1C,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,OAAO,IAAA,eAAO,EAAC,cAAM,OAAA,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,EAAX,CAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AA/DW,QAAA,wBAAwB,4BA+DnC"}
@@ -1,12 +1,22 @@
1
1
  import React from 'react';
2
2
  /**
3
- * It takes a list of refs and returns a single ref that can be used to reference the same underlying
4
- * DOM element
5
- * @param refs - An array of refs to combine.
6
- * @returns A ref object.
3
+ * One element, handed to several refs: the component's own (`targetRef`, to read) and those it is given
4
+ * (a forwarded ref, a ref of its parent's).
5
+ *
6
+ * `setRef` is the ref the element is drawn with. React calls it in the commit that attaches the element, so
7
+ * every ref has the element before the browser paints it. They used to be handed it in an effect, after the
8
+ * paint: a popover drawn around a button learnt of the button only then, and armed its click listener in
9
+ * the render after that - a click that landed on the button as soon as it was drawn opened nothing, and
10
+ * nothing on the page said when it would (qorus#646: the Qorus IDE's template selector kept a sleep for it).
11
+ * The effect also ran after every render, since the list of refs is new each time.
12
+ *
13
+ * A component that draws the element through a ref callback of its own calls `setRef` from it.
14
+ *
15
+ * @param refs - The refs to hand the element to, besides `targetRef`.
16
+ * @returns `targetRef`, holding the element, and `setRef`, the ref to draw it with.
7
17
  */
8
- export declare function useCombinedRefs<T = any>(...refs: any[]): {
9
- _innerRef: any;
18
+ export declare function useCombinedRefs<T = any>(...refs: Array<React.Ref<T> | undefined | null>): {
10
19
  targetRef: React.MutableRefObject<T>;
20
+ setRef: (node: T | null) => void;
11
21
  };
12
22
  //# sourceMappingURL=useCombinedRefs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCombinedRefs.d.ts","sourceRoot":"","sources":["../../src/hooks/useCombinedRefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,OAAA;;;EAiB/C"}
1
+ {"version":3,"file":"useCombinedRefs.d.ts","sourceRoot":"","sources":["../../src/hooks/useCombinedRefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAe1B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;;mBAI7E,CAAC,GAAG,IAAI;EAUlB"}
@@ -1,44 +1,51 @@
1
1
  "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
14
5
  Object.defineProperty(exports, "__esModule", { value: true });
15
6
  exports.useCombinedRefs = useCombinedRefs;
16
7
  var react_1 = __importDefault(require("react"));
8
+ /** Hands `node` to one ref: a callback is called with it, an object holds it. */
9
+ var assignRef = function (ref, node) {
10
+ if (!ref) {
11
+ return;
12
+ }
13
+ if (typeof ref === 'function') {
14
+ ref(node);
15
+ }
16
+ else {
17
+ ref.current = node;
18
+ }
19
+ };
17
20
  /**
18
- * It takes a list of refs and returns a single ref that can be used to reference the same underlying
19
- * DOM element
20
- * @param refs - An array of refs to combine.
21
- * @returns A ref object.
21
+ * One element, handed to several refs: the component's own (`targetRef`, to read) and those it is given
22
+ * (a forwarded ref, a ref of its parent's).
23
+ *
24
+ * `setRef` is the ref the element is drawn with. React calls it in the commit that attaches the element, so
25
+ * every ref has the element before the browser paints it. They used to be handed it in an effect, after the
26
+ * paint: a popover drawn around a button learnt of the button only then, and armed its click listener in
27
+ * the render after that - a click that landed on the button as soon as it was drawn opened nothing, and
28
+ * nothing on the page said when it would (qorus#646: the Qorus IDE's template selector kept a sleep for it).
29
+ * The effect also ran after every render, since the list of refs is new each time.
30
+ *
31
+ * A component that draws the element through a ref callback of its own calls `setRef` from it.
32
+ *
33
+ * @param refs - The refs to hand the element to, besides `targetRef`.
34
+ * @returns `targetRef`, holding the element, and `setRef`, the ref to draw it with.
22
35
  */
23
36
  function useCombinedRefs() {
24
37
  var refs = [];
25
38
  for (var _i = 0; _i < arguments.length; _i++) {
26
39
  refs[_i] = arguments[_i];
27
40
  }
28
- var _a = react_1.default.useState(null), _innerRef = _a[0], setInnerRef = _a[1];
29
41
  var targetRef = react_1.default.useRef();
30
- react_1.default.useEffect(function () {
31
- __spreadArray(__spreadArray([], refs, true), [setInnerRef], false).forEach(function (ref) {
32
- if (!ref)
33
- return;
34
- if (typeof ref === 'function') {
35
- ref(targetRef.current);
36
- }
37
- else {
38
- ref.current = targetRef.current;
39
- }
40
- });
41
- }, [refs]);
42
- return { _innerRef: _innerRef, targetRef: targetRef };
42
+ var setRef = react_1.default.useCallback(function (node) {
43
+ targetRef.current = node !== null && node !== void 0 ? node : undefined;
44
+ refs.forEach(function (ref) { return assignRef(ref, node); });
45
+ },
46
+ // A new ref given is handed the element the way React hands it to a new ref callback: this callback
47
+ // changes with it, so React calls the old one with null and this one with the element.
48
+ refs);
49
+ return { targetRef: targetRef, setRef: setRef };
43
50
  }
44
51
  //# sourceMappingURL=useCombinedRefs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCombinedRefs.js","sourceRoot":"","sources":["../../src/hooks/useCombinedRefs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAQA,0CAiBC;AAzBD,gDAA0B;AAE1B;;;;;GAKG;AACH,SAAgB,eAAe;IAAU,cAAO;SAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;QAAP,yBAAO;;IACxC,IAAA,KAA2B,eAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAA9C,SAAS,QAAA,EAAE,WAAW,QAAwB,CAAC;IACtD,IAAM,SAAS,GAAG,eAAK,CAAC,MAAM,EAAK,CAAC;IAEpC,eAAK,CAAC,SAAS,CAAC;QACd,gCAAI,IAAI,UAAE,WAAW,UAAE,OAAO,CAAC,UAAC,GAAG;YACjC,IAAI,CAAC,GAAG;gBAAE,OAAO;YAEjB,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,EAAE,SAAS,WAAA,EAAE,SAAS,WAAA,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"useCombinedRefs.js","sourceRoot":"","sources":["../../src/hooks/useCombinedRefs.ts"],"names":[],"mappings":";;;;;AA+BA,0CAcC;AA7CD,gDAA0B;AAE1B,iFAAiF;AACjF,IAAM,SAAS,GAAG,UAAI,GAAoC,EAAE,IAAc;IACxE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,CAAC;IACZ,CAAC;SAAM,CAAC;QACL,GAAwC,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3D,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,eAAe;IAAU,cAA+C;SAA/C,UAA+C,EAA/C,qBAA+C,EAA/C,IAA+C;QAA/C,yBAA+C;;IACtF,IAAM,SAAS,GAAG,eAAK,CAAC,MAAM,EAAK,CAAC;IAEpC,IAAM,MAAM,GAAG,eAAK,CAAC,WAAW,CAC9B,UAAC,IAAc;QACb,SAAS,CAAC,OAAO,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,SAAS,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG,IAAK,OAAA,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,EAApB,CAAoB,CAAC,CAAC;IAC9C,CAAC;IACD,oGAAoG;IACpG,uFAAuF;IACvF,IAAI,CACL,CAAC;IAEF,OAAO,EAAE,SAAS,WAAA,EAAE,MAAM,QAAA,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { RefObject } from 'react';
2
+ /**
3
+ * How far the pointer must travel before a press becomes a drag.
4
+ *
5
+ * Zero would make every click a one-pixel drag and swallow it; too large and the
6
+ * row feels stuck before it moves. Four pixels is the usual hysteresis for
7
+ * distinguishing a click from a drag.
8
+ */
9
+ export declare const DRAG_TO_SCROLL_THRESHOLD = 4;
10
+ /**
11
+ * Elements a drag must never start on.
12
+ *
13
+ * Deliberately NOT "anything interactive". The surfaces this is built for are made
14
+ * OF interactive things - a rail of clickable KPI tiles, a table header of sort
15
+ * buttons - so excluding buttons would leave nowhere to grab and the feature would
16
+ * do nothing. Their clicks are protected instead by suppressing the click that
17
+ * follows a real drag, which is what makes press-and-release still activate a
18
+ * tile while press-and-pull scrolls past it.
19
+ *
20
+ * What IS excluded is text entry, where a press-and-move already means
21
+ * "select within this value" and there is no other way to ask for it, and anything
22
+ * marked `reqore-no-drag-scroll`: a grab handle of its own (a column's resize handle),
23
+ * where a press-and-move already means something else.
24
+ */
25
+ export declare const NON_DRAGGABLE = "input, textarea, select, [contenteditable=\"\"], [contenteditable=\"true\"], .reqore-no-drag-scroll";
26
+ export interface IUseDragToScrollOptions {
27
+ /** What scrolls sideways. */
28
+ scrollRef: RefObject<HTMLElement>;
29
+ /**
30
+ * Where the gesture is taken, when that is not the scroller itself: a table's
31
+ * header, which is scrolled with its body but is not a scroller of its own.
32
+ */
33
+ handleRef?: RefObject<HTMLElement>;
34
+ /** Mouse and pen: press and pull sideways to scroll. */
35
+ mouse?: boolean;
36
+ /**
37
+ * Touch: a sideways swipe on the handle scrolls the scroller. Only for a handle
38
+ * the browser cannot pan by itself (it does not overflow-scroll); on a real
39
+ * scroller touch already pans natively, and taking it over would replace that.
40
+ * The handle's own CSS must leave sideways panning to the page script
41
+ * (`touch-action: pan-y`), or the browser cancels the pointer before it moves.
42
+ */
43
+ touch?: boolean;
44
+ /** Set on the handle while a drag is engaged. */
45
+ draggingClass?: string;
46
+ }
47
+ /**
48
+ * Press and pull a sideways-scrolling surface to scroll it.
49
+ *
50
+ * `ReqoreTable`'s (`dragToScroll`, and its header's touch swipes). It binds to the
51
+ * elements themselves, not through handlers spread in render, because a table's body
52
+ * appears after mount and its header scrolls a body that is another element. The other
53
+ * drags in the library - a sheet, a modal, a toast, a tier stack, `ReqoreFadeScroller`'s
54
+ * `dragToScroll` - share `usePointerDrag`; a fix to the gesture belongs in both (a
55
+ * finger's implicit capture, for one).
56
+ */
57
+ export declare const useDragToScroll: ({ scrollRef, handleRef, mouse, touch, draggingClass, }: IUseDragToScrollOptions) => void;
58
+ //# sourceMappingURL=useDragToScroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDragToScroll.d.ts","sourceRoot":"","sources":["../../src/hooks/useDragToScroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,wGACyE,CAAC;AAEpG,MAAM,WAAW,uBAAuB;IACtC,6BAA6B;IAC7B,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACnC,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,wDAM7B,uBAAuB,SA+CzB,CAAC"}