@proyecto-viviana/solidaria-components 0.5.0 → 0.7.0-rc.0

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 (561) hide show
  1. package/LICENSE-APACHE-2.0 +201 -0
  2. package/NOTICE +91 -0
  3. package/README.md +4 -7
  4. package/dist/ActionBar.d.ts +2 -10
  5. package/dist/ActionBar.d.ts.map +1 -1
  6. package/dist/ActionBar.js +95 -59
  7. package/dist/ActionBar.js.map +1 -1
  8. package/dist/ActionBar.jsx +42 -15
  9. package/dist/ActionBar.jsx.map +1 -1
  10. package/dist/ActionGroup.d.ts +1 -12
  11. package/dist/ActionGroup.d.ts.map +1 -1
  12. package/dist/ActionGroup.js +66 -44
  13. package/dist/ActionGroup.js.map +1 -1
  14. package/dist/ActionGroup.jsx +25 -10
  15. package/dist/ActionGroup.jsx.map +1 -1
  16. package/dist/Alert.d.ts +4 -1
  17. package/dist/Alert.d.ts.map +1 -1
  18. package/dist/Alert.js +25 -17
  19. package/dist/Alert.js.map +1 -1
  20. package/dist/Alert.jsx +9 -5
  21. package/dist/Alert.jsx.map +1 -1
  22. package/dist/Autocomplete.d.ts +2 -9
  23. package/dist/Autocomplete.d.ts.map +1 -1
  24. package/dist/Autocomplete.js +18 -5
  25. package/dist/Autocomplete.js.map +1 -1
  26. package/dist/Autocomplete.jsx +20 -7
  27. package/dist/Autocomplete.jsx.map +1 -1
  28. package/dist/Breadcrumbs.d.ts +2 -7
  29. package/dist/Breadcrumbs.d.ts.map +1 -1
  30. package/dist/Breadcrumbs.js +71 -51
  31. package/dist/Breadcrumbs.js.map +1 -1
  32. package/dist/Breadcrumbs.jsx +25 -12
  33. package/dist/Breadcrumbs.jsx.map +1 -1
  34. package/dist/Button.d.ts +1 -7
  35. package/dist/Button.d.ts.map +1 -1
  36. package/dist/Button.js +125 -72
  37. package/dist/Button.js.map +1 -1
  38. package/dist/Button.jsx +105 -43
  39. package/dist/Button.jsx.map +1 -1
  40. package/dist/Calendar.d.ts +1 -7
  41. package/dist/Calendar.d.ts.map +1 -1
  42. package/dist/Calendar.js +297 -221
  43. package/dist/Calendar.js.map +1 -1
  44. package/dist/Calendar.jsx +52 -32
  45. package/dist/Calendar.jsx.map +1 -1
  46. package/dist/CalendarPicker.d.ts +1 -10
  47. package/dist/CalendarPicker.d.ts.map +1 -1
  48. package/dist/CalendarPicker.js +12 -0
  49. package/dist/CalendarPicker.js.map +1 -1
  50. package/dist/CalendarPicker.jsx +12 -0
  51. package/dist/CalendarPicker.jsx.map +1 -1
  52. package/dist/Checkbox.d.ts +2 -7
  53. package/dist/Checkbox.d.ts.map +1 -1
  54. package/dist/Checkbox.js +332 -270
  55. package/dist/Checkbox.js.map +1 -1
  56. package/dist/Checkbox.jsx +70 -77
  57. package/dist/Checkbox.jsx.map +1 -1
  58. package/dist/Collection.d.ts +33 -7
  59. package/dist/Collection.d.ts.map +1 -1
  60. package/dist/Collection.js +128 -74
  61. package/dist/Collection.js.map +1 -1
  62. package/dist/Collection.jsx +46 -7
  63. package/dist/Collection.jsx.map +1 -1
  64. package/dist/Color.d.ts +15 -20
  65. package/dist/Color.d.ts.map +1 -1
  66. package/dist/Color.js +572 -334
  67. package/dist/Color.js.map +1 -1
  68. package/dist/Color.jsx +205 -85
  69. package/dist/Color.jsx.map +1 -1
  70. package/dist/ColorEditor.d.ts +3 -1
  71. package/dist/ColorEditor.d.ts.map +1 -1
  72. package/dist/ColorEditor.js +147 -124
  73. package/dist/ColorEditor.js.map +1 -1
  74. package/dist/ColorEditor.jsx +4 -1
  75. package/dist/ColorEditor.jsx.map +1 -1
  76. package/dist/ComboBox.d.ts +31 -10
  77. package/dist/ComboBox.d.ts.map +1 -1
  78. package/dist/ComboBox.js +539 -274
  79. package/dist/ComboBox.js.map +1 -1
  80. package/dist/ComboBox.jsx +213 -70
  81. package/dist/ComboBox.jsx.map +1 -1
  82. package/dist/ContextualHelpTrigger.d.ts +1 -7
  83. package/dist/ContextualHelpTrigger.d.ts.map +1 -1
  84. package/dist/ContextualHelpTrigger.js +102 -72
  85. package/dist/ContextualHelpTrigger.js.map +1 -1
  86. package/dist/ContextualHelpTrigger.jsx +36 -16
  87. package/dist/ContextualHelpTrigger.jsx.map +1 -1
  88. package/dist/DateField.d.ts +2 -7
  89. package/dist/DateField.d.ts.map +1 -1
  90. package/dist/DateField.js +0 -2
  91. package/dist/DateField.jsx +0 -2
  92. package/dist/DateField2.js +194 -179
  93. package/dist/DateField2.js.map +1 -1
  94. package/dist/DateField2.jsx +58 -55
  95. package/dist/DateField2.jsx.map +1 -1
  96. package/dist/DatePicker.d.ts +7 -7
  97. package/dist/DatePicker.d.ts.map +1 -1
  98. package/dist/DatePicker.js +2 -2
  99. package/dist/DatePicker.jsx +2 -2
  100. package/dist/DatePicker2.js +357 -435
  101. package/dist/DatePicker2.js.map +1 -1
  102. package/dist/DatePicker2.jsx +109 -178
  103. package/dist/DatePicker2.jsx.map +1 -1
  104. package/dist/DateRangePickerContext.d.ts +7 -0
  105. package/dist/DateRangePickerContext.d.ts.map +1 -1
  106. package/dist/Dialog.d.ts +4 -9
  107. package/dist/Dialog.d.ts.map +1 -1
  108. package/dist/Dialog.js +168 -101
  109. package/dist/Dialog.js.map +1 -1
  110. package/dist/Dialog.jsx +75 -27
  111. package/dist/Dialog.jsx.map +1 -1
  112. package/dist/Disclosure.d.ts +1 -9
  113. package/dist/Disclosure.d.ts.map +1 -1
  114. package/dist/Disclosure.js +121 -79
  115. package/dist/Disclosure.js.map +1 -1
  116. package/dist/Disclosure.jsx +32 -19
  117. package/dist/Disclosure.jsx.map +1 -1
  118. package/dist/DragAndDrop.d.ts +9 -6
  119. package/dist/DragAndDrop.d.ts.map +1 -1
  120. package/dist/DragAndDrop.js +37 -22
  121. package/dist/DragAndDrop.js.map +1 -1
  122. package/dist/DragAndDrop.jsx +20 -4
  123. package/dist/DragAndDrop.jsx.map +1 -1
  124. package/dist/DragPreview.d.ts +1 -1
  125. package/dist/DragPreview.d.ts.map +1 -1
  126. package/dist/DropZone.d.ts +1 -7
  127. package/dist/DropZone.d.ts.map +1 -1
  128. package/dist/DropZone.js +74 -40
  129. package/dist/DropZone.js.map +1 -1
  130. package/dist/DropZone.jsx +24 -8
  131. package/dist/DropZone.jsx.map +1 -1
  132. package/dist/ElementTag.d.ts +9 -20
  133. package/dist/ElementTag.d.ts.map +1 -1
  134. package/dist/ElementTag.js +8 -210
  135. package/dist/ElementTag.js.map +1 -1
  136. package/dist/ElementTag.jsx +8 -57
  137. package/dist/ElementTag.jsx.map +1 -1
  138. package/dist/FieldError.d.ts +8 -7
  139. package/dist/FieldError.d.ts.map +1 -1
  140. package/dist/FieldError.js +33 -13
  141. package/dist/FieldError.js.map +1 -1
  142. package/dist/FieldError.jsx +20 -5
  143. package/dist/FieldError.jsx.map +1 -1
  144. package/dist/FileTrigger.d.ts +1 -7
  145. package/dist/FileTrigger.d.ts.map +1 -1
  146. package/dist/FileTrigger.js +30 -12
  147. package/dist/FileTrigger.js.map +1 -1
  148. package/dist/FileTrigger.jsx +15 -2
  149. package/dist/FileTrigger.jsx.map +1 -1
  150. package/dist/Focusable.d.ts +2 -8
  151. package/dist/Focusable.d.ts.map +1 -1
  152. package/dist/Focusable.js +23 -6
  153. package/dist/Focusable.js.map +1 -1
  154. package/dist/Focusable.jsx +22 -5
  155. package/dist/Focusable.jsx.map +1 -1
  156. package/dist/Form.d.ts +9 -8
  157. package/dist/Form.d.ts.map +1 -1
  158. package/dist/Form.js +66 -43
  159. package/dist/Form.js.map +1 -1
  160. package/dist/Form.jsx +36 -16
  161. package/dist/Form.jsx.map +1 -1
  162. package/dist/GridList.d.ts +5 -10
  163. package/dist/GridList.d.ts.map +1 -1
  164. package/dist/GridList.js +372 -243
  165. package/dist/GridList.js.map +1 -1
  166. package/dist/GridList.jsx +177 -99
  167. package/dist/GridList.jsx.map +1 -1
  168. package/dist/HiddenDateInput.d.ts +1 -7
  169. package/dist/HiddenDateInput.d.ts.map +1 -1
  170. package/dist/Icon.d.ts +4 -1
  171. package/dist/Icon.d.ts.map +1 -1
  172. package/dist/Icon.js +41 -37
  173. package/dist/Icon.js.map +1 -1
  174. package/dist/Icon.jsx +7 -3
  175. package/dist/Icon.jsx.map +1 -1
  176. package/dist/Keyboard.d.ts +1 -7
  177. package/dist/Keyboard.d.ts.map +1 -1
  178. package/dist/Keyboard.js +24 -11
  179. package/dist/Keyboard.js.map +1 -1
  180. package/dist/Keyboard.jsx +15 -2
  181. package/dist/Keyboard.jsx.map +1 -1
  182. package/dist/Label.d.ts +20 -0
  183. package/dist/Label.d.ts.map +1 -0
  184. package/dist/Label.js +60 -0
  185. package/dist/Label.js.map +1 -0
  186. package/dist/Label.jsx +47 -0
  187. package/dist/Label.jsx.map +1 -0
  188. package/dist/Landmark.d.ts +4 -1
  189. package/dist/Landmark.d.ts.map +1 -1
  190. package/dist/Landmark.js +10 -4
  191. package/dist/Landmark.js.map +1 -1
  192. package/dist/Landmark.jsx +5 -1
  193. package/dist/Landmark.jsx.map +1 -1
  194. package/dist/Link.d.ts +2 -7
  195. package/dist/Link.d.ts.map +1 -1
  196. package/dist/Link.js +56 -36
  197. package/dist/Link.js.map +1 -1
  198. package/dist/Link.jsx +52 -10
  199. package/dist/Link.jsx.map +1 -1
  200. package/dist/ListBox.d.ts +17 -13
  201. package/dist/ListBox.d.ts.map +1 -1
  202. package/dist/ListBox.js +647 -348
  203. package/dist/ListBox.js.map +1 -1
  204. package/dist/ListBox.jsx +339 -236
  205. package/dist/ListBox.jsx.map +1 -1
  206. package/dist/ListDropTargetDelegate.d.ts +3 -0
  207. package/dist/ListDropTargetDelegate.d.ts.map +1 -1
  208. package/dist/Menu.d.ts +39 -30
  209. package/dist/Menu.d.ts.map +1 -1
  210. package/dist/Menu.js +547 -368
  211. package/dist/Menu.js.map +1 -1
  212. package/dist/Menu.jsx +328 -230
  213. package/dist/Menu.jsx.map +1 -1
  214. package/dist/Meter.d.ts +6 -13
  215. package/dist/Meter.d.ts.map +1 -1
  216. package/dist/Meter.js +55 -18
  217. package/dist/Meter.js.map +1 -1
  218. package/dist/Meter.jsx +33 -8
  219. package/dist/Meter.jsx.map +1 -1
  220. package/dist/Modal.d.ts +1 -7
  221. package/dist/Modal.d.ts.map +1 -1
  222. package/dist/Modal.js +104 -56
  223. package/dist/Modal.js.map +1 -1
  224. package/dist/Modal.jsx +68 -38
  225. package/dist/Modal.jsx.map +1 -1
  226. package/dist/NumberField.d.ts +4 -7
  227. package/dist/NumberField.d.ts.map +1 -1
  228. package/dist/NumberField.js +243 -124
  229. package/dist/NumberField.js.map +1 -1
  230. package/dist/NumberField.jsx +115 -26
  231. package/dist/NumberField.jsx.map +1 -1
  232. package/dist/Popover.d.ts +15 -7
  233. package/dist/Popover.d.ts.map +1 -1
  234. package/dist/Popover.js +370 -181
  235. package/dist/Popover.js.map +1 -1
  236. package/dist/Popover.jsx +215 -82
  237. package/dist/Popover.jsx.map +1 -1
  238. package/dist/Pressable.d.ts +2 -8
  239. package/dist/Pressable.d.ts.map +1 -1
  240. package/dist/Pressable.js +23 -6
  241. package/dist/Pressable.js.map +1 -1
  242. package/dist/Pressable.jsx +22 -5
  243. package/dist/Pressable.jsx.map +1 -1
  244. package/dist/PreviewTrigger.d.ts +24 -0
  245. package/dist/PreviewTrigger.d.ts.map +1 -0
  246. package/dist/PreviewTrigger.js +128 -0
  247. package/dist/PreviewTrigger.js.map +1 -0
  248. package/dist/PreviewTrigger.jsx +117 -0
  249. package/dist/PreviewTrigger.jsx.map +1 -0
  250. package/dist/ProgressBar.d.ts +1 -7
  251. package/dist/ProgressBar.d.ts.map +1 -1
  252. package/dist/ProgressBar.js +34 -14
  253. package/dist/ProgressBar.js.map +1 -1
  254. package/dist/ProgressBar.jsx +17 -3
  255. package/dist/ProgressBar.jsx.map +1 -1
  256. package/dist/RadioGroup.d.ts +2 -7
  257. package/dist/RadioGroup.d.ts.map +1 -1
  258. package/dist/RadioGroup.js +388 -269
  259. package/dist/RadioGroup.js.map +1 -1
  260. package/dist/RadioGroup.jsx +110 -99
  261. package/dist/RadioGroup.jsx.map +1 -1
  262. package/dist/RangeCalendar.d.ts +3 -7
  263. package/dist/RangeCalendar.d.ts.map +1 -1
  264. package/dist/RangeCalendar.js +271 -202
  265. package/dist/RangeCalendar.js.map +1 -1
  266. package/dist/RangeCalendar.jsx +56 -37
  267. package/dist/RangeCalendar.jsx.map +1 -1
  268. package/dist/RouterProvider.d.ts +3 -9
  269. package/dist/RouterProvider.d.ts.map +1 -1
  270. package/dist/RouterProvider.js +15 -14
  271. package/dist/RouterProvider.js.map +1 -1
  272. package/dist/RouterProvider.jsx +14 -13
  273. package/dist/RouterProvider.jsx.map +1 -1
  274. package/dist/SearchField.d.ts +4 -7
  275. package/dist/SearchField.d.ts.map +1 -1
  276. package/dist/SearchField.js +191 -164
  277. package/dist/SearchField.js.map +1 -1
  278. package/dist/SearchField.jsx +69 -62
  279. package/dist/SearchField.jsx.map +1 -1
  280. package/dist/Select.d.ts +5 -10
  281. package/dist/Select.d.ts.map +1 -1
  282. package/dist/Select.js +565 -359
  283. package/dist/Select.js.map +1 -1
  284. package/dist/Select.jsx +281 -161
  285. package/dist/Select.jsx.map +1 -1
  286. package/dist/SelectionIndicator.d.ts +1 -4
  287. package/dist/SelectionIndicator.d.ts.map +1 -1
  288. package/dist/SelectionIndicator.js +29 -13
  289. package/dist/SelectionIndicator.js.map +1 -1
  290. package/dist/SelectionIndicator.jsx +18 -4
  291. package/dist/SelectionIndicator.jsx.map +1 -1
  292. package/dist/Separator.d.ts +1 -7
  293. package/dist/Separator.d.ts.map +1 -1
  294. package/dist/Separator.js +22 -6
  295. package/dist/Separator.js.map +1 -1
  296. package/dist/Separator.jsx +16 -3
  297. package/dist/Separator.jsx.map +1 -1
  298. package/dist/SharedElementTransition.d.ts +1 -10
  299. package/dist/SharedElementTransition.d.ts.map +1 -1
  300. package/dist/SharedElementTransition.js +68 -40
  301. package/dist/SharedElementTransition.js.map +1 -1
  302. package/dist/SharedElementTransition.jsx +49 -25
  303. package/dist/SharedElementTransition.jsx.map +1 -1
  304. package/dist/Slider.d.ts +2 -8
  305. package/dist/Slider.d.ts.map +1 -1
  306. package/dist/Slider.js +155 -97
  307. package/dist/Slider.js.map +1 -1
  308. package/dist/Slider.jsx +25 -12
  309. package/dist/Slider.jsx.map +1 -1
  310. package/dist/StepList.d.ts +1 -7
  311. package/dist/StepList.d.ts.map +1 -1
  312. package/dist/StepList.js +112 -68
  313. package/dist/StepList.js.map +1 -1
  314. package/dist/StepList.jsx +58 -20
  315. package/dist/StepList.jsx.map +1 -1
  316. package/dist/Switch.d.ts +2 -9
  317. package/dist/Switch.d.ts.map +1 -1
  318. package/dist/Switch.js +164 -114
  319. package/dist/Switch.js.map +1 -1
  320. package/dist/Switch.jsx +26 -13
  321. package/dist/Switch.jsx.map +1 -1
  322. package/dist/Table.d.ts +2 -1
  323. package/dist/Table.d.ts.map +1 -1
  324. package/dist/Table.js +689 -592
  325. package/dist/Table.js.map +1 -1
  326. package/dist/Table.jsx +317 -237
  327. package/dist/Table.jsx.map +1 -1
  328. package/dist/Tabs.d.ts +2 -7
  329. package/dist/Tabs.d.ts.map +1 -1
  330. package/dist/Tabs.js +278 -293
  331. package/dist/Tabs.js.map +1 -1
  332. package/dist/Tabs.jsx +68 -66
  333. package/dist/Tabs.jsx.map +1 -1
  334. package/dist/TagGroup.d.ts +4 -11
  335. package/dist/TagGroup.d.ts.map +1 -1
  336. package/dist/TagGroup.js +153 -115
  337. package/dist/TagGroup.js.map +1 -1
  338. package/dist/TagGroup.jsx +37 -24
  339. package/dist/TagGroup.jsx.map +1 -1
  340. package/dist/Text.d.ts +3 -3
  341. package/dist/Text.d.ts.map +1 -1
  342. package/dist/Text.js +24 -7
  343. package/dist/Text.js.map +1 -1
  344. package/dist/Text.jsx +17 -5
  345. package/dist/Text.jsx.map +1 -1
  346. package/dist/TextField.d.ts +3 -16
  347. package/dist/TextField.d.ts.map +1 -1
  348. package/dist/TextField.js +104 -129
  349. package/dist/TextField.js.map +1 -1
  350. package/dist/TextField.jsx +76 -102
  351. package/dist/TextField.jsx.map +1 -1
  352. package/dist/TimeField.d.ts +2 -15
  353. package/dist/TimeField.d.ts.map +1 -1
  354. package/dist/TimeField.js +86 -102
  355. package/dist/TimeField.js.map +1 -1
  356. package/dist/TimeField.jsx +32 -49
  357. package/dist/TimeField.jsx.map +1 -1
  358. package/dist/Toast.d.ts +10 -13
  359. package/dist/Toast.d.ts.map +1 -1
  360. package/dist/Toast.js +209 -108
  361. package/dist/Toast.js.map +1 -1
  362. package/dist/Toast.jsx +127 -22
  363. package/dist/Toast.jsx.map +1 -1
  364. package/dist/ToggleButton.d.ts +1 -7
  365. package/dist/ToggleButton.d.ts.map +1 -1
  366. package/dist/ToggleButton.js +57 -35
  367. package/dist/ToggleButton.js.map +1 -1
  368. package/dist/ToggleButton.jsx +26 -12
  369. package/dist/ToggleButton.jsx.map +1 -1
  370. package/dist/ToggleButtonGroup.d.ts +1 -7
  371. package/dist/ToggleButtonGroup.d.ts.map +1 -1
  372. package/dist/ToggleButtonGroup.js +59 -44
  373. package/dist/ToggleButtonGroup.js.map +1 -1
  374. package/dist/ToggleButtonGroup.jsx +25 -12
  375. package/dist/ToggleButtonGroup.jsx.map +1 -1
  376. package/dist/TokenField.d.ts +52 -0
  377. package/dist/TokenField.d.ts.map +1 -0
  378. package/dist/TokenField.js +301 -0
  379. package/dist/TokenField.js.map +1 -0
  380. package/dist/TokenField.jsx +197 -0
  381. package/dist/TokenField.jsx.map +1 -0
  382. package/dist/Toolbar.d.ts +2 -7
  383. package/dist/Toolbar.d.ts.map +1 -1
  384. package/dist/Toolbar.js +35 -16
  385. package/dist/Toolbar.js.map +1 -1
  386. package/dist/Toolbar.jsx +15 -2
  387. package/dist/Toolbar.jsx.map +1 -1
  388. package/dist/Tooltip.d.ts +2 -7
  389. package/dist/Tooltip.d.ts.map +1 -1
  390. package/dist/Tooltip.js +105 -68
  391. package/dist/Tooltip.js.map +1 -1
  392. package/dist/Tooltip.jsx +60 -36
  393. package/dist/Tooltip.jsx.map +1 -1
  394. package/dist/Tree.d.ts +8 -11
  395. package/dist/Tree.d.ts.map +1 -1
  396. package/dist/Tree.js +486 -339
  397. package/dist/Tree.js.map +1 -1
  398. package/dist/Tree.jsx +155 -107
  399. package/dist/Tree.jsx.map +1 -1
  400. package/dist/Virtualizer.d.ts +39 -9
  401. package/dist/Virtualizer.d.ts.map +1 -1
  402. package/dist/Virtualizer.js +2 -2
  403. package/dist/Virtualizer.jsx +2 -2
  404. package/dist/Virtualizer2.js +491 -136
  405. package/dist/Virtualizer2.js.map +1 -1
  406. package/dist/Virtualizer2.jsx +455 -122
  407. package/dist/Virtualizer2.jsx.map +1 -1
  408. package/dist/VirtualizerLayouts.d.ts +55 -2
  409. package/dist/VirtualizerLayouts.d.ts.map +1 -1
  410. package/dist/VisuallyHidden.d.ts +4 -3
  411. package/dist/VisuallyHidden.d.ts.map +1 -1
  412. package/dist/VisuallyHidden.js +18 -11
  413. package/dist/VisuallyHidden.js.map +1 -1
  414. package/dist/VisuallyHidden.jsx +15 -9
  415. package/dist/VisuallyHidden.jsx.map +1 -1
  416. package/dist/contexts.d.ts +25 -0
  417. package/dist/contexts.d.ts.map +1 -1
  418. package/dist/contexts.js +3 -0
  419. package/dist/contexts.js.map +1 -1
  420. package/dist/contexts.jsx +3 -0
  421. package/dist/contexts.jsx.map +1 -1
  422. package/dist/index.d.ts +11 -9
  423. package/dist/index.d.ts.map +1 -1
  424. package/dist/index.js +14 -11
  425. package/dist/index.jsx +14 -11
  426. package/dist/intl/index.d.ts +16 -0
  427. package/dist/intl/index.d.ts.map +1 -0
  428. package/dist/intl.js +212 -0
  429. package/dist/intl.js.map +1 -0
  430. package/dist/intl.jsx +212 -0
  431. package/dist/intl.jsx.map +1 -0
  432. package/dist/useDragAndDrop.d.ts +4 -2
  433. package/dist/useDragAndDrop.d.ts.map +1 -1
  434. package/dist/useDragAndDrop2.js +39 -21
  435. package/dist/useDragAndDrop2.js.map +1 -1
  436. package/dist/useDragAndDrop2.jsx +39 -21
  437. package/dist/useDragAndDrop2.jsx.map +1 -1
  438. package/dist/utils.d.ts +28 -9
  439. package/dist/utils.d.ts.map +1 -1
  440. package/dist/utils.js +96 -24
  441. package/dist/utils.js.map +1 -1
  442. package/dist/utils.jsx +81 -24
  443. package/dist/utils.jsx.map +1 -1
  444. package/dist/virtualizer/Layout.d.ts +9 -0
  445. package/dist/virtualizer/Layout.d.ts.map +1 -1
  446. package/dist/virtualizer/Layout.js +23 -2
  447. package/dist/virtualizer/Layout.js.map +1 -1
  448. package/dist/virtualizer/Layout.jsx +23 -2
  449. package/dist/virtualizer/Layout.jsx.map +1 -1
  450. package/package.json +29 -10
  451. package/src/ActionBar.tsx +50 -24
  452. package/src/ActionGroup.tsx +31 -19
  453. package/src/Alert.tsx +10 -4
  454. package/src/Autocomplete.tsx +24 -15
  455. package/src/Breadcrumbs.tsx +32 -16
  456. package/src/Button.tsx +182 -67
  457. package/src/Calendar.tsx +65 -47
  458. package/src/CalendarPicker.tsx +16 -1
  459. package/src/Checkbox.tsx +84 -116
  460. package/src/Collection.tsx +84 -3
  461. package/src/Color.tsx +282 -104
  462. package/src/ColorEditor.tsx +5 -1
  463. package/src/ComboBox.tsx +384 -109
  464. package/src/ContextualHelpTrigger.tsx +47 -41
  465. package/src/DateField.tsx +74 -106
  466. package/src/DatePicker.tsx +156 -352
  467. package/src/DateRangePickerContext.tsx +8 -0
  468. package/src/Dialog.tsx +105 -38
  469. package/src/Disclosure.tsx +29 -19
  470. package/src/DragAndDrop.tsx +43 -8
  471. package/src/DragPreview.tsx +20 -1
  472. package/src/DropZone.tsx +32 -18
  473. package/src/ElementTag.tsx +14 -104
  474. package/src/FieldError.tsx +39 -7
  475. package/src/FileTrigger.tsx +18 -3
  476. package/src/Focusable.tsx +27 -6
  477. package/src/Form.tsx +57 -11
  478. package/src/GridList.tsx +233 -141
  479. package/src/HiddenDateInput.tsx +19 -3
  480. package/src/Icon.tsx +8 -2
  481. package/src/Keyboard.tsx +18 -2
  482. package/src/Label.tsx +77 -0
  483. package/src/Landmark.tsx +6 -1
  484. package/src/Link.tsx +65 -19
  485. package/src/ListBox.tsx +645 -468
  486. package/src/ListDropTargetDelegate.ts +4 -0
  487. package/src/Menu.tsx +512 -349
  488. package/src/Meter.tsx +42 -8
  489. package/src/Modal.tsx +85 -42
  490. package/src/NumberField.tsx +161 -48
  491. package/src/Popover.tsx +424 -148
  492. package/src/Pressable.tsx +27 -6
  493. package/src/PreviewTrigger.tsx +171 -0
  494. package/src/ProgressBar.tsx +25 -3
  495. package/src/RadioGroup.tsx +230 -161
  496. package/src/RangeCalendar.tsx +75 -63
  497. package/src/RouterProvider.tsx +24 -14
  498. package/src/SearchField.tsx +118 -121
  499. package/src/Select.tsx +454 -274
  500. package/src/SelectionIndicator.tsx +21 -3
  501. package/src/Separator.tsx +17 -1
  502. package/src/SharedElementTransition.tsx +115 -97
  503. package/src/Slider.tsx +35 -17
  504. package/src/StepList.tsx +71 -32
  505. package/src/Switch.tsx +45 -29
  506. package/src/Table.tsx +446 -380
  507. package/src/Tabs.tsx +132 -155
  508. package/src/TagGroup.tsx +53 -40
  509. package/src/Text.tsx +23 -6
  510. package/src/TextField.tsx +118 -159
  511. package/src/TimeField.tsx +34 -95
  512. package/src/Toast.tsx +141 -67
  513. package/src/ToggleButton.tsx +33 -15
  514. package/src/ToggleButtonGroup.tsx +27 -9
  515. package/src/TokenField.tsx +379 -0
  516. package/src/Toolbar.tsx +19 -9
  517. package/src/Tooltip.tsx +126 -84
  518. package/src/Tree.tsx +233 -173
  519. package/src/Virtualizer.tsx +400 -138
  520. package/src/VirtualizerLayouts.ts +211 -26
  521. package/src/VisuallyHidden.tsx +22 -8
  522. package/src/contexts.ts +13 -0
  523. package/src/index.ts +32 -11
  524. package/src/intl/ar-AE.json +6 -0
  525. package/src/intl/bg-BG.json +6 -0
  526. package/src/intl/cs-CZ.json +6 -0
  527. package/src/intl/da-DK.json +6 -0
  528. package/src/intl/de-DE.json +6 -0
  529. package/src/intl/el-GR.json +6 -0
  530. package/src/intl/en-US.json +6 -0
  531. package/src/intl/es-ES.json +6 -0
  532. package/src/intl/et-EE.json +6 -0
  533. package/src/intl/fi-FI.json +6 -0
  534. package/src/intl/fr-FR.json +6 -0
  535. package/src/intl/he-IL.json +6 -0
  536. package/src/intl/hr-HR.json +6 -0
  537. package/src/intl/hu-HU.json +6 -0
  538. package/src/intl/index.ts +125 -0
  539. package/src/intl/it-IT.json +6 -0
  540. package/src/intl/ja-JP.json +6 -0
  541. package/src/intl/ko-KR.json +6 -0
  542. package/src/intl/lt-LT.json +6 -0
  543. package/src/intl/lv-LV.json +6 -0
  544. package/src/intl/nb-NO.json +6 -0
  545. package/src/intl/nl-NL.json +6 -0
  546. package/src/intl/pl-PL.json +6 -0
  547. package/src/intl/pt-BR.json +6 -0
  548. package/src/intl/pt-PT.json +6 -0
  549. package/src/intl/ro-RO.json +6 -0
  550. package/src/intl/ru-RU.json +6 -0
  551. package/src/intl/sk-SK.json +6 -0
  552. package/src/intl/sl-SI.json +6 -0
  553. package/src/intl/sr-SP.json +6 -0
  554. package/src/intl/sv-SE.json +6 -0
  555. package/src/intl/tr-TR.json +6 -0
  556. package/src/intl/uk-UA.json +6 -0
  557. package/src/intl/zh-CN.json +6 -0
  558. package/src/intl/zh-TW.json +6 -0
  559. package/src/useDragAndDrop.ts +30 -32
  560. package/src/utils.tsx +124 -68
  561. package/src/virtualizer/Layout.ts +29 -0
