@proyecto-viviana/solid-stately 0.5.1 → 0.6.0-rc.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 (418) hide show
  1. package/LICENSE-APACHE-2.0 +201 -0
  2. package/NOTICE +91 -0
  3. package/README.md +59 -29
  4. package/dist/autocomplete/createAutocompleteState.d.ts +2 -1
  5. package/dist/autocomplete/createAutocompleteState.d.ts.map +1 -0
  6. package/dist/autocomplete/index.d.ts +1 -0
  7. package/dist/autocomplete/index.d.ts.map +1 -0
  8. package/dist/calendar/IncompleteDate.d.ts +2 -1
  9. package/dist/calendar/IncompleteDate.d.ts.map +1 -0
  10. package/dist/calendar/createCalendarState.d.ts +10 -9
  11. package/dist/calendar/createCalendarState.d.ts.map +1 -0
  12. package/dist/calendar/createDateFieldState.d.ts +4 -20
  13. package/dist/calendar/createDateFieldState.d.ts.map +1 -0
  14. package/dist/calendar/createDatePickerState.d.ts +4 -7
  15. package/dist/calendar/createDatePickerState.d.ts.map +1 -0
  16. package/dist/calendar/createRangeCalendarState.d.ts +9 -7
  17. package/dist/calendar/createRangeCalendarState.d.ts.map +1 -0
  18. package/dist/calendar/createTimeFieldState.d.ts +5 -24
  19. package/dist/calendar/createTimeFieldState.d.ts.map +1 -0
  20. package/dist/calendar/index.d.ts +1 -0
  21. package/dist/calendar/index.d.ts.map +1 -0
  22. package/dist/calendar/intl/index.d.ts +1 -0
  23. package/dist/calendar/intl/index.d.ts.map +1 -0
  24. package/dist/checkbox/createCheckboxGroupState.d.ts +3 -0
  25. package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -0
  26. package/dist/checkbox/index.d.ts +1 -0
  27. package/dist/checkbox/index.d.ts.map +1 -0
  28. package/dist/collections/ListCollection.d.ts +5 -0
  29. package/dist/collections/ListCollection.d.ts.map +1 -0
  30. package/dist/collections/createListState.d.ts +2 -6
  31. package/dist/collections/createListState.d.ts.map +1 -0
  32. package/dist/collections/createMenuState.d.ts +74 -13
  33. package/dist/collections/createMenuState.d.ts.map +1 -0
  34. package/dist/collections/createSelectionState.d.ts +2 -5
  35. package/dist/collections/createSelectionState.d.ts.map +1 -0
  36. package/dist/collections/getChildNodes.d.ts +6 -3
  37. package/dist/collections/getChildNodes.d.ts.map +1 -0
  38. package/dist/collections/index.d.ts +2 -1
  39. package/dist/collections/index.d.ts.map +1 -0
  40. package/dist/collections/types.d.ts +36 -2
  41. package/dist/collections/types.d.ts.map +1 -0
  42. package/dist/color/Color.d.ts +7 -1
  43. package/dist/color/Color.d.ts.map +1 -0
  44. package/dist/color/createColorAreaState.d.ts +6 -5
  45. package/dist/color/createColorAreaState.d.ts.map +1 -0
  46. package/dist/color/createColorFieldState.d.ts +4 -5
  47. package/dist/color/createColorFieldState.d.ts.map +1 -0
  48. package/dist/color/createColorSliderState.d.ts +4 -5
  49. package/dist/color/createColorSliderState.d.ts.map +1 -0
  50. package/dist/color/createColorWheelState.d.ts +2 -5
  51. package/dist/color/createColorWheelState.d.ts.map +1 -0
  52. package/dist/color/getColorChannels.d.ts +3 -0
  53. package/dist/color/getColorChannels.d.ts.map +1 -0
  54. package/dist/color/index.d.ts +2 -1
  55. package/dist/color/index.d.ts.map +1 -0
  56. package/dist/color/intl/index.d.ts +1 -0
  57. package/dist/color/intl/index.d.ts.map +1 -0
  58. package/dist/color/types.d.ts +2 -1
  59. package/dist/color/types.d.ts.map +1 -0
  60. package/dist/combobox/createComboBoxState.d.ts +92 -29
  61. package/dist/combobox/createComboBoxState.d.ts.map +1 -0
  62. package/dist/combobox/index.d.ts +2 -1
  63. package/dist/combobox/index.d.ts.map +1 -0
  64. package/dist/data/createAsyncList.d.ts +1 -7
  65. package/dist/data/createAsyncList.d.ts.map +1 -0
  66. package/dist/data/createListData.d.ts +1 -6
  67. package/dist/data/createListData.d.ts.map +1 -0
  68. package/dist/data/createTreeData.d.ts +1 -6
  69. package/dist/data/createTreeData.d.ts.map +1 -0
  70. package/dist/data/index.d.ts +1 -0
  71. package/dist/data/index.d.ts.map +1 -0
  72. package/dist/datepicker/index.d.ts +1 -0
  73. package/dist/datepicker/index.d.ts.map +1 -0
  74. package/dist/disclosure/createDisclosureState.d.ts +2 -5
  75. package/dist/disclosure/createDisclosureState.d.ts.map +1 -0
  76. package/dist/disclosure/index.d.ts +1 -0
  77. package/dist/disclosure/index.d.ts.map +1 -0
  78. package/dist/dnd/createDragState.d.ts +2 -6
  79. package/dist/dnd/createDragState.d.ts.map +1 -0
  80. package/dist/dnd/createDraggableCollectionState.d.ts +44 -11
  81. package/dist/dnd/createDraggableCollectionState.d.ts.map +1 -0
  82. package/dist/dnd/createDropState.d.ts +2 -6
  83. package/dist/dnd/createDropState.d.ts.map +1 -0
  84. package/dist/dnd/createDroppableCollectionState.d.ts +34 -11
  85. package/dist/dnd/createDroppableCollectionState.d.ts.map +1 -0
  86. package/dist/dnd/index.d.ts +3 -2
  87. package/dist/dnd/index.d.ts.map +1 -0
  88. package/dist/dnd/types.d.ts +17 -0
  89. package/dist/dnd/types.d.ts.map +1 -0
  90. package/dist/form/createFormValidationState.d.ts +2 -9
  91. package/{src → dist}/form/createFormValidationState.d.ts.map +1 -1
  92. package/dist/form/index.d.ts +1 -0
  93. package/dist/form/index.d.ts.map +1 -0
  94. package/dist/grid/createGridState.d.ts +4 -3
  95. package/dist/grid/createGridState.d.ts.map +1 -0
  96. package/dist/grid/index.d.ts +1 -0
  97. package/dist/grid/index.d.ts.map +1 -0
  98. package/dist/grid/types.d.ts +23 -1
  99. package/dist/grid/types.d.ts.map +1 -0
  100. package/dist/index.d.ts +7 -5
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +2947 -969
  103. package/dist/index.js.map +1 -1
  104. package/dist/menu/index.d.ts +3 -1
  105. package/dist/menu/index.d.ts.map +1 -0
  106. package/dist/numberfield/createNumberFieldState.d.ts +37 -9
  107. package/dist/numberfield/createNumberFieldState.d.ts.map +1 -0
  108. package/dist/numberfield/index.d.ts +1 -0
  109. package/dist/numberfield/index.d.ts.map +1 -0
  110. package/dist/overlays/createOverlayTriggerState.d.ts +12 -1
  111. package/dist/overlays/createOverlayTriggerState.d.ts.map +1 -0
  112. package/dist/overlays/index.d.ts +1 -0
  113. package/dist/overlays/index.d.ts.map +1 -0
  114. package/dist/private/flags/flags.d.ts +5 -0
  115. package/dist/private/flags/flags.d.ts.map +1 -0
  116. package/dist/private/flags/flags.js +26 -0
  117. package/dist/private/flags/flags.js.map +1 -0
  118. package/dist/radio/createRadioGroupState.d.ts +1 -0
  119. package/dist/radio/createRadioGroupState.d.ts.map +1 -0
  120. package/dist/radio/index.d.ts +1 -0
  121. package/dist/radio/index.d.ts.map +1 -0
  122. package/dist/searchfield/createSearchFieldState.d.ts +2 -5
  123. package/dist/searchfield/createSearchFieldState.d.ts.map +1 -0
  124. package/dist/searchfield/index.d.ts +1 -0
  125. package/dist/searchfield/index.d.ts.map +1 -0
  126. package/dist/select/createSelectState.d.ts +100 -33
  127. package/dist/select/createSelectState.d.ts.map +1 -0
  128. package/dist/select/index.d.ts +2 -1
  129. package/dist/select/index.d.ts.map +1 -0
  130. package/dist/selection/Selection.d.ts +2 -1
  131. package/dist/selection/Selection.d.ts.map +1 -0
  132. package/dist/selection/SelectionManager.d.ts +1 -19
  133. package/dist/selection/SelectionManager.d.ts.map +1 -0
  134. package/dist/selection/createMultipleSelectionState.d.ts +2 -13
  135. package/dist/selection/createMultipleSelectionState.d.ts.map +1 -0
  136. package/dist/selection/index.d.ts +1 -0
  137. package/dist/selection/index.d.ts.map +1 -0
  138. package/dist/slider/createSliderState.d.ts +37 -14
  139. package/dist/slider/createSliderState.d.ts.map +1 -0
  140. package/dist/slider/index.d.ts +1 -0
  141. package/dist/slider/index.d.ts.map +1 -0
  142. package/dist/ssr/index.d.ts +2 -13
  143. package/dist/ssr/index.d.ts.map +1 -0
  144. package/dist/steplist/createStepListState.d.ts +10 -18
  145. package/dist/steplist/createStepListState.d.ts.map +1 -0
  146. package/dist/steplist/index.d.ts +1 -0
  147. package/dist/steplist/index.d.ts.map +1 -0
  148. package/dist/table/TableCollection.d.ts +1 -0
  149. package/dist/table/TableCollection.d.ts.map +1 -0
  150. package/dist/table/createTableColumnResizeState.d.ts +2 -9
  151. package/dist/table/createTableColumnResizeState.d.ts.map +1 -0
  152. package/dist/table/createTableState.d.ts +3 -6
  153. package/dist/table/createTableState.d.ts.map +1 -0
  154. package/dist/table/createTreeGridState.d.ts +3 -9
  155. package/dist/table/createTreeGridState.d.ts.map +1 -0
  156. package/dist/table/index.d.ts +1 -0
  157. package/dist/table/index.d.ts.map +1 -0
  158. package/dist/table/types.d.ts +37 -3
  159. package/dist/table/types.d.ts.map +1 -0
  160. package/dist/tabs/createTabListState.d.ts +2 -5
  161. package/dist/tabs/createTabListState.d.ts.map +1 -0
  162. package/dist/tabs/index.d.ts +1 -0
  163. package/dist/tabs/index.d.ts.map +1 -0
  164. package/dist/textfield/createTextFieldState.d.ts +1 -0
  165. package/dist/textfield/createTextFieldState.d.ts.map +1 -0
  166. package/dist/textfield/index.d.ts +1 -0
  167. package/dist/textfield/index.d.ts.map +1 -0
  168. package/dist/toast/createToastState.d.ts +2 -5
  169. package/dist/toast/createToastState.d.ts.map +1 -0
  170. package/dist/toast/index.d.ts +1 -0
  171. package/dist/toast/index.d.ts.map +1 -0
  172. package/dist/toggle/createToggleGroupState.d.ts +1 -0
  173. package/dist/toggle/createToggleGroupState.d.ts.map +1 -0
  174. package/dist/toggle/createToggleState.d.ts +1 -0
  175. package/dist/toggle/createToggleState.d.ts.map +1 -0
  176. package/dist/toggle/index.d.ts +1 -0
  177. package/dist/toggle/index.d.ts.map +1 -0
  178. package/dist/tokenfield/TokenFieldValue.d.ts +96 -0
  179. package/dist/tokenfield/TokenFieldValue.d.ts.map +1 -0
  180. package/dist/tokenfield/createTokenFieldState.d.ts +33 -0
  181. package/dist/tokenfield/createTokenFieldState.d.ts.map +1 -0
  182. package/dist/tokenfield/index.d.ts +3 -0
  183. package/dist/tokenfield/index.d.ts.map +1 -0
  184. package/dist/tooltip/createTooltipTriggerState.d.ts +9 -8
  185. package/dist/tooltip/createTooltipTriggerState.d.ts.map +1 -0
  186. package/dist/tooltip/index.d.ts +1 -0
  187. package/dist/tooltip/index.d.ts.map +1 -0
  188. package/dist/tree/TreeCollection.d.ts +1 -0
  189. package/dist/tree/TreeCollection.d.ts.map +1 -0
  190. package/dist/tree/createTreeState.d.ts +3 -8
  191. package/dist/tree/createTreeState.d.ts.map +1 -0
  192. package/dist/tree/index.d.ts +1 -0
  193. package/dist/tree/index.d.ts.map +1 -0
  194. package/dist/tree/types.d.ts +19 -1
  195. package/dist/tree/types.d.ts.map +1 -0
  196. package/dist/utils/index.d.ts +3 -1
  197. package/dist/utils/index.d.ts.map +1 -0
  198. package/dist/utils/owner.d.ts +9 -0
  199. package/dist/utils/owner.d.ts.map +1 -0
  200. package/dist/utils/reactivity.d.ts +24 -0
  201. package/dist/utils/reactivity.d.ts.map +1 -0
  202. package/package.json +21 -9
  203. package/src/autocomplete/createAutocompleteState.ts +18 -4
  204. package/src/calendar/IncompleteDate.ts +15 -1
  205. package/src/calendar/createCalendarState.ts +321 -125
  206. package/src/calendar/createDateFieldState.ts +45 -31
  207. package/src/calendar/createDatePickerState.ts +47 -26
  208. package/src/calendar/createRangeCalendarState.ts +173 -86
  209. package/src/calendar/createTimeFieldState.ts +26 -7
  210. package/src/calendar/intl/index.ts +37 -2
  211. package/src/checkbox/createCheckboxGroupState.ts +45 -13
  212. package/src/collections/ListCollection.ts +31 -0
  213. package/src/collections/createListState.ts +27 -10
  214. package/src/collections/createMenuState.ts +190 -15
  215. package/src/collections/createSelectionState.ts +33 -13
  216. package/src/collections/getChildNodes.ts +20 -3
  217. package/src/collections/index.ts +6 -0
  218. package/src/collections/types.ts +35 -2
  219. package/src/color/Color.ts +61 -22
  220. package/src/color/createColorAreaState.ts +48 -4
  221. package/src/color/createColorFieldState.ts +114 -38
  222. package/src/color/createColorSliderState.ts +61 -9
  223. package/src/color/createColorWheelState.ts +29 -9
  224. package/src/color/getColorChannels.ts +16 -0
  225. package/src/color/index.ts +1 -0
  226. package/src/color/intl/index.ts +38 -3
  227. package/src/color/types.ts +1 -1
  228. package/src/combobox/createComboBoxState.ts +530 -297
  229. package/src/combobox/index.ts +4 -0
  230. package/src/data/createAsyncList.ts +41 -6
  231. package/src/data/createListData.ts +27 -4
  232. package/src/data/createTreeData.ts +30 -6
  233. package/src/disclosure/createDisclosureState.ts +40 -19
  234. package/src/dnd/createDragState.ts +22 -4
  235. package/src/dnd/createDraggableCollectionState.ts +145 -11
  236. package/src/dnd/createDropState.ts +21 -3
  237. package/src/dnd/createDroppableCollectionState.ts +127 -11
  238. package/src/dnd/index.ts +4 -0
  239. package/src/dnd/types.ts +16 -0
  240. package/src/form/createFormValidationState.ts +69 -37
  241. package/src/grid/createGridState.ts +196 -111
  242. package/src/grid/types.ts +22 -1
  243. package/src/index.ts +33 -2
  244. package/src/menu/index.ts +7 -0
  245. package/src/numberfield/createNumberFieldState.ts +247 -98
  246. package/src/overlays/createOverlayTriggerState.ts +31 -4
  247. package/src/private/flags/flags.ts +25 -0
  248. package/src/radio/createRadioGroupState.ts +23 -6
  249. package/src/searchfield/createSearchFieldState.ts +18 -3
  250. package/src/select/createSelectState.ts +317 -130
  251. package/src/select/index.ts +8 -1
  252. package/src/selection/Selection.ts +15 -1
  253. package/src/selection/SelectionManager.ts +17 -1
  254. package/src/selection/createMultipleSelectionState.ts +45 -26
  255. package/src/slider/createSliderState.ts +243 -104
  256. package/src/ssr/index.ts +34 -4
  257. package/src/steplist/createStepListState.ts +184 -130
  258. package/src/table/TableCollection.ts +14 -0
  259. package/src/table/createTableColumnResizeState.ts +71 -14
  260. package/src/table/createTableState.ts +26 -4
  261. package/src/table/createTreeGridState.ts +22 -6
  262. package/src/table/types.ts +38 -5
  263. package/src/tabs/createTabListState.ts +63 -43
  264. package/src/textfield/createTextFieldState.ts +17 -3
  265. package/src/toast/createToastState.ts +28 -3
  266. package/src/toggle/createToggleGroupState.ts +20 -5
  267. package/src/toggle/createToggleState.ts +19 -4
  268. package/src/tokenfield/TokenFieldValue.ts +499 -0
  269. package/src/tokenfield/createTokenFieldState.ts +88 -0
  270. package/src/tokenfield/index.ts +15 -0
  271. package/src/tooltip/createTooltipTriggerState.ts +49 -13
  272. package/src/tree/TreeCollection.ts +14 -0
  273. package/src/tree/createTreeState.ts +70 -36
  274. package/src/tree/types.ts +18 -1
  275. package/src/utils/index.ts +10 -1
  276. package/src/utils/owner.ts +20 -0
  277. package/src/utils/reactivity.ts +53 -1
  278. package/src/autocomplete/createAutocompleteState.d.ts +0 -48
  279. package/src/autocomplete/createAutocompleteState.d.ts.map +0 -1
  280. package/src/autocomplete/index.d.ts +0 -6
  281. package/src/autocomplete/index.d.ts.map +0 -1
  282. package/src/calendar/createCalendarState.d.ts +0 -152
  283. package/src/calendar/createCalendarState.d.ts.map +0 -1
  284. package/src/calendar/createDateFieldState.d.ts +0 -145
  285. package/src/calendar/createDateFieldState.d.ts.map +0 -1
  286. package/src/calendar/createRangeCalendarState.d.ts +0 -171
  287. package/src/calendar/createRangeCalendarState.d.ts.map +0 -1
  288. package/src/calendar/createTimeFieldState.d.ts +0 -97
  289. package/src/calendar/createTimeFieldState.d.ts.map +0 -1
  290. package/src/calendar/index.d.ts +0 -80
  291. package/src/calendar/index.d.ts.map +0 -1
  292. package/src/checkbox/createCheckboxGroupState.d.ts +0 -73
  293. package/src/checkbox/createCheckboxGroupState.d.ts.map +0 -1
  294. package/src/checkbox/index.d.ts +0 -6
  295. package/src/checkbox/index.d.ts.map +0 -1
  296. package/src/collections/ListCollection.d.ts +0 -40
  297. package/src/collections/ListCollection.d.ts.map +0 -1
  298. package/src/collections/createListState.d.ts +0 -94
  299. package/src/collections/createListState.d.ts.map +0 -1
  300. package/src/collections/createMenuState.d.ts +0 -55
  301. package/src/collections/createMenuState.d.ts.map +0 -1
  302. package/src/collections/createSelectionState.d.ts +0 -89
  303. package/src/collections/createSelectionState.d.ts.map +0 -1
  304. package/src/collections/index.d.ts +0 -38
  305. package/src/collections/index.d.ts.map +0 -1
  306. package/src/collections/types.d.ts +0 -147
  307. package/src/collections/types.d.ts.map +0 -1
  308. package/src/color/Color.d.ts +0 -43
  309. package/src/color/Color.d.ts.map +0 -1
  310. package/src/color/createColorAreaState.d.ts +0 -78
  311. package/src/color/createColorAreaState.d.ts.map +0 -1
  312. package/src/color/createColorFieldState.d.ts +0 -57
  313. package/src/color/createColorFieldState.d.ts.map +0 -1
  314. package/src/color/createColorSliderState.d.ts +0 -69
  315. package/src/color/createColorSliderState.d.ts.map +0 -1
  316. package/src/color/createColorWheelState.d.ts +0 -53
  317. package/src/color/createColorWheelState.d.ts.map +0 -1
  318. package/src/color/index.d.ts +0 -39
  319. package/src/color/index.d.ts.map +0 -1
  320. package/src/color/types.d.ts +0 -111
  321. package/src/color/types.d.ts.map +0 -1
  322. package/src/combobox/createComboBoxState.d.ts +0 -127
  323. package/src/combobox/createComboBoxState.d.ts.map +0 -1
  324. package/src/combobox/index.d.ts +0 -13
  325. package/src/combobox/index.d.ts.map +0 -1
  326. package/src/disclosure/createDisclosureState.d.ts +0 -68
  327. package/src/disclosure/createDisclosureState.d.ts.map +0 -1
  328. package/src/disclosure/index.d.ts +0 -10
  329. package/src/disclosure/index.d.ts.map +0 -1
  330. package/src/dnd/createDragState.d.ts +0 -68
  331. package/src/dnd/createDragState.d.ts.map +0 -1
  332. package/src/dnd/createDraggableCollectionState.d.ts +0 -68
  333. package/src/dnd/createDraggableCollectionState.d.ts.map +0 -1
  334. package/src/dnd/createDropState.d.ts +0 -80
  335. package/src/dnd/createDropState.d.ts.map +0 -1
  336. package/src/dnd/createDroppableCollectionState.d.ts +0 -107
  337. package/src/dnd/createDroppableCollectionState.d.ts.map +0 -1
  338. package/src/dnd/index.d.ts +0 -60
  339. package/src/dnd/index.d.ts.map +0 -1
  340. package/src/dnd/types.d.ts +0 -277
  341. package/src/dnd/types.d.ts.map +0 -1
  342. package/src/form/createFormValidationState.d.ts +0 -102
  343. package/src/form/index.d.ts +0 -16
  344. package/src/form/index.d.ts.map +0 -1
  345. package/src/grid/createGridState.d.ts +0 -15
  346. package/src/grid/createGridState.d.ts.map +0 -1
  347. package/src/grid/index.d.ts +0 -7
  348. package/src/grid/index.d.ts.map +0 -1
  349. package/src/grid/types.d.ts +0 -163
  350. package/src/grid/types.d.ts.map +0 -1
  351. package/src/index.d.ts +0 -311
  352. package/src/index.d.ts.map +0 -1
  353. package/src/numberfield/createNumberFieldState.d.ts +0 -67
  354. package/src/numberfield/createNumberFieldState.d.ts.map +0 -1
  355. package/src/numberfield/index.d.ts +0 -6
  356. package/src/numberfield/index.d.ts.map +0 -1
  357. package/src/overlays/createOverlayTriggerState.d.ts +0 -34
  358. package/src/overlays/createOverlayTriggerState.d.ts.map +0 -1
  359. package/src/overlays/index.d.ts +0 -6
  360. package/src/overlays/index.d.ts.map +0 -1
  361. package/src/radio/createRadioGroupState.d.ts +0 -79
  362. package/src/radio/createRadioGroupState.d.ts.map +0 -1
  363. package/src/radio/index.d.ts +0 -7
  364. package/src/radio/index.d.ts.map +0 -1
  365. package/src/searchfield/createSearchFieldState.d.ts +0 -27
  366. package/src/searchfield/createSearchFieldState.d.ts.map +0 -1
  367. package/src/searchfield/index.d.ts +0 -3
  368. package/src/searchfield/index.d.ts.map +0 -1
  369. package/src/select/createSelectState.d.ts +0 -75
  370. package/src/select/createSelectState.d.ts.map +0 -1
  371. package/src/select/index.d.ts +0 -2
  372. package/src/select/index.d.ts.map +0 -1
  373. package/src/slider/createSliderState.d.ts +0 -72
  374. package/src/slider/createSliderState.d.ts.map +0 -1
  375. package/src/slider/index.d.ts +0 -3
  376. package/src/slider/index.d.ts.map +0 -1
  377. package/src/ssr/index.d.ts +0 -28
  378. package/src/ssr/index.d.ts.map +0 -1
  379. package/src/table/TableCollection.d.ts +0 -54
  380. package/src/table/TableCollection.d.ts.map +0 -1
  381. package/src/table/createTableState.d.ts +0 -15
  382. package/src/table/createTableState.d.ts.map +0 -1
  383. package/src/table/index.d.ts +0 -18
  384. package/src/table/index.d.ts.map +0 -1
  385. package/src/table/types.d.ts +0 -145
  386. package/src/table/types.d.ts.map +0 -1
  387. package/src/tabs/createTabListState.d.ts +0 -70
  388. package/src/tabs/createTabListState.d.ts.map +0 -1
  389. package/src/tabs/index.d.ts +0 -8
  390. package/src/tabs/index.d.ts.map +0 -1
  391. package/src/textfield/createTextFieldState.d.ts +0 -32
  392. package/src/textfield/createTextFieldState.d.ts.map +0 -1
  393. package/src/textfield/index.d.ts +0 -6
  394. package/src/textfield/index.d.ts.map +0 -1
  395. package/src/toast/createToastState.d.ts +0 -129
  396. package/src/toast/createToastState.d.ts.map +0 -1
  397. package/src/toast/index.d.ts +0 -12
  398. package/src/toast/index.d.ts.map +0 -1
  399. package/src/toggle/createToggleState.d.ts +0 -34
  400. package/src/toggle/createToggleState.d.ts.map +0 -1
  401. package/src/toggle/index.d.ts +0 -2
  402. package/src/toggle/index.d.ts.map +0 -1
  403. package/src/tooltip/createTooltipTriggerState.d.ts +0 -39
  404. package/src/tooltip/createTooltipTriggerState.d.ts.map +0 -1
  405. package/src/tooltip/index.d.ts +0 -7
  406. package/src/tooltip/index.d.ts.map +0 -1
  407. package/src/tree/TreeCollection.d.ts +0 -43
  408. package/src/tree/TreeCollection.d.ts.map +0 -1
  409. package/src/tree/createTreeState.d.ts +0 -17
  410. package/src/tree/createTreeState.d.ts.map +0 -1
  411. package/src/tree/index.d.ts +0 -13
  412. package/src/tree/index.d.ts.map +0 -1
  413. package/src/tree/types.d.ts +0 -162
  414. package/src/tree/types.d.ts.map +0 -1
  415. package/src/utils/index.d.ts +0 -2
  416. package/src/utils/index.d.ts.map +0 -1
  417. package/src/utils/reactivity.d.ts +0 -28
  418. package/src/utils/reactivity.d.ts.map +0 -1
@@ -7,6 +7,10 @@ export {
7
7
  defaultContainsFilter,
8
8
  type ComboBoxState,
9
9
  type ComboBoxStateProps,
10
+ type ComboBoxValidationValue,
11
+ type ComboBoxSelectionMode,
12
+ type ComboBoxValueType,
13
+ type ComboBoxChangeValueType,
10
14
  type FilterFn,
11
15
  type MenuTriggerAction,
12
16
  type FocusStrategy,
@@ -1,12 +1,32 @@
1
+ /*
2
+ * Copyright 2020 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
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/data/useAsyncList.ts
14
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/data/useListData.ts
15
+
1
16
  /**
2
17
  * createAsyncList - SolidJS port of React Spectrum's useAsyncList
3
18
  *
4
19
  * Manages state for an immutable async loaded list data structure, and provides
5
20
  * convenience methods to update the data over time. Manages loading and error
6
21
  * states, pagination, and sorting.
22
+ *
23
+ * Ported from:
24
+ * - packages/react-stately/src/data/useAsyncList.ts
25
+ * - packages/react-stately/src/data/useListData.ts
7
26
  */
8
27
 
9
- import { createSignal, untrack } from "solid-js";
28
+ import { untrack } from "solid-js";
29
+ import { createInternalSignal } from "../utils";
10
30
 
11
31
  export type Key = string | number;
12
32
  export type Selection = "all" | Set<Key>;
@@ -149,7 +169,7 @@ export function createAsyncList<T, C = string>(options: AsyncListOptions<T, C>):
149
169
  initialFilterText = "",
150
170
  } = options;
151
171
 
152
- const [state, setState] = createSignal<InternalState<T, C>>({
172
+ const [state, setState] = createInternalSignal<InternalState<T, C>>({
153
173
  loadingState: "idle",
154
174
  items: [],
155
175
  selectedKeys: initialSelectedKeys === "all" ? "all" : new Set(initialSelectedKeys || []),
@@ -320,8 +340,14 @@ export function createAsyncList<T, C = string>(options: AsyncListOptions<T, C>):
320
340
 
321
341
  insertBefore(key: Key, ...values: T[]) {
322
342
  setState((s) => {
323
- const index = s.items.findIndex((item) => getKey(item) === key);
324
- if (index === -1) return s;
343
+ let index = s.items.findIndex((item) => getKey(item) === key);
344
+ if (index === -1) {
345
+ if (s.items.length === 0) {
346
+ index = 0;
347
+ } else {
348
+ return s;
349
+ }
350
+ }
325
351
  return {
326
352
  ...s,
327
353
  items: [...s.items.slice(0, index), ...values, ...s.items.slice(index)],
@@ -331,8 +357,14 @@ export function createAsyncList<T, C = string>(options: AsyncListOptions<T, C>):
331
357
 
332
358
  insertAfter(key: Key, ...values: T[]) {
333
359
  setState((s) => {
334
- const index = s.items.findIndex((item) => getKey(item) === key);
335
- if (index === -1) return s;
360
+ let index = s.items.findIndex((item) => getKey(item) === key);
361
+ if (index === -1) {
362
+ if (s.items.length === 0) {
363
+ index = 0;
364
+ } else {
365
+ return s;
366
+ }
367
+ }
336
368
  return {
337
369
  ...s,
338
370
  items: [...s.items.slice(0, index + 1), ...values, ...s.items.slice(index + 1)],
@@ -360,6 +392,9 @@ export function createAsyncList<T, C = string>(options: AsyncListOptions<T, C>):
360
392
  }
361
393
  selectedKeys = newSelection;
362
394
  }
395
+ if (s.cursor == null && items.length === 0) {
396
+ selectedKeys = new Set();
397
+ }
363
398
  return { ...s, items, selectedKeys };
364
399
  });
365
400
  },
@@ -1,11 +1,28 @@
1
+ /*
2
+ * Copyright 2020 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
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/data/useListData.ts
14
+
1
15
  /**
2
16
  * createListData - SolidJS port of React Spectrum's useListData
3
17
  *
4
18
  * Manages state for an immutable list data structure, and provides
5
19
  * convenience methods to update the data over time.
20
+ *
21
+ * Ported from packages/react-stately/src/data/useListData.ts.
6
22
  */
7
23
 
8
- import { createSignal, createMemo } from "solid-js";
24
+ import { createMemo } from "solid-js";
25
+ import { createInternalSignal } from "../utils";
9
26
 
10
27
  export type Key = string | number;
11
28
  export type Selection = "all" | Set<Key>;
@@ -88,7 +105,7 @@ export function createListData<T>(options: ListOptions<T>): ListData<T> {
88
105
  initialFilterText = "",
89
106
  } = options;
90
107
 
91
- const [state, setState] = createSignal<ListState<T>>({
108
+ const [state, setState] = createInternalSignal<ListState<T>>({
92
109
  items: initialItems,
93
110
  selectedKeys: initialSelectedKeys === "all" ? "all" : new Set(initialSelectedKeys || []),
94
111
  filterText: initialFilterText,
@@ -148,8 +165,14 @@ export function createListData<T>(options: ListOptions<T>): ListData<T> {
148
165
 
149
166
  insertBefore(key: Key, ...values: T[]) {
150
167
  setState((s) => {
151
- const index = s.items.findIndex((item) => getKey(item) === key);
152
- if (index === -1) return s;
168
+ let index = s.items.findIndex((item) => getKey(item) === key);
169
+ if (index === -1) {
170
+ if (s.items.length === 0) {
171
+ index = 0;
172
+ } else {
173
+ return s;
174
+ }
175
+ }
153
176
  return insertItems(s, index, ...values);
154
177
  });
155
178
  },
@@ -1,11 +1,27 @@
1
+ /*
2
+ * Copyright 2020 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
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/data/useTreeData.ts
14
+
1
15
  /**
2
16
  * createTreeData - SolidJS port of React Spectrum's useTreeData
3
17
  *
4
18
  * Manages state for an immutable tree data structure, and provides
5
19
  * convenience methods to update the data over time.
20
+ *
21
+ * Ported from packages/react-stately/src/data/useTreeData.ts.
6
22
  */
7
23
 
8
- import { createSignal } from "solid-js";
24
+ import { createInternalSignal } from "../utils";
9
25
 
10
26
  export type Key = string | number;
11
27
  export type Selection = "all" | Set<Key>;
@@ -94,8 +110,8 @@ export function createTreeData<T>(options: TreeOptions<T>): TreeData<T> {
94
110
  // Build initial tree
95
111
  const initialTree = buildTree(initialItems, new Map(), null, getKey, getChildren);
96
112
 
97
- const [treeState, setTreeState] = createSignal<TreeDataState<T>>(initialTree);
98
- const [selectedKeys, setSelectedKeys] = createSignal<Selection>(
113
+ const [treeState, setTreeState] = createInternalSignal<TreeDataState<T>>(initialTree);
114
+ const [selectedKeys, setSelectedKeys] = createInternalSignal<Selection>(
99
115
  initialSelectedKeys === "all" ? "all" : new Set(initialSelectedKeys || []),
100
116
  );
101
117
 
@@ -329,6 +345,11 @@ export function createTreeData<T>(options: TreeOptions<T>): TreeData<T> {
329
345
  },
330
346
 
331
347
  remove(...keys: Key[]) {
348
+ if (keys.length === 0) {
349
+ return;
350
+ }
351
+
352
+ let nextMap: Map<Key, TreeNode<T>> | undefined;
332
353
  setTreeState((state) => {
333
354
  let { items, nodeMap } = state;
334
355
  let newMap = new Map(nodeMap);
@@ -340,14 +361,17 @@ export function createTreeData<T>(options: TreeOptions<T>): TreeData<T> {
340
361
  newMap = result.nodeMap;
341
362
  }
342
363
 
364
+ nextMap = newMap;
343
365
  return { items: newItems, nodeMap: newMap };
344
366
  });
345
367
 
346
368
  setSelectedKeys((sel) => {
347
- if (sel === "all") return sel;
369
+ if (sel === "all" || !nextMap) return sel;
348
370
  const newSel = new Set(sel);
349
- for (const key of keys) {
350
- newSel.delete(key);
371
+ for (const key of sel) {
372
+ if (!nextMap.has(key)) {
373
+ newSel.delete(key);
374
+ }
351
375
  }
352
376
  return newSel;
353
377
  });
@@ -1,10 +1,26 @@
1
+ /*
2
+ * Copyright 2024 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
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/disclosure/useDisclosureGroupState.ts
14
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/disclosure/useDisclosureState.ts
15
+
1
16
  /**
2
17
  * Disclosure state management for SolidJS
3
18
  * Based on @react-stately/disclosure useDisclosureState and useDisclosureGroupState
4
19
  */
5
20
 
6
- import { createSignal, createEffect, createMemo, type Accessor } from "solid-js";
7
- import { access, type MaybeAccessor } from "../utils";
21
+ import { createEffect, createMemo } from "solid-js";
22
+ import type { Accessor } from "solid-js";
23
+ import { access, createInternalSignal, readNow, type MaybeAccessor } from "../utils";
8
24
 
9
25
  export interface DisclosureStateProps {
10
26
  /** Whether the disclosure is expanded (controlled). */
@@ -37,7 +53,7 @@ export function createDisclosureState(
37
53
  ): DisclosureState {
38
54
  const propsAccessor = () => access(props);
39
55
 
40
- const [internalExpanded, setInternalExpanded] = createSignal(
56
+ const [internalExpanded, setInternalExpanded] = createInternalSignal(
41
57
  propsAccessor().defaultExpanded ?? false,
42
58
  );
43
59
 
@@ -106,7 +122,7 @@ export function createDisclosureGroupState(
106
122
  ): DisclosureGroupState {
107
123
  const propsAccessor = () => access(props);
108
124
 
109
- const [internalKeys, setInternalKeys] = createSignal<Set<Key>>(
125
+ const [internalKeys, setInternalKeys] = createInternalSignal<Set<Key>>(
110
126
  new Set(propsAccessor().defaultExpandedKeys ?? []),
111
127
  );
112
128
 
@@ -124,26 +140,31 @@ export function createDisclosureGroupState(
124
140
  };
125
141
 
126
142
  // Ensure only one item is expanded if allowsMultipleExpanded is false.
127
- createEffect(() => {
128
- const p = propsAccessor();
129
- const allowsMultiple = p.allowsMultipleExpanded ?? false;
130
- const keys = expandedKeys();
131
-
132
- if (!allowsMultiple && keys.size > 1) {
133
- // Use queueMicrotask to defer the update and avoid infinite effect loop
134
- const firstKey = keys.values().next().value;
135
- if (firstKey != null) {
136
- queueMicrotask(() => {
137
- setExpandedKeys(new Set([firstKey]));
138
- });
143
+ createEffect(
144
+ () => {
145
+ const p = propsAccessor();
146
+ return {
147
+ allowsMultiple: p.allowsMultipleExpanded ?? false,
148
+ keys: expandedKeys(),
149
+ };
150
+ },
151
+ ({ allowsMultiple, keys }) => {
152
+ if (!allowsMultiple && keys.size > 1) {
153
+ // Defer the update to avoid an infinite effect loop
154
+ const firstKey = keys.values().next().value;
155
+ if (firstKey != null) {
156
+ queueMicrotask(() => {
157
+ setExpandedKeys(new Set([firstKey]));
158
+ });
159
+ }
139
160
  }
140
- }
141
- });
161
+ },
162
+ );
142
163
 
143
164
  const toggleKey = (key: Key) => {
144
165
  const p = propsAccessor();
145
166
  const allowsMultiple = p.allowsMultipleExpanded ?? false;
146
- const currentKeys = expandedKeys();
167
+ const currentKeys = p.expandedKeys !== undefined ? expandedKeys() : readNow(internalKeys);
147
168
 
148
169
  let newKeys: Set<Key>;
149
170
  if (allowsMultiple) {
@@ -1,10 +1,28 @@
1
+ /*
2
+ * Copyright 2020 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
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/dnd/useDrag.ts
14
+
1
15
  /**
2
16
  * Drag state management for solid-stately.
3
17
  *
4
18
  * Provides reactive state for drag operations.
19
+ *
20
+ * Ported from packages/react-aria/src/dnd/useDrag.ts.
5
21
  */
6
22
 
7
- import { createSignal, createMemo, type Accessor } from "solid-js";
23
+ import { createMemo } from "solid-js";
24
+ import type { Accessor } from "solid-js";
25
+ import { createInternalSignal, readNow } from "../utils";
8
26
  import type {
9
27
  DragItem,
10
28
  DragStartEvent,
@@ -65,7 +83,7 @@ export interface DragState {
65
83
  export function createDragState(props: Accessor<DragStateOptions>): DragState {
66
84
  const getProps = createMemo(() => props());
67
85
 
68
- const [isDragging, setIsDragging] = createSignal(false);
86
+ const [isDragging, setIsDragging] = createInternalSignal(false);
69
87
 
70
88
  const startDrag = (x: number, y: number) => {
71
89
  const p = getProps();
@@ -84,7 +102,7 @@ export function createDragState(props: Accessor<DragStateOptions>): DragState {
84
102
 
85
103
  const moveDrag = (x: number, y: number) => {
86
104
  const p = getProps();
87
- if (!isDragging() || p.isDisabled) return;
105
+ if (!readNow(isDragging) || p.isDisabled) return;
88
106
 
89
107
  if (typeof p.onDragMove === "function") {
90
108
  p.onDragMove({
@@ -97,7 +115,7 @@ export function createDragState(props: Accessor<DragStateOptions>): DragState {
97
115
 
98
116
  const endDrag = (x: number, y: number, dropOperation: DropOperation) => {
99
117
  const p = getProps();
100
- if (!isDragging()) return;
118
+ if (!readNow(isDragging)) return;
101
119
 
102
120
  setIsDragging(false);
103
121
 
@@ -1,10 +1,28 @@
1
+ /*
2
+ * Copyright 2020 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
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/dnd/useDraggableCollectionState.ts
14
+
1
15
  /**
2
16
  * Draggable collection state management for solid-stately.
3
17
  *
4
18
  * Provides reactive state for dragging items from a collection.
19
+ *
20
+ * Ported from packages/react-stately/src/dnd/useDraggableCollectionState.ts.
5
21
  */
6
22
 
7
- import { createSignal, createMemo, type Accessor } from "solid-js";
23
+ import { createMemo } from "solid-js";
24
+ import type { Accessor } from "solid-js";
25
+ import { createInternalSignal, readNow } from "../utils";
8
26
  import type {
9
27
  DragItem,
10
28
  DraggableCollectionStartEvent,
@@ -14,9 +32,22 @@ import type {
14
32
  DragPreviewRenderer,
15
33
  } from "./types";
16
34
 
17
- export interface DraggableCollectionStateOptions<T = object> {
35
+ type DragKey = string | number;
36
+
37
+ export interface DraggableCollectionNode {
38
+ parentKey?: DragKey | null;
39
+ textValue?: string;
40
+ }
41
+
42
+ export interface DraggableCollectionLike {
43
+ getItem(key: DragKey): DraggableCollectionNode | null | undefined;
44
+ getKeys?(): Iterable<DragKey>;
45
+ getTextValue?(key: DragKey): string;
46
+ }
47
+
48
+ export interface DraggableCollectionStateOptions<_T = object> {
18
49
  /** A function that returns the items being dragged. */
19
- getItems: (keys: Set<string | number>) => DragItem[];
50
+ getItems: (keys: Set<DragKey>) => DragItem[];
20
51
  /** Function that returns the allowed drop operations. */
21
52
  getAllowedDropOperations?: () => DropOperation[];
22
53
  /** Handler that is called when a drag operation is started. */
@@ -29,17 +60,23 @@ export interface DraggableCollectionStateOptions<T = object> {
29
60
  isDisabled?: boolean;
30
61
  /** Preview renderer function ref. */
31
62
  preview?: { current: DragPreviewRenderer | null };
63
+ /** Collection used to drop selected children whose ancestors are also dragging. */
64
+ collection?: DraggableCollectionLike;
65
+ /** Currently selected keys. `"all"` drags every collection key. */
66
+ selectedKeys?: "all" | Iterable<DragKey>;
67
+ /** Returns whether `key` is selected. */
68
+ isSelected?: (key: DragKey) => boolean;
32
69
  }
33
70
 
34
71
  export interface DraggableCollectionState {
35
72
  /** Whether items are currently being dragged. */
36
73
  readonly isDragging: boolean;
37
74
  /** The keys of the items being dragged. */
38
- readonly draggingKeys: Set<string | number>;
75
+ readonly draggingKeys: Set<DragKey>;
39
76
  /** Whether dragging is disabled. */
40
77
  readonly isDisabled: boolean;
41
78
  /** Start a drag operation with the given keys. */
42
- startDrag(keys: Set<string | number>, x: number, y: number): void;
79
+ startDrag(keys: Set<DragKey>, x: number, y: number): void;
43
80
  /** Update drag position. */
44
81
  moveDrag(x: number, y: number): void;
45
82
  /** End a drag operation. */
@@ -47,11 +84,89 @@ export interface DraggableCollectionState {
47
84
  /** Cancel a drag operation. */
48
85
  cancelDrag(): void;
49
86
  /** Get the items being dragged for the given keys. */
50
- getItems(keys: Set<string | number>): DragItem[];
87
+ getItems(keys: Set<DragKey>): DragItem[];
51
88
  /** Get allowed drop operations. */
52
89
  getAllowedDropOperations(): DropOperation[];
53
90
  /** Preview renderer. */
54
91
  readonly preview: { current: DragPreviewRenderer | null } | undefined;
92
+ /**
93
+ * Keys that will be dragged with `key`. Mirrors RAC
94
+ * `useDraggableCollectionState.getKeys`: the clicked item, plus every other
95
+ * selected item that is not a descendant of another selected item.
96
+ */
97
+ getKeysForDrag(key: DragKey): Set<DragKey>;
98
+ /** Returns whether `key` is selected. */
99
+ isSelected(key: DragKey): boolean;
100
+ /** Collection passed to the drag. Item text is read from here. */
101
+ readonly collection?: DraggableCollectionLike;
102
+ }
103
+
104
+ function selectedKeySet(
105
+ selectedKeys: "all" | Iterable<DragKey> | undefined,
106
+ collection: DraggableCollectionLike | undefined,
107
+ ): Set<DragKey> | "all" {
108
+ if (selectedKeys === "all") {
109
+ if (!collection?.getKeys) {
110
+ return "all";
111
+ }
112
+ return new Set(collection.getKeys());
113
+ }
114
+ return new Set(selectedKeys ?? []);
115
+ }
116
+
117
+ /**
118
+ * RAC `useDraggableCollectionState.ts` `getKeys`. The clicked item always
119
+ * drags. If it is selected, every selected item that is not a child of another
120
+ * selected item is included.
121
+ */
122
+ export function getKeysForDrag(
123
+ key: DragKey,
124
+ options: {
125
+ collection?: DraggableCollectionLike;
126
+ selectedKeys?: "all" | Iterable<DragKey>;
127
+ isSelected?: (key: DragKey) => boolean;
128
+ },
129
+ ): Set<DragKey> {
130
+ const selected = selectedKeySet(options.selectedKeys, options.collection);
131
+ const isSelected = options.isSelected?.(key) ?? (selected === "all" ? true : selected.has(key));
132
+ if (!isSelected) {
133
+ return new Set([key]);
134
+ }
135
+
136
+ const keys = new Set<DragKey>();
137
+ const selectedKeys = selected === "all" ? options.collection?.getKeys?.() : selected;
138
+ if (!selectedKeys) {
139
+ keys.add(key);
140
+ return keys;
141
+ }
142
+
143
+ for (const currentKey of selectedKeys) {
144
+ const node = options.collection?.getItem(currentKey);
145
+ if (!node) {
146
+ keys.add(currentKey);
147
+ continue;
148
+ }
149
+ let isChild = false;
150
+ let parentKey = node.parentKey;
151
+ while (parentKey != null) {
152
+ const parentSelected =
153
+ options.isSelected?.(parentKey) ?? (selected === "all" ? true : selected.has(parentKey));
154
+ if (parentSelected) {
155
+ isChild = true;
156
+ break;
157
+ }
158
+ const parentNode = options.collection?.getItem(parentKey);
159
+ parentKey = parentNode ? parentNode.parentKey : null;
160
+ }
161
+ if (!isChild) {
162
+ keys.add(currentKey);
163
+ }
164
+ }
165
+
166
+ if (keys.size === 0) {
167
+ keys.add(key);
168
+ }
169
+ return keys;
55
170
  }
56
171
 
57
172
  /**
@@ -65,8 +180,8 @@ export function createDraggableCollectionState<T = object>(
65
180
  ): DraggableCollectionState {
66
181
  const getProps = createMemo(() => props());
67
182
 
68
- const [isDragging, setIsDragging] = createSignal(false);
69
- const [draggingKeys, setDraggingKeys] = createSignal<Set<string | number>>(new Set());
183
+ const [isDragging, setIsDragging] = createInternalSignal(false);
184
+ const [draggingKeys, setDraggingKeys] = createInternalSignal<Set<string | number>>(new Set());
70
185
 
71
186
  const startDrag = (keys: Set<string | number>, x: number, y: number) => {
72
187
  const p = getProps();
@@ -87,21 +202,21 @@ export function createDraggableCollectionState<T = object>(
87
202
 
88
203
  const moveDrag = (x: number, y: number) => {
89
204
  const p = getProps();
90
- if (!isDragging() || p.isDisabled) return;
205
+ if (!readNow(isDragging) || p.isDisabled) return;
91
206
 
92
207
  if (typeof p.onDragMove === "function") {
93
208
  p.onDragMove({
94
209
  type: "dragmove",
95
210
  x,
96
211
  y,
97
- keys: draggingKeys(),
212
+ keys: readNow(draggingKeys),
98
213
  });
99
214
  }
100
215
  };
101
216
 
102
217
  const endDrag = (x: number, y: number, dropOperation: DropOperation, isInternal: boolean) => {
103
218
  const p = getProps();
104
- const keys = draggingKeys();
219
+ const keys = readNow(draggingKeys);
105
220
 
106
221
  setIsDragging(false);
107
222
  setDraggingKeys(new Set<string | number>());
@@ -154,5 +269,24 @@ export function createDraggableCollectionState<T = object>(
154
269
  cancelDrag,
155
270
  getItems,
156
271
  getAllowedDropOperations,
272
+ getKeysForDrag: (key: DragKey) => {
273
+ const p = getProps();
274
+ return getKeysForDrag(key, {
275
+ collection: p.collection,
276
+ selectedKeys: p.selectedKeys,
277
+ isSelected: p.isSelected,
278
+ });
279
+ },
280
+ isSelected: (key: DragKey) => {
281
+ const p = getProps();
282
+ if (p.isSelected) {
283
+ return p.isSelected(key);
284
+ }
285
+ const selected = selectedKeySet(p.selectedKeys, p.collection);
286
+ return selected === "all" ? true : selected.has(key);
287
+ },
288
+ get collection() {
289
+ return getProps().collection;
290
+ },
157
291
  };
158
292
  }
@@ -1,10 +1,28 @@
1
+ /*
2
+ * Copyright 2020 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
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/dnd/useDrop.ts
14
+
1
15
  /**
2
16
  * Drop state management for solid-stately.
3
17
  *
4
18
  * Provides reactive state for drop target operations.
19
+ *
20
+ * Ported from packages/react-aria/src/dnd/useDrop.ts.
5
21
  */
6
22
 
7
- import { createSignal, createMemo, type Accessor } from "solid-js";
23
+ import { createMemo } from "solid-js";
24
+ import type { Accessor } from "solid-js";
25
+ import { createInternalSignal, readNow } from "../utils";
8
26
  import type {
9
27
  DropItem,
10
28
  DropEnterEvent,
@@ -83,7 +101,7 @@ export interface DropState {
83
101
  export function createDropState(props: Accessor<DropStateOptions>): DropState {
84
102
  const getProps = createMemo(() => props());
85
103
 
86
- const [isDropTarget, setIsDropTarget] = createSignal(false);
104
+ const [isDropTarget, setIsDropTarget] = createInternalSignal(false);
87
105
 
88
106
  const enterTarget = (x: number, y: number) => {
89
107
  const p = getProps();
@@ -102,7 +120,7 @@ export function createDropState(props: Accessor<DropStateOptions>): DropState {
102
120
 
103
121
  const moveInTarget = (x: number, y: number) => {
104
122
  const p = getProps();
105
- if (!isDropTarget() || p.isDisabled) return;
123
+ if (!readNow(isDropTarget) || p.isDisabled) return;
106
124
 
107
125
  if (typeof p.onDropMove === "function") {
108
126
  p.onDropMove({