@solid2-aria/components 0.0.0-stage → 0.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 (514) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +58 -2
  3. package/dist/LICENSES/Apache-2.0.txt +201 -0
  4. package/dist/LICENSES/react-spectrum-NOTICE.txt +242 -0
  5. package/dist/NOTICE.txt +636 -0
  6. package/dist/browser/autocomplete.d.ts +35 -0
  7. package/dist/browser/autocomplete.js +69 -0
  8. package/dist/browser/autocomplete.js.map +1 -0
  9. package/dist/browser/breadcrumbs.d.ts +71 -0
  10. package/dist/browser/breadcrumbs.js +121 -0
  11. package/dist/browser/breadcrumbs.js.map +1 -0
  12. package/dist/browser/button.d.ts +36 -0
  13. package/dist/browser/button.js +156 -0
  14. package/dist/browser/button.js.map +1 -0
  15. package/dist/browser/calendar.d.ts +103 -0
  16. package/dist/browser/calendar.js +581 -0
  17. package/dist/browser/calendar.js.map +1 -0
  18. package/dist/browser/checkbox.d.ts +67 -0
  19. package/dist/browser/checkbox.js +345 -0
  20. package/dist/browser/checkbox.js.map +1 -0
  21. package/dist/browser/collection-dnd.d.ts +56 -0
  22. package/dist/browser/collection-dnd.js +156 -0
  23. package/dist/browser/collection-dnd.js.map +1 -0
  24. package/dist/browser/collection.d.ts +153 -0
  25. package/dist/browser/collection.js +106 -0
  26. package/dist/browser/collection.js.map +1 -0
  27. package/dist/browser/color-area.d.ts +21 -0
  28. package/dist/browser/color-area.js +94 -0
  29. package/dist/browser/color-area.js.map +1 -0
  30. package/dist/browser/color-field.d.ts +39 -0
  31. package/dist/browser/color-field.js +232 -0
  32. package/dist/browser/color-field.js.map +1 -0
  33. package/dist/browser/color-picker.d.ts +30 -0
  34. package/dist/browser/color-picker.js +84 -0
  35. package/dist/browser/color-picker.js.map +1 -0
  36. package/dist/browser/color-slider.d.ts +23 -0
  37. package/dist/browser/color-slider.js +132 -0
  38. package/dist/browser/color-slider.js.map +1 -0
  39. package/dist/browser/color-swatch-picker.d.ts +29 -0
  40. package/dist/browser/color-swatch-picker.js +131 -0
  41. package/dist/browser/color-swatch-picker.js.map +1 -0
  42. package/dist/browser/color-swatch.d.ts +19 -0
  43. package/dist/browser/color-swatch.js +42 -0
  44. package/dist/browser/color-swatch.js.map +1 -0
  45. package/dist/browser/color-thumb.d.ts +42 -0
  46. package/dist/browser/color-thumb.js +114 -0
  47. package/dist/browser/color-thumb.js.map +1 -0
  48. package/dist/browser/color-wheel.d.ts +29 -0
  49. package/dist/browser/color-wheel.js +109 -0
  50. package/dist/browser/color-wheel.js.map +1 -0
  51. package/dist/browser/combo-box.d.ts +113 -0
  52. package/dist/browser/combo-box.js +394 -0
  53. package/dist/browser/combo-box.js.map +1 -0
  54. package/dist/browser/create-drag-and-drop.d.ts +61 -0
  55. package/dist/browser/create-drag-and-drop.js +56 -0
  56. package/dist/browser/create-drag-and-drop.js.map +1 -0
  57. package/dist/browser/date-field.d.ts +71 -0
  58. package/dist/browser/date-field.js +508 -0
  59. package/dist/browser/date-field.js.map +1 -0
  60. package/dist/browser/date-picker.d.ts +50 -0
  61. package/dist/browser/date-picker.js +403 -0
  62. package/dist/browser/date-picker.js.map +1 -0
  63. package/dist/browser/dialog.d.ts +35 -0
  64. package/dist/browser/dialog.js +148 -0
  65. package/dist/browser/dialog.js.map +1 -0
  66. package/dist/browser/disclosure.d.ts +56 -0
  67. package/dist/browser/disclosure.js +180 -0
  68. package/dist/browser/disclosure.js.map +1 -0
  69. package/dist/browser/drag-and-drop.d.ts +43 -0
  70. package/dist/browser/drag-and-drop.js +66 -0
  71. package/dist/browser/drag-and-drop.js.map +1 -0
  72. package/dist/browser/drop-zone.d.ts +33 -0
  73. package/dist/browser/drop-zone.js +161 -0
  74. package/dist/browser/drop-zone.js.map +1 -0
  75. package/dist/browser/field-error.d.ts +28 -0
  76. package/dist/browser/field-error.js +60 -0
  77. package/dist/browser/field-error.js.map +1 -0
  78. package/dist/browser/file-trigger.d.ts +30 -0
  79. package/dist/browser/file-trigger.js +66 -0
  80. package/dist/browser/file-trigger.js.map +1 -0
  81. package/dist/browser/form.d.ts +28 -0
  82. package/dist/browser/form.js +64 -0
  83. package/dist/browser/form.js.map +1 -0
  84. package/dist/browser/grid-layout.d.ts +22 -0
  85. package/dist/browser/grid-layout.js +30 -0
  86. package/dist/browser/grid-layout.js.map +1 -0
  87. package/dist/browser/grid-list.d.ts +95 -0
  88. package/dist/browser/grid-list.js +609 -0
  89. package/dist/browser/grid-list.js.map +1 -0
  90. package/dist/browser/group.d.ts +35 -0
  91. package/dist/browser/group.js +92 -0
  92. package/dist/browser/group.js.map +1 -0
  93. package/dist/browser/header.d.ts +25 -0
  94. package/dist/browser/header.js +57 -0
  95. package/dist/browser/header.js.map +1 -0
  96. package/dist/browser/heading.d.ts +26 -0
  97. package/dist/browser/heading.js +53 -0
  98. package/dist/browser/heading.js.map +1 -0
  99. package/dist/browser/hidden-date-input.d.ts +34 -0
  100. package/dist/browser/hidden-date-input.js +84 -0
  101. package/dist/browser/hidden-date-input.js.map +1 -0
  102. package/dist/browser/index.d.ts +133 -0
  103. package/dist/browser/index.js +98 -0
  104. package/dist/browser/input.d.ts +33 -0
  105. package/dist/browser/input.js +94 -0
  106. package/dist/browser/input.js.map +1 -0
  107. package/dist/browser/intl/ar-AE.js +11 -0
  108. package/dist/browser/intl/ar-AE.js.map +1 -0
  109. package/dist/browser/intl/bg-BG.js +11 -0
  110. package/dist/browser/intl/bg-BG.js.map +1 -0
  111. package/dist/browser/intl/cs-CZ.js +11 -0
  112. package/dist/browser/intl/cs-CZ.js.map +1 -0
  113. package/dist/browser/intl/da-DK.js +11 -0
  114. package/dist/browser/intl/da-DK.js.map +1 -0
  115. package/dist/browser/intl/de-DE.js +11 -0
  116. package/dist/browser/intl/de-DE.js.map +1 -0
  117. package/dist/browser/intl/el-GR.js +11 -0
  118. package/dist/browser/intl/el-GR.js.map +1 -0
  119. package/dist/browser/intl/en-US.js +11 -0
  120. package/dist/browser/intl/en-US.js.map +1 -0
  121. package/dist/browser/intl/es-ES.js +11 -0
  122. package/dist/browser/intl/es-ES.js.map +1 -0
  123. package/dist/browser/intl/et-EE.js +11 -0
  124. package/dist/browser/intl/et-EE.js.map +1 -0
  125. package/dist/browser/intl/fi-FI.js +11 -0
  126. package/dist/browser/intl/fi-FI.js.map +1 -0
  127. package/dist/browser/intl/fr-FR.js +11 -0
  128. package/dist/browser/intl/fr-FR.js.map +1 -0
  129. package/dist/browser/intl/he-IL.js +11 -0
  130. package/dist/browser/intl/he-IL.js.map +1 -0
  131. package/dist/browser/intl/hr-HR.js +11 -0
  132. package/dist/browser/intl/hr-HR.js.map +1 -0
  133. package/dist/browser/intl/hu-HU.js +11 -0
  134. package/dist/browser/intl/hu-HU.js.map +1 -0
  135. package/dist/browser/intl/index.js +75 -0
  136. package/dist/browser/intl/index.js.map +1 -0
  137. package/dist/browser/intl/it-IT.js +11 -0
  138. package/dist/browser/intl/it-IT.js.map +1 -0
  139. package/dist/browser/intl/ja-JP.js +11 -0
  140. package/dist/browser/intl/ja-JP.js.map +1 -0
  141. package/dist/browser/intl/ko-KR.js +11 -0
  142. package/dist/browser/intl/ko-KR.js.map +1 -0
  143. package/dist/browser/intl/lt-LT.js +11 -0
  144. package/dist/browser/intl/lt-LT.js.map +1 -0
  145. package/dist/browser/intl/lv-LV.js +11 -0
  146. package/dist/browser/intl/lv-LV.js.map +1 -0
  147. package/dist/browser/intl/nb-NO.js +11 -0
  148. package/dist/browser/intl/nb-NO.js.map +1 -0
  149. package/dist/browser/intl/nl-NL.js +11 -0
  150. package/dist/browser/intl/nl-NL.js.map +1 -0
  151. package/dist/browser/intl/pl-PL.js +11 -0
  152. package/dist/browser/intl/pl-PL.js.map +1 -0
  153. package/dist/browser/intl/pt-BR.js +11 -0
  154. package/dist/browser/intl/pt-BR.js.map +1 -0
  155. package/dist/browser/intl/pt-PT.js +11 -0
  156. package/dist/browser/intl/pt-PT.js.map +1 -0
  157. package/dist/browser/intl/ro-RO.js +11 -0
  158. package/dist/browser/intl/ro-RO.js.map +1 -0
  159. package/dist/browser/intl/ru-RU.js +11 -0
  160. package/dist/browser/intl/ru-RU.js.map +1 -0
  161. package/dist/browser/intl/sk-SK.js +11 -0
  162. package/dist/browser/intl/sk-SK.js.map +1 -0
  163. package/dist/browser/intl/sl-SI.js +11 -0
  164. package/dist/browser/intl/sl-SI.js.map +1 -0
  165. package/dist/browser/intl/sr-SP.js +11 -0
  166. package/dist/browser/intl/sr-SP.js.map +1 -0
  167. package/dist/browser/intl/sv-SE.js +11 -0
  168. package/dist/browser/intl/sv-SE.js.map +1 -0
  169. package/dist/browser/intl/tr-TR.js +11 -0
  170. package/dist/browser/intl/tr-TR.js.map +1 -0
  171. package/dist/browser/intl/uk-UA.js +11 -0
  172. package/dist/browser/intl/uk-UA.js.map +1 -0
  173. package/dist/browser/intl/zh-CN.js +11 -0
  174. package/dist/browser/intl/zh-CN.js.map +1 -0
  175. package/dist/browser/intl/zh-TW.js +11 -0
  176. package/dist/browser/intl/zh-TW.js.map +1 -0
  177. package/dist/browser/keyboard.d.ts +25 -0
  178. package/dist/browser/keyboard.js +50 -0
  179. package/dist/browser/keyboard.js.map +1 -0
  180. package/dist/browser/label.d.ts +26 -0
  181. package/dist/browser/label.js +53 -0
  182. package/dist/browser/label.js.map +1 -0
  183. package/dist/browser/link.d.ts +34 -0
  184. package/dist/browser/link.js +92 -0
  185. package/dist/browser/link.js.map +1 -0
  186. package/dist/browser/list-box.d.ts +171 -0
  187. package/dist/browser/list-box.js +547 -0
  188. package/dist/browser/list-box.js.map +1 -0
  189. package/dist/browser/menu.d.ts +150 -0
  190. package/dist/browser/menu.js +597 -0
  191. package/dist/browser/menu.js.map +1 -0
  192. package/dist/browser/meter.d.ts +29 -0
  193. package/dist/browser/meter.js +73 -0
  194. package/dist/browser/meter.js.map +1 -0
  195. package/dist/browser/modal.d.ts +48 -0
  196. package/dist/browser/modal.js +190 -0
  197. package/dist/browser/modal.js.map +1 -0
  198. package/dist/browser/navigation-tree.d.ts +54 -0
  199. package/dist/browser/navigation-tree.js +233 -0
  200. package/dist/browser/navigation-tree.js.map +1 -0
  201. package/dist/browser/number-field.d.ts +36 -0
  202. package/dist/browser/number-field.js +179 -0
  203. package/dist/browser/number-field.js.map +1 -0
  204. package/dist/browser/overlay-arrow.d.ts +32 -0
  205. package/dist/browser/overlay-arrow.js +65 -0
  206. package/dist/browser/overlay-arrow.js.map +1 -0
  207. package/dist/browser/overlay-contexts.d.ts +22 -0
  208. package/dist/browser/overlay-contexts.js +24 -0
  209. package/dist/browser/overlay-contexts.js.map +1 -0
  210. package/dist/browser/popover.d.ts +50 -0
  211. package/dist/browser/popover.js +255 -0
  212. package/dist/browser/popover.js.map +1 -0
  213. package/dist/browser/preview-trigger.d.ts +25 -0
  214. package/dist/browser/preview-trigger.js +93 -0
  215. package/dist/browser/preview-trigger.js.map +1 -0
  216. package/dist/browser/progress-bar.d.ts +30 -0
  217. package/dist/browser/progress-bar.js +76 -0
  218. package/dist/browser/progress-bar.js.map +1 -0
  219. package/dist/browser/radio-group.d.ts +67 -0
  220. package/dist/browser/radio-group.js +336 -0
  221. package/dist/browser/radio-group.js.map +1 -0
  222. package/dist/browser/search-field.d.ts +34 -0
  223. package/dist/browser/search-field.js +156 -0
  224. package/dist/browser/search-field.js.map +1 -0
  225. package/dist/browser/select.d.ts +115 -0
  226. package/dist/browser/select.js +351 -0
  227. package/dist/browser/select.js.map +1 -0
  228. package/dist/browser/selection-indicator.d.ts +25 -0
  229. package/dist/browser/selection-indicator.js +40 -0
  230. package/dist/browser/selection-indicator.js.map +1 -0
  231. package/dist/browser/separator.d.ts +30 -0
  232. package/dist/browser/separator.js +68 -0
  233. package/dist/browser/separator.js.map +1 -0
  234. package/dist/browser/shared-element-transition.d.ts +35 -0
  235. package/dist/browser/shared-element-transition.js +141 -0
  236. package/dist/browser/shared-element-transition.js.map +1 -0
  237. package/dist/browser/sheet.d.ts +64 -0
  238. package/dist/browser/sheet.js +982 -0
  239. package/dist/browser/sheet.js.map +1 -0
  240. package/dist/browser/slider.d.ts +77 -0
  241. package/dist/browser/slider.js +318 -0
  242. package/dist/browser/slider.js.map +1 -0
  243. package/dist/browser/switch.d.ts +54 -0
  244. package/dist/browser/switch.js +240 -0
  245. package/dist/browser/switch.js.map +1 -0
  246. package/dist/browser/table-layout.d.ts +22 -0
  247. package/dist/browser/table-layout.js +31 -0
  248. package/dist/browser/table-layout.js.map +1 -0
  249. package/dist/browser/table.d.ts +184 -0
  250. package/dist/browser/table.js +1268 -0
  251. package/dist/browser/table.js.map +1 -0
  252. package/dist/browser/tabs.d.ts +194 -0
  253. package/dist/browser/tabs.js +378 -0
  254. package/dist/browser/tabs.js.map +1 -0
  255. package/dist/browser/tag-group.d.ts +112 -0
  256. package/dist/browser/tag-group.js +291 -0
  257. package/dist/browser/tag-group.js.map +1 -0
  258. package/dist/browser/text-area.d.ts +16 -0
  259. package/dist/browser/text-area.js +75 -0
  260. package/dist/browser/text-area.js.map +1 -0
  261. package/dist/browser/text-field.d.ts +31 -0
  262. package/dist/browser/text-field.js +152 -0
  263. package/dist/browser/text-field.js.map +1 -0
  264. package/dist/browser/text.d.ts +25 -0
  265. package/dist/browser/text.js +52 -0
  266. package/dist/browser/text.js.map +1 -0
  267. package/dist/browser/toast.d.ts +66 -0
  268. package/dist/browser/toast.js +226 -0
  269. package/dist/browser/toast.js.map +1 -0
  270. package/dist/browser/toggle-button-group.d.ts +32 -0
  271. package/dist/browser/toggle-button-group.js +74 -0
  272. package/dist/browser/toggle-button-group.js.map +1 -0
  273. package/dist/browser/toggle-button.d.ts +33 -0
  274. package/dist/browser/toggle-button.js +119 -0
  275. package/dist/browser/toggle-button.js.map +1 -0
  276. package/dist/browser/token-field.d.ts +124 -0
  277. package/dist/browser/token-field.js +277 -0
  278. package/dist/browser/token-field.js.map +1 -0
  279. package/dist/browser/toolbar.d.ts +28 -0
  280. package/dist/browser/toolbar.js +51 -0
  281. package/dist/browser/toolbar.js.map +1 -0
  282. package/dist/browser/tooltip.d.ts +44 -0
  283. package/dist/browser/tooltip.js +183 -0
  284. package/dist/browser/tooltip.js.map +1 -0
  285. package/dist/browser/tree-drop-target-delegate.d.ts +33 -0
  286. package/dist/browser/tree-drop-target-delegate.js +178 -0
  287. package/dist/browser/tree-drop-target-delegate.js.map +1 -0
  288. package/dist/browser/tree.d.ts +98 -0
  289. package/dist/browser/tree.js +699 -0
  290. package/dist/browser/tree.js.map +1 -0
  291. package/dist/browser/utils.d.ts +94 -0
  292. package/dist/browser/utils.js +173 -0
  293. package/dist/browser/utils.js.map +1 -0
  294. package/dist/browser/virtualizer.d.ts +33 -0
  295. package/dist/browser/virtualizer.js +179 -0
  296. package/dist/browser/virtualizer.js.map +1 -0
  297. package/dist/server/autocomplete.js +125 -0
  298. package/dist/server/autocomplete.js.map +1 -0
  299. package/dist/server/breadcrumbs.js +185 -0
  300. package/dist/server/breadcrumbs.js.map +1 -0
  301. package/dist/server/button.js +252 -0
  302. package/dist/server/button.js.map +1 -0
  303. package/dist/server/calendar.js +1054 -0
  304. package/dist/server/calendar.js.map +1 -0
  305. package/dist/server/checkbox.js +595 -0
  306. package/dist/server/checkbox.js.map +1 -0
  307. package/dist/server/collection-dnd.js +217 -0
  308. package/dist/server/collection-dnd.js.map +1 -0
  309. package/dist/server/collection.js +106 -0
  310. package/dist/server/collection.js.map +1 -0
  311. package/dist/server/color-area.js +142 -0
  312. package/dist/server/color-area.js.map +1 -0
  313. package/dist/server/color-field.js +394 -0
  314. package/dist/server/color-field.js.map +1 -0
  315. package/dist/server/color-picker.js +170 -0
  316. package/dist/server/color-picker.js.map +1 -0
  317. package/dist/server/color-slider.js +328 -0
  318. package/dist/server/color-slider.js.map +1 -0
  319. package/dist/server/color-swatch-picker.js +234 -0
  320. package/dist/server/color-swatch-picker.js.map +1 -0
  321. package/dist/server/color-swatch.js +52 -0
  322. package/dist/server/color-swatch.js.map +1 -0
  323. package/dist/server/color-thumb.js +132 -0
  324. package/dist/server/color-thumb.js.map +1 -0
  325. package/dist/server/color-wheel.js +188 -0
  326. package/dist/server/color-wheel.js.map +1 -0
  327. package/dist/server/combo-box.js +914 -0
  328. package/dist/server/combo-box.js.map +1 -0
  329. package/dist/server/create-drag-and-drop.js +56 -0
  330. package/dist/server/create-drag-and-drop.js.map +1 -0
  331. package/dist/server/date-field.js +1055 -0
  332. package/dist/server/date-field.js.map +1 -0
  333. package/dist/server/date-picker.js +1079 -0
  334. package/dist/server/date-picker.js.map +1 -0
  335. package/dist/server/dialog.js +295 -0
  336. package/dist/server/dialog.js.map +1 -0
  337. package/dist/server/disclosure.js +292 -0
  338. package/dist/server/disclosure.js.map +1 -0
  339. package/dist/server/drag-and-drop.js +66 -0
  340. package/dist/server/drag-and-drop.js.map +1 -0
  341. package/dist/server/drop-zone.js +241 -0
  342. package/dist/server/drop-zone.js.map +1 -0
  343. package/dist/server/field-error.js +90 -0
  344. package/dist/server/field-error.js.map +1 -0
  345. package/dist/server/file-trigger.js +98 -0
  346. package/dist/server/file-trigger.js.map +1 -0
  347. package/dist/server/form.js +116 -0
  348. package/dist/server/form.js.map +1 -0
  349. package/dist/server/grid-layout.js +30 -0
  350. package/dist/server/grid-layout.js.map +1 -0
  351. package/dist/server/grid-list.js +1015 -0
  352. package/dist/server/grid-list.js.map +1 -0
  353. package/dist/server/group.js +146 -0
  354. package/dist/server/group.js.map +1 -0
  355. package/dist/server/header.js +72 -0
  356. package/dist/server/header.js.map +1 -0
  357. package/dist/server/heading.js +68 -0
  358. package/dist/server/heading.js.map +1 -0
  359. package/dist/server/hidden-date-input.js +79 -0
  360. package/dist/server/hidden-date-input.js.map +1 -0
  361. package/dist/server/index.js +98 -0
  362. package/dist/server/input.js +134 -0
  363. package/dist/server/input.js.map +1 -0
  364. package/dist/server/intl/ar-AE.js +11 -0
  365. package/dist/server/intl/ar-AE.js.map +1 -0
  366. package/dist/server/intl/bg-BG.js +11 -0
  367. package/dist/server/intl/bg-BG.js.map +1 -0
  368. package/dist/server/intl/cs-CZ.js +11 -0
  369. package/dist/server/intl/cs-CZ.js.map +1 -0
  370. package/dist/server/intl/da-DK.js +11 -0
  371. package/dist/server/intl/da-DK.js.map +1 -0
  372. package/dist/server/intl/de-DE.js +11 -0
  373. package/dist/server/intl/de-DE.js.map +1 -0
  374. package/dist/server/intl/el-GR.js +11 -0
  375. package/dist/server/intl/el-GR.js.map +1 -0
  376. package/dist/server/intl/en-US.js +11 -0
  377. package/dist/server/intl/en-US.js.map +1 -0
  378. package/dist/server/intl/es-ES.js +11 -0
  379. package/dist/server/intl/es-ES.js.map +1 -0
  380. package/dist/server/intl/et-EE.js +11 -0
  381. package/dist/server/intl/et-EE.js.map +1 -0
  382. package/dist/server/intl/fi-FI.js +11 -0
  383. package/dist/server/intl/fi-FI.js.map +1 -0
  384. package/dist/server/intl/fr-FR.js +11 -0
  385. package/dist/server/intl/fr-FR.js.map +1 -0
  386. package/dist/server/intl/he-IL.js +11 -0
  387. package/dist/server/intl/he-IL.js.map +1 -0
  388. package/dist/server/intl/hr-HR.js +11 -0
  389. package/dist/server/intl/hr-HR.js.map +1 -0
  390. package/dist/server/intl/hu-HU.js +11 -0
  391. package/dist/server/intl/hu-HU.js.map +1 -0
  392. package/dist/server/intl/index.js +75 -0
  393. package/dist/server/intl/index.js.map +1 -0
  394. package/dist/server/intl/it-IT.js +11 -0
  395. package/dist/server/intl/it-IT.js.map +1 -0
  396. package/dist/server/intl/ja-JP.js +11 -0
  397. package/dist/server/intl/ja-JP.js.map +1 -0
  398. package/dist/server/intl/ko-KR.js +11 -0
  399. package/dist/server/intl/ko-KR.js.map +1 -0
  400. package/dist/server/intl/lt-LT.js +11 -0
  401. package/dist/server/intl/lt-LT.js.map +1 -0
  402. package/dist/server/intl/lv-LV.js +11 -0
  403. package/dist/server/intl/lv-LV.js.map +1 -0
  404. package/dist/server/intl/nb-NO.js +11 -0
  405. package/dist/server/intl/nb-NO.js.map +1 -0
  406. package/dist/server/intl/nl-NL.js +11 -0
  407. package/dist/server/intl/nl-NL.js.map +1 -0
  408. package/dist/server/intl/pl-PL.js +11 -0
  409. package/dist/server/intl/pl-PL.js.map +1 -0
  410. package/dist/server/intl/pt-BR.js +11 -0
  411. package/dist/server/intl/pt-BR.js.map +1 -0
  412. package/dist/server/intl/pt-PT.js +11 -0
  413. package/dist/server/intl/pt-PT.js.map +1 -0
  414. package/dist/server/intl/ro-RO.js +11 -0
  415. package/dist/server/intl/ro-RO.js.map +1 -0
  416. package/dist/server/intl/ru-RU.js +11 -0
  417. package/dist/server/intl/ru-RU.js.map +1 -0
  418. package/dist/server/intl/sk-SK.js +11 -0
  419. package/dist/server/intl/sk-SK.js.map +1 -0
  420. package/dist/server/intl/sl-SI.js +11 -0
  421. package/dist/server/intl/sl-SI.js.map +1 -0
  422. package/dist/server/intl/sr-SP.js +11 -0
  423. package/dist/server/intl/sr-SP.js.map +1 -0
  424. package/dist/server/intl/sv-SE.js +11 -0
  425. package/dist/server/intl/sv-SE.js.map +1 -0
  426. package/dist/server/intl/tr-TR.js +11 -0
  427. package/dist/server/intl/tr-TR.js.map +1 -0
  428. package/dist/server/intl/uk-UA.js +11 -0
  429. package/dist/server/intl/uk-UA.js.map +1 -0
  430. package/dist/server/intl/zh-CN.js +11 -0
  431. package/dist/server/intl/zh-CN.js.map +1 -0
  432. package/dist/server/intl/zh-TW.js +11 -0
  433. package/dist/server/intl/zh-TW.js.map +1 -0
  434. package/dist/server/keyboard.js +65 -0
  435. package/dist/server/keyboard.js.map +1 -0
  436. package/dist/server/label.js +68 -0
  437. package/dist/server/label.js.map +1 -0
  438. package/dist/server/link.js +138 -0
  439. package/dist/server/link.js.map +1 -0
  440. package/dist/server/list-box.js +906 -0
  441. package/dist/server/list-box.js.map +1 -0
  442. package/dist/server/menu.js +1188 -0
  443. package/dist/server/menu.js.map +1 -0
  444. package/dist/server/meter.js +101 -0
  445. package/dist/server/meter.js.map +1 -0
  446. package/dist/server/modal.js +360 -0
  447. package/dist/server/modal.js.map +1 -0
  448. package/dist/server/navigation-tree.js +316 -0
  449. package/dist/server/navigation-tree.js.map +1 -0
  450. package/dist/server/number-field.js +371 -0
  451. package/dist/server/number-field.js.map +1 -0
  452. package/dist/server/overlay-arrow.js +81 -0
  453. package/dist/server/overlay-arrow.js.map +1 -0
  454. package/dist/server/overlay-contexts.js +24 -0
  455. package/dist/server/overlay-contexts.js.map +1 -0
  456. package/dist/server/popover.js +455 -0
  457. package/dist/server/popover.js.map +1 -0
  458. package/dist/server/preview-trigger.js +153 -0
  459. package/dist/server/preview-trigger.js.map +1 -0
  460. package/dist/server/progress-bar.js +104 -0
  461. package/dist/server/progress-bar.js.map +1 -0
  462. package/dist/server/radio-group.js +586 -0
  463. package/dist/server/radio-group.js.map +1 -0
  464. package/dist/server/search-field.js +288 -0
  465. package/dist/server/search-field.js.map +1 -0
  466. package/dist/server/select.js +771 -0
  467. package/dist/server/select.js.map +1 -0
  468. package/dist/server/selection-indicator.js +54 -0
  469. package/dist/server/selection-indicator.js.map +1 -0
  470. package/dist/server/separator.js +91 -0
  471. package/dist/server/separator.js.map +1 -0
  472. package/dist/server/shared-element-transition.js +189 -0
  473. package/dist/server/shared-element-transition.js.map +1 -0
  474. package/dist/server/sheet.js +1197 -0
  475. package/dist/server/sheet.js.map +1 -0
  476. package/dist/server/slider.js +581 -0
  477. package/dist/server/slider.js.map +1 -0
  478. package/dist/server/switch.js +400 -0
  479. package/dist/server/switch.js.map +1 -0
  480. package/dist/server/table-layout.js +31 -0
  481. package/dist/server/table-layout.js.map +1 -0
  482. package/dist/server/table.js +2075 -0
  483. package/dist/server/table.js.map +1 -0
  484. package/dist/server/tabs.js +668 -0
  485. package/dist/server/tabs.js.map +1 -0
  486. package/dist/server/tag-group.js +538 -0
  487. package/dist/server/tag-group.js.map +1 -0
  488. package/dist/server/text-area.js +115 -0
  489. package/dist/server/text-area.js.map +1 -0
  490. package/dist/server/text-field.js +272 -0
  491. package/dist/server/text-field.js.map +1 -0
  492. package/dist/server/text.js +67 -0
  493. package/dist/server/text.js.map +1 -0
  494. package/dist/server/toast.js +449 -0
  495. package/dist/server/toast.js.map +1 -0
  496. package/dist/server/toggle-button-group.js +125 -0
  497. package/dist/server/toggle-button-group.js.map +1 -0
  498. package/dist/server/toggle-button.js +183 -0
  499. package/dist/server/toggle-button.js.map +1 -0
  500. package/dist/server/token-field.js +457 -0
  501. package/dist/server/token-field.js.map +1 -0
  502. package/dist/server/toolbar.js +67 -0
  503. package/dist/server/toolbar.js.map +1 -0
  504. package/dist/server/tooltip.js +331 -0
  505. package/dist/server/tooltip.js.map +1 -0
  506. package/dist/server/tree-drop-target-delegate.js +178 -0
  507. package/dist/server/tree-drop-target-delegate.js.map +1 -0
  508. package/dist/server/tree.js +1096 -0
  509. package/dist/server/tree.js.map +1 -0
  510. package/dist/server/utils.js +184 -0
  511. package/dist/server/utils.js.map +1 -0
  512. package/dist/server/virtualizer.js +254 -0
  513. package/dist/server/virtualizer.js.map +1 -0
  514. package/package.json +437 -4
@@ -0,0 +1,51 @@
1
+ /*
2
+ * Copyright 2023 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-aria-components/src/Toolbar.tsx.
14
+ * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; uses Solid class props.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { createContextProps, createRenderProps, dom } from "./utils.js";
18
+ import { createComponent, mergeProps } from "@solidjs/web";
19
+ import { mergeProps as mergeProps$1 } from "@solid2-aria/core/utils/merge-props";
20
+ import { createContext, merge, untrack } from "solid-js";
21
+ import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
22
+ import { createToolbar } from "@solid2-aria/core/toolbar/create-toolbar";
23
+ // src/toolbar.tsx
24
+ const ToolbarContext = createContext({});
25
+ function Toolbar(input) {
26
+ const [props, ref, setRef] = createContextProps(input, untrack(() => input.ref), ToolbarContext);
27
+ const aria = createToolbar(props, ref);
28
+ const values = { get orientation() {
29
+ return props.orientation ?? "horizontal";
30
+ } };
31
+ const render = createRenderProps(mergeProps$1(props, {
32
+ defaultClass: "solid2-aria-Toolbar",
33
+ values
34
+ }));
35
+ return createComponent(dom.div, mergeProps(() => {
36
+ return mergeProps$1(filterDOMProps(props, { global: true }), merge(() => aria.toolbarProps ?? {}), render);
37
+ }, {
38
+ ref: (element) => {
39
+ setRef(element);
40
+ },
41
+ get slot() {
42
+ return props.slot ?? void 0;
43
+ },
44
+ get "data-orientation"() {
45
+ return values.orientation;
46
+ }
47
+ }));
48
+ }
49
+ export { Toolbar, ToolbarContext };
50
+
51
+ //# sourceMappingURL=toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.js","names":["<dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => aria.toolbarProps ?? {}),\n render\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n data-orientation={values.orientation}\n />","dom.div","ref={(element: HTMLDivElement) => {\n setRef(element);\n }}","mergeProps","_$createComponent","_$mergeProps"],"sources":["../../src/toolbar.tsx"],"sourcesContent":["/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n/*\n * Derived from Adobe React Spectrum: packages/react-aria-components/src/Toolbar.tsx.\n * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; uses Solid class props.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport { createToolbar } from \"@solid2-aria/core/toolbar/create-toolbar\";\nimport type { AriaToolbarProps } from \"@solid2-aria/core/toolbar/create-toolbar\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport type { JSX } from \"@solidjs/web\";\nimport { merge, untrack, createContext } from \"solid-js\";\n\nimport { dom, createContextProps, createRenderProps } from \"./utils\";\nimport type { ContextValue, Ref, RenderProps, SlotProps } from \"./utils\";\n\nexport interface ToolbarRenderProps {\n orientation: \"horizontal\" | \"vertical\";\n}\n\nexport interface ToolbarProps\n extends AriaToolbarProps, SlotProps, RenderProps<ToolbarRenderProps> {\n ref?: Ref<HTMLDivElement>;\n}\n\nexport const ToolbarContext = createContext<\n ContextValue<ToolbarProps, HTMLDivElement>\n>({});\n\nexport function Toolbar(input: ToolbarProps): JSX.Element {\n const [props, ref, setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n ToolbarContext\n );\n\n const aria = createToolbar(props, ref);\n\n const values: ToolbarRenderProps = {\n get orientation() {\n return props.orientation ?? \"horizontal\";\n },\n };\n\n const render = createRenderProps(\n mergeProps(props, { defaultClass: \"solid2-aria-Toolbar\", values })\n );\n\n return (\n <dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => aria.toolbarProps ?? {}),\n render\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n data-orientation={values.orientation}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAoCA,MAAa,iBAAiB,cAE5B,CAAC,CAAC;AAEJ,SAAgB,QAAQ,OAAkC;CACxD,MAAM,CAAC,OAAO,KAAK,UAAU,mBAC3B,OACA,cAAc,MAAM,GAAG,GACvB,cACF;CAEA,MAAM,OAAO,cAAc,OAAO,GAAG;CAErC,MAAM,SAA6B,EACjC,IAAI,cAAc;EAChB,OAAO,MAAM,eAAe;CAC9B,EACF;CAEA,MAAM,SAAS,kBACbG,aAAW,OAAO;EAAE,cAAc;EAAuB;CAAO,CAAC,CACnE;CAEA,OACEH,gBAAAA,IAACC,KAADD,iBACE;EAAI,OAAAG,aACF,eAAe,OAAO,EAAE,QAAQ,KAAK,CAAC,GACtC,YAAY,KAAK,gBAAgB,CAAC,CAAC,GACnC,MACF;CAAC,GALH;EAMED,MAAM,YAA4B;GAChC,OAAO,OAAO;EAChB;EACA,IAAA,OAAA;GAAM,OAAA,MAAM,QAAQ,KAAA;EAAS;EAC7B,IAAA,qBAAA;GAAkB,OAAA,OAAO;EAAW;CACrC,CAAA,CAAA;AAEL"}
@@ -0,0 +1,44 @@
1
+ /*
2
+ * Copyright 2022 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-aria-components/src/Tooltip.tsx.
14
+ * Modified for Solid Aria: adapted components, contexts, refs, warmup animation state, and reactive properties for Solid 2; included data attributes in the tooltip contract; uses Solid class props.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { ContextValue, Ref, RenderProps } from "./utils.js";
18
+ import { JSX } from "@solidjs/web";
19
+ import { Accessor } from "solid-js";
20
+ import { TooltipTriggerProps, TooltipTriggerState } from "@solid2-aria/stately/tooltip/create-tooltip-trigger-state";
21
+ import { PlacementAxis, PositionProps } from "@solid2-aria/core/overlays/create-overlay-position";
22
+ import { DOMProps } from "@solid2-aria/types-shared";
23
+ export interface TooltipTriggerComponentProps extends TooltipTriggerProps {
24
+ children?: JSX.Element;
25
+ }
26
+ export interface TooltipRenderProps {
27
+ placement: PlacementAxis | null;
28
+ isEntering: boolean;
29
+ isExiting: boolean;
30
+ }
31
+ export interface TooltipProps extends PositionProps, TooltipTriggerProps, RenderProps<TooltipRenderProps>, Pick<DOMProps, `data-${string}`> {
32
+ ref?: Ref<HTMLDivElement>;
33
+ triggerRef?: Accessor<Element | null>;
34
+ isEntering?: boolean;
35
+ isExiting?: boolean;
36
+ UNSTABLE_portalContainer?: Element;
37
+ "aria-label"?: JSX.HTMLAttributes<HTMLDivElement>["aria-label"];
38
+ "aria-labelledby"?: JSX.HTMLAttributes<HTMLDivElement>["aria-labelledby"];
39
+ }
40
+ export declare const TooltipContext: import("solid-js").Context<ContextValue<TooltipProps, HTMLDivElement>>;
41
+ export declare const TooltipTriggerStateContext: import("solid-js").Context<TooltipTriggerState | null>;
42
+ export declare function TooltipTrigger(props: TooltipTriggerComponentProps): JSX.Element;
43
+ export declare function Tooltip(input: TooltipProps): JSX.Element;
44
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1,183 @@
1
+ /*
2
+ * Copyright 2022 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-aria-components/src/Tooltip.tsx.
14
+ * Modified for Solid Aria: adapted components, contexts, refs, warmup animation state, and reactive properties for Solid 2; included data attributes in the tooltip contract; uses Solid class props.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { createContextProps, createRenderProps, dom } from "./utils.js";
18
+ import { OverlayArrowContext } from "./overlay-arrow.js";
19
+ import { createComponent, mergeProps } from "@solidjs/web";
20
+ import { mergeProps as mergeProps$1 } from "@solid2-aria/core/utils/merge-props";
21
+ import { Show, createContext, createSignal, merge, onSettled, untrack, useContext } from "solid-js";
22
+ import { requireValue } from "@solid2-aria/core/utils/require-value";
23
+ import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
24
+ import { Overlay } from "@solid2-aria/core/overlays/overlay";
25
+ import { createEnterAnimation, createExitAnimation } from "@solid2-aria/core/utils/animation";
26
+ import { FocusableProvider } from "@solid2-aria/core/interactions/create-focusable";
27
+ import { createTooltipTriggerState } from "@solid2-aria/stately/tooltip/create-tooltip-trigger-state";
28
+ import { createOverlayPosition } from "@solid2-aria/core/overlays/create-overlay-position";
29
+ import { createTooltip } from "@solid2-aria/core/tooltip/create-tooltip";
30
+ import { createTooltipTrigger } from "@solid2-aria/core/tooltip/create-tooltip-trigger";
31
+ // src/tooltip.tsx
32
+ const fallbackTrigger = () => null;
33
+ const TooltipContext = createContext(null);
34
+ const TooltipTriggerStateContext = createContext(null);
35
+ function TooltipTrigger(props) {
36
+ const state = createTooltipTriggerState(props);
37
+ const [ref, setRef] = createSignal(null, { ownedWrite: true });
38
+ const aria = createTooltipTrigger(props, state, ref);
39
+ return createComponent(TooltipTriggerStateContext, {
40
+ value: state,
41
+ get children() {
42
+ return createComponent(TooltipContext, {
43
+ get value() {
44
+ return mergeProps$1(merge(() => aria.tooltipProps ?? {}), { triggerRef: ref });
45
+ },
46
+ get children() {
47
+ return createComponent(FocusableProvider, mergeProps(() => {
48
+ return aria.triggerProps;
49
+ }, {
50
+ ref: (element) => {
51
+ setRef(element);
52
+ },
53
+ get children() {
54
+ return props.children;
55
+ }
56
+ }));
57
+ }
58
+ });
59
+ }
60
+ });
61
+ }
62
+ function Tooltip(input) {
63
+ const [props, ref, setRef] = createContextProps(input, untrack(() => input.ref), TooltipContext);
64
+ const context = useContext(TooltipTriggerStateContext);
65
+ const local = createTooltipTriggerState(props);
66
+ const state = untrack(() => props.isOpen !== void 0 || props.defaultOpen !== void 0 || !context) ? local : requireValue(context, "Expected context");
67
+ const exitAnimation = createExitAnimation(ref, () => state.isOpen);
68
+ const exiting = () => props.isExiting === true || !state.shouldSkipAnimation && exitAnimation();
69
+ return createComponent(Show, {
70
+ get when() {
71
+ return state.isOpen || exiting();
72
+ },
73
+ get children() {
74
+ return createComponent(Overlay, {
75
+ get portalContainer() {
76
+ return props.UNSTABLE_portalContainer;
77
+ },
78
+ disableFocusManagement: true,
79
+ get children() {
80
+ return createComponent(TooltipInner, {
81
+ props,
82
+ tooltipRef: ref,
83
+ setTooltipRef: (element) => {
84
+ setRef(element);
85
+ },
86
+ state,
87
+ exiting
88
+ });
89
+ }
90
+ });
91
+ }
92
+ });
93
+ }
94
+ function TooltipInner(args) {
95
+ onSettled(() => () => {
96
+ args.setTooltipRef(null);
97
+ });
98
+ const [arrowRef, setArrowRef] = createSignal(null, { ownedWrite: true });
99
+ const position = createOverlayPosition(mergeProps$1(merge(() => args.props ?? {}), {
100
+ arrowRef,
101
+ get isOpen() {
102
+ return args.state.isOpen;
103
+ },
104
+ onClose() {
105
+ args.state.close(true);
106
+ },
107
+ get overlayRef() {
108
+ return args.tooltipRef;
109
+ },
110
+ get placement() {
111
+ return args.props.placement ?? "top";
112
+ },
113
+ get targetRef() {
114
+ return args.props.triggerRef ?? fallbackTrigger;
115
+ }
116
+ }));
117
+ const aria = createTooltip(mergeProps$1(merge(() => args.props ?? {}), {
118
+ get "aria-label"() {
119
+ return typeof args.props["aria-label"] === "string" ? args.props["aria-label"] : void 0;
120
+ },
121
+ get "aria-labelledby"() {
122
+ return typeof args.props["aria-labelledby"] === "string" ? args.props["aria-labelledby"] : void 0;
123
+ }
124
+ }), untrack(() => args.state));
125
+ const entering = createEnterAnimation(untrack(() => args.tooltipRef), () => position.placement !== null);
126
+ const values = {
127
+ get isEntering() {
128
+ return args.props.isEntering === true || !args.state.shouldSkipAnimation && entering();
129
+ },
130
+ get isExiting() {
131
+ return args.exiting();
132
+ },
133
+ get placement() {
134
+ return position.placement;
135
+ }
136
+ };
137
+ const render = createRenderProps(mergeProps$1(merge(() => args.props ?? {}), {
138
+ defaultClass: "solid2-aria-Tooltip",
139
+ values
140
+ }));
141
+ return createComponent(dom.div, mergeProps(() => {
142
+ return mergeProps$1(filterDOMProps(args.props, { global: true }), merge(() => position.overlayProps ?? {}), merge(() => aria.tooltipProps ?? {}), render);
143
+ }, {
144
+ get style() {
145
+ return {
146
+ ...typeof position.overlayProps.style === "object" ? position.overlayProps.style : void 0,
147
+ ...typeof render.style === "object" ? render.style : void 0
148
+ };
149
+ },
150
+ ref: (element) => {
151
+ args.setTooltipRef(element);
152
+ },
153
+ get "data-placement"() {
154
+ return values.placement;
155
+ },
156
+ get "data-entering"() {
157
+ return values.isEntering || void 0;
158
+ },
159
+ get "data-exiting"() {
160
+ return values.isExiting || void 0;
161
+ },
162
+ get children() {
163
+ return createComponent(OverlayArrowContext, {
164
+ get value() {
165
+ return mergeProps$1(merge(() => position.arrowProps ?? {}), {
166
+ get placement() {
167
+ return position.placement;
168
+ },
169
+ ref: (element) => {
170
+ setArrowRef(element);
171
+ }
172
+ });
173
+ },
174
+ get children() {
175
+ return render.children;
176
+ }
177
+ });
178
+ }
179
+ }));
180
+ }
181
+ export { Tooltip, TooltipContext, TooltipTrigger, TooltipTriggerStateContext };
182
+
183
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","names":["<TooltipTriggerStateContext value={state}>\n <TooltipContext\n value={mergeProps(\n merge(() => aria.tooltipProps ?? {}),\n { triggerRef: ref }\n )}\n >\n <FocusableProvider\n {...aria.triggerProps}\n ref={(element: FocusableElement) => {\n setRef(element);\n }}\n >\n {props.children}\n </FocusableProvider>\n </TooltipContext>\n </TooltipTriggerStateContext>","value={state}","<TooltipContext\n value={mergeProps(\n merge(() => aria.tooltipProps ?? {}),\n { triggerRef: ref }\n )}\n >\n <FocusableProvider\n {...aria.triggerProps}\n ref={(element: FocusableElement) => {\n setRef(element);\n }}\n >\n {props.children}\n </FocusableProvider>\n </TooltipContext>","<FocusableProvider\n {...aria.triggerProps}\n ref={(element: FocusableElement) => {\n setRef(element);\n }}\n >\n {props.children}\n </FocusableProvider>","ref={(element: FocusableElement) => {\n setRef(element);\n }}","<Show when={state.isOpen || exiting()}>\n <Overlay\n portalContainer={props.UNSTABLE_portalContainer}\n disableFocusManagement\n >\n <TooltipInner\n props={props}\n tooltipRef={ref}\n setTooltipRef={(element: HTMLDivElement | null) => {\n setRef(element);\n }}\n state={state}\n exiting={exiting}\n />\n </Overlay>\n </Show>","<Overlay\n portalContainer={props.UNSTABLE_portalContainer}\n disableFocusManagement\n >\n <TooltipInner\n props={props}\n tooltipRef={ref}\n setTooltipRef={(element: HTMLDivElement | null) => {\n setRef(element);\n }}\n state={state}\n exiting={exiting}\n />\n </Overlay>","<TooltipInner\n props={props}\n tooltipRef={ref}\n setTooltipRef={(element: HTMLDivElement | null) => {\n setRef(element);\n }}\n state={state}\n exiting={exiting}\n />","tooltipRef={ref}","setTooltipRef={(element: HTMLDivElement | null) => {\n setRef(element);\n }}","<dom.div\n {...mergeProps(\n filterDOMProps(args.props, { global: true }),\n merge(() => position.overlayProps ?? {}),\n merge(() => aria.tooltipProps ?? {}),\n render\n )}\n style={{\n ...(typeof position.overlayProps.style === \"object\"\n ? position.overlayProps.style\n : undefined),\n ...(typeof render.style === \"object\" ? render.style : undefined),\n }}\n ref={(element: HTMLDivElement) => {\n args.setTooltipRef(element);\n }}\n data-placement={values.placement}\n data-entering={values.isEntering || undefined}\n data-exiting={values.isExiting || undefined}\n >\n <OverlayArrowContext\n value={mergeProps(\n merge(() => position.arrowProps ?? {}),\n {\n get placement() {\n return position.placement;\n },\n ref: (element: HTMLDivElement) => {\n setArrowRef(element);\n },\n }\n )}\n >\n {render.children}\n </OverlayArrowContext>\n </dom.div>","dom.div","ref={(element: HTMLDivElement) => {\n args.setTooltipRef(element);\n }}","<OverlayArrowContext\n value={mergeProps(\n merge(() => position.arrowProps ?? {}),\n {\n get placement() {\n return position.placement;\n },\n ref: (element: HTMLDivElement) => {\n setArrowRef(element);\n },\n }\n )}\n >\n {render.children}\n </OverlayArrowContext>","_$createComponent","mergeProps","_$mergeProps"],"sources":["../../src/tooltip.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n/*\n * Derived from Adobe React Spectrum: packages/react-aria-components/src/Tooltip.tsx.\n * Modified for Solid Aria: adapted components, contexts, refs, warmup animation state, and reactive properties for Solid 2; included data attributes in the tooltip contract; uses Solid class props.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport { FocusableProvider } from \"@solid2-aria/core/interactions/create-focusable\";\nimport { createOverlayPosition } from \"@solid2-aria/core/overlays/create-overlay-position\";\nimport type {\n PositionProps,\n PlacementAxis,\n} from \"@solid2-aria/core/overlays/create-overlay-position\";\nimport { Overlay } from \"@solid2-aria/core/overlays/overlay\";\nimport { createTooltip } from \"@solid2-aria/core/tooltip/create-tooltip\";\nimport { createTooltipTrigger } from \"@solid2-aria/core/tooltip/create-tooltip-trigger\";\nimport {\n createEnterAnimation,\n createExitAnimation,\n} from \"@solid2-aria/core/utils/animation\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { requireValue } from \"@solid2-aria/core/utils/require-value\";\nimport { createTooltipTriggerState } from \"@solid2-aria/stately/tooltip/create-tooltip-trigger-state\";\nimport type {\n TooltipTriggerProps,\n TooltipTriggerState,\n} from \"@solid2-aria/stately/tooltip/create-tooltip-trigger-state\";\nimport type { FocusableElement, DOMProps } from \"@solid2-aria/types-shared\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n merge,\n createSignal,\n createContext,\n Show,\n useContext,\n untrack,\n onSettled,\n} from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\n\nimport { OverlayArrowContext } from \"./overlay-arrow\";\nimport { dom, createContextProps, createRenderProps } from \"./utils\";\nimport type { ContextValue, Ref, RenderProps } from \"./utils\";\n\nconst fallbackTrigger = () => null;\n\nexport interface TooltipTriggerComponentProps extends TooltipTriggerProps {\n children?: JSX.Element;\n}\n\nexport interface TooltipRenderProps {\n placement: PlacementAxis | null;\n isEntering: boolean;\n isExiting: boolean;\n}\n\nexport interface TooltipProps\n extends\n PositionProps,\n TooltipTriggerProps,\n RenderProps<TooltipRenderProps>,\n Pick<DOMProps, `data-${string}`> {\n ref?: Ref<HTMLDivElement>;\n triggerRef?: Accessor<Element | null>;\n isEntering?: boolean;\n isExiting?: boolean;\n UNSTABLE_portalContainer?: Element;\n \"aria-label\"?: JSX.HTMLAttributes<HTMLDivElement>[\"aria-label\"];\n \"aria-labelledby\"?: JSX.HTMLAttributes<HTMLDivElement>[\"aria-labelledby\"];\n}\n\nexport const TooltipContext =\n createContext<ContextValue<TooltipProps, HTMLDivElement>>(null);\n\nexport const TooltipTriggerStateContext =\n createContext<TooltipTriggerState | null>(null);\n\nexport function TooltipTrigger(\n props: TooltipTriggerComponentProps\n): JSX.Element {\n const state = createTooltipTriggerState(props);\n\n const [ref, setRef] = createSignal<FocusableElement | null>(null, {\n ownedWrite: true,\n });\n\n const aria = createTooltipTrigger(props, state, ref);\n\n return (\n <TooltipTriggerStateContext value={state}>\n <TooltipContext\n value={mergeProps(\n merge(() => aria.tooltipProps ?? {}),\n { triggerRef: ref }\n )}\n >\n <FocusableProvider\n {...aria.triggerProps}\n ref={(element: FocusableElement) => {\n setRef(element);\n }}\n >\n {props.children}\n </FocusableProvider>\n </TooltipContext>\n </TooltipTriggerStateContext>\n );\n}\n\nexport function Tooltip(input: TooltipProps): JSX.Element {\n const [props, ref, setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n TooltipContext\n );\n\n const context = useContext(TooltipTriggerStateContext);\n const local = createTooltipTriggerState(props);\n\n const state = untrack(\n () =>\n props.isOpen !== undefined || props.defaultOpen !== undefined || !context\n )\n ? local\n : requireValue(context, \"Expected context\");\n\n const exitAnimation = createExitAnimation(ref, () => state.isOpen);\n\n const exiting = () =>\n props.isExiting === true || (!state.shouldSkipAnimation && exitAnimation());\n\n return (\n <Show when={state.isOpen || exiting()}>\n <Overlay\n portalContainer={props.UNSTABLE_portalContainer}\n disableFocusManagement\n >\n <TooltipInner\n props={props}\n tooltipRef={ref}\n setTooltipRef={(element: HTMLDivElement | null) => {\n setRef(element);\n }}\n state={state}\n exiting={exiting}\n />\n </Overlay>\n </Show>\n );\n}\n\nfunction TooltipInner(args: {\n props: TooltipProps;\n tooltipRef: Accessor<HTMLDivElement | null>;\n setTooltipRef: (element: HTMLDivElement | null) => void;\n state: TooltipTriggerState;\n exiting: () => boolean;\n}): JSX.Element {\n onSettled(() => () => {\n args.setTooltipRef(null);\n });\n\n const [arrowRef, setArrowRef] = createSignal<HTMLDivElement | null>(null, {\n ownedWrite: true,\n });\n\n const position = createOverlayPosition(\n mergeProps(\n merge(() => args.props ?? {}),\n {\n arrowRef,\n get isOpen() {\n return args.state.isOpen;\n },\n onClose() {\n args.state.close(true);\n },\n get overlayRef() {\n return args.tooltipRef;\n },\n get placement() {\n return args.props.placement ?? \"top\";\n },\n get targetRef() {\n return args.props.triggerRef ?? fallbackTrigger;\n },\n }\n )\n );\n\n const aria = createTooltip(\n mergeProps(\n merge(() => args.props ?? {}),\n {\n get \"aria-label\"() {\n return typeof args.props[\"aria-label\"] === \"string\"\n ? args.props[\"aria-label\"]\n : undefined;\n },\n get \"aria-labelledby\"() {\n return typeof args.props[\"aria-labelledby\"] === \"string\"\n ? args.props[\"aria-labelledby\"]\n : undefined;\n },\n }\n ),\n untrack(() => args.state)\n );\n\n const entering = createEnterAnimation(\n untrack(() => args.tooltipRef),\n () => position.placement !== null\n );\n\n const values: TooltipRenderProps = {\n get isEntering() {\n return (\n args.props.isEntering === true ||\n (!args.state.shouldSkipAnimation && entering())\n );\n },\n get isExiting() {\n return args.exiting();\n },\n get placement() {\n return position.placement;\n },\n };\n\n const render = createRenderProps(\n mergeProps(\n merge(() => args.props ?? {}),\n { defaultClass: \"solid2-aria-Tooltip\", values }\n )\n );\n\n return (\n <dom.div\n {...mergeProps(\n filterDOMProps(args.props, { global: true }),\n merge(() => position.overlayProps ?? {}),\n merge(() => aria.tooltipProps ?? {}),\n render\n )}\n style={{\n ...(typeof position.overlayProps.style === \"object\"\n ? position.overlayProps.style\n : undefined),\n ...(typeof render.style === \"object\" ? render.style : undefined),\n }}\n ref={(element: HTMLDivElement) => {\n args.setTooltipRef(element);\n }}\n data-placement={values.placement}\n data-entering={values.isEntering || undefined}\n data-exiting={values.isExiting || undefined}\n >\n <OverlayArrowContext\n value={mergeProps(\n merge(() => position.arrowProps ?? {}),\n {\n get placement() {\n return position.placement;\n },\n ref: (element: HTMLDivElement) => {\n setArrowRef(element);\n },\n }\n )}\n >\n {render.children}\n </OverlayArrowContext>\n </dom.div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Derived from Adobe React Spectrum: packages/react-aria-components/src/TreeDropTargetDelegate.ts.
3
+ * Modified for Solid Aria: adapted collection types and module imports for Solid 2.
4
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
5
+ */
6
+ import { Direction, DropTarget, DropTargetDelegate, Key, Node } from "@solid2-aria/types-shared";
7
+ interface TreeCollection<T> extends Iterable<Node<T>> {
8
+ getItem: (key: Key) => Node<T> | null;
9
+ getChildren?: (key: Key) => Iterable<Node<T>>;
10
+ getKeyAfter: (key: Key) => Key | null;
11
+ getKeyBefore: (key: Key) => Key | null;
12
+ }
13
+ interface TreeState<T> {
14
+ collection: TreeCollection<T>;
15
+ expandedKeys: Set<Key>;
16
+ }
17
+ export declare class TreeDropTargetDelegate<T> {
18
+ private delegate;
19
+ private state;
20
+ private direction;
21
+ private readonly pointerTracking;
22
+ setup(delegate: DropTargetDelegate, state: TreeState<T>, direction: Direction): void;
23
+ getDropTargetFromPoint(x: number, y: number, isValidDropTarget: (target: DropTarget) => boolean): DropTarget | null;
24
+ private resolveDropTarget;
25
+ private getPotentialTargets;
26
+ private ancestorTargets;
27
+ private beforeDeeperSibling;
28
+ private firstChildItem;
29
+ private switchVerticalTarget;
30
+ private selectTarget;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=tree-drop-target-delegate.d.ts.map
@@ -0,0 +1,178 @@
1
+ /*
2
+ * Derived from Adobe React Spectrum: packages/react-aria-components/src/TreeDropTargetDelegate.ts.
3
+ * Modified for Solid Aria: adapted collection types and module imports for Solid 2.
4
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
5
+ */
6
+ import { requireValue } from "@solid2-aria/core/utils/require-value";
7
+ import { isPresent } from "@solid2-aria/core/utils/is-present";
8
+ // src/tree-drop-target-delegate.ts
9
+ const X_SWITCH_THRESHOLD = 10;
10
+ const Y_SWITCH_THRESHOLD = 5;
11
+ var TreeDropTargetDelegate = class {
12
+ delegate = null;
13
+ state = null;
14
+ direction = "ltr";
15
+ pointerTracking = {
16
+ boundaryContext: null,
17
+ lastX: 0,
18
+ lastY: 0,
19
+ xDirection: null,
20
+ yDirection: null
21
+ };
22
+ setup(delegate, state, direction) {
23
+ this.delegate = delegate;
24
+ this.state = state;
25
+ this.direction = direction;
26
+ }
27
+ getDropTargetFromPoint(x, y, isValidDropTarget) {
28
+ const baseTarget = requireValue(this.delegate, "Expected this.delegate").getDropTargetFromPoint(x, y, isValidDropTarget);
29
+ if (!baseTarget || baseTarget.type === "root") return baseTarget;
30
+ return this.resolveDropTarget(baseTarget, x, y, isValidDropTarget);
31
+ }
32
+ resolveDropTarget(originalTarget, x, y, isValidDropTarget) {
33
+ let target = originalTarget;
34
+ const tracking = this.pointerTracking;
35
+ const deltaY = y - tracking.lastY;
36
+ const deltaX = x - tracking.lastX;
37
+ let currentYMovement = tracking.yDirection;
38
+ let currentXMovement = tracking.xDirection;
39
+ if (Math.abs(deltaY) > Y_SWITCH_THRESHOLD) {
40
+ currentYMovement = deltaY > 0 ? "down" : "up";
41
+ tracking.yDirection = currentYMovement;
42
+ tracking.lastY = y;
43
+ }
44
+ if (Math.abs(deltaX) > X_SWITCH_THRESHOLD) {
45
+ currentXMovement = deltaX > 0 ? "right" : "left";
46
+ tracking.xDirection = currentXMovement;
47
+ tracking.lastX = x;
48
+ }
49
+ if (target.dropPosition === "before") {
50
+ let keyBefore = requireValue(this.state, "Expected this.state").collection.getKeyBefore(target.key);
51
+ while (isPresent(keyBefore)) {
52
+ const node = requireValue(this.state, "Expected this.state").collection.getItem(keyBefore);
53
+ if (node?.type === "item") break;
54
+ keyBefore = node?.parentKey ?? null;
55
+ }
56
+ if (isPresent(keyBefore)) {
57
+ const convertedTarget = {
58
+ dropPosition: "after",
59
+ key: keyBefore,
60
+ type: "item"
61
+ };
62
+ if (isValidDropTarget(convertedTarget)) target = convertedTarget;
63
+ }
64
+ }
65
+ const potentialTargets = this.getPotentialTargets(target, isValidDropTarget);
66
+ if (potentialTargets.length === 0) return { type: "root" };
67
+ let resolvedItemTarget;
68
+ if (potentialTargets.length > 1) resolvedItemTarget = this.selectTarget(potentialTargets, target, x, y, currentYMovement, currentXMovement);
69
+ else {
70
+ resolvedItemTarget = requireValue(potentialTargets[0], "Expected potentialTargets[0]");
71
+ tracking.boundaryContext = null;
72
+ }
73
+ return resolvedItemTarget;
74
+ }
75
+ getPotentialTargets(originalTarget, isValidDropTarget) {
76
+ if (originalTarget.dropPosition === "on") return [originalTarget];
77
+ const target = originalTarget;
78
+ const { collection } = requireValue(this.state, "Expected this.state");
79
+ let currentItem = collection.getItem(target.key);
80
+ while (currentItem && currentItem?.type !== "item" && isPresent(currentItem.nextKey)) {
81
+ target.key = currentItem.nextKey;
82
+ currentItem = collection.getItem(currentItem.nextKey);
83
+ }
84
+ const potentialTargets = [target];
85
+ if (currentItem && currentItem.hasChildNodes && requireValue(this.state, "Expected this.state").expandedKeys.has(currentItem.key) && collection.getChildren && target.dropPosition === "after") {
86
+ const firstChildItemNode = this.firstChildItem(currentItem);
87
+ if (firstChildItemNode?.type === "item") {
88
+ const beforeFirstChildTarget = {
89
+ dropPosition: "before",
90
+ key: firstChildItemNode.key,
91
+ type: "item"
92
+ };
93
+ if (isValidDropTarget(beforeFirstChildTarget)) return [beforeFirstChildTarget];
94
+ return [];
95
+ }
96
+ }
97
+ if (isPresent(currentItem?.nextKey)) return [originalTarget];
98
+ potentialTargets.push(...this.ancestorTargets(currentItem, isValidDropTarget));
99
+ if (potentialTargets.length === 1) {
100
+ const beforeTarget = this.beforeDeeperSibling(target, currentItem);
101
+ if (beforeTarget && isValidDropTarget(beforeTarget)) return [beforeTarget];
102
+ }
103
+ return potentialTargets.filter(isValidDropTarget);
104
+ }
105
+ ancestorTargets(currentItem, isValidDropTarget) {
106
+ const { collection } = requireValue(this.state, "Expected initialized tree state");
107
+ let parentKey = currentItem?.parentKey;
108
+ const targets = [];
109
+ while (isPresent(parentKey)) {
110
+ const parent = collection.getItem(parentKey);
111
+ const next = isPresent(parent?.nextKey) ? collection.getItem(parent.nextKey) : null;
112
+ if (!next || next.parentKey !== parentKey) {
113
+ if (parent?.type === "item") {
114
+ const target = {
115
+ dropPosition: "after",
116
+ key: parentKey,
117
+ type: "item"
118
+ };
119
+ if (isValidDropTarget(target)) targets.push(target);
120
+ }
121
+ if (next) break;
122
+ }
123
+ parentKey = parent?.parentKey;
124
+ }
125
+ return targets;
126
+ }
127
+ beforeDeeperSibling(target, currentItem) {
128
+ const { collection } = requireValue(this.state, "Expected initialized tree state");
129
+ const nextKey = collection.getKeyAfter(target.key);
130
+ const next = isPresent(nextKey) ? collection.getItem(nextKey) : null;
131
+ if (next && currentItem && isPresent(next.level) && isPresent(currentItem.level) && next.level > currentItem.level) return {
132
+ dropPosition: "before",
133
+ key: next.key,
134
+ type: "item"
135
+ };
136
+ return null;
137
+ }
138
+ firstChildItem(parent) {
139
+ const { collection } = requireValue(this.state, "Expected initialized tree state");
140
+ let child = isPresent(parent.firstChildKey) ? collection.getItem(parent.firstChildKey) : null;
141
+ while (child && child.type !== "item") child = isPresent(child.nextKey) ? collection.getItem(child.nextKey) : null;
142
+ return child;
143
+ }
144
+ switchVerticalTarget(boundary, count, movement) {
145
+ const index = boundary.preferredTargetIndex ?? 0;
146
+ if (movement === "down" && index === 0) boundary.preferredTargetIndex = count - 1;
147
+ else if (movement === "up" && index === count - 1) boundary.preferredTargetIndex = 0;
148
+ this.pointerTracking.xDirection = null;
149
+ }
150
+ selectTarget(potentialTargets, originalTarget, x, y, currentYMovement, currentXMovement) {
151
+ if (potentialTargets.length < 2) return requireValue(potentialTargets[0], "Expected potentialTargets[0]");
152
+ const tracking = this.pointerTracking;
153
+ const parentKey = requireValue(this.state, "Expected this.state").collection.getItem(originalTarget.key)?.parentKey;
154
+ if (!isPresent(parentKey)) return requireValue(potentialTargets[0], "Expected potentialTargets[0]");
155
+ if (!tracking.boundaryContext || tracking.boundaryContext.parentKey !== parentKey) tracking.boundaryContext = {
156
+ lastSwitchX: x,
157
+ lastSwitchY: y,
158
+ parentKey,
159
+ preferredTargetIndex: tracking.yDirection === "up" ? potentialTargets.length - 1 : 0
160
+ };
161
+ const { boundaryContext } = tracking;
162
+ const distanceFromLastXSwitch = Math.abs(x - boundaryContext.lastSwitchX);
163
+ if (Math.abs(y - boundaryContext.lastSwitchY) > Y_SWITCH_THRESHOLD && currentYMovement) this.switchVerticalTarget(boundaryContext, potentialTargets.length, currentYMovement);
164
+ if (distanceFromLastXSwitch > X_SWITCH_THRESHOLD && currentXMovement) {
165
+ const nextIndex = (boundaryContext.preferredTargetIndex ?? 0) + (currentXMovement === "left" === (this.direction === "ltr") ? 1 : -1);
166
+ if (nextIndex >= 0 && nextIndex < potentialTargets.length) {
167
+ boundaryContext.preferredTargetIndex = nextIndex;
168
+ boundaryContext.lastSwitchX = x;
169
+ }
170
+ tracking.yDirection = null;
171
+ }
172
+ const targetIndex = Math.max(0, Math.min(boundaryContext.preferredTargetIndex ?? 0, potentialTargets.length - 1));
173
+ return requireValue(potentialTargets[targetIndex], "Expected potentialTargets[targetIndex]");
174
+ }
175
+ };
176
+ export { TreeDropTargetDelegate };
177
+
178
+ //# sourceMappingURL=tree-drop-target-delegate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-drop-target-delegate.js","names":[],"sources":["../../src/tree-drop-target-delegate.ts"],"sourcesContent":["/*\n * Derived from Adobe React Spectrum: packages/react-aria-components/src/TreeDropTargetDelegate.ts.\n * Modified for Solid Aria: adapted collection types and module imports for Solid 2.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport { isPresent } from \"@solid2-aria/core/utils/is-present\";\nimport { requireValue } from \"@solid2-aria/core/utils/require-value\";\nimport type {\n Direction,\n DropTarget,\n DropTargetDelegate,\n ItemDropTarget,\n Key,\n Node,\n RootDropTarget,\n} from \"@solid2-aria/types-shared\";\n\ninterface TreeCollection<T> extends Iterable<Node<T>> {\n getItem: (key: Key) => Node<T> | null;\n getChildren?: (key: Key) => Iterable<Node<T>>;\n getKeyAfter: (key: Key) => Key | null;\n getKeyBefore: (key: Key) => Key | null;\n}\n\ninterface TreeState<T> {\n collection: TreeCollection<T>;\n expandedKeys: Set<Key>;\n}\n\ninterface PointerTracking {\n lastY: number;\n lastX: number;\n yDirection: \"up\" | \"down\" | null;\n xDirection: \"left\" | \"right\" | null;\n boundaryContext: {\n parentKey: Key;\n lastSwitchY: number;\n lastSwitchX: number;\n preferredTargetIndex?: number;\n } | null;\n}\n\nconst X_SWITCH_THRESHOLD = 10;\nconst Y_SWITCH_THRESHOLD = 5;\n\nexport class TreeDropTargetDelegate<T> {\n private delegate: DropTargetDelegate | null = null;\n private state: TreeState<T> | null = null;\n private direction: Direction = \"ltr\";\n private readonly pointerTracking: PointerTracking = {\n boundaryContext: null,\n lastX: 0,\n lastY: 0,\n xDirection: null,\n yDirection: null,\n };\n\n setup(\n delegate: DropTargetDelegate,\n state: TreeState<T>,\n direction: Direction\n ): void {\n this.delegate = delegate;\n this.state = state;\n this.direction = direction;\n }\n\n getDropTargetFromPoint(\n x: number,\n y: number,\n isValidDropTarget: (target: DropTarget) => boolean\n ): DropTarget | null {\n const baseTarget = requireValue(\n this.delegate,\n \"Expected this.delegate\"\n ).getDropTargetFromPoint(x, y, isValidDropTarget);\n\n if (!baseTarget || baseTarget.type === \"root\") {\n return baseTarget;\n }\n\n return this.resolveDropTarget(baseTarget, x, y, isValidDropTarget);\n }\n\n private resolveDropTarget(\n originalTarget: ItemDropTarget,\n x: number,\n y: number,\n isValidDropTarget: (target: DropTarget) => boolean\n ): RootDropTarget | ItemDropTarget | null {\n let target = originalTarget;\n const tracking = this.pointerTracking;\n\n // Calculate movement directions\n const deltaY = y - tracking.lastY;\n const deltaX = x - tracking.lastX;\n let currentYMovement: \"up\" | \"down\" | null = tracking.yDirection;\n let currentXMovement: \"left\" | \"right\" | null = tracking.xDirection;\n\n if (Math.abs(deltaY) > Y_SWITCH_THRESHOLD) {\n currentYMovement = deltaY > 0 ? \"down\" : \"up\";\n tracking.yDirection = currentYMovement;\n tracking.lastY = y;\n }\n\n if (Math.abs(deltaX) > X_SWITCH_THRESHOLD) {\n currentXMovement = deltaX > 0 ? \"right\" : \"left\";\n tracking.xDirection = currentXMovement;\n tracking.lastX = x;\n }\n\n // Normalize to 'after'\n if (target.dropPosition === \"before\") {\n let keyBefore = requireValue(\n this.state,\n \"Expected this.state\"\n ).collection.getKeyBefore(target.key);\n\n while (isPresent(keyBefore)) {\n const node = requireValue(\n this.state,\n \"Expected this.state\"\n ).collection.getItem(keyBefore);\n\n if (node?.type === \"item\") {\n break;\n }\n\n keyBefore = node?.parentKey ?? null;\n }\n\n if (isPresent(keyBefore)) {\n const convertedTarget = {\n dropPosition: \"after\",\n key: keyBefore,\n type: \"item\",\n } as const;\n\n if (isValidDropTarget(convertedTarget)) {\n target = convertedTarget;\n }\n }\n }\n\n const potentialTargets = this.getPotentialTargets(\n target,\n isValidDropTarget\n );\n\n if (potentialTargets.length === 0) {\n return { type: \"root\" };\n }\n\n let resolvedItemTarget: ItemDropTarget;\n\n if (potentialTargets.length > 1) {\n resolvedItemTarget = this.selectTarget(\n potentialTargets,\n target,\n x,\n y,\n currentYMovement,\n currentXMovement\n );\n } else {\n resolvedItemTarget = requireValue(\n potentialTargets[0],\n \"Expected potentialTargets[0]\"\n );\n // Reset boundary context since we're not in a boundary case\n tracking.boundaryContext = null;\n }\n\n return resolvedItemTarget;\n }\n\n // Returns potential targets for an ambiguous drop position (e.g. after the last child of a parent, or after the parent itself)\n // Ordered by level, from innermost to outermost.\n private getPotentialTargets(\n originalTarget: ItemDropTarget,\n isValidDropTarget: (target: DropTarget) => boolean\n ): ItemDropTarget[] {\n if (originalTarget.dropPosition === \"on\") {\n return [originalTarget];\n }\n\n const target = originalTarget;\n const { collection } = requireValue(this.state, \"Expected this.state\");\n\n let currentItem = collection.getItem(target.key);\n\n while (\n currentItem &&\n currentItem?.type !== \"item\" &&\n isPresent(currentItem.nextKey)\n ) {\n target.key = currentItem.nextKey;\n currentItem = collection.getItem(currentItem.nextKey);\n }\n\n const potentialTargets = [target];\n\n // If target has children and is expanded, use \"before first child\"\n if (\n currentItem &&\n currentItem.hasChildNodes &&\n requireValue(this.state, \"Expected this.state\").expandedKeys.has(\n currentItem.key\n ) &&\n collection.getChildren &&\n target.dropPosition === \"after\"\n ) {\n const firstChildItemNode = this.firstChildItem(currentItem);\n\n if (firstChildItemNode?.type === \"item\") {\n const beforeFirstChildTarget = {\n dropPosition: \"before\",\n key: firstChildItemNode.key,\n type: \"item\",\n } as const;\n\n if (isValidDropTarget(beforeFirstChildTarget)) {\n return [beforeFirstChildTarget];\n }\n\n return [];\n }\n }\n\n if (isPresent(currentItem?.nextKey)) {\n return [originalTarget];\n }\n\n potentialTargets.push(\n ...this.ancestorTargets(currentItem, isValidDropTarget)\n );\n\n if (potentialTargets.length === 1) {\n const beforeTarget = this.beforeDeeperSibling(target, currentItem);\n\n if (beforeTarget && isValidDropTarget(beforeTarget)) {\n return [beforeTarget];\n }\n }\n\n return potentialTargets.filter(isValidDropTarget);\n }\n\n private ancestorTargets(\n currentItem: Node<T> | null,\n isValidDropTarget: (target: DropTarget) => boolean\n ): ItemDropTarget[] {\n const { collection } = requireValue(\n this.state,\n \"Expected initialized tree state\"\n );\n\n let parentKey = currentItem?.parentKey;\n const targets: ItemDropTarget[] = [];\n\n while (isPresent(parentKey)) {\n const parent = collection.getItem(parentKey);\n\n const next = isPresent(parent?.nextKey)\n ? collection.getItem(parent.nextKey)\n : null;\n\n const lastAtLevel = !next || next.parentKey !== parentKey;\n\n if (lastAtLevel) {\n if (parent?.type === \"item\") {\n const target: ItemDropTarget = {\n dropPosition: \"after\",\n key: parentKey,\n type: \"item\",\n };\n\n if (isValidDropTarget(target)) {\n targets.push(target);\n }\n }\n\n if (next) {\n break;\n }\n }\n\n parentKey = parent?.parentKey;\n }\n\n return targets;\n }\n\n private beforeDeeperSibling(\n target: ItemDropTarget,\n currentItem: Node<T> | null\n ): ItemDropTarget | null {\n const { collection } = requireValue(\n this.state,\n \"Expected initialized tree state\"\n );\n\n const nextKey = collection.getKeyAfter(target.key);\n const next = isPresent(nextKey) ? collection.getItem(nextKey) : null;\n\n if (\n next &&\n currentItem &&\n isPresent(next.level) &&\n isPresent(currentItem.level) &&\n next.level > currentItem.level\n ) {\n return { dropPosition: \"before\", key: next.key, type: \"item\" };\n }\n\n return null;\n }\n\n private firstChildItem(parent: Node<T>): Node<T> | null {\n const { collection } = requireValue(\n this.state,\n \"Expected initialized tree state\"\n );\n\n let child = isPresent(parent.firstChildKey)\n ? collection.getItem(parent.firstChildKey)\n : null;\n\n while (child && child.type !== \"item\") {\n child = isPresent(child.nextKey)\n ? collection.getItem(child.nextKey)\n : null;\n }\n\n return child;\n }\n\n private switchVerticalTarget(\n boundary: NonNullable<PointerTracking[\"boundaryContext\"]>,\n count: number,\n movement: \"up\" | \"down\"\n ): void {\n const index = boundary.preferredTargetIndex ?? 0;\n\n if (movement === \"down\" && index === 0) {\n boundary.preferredTargetIndex = count - 1;\n } else if (movement === \"up\" && index === count - 1) {\n boundary.preferredTargetIndex = 0;\n }\n\n this.pointerTracking.xDirection = null;\n }\n\n private selectTarget(\n potentialTargets: ItemDropTarget[],\n originalTarget: ItemDropTarget,\n x: number,\n y: number,\n currentYMovement: \"up\" | \"down\" | null,\n currentXMovement: \"left\" | \"right\" | null\n ): ItemDropTarget {\n if (potentialTargets.length < 2) {\n return requireValue(potentialTargets[0], \"Expected potentialTargets[0]\");\n }\n\n const tracking = this.pointerTracking;\n\n const currentItem = requireValue(\n this.state,\n \"Expected this.state\"\n ).collection.getItem(originalTarget.key);\n\n const parentKey = currentItem?.parentKey;\n\n if (!isPresent(parentKey)) {\n return requireValue(potentialTargets[0], \"Expected potentialTargets[0]\");\n }\n\n // More than 1 potential target - use Y for initial target, then X for switching levels\n // Initialize boundary context if needed\n if (\n !tracking.boundaryContext ||\n tracking.boundaryContext.parentKey !== parentKey\n ) {\n // If entering from below, start with outer-most\n const initialTargetIndex =\n tracking.yDirection === \"up\" ? potentialTargets.length - 1 : 0;\n\n tracking.boundaryContext = {\n lastSwitchX: x,\n lastSwitchY: y,\n parentKey,\n preferredTargetIndex: initialTargetIndex,\n };\n }\n\n const { boundaryContext } = tracking;\n const distanceFromLastXSwitch = Math.abs(x - boundaryContext.lastSwitchX);\n const distanceFromLastYSwitch = Math.abs(y - boundaryContext.lastSwitchY);\n\n // Switch between targets based on Y movement\n if (distanceFromLastYSwitch > Y_SWITCH_THRESHOLD && currentYMovement) {\n this.switchVerticalTarget(\n boundaryContext,\n potentialTargets.length,\n currentYMovement\n );\n }\n\n // X movement controls level selection\n if (distanceFromLastXSwitch > X_SWITCH_THRESHOLD && currentXMovement) {\n const currentTargetIndex = boundaryContext.preferredTargetIndex ?? 0;\n\n const outward =\n (currentXMovement === \"left\") === (this.direction === \"ltr\");\n\n const nextIndex = currentTargetIndex + (outward ? 1 : -1);\n\n if (nextIndex >= 0 && nextIndex < potentialTargets.length) {\n boundaryContext.preferredTargetIndex = nextIndex;\n boundaryContext.lastSwitchX = x;\n }\n\n // Reset y tracking so that moving diagonally doesn't cause flickering.\n tracking.yDirection = null;\n }\n\n const targetIndex = Math.max(\n 0,\n Math.min(\n boundaryContext.preferredTargetIndex ?? 0,\n potentialTargets.length - 1\n )\n );\n\n return requireValue(\n potentialTargets[targetIndex],\n \"Expected potentialTargets[targetIndex]\"\n );\n }\n}\n"],"mappings":"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"}