package/dist/Menu.js CHANGED
@@ -1,12 +1,26 @@
1
- import { filterDOMProps, useRenderProps } from "./utils.js";
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
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Menu.tsx
13
+ import { assignRef as assignRef$1, dataAttr, filterDOMProps, isAriaTrue, useRenderProps } from "./utils.js";
2
14
  import { r as PopoverTriggerContext } from "./contexts.js";
3
15
  import { SharedElementTransition } from "./SharedElementTransition.js";
4
- import { CollectionRendererContext, Group, Header, Section, flattenCollectionEntries, isCollectionSection, useCollectionRenderer } from "./Collection.js";
5
- import { r as useVirtualizerContext } from "./Virtualizer2.js";
6
- import { getNormalizedDropTargetKey, mergePersistedKeysIntoVirtualRange, useDndPersistedKeys, useRenderDropIndicator } from "./DragAndDrop.js";
7
- import { createComponent, effect, getNextElement, insert, memo, mergeProps, runHydrationEvents, setAttribute, setStyleProperty, spread, template, use } from "solid-js/web";
8
- import { For, Show, createContext, createEffect, createMemo, createSignal, createUniqueId, onCleanup, splitProps, useContext } from "solid-js";
9
- import { FocusScope, createButton, createFocusRing, createHover, createInteractOutside, createMenu, createMenuItem, createMenuTrigger, createScrollIntoViewOnFocus, mergeProps as mergeProps$2 } from "@proyecto-viviana/solidaria";
16
+ import { CollectionRendererContext, Group, Header, Section, flattenCollectionEntries, isCollectionSection, renderCollectionDropSlots, useCollectionRenderer, useCollectionRoot } from "./Collection.js";
17
+ import { o as useVirtualizerContext, t as PersistedVirtualItem } from "./Virtualizer2.js";
18
+ import { getNormalizedDropTargetKey, indexesOutsideRange, mergePersistedKeysIntoVirtualRange, useDndPersistedKeys, useRenderDropIndicator } from "./DragAndDrop.js";
19
+ import { OverlayContext } from "./Popover.js";
20
+ import { claimElement, createComponent, effect, getNextElement, insert, memo, ref, runHydrationEvents, scope, setAttribute, spread, template } from "@solidjs/web";
21
+ import { For, Show, createContext, createEffect, createMemo, createSignal, createUniqueId, onCleanup, useContext } from "solid-js";
22
+ import { FocusScope, createFocusRing, createHover, createInteractOutside, createMenu, createMenuItem, createMenuTrigger, createScrollIntoViewOnFocus, mergeProps as mergeProps$1, useLocale } from "@proyecto-viviana/solidaria";
23
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
10
24
  import { createMenuState, createMenuTriggerState, createSelectionState } from "@proyecto-viviana/solid-stately";
11
25
  //#region src/Menu.tsx
12
26
  /**
@@ -15,7 +29,13 @@ import { createMenuState, createMenuTriggerState, createSelectionState } from "@
15
29
  * A pre-wired headless menu that combines state + aria hooks.
16
30
  * Port of react-aria-components/src/Menu.tsx
17
31
  */
18
- var _tmpl$ = /*#__PURE__*/ template(`<button>`), _tmpl$2 = /*#__PURE__*/ template(`<div role=presentation data-empty-state><div role=menuitem style=display:contents>`), _tmpl$3 = /*#__PURE__*/ template(`<div role=group>`), _tmpl$4 = /*#__PURE__*/ template(`<div role=presentation data-section-wrapper>`), _tmpl$5 = /*#__PURE__*/ template(`<div role=presentation aria-hidden=true data-virtualizer-spacer=top>`), _tmpl$6 = /*#__PURE__*/ template(`<div role=presentation aria-hidden=true data-virtualizer-spacer=bottom>`), _tmpl$7 = /*#__PURE__*/ template(`<span>`), _tmpl$8 = /*#__PURE__*/ template(`<div>`), _tmpl$9 = /*#__PURE__*/ template(`<a>`);
32
+ var _tmpl$ = /* @__PURE__ */ template(`<div role=group>`);
33
+ var _tmpl$2 = /* @__PURE__ */ template(`<div role=presentation data-section-wrapper>`);
34
+ var _tmpl$3 = /* @__PURE__ */ template(`<div role=presentation data-empty-state><div role=menuitem style=display:contents>`);
35
+ var _tmpl$4 = /* @__PURE__ */ template(`<span>`);
36
+ var _tmpl$5 = /* @__PURE__ */ template(`<div>`);
37
+ var _tmpl$6 = /* @__PURE__ */ template(`<a>`);
38
+ var _tmpl$7 = /* @__PURE__ */ template(`<div inert style=position:relative;width:0;height:0><div data-testid=loadMoreSentinel style=position:absolute;height:1px;width:1px>`);
19
39
  const MenuContext = createContext(null);
20
40
  const MenuStateContext = createContext(null);
21
41
  const MenuTriggerContext = createContext(null);
@@ -25,11 +45,6 @@ const StaticMenuCollectionContext = createContext(null);
25
45
  const MenuSectionSelectionContext = createContext(null);
26
46
  const MenuSectionSelectionRegistryContext = createContext(null);
27
47
  const MenuItemCloseRegistryContext = createContext(null);
28
- function assignRef(ref, el) {
29
- if (!ref) return;
30
- if (typeof ref === "function") ref(el);
31
- else ref.current = el;
32
- }
33
48
  function resolveBoolean(value) {
34
49
  return typeof value === "function" ? Boolean(value()) : Boolean(value);
35
50
  }
@@ -47,8 +62,12 @@ function MenuTrigger(props) {
47
62
  },
48
63
  get onOpenChange() {
49
64
  return stateProps.onOpenChange;
65
+ },
66
+ get trigger() {
67
+ return stateProps.trigger;
50
68
  }
51
69
  });
70
+ const [triggerRef, setTriggerRef] = createSignal(null);
52
71
  const [isMousePressed, setMousePressed] = createSignal(false);
53
72
  const onPressStart = (e) => {
54
73
  if (e.pointerType !== "mouse" || typeof document === "undefined") return;
@@ -60,13 +79,21 @@ function MenuTrigger(props) {
60
79
  capture: true
61
80
  });
62
81
  };
63
- const menuTrigger = createMenuTrigger({ get isDisabled() {
64
- return stateProps.isDisabled;
65
- } }, state);
66
- return createComponent(RootMenuTriggerStateContext.Provider, {
82
+ const menuTrigger = createMenuTrigger({
83
+ get isDisabled() {
84
+ return stateProps.isDisabled;
85
+ },
86
+ get type() {
87
+ return stateProps.type;
88
+ },
89
+ get trigger() {
90
+ return stateProps.trigger;
91
+ }
92
+ }, state, triggerRef);
93
+ return createComponent(RootMenuTriggerStateContext, {
67
94
  value: state,
68
95
  get children() {
69
- return createComponent(MenuTriggerContext.Provider, {
96
+ return createComponent(MenuTriggerContext, {
70
97
  value: {
71
98
  state,
72
99
  get triggerProps() {
@@ -75,11 +102,36 @@ function MenuTrigger(props) {
75
102
  get menuProps() {
76
103
  return menuTrigger.menuProps;
77
104
  },
105
+ triggerRef,
106
+ setTriggerRef,
107
+ isDisabled: () => Boolean(stateProps.isDisabled),
78
108
  isPressed: isMousePressed,
79
109
  onPressStart
80
110
  },
81
111
  get children() {
82
- return props.children;
112
+ return createComponent(PopoverTriggerContext, {
113
+ get value() {
114
+ return {
115
+ state,
116
+ triggerRef,
117
+ setTriggerRef,
118
+ triggerId: String(menuTrigger.menuTriggerProps.id),
119
+ trigger: "MenuTrigger",
120
+ get triggerProps() {
121
+ return mergeProps$1(menuTrigger.menuTriggerProps, { onPressStart: (event) => {
122
+ onPressStart(event);
123
+ menuTrigger.menuTriggerProps.onPressStart?.(event);
124
+ } });
125
+ },
126
+ get overlayProps() {
127
+ return { "aria-labelledby": menuTrigger.menuProps["aria-labelledby"] };
128
+ }
129
+ };
130
+ },
131
+ get children() {
132
+ return props.children;
133
+ }
134
+ });
83
135
  }
84
136
  });
85
137
  }
@@ -90,6 +142,7 @@ function SubmenuTrigger(props) {
90
142
  const trigger = () => children()[0];
91
143
  const content = () => children()[1];
92
144
  const parentMenuItemContext = useContext(MenuItemContext);
145
+ const locale = useLocale();
93
146
  const state = createMenuTriggerState({
94
147
  get isOpen() {
95
148
  return props.isOpen;
@@ -164,7 +217,8 @@ function SubmenuTrigger(props) {
164
217
  triggerRef = el;
165
218
  },
166
219
  triggerId,
167
- trigger: "SubmenuTrigger"
220
+ trigger: "SubmenuTrigger",
221
+ overlayProps: { "aria-labelledby": triggerId }
168
222
  }));
169
223
  const itemContext = createMemo(() => ({
170
224
  closeOnSelect: false,
@@ -176,7 +230,7 @@ function SubmenuTrigger(props) {
176
230
  id: triggerId,
177
231
  "aria-haspopup": "menu",
178
232
  get "aria-expanded"() {
179
- return state.isOpen() || void 0;
233
+ return state.isOpen() ? "true" : void 0;
180
234
  },
181
235
  get "aria-controls"() {
182
236
  return state.isOpen() ? menuId : void 0;
@@ -192,27 +246,29 @@ function SubmenuTrigger(props) {
192
246
  onMouseEnter: openFromMouseHover,
193
247
  onMouseOver: openFromMouseHover,
194
248
  onKeyDown: (event) => {
195
- if (event.key === "ArrowRight" || event.key === "Enter" || event.key === " ") {
249
+ const openKey = locale().direction === "rtl" ? "ArrowLeft" : "ArrowRight";
250
+ const closeKey = locale().direction === "rtl" ? "ArrowRight" : "ArrowLeft";
251
+ if (event.key === openKey || event.key === "Enter" || event.key === " ") {
196
252
  event.preventDefault();
197
253
  openSubmenu();
198
- } else if (event.key === "ArrowLeft" && state.isOpen()) {
254
+ } else if (event.key === closeKey && state.isOpen()) {
199
255
  event.preventDefault();
200
256
  state.close();
201
257
  }
202
258
  }
203
259
  })
204
260
  }));
205
- return createComponent(PopoverTriggerContext.Provider, {
261
+ return createComponent(PopoverTriggerContext, {
206
262
  get value() {
207
263
  return popoverTriggerContext();
208
264
  },
209
265
  get children() {
210
- return createComponent(MenuTriggerContext.Provider, {
266
+ return createComponent(MenuTriggerContext, {
211
267
  get value() {
212
268
  return menuTriggerContext();
213
269
  },
214
270
  get children() {
215
- return [createComponent(MenuItemContext.Provider, {
271
+ return [createComponent(MenuItemContext, {
216
272
  get value() {
217
273
  return {
218
274
  ...parentMenuItemContext,
@@ -222,117 +278,14 @@ function SubmenuTrigger(props) {
222
278
  get children() {
223
279
  return trigger();
224
280
  }
225
- }), memo(() => content())];
281
+ }), memo(() => {
282
+ return content();
283
+ })];
226
284
  }
227
285
  });
228
286
  }
229
287
  });
230
288
  }
231
- function MenuButton(props) {
232
- const [local, domProps] = splitProps(props, [
233
- "class",
234
- "style",
235
- "slot",
236
- "isDisabled",
237
- "children"
238
- ]);
239
- const context = useContext(MenuTriggerContext);
240
- if (!context) throw new Error("MenuButton must be used within a MenuTrigger");
241
- const { state } = context;
242
- const buttonAria = createButton({
243
- get isDisabled() {
244
- return local.isDisabled;
245
- },
246
- onPressStart(e) {
247
- context.onPressStart?.(e);
248
- },
249
- onPress() {
250
- state.toggle();
251
- }
252
- });
253
- const { isFocused, isFocusVisible, focusProps } = createFocusRing();
254
- const { isHovered, hoverProps } = createHover({ get isDisabled() {
255
- return local.isDisabled;
256
- } });
257
- const renderValues = createMemo(() => ({
258
- isOpen: state.isOpen(),
259
- isFocused: isFocused(),
260
- isFocusVisible: isFocusVisible(),
261
- isPressed: context.isPressed?.() || buttonAria.isPressed(),
262
- isHovered: isHovered(),
263
- isDisabled: !!local.isDisabled
264
- }));
265
- const renderProps = useRenderProps({
266
- get children() {
267
- return props.children;
268
- },
269
- class: local.class,
270
- style: local.style,
271
- defaultClassName: "solidaria-MenuButton"
272
- }, renderValues);
273
- const resolvedTriggerProps = () => context.triggerProps;
274
- const cleanTriggerProps = () => {
275
- const { ref: _ref1, "aria-haspopup": _ariaHasPopup, "aria-expanded": _ariaExpanded, "aria-controls": _ariaControls, "aria-disabled": _ariaDisabled, ...rest } = resolvedTriggerProps();
276
- return rest;
277
- };
278
- const cleanButtonProps = () => {
279
- const { ref: _ref2, ...rest } = buttonAria.buttonProps;
280
- return rest;
281
- };
282
- const cleanFocusProps = () => {
283
- const { ref: _ref3, ...rest } = focusProps;
284
- return rest;
285
- };
286
- const cleanHoverProps = () => {
287
- const { ref: _ref4, ...rest } = hoverProps;
288
- return rest;
289
- };
290
- return (() => {
291
- var _el$ = getNextElement(_tmpl$);
292
- spread(_el$, mergeProps(domProps, cleanTriggerProps, cleanButtonProps, cleanFocusProps, cleanHoverProps, {
293
- "type": "button",
294
- get ["class"]() {
295
- return renderProps.class();
296
- },
297
- get style() {
298
- return renderProps.style();
299
- },
300
- get ["aria-haspopup"]() {
301
- return resolvedTriggerProps()["aria-haspopup"];
302
- },
303
- get ["aria-expanded"]() {
304
- return resolvedTriggerProps()["aria-expanded"];
305
- },
306
- get ["aria-controls"]() {
307
- return resolvedTriggerProps()["aria-controls"];
308
- },
309
- get ["aria-disabled"]() {
310
- return resolvedTriggerProps()["aria-disabled"];
311
- },
312
- get ["data-open"]() {
313
- return state.isOpen() || void 0;
314
- },
315
- get ["data-focused"]() {
316
- return isFocused() || void 0;
317
- },
318
- get ["data-focus-visible"]() {
319
- return isFocusVisible() || void 0;
320
- },
321
- get ["data-pressed"]() {
322
- return context.isPressed?.() || buttonAria.isPressed() || void 0;
323
- },
324
- get ["data-hovered"]() {
325
- return isHovered() || void 0;
326
- },
327
- get ["data-disabled"]() {
328
- return local.isDisabled || void 0;
329
- }
330
- }), false, true);
331
- insert(_el$, () => renderProps.renderChildren());
332
- runHydrationEvents();
333
- return _el$;
334
- })();
335
- }
336
289
  /**
337
290
  * A menu displays a list of actions or options for the user to choose from.
338
291
  */
@@ -366,8 +319,11 @@ function Menu(props) {
366
319
  "dragAndDropHooks"
367
320
  ]);
368
321
  const triggerContext = useContext(MenuTriggerContext);
322
+ const popoverTriggerContext = useContext(PopoverTriggerContext);
323
+ const overlayContext = useContext(OverlayContext);
324
+ const locale = useLocale();
369
325
  const [menuRef, setMenuRef] = createSignal(null);
370
- const [staticItems, setStaticItems] = createSignal([]);
326
+ const [staticItems, setStaticItems] = createSignal([], { ownedWrite: true });
371
327
  const staticItemMap = /* @__PURE__ */ new Map();
372
328
  const sectionSelectionMap = /* @__PURE__ */ new Map();
373
329
  const itemCloseMap = /* @__PURE__ */ new Map();
@@ -478,11 +434,14 @@ function Menu(props) {
478
434
  get label() {
479
435
  return ariaProps.label;
480
436
  },
437
+ get autoFocus() {
438
+ return ariaProps.autoFocus ?? triggerContext?.menuProps.autoFocus;
439
+ },
481
440
  get onAction() {
482
441
  return handleAction;
483
442
  },
484
443
  get onClose() {
485
- return stateProps.onClose ?? (() => triggerContext?.state.close());
444
+ return stateProps.onClose ?? triggerContext?.menuProps.onClose ?? (() => triggerContext?.state.close());
486
445
  },
487
446
  get shouldCloseOnSelect() {
488
447
  return itemCloseRegistry.shouldCloseOnSelect(state.focusedKey()) ?? stateProps.shouldCloseOnSelect;
@@ -496,7 +455,7 @@ function Menu(props) {
496
455
  get "aria-describedby"() {
497
456
  return ariaProps["aria-describedby"];
498
457
  }
499
- }, state);
458
+ }, state, () => menuRef());
500
459
  createScrollIntoViewOnFocus({
501
460
  focusedKey: () => state.focusedKey(),
502
461
  isActive: () => state.isFocused(),
@@ -528,7 +487,9 @@ function Menu(props) {
528
487
  };
529
488
  const cleanTriggerMenuProps = () => {
530
489
  if (!triggerContext) return {};
531
- const { ref: _ref2, ...rest } = triggerContext.menuProps;
490
+ const { ref: _ref2, autoFocus: _autoFocus, onClose: _onClose, "aria-labelledby": triggerLabelledBy, ...rest } = triggerContext.menuProps;
491
+ if (triggerLabelledBy && popoverTriggerContext?.trigger === "SubmenuTrigger") rest["aria-labelledby"] = triggerLabelledBy;
492
+ else if (!ariaProps.label && !ariaProps["aria-label"] && !ariaProps["aria-labelledby"]) rest["aria-labelledby"] = triggerLabelledBy;
532
493
  return rest;
533
494
  };
534
495
  const cleanFocusProps = () => {
@@ -542,9 +503,8 @@ function Menu(props) {
542
503
  };
543
504
  const setResolvedMenuRef = (el) => {
544
505
  setMenuRef(el);
545
- assignRef(local.ref, el);
506
+ assignRef$1(local.ref, el);
546
507
  };
547
- const shouldRender = () => triggerContext ? triggerContext.state.isOpen() : true;
548
508
  const parentCollectionRenderer = useCollectionRenderer();
549
509
  const virtualizer = useVirtualizerContext();
550
510
  const getItemNodes = createMemo(() => Array.from(state.collection()).filter((node) => node.type === "item"));
@@ -561,64 +521,54 @@ function Menu(props) {
561
521
  const hooks = stateProps.dragAndDropHooks;
562
522
  return Boolean(hooks?.useDroppableCollectionState && hooks.useDroppableCollection && (hooks.dropTargetDelegate || parentCollectionRenderer?.dropTargetDelegate || hooks.ListDropTargetDelegate));
563
523
  });
564
- const hasDraggableDnd = createMemo(() => {
524
+ const dragStateValue = createMemo(() => {
565
525
  const hooks = stateProps.dragAndDropHooks;
566
526
  return Boolean(hooks?.useDraggableCollectionState && hooks.useDraggableCollection);
567
- });
568
- const dragState = createMemo(() => {
569
- if (!hasDraggableDnd()) return void 0;
570
- return stateProps.dragAndDropHooks?.useDraggableCollectionState?.({ items: flatItems() });
571
- });
572
- const dropState = createMemo(() => {
573
- if (!hasDroppableDnd()) return void 0;
574
- return stateProps.dragAndDropHooks?.useDroppableCollectionState?.({});
575
- });
527
+ })() ? stateProps.dragAndDropHooks?.useDraggableCollectionState?.({
528
+ items: flatItems(),
529
+ collection: state.collection(),
530
+ selectedKeys: state.selectionManager.selectedKeys,
531
+ isSelected: (key) => state.selectionManager.isSelected(key)
532
+ }) : void 0;
533
+ const dragState = () => dragStateValue;
534
+ const dropStateValue = hasDroppableDnd() ? stateProps.dragAndDropHooks?.useDroppableCollectionState?.({ get collection() {
535
+ return state.collection();
536
+ } }) : void 0;
537
+ const dropState = () => dropStateValue;
576
538
  const persistedKeys = useDndPersistedKeys({ focusedKey: state.focusedKey }, stateProps.dragAndDropHooks, dropState(), state.collection());
577
539
  const virtualRange = createMemo(() => {
578
540
  if (!virtualizer || !parentCollectionRenderer?.isVirtualized || hasSections()) return null;
579
541
  const dynamicItems = stateProps.items ?? [];
580
542
  const baseRange = virtualizer.getVisibleRange(dynamicItems.length);
581
543
  const itemNodes = getItemNodes();
582
- const persistedIndexes = Array.from(persistedKeys()).map((key) => itemNodes.findIndex((node) => node.key === key)).filter((index) => index >= 0);
583
544
  const dropTarget = dropState()?.target;
584
545
  const normalizedDropKey = getNormalizedDropTargetKey(dropTarget, state.collection());
585
- const focusedKey = state.focusedKey();
586
- const focusedIndex = focusedKey != null ? itemNodes.findIndex((node) => node.key === focusedKey) : -1;
587
- const forceIncludeIndexes = [
588
- dropTarget?.type === "item" ? itemNodes.findIndex((node) => node.key === dropTarget.key) : -1,
589
- normalizedDropKey != null ? itemNodes.findIndex((node) => node.key === normalizedDropKey) : -1,
590
- dropTarget?.type === "item" ? -1 : focusedIndex
591
- ].filter((index) => index >= 0);
592
- return mergePersistedKeysIntoVirtualRange(baseRange, persistedIndexes, dynamicItems.length, virtualizer, 80, {
546
+ const forceIncludeIndexes = [dropTarget?.type === "item" ? itemNodes.findIndex((node) => node.key === dropTarget.key) : -1, normalizedDropKey != null ? itemNodes.findIndex((node) => node.key === normalizedDropKey) : -1].filter((index) => index >= 0);
547
+ return mergePersistedKeysIntoVirtualRange(baseRange, [], dynamicItems.length, virtualizer, 80, {
593
548
  forceIncludeIndexes,
594
549
  forceIncludeMaxSpan: 320
595
550
  });
596
551
  });
552
+ const persistedOutsideIndexes = createMemo(() => {
553
+ const range = virtualRange();
554
+ if (!range) return [];
555
+ const itemNodes = getItemNodes();
556
+ const persistedIndexes = Array.from(persistedKeys()).map((key) => itemNodes.findIndex((node) => node.key === key)).filter((index) => index >= 0);
557
+ return indexesOutsideRange(range, persistedIndexes);
558
+ });
597
559
  const visibleItems = createMemo(() => {
598
560
  const range = virtualRange();
599
561
  const items = stateProps.items ?? [];
600
562
  if (!range) return items;
601
563
  return items.slice(range.start, range.end);
602
564
  });
603
- createEffect(() => {
604
- if (!hasDraggableDnd()) return;
605
- const hooks = stateProps.dragAndDropHooks;
606
- const activeDragState = dragState();
607
- if (!hooks?.useDraggableCollection || !activeDragState) return;
608
- hooks.useDraggableCollection({}, activeDragState, () => menuRef());
609
- });
610
- const droppableCollection = createMemo(() => {
565
+ if (stateProps.dragAndDropHooks?.useDraggableCollection && dragStateValue) stateProps.dragAndDropHooks.useDraggableCollection({}, dragStateValue, () => menuRef());
566
+ const droppableCollectionValue = (() => {
611
567
  if (!hasDroppableDnd()) return void 0;
612
568
  const hooks = stateProps.dragAndDropHooks;
613
- const activeDropState = dropState();
569
+ const activeDropState = dropStateValue;
614
570
  if (!hooks?.useDroppableCollection || !activeDropState) return void 0;
615
- const resolveDirection = () => {
616
- const menuEl = menuRef();
617
- if (menuEl && typeof window !== "undefined" && typeof window.getComputedStyle === "function") {
618
- if (window.getComputedStyle(menuEl).direction === "rtl") return "rtl";
619
- }
620
- return typeof document !== "undefined" && document.dir === "rtl" ? "rtl" : "ltr";
621
- };
571
+ const resolveDirection = () => locale().direction;
622
572
  const dropTargetDelegate = hooks.dropTargetDelegate ?? parentCollectionRenderer?.dropTargetDelegate ?? (hooks.ListDropTargetDelegate ? new hooks.ListDropTargetDelegate(() => state.collection(), () => menuRef(), {
623
573
  layout: "stack",
624
574
  orientation: "vertical",
@@ -636,7 +586,8 @@ function Menu(props) {
636
586
  getKeyPageAbove: (key) => state.collection().getKeyBefore(key)
637
587
  }
638
588
  }, activeDropState, () => menuRef());
639
- });
589
+ })();
590
+ const droppableCollection = () => droppableCollectionValue;
640
591
  const isRootDropTarget = createMemo(() => {
641
592
  return Boolean(dropState()?.target?.type === "root");
642
593
  });
@@ -680,97 +631,197 @@ function Menu(props) {
680
631
  renderItem: (item) => renderDynamicItem(item),
681
632
  renderDropIndicator: (index, position) => dndDropIndicator(index, position) ?? parentCollectionRenderer?.renderDropIndicator?.(index, position)
682
633
  }));
634
+ const CollectionRoot = useCollectionRoot();
683
635
  const menuItemContextValue = createMemo(() => stateProps.shouldCloseOnSelect !== void 0 ? { closeOnSelect: stateProps.shouldCloseOnSelect } : {});
684
636
  const menuListChildren = () => createComponent(SharedElementTransition, { get children() {
685
- return memo(() => !!(state.collection().size === 0 && !usesStaticChildren() && local.renderEmptyState))() ? (() => {
686
- var _el$2 = getNextElement(_tmpl$2), _el$3 = _el$2.firstChild;
687
- insert(_el$3, () => local.renderEmptyState());
688
- return _el$2;
689
- })() : memo(() => !!usesStaticChildren())() ? renderStaticChildren() : memo(() => !!hasSections())() ? createComponent(For, {
690
- get each() {
691
- return sectionedRenderEntries();
692
- },
693
- children: (entry) => entry.type === "section" ? (() => {
694
- var _el$4 = getNextElement(_tmpl$4);
695
- insert(_el$4, createComponent(Section, {
696
- "class": "solidaria-Menu-section",
697
- get children() {
698
- return [memo(() => memo(() => entry.section.title != null)() && createComponent(Header, {
699
- "class": "solidaria-Menu-sectionHeader",
700
- get children() {
701
- return entry.section.title;
702
- }
703
- })), createComponent(Group, {
704
- "class": "solidaria-Menu-sectionGroup",
637
+ return [memo(() => {
638
+ return memo(() => {
639
+ return !!parentCollectionRenderer?.isVirtualized;
640
+ })() ? createComponent(CollectionRoot, {
641
+ get collection() {
642
+ return memo(() => {
643
+ return !!virtualRange();
644
+ })() ? stateProps.items ?? [] : [];
645
+ },
646
+ scrollRef: () => menuRef(),
647
+ get persistedKeys() {
648
+ return persistedKeys();
649
+ },
650
+ get children() {
651
+ return memo(() => {
652
+ return !!usesStaticChildren();
653
+ })() ? renderStaticChildren() : memo(() => {
654
+ return !!hasSections();
655
+ })() ? createComponent(For, {
656
+ get each() {
657
+ return sectionedRenderEntries();
658
+ },
659
+ children: (entry) => entry.type === "section" ? (() => {
660
+ var _el$ = getNextElement(_tmpl$2);
661
+ insert(_el$, createComponent(Section, {
662
+ class: "solidaria-Menu-section",
663
+ get children() {
664
+ return [memo(() => {
665
+ return memo(() => {
666
+ return entry.section.title != null;
667
+ })() && createComponent(Header, {
668
+ class: "solidaria-Menu-sectionHeader",
669
+ get children() {
670
+ return entry.section.title;
671
+ }
672
+ });
673
+ }), createComponent(Group, {
674
+ class: "solidaria-Menu-sectionGroup",
675
+ get children() {
676
+ var _el$2 = getNextElement(_tmpl$);
677
+ insert(_el$2, createComponent(For, {
678
+ get each() {
679
+ return entry.items;
680
+ },
681
+ children: (indexedItem) => renderCollectionDropSlots({
682
+ index: indexedItem.index,
683
+ lastIndex: getItemNodes().length - 1,
684
+ renderDropIndicator: (i, position) => collectionRenderer().renderDropIndicator?.(i, position),
685
+ children: renderDynamicItem(indexedItem.item)
686
+ })
687
+ }));
688
+ effect(() => entry.section["aria-label"], (_v$) => {
689
+ setAttribute(_el$2, "aria-label", _v$);
690
+ });
691
+ return _el$2;
692
+ }
693
+ })];
694
+ }
695
+ }));
696
+ return _el$;
697
+ })() : renderCollectionDropSlots({
698
+ index: entry.item.index,
699
+ lastIndex: getItemNodes().length - 1,
700
+ renderDropIndicator: (i, position) => collectionRenderer().renderDropIndicator?.(i, position),
701
+ children: renderDynamicItem(entry.item.item)
702
+ })
703
+ }) : [createComponent(For, {
704
+ get each() {
705
+ return visibleItems();
706
+ },
707
+ children: (item, index) => {
708
+ const itemIndex = () => (virtualRange()?.start ?? 0) + index();
709
+ return renderCollectionDropSlots({
710
+ index: itemIndex(),
711
+ lastIndex: getItemNodes().length - 1,
712
+ renderDropIndicator: (i, position) => collectionRenderer().renderDropIndicator?.(i, position),
713
+ children: renderDynamicItem(item)
714
+ });
715
+ }
716
+ }), createComponent(For, {
717
+ get each() {
718
+ return persistedOutsideIndexes();
719
+ },
720
+ children: (index) => createComponent(PersistedVirtualItem, {
721
+ index,
705
722
  get children() {
706
- var _el$5 = getNextElement(_tmpl$3);
707
- insert(_el$5, createComponent(For, {
708
- get each() {
709
- return entry.items;
710
- },
711
- children: (indexedItem) => [
712
- memo(() => collectionRenderer().renderDropIndicator?.(indexedItem.index, "before")),
713
- memo(() => collectionRenderer().renderDropIndicator?.(indexedItem.index, "on")),
714
- memo(() => renderDynamicItem(indexedItem.item)),
715
- memo(() => collectionRenderer().renderDropIndicator?.(indexedItem.index, "after"))
716
- ]
717
- }));
718
- effect(() => setAttribute(_el$5, "aria-label", entry.section["aria-label"]));
719
- return _el$5;
723
+ return renderCollectionDropSlots({
724
+ index,
725
+ lastIndex: getItemNodes().length - 1,
726
+ renderDropIndicator: (i, position) => collectionRenderer().renderDropIndicator?.(i, position),
727
+ children: renderDynamicItem((stateProps.items ?? [])[index])
728
+ });
720
729
  }
721
- })];
722
- }
723
- }));
724
- return _el$4;
725
- })() : [
726
- memo(() => collectionRenderer().renderDropIndicator?.(entry.item.index, "before")),
727
- memo(() => collectionRenderer().renderDropIndicator?.(entry.item.index, "on")),
728
- memo(() => renderDynamicItem(entry.item.item)),
729
- memo(() => collectionRenderer().renderDropIndicator?.(entry.item.index, "after"))
730
- ]
731
- }) : [
732
- memo(() => memo(() => !!virtualRange()?.offsetTop)() ? (() => {
733
- var _el$6 = getNextElement(_tmpl$5);
734
- effect((_$p) => setStyleProperty(_el$6, "height", `${virtualRange().offsetTop}px`));
735
- return _el$6;
736
- })() : null),
737
- createComponent(For, {
730
+ })
731
+ })];
732
+ }
733
+ }) : memo(() => {
734
+ return !!usesStaticChildren();
735
+ })() ? renderStaticChildren() : memo(() => {
736
+ return !!hasSections();
737
+ })() ? createComponent(For, {
738
+ get each() {
739
+ return sectionedRenderEntries();
740
+ },
741
+ children: (entry) => entry.type === "section" ? (() => {
742
+ var _el$3 = getNextElement(_tmpl$2);
743
+ insert(_el$3, createComponent(Section, {
744
+ class: "solidaria-Menu-section",
745
+ get children() {
746
+ return [memo(() => {
747
+ return memo(() => {
748
+ return entry.section.title != null;
749
+ })() && createComponent(Header, {
750
+ class: "solidaria-Menu-sectionHeader",
751
+ get children() {
752
+ return entry.section.title;
753
+ }
754
+ });
755
+ }), createComponent(Group, {
756
+ class: "solidaria-Menu-sectionGroup",
757
+ get children() {
758
+ var _el$4 = getNextElement(_tmpl$);
759
+ insert(_el$4, createComponent(For, {
760
+ get each() {
761
+ return entry.items;
762
+ },
763
+ children: (indexedItem) => renderCollectionDropSlots({
764
+ index: indexedItem.index,
765
+ lastIndex: getItemNodes().length - 1,
766
+ renderDropIndicator: (i, position) => collectionRenderer().renderDropIndicator?.(i, position),
767
+ children: renderDynamicItem(indexedItem.item)
768
+ })
769
+ }));
770
+ effect(() => entry.section["aria-label"], (_v$) => {
771
+ setAttribute(_el$4, "aria-label", _v$);
772
+ });
773
+ return _el$4;
774
+ }
775
+ })];
776
+ }
777
+ }));
778
+ return _el$3;
779
+ })() : renderCollectionDropSlots({
780
+ index: entry.item.index,
781
+ lastIndex: getItemNodes().length - 1,
782
+ renderDropIndicator: (i, position) => collectionRenderer().renderDropIndicator?.(i, position),
783
+ children: renderDynamicItem(entry.item.item)
784
+ })
785
+ }) : createComponent(For, {
738
786
  get each() {
739
787
  return visibleItems();
740
788
  },
741
789
  children: (item, index) => {
742
790
  const itemIndex = () => (virtualRange()?.start ?? 0) + index();
743
- const beforeIndicator = () => collectionRenderer().renderDropIndicator?.(itemIndex(), "before");
744
- const onIndicator = () => collectionRenderer().renderDropIndicator?.(itemIndex(), "on");
745
- const afterIndicator = () => collectionRenderer().renderDropIndicator?.(itemIndex(), "after");
746
- return [
747
- memo(beforeIndicator),
748
- memo(onIndicator),
749
- memo(() => renderDynamicItem(item)),
750
- memo(afterIndicator)
751
- ];
791
+ return renderCollectionDropSlots({
792
+ index: itemIndex(),
793
+ lastIndex: getItemNodes().length - 1,
794
+ renderDropIndicator: (i, position) => collectionRenderer().renderDropIndicator?.(i, position),
795
+ children: renderDynamicItem(item)
796
+ });
752
797
  }
753
- }),
754
- memo(() => memo(() => !!virtualRange()?.offsetBottom)() ? (() => {
755
- var _el$7 = getNextElement(_tmpl$6);
756
- effect((_$p) => setStyleProperty(_el$7, "height", `${virtualRange().offsetBottom}px`));
757
- return _el$7;
758
- })() : null)
759
- ];
798
+ });
799
+ }), memo(() => {
800
+ return memo(() => {
801
+ return !!(state.collection().size === 0 && local.renderEmptyState);
802
+ })() ? (() => {
803
+ var _el$5 = getNextElement(_tmpl$3);
804
+ var _el$6 = _el$5.firstChild;
805
+ insert(_el$6, scope(() => {
806
+ return local.renderEmptyState();
807
+ }));
808
+ return _el$5;
809
+ })() : null;
810
+ })];
760
811
  } });
761
812
  const menuListProps = () => ({
762
813
  ref: setResolvedMenuRef,
763
- ...mergeProps$2(domProps(), cleanMenuProps(), cleanTriggerMenuProps(), cleanFocusProps(), droppableCollection()?.collectionProps ?? {}),
814
+ ...mergeProps$1(domProps(), cleanMenuProps(), cleanTriggerMenuProps(), cleanFocusProps(), droppableCollection()?.collectionProps ?? {}),
764
815
  class: renderProps.class(),
765
816
  style: renderProps.style(),
766
817
  slot: local.slot,
767
- "data-focused": state.isFocused() || void 0,
768
- "data-disabled": resolveDisabled() || void 0,
769
- "data-empty": state.collection().size === 0 || void 0,
770
- "data-drop-target": isRootDropTarget() || void 0,
818
+ "data-focused": dataAttr(state.isFocused()),
819
+ "data-disabled": dataAttr(resolveDisabled()),
820
+ "data-empty": dataAttr(state.collection().size === 0),
821
+ "data-drop-target": dataAttr(isRootDropTarget()),
771
822
  children: menuListChildren()
772
823
  });
773
- const menuContent = () => createComponent(MenuContext.Provider, {
824
+ const menuContent = () => createComponent(MenuContext, {
774
825
  get value() {
775
826
  return {
776
827
  state,
@@ -781,26 +832,26 @@ function Menu(props) {
781
832
  };
782
833
  },
783
834
  get children() {
784
- return createComponent(MenuStateContext.Provider, {
835
+ return createComponent(MenuStateContext, {
785
836
  value: state,
786
837
  get children() {
787
- return createComponent(MenuSectionSelectionRegistryContext.Provider, {
838
+ return createComponent(MenuSectionSelectionRegistryContext, {
788
839
  value: sectionSelectionRegistry,
789
840
  get children() {
790
- return createComponent(MenuItemCloseRegistryContext.Provider, {
841
+ return createComponent(MenuItemCloseRegistryContext, {
791
842
  value: itemCloseRegistry,
792
843
  get children() {
793
- return createComponent(StaticMenuCollectionContext.Provider, {
844
+ return createComponent(StaticMenuCollectionContext, {
794
845
  get value() {
795
846
  return usesStaticChildren() ? staticCollectionContext : null;
796
847
  },
797
848
  get children() {
798
- return createComponent(MenuItemContext.Provider, {
849
+ return createComponent(MenuItemContext, {
799
850
  get value() {
800
851
  return menuItemContextValue();
801
852
  },
802
853
  get children() {
803
- return createComponent(CollectionRendererContext.Provider, {
854
+ return createComponent(CollectionRendererContext, {
804
855
  get value() {
805
856
  return collectionRenderer();
806
857
  },
@@ -810,42 +861,54 @@ function Menu(props) {
810
861
  return ariaProps.label;
811
862
  },
812
863
  get children() {
813
- var _el$8 = getNextElement(_tmpl$7);
814
- spread(_el$8, mergeProps(cleanLabelProps), false, true);
815
- insert(_el$8, () => ariaProps.label);
864
+ var _el$7 = getNextElement(_tmpl$4);
865
+ spread(_el$7, cleanLabelProps, true);
866
+ insert(_el$7, () => {
867
+ return ariaProps.label;
868
+ });
816
869
  runHydrationEvents();
817
- return _el$8;
870
+ return _el$7;
818
871
  }
819
- }), memo(() => memo(() => !!local.render)() ? local.render(menuListProps(), renderValues()) : (() => {
820
- var _el$9 = getNextElement(_tmpl$8);
821
- use(setResolvedMenuRef, _el$9);
822
- spread(_el$9, mergeProps(() => mergeProps$2(domProps(), cleanMenuProps(), cleanTriggerMenuProps(), cleanFocusProps(), droppableCollection()?.collectionProps ?? {}), {
823
- get ["class"]() {
824
- return renderProps.class();
825
- },
826
- get style() {
827
- return renderProps.style();
828
- },
829
- get slot() {
830
- return local.slot;
831
- },
832
- get ["data-focused"]() {
833
- return state.isFocused() || void 0;
834
- },
835
- get ["data-disabled"]() {
836
- return resolveDisabled() || void 0;
837
- },
838
- get ["data-empty"]() {
839
- return state.collection().size === 0 || void 0;
840
- },
841
- get ["data-drop-target"]() {
842
- return isRootDropTarget() || void 0;
843
- }
844
- }), false, true);
845
- insert(_el$9, menuListChildren);
846
- runHydrationEvents();
847
- return _el$9;
848
- })())];
872
+ }), memo(() => {
873
+ return memo(() => {
874
+ return !!local.render;
875
+ })() ? local.render(menuListProps(), renderValues()) : (() => {
876
+ var _el$8 = getNextElement(_tmpl$5);
877
+ ref(() => {
878
+ return setResolvedMenuRef;
879
+ }, _el$8);
880
+ spread(_el$8, [() => {
881
+ return mergeProps$1(domProps(), cleanMenuProps(), cleanTriggerMenuProps(), cleanFocusProps(), droppableCollection()?.collectionProps ?? {});
882
+ }, {
883
+ get "class"() {
884
+ return renderProps.class();
885
+ },
886
+ get style() {
887
+ return renderProps.style();
888
+ },
889
+ get slot() {
890
+ return local.slot;
891
+ },
892
+ get "data-focused"() {
893
+ return dataAttr(state.isFocused());
894
+ },
895
+ get "data-disabled"() {
896
+ return dataAttr(resolveDisabled());
897
+ },
898
+ get "data-empty"() {
899
+ return dataAttr(state.collection().size === 0);
900
+ },
901
+ get "data-drop-target"() {
902
+ return dataAttr(isRootDropTarget());
903
+ }
904
+ }], true);
905
+ insert(_el$8, scope(() => {
906
+ return menuListChildren();
907
+ }));
908
+ runHydrationEvents();
909
+ return _el$8;
910
+ })();
911
+ })];
849
912
  }
850
913
  });
851
914
  }
@@ -860,24 +923,18 @@ function Menu(props) {
860
923
  });
861
924
  }
862
925
  });
926
+ const shouldRender = () => overlayContext != null || !triggerContext ? true : triggerContext.state.isOpen();
863
927
  return createComponent(Show, {
864
928
  get when() {
865
929
  return shouldRender();
866
930
  },
867
931
  get children() {
868
- return createComponent(Show, {
869
- when: triggerContext,
870
- get fallback() {
871
- return menuContent();
872
- },
932
+ return overlayContext != null || !triggerContext ? createComponent(FocusScope, { get children() {
933
+ return menuContent();
934
+ } }) : createComponent(FocusScope, {
935
+ restoreFocus: true,
873
936
  get children() {
874
- return createComponent(FocusScope, {
875
- restoreFocus: true,
876
- autoFocus: true,
877
- get children() {
878
- return menuContent();
879
- }
880
- });
937
+ return menuContent();
881
938
  }
882
939
  });
883
940
  }
@@ -914,7 +971,7 @@ function MenuItem(props) {
914
971
  const sectionSelection = useContext(MenuSectionSelectionContext);
915
972
  const sectionSelectionRegistry = useContext(MenuSectionSelectionRegistryContext);
916
973
  const itemCloseRegistry = useContext(MenuItemCloseRegistryContext);
917
- const [ref, setRef] = createSignal(null);
974
+ const [ref$1, setRef] = createSignal(null);
918
975
  const contextProps = () => itemContext?.props?.() ?? {};
919
976
  const combinedOnAction = () => {
920
977
  local.onAction?.();
@@ -935,29 +992,34 @@ function MenuItem(props) {
935
992
  }
936
993
  };
937
994
  createEffect(() => {
938
- if (!staticCollection) return;
939
- if (registeredStaticKey != null && registeredStaticKey !== local.id) staticCollection.unregisterItem(registeredStaticKey);
940
- registeredStaticKey = local.id;
941
- staticCollection.registerItem({
995
+ if (!staticCollection) return null;
996
+ return {
942
997
  id: local.id,
943
998
  textValue: local.textValue ?? ariaProps["aria-label"],
944
999
  isDisabled: resolveBoolean(ariaProps.isDisabled) || (sectionSelection?.isDisabled(local.id) ?? false)
945
- });
1000
+ };
1001
+ }, (item) => {
1002
+ if (!staticCollection || !item) return;
1003
+ if (registeredStaticKey != null && registeredStaticKey !== item.id) staticCollection.unregisterItem(registeredStaticKey);
1004
+ registeredStaticKey = item.id;
1005
+ staticCollection.registerItem(item);
946
1006
  });
947
1007
  onCleanup(() => {
948
1008
  if (registeredStaticKey != null) staticCollection?.unregisterItem(registeredStaticKey);
949
1009
  });
950
- createEffect(() => {
951
- const selection = activeSectionSelection();
1010
+ createEffect(() => ({
1011
+ selection: activeSectionSelection(),
1012
+ id: local.id
1013
+ }), ({ selection, id }) => {
952
1014
  if (!sectionSelectionRegistry || !selection) {
953
1015
  unregisterSectionSelection();
954
1016
  return;
955
1017
  }
956
- if (registeredSectionSelectionKey === local.id && registeredSectionSelection === selection) return;
1018
+ if (registeredSectionSelectionKey === id && registeredSectionSelection === selection) return;
957
1019
  unregisterSectionSelection();
958
- registeredSectionSelectionKey = local.id;
1020
+ registeredSectionSelectionKey = id;
959
1021
  registeredSectionSelection = selection;
960
- sectionSelectionRegistry.registerItem(local.id, selection);
1022
+ sectionSelectionRegistry.registerItem(id, selection);
961
1023
  });
962
1024
  onCleanup(unregisterSectionSelection);
963
1025
  const unregisterItemClose = () => {
@@ -967,16 +1029,20 @@ function MenuItem(props) {
967
1029
  registeredCloseAccessor = null;
968
1030
  }
969
1031
  };
970
- createEffect(() => {
971
- if (!itemCloseRegistry) {
1032
+ createEffect(() => ({
1033
+ id: local.id,
1034
+ shouldClose: itemCloseOnSelect,
1035
+ registry: itemCloseRegistry
1036
+ }), ({ id, shouldClose, registry }) => {
1037
+ if (!registry) {
972
1038
  unregisterItemClose();
973
1039
  return;
974
1040
  }
975
- if (registeredCloseKey === local.id && registeredCloseAccessor === itemCloseOnSelect) return;
1041
+ if (registeredCloseKey === id && registeredCloseAccessor === shouldClose) return;
976
1042
  unregisterItemClose();
977
- registeredCloseKey = local.id;
978
- registeredCloseAccessor = itemCloseOnSelect;
979
- itemCloseRegistry.registerItem(local.id, itemCloseOnSelect);
1043
+ registeredCloseKey = id;
1044
+ registeredCloseAccessor = shouldClose;
1045
+ registry.registerItem(id, shouldClose);
980
1046
  });
981
1047
  onCleanup(unregisterItemClose);
982
1048
  const itemAria = createMenuItem({
@@ -1017,7 +1083,7 @@ function MenuItem(props) {
1017
1083
  get download() {
1018
1084
  return local.download;
1019
1085
  }
1020
- }, state, () => ref());
1086
+ }, state, () => ref$1());
1021
1087
  const { isHovered, hoverProps } = createHover({
1022
1088
  get isDisabled() {
1023
1089
  return itemAria.isDisabled();
@@ -1037,7 +1103,7 @@ function MenuItem(props) {
1037
1103
  isHovered: isHovered(),
1038
1104
  isDisabled: itemAria.isDisabled(),
1039
1105
  hasSubmenu: Boolean(contextProps()["aria-haspopup"]),
1040
- isOpen: contextProps()["aria-expanded"] === true,
1106
+ isOpen: isAriaTrue(contextProps()["aria-expanded"]),
1041
1107
  descriptionProps: itemAria.descriptionProps,
1042
1108
  keyboardShortcutProps: itemAria.keyboardShortcutProps
1043
1109
  };
@@ -1077,7 +1143,7 @@ function MenuItem(props) {
1077
1143
  });
1078
1144
  const droppableItem = createMemo(() => {
1079
1145
  if (!menuContext?.dragAndDropHooks?.useDroppableItem || !menuContext.dropState) return void 0;
1080
- return menuContext.dragAndDropHooks.useDroppableItem({ key: local.id }, menuContext.dropState, () => ref());
1146
+ return menuContext.dragAndDropHooks.useDroppableItem({ key: local.id }, menuContext.dropState, () => ref$1());
1081
1147
  });
1082
1148
  const isLink = () => !!local.href;
1083
1149
  const cleanItemPropsForLink = () => {
@@ -1096,40 +1162,46 @@ function MenuItem(props) {
1096
1162
  const dataAttrs = () => {
1097
1163
  const selection = activeSectionSelection();
1098
1164
  return {
1099
- "data-focused": itemAria.isFocused() || void 0,
1100
- "data-focus-visible": itemAria.isFocusVisible() || void 0,
1101
- "data-pressed": itemAria.isPressed() || void 0,
1102
- "data-hovered": isHovered() || void 0,
1103
- "data-disabled": itemAria.isDisabled() || void 0,
1104
- "data-selected": (selection?.isSelected(local.id) ?? itemAria.isSelected()) || void 0,
1105
- "data-has-submenu": Boolean(contextProps()["aria-haspopup"]) || void 0,
1106
- "data-open": contextProps()["aria-expanded"] === true || void 0,
1107
- "data-dragging": draggableItem()?.isDragging || void 0,
1108
- "data-drop-target": droppableItem()?.isDropTarget || void 0
1165
+ "data-focused": dataAttr(itemAria.isFocused()),
1166
+ "data-focus-visible": dataAttr(itemAria.isFocusVisible()),
1167
+ "data-pressed": dataAttr(itemAria.isPressed()),
1168
+ "data-hovered": dataAttr(isHovered()),
1169
+ "data-disabled": dataAttr(itemAria.isDisabled()),
1170
+ "data-selected": dataAttr(selection?.isSelected(local.id) ?? itemAria.isSelected()),
1171
+ "data-has-submenu": dataAttr(Boolean(contextProps()["aria-haspopup"])),
1172
+ "data-open": dataAttr(isAriaTrue(contextProps()["aria-expanded"])),
1173
+ "data-dragging": dataAttr(!!draggableItem()?.isDragging),
1174
+ "data-drop-target": dataAttr(!!droppableItem()?.isDropTarget)
1109
1175
  };
1110
1176
  };
1111
1177
  const childContent = () => hasPrimitiveLabel() ? (() => {
1112
- var _el$0 = getNextElement(_tmpl$7);
1113
- spread(_el$0, mergeProps(() => itemAria.labelProps), false, true);
1114
- insert(_el$0, () => renderProps.renderChildren());
1178
+ var _el$9 = getNextElement(_tmpl$4);
1179
+ spread(_el$9, () => {
1180
+ return itemAria.labelProps;
1181
+ }, true);
1182
+ insert(_el$9, scope(() => {
1183
+ return renderProps.renderChildren();
1184
+ }));
1115
1185
  runHydrationEvents();
1116
- return _el$0;
1186
+ return _el$9;
1117
1187
  })() : renderProps.renderChildren();
1118
1188
  const setResolvedItemRef = (el) => {
1119
1189
  setRef(el);
1120
1190
  itemContext?.setItemRef?.(el);
1121
- if (el) assignRef(local.ref, el);
1191
+ if (el) assignRef$1(local.ref, el);
1192
+ const dragRef = (draggableItem()?.dragProps)?.ref;
1193
+ if (el && typeof dragRef === "function") dragRef(el);
1122
1194
  };
1123
1195
  const menuItemProps = () => ({
1124
1196
  ref: setResolvedItemRef,
1125
- ...mergeProps$2(cleanItemProps(), contextProps(), domProps(), cleanHoverProps(), draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {}),
1197
+ ...mergeProps$1(cleanItemProps(), contextProps(), domProps(), cleanHoverProps(), draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {}),
1126
1198
  class: renderProps.class(),
1127
1199
  style: renderProps.style(),
1128
1200
  ...dataAttrs(),
1129
1201
  children: childContent()
1130
1202
  });
1131
1203
  const linkMenuItemProps = () => ({
1132
- ...mergeProps$2(cleanItemPropsForLink(), contextProps(), domProps(), cleanHoverProps(), linkDomProps(), draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {}),
1204
+ ...mergeProps$1(cleanItemPropsForLink(), contextProps(), domProps(), cleanHoverProps(), linkDomProps(), draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {}),
1133
1205
  class: renderProps.class(),
1134
1206
  style: renderProps.style(),
1135
1207
  ...dataAttrs(),
@@ -1141,45 +1213,58 @@ function MenuItem(props) {
1141
1213
  return isLink();
1142
1214
  },
1143
1215
  get fallback() {
1144
- return (() => {
1145
- var _el$1 = getNextElement(_tmpl$8);
1146
- use((el) => {
1147
- setRef(el);
1148
- itemContext?.setItemRef?.(el);
1149
- assignRef(local.ref, el);
1150
- }, _el$1);
1151
- spread(_el$1, mergeProps(() => mergeProps$2(cleanItemProps(), contextProps(), domProps(), cleanHoverProps(), draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {}), {
1152
- get ["class"]() {
1216
+ var _el$10 = getNextElement(_tmpl$5);
1217
+ ref(() => {
1218
+ return setResolvedItemRef;
1219
+ }, _el$10);
1220
+ spread(_el$10, [
1221
+ () => {
1222
+ return mergeProps$1(cleanItemProps(), contextProps(), domProps(), cleanHoverProps(), draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {});
1223
+ },
1224
+ {
1225
+ get "class"() {
1153
1226
  return renderProps.class();
1154
1227
  },
1155
1228
  get style() {
1156
1229
  return renderProps.style();
1157
1230
  }
1158
- }, dataAttrs), false, true);
1159
- insert(_el$1, childContent);
1160
- runHydrationEvents();
1161
- return _el$1;
1162
- })();
1231
+ },
1232
+ dataAttrs
1233
+ ], true);
1234
+ insert(_el$10, scope(() => {
1235
+ return childContent();
1236
+ }));
1237
+ runHydrationEvents();
1238
+ return _el$10;
1163
1239
  },
1164
1240
  get children() {
1165
- return memo(() => !!local.render)() ? local.render(linkMenuItemProps(), renderValues()) : (() => {
1166
- var _el$10 = getNextElement(_tmpl$9);
1167
- use((el) => {
1168
- setRef(el);
1169
- itemContext?.setItemRef?.(el);
1170
- assignRef(local.ref, el);
1171
- }, _el$10);
1172
- spread(_el$10, mergeProps(() => mergeProps$2(cleanItemPropsForLink(), contextProps(), domProps(), cleanHoverProps(), linkDomProps(), draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {}), {
1173
- get ["class"]() {
1174
- return renderProps.class();
1241
+ return memo(() => {
1242
+ return !!local.render;
1243
+ })() ? local.render(linkMenuItemProps(), renderValues()) : (() => {
1244
+ var _el$11 = getNextElement(_tmpl$6);
1245
+ ref(() => {
1246
+ return setResolvedItemRef;
1247
+ }, _el$11);
1248
+ claimElement(_el$11);
1249
+ spread(_el$11, [
1250
+ () => {
1251
+ return mergeProps$1(cleanItemPropsForLink(), contextProps(), domProps(), cleanHoverProps(), linkDomProps(), draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {});
1175
1252
  },
1176
- get style() {
1177
- return renderProps.style();
1178
- }
1179
- }, dataAttrs), false, true);
1180
- insert(_el$10, childContent);
1253
+ {
1254
+ get "class"() {
1255
+ return renderProps.class();
1256
+ },
1257
+ get style() {
1258
+ return renderProps.style();
1259
+ }
1260
+ },
1261
+ dataAttrs
1262
+ ], true);
1263
+ insert(_el$11, scope(() => {
1264
+ return childContent();
1265
+ }));
1181
1266
  runHydrationEvents();
1182
- return _el$10;
1267
+ return _el$11;
1183
1268
  })();
1184
1269
  }
1185
1270
  });
@@ -1240,15 +1325,109 @@ function MenuSection(props) {
1240
1325
  return selectionProps.shouldCloseOnSelect;
1241
1326
  }
1242
1327
  };
1243
- return createComponent(MenuSectionSelectionContext.Provider, {
1328
+ return createComponent(MenuSectionSelectionContext, {
1244
1329
  value: sectionSelection,
1245
1330
  get children() {
1246
1331
  return createComponent(Section, sectionProps);
1247
1332
  }
1248
1333
  });
1249
1334
  }
1335
+ /**
1336
+ * Load more sentinel item for menu collections.
1337
+ * Port of RAC `MenuLoadMoreItem` (`react-aria-components/src/Menu.tsx`).
1338
+ */
1339
+ function MenuLoadMoreItem(props) {
1340
+ const state = useContext(MenuStateContext);
1341
+ const [sentinel, setSentinel] = createSignal(null);
1342
+ const [collectionEpoch, setCollectionEpoch] = createSignal(0);
1343
+ let seenCollectionSize;
1344
+ const [local, domProps] = splitProps(props, [
1345
+ "onLoadMore",
1346
+ "isLoading",
1347
+ "scrollOffset",
1348
+ "children",
1349
+ "class",
1350
+ "style",
1351
+ "ref",
1352
+ "slot"
1353
+ ]);
1354
+ const scrollOffsetValue = createMemo(() => local.scrollOffset ?? 1);
1355
+ createEffect(() => state?.collection()?.size ?? 0, (size) => {
1356
+ if (seenCollectionSize === void 0 || seenCollectionSize === 0) {
1357
+ seenCollectionSize = size;
1358
+ return;
1359
+ }
1360
+ if (size !== seenCollectionSize) {
1361
+ seenCollectionSize = size;
1362
+ setCollectionEpoch((n) => n + 1);
1363
+ }
1364
+ });
1365
+ createEffect(() => ({
1366
+ current: sentinel(),
1367
+ scrollOffset: scrollOffsetValue(),
1368
+ epoch: collectionEpoch()
1369
+ }), ({ current, scrollOffset }) => {
1370
+ if (!current || typeof IntersectionObserver !== "function") return;
1371
+ const onLoadMore = local.onLoadMore;
1372
+ const margin = 100 * scrollOffset;
1373
+ const rootMargin = `0px ${margin}% ${margin}% ${margin}%`;
1374
+ const observer = new IntersectionObserver((entries) => {
1375
+ for (const entry of entries) if (entry.isIntersecting && onLoadMore) onLoadMore();
1376
+ }, { rootMargin });
1377
+ observer.observe(current);
1378
+ return () => observer.disconnect();
1379
+ });
1380
+ const isLoading = () => !!local.isLoading;
1381
+ const renderProps = useRenderProps({
1382
+ get children() {
1383
+ return local.children;
1384
+ },
1385
+ class: local.class,
1386
+ style: local.style,
1387
+ defaultClassName: "solidaria-Menu-loadMore"
1388
+ }, () => ({ isLoading: isLoading() }));
1389
+ return [(() => {
1390
+ var _el$12 = getNextElement(_tmpl$7);
1391
+ var _el$13 = _el$12.firstChild;
1392
+ ref(() => {
1393
+ return setSentinel;
1394
+ }, _el$13);
1395
+ return _el$12;
1396
+ })(), createComponent(Show, {
1397
+ get when() {
1398
+ return memo(() => {
1399
+ return !!isLoading();
1400
+ })() ? local.children : isLoading();
1401
+ },
1402
+ get children() {
1403
+ var _el$14 = getNextElement(_tmpl$5);
1404
+ ref(() => {
1405
+ return (el) => assignRef$1(local.ref, el);
1406
+ }, _el$14);
1407
+ spread(_el$14, [() => {
1408
+ return filterDOMProps(domProps, { global: true });
1409
+ }, {
1410
+ role: "menuitem",
1411
+ tabindex: -1,
1412
+ get "class"() {
1413
+ return renderProps.class();
1414
+ },
1415
+ get style() {
1416
+ return renderProps.style();
1417
+ },
1418
+ "data-loading": true
1419
+ }], true);
1420
+ insert(_el$14, scope(() => {
1421
+ return renderProps.renderChildren();
1422
+ }));
1423
+ runHydrationEvents();
1424
+ return _el$14;
1425
+ }
1426
+ })];
1427
+ }
1250
1428
  Menu.Item = MenuItem;
1429
+ Menu.LoadMoreItem = MenuLoadMoreItem;
1251
1430
  //#endregion
1252
- export { Menu, MenuButton, MenuContext, MenuItem, MenuSection, MenuStateContext, MenuTrigger, MenuTriggerContext, RootMenuTriggerStateContext, SubmenuTrigger };
1431
+ export { Menu, MenuContext, MenuItem, MenuLoadMoreItem, MenuSection, MenuStateContext, MenuTrigger, MenuTriggerContext, RootMenuTriggerStateContext, SubmenuTrigger };
1253
1432
 
1254
1433
  //# sourceMappingURL=Menu.js.map