@jolly-pixel/ui 1.0.1

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 (723) hide show
  1. package/LICENSE +44 -0
  2. package/README.md +194 -0
  3. package/dist/color/area.d.ts +24 -0
  4. package/dist/color/area.d.ts.map +1 -0
  5. package/dist/color/area.js +27 -0
  6. package/dist/color/area.js.map +1 -0
  7. package/dist/color/draft.d.ts +10 -0
  8. package/dist/color/draft.d.ts.map +1 -0
  9. package/dist/color/draft.js +18 -0
  10. package/dist/color/draft.js.map +1 -0
  11. package/dist/containers/Dialog.d.ts +20 -0
  12. package/dist/containers/Dialog.d.ts.map +1 -0
  13. package/dist/containers/Dialog.js +162 -0
  14. package/dist/containers/Dialog.js.map +1 -0
  15. package/dist/containers/Dialog.styles.d.ts +2 -0
  16. package/dist/containers/Dialog.styles.d.ts.map +1 -0
  17. package/dist/containers/Dialog.styles.js +54 -0
  18. package/dist/containers/Dialog.styles.js.map +1 -0
  19. package/dist/containers/Dock.d.ts +97 -0
  20. package/dist/containers/Dock.d.ts.map +1 -0
  21. package/dist/containers/Dock.js +432 -0
  22. package/dist/containers/Dock.js.map +1 -0
  23. package/dist/containers/Dock.styles.d.ts +2 -0
  24. package/dist/containers/Dock.styles.d.ts.map +1 -0
  25. package/dist/containers/Dock.styles.js +358 -0
  26. package/dist/containers/Dock.styles.js.map +1 -0
  27. package/dist/containers/DockLayout.d.ts +51 -0
  28. package/dist/containers/DockLayout.d.ts.map +1 -0
  29. package/dist/containers/DockLayout.js +601 -0
  30. package/dist/containers/DockLayout.js.map +1 -0
  31. package/dist/containers/Floating.d.ts +56 -0
  32. package/dist/containers/Floating.d.ts.map +1 -0
  33. package/dist/containers/Floating.js +437 -0
  34. package/dist/containers/Floating.js.map +1 -0
  35. package/dist/containers/Floating.styles.d.ts +2 -0
  36. package/dist/containers/Floating.styles.d.ts.map +1 -0
  37. package/dist/containers/Floating.styles.js +123 -0
  38. package/dist/containers/Floating.styles.js.map +1 -0
  39. package/dist/containers/Folder.d.ts +30 -0
  40. package/dist/containers/Folder.d.ts.map +1 -0
  41. package/dist/containers/Folder.js +220 -0
  42. package/dist/containers/Folder.js.map +1 -0
  43. package/dist/containers/Folder.styles.d.ts +2 -0
  44. package/dist/containers/Folder.styles.d.ts.map +1 -0
  45. package/dist/containers/Folder.styles.js +228 -0
  46. package/dist/containers/Folder.styles.js.map +1 -0
  47. package/dist/containers/FolderListController.d.ts +28 -0
  48. package/dist/containers/FolderListController.d.ts.map +1 -0
  49. package/dist/containers/FolderListController.js +219 -0
  50. package/dist/containers/FolderListController.js.map +1 -0
  51. package/dist/containers/Pane.d.ts +109 -0
  52. package/dist/containers/Pane.d.ts.map +1 -0
  53. package/dist/containers/Pane.js +429 -0
  54. package/dist/containers/Pane.js.map +1 -0
  55. package/dist/containers/Pane.styles.d.ts +2 -0
  56. package/dist/containers/Pane.styles.d.ts.map +1 -0
  57. package/dist/containers/Pane.styles.js +193 -0
  58. package/dist/containers/Pane.styles.js.map +1 -0
  59. package/dist/containers/Rail.d.ts +14 -0
  60. package/dist/containers/Rail.d.ts.map +1 -0
  61. package/dist/containers/Rail.js +52 -0
  62. package/dist/containers/Rail.js.map +1 -0
  63. package/dist/containers/Tab.d.ts +17 -0
  64. package/dist/containers/Tab.d.ts.map +1 -0
  65. package/dist/containers/Tab.js +61 -0
  66. package/dist/containers/Tab.js.map +1 -0
  67. package/dist/containers/Tabs.d.ts +21 -0
  68. package/dist/containers/Tabs.d.ts.map +1 -0
  69. package/dist/containers/Tabs.js +166 -0
  70. package/dist/containers/Tabs.js.map +1 -0
  71. package/dist/containers/Tabs.styles.d.ts +2 -0
  72. package/dist/containers/Tabs.styles.d.ts.map +1 -0
  73. package/dist/containers/Tabs.styles.js +99 -0
  74. package/dist/containers/Tabs.styles.js.map +1 -0
  75. package/dist/containers/Toolbar.d.ts +15 -0
  76. package/dist/containers/Toolbar.d.ts.map +1 -0
  77. package/dist/containers/Toolbar.js +62 -0
  78. package/dist/containers/Toolbar.js.map +1 -0
  79. package/dist/containers/dialogHelpers.d.ts +24 -0
  80. package/dist/containers/dialogHelpers.d.ts.map +1 -0
  81. package/dist/containers/dialogHelpers.js +89 -0
  82. package/dist/containers/dialogHelpers.js.map +1 -0
  83. package/dist/containers/events.d.ts +75 -0
  84. package/dist/containers/events.d.ts.map +1 -0
  85. package/dist/containers/events.js +9 -0
  86. package/dist/containers/events.js.map +1 -0
  87. package/dist/containers/layout.d.ts +86 -0
  88. package/dist/containers/layout.d.ts.map +1 -0
  89. package/dist/containers/layout.js +240 -0
  90. package/dist/containers/layout.js.map +1 -0
  91. package/dist/containers/resize.d.ts +8 -0
  92. package/dist/containers/resize.d.ts.map +1 -0
  93. package/dist/containers/resize.js +28 -0
  94. package/dist/containers/resize.js.map +1 -0
  95. package/dist/controls/Button.d.ts +32 -0
  96. package/dist/controls/Button.d.ts.map +1 -0
  97. package/dist/controls/Button.js +83 -0
  98. package/dist/controls/Button.js.map +1 -0
  99. package/dist/controls/Button.styles.d.ts +2 -0
  100. package/dist/controls/Button.styles.d.ts.map +1 -0
  101. package/dist/controls/Button.styles.js +86 -0
  102. package/dist/controls/Button.styles.js.map +1 -0
  103. package/dist/controls/ButtonGroup.d.ts +26 -0
  104. package/dist/controls/ButtonGroup.d.ts.map +1 -0
  105. package/dist/controls/ButtonGroup.js +159 -0
  106. package/dist/controls/ButtonGroup.js.map +1 -0
  107. package/dist/controls/ButtonGroup.styles.d.ts +2 -0
  108. package/dist/controls/ButtonGroup.styles.d.ts.map +1 -0
  109. package/dist/controls/ButtonGroup.styles.js +104 -0
  110. package/dist/controls/ButtonGroup.styles.js.map +1 -0
  111. package/dist/controls/Checkbox.d.ts +20 -0
  112. package/dist/controls/Checkbox.d.ts.map +1 -0
  113. package/dist/controls/Checkbox.js +73 -0
  114. package/dist/controls/Checkbox.js.map +1 -0
  115. package/dist/controls/Checkbox.styles.d.ts +3 -0
  116. package/dist/controls/Checkbox.styles.d.ts.map +1 -0
  117. package/dist/controls/Checkbox.styles.js +116 -0
  118. package/dist/controls/Checkbox.styles.js.map +1 -0
  119. package/dist/controls/Color.d.ts +35 -0
  120. package/dist/controls/Color.d.ts.map +1 -0
  121. package/dist/controls/Color.js +224 -0
  122. package/dist/controls/Color.js.map +1 -0
  123. package/dist/controls/Color.styles.d.ts +2 -0
  124. package/dist/controls/Color.styles.d.ts.map +1 -0
  125. package/dist/controls/Color.styles.js +89 -0
  126. package/dist/controls/Color.styles.js.map +1 -0
  127. package/dist/controls/ColorPicker.d.ts +40 -0
  128. package/dist/controls/ColorPicker.d.ts.map +1 -0
  129. package/dist/controls/ColorPicker.js +423 -0
  130. package/dist/controls/ColorPicker.js.map +1 -0
  131. package/dist/controls/ColorPicker.styles.d.ts +5 -0
  132. package/dist/controls/ColorPicker.styles.d.ts.map +1 -0
  133. package/dist/controls/ColorPicker.styles.js +305 -0
  134. package/dist/controls/ColorPicker.styles.js.map +1 -0
  135. package/dist/controls/Control.d.ts +21 -0
  136. package/dist/controls/Control.d.ts.map +1 -0
  137. package/dist/controls/Control.js +137 -0
  138. package/dist/controls/Control.js.map +1 -0
  139. package/dist/controls/Control.styles.d.ts +2 -0
  140. package/dist/controls/Control.styles.d.ts.map +1 -0
  141. package/dist/controls/Control.styles.js +108 -0
  142. package/dist/controls/Control.styles.js.map +1 -0
  143. package/dist/controls/Controls.d.ts +25 -0
  144. package/dist/controls/Controls.d.ts.map +1 -0
  145. package/dist/controls/Controls.js +72 -0
  146. package/dist/controls/Controls.js.map +1 -0
  147. package/dist/controls/Controls.styles.d.ts +2 -0
  148. package/dist/controls/Controls.styles.d.ts.map +1 -0
  149. package/dist/controls/Controls.styles.js +102 -0
  150. package/dist/controls/Controls.styles.js.map +1 -0
  151. package/dist/controls/Flags.d.ts +26 -0
  152. package/dist/controls/Flags.d.ts.map +1 -0
  153. package/dist/controls/Flags.js +91 -0
  154. package/dist/controls/Flags.js.map +1 -0
  155. package/dist/controls/Flags.styles.d.ts +2 -0
  156. package/dist/controls/Flags.styles.d.ts.map +1 -0
  157. package/dist/controls/Flags.styles.js +65 -0
  158. package/dist/controls/Flags.styles.js.map +1 -0
  159. package/dist/controls/Number.d.ts +31 -0
  160. package/dist/controls/Number.d.ts.map +1 -0
  161. package/dist/controls/Number.js +161 -0
  162. package/dist/controls/Number.js.map +1 -0
  163. package/dist/controls/Number.styles.d.ts +5 -0
  164. package/dist/controls/Number.styles.d.ts.map +1 -0
  165. package/dist/controls/Number.styles.js +53 -0
  166. package/dist/controls/Number.styles.js.map +1 -0
  167. package/dist/controls/PropertyRow.d.ts +26 -0
  168. package/dist/controls/PropertyRow.d.ts.map +1 -0
  169. package/dist/controls/PropertyRow.js +77 -0
  170. package/dist/controls/PropertyRow.js.map +1 -0
  171. package/dist/controls/PropertyRow.styles.d.ts +5 -0
  172. package/dist/controls/PropertyRow.styles.d.ts.map +1 -0
  173. package/dist/controls/PropertyRow.styles.js +115 -0
  174. package/dist/controls/PropertyRow.styles.js.map +1 -0
  175. package/dist/controls/Range.d.ts +30 -0
  176. package/dist/controls/Range.d.ts.map +1 -0
  177. package/dist/controls/Range.js +196 -0
  178. package/dist/controls/Range.js.map +1 -0
  179. package/dist/controls/Range.styles.d.ts +2 -0
  180. package/dist/controls/Range.styles.d.ts.map +1 -0
  181. package/dist/controls/Range.styles.js +29 -0
  182. package/dist/controls/Range.styles.js.map +1 -0
  183. package/dist/controls/Select.d.ts +24 -0
  184. package/dist/controls/Select.d.ts.map +1 -0
  185. package/dist/controls/Select.js +104 -0
  186. package/dist/controls/Select.js.map +1 -0
  187. package/dist/controls/Select.styles.d.ts +2 -0
  188. package/dist/controls/Select.styles.d.ts.map +1 -0
  189. package/dist/controls/Select.styles.js +51 -0
  190. package/dist/controls/Select.styles.js.map +1 -0
  191. package/dist/controls/Separator.d.ts +19 -0
  192. package/dist/controls/Separator.d.ts.map +1 -0
  193. package/dist/controls/Separator.js +55 -0
  194. package/dist/controls/Separator.js.map +1 -0
  195. package/dist/controls/Separator.styles.d.ts +2 -0
  196. package/dist/controls/Separator.styles.d.ts.map +1 -0
  197. package/dist/controls/Separator.styles.js +49 -0
  198. package/dist/controls/Separator.styles.js.map +1 -0
  199. package/dist/controls/Slider.d.ts +27 -0
  200. package/dist/controls/Slider.d.ts.map +1 -0
  201. package/dist/controls/Slider.js +170 -0
  202. package/dist/controls/Slider.js.map +1 -0
  203. package/dist/controls/Slider.styles.d.ts +2 -0
  204. package/dist/controls/Slider.styles.d.ts.map +1 -0
  205. package/dist/controls/Slider.styles.js +165 -0
  206. package/dist/controls/Slider.styles.js.map +1 -0
  207. package/dist/controls/Text.d.ts +17 -0
  208. package/dist/controls/Text.d.ts.map +1 -0
  209. package/dist/controls/Text.js +99 -0
  210. package/dist/controls/Text.js.map +1 -0
  211. package/dist/controls/flagMask.d.ts +13 -0
  212. package/dist/controls/flagMask.d.ts.map +1 -0
  213. package/dist/controls/flagMask.js +27 -0
  214. package/dist/controls/flagMask.js.map +1 -0
  215. package/dist/controls/roving.d.ts +5 -0
  216. package/dist/controls/roving.d.ts.map +1 -0
  217. package/dist/controls/roving.js +20 -0
  218. package/dist/controls/roving.js.map +1 -0
  219. package/dist/controls/types.d.ts +18 -0
  220. package/dist/controls/types.d.ts.map +1 -0
  221. package/dist/controls/types.js +2 -0
  222. package/dist/controls/types.js.map +1 -0
  223. package/dist/data/Tree.d.ts +44 -0
  224. package/dist/data/Tree.d.ts.map +1 -0
  225. package/dist/data/Tree.js +662 -0
  226. package/dist/data/Tree.js.map +1 -0
  227. package/dist/data/Tree.styles.d.ts +2 -0
  228. package/dist/data/Tree.styles.d.ts.map +1 -0
  229. package/dist/data/Tree.styles.js +244 -0
  230. package/dist/data/Tree.styles.js.map +1 -0
  231. package/dist/data/Tree.types.d.ts +46 -0
  232. package/dist/data/Tree.types.d.ts.map +1 -0
  233. package/dist/data/Tree.types.js +2 -0
  234. package/dist/data/Tree.types.js.map +1 -0
  235. package/dist/data/dropZone.d.ts +14 -0
  236. package/dist/data/dropZone.d.ts.map +1 -0
  237. package/dist/data/dropZone.js +26 -0
  238. package/dist/data/dropZone.js.map +1 -0
  239. package/dist/data/events.d.ts +23 -0
  240. package/dist/data/events.d.ts.map +1 -0
  241. package/dist/data/events.js +9 -0
  242. package/dist/data/events.js.map +1 -0
  243. package/dist/data/resolveRename.d.ts +5 -0
  244. package/dist/data/resolveRename.d.ts.map +1 -0
  245. package/dist/data/resolveRename.js +12 -0
  246. package/dist/data/resolveRename.js.map +1 -0
  247. package/dist/data/resolveReparent.d.ts +33 -0
  248. package/dist/data/resolveReparent.d.ts.map +1 -0
  249. package/dist/data/resolveReparent.js +82 -0
  250. package/dist/data/resolveReparent.js.map +1 -0
  251. package/dist/data/rowDragSession.d.ts +19 -0
  252. package/dist/data/rowDragSession.d.ts.map +1 -0
  253. package/dist/data/rowDragSession.js +74 -0
  254. package/dist/data/rowDragSession.js.map +1 -0
  255. package/dist/data/selection.d.ts +16 -0
  256. package/dist/data/selection.d.ts.map +1 -0
  257. package/dist/data/selection.js +57 -0
  258. package/dist/data/selection.js.map +1 -0
  259. package/dist/data/treeNodes.d.ts +19 -0
  260. package/dist/data/treeNodes.d.ts.map +1 -0
  261. package/dist/data/treeNodes.js +71 -0
  262. package/dist/data/treeNodes.js.map +1 -0
  263. package/dist/dom.d.ts +13 -0
  264. package/dist/dom.d.ts.map +1 -0
  265. package/dist/dom.js +25 -0
  266. package/dist/dom.js.map +1 -0
  267. package/dist/facade/Binding.d.ts +25 -0
  268. package/dist/facade/Binding.d.ts.map +1 -0
  269. package/dist/facade/Binding.js +145 -0
  270. package/dist/facade/Binding.js.map +1 -0
  271. package/dist/facade/Button.d.ts +19 -0
  272. package/dist/facade/Button.d.ts.map +1 -0
  273. package/dist/facade/Button.js +34 -0
  274. package/dist/facade/Button.js.map +1 -0
  275. package/dist/facade/Container.d.ts +32 -0
  276. package/dist/facade/Container.d.ts.map +1 -0
  277. package/dist/facade/Container.js +83 -0
  278. package/dist/facade/Container.js.map +1 -0
  279. package/dist/facade/Dock.d.ts +11 -0
  280. package/dist/facade/Dock.d.ts.map +1 -0
  281. package/dist/facade/Dock.js +27 -0
  282. package/dist/facade/Dock.js.map +1 -0
  283. package/dist/facade/Folder.d.ts +16 -0
  284. package/dist/facade/Folder.d.ts.map +1 -0
  285. package/dist/facade/Folder.js +19 -0
  286. package/dist/facade/Folder.js.map +1 -0
  287. package/dist/facade/Monitor.d.ts +37 -0
  288. package/dist/facade/Monitor.d.ts.map +1 -0
  289. package/dist/facade/Monitor.js +66 -0
  290. package/dist/facade/Monitor.js.map +1 -0
  291. package/dist/facade/Pane.d.ts +55 -0
  292. package/dist/facade/Pane.d.ts.map +1 -0
  293. package/dist/facade/Pane.js +60 -0
  294. package/dist/facade/Pane.js.map +1 -0
  295. package/dist/facade/Presence.d.ts +29 -0
  296. package/dist/facade/Presence.d.ts.map +1 -0
  297. package/dist/facade/Presence.js +48 -0
  298. package/dist/facade/Presence.js.map +1 -0
  299. package/dist/facade/Separator.d.ts +11 -0
  300. package/dist/facade/Separator.d.ts.map +1 -0
  301. package/dist/facade/Separator.js +24 -0
  302. package/dist/facade/Separator.js.map +1 -0
  303. package/dist/facade/dispatch.d.ts +22 -0
  304. package/dist/facade/dispatch.d.ts.map +1 -0
  305. package/dist/facade/dispatch.js +67 -0
  306. package/dist/facade/dispatch.js.map +1 -0
  307. package/dist/facade/monitorFields.d.ts +11 -0
  308. package/dist/facade/monitorFields.d.ts.map +1 -0
  309. package/dist/facade/monitorFields.js +13 -0
  310. package/dist/facade/monitorFields.js.map +1 -0
  311. package/dist/facade/monitorValue.d.ts +8 -0
  312. package/dist/facade/monitorValue.d.ts.map +1 -0
  313. package/dist/facade/monitorValue.js +13 -0
  314. package/dist/facade/monitorValue.js.map +1 -0
  315. package/dist/feedback/JollyPixelLogo.d.ts +2 -0
  316. package/dist/feedback/JollyPixelLogo.d.ts.map +1 -0
  317. package/dist/feedback/JollyPixelLogo.js +91 -0
  318. package/dist/feedback/JollyPixelLogo.js.map +1 -0
  319. package/dist/feedback/Loading.d.ts +36 -0
  320. package/dist/feedback/Loading.d.ts.map +1 -0
  321. package/dist/feedback/Loading.js +175 -0
  322. package/dist/feedback/Loading.js.map +1 -0
  323. package/dist/feedback/Loading.styles.d.ts +2 -0
  324. package/dist/feedback/Loading.styles.d.ts.map +1 -0
  325. package/dist/feedback/Loading.styles.js +236 -0
  326. package/dist/feedback/Loading.styles.js.map +1 -0
  327. package/dist/feedback/Log.d.ts +21 -0
  328. package/dist/feedback/Log.d.ts.map +1 -0
  329. package/dist/feedback/Log.js +126 -0
  330. package/dist/feedback/Log.js.map +1 -0
  331. package/dist/feedback/Log.styles.d.ts +2 -0
  332. package/dist/feedback/Log.styles.d.ts.map +1 -0
  333. package/dist/feedback/Log.styles.js +65 -0
  334. package/dist/feedback/Log.styles.js.map +1 -0
  335. package/dist/feedback/LogQueue.d.ts +12 -0
  336. package/dist/feedback/LogQueue.d.ts.map +1 -0
  337. package/dist/feedback/LogQueue.js +91 -0
  338. package/dist/feedback/LogQueue.js.map +1 -0
  339. package/dist/feedback/LogQueue.types.d.ts +16 -0
  340. package/dist/feedback/LogQueue.types.d.ts.map +1 -0
  341. package/dist/feedback/LogQueue.types.js +2 -0
  342. package/dist/feedback/LogQueue.types.js.map +1 -0
  343. package/dist/feedback/Progress.d.ts +24 -0
  344. package/dist/feedback/Progress.d.ts.map +1 -0
  345. package/dist/feedback/Progress.js +120 -0
  346. package/dist/feedback/Progress.js.map +1 -0
  347. package/dist/feedback/Progress.styles.d.ts +2 -0
  348. package/dist/feedback/Progress.styles.d.ts.map +1 -0
  349. package/dist/feedback/Progress.styles.js +150 -0
  350. package/dist/feedback/Progress.styles.js.map +1 -0
  351. package/dist/feedback/index.d.ts +6 -0
  352. package/dist/feedback/index.d.ts.map +1 -0
  353. package/dist/feedback/index.js +5 -0
  354. package/dist/feedback/index.js.map +1 -0
  355. package/dist/feedback/normalizeProgress.d.ts +11 -0
  356. package/dist/feedback/normalizeProgress.d.ts.map +1 -0
  357. package/dist/feedback/normalizeProgress.js +24 -0
  358. package/dist/feedback/normalizeProgress.js.map +1 -0
  359. package/dist/field/DraftController.d.ts +24 -0
  360. package/dist/field/DraftController.d.ts.map +1 -0
  361. package/dist/field/DraftController.js +72 -0
  362. package/dist/field/DraftController.js.map +1 -0
  363. package/dist/field/JollyField.d.ts +101 -0
  364. package/dist/field/JollyField.d.ts.map +1 -0
  365. package/dist/field/JollyField.js +356 -0
  366. package/dist/field/JollyField.js.map +1 -0
  367. package/dist/field/JollyField.styles.d.ts +5 -0
  368. package/dist/field/JollyField.styles.d.ts.map +1 -0
  369. package/dist/field/JollyField.styles.js +439 -0
  370. package/dist/field/JollyField.styles.js.map +1 -0
  371. package/dist/field/PointerFocusController.d.ts +16 -0
  372. package/dist/field/PointerFocusController.d.ts.map +1 -0
  373. package/dist/field/PointerFocusController.js +36 -0
  374. package/dist/field/PointerFocusController.js.map +1 -0
  375. package/dist/field/PopoverController.d.ts +60 -0
  376. package/dist/field/PopoverController.d.ts.map +1 -0
  377. package/dist/field/PopoverController.js +122 -0
  378. package/dist/field/PopoverController.js.map +1 -0
  379. package/dist/field/events.d.ts +14 -0
  380. package/dist/field/events.d.ts.map +1 -0
  381. package/dist/field/events.js +25 -0
  382. package/dist/field/events.js.map +1 -0
  383. package/dist/field/mixed.d.ts +15 -0
  384. package/dist/field/mixed.d.ts.map +1 -0
  385. package/dist/field/mixed.js +10 -0
  386. package/dist/field/mixed.js.map +1 -0
  387. package/dist/field/pointerModality.d.ts +14 -0
  388. package/dist/field/pointerModality.d.ts.map +1 -0
  389. package/dist/field/pointerModality.js +26 -0
  390. package/dist/field/pointerModality.js.map +1 -0
  391. package/dist/field/predicates.d.ts +18 -0
  392. package/dist/field/predicates.d.ts.map +1 -0
  393. package/dist/field/predicates.js +42 -0
  394. package/dist/field/predicates.js.map +1 -0
  395. package/dist/geometry/Rect.d.ts +10 -0
  396. package/dist/geometry/Rect.d.ts.map +1 -0
  397. package/dist/geometry/Rect.js +2 -0
  398. package/dist/geometry/Rect.js.map +1 -0
  399. package/dist/geometry/anchoredPosition.d.ts +23 -0
  400. package/dist/geometry/anchoredPosition.d.ts.map +1 -0
  401. package/dist/geometry/anchoredPosition.js +62 -0
  402. package/dist/geometry/anchoredPosition.js.map +1 -0
  403. package/dist/geometry/clampToViewport.d.ts +23 -0
  404. package/dist/geometry/clampToViewport.d.ts.map +1 -0
  405. package/dist/geometry/clampToViewport.js +16 -0
  406. package/dist/geometry/clampToViewport.js.map +1 -0
  407. package/dist/icon/Icon.d.ts +21 -0
  408. package/dist/icon/Icon.d.ts.map +1 -0
  409. package/dist/icon/Icon.js +88 -0
  410. package/dist/icon/Icon.js.map +1 -0
  411. package/dist/icon/builtins.d.ts +2 -0
  412. package/dist/icon/builtins.d.ts.map +1 -0
  413. package/dist/icon/builtins.js +149 -0
  414. package/dist/icon/builtins.js.map +1 -0
  415. package/dist/icon/index.d.ts +3 -0
  416. package/dist/icon/index.d.ts.map +1 -0
  417. package/dist/icon/index.js +3 -0
  418. package/dist/icon/index.js.map +1 -0
  419. package/dist/icon/registry.d.ts +20 -0
  420. package/dist/icon/registry.d.ts.map +1 -0
  421. package/dist/icon/registry.js +20 -0
  422. package/dist/icon/registry.js.map +1 -0
  423. package/dist/index.d.ts +96 -0
  424. package/dist/index.d.ts.map +1 -0
  425. package/dist/index.js +90 -0
  426. package/dist/index.js.map +1 -0
  427. package/dist/interaction/drag/DragSession.d.ts +111 -0
  428. package/dist/interaction/drag/DragSession.d.ts.map +1 -0
  429. package/dist/interaction/drag/DragSession.js +273 -0
  430. package/dist/interaction/drag/DragSession.js.map +1 -0
  431. package/dist/interaction/drag/dragGhost.d.ts +47 -0
  432. package/dist/interaction/drag/dragGhost.d.ts.map +1 -0
  433. package/dist/interaction/drag/dragGhost.js +77 -0
  434. package/dist/interaction/drag/dragGhost.js.map +1 -0
  435. package/dist/interaction/drag/dragOverlay.d.ts +44 -0
  436. package/dist/interaction/drag/dragOverlay.d.ts.map +1 -0
  437. package/dist/interaction/drag/dragOverlay.js +169 -0
  438. package/dist/interaction/drag/dragOverlay.js.map +1 -0
  439. package/dist/interaction/drag/dropIndex.d.ts +26 -0
  440. package/dist/interaction/drag/dropIndex.d.ts.map +1 -0
  441. package/dist/interaction/drag/dropIndex.js +34 -0
  442. package/dist/interaction/drag/dropIndex.js.map +1 -0
  443. package/dist/interaction/ensureDocumentStyles.d.ts +5 -0
  444. package/dist/interaction/ensureDocumentStyles.d.ts.map +1 -0
  445. package/dist/interaction/ensureDocumentStyles.js +14 -0
  446. package/dist/interaction/ensureDocumentStyles.js.map +1 -0
  447. package/dist/interaction/scrub/ScrubController.d.ts +27 -0
  448. package/dist/interaction/scrub/ScrubController.d.ts.map +1 -0
  449. package/dist/interaction/scrub/ScrubController.js +114 -0
  450. package/dist/interaction/scrub/ScrubController.js.map +1 -0
  451. package/dist/interaction/scrub/dragGuide.d.ts +9 -0
  452. package/dist/interaction/scrub/dragGuide.d.ts.map +1 -0
  453. package/dist/interaction/scrub/dragGuide.js +54 -0
  454. package/dist/interaction/scrub/dragGuide.js.map +1 -0
  455. package/dist/math/AxisController.d.ts +37 -0
  456. package/dist/math/AxisController.d.ts.map +1 -0
  457. package/dist/math/AxisController.js +141 -0
  458. package/dist/math/AxisController.js.map +1 -0
  459. package/dist/math/Point2d.d.ts +33 -0
  460. package/dist/math/Point2d.d.ts.map +1 -0
  461. package/dist/math/Point2d.js +169 -0
  462. package/dist/math/Point2d.js.map +1 -0
  463. package/dist/math/Point2d.styles.d.ts +2 -0
  464. package/dist/math/Point2d.styles.d.ts.map +1 -0
  465. package/dist/math/Point2d.styles.js +55 -0
  466. package/dist/math/Point2d.styles.js.map +1 -0
  467. package/dist/math/Quaternion.d.ts +33 -0
  468. package/dist/math/Quaternion.d.ts.map +1 -0
  469. package/dist/math/Quaternion.js +149 -0
  470. package/dist/math/Quaternion.js.map +1 -0
  471. package/dist/math/Quaternion.styles.d.ts +3 -0
  472. package/dist/math/Quaternion.styles.d.ts.map +1 -0
  473. package/dist/math/Quaternion.styles.js +5 -0
  474. package/dist/math/Quaternion.styles.js.map +1 -0
  475. package/dist/math/Transform.d.ts +62 -0
  476. package/dist/math/Transform.d.ts.map +1 -0
  477. package/dist/math/Transform.js +179 -0
  478. package/dist/math/Transform.js.map +1 -0
  479. package/dist/math/Transform.styles.d.ts +2 -0
  480. package/dist/math/Transform.styles.d.ts.map +1 -0
  481. package/dist/math/Transform.styles.js +21 -0
  482. package/dist/math/Transform.styles.js.map +1 -0
  483. package/dist/math/Vector2.d.ts +14 -0
  484. package/dist/math/Vector2.d.ts.map +1 -0
  485. package/dist/math/Vector2.js +33 -0
  486. package/dist/math/Vector2.js.map +1 -0
  487. package/dist/math/Vector3.d.ts +11 -0
  488. package/dist/math/Vector3.d.ts.map +1 -0
  489. package/dist/math/Vector3.js +22 -0
  490. package/dist/math/Vector3.js.map +1 -0
  491. package/dist/math/Vector4.d.ts +11 -0
  492. package/dist/math/Vector4.d.ts.map +1 -0
  493. package/dist/math/Vector4.js +22 -0
  494. package/dist/math/Vector4.js.map +1 -0
  495. package/dist/math/VectorField.d.ts +33 -0
  496. package/dist/math/VectorField.d.ts.map +1 -0
  497. package/dist/math/VectorField.js +152 -0
  498. package/dist/math/VectorField.js.map +1 -0
  499. package/dist/math/VectorField.styles.d.ts +5 -0
  500. package/dist/math/VectorField.styles.d.ts.map +1 -0
  501. package/dist/math/VectorField.styles.js +111 -0
  502. package/dist/math/VectorField.styles.js.map +1 -0
  503. package/dist/math/axes.d.ts +6 -0
  504. package/dist/math/axes.d.ts.map +1 -0
  505. package/dist/math/axes.js +38 -0
  506. package/dist/math/axes.js.map +1 -0
  507. package/dist/math/components.d.ts +3 -0
  508. package/dist/math/components.d.ts.map +1 -0
  509. package/dist/math/components.js +46 -0
  510. package/dist/math/components.js.map +1 -0
  511. package/dist/math/equals.d.ts +10 -0
  512. package/dist/math/equals.d.ts.map +1 -0
  513. package/dist/math/equals.js +52 -0
  514. package/dist/math/equals.js.map +1 -0
  515. package/dist/math/euler.d.ts +20 -0
  516. package/dist/math/euler.d.ts.map +1 -0
  517. package/dist/math/euler.js +65 -0
  518. package/dist/math/euler.js.map +1 -0
  519. package/dist/math/guards.d.ts +8 -0
  520. package/dist/math/guards.d.ts.map +1 -0
  521. package/dist/math/guards.js +53 -0
  522. package/dist/math/guards.js.map +1 -0
  523. package/dist/math/types.d.ts +32 -0
  524. package/dist/math/types.d.ts.map +1 -0
  525. package/dist/math/types.js +2 -0
  526. package/dist/math/types.js.map +1 -0
  527. package/dist/monitors/Graph.d.ts +39 -0
  528. package/dist/monitors/Graph.d.ts.map +1 -0
  529. package/dist/monitors/Graph.js +171 -0
  530. package/dist/monitors/Graph.js.map +1 -0
  531. package/dist/monitors/Graph.styles.d.ts +2 -0
  532. package/dist/monitors/Graph.styles.d.ts.map +1 -0
  533. package/dist/monitors/Graph.styles.js +46 -0
  534. package/dist/monitors/Graph.styles.js.map +1 -0
  535. package/dist/monitors/Monitor.d.ts +19 -0
  536. package/dist/monitors/Monitor.d.ts.map +1 -0
  537. package/dist/monitors/Monitor.js +61 -0
  538. package/dist/monitors/Monitor.js.map +1 -0
  539. package/dist/monitors/Monitor.styles.d.ts +2 -0
  540. package/dist/monitors/Monitor.styles.d.ts.map +1 -0
  541. package/dist/monitors/Monitor.styles.js +38 -0
  542. package/dist/monitors/Monitor.styles.js.map +1 -0
  543. package/dist/monitors/format.d.ts +7 -0
  544. package/dist/monitors/format.d.ts.map +1 -0
  545. package/dist/monitors/format.js +28 -0
  546. package/dist/monitors/format.js.map +1 -0
  547. package/dist/network/RoomPresenceSource.d.ts +29 -0
  548. package/dist/network/RoomPresenceSource.d.ts.map +1 -0
  549. package/dist/network/RoomPresenceSource.js +116 -0
  550. package/dist/network/RoomPresenceSource.js.map +1 -0
  551. package/dist/network/index.d.ts +2 -0
  552. package/dist/network/index.d.ts.map +1 -0
  553. package/dist/network/index.js +2 -0
  554. package/dist/network/index.js.map +1 -0
  555. package/dist/numeric/evaluate.d.ts +12 -0
  556. package/dist/numeric/evaluate.d.ts.map +1 -0
  557. package/dist/numeric/evaluate.js +206 -0
  558. package/dist/numeric/evaluate.js.map +1 -0
  559. package/dist/numeric/format.d.ts +14 -0
  560. package/dist/numeric/format.d.ts.map +1 -0
  561. package/dist/numeric/format.js +47 -0
  562. package/dist/numeric/format.js.map +1 -0
  563. package/dist/numeric/modifierMultiplier.d.ts +12 -0
  564. package/dist/numeric/modifierMultiplier.d.ts.map +1 -0
  565. package/dist/numeric/modifierMultiplier.js +13 -0
  566. package/dist/numeric/modifierMultiplier.js.map +1 -0
  567. package/dist/numeric/valueFromDelta.d.ts +26 -0
  568. package/dist/numeric/valueFromDelta.d.ts.map +1 -0
  569. package/dist/numeric/valueFromDelta.js +34 -0
  570. package/dist/numeric/valueFromDelta.js.map +1 -0
  571. package/dist/peer/LockController.d.ts +26 -0
  572. package/dist/peer/LockController.d.ts.map +1 -0
  573. package/dist/peer/LockController.js +111 -0
  574. package/dist/peer/LockController.js.map +1 -0
  575. package/dist/peer/Presence.d.ts +37 -0
  576. package/dist/peer/Presence.d.ts.map +1 -0
  577. package/dist/peer/Presence.js +151 -0
  578. package/dist/peer/Presence.js.map +1 -0
  579. package/dist/peer/Presence.styles.d.ts +2 -0
  580. package/dist/peer/Presence.styles.d.ts.map +1 -0
  581. package/dist/peer/Presence.styles.js +86 -0
  582. package/dist/peer/Presence.styles.js.map +1 -0
  583. package/dist/peer/PresenceSource.d.ts +28 -0
  584. package/dist/peer/PresenceSource.d.ts.map +1 -0
  585. package/dist/peer/PresenceSource.js +20 -0
  586. package/dist/peer/PresenceSource.js.map +1 -0
  587. package/dist/peer/events.d.ts +13 -0
  588. package/dist/peer/events.d.ts.map +1 -0
  589. package/dist/peer/events.js +9 -0
  590. package/dist/peer/events.js.map +1 -0
  591. package/dist/peer/presenceContext.d.ts +22 -0
  592. package/dist/peer/presenceContext.d.ts.map +1 -0
  593. package/dist/peer/presenceContext.js +42 -0
  594. package/dist/peer/presenceContext.js.map +1 -0
  595. package/dist/peer/resolveLock.d.ts +18 -0
  596. package/dist/peer/resolveLock.d.ts.map +1 -0
  597. package/dist/peer/resolveLock.js +38 -0
  598. package/dist/peer/resolveLock.js.map +1 -0
  599. package/dist/peer/toPresencePeers.d.ts +7 -0
  600. package/dist/peer/toPresencePeers.d.ts.map +1 -0
  601. package/dist/peer/toPresencePeers.js +14 -0
  602. package/dist/peer/toPresencePeers.js.map +1 -0
  603. package/dist/peer/types.d.ts +16 -0
  604. package/dist/peer/types.d.ts.map +1 -0
  605. package/dist/peer/types.js +2 -0
  606. package/dist/peer/types.js.map +1 -0
  607. package/dist/stats/MetricDefinition.d.ts +23 -0
  608. package/dist/stats/MetricDefinition.d.ts.map +1 -0
  609. package/dist/stats/MetricDefinition.js +14 -0
  610. package/dist/stats/MetricDefinition.js.map +1 -0
  611. package/dist/stats/Stats.d.ts +23 -0
  612. package/dist/stats/Stats.d.ts.map +1 -0
  613. package/dist/stats/Stats.js +354 -0
  614. package/dist/stats/Stats.js.map +1 -0
  615. package/dist/stats/Stats.styles.d.ts +2 -0
  616. package/dist/stats/Stats.styles.d.ts.map +1 -0
  617. package/dist/stats/Stats.styles.js +60 -0
  618. package/dist/stats/Stats.styles.js.map +1 -0
  619. package/dist/stats/StatsRecorder.d.ts +29 -0
  620. package/dist/stats/StatsRecorder.d.ts.map +1 -0
  621. package/dist/stats/StatsRecorder.js +151 -0
  622. package/dist/stats/StatsRecorder.js.map +1 -0
  623. package/dist/stats/builtins.d.ts +14 -0
  624. package/dist/stats/builtins.d.ts.map +1 -0
  625. package/dist/stats/builtins.js +63 -0
  626. package/dist/stats/builtins.js.map +1 -0
  627. package/dist/stats/index.d.ts +3 -0
  628. package/dist/stats/index.d.ts.map +1 -0
  629. package/dist/stats/index.js +3 -0
  630. package/dist/stats/index.js.map +1 -0
  631. package/dist/storage/LocalStorageAdapter.d.ts +28 -0
  632. package/dist/storage/LocalStorageAdapter.d.ts.map +1 -0
  633. package/dist/storage/LocalStorageAdapter.js +57 -0
  634. package/dist/storage/LocalStorageAdapter.js.map +1 -0
  635. package/dist/storage/MemoryStorageAdapter.d.ts +10 -0
  636. package/dist/storage/MemoryStorageAdapter.d.ts.map +1 -0
  637. package/dist/storage/MemoryStorageAdapter.js +13 -0
  638. package/dist/storage/MemoryStorageAdapter.js.map +1 -0
  639. package/dist/storage/PersistedState.d.ts +20 -0
  640. package/dist/storage/PersistedState.d.ts.map +1 -0
  641. package/dist/storage/PersistedState.js +34 -0
  642. package/dist/storage/PersistedState.js.map +1 -0
  643. package/dist/storage/StorageAdapter.d.ts +5 -0
  644. package/dist/storage/StorageAdapter.d.ts.map +1 -0
  645. package/dist/storage/StorageAdapter.js +2 -0
  646. package/dist/storage/StorageAdapter.js.map +1 -0
  647. package/dist/storage/keys.d.ts +13 -0
  648. package/dist/storage/keys.d.ts.map +1 -0
  649. package/dist/storage/keys.js +58 -0
  650. package/dist/storage/keys.js.map +1 -0
  651. package/dist/theme/ambientTheme.d.ts +5 -0
  652. package/dist/theme/ambientTheme.d.ts.map +1 -0
  653. package/dist/theme/ambientTheme.js +54 -0
  654. package/dist/theme/ambientTheme.js.map +1 -0
  655. package/dist/theme/components/DensityControl.d.ts +23 -0
  656. package/dist/theme/components/DensityControl.d.ts.map +1 -0
  657. package/dist/theme/components/DensityControl.js +78 -0
  658. package/dist/theme/components/DensityControl.js.map +1 -0
  659. package/dist/theme/components/ScopeHost.d.ts +21 -0
  660. package/dist/theme/components/ScopeHost.d.ts.map +1 -0
  661. package/dist/theme/components/ScopeHost.js +34 -0
  662. package/dist/theme/components/ScopeHost.js.map +1 -0
  663. package/dist/theme/components/ThemeControl.d.ts +23 -0
  664. package/dist/theme/components/ThemeControl.d.ts.map +1 -0
  665. package/dist/theme/components/ThemeControl.js +78 -0
  666. package/dist/theme/components/ThemeControl.js.map +1 -0
  667. package/dist/theme/components/ThemePreferences.d.ts +34 -0
  668. package/dist/theme/components/ThemePreferences.d.ts.map +1 -0
  669. package/dist/theme/components/ThemePreferences.js +151 -0
  670. package/dist/theme/components/ThemePreferences.js.map +1 -0
  671. package/dist/theme/font.d.ts +11 -0
  672. package/dist/theme/font.d.ts.map +1 -0
  673. package/dist/theme/font.js +50 -0
  674. package/dist/theme/font.js.map +1 -0
  675. package/dist/theme/peerColor.d.ts +7 -0
  676. package/dist/theme/peerColor.d.ts.map +1 -0
  677. package/dist/theme/peerColor.js +11 -0
  678. package/dist/theme/peerColor.js.map +1 -0
  679. package/dist/theme/preferences.d.ts +5 -0
  680. package/dist/theme/preferences.d.ts.map +1 -0
  681. package/dist/theme/preferences.js +22 -0
  682. package/dist/theme/preferences.js.map +1 -0
  683. package/dist/theme/resolveThemeToken.d.ts +7 -0
  684. package/dist/theme/resolveThemeToken.d.ts.map +1 -0
  685. package/dist/theme/resolveThemeToken.js +39 -0
  686. package/dist/theme/resolveThemeToken.js.map +1 -0
  687. package/dist/theme/styles/fallbacks.d.ts +54 -0
  688. package/dist/theme/styles/fallbacks.d.ts.map +1 -0
  689. package/dist/theme/styles/fallbacks.js +56 -0
  690. package/dist/theme/styles/fallbacks.js.map +1 -0
  691. package/dist/theme/styles/hiddenStyles.d.ts +9 -0
  692. package/dist/theme/styles/hiddenStyles.d.ts.map +1 -0
  693. package/dist/theme/styles/hiddenStyles.js +15 -0
  694. package/dist/theme/styles/hiddenStyles.js.map +1 -0
  695. package/dist/theme/styles/mixins.d.ts +21 -0
  696. package/dist/theme/styles/mixins.d.ts.map +1 -0
  697. package/dist/theme/styles/mixins.js +41 -0
  698. package/dist/theme/styles/mixins.js.map +1 -0
  699. package/dist/theme/styles/themeStyles.d.ts +5 -0
  700. package/dist/theme/styles/themeStyles.d.ts.map +1 -0
  701. package/dist/theme/styles/themeStyles.js +23 -0
  702. package/dist/theme/styles/themeStyles.js.map +1 -0
  703. package/dist/theme/tokens/density.d.ts +8 -0
  704. package/dist/theme/tokens/density.d.ts.map +1 -0
  705. package/dist/theme/tokens/density.js +29 -0
  706. package/dist/theme/tokens/density.js.map +1 -0
  707. package/dist/theme/tokens/ramps.d.ts +5 -0
  708. package/dist/theme/tokens/ramps.d.ts.map +1 -0
  709. package/dist/theme/tokens/ramps.js +47 -0
  710. package/dist/theme/tokens/ramps.js.map +1 -0
  711. package/dist/theme/tokens/scales.d.ts +5 -0
  712. package/dist/theme/tokens/scales.d.ts.map +1 -0
  713. package/dist/theme/tokens/scales.js +63 -0
  714. package/dist/theme/tokens/scales.js.map +1 -0
  715. package/dist/theme/tokens/semantic.d.ts +5 -0
  716. package/dist/theme/tokens/semantic.d.ts.map +1 -0
  717. package/dist/theme/tokens/semantic.js +208 -0
  718. package/dist/theme/tokens/semantic.js.map +1 -0
  719. package/dist/theme/types.d.ts +6 -0
  720. package/dist/theme/types.d.ts.map +1 -0
  721. package/dist/theme/types.js +2 -0
  722. package/dist/theme/types.js.map +1 -0
  723. package/package.json +75 -0
@@ -0,0 +1,273 @@
1
+ // Import Internal Dependencies
2
+ import { createDragOverlay } from "./dragOverlay.js";
3
+ import { resolveDropIndex } from "./dropIndex.js";
4
+ import { ensureDocumentStyles } from "../ensureDocumentStyles.js";
5
+ import { kFallback } from "../../theme/styles/fallbacks.js";
6
+ import { resolveThemeToken } from "../../theme/resolveThemeToken.js";
7
+ // CONSTANTS
8
+ const kThreshold = 4;
9
+ const kDeadBand = 6;
10
+ const kDraggingClass = "jolly-pane-dragging";
11
+ const kInsertionThickness = 2;
12
+ const kEnterDepth = 48;
13
+ const kChipOffset = 12;
14
+ const kChipHeight = 22;
15
+ /**
16
+ * Runs one pointer drag of a pane or folder.
17
+ *
18
+ * Nothing is mutated while the pointer moves: the session resolves an armed
19
+ * zone and an insertion index, paints them, and reports the final position
20
+ * once through `onCommit`. A release below the movement threshold is a click,
21
+ * so it reports no placement; `onEnd` still runs, and runs exactly once.
22
+ */
23
+ export function startDragSession(options) {
24
+ const { source, event, handle = source, zones, probe, ghostLabel, visuals = true, ghost = true, ghostElement, threshold = kThreshold, deadBand = kDeadBand, onStart, onPreview, onCommit, onCancel, onEnd } = options;
25
+ const pointerId = event.pointerId;
26
+ const originX = event.clientX;
27
+ const originY = event.clientY;
28
+ let started = false;
29
+ let settled = false;
30
+ let overlay = null;
31
+ let armed = [];
32
+ let current = null;
33
+ let ghostX = -kChipOffset;
34
+ let ghostY = -kChipOffset;
35
+ let result = {
36
+ zone: null,
37
+ index: 0,
38
+ x: originX,
39
+ y: originY
40
+ };
41
+ function begin() {
42
+ started = true;
43
+ armed = zones();
44
+ if (visuals) {
45
+ const rect = source.getBoundingClientRect();
46
+ const element = ghost ? ghostElement?.() ?? null : null;
47
+ // Nothing has moved yet, so the source still sits where it was grabbed
48
+ // and the offset taken at pointerdown still holds.
49
+ if (element !== null) {
50
+ ghostX = originX - rect.x;
51
+ ghostY = originY - rect.y;
52
+ }
53
+ overlay = createDragOverlay({
54
+ accent: resolveThemeToken(source, "--jolly-accent-fill", String(kFallback.focusRing)),
55
+ label: ghostLabel,
56
+ ghost,
57
+ element,
58
+ scope: source,
59
+ width: element === null ? Math.max(rect.width, 120) : rect.width,
60
+ height: kChipHeight
61
+ });
62
+ overlay.showZones(armed.map((zone) => zone.rect));
63
+ }
64
+ ensureSessionStyles();
65
+ document.documentElement.classList.add(kDraggingClass);
66
+ onStart?.();
67
+ }
68
+ function update(clientX, clientY) {
69
+ const zone = armed.find((candidate) => contains(candidate.rect, clientX, clientY)) ?? entered(armed, probe?.(clientX, clientY) ?? null);
70
+ overlay?.armZone(zone === null ? null : armed.indexOf(zone));
71
+ if (zone === null) {
72
+ current = null;
73
+ overlay?.hideInsertion();
74
+ }
75
+ else {
76
+ const sameZone = result.zone !== null && result.zone.id === zone.id;
77
+ current = resolveDropIndex({
78
+ position: zone.axis === "y" ? clientY : clientX,
79
+ candidates: zone.candidates,
80
+ current: sameZone ? current : null,
81
+ deadBand
82
+ });
83
+ if (movesNothing(zone, current)) {
84
+ overlay?.hideInsertion();
85
+ }
86
+ else {
87
+ overlay?.showInsertion(zone.line(current));
88
+ }
89
+ }
90
+ overlay?.moveGhost(clientX - ghostX, clientY - ghostY);
91
+ result = {
92
+ zone,
93
+ index: current ?? 0,
94
+ x: clientX,
95
+ y: clientY
96
+ };
97
+ onPreview?.(result);
98
+ }
99
+ function teardown() {
100
+ handle.removeEventListener("pointermove", onPointerMove);
101
+ handle.removeEventListener("pointerup", onPointerUp);
102
+ handle.removeEventListener("pointercancel", onPointerCancel);
103
+ document.removeEventListener("keydown", onKeyDown, true);
104
+ if (handle.hasPointerCapture(pointerId)) {
105
+ handle.releasePointerCapture(pointerId);
106
+ }
107
+ overlay?.destroy();
108
+ overlay = null;
109
+ document.documentElement.classList.remove(kDraggingClass);
110
+ }
111
+ /**
112
+ * Ends the session exactly once, whatever released it.
113
+ *
114
+ * A drag that never passed the threshold reports no placement, but still
115
+ * settles: `onEnd` is the caller's only guarantee that the session is over.
116
+ */
117
+ function settle(commit) {
118
+ if (settled) {
119
+ return;
120
+ }
121
+ settled = true;
122
+ const notify = started;
123
+ teardown();
124
+ if (notify) {
125
+ if (commit) {
126
+ onCommit(result);
127
+ }
128
+ else {
129
+ onCancel?.();
130
+ }
131
+ }
132
+ onEnd?.();
133
+ }
134
+ function onPointerMove(moveEvent) {
135
+ if (moveEvent.pointerId !== pointerId) {
136
+ return;
137
+ }
138
+ if (!started) {
139
+ const travelled = Math.hypot(moveEvent.clientX - originX, moveEvent.clientY - originY);
140
+ if (travelled < threshold) {
141
+ return;
142
+ }
143
+ begin();
144
+ }
145
+ update(moveEvent.clientX, moveEvent.clientY);
146
+ }
147
+ function onPointerUp(upEvent) {
148
+ if (upEvent.pointerId !== pointerId) {
149
+ return;
150
+ }
151
+ settle(true);
152
+ }
153
+ function onPointerCancel(cancelEvent) {
154
+ if (cancelEvent.pointerId !== pointerId) {
155
+ return;
156
+ }
157
+ settle(false);
158
+ }
159
+ function onKeyDown(keyEvent) {
160
+ if (keyEvent.key !== "Escape") {
161
+ return;
162
+ }
163
+ keyEvent.preventDefault();
164
+ keyEvent.stopPropagation();
165
+ settle(false);
166
+ }
167
+ handle.setPointerCapture(pointerId);
168
+ handle.addEventListener("pointermove", onPointerMove);
169
+ handle.addEventListener("pointerup", onPointerUp);
170
+ handle.addEventListener("pointercancel", onPointerCancel);
171
+ document.addEventListener("keydown", onKeyDown, true);
172
+ return {
173
+ cancel() {
174
+ settle(false);
175
+ }
176
+ };
177
+ }
178
+ /**
179
+ * Builds the insertion line for a vertical stack of children.
180
+ */
181
+ export function verticalInsertionLine(bounds, candidates, index) {
182
+ const position = index === 0 ?
183
+ (candidates[0]?.start ?? bounds.y) :
184
+ edgeOf(candidates[index - 1], bounds.y + bounds.height);
185
+ return {
186
+ x: bounds.x,
187
+ y: position - (kInsertionThickness / 2),
188
+ width: bounds.width,
189
+ height: kInsertionThickness
190
+ };
191
+ }
192
+ /**
193
+ * Builds the insertion line for a horizontal stack of children.
194
+ */
195
+ export function horizontalInsertionLine(bounds, candidates, index) {
196
+ const position = index === 0 ?
197
+ (candidates[0]?.start ?? bounds.x) :
198
+ edgeOf(candidates[index - 1], bounds.x + bounds.width);
199
+ return {
200
+ x: position - (kInsertionThickness / 2),
201
+ y: bounds.y,
202
+ width: kInsertionThickness,
203
+ height: bounds.height
204
+ };
205
+ }
206
+ function edgeOf(candidate, fallback) {
207
+ return candidate === undefined ?
208
+ fallback :
209
+ candidate.start + candidate.size;
210
+ }
211
+ function contains(rect, x, y) {
212
+ return x >= rect.x &&
213
+ x <= rect.x + rect.width &&
214
+ y >= rect.y &&
215
+ y <= rect.y + rect.height;
216
+ }
217
+ /**
218
+ * Zone the dragged box has sunk furthest into, or `null` for none.
219
+ *
220
+ * Depth is measured across the zone, on the axis its children do not stack
221
+ * along, so a window docks by moving toward the dock rather than by covering
222
+ * its whole length. A zone thinner than the required depth arms on full
223
+ * coverage instead, which is the case of an emptied dock reduced to a band.
224
+ */
225
+ function entered(zones, box) {
226
+ if (box === null) {
227
+ return null;
228
+ }
229
+ let best = null;
230
+ let deepest = 0;
231
+ for (const zone of zones) {
232
+ const across = zone.axis === "y" ?
233
+ overlap(box.x, box.width, zone.rect.x, zone.rect.width) :
234
+ overlap(box.y, box.height, zone.rect.y, zone.rect.height);
235
+ const along = zone.axis === "y" ?
236
+ overlap(box.y, box.height, zone.rect.y, zone.rect.height) :
237
+ overlap(box.x, box.width, zone.rect.x, zone.rect.width);
238
+ const needed = Math.min(kEnterDepth, zone.axis === "y" ? zone.rect.width : zone.rect.height);
239
+ if (along > 0 && across >= needed && across > deepest) {
240
+ deepest = across;
241
+ best = zone;
242
+ }
243
+ }
244
+ return best;
245
+ }
246
+ /**
247
+ * Overlap of two extents on one axis, in pixels.
248
+ */
249
+ function overlap(start, size, otherStart, otherSize) {
250
+ return Math.max(0, Math.min(start + size, otherStart + otherSize) - Math.max(start, otherStart));
251
+ }
252
+ /**
253
+ * True when inserting at `index` would leave the dragged element exactly where
254
+ * it already sits, which is every index a lone child can resolve to.
255
+ */
256
+ function movesNothing(zone, index) {
257
+ const source = zone.source ?? null;
258
+ return source !== null &&
259
+ (index === source || index === source + 1);
260
+ }
261
+ /**
262
+ * Lazily installs the document-level cursor lock used during a drag.
263
+ */
264
+ function ensureSessionStyles() {
265
+ ensureDocumentStyles("jolly-drag-session-styles", `
266
+ html.${kDraggingClass},
267
+ html.${kDraggingClass} * {
268
+ cursor: grabbing !important;
269
+ user-select: none !important;
270
+ }
271
+ `);
272
+ }
273
+ //# sourceMappingURL=DragSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DragSession.js","sourceRoot":"","sources":["../../../src/interaction/drag/DragSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { StorageAdapter } from "../../storage/StorageAdapter.ts";
2
+ /**
3
+ * A container a drag can clone its ghost from.
4
+ */
5
+ export interface GhostSource extends HTMLElement {
6
+ storage: StorageAdapter;
7
+ /** Client rect of the chrome the ghost keeps. */
8
+ headerRect(): DOMRect;
9
+ }
10
+ /**
11
+ * Theme token names a scope host declares.
12
+ *
13
+ * Read from the stylesheet that declares them rather than hand-listed, so the
14
+ * two cannot drift: a token added to the theme is carried onto a ghost without
15
+ * anyone remembering to list it here. Computed once and kept.
16
+ */
17
+ export declare function themeTokenNames(): readonly string[];
18
+ /**
19
+ * Copies the resolved theme onto an element standing outside every scope host.
20
+ *
21
+ * A ghost renders in `document.body`, where none of the tokens are declared,
22
+ * and would otherwise paint itself out of the usage-site fallbacks alone. One
23
+ * level of copying is enough because the computed value of a custom property
24
+ * already has its own `var()` references substituted. `color-scheme` comes
25
+ * along because the tokens are built on `light-dark()`, which resolves against
26
+ * the scheme in force rather than where it was declared.
27
+ */
28
+ export declare function copyTheme(source: HTMLElement, target: HTMLElement): void;
29
+ /**
30
+ * Clones a container down to the chrome a drag needs to show.
31
+ *
32
+ * The clone is a real element: once connected it renders its own shadow DOM,
33
+ * so the ghost matches the source without replicating any of its styling. It
34
+ * drops the light DOM, whose controls hold state a shallow clone cannot carry
35
+ * and whose contents are not what the gesture is about. Storage is swapped for
36
+ * a scratch adapter because a container restores its open state on connect and
37
+ * would otherwise reopen itself a microtask after being built.
38
+ *
39
+ * The clone is squeezed to its header rather than folded shut. Folding would
40
+ * turn a chevron the other way and report a state the container being carried
41
+ * is not in; clipping leaves every control reading exactly as its source does.
42
+ *
43
+ * Callers reassign whatever the source held as an unreflected property, `label`
44
+ * and `title` above all, since only attributes survive a clone.
45
+ */
46
+ export declare function headerGhost<T extends GhostSource>(source: T): T;
47
+ //# sourceMappingURL=dragGhost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dragGhost.d.ts","sourceRoot":"","sources":["../../../src/interaction/drag/dragGhost.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMtE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,OAAO,EAAE,cAAc,CAAC;IACxB,iDAAiD;IACjD,UAAU,IAAI,OAAO,CAAC;CACvB;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,SAAS,MAAM,EAAE,CAMnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,GAClB,IAAI,CAqBN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAC/C,MAAM,EAAE,CAAC,GACR,CAAC,CAkBH"}
@@ -0,0 +1,77 @@
1
+ // Import Internal Dependencies
2
+ import { MemoryStorageAdapter } from "../../storage/MemoryStorageAdapter.js";
3
+ import { themeStyles } from "../../theme/styles/themeStyles.js";
4
+ // CONSTANTS
5
+ const kTokenPattern = /--jolly-[a-z0-9-]+(?=\s*:)/g;
6
+ let cachedNames = null;
7
+ /**
8
+ * Theme token names a scope host declares.
9
+ *
10
+ * Read from the stylesheet that declares them rather than hand-listed, so the
11
+ * two cannot drift: a token added to the theme is carried onto a ghost without
12
+ * anyone remembering to list it here. Computed once and kept.
13
+ */
14
+ export function themeTokenNames() {
15
+ cachedNames ??= [
16
+ ...new Set(themeStyles.cssText.match(kTokenPattern) ?? [])
17
+ ];
18
+ return cachedNames;
19
+ }
20
+ /**
21
+ * Copies the resolved theme onto an element standing outside every scope host.
22
+ *
23
+ * A ghost renders in `document.body`, where none of the tokens are declared,
24
+ * and would otherwise paint itself out of the usage-site fallbacks alone. One
25
+ * level of copying is enough because the computed value of a custom property
26
+ * already has its own `var()` references substituted. `color-scheme` comes
27
+ * along because the tokens are built on `light-dark()`, which resolves against
28
+ * the scheme in force rather than where it was declared.
29
+ */
30
+ export function copyTheme(source, target) {
31
+ const computed = getComputedStyle(source);
32
+ for (const name of themeTokenNames()) {
33
+ const value = computed.getPropertyValue(name);
34
+ if (value !== "") {
35
+ target.style.setProperty(name, value);
36
+ }
37
+ }
38
+ target.style.setProperty("color-scheme", computed.colorScheme);
39
+ target.style.setProperty("font-family", computed.fontFamily);
40
+ target.style.setProperty("font-size", computed.fontSize);
41
+ }
42
+ /**
43
+ * Clones a container down to the chrome a drag needs to show.
44
+ *
45
+ * The clone is a real element: once connected it renders its own shadow DOM,
46
+ * so the ghost matches the source without replicating any of its styling. It
47
+ * drops the light DOM, whose controls hold state a shallow clone cannot carry
48
+ * and whose contents are not what the gesture is about. Storage is swapped for
49
+ * a scratch adapter because a container restores its open state on connect and
50
+ * would otherwise reopen itself a microtask after being built.
51
+ *
52
+ * The clone is squeezed to its header rather than folded shut. Folding would
53
+ * turn a chevron the other way and report a state the container being carried
54
+ * is not in; clipping leaves every control reading exactly as its source does.
55
+ *
56
+ * Callers reassign whatever the source held as an unreflected property, `label`
57
+ * and `title` above all, since only attributes survive a clone.
58
+ */
59
+ export function headerGhost(source) {
60
+ const ghost = source.cloneNode(false);
61
+ Object.assign(ghost.style, {
62
+ height: `${source.headerRect().height}px`,
63
+ overflow: "hidden"
64
+ });
65
+ // A throwaway replica answers for nothing: leaving the identity on it would
66
+ // put a second element under the same key and id into the document, where
67
+ // "getElementById" and every key-based query would find it.
68
+ ghost.removeAttribute("key");
69
+ ghost.removeAttribute("id");
70
+ // The source dims itself in place. A ghost that did the same would read as a
71
+ // second dropped element rather than the one being carried.
72
+ ghost.removeAttribute("dragging");
73
+ ghost.storage = new MemoryStorageAdapter();
74
+ ghost.inert = true;
75
+ return ghost;
76
+ }
77
+ //# sourceMappingURL=dragGhost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dragGhost.js","sourceRoot":"","sources":["../../../src/interaction/drag/dragGhost.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,YAAY;AACZ,MAAM,aAAa,GAAG,6BAA6B,CAAC;AAWpD,IAAI,WAAW,GAA6B,IAAI,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC7B,WAAW,KAAK;QACd,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;KAC3D,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CACvB,MAAmB,EACnB,MAAmB;IAEnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,cAAc,EACd,QAAQ,CAAC,WAAW,CACrB,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,aAAa,EACb,QAAQ,CAAC,UAAU,CACpB,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,WAAW,EACX,QAAQ,CAAC,QAAQ,CAClB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CACzB,MAAS;IAET,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAM,CAAC;IAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,IAAI;QACzC,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IACH,4EAA4E;IAC5E,0EAA0E;IAC1E,4DAA4D;IAC5D,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7B,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5B,6EAA6E;IAC7E,4DAA4D;IAC5D,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAClC,KAAK,CAAC,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC3C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IAEnB,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { Rect } from "../../geometry/Rect.ts";
2
+ export interface DragOverlayOptions {
3
+ accent: string;
4
+ label: string;
5
+ /** Trails the cursor with a label chip. */
6
+ ghost?: boolean;
7
+ /**
8
+ * Carried in place of the label chip, normally a header-only clone of the
9
+ * dragged container. Styled by the overlay only where it has to be: position,
10
+ * width and lift. Everything it paints is its own.
11
+ */
12
+ element?: HTMLElement | null;
13
+ /**
14
+ * Element to read the theme from, normally the drag source. Without one the
15
+ * overlay declares no tokens and `element` falls back to its usage-site
16
+ * defaults.
17
+ */
18
+ scope?: HTMLElement;
19
+ /** Ghost width, normally the source rect. The chip also uses `height`. */
20
+ width: number;
21
+ height: number;
22
+ }
23
+ export interface DragOverlay {
24
+ /** Paints the bands that arm a container while a drag is running. */
25
+ showZones(zones: readonly Rect[]): void;
26
+ /**
27
+ * Raises the zone the pointer has armed, by index into the last `showZones`,
28
+ * or lowers them all for `null`.
29
+ */
30
+ armZone(index: number | null): void;
31
+ showInsertion(rect: Rect): void;
32
+ hideInsertion(): void;
33
+ moveGhost(x: number, y: number): void;
34
+ destroy(): void;
35
+ }
36
+ /**
37
+ * Creates the document-level visuals for a pane or folder drag.
38
+ *
39
+ * Lives in `document.body` and therefore outside any theme scope host. The
40
+ * bands and the insertion line take colours already resolved by the caller;
41
+ * `scope` is what lets a cloned `element` resolve the rest for itself.
42
+ */
43
+ export declare function createDragOverlay(options: DragOverlayOptions): DragOverlay;
44
+ //# sourceMappingURL=dragOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dragOverlay.d.ts","sourceRoot":"","sources":["../../../src/interaction/drag/dragOverlay.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AA8CnD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,SAAS,CACP,KAAK,EAAE,SAAS,IAAI,EAAE,GACrB,IAAI,CAAC;IACR;;;OAGG;IACH,OAAO,CACL,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI,CAAC;IACR,aAAa,CACX,IAAI,EAAE,IAAI,GACT,IAAI,CAAC;IACR,aAAa,IAAI,IAAI,CAAC;IACtB,SAAS,CACP,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,IAAI,CAAC;IACR,OAAO,IAAI,IAAI,CAAC;CACjB;AA+BD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,WAAW,CAuHb"}
@@ -0,0 +1,169 @@
1
+ // Import Internal Dependencies
2
+ import { copyTheme } from "./dragGhost.js";
3
+ // CONSTANTS
4
+ const kOverlayClass = "jolly-drag-overlay";
5
+ const kInsertionClass = "jolly-drag-insertion";
6
+ const kGhostClass = "jolly-drag-ghost";
7
+ const kZoneClass = "jolly-drag-zone";
8
+ const kArmedClass = "jolly-drag-zone-armed";
9
+ const kTopLayer = "2147483646";
10
+ const kZoneFade = 120;
11
+ /*
12
+ * A zone is a wash and nothing else: no border, no radius. It covers a whole
13
+ * dock, and an outline around something that large reads as a box drawn over
14
+ * the layout rather than as the layout offering to take something.
15
+ *
16
+ * The wash is the accent, which is the colour a dock already tints itself with
17
+ * when it is being resized, but at a fainter stop: a zone covers a whole dock
18
+ * rather than a handle. The armed zone is the same wash one step up, which is
19
+ * the whole of the difference between a dock on offer and the one about to
20
+ * take the drop.
21
+ */
22
+ const kIdleZone = {
23
+ background: "var(--jolly-dock-zone-bg, rgb(47 111 216 / 0.06))"
24
+ };
25
+ const kArmedZone = {
26
+ background: "var(--jolly-dock-zone-bg-armed, rgb(47 111 216 / 0.1))"
27
+ };
28
+ /*
29
+ * The insertion line is neutral for the same reason the zones are: it lands as
30
+ * often on an accent-filled pane header as on a plain row, and an accent line
31
+ * on accent chrome is no line at all. Muted ink rather than full ink keeps it
32
+ * from reading as a hard rule ruled through the layout, and the ring in the
33
+ * surface behind it is what carries it over any fill it happens to cross.
34
+ */
35
+ const kInsertion = {
36
+ background: "var(--jolly-text-muted, rgb(90 98 112))",
37
+ borderRadius: "999px",
38
+ boxShadow: [
39
+ "0 0 0 1px var(--jolly-surface, rgb(255 255 255 / 0.9))",
40
+ "0 1px 4px rgb(0 0 0 / 0.28)"
41
+ ].join(", ")
42
+ };
43
+ /**
44
+ * Builds the fallback ghost, for a caller that supplies no element of its own.
45
+ *
46
+ * A flat accent block with the label on it: enough to show that something is
47
+ * being carried, and no imitation of any particular container.
48
+ */
49
+ function labelChip(options) {
50
+ const chip = document.createElement("div");
51
+ chip.textContent = options.label;
52
+ Object.assign(chip.style, {
53
+ display: "flex",
54
+ alignItems: "center",
55
+ height: `${options.height}px`,
56
+ padding: "0 8px",
57
+ border: `1px solid ${options.accent}`,
58
+ borderRadius: "3px",
59
+ background: options.accent,
60
+ color: "white",
61
+ font: "inherit",
62
+ letterSpacing: "0.08em",
63
+ overflow: "hidden",
64
+ whiteSpace: "nowrap"
65
+ });
66
+ return chip;
67
+ }
68
+ /**
69
+ * Creates the document-level visuals for a pane or folder drag.
70
+ *
71
+ * Lives in `document.body` and therefore outside any theme scope host. The
72
+ * bands and the insertion line take colours already resolved by the caller;
73
+ * `scope` is what lets a cloned `element` resolve the rest for itself.
74
+ */
75
+ export function createDragOverlay(options) {
76
+ const root = document.createElement("div");
77
+ root.className = kOverlayClass;
78
+ Object.assign(root.style, {
79
+ position: "fixed",
80
+ inset: "0",
81
+ pointerEvents: "none",
82
+ zIndex: kTopLayer
83
+ });
84
+ if (options.scope !== undefined) {
85
+ copyTheme(options.scope, root);
86
+ }
87
+ const insertion = document.createElement("div");
88
+ insertion.className = kInsertionClass;
89
+ Object.assign(insertion.style, {
90
+ position: "fixed",
91
+ display: "none",
92
+ ...kInsertion
93
+ });
94
+ const ghost = options.element ?? labelChip(options);
95
+ ghost.classList.add(kGhostClass);
96
+ Object.assign(ghost.style, {
97
+ position: "fixed",
98
+ boxSizing: "border-box",
99
+ width: `${options.width}px`,
100
+ opacity: "0.85",
101
+ pointerEvents: "none"
102
+ });
103
+ if (options.ghost === false) {
104
+ ghost.style.display = "none";
105
+ }
106
+ else if (options.element !== undefined &&
107
+ options.element !== null) {
108
+ // Only a replica needs lifting off the page: the chip is already a solid
109
+ // block of accent, and reads as carried without one.
110
+ ghost.style.boxShadow = "var(--jolly-shadow-floating, 0 4px 16px rgb(0 0 0 / 0.3))";
111
+ }
112
+ root.append(insertion, ghost);
113
+ document.body.append(root);
114
+ const bands = [];
115
+ return {
116
+ showZones(zones) {
117
+ for (const band of bands) {
118
+ band.remove();
119
+ }
120
+ bands.length = 0;
121
+ for (const zone of zones) {
122
+ const band = document.createElement("div");
123
+ band.className = kZoneClass;
124
+ Object.assign(band.style, {
125
+ position: "fixed",
126
+ left: `${zone.x}px`,
127
+ top: `${zone.y}px`,
128
+ width: `${zone.width}px`,
129
+ height: `${zone.height}px`,
130
+ transition: `background-color ${kZoneFade}ms var(--jolly-easing, ease)`,
131
+ ...kIdleZone
132
+ });
133
+ // Zones appear the instant a drag begins, all of them at once. Fading
134
+ // them in is what keeps that from reading as the layout flinching.
135
+ band.animate([{ opacity: 0 }, { opacity: 1 }], { duration: kZoneFade, easing: "ease-out" });
136
+ bands.push(band);
137
+ root.prepend(band);
138
+ }
139
+ },
140
+ armZone(index) {
141
+ for (let position = 0; position < bands.length; position++) {
142
+ const band = bands[position];
143
+ const armed = position === index;
144
+ band.classList.toggle(kArmedClass, armed);
145
+ Object.assign(band.style, armed ? kArmedZone : kIdleZone);
146
+ }
147
+ },
148
+ showInsertion(rect) {
149
+ Object.assign(insertion.style, {
150
+ display: "block",
151
+ left: `${rect.x}px`,
152
+ top: `${rect.y}px`,
153
+ width: `${rect.width}px`,
154
+ height: `${rect.height}px`
155
+ });
156
+ },
157
+ hideInsertion() {
158
+ insertion.style.display = "none";
159
+ },
160
+ moveGhost(x, y) {
161
+ ghost.style.left = `${x}px`;
162
+ ghost.style.top = `${y}px`;
163
+ },
164
+ destroy() {
165
+ root.remove();
166
+ }
167
+ };
168
+ }
169
+ //# sourceMappingURL=dragOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dragOverlay.js","sourceRoot":"","sources":["../../../src/interaction/drag/dragOverlay.ts"],"names":[],"mappings":"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"}