@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/ComboBox.js CHANGED
@@ -1,9 +1,26 @@
1
- import { Provider, 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/ComboBox.tsx
13
+ import { DEFAULT_SLOT, OptionContent, Provider, dataAttr, filterDOMProps, useRenderProps } from "./utils.js";
2
14
  import { TextContext } from "./Text.js";
15
+ import { FieldErrorContext } from "./FieldError.js";
3
16
  import { SelectionIndicatorContext } from "./SelectionIndicator.js";
4
- import { className, createComponent, delegateEvents, effect, getNextElement, getNextMarker, insert, memo, mergeProps, runHydrationEvents, setAttribute, setProperty, spread, style, template, use } from "solid-js/web";
5
- import { For, Show, createContext, createEffect, createMemo, createSignal, onCleanup, splitProps, useContext } from "solid-js";
6
- import { createComboBox, createHover, createInteractOutside, createListBox, createOption, createScrollIntoViewOnFocus, getComboBoxData, isFocusVisible, mergeProps as mergeProps$2 } from "@proyecto-viviana/solidaria";
17
+ import { useCollectionRenderer, useCollectionRoot } from "./Collection.js";
18
+ import { i as VirtualizerItem } from "./Virtualizer2.js";
19
+ import { ListBoxLoadMoreItem } from "./ListBox.js";
20
+ import { className, createComponent, delegateEvents, effect, getNextElement, getNextMarker, insert, memo, readShallow, ref, runHydrationEvents, scope, setAttribute, setProperty, spread, style, template } from "@solidjs/web";
21
+ import { For, Show, createContext, createEffect, createMemo, createRenderEffect, createSignal, createTrackedEffect, onCleanup, useContext } from "solid-js";
22
+ import { createComboBox, createFilter, createFocusRing, createHover, createInteractOutside, createListBox, createOption, createPress, createScrollIntoViewOnFocus, getComboBoxData, isFocusVisible, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
23
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
7
24
  import { createComboBoxState, defaultContainsFilter } from "@proyecto-viviana/solid-stately";
8
25
  //#region src/ComboBox.tsx
9
26
  /**
@@ -12,8 +29,18 @@ import { createComboBoxState, defaultContainsFilter } from "@proyecto-viviana/so
12
29
  * A pre-wired headless combobox that combines state + aria hooks.
13
30
  * Port of react-aria-components/src/ComboBox.tsx
14
31
  */
15
- var _tmpl$ = /*#__PURE__*/ template(`<input type=hidden>`), _tmpl$2 = /*#__PURE__*/ template(`<div><!$><!/><!$><!/>`), _tmpl$3 = /*#__PURE__*/ template(`<label>`), _tmpl$4 = /*#__PURE__*/ template(`<span>`), _tmpl$5 = /*#__PURE__*/ template(`<input>`), _tmpl$6 = /*#__PURE__*/ template(`<button>`), _tmpl$7 = /*#__PURE__*/ template(`<div>`), _tmpl$8 = /*#__PURE__*/ template(`<div role=group aria-label="Selected items">`), _tmpl$9 = /*#__PURE__*/ template(`<span><!$><!/><button type=button class=solidaria-ComboBox-tag-remove tabindex=-1>&#215;`);
16
- function assignRef(ref, el) {
32
+ var _tmpl$ = /* @__PURE__ */ template(`<input type=hidden>`);
33
+ var _tmpl$2 = /* @__PURE__ */ template(`<div><!$><!/><!$><!/>`);
34
+ var _tmpl$3 = /* @__PURE__ */ template(`<label>`);
35
+ var _tmpl$4 = /* @__PURE__ */ template(`<span>`);
36
+ var _tmpl$5 = /* @__PURE__ */ template(`<input>`);
37
+ var _tmpl$6 = /* @__PURE__ */ template(`<button>`);
38
+ var _tmpl$7 = /* @__PURE__ */ template(`<div><!$><!/><!$><!/><!$><!/>`);
39
+ var _tmpl$8 = /* @__PURE__ */ template(`<div role=option data-empty-state style=display:contents>`);
40
+ var _tmpl$9 = /* @__PURE__ */ template(`<div>`);
41
+ var _tmpl$10 = /* @__PURE__ */ template(`<div role=group aria-label="Selected items">`);
42
+ var _tmpl$11 = /* @__PURE__ */ template(`<span><!$><!/><button type=button class=solidaria-ComboBox-tag-remove tabindex=-1>&#215;`);
43
+ function assignRef$1(ref, el) {
17
44
  if (!ref) return;
18
45
  if (typeof ref === "function") ref(el);
19
46
  else ref.current = el;
@@ -29,8 +56,9 @@ function callInputKeyDown(handler, event) {
29
56
  * A combobox combines a text input with a listbox, allowing users to filter a list of options.
30
57
  */
31
58
  function ComboBox(props) {
32
- const contextSlotProps = useContext(ComboBoxContext)?.slots?.[props.slot ?? "default"];
33
- const [local, stateProps, ariaProps] = splitProps(contextSlotProps ? mergeProps$2(contextSlotProps, props) : props, [
59
+ const contextSlotProps = useContext(ComboBoxContext)?.slots?.[typeof props.slot === "string" ? props.slot : "default"];
60
+ const mergedComboBoxProps = contextSlotProps ? mergeProps$1(contextSlotProps, props) : props;
61
+ const [local, stateProps, ariaProps] = splitProps(mergedComboBoxProps, [
34
62
  "class",
35
63
  "style",
36
64
  "slot",
@@ -65,14 +93,16 @@ function ComboBox(props) {
65
93
  "name",
66
94
  "formValue"
67
95
  ]);
68
- let inputRef = null;
96
+ const [inputEl, setInputEl] = createSignal(null, { ownedWrite: true });
69
97
  let buttonRef = null;
70
98
  let triggerRef = null;
71
99
  let listBoxRef = null;
100
+ const [popoverRef, setPopoverRef] = createSignal(null);
72
101
  const optionActions = /* @__PURE__ */ new Map();
73
102
  const runOptionAction = (key) => {
74
103
  optionActions.get(key)?.();
75
104
  };
105
+ const intlFilter = createFilter({ sensitivity: "base" });
76
106
  const state = createComboBoxState({
77
107
  get items() {
78
108
  return stateProps.items;
@@ -132,7 +162,7 @@ function ComboBox(props) {
132
162
  return stateProps.onOpenChange;
133
163
  },
134
164
  get defaultFilter() {
135
- return stateProps.defaultFilter;
165
+ return stateProps.defaultFilter ?? intlFilter().contains;
136
166
  },
137
167
  get allowsCustomValue() {
138
168
  return stateProps.allowsCustomValue;
@@ -167,8 +197,11 @@ function ComboBox(props) {
167
197
  ...comboBoxAriaProps(),
168
198
  get name() {
169
199
  return effectiveFormValue() === "text" ? stateProps.name : void 0;
200
+ },
201
+ get allowsCustomValue() {
202
+ return stateProps.allowsCustomValue;
170
203
  }
171
- }), state, () => inputRef, () => buttonRef, () => listBoxRef);
204
+ }), state, () => inputEl(), () => buttonRef, () => listBoxRef, () => popoverRef());
172
205
  const getInputProps = () => {
173
206
  const inputProps = comboBoxAria.inputProps;
174
207
  const originalOnKeyDown = inputProps.onKeyDown;
@@ -182,16 +215,13 @@ function ComboBox(props) {
182
215
  }
183
216
  };
184
217
  };
185
- const { isHovered, hoverProps } = createHover({ get isDisabled() {
186
- return ariaProps.isDisabled;
187
- } });
188
218
  const renderValues = createMemo(() => ({
189
219
  isOpen: comboBoxAria.isOpen(),
190
220
  isFocused: comboBoxAria.isFocused(),
191
221
  isFocusVisible: comboBoxAria.isFocusVisible(),
192
222
  isDisabled: !!ariaProps.isDisabled,
193
223
  isRequired: !!ariaProps.isRequired,
194
- isInvalid: !!ariaProps.isInvalid,
224
+ isInvalid: comboBoxAria.isInvalid,
195
225
  isReadOnly: !!ariaProps.isReadOnly,
196
226
  isSelected: state.selectedKey() != null,
197
227
  inputValue: state.inputValue()
@@ -204,10 +234,6 @@ function ComboBox(props) {
204
234
  const domProps = createMemo(() => {
205
235
  return filterDOMProps(ariaProps, { global: true });
206
236
  });
207
- const cleanHoverProps = () => {
208
- const { ref: _ref, ...rest } = hoverProps;
209
- return rest;
210
- };
211
237
  const ComboBoxChildren = () => typeof local.children === "function" ? local.children(renderValues()) : local.children;
212
238
  const textSlots = { slots: {
213
239
  get description() {
@@ -217,7 +243,19 @@ function ComboBox(props) {
217
243
  return comboBoxAria.errorMessageProps;
218
244
  }
219
245
  } };
220
- return createComponent(ComboBoxContext.Provider, {
246
+ const fieldErrorContext = {
247
+ get validation() {
248
+ return {
249
+ isInvalid: comboBoxAria.isInvalid,
250
+ validationErrors: comboBoxAria.validationErrors,
251
+ validationDetails: comboBoxAria.validationDetails
252
+ };
253
+ },
254
+ get errorMessageProps() {
255
+ return comboBoxAria.errorMessageProps;
256
+ }
257
+ };
258
+ return createComponent(ComboBoxContext, {
221
259
  get value() {
222
260
  return {
223
261
  state,
@@ -240,9 +278,9 @@ function ComboBox(props) {
240
278
  isFocused: comboBoxAria.isFocused,
241
279
  isFocusVisible: comboBoxAria.isFocusVisible,
242
280
  items: stateProps.items ?? stateProps.defaultItems ?? [],
243
- inputRef: () => inputRef,
281
+ inputRef: () => inputEl(),
244
282
  setInputRef: (el) => {
245
- inputRef = el;
283
+ setInputEl(el);
246
284
  },
247
285
  buttonRef: () => buttonRef,
248
286
  setButtonRef: (el) => {
@@ -256,6 +294,8 @@ function ComboBox(props) {
256
294
  setListBoxRef: (el) => {
257
295
  listBoxRef = el;
258
296
  },
297
+ popoverRef,
298
+ setPopoverRef,
259
299
  registerOptionAction: (key, action) => {
260
300
  if (action) optionActions.set(key, action);
261
301
  else optionActions.delete(key);
@@ -265,74 +305,77 @@ function ComboBox(props) {
265
305
  };
266
306
  },
267
307
  get children() {
268
- return createComponent(ComboBoxStateContext.Provider, {
308
+ return createComponent(ComboBoxStateContext, {
269
309
  value: state,
270
310
  get children() {
271
- var _el$ = getNextElement(_tmpl$2), _el$3 = _el$.firstChild, [_el$4, _co$] = getNextMarker(_el$3.nextSibling), _el$5 = _el$4.nextSibling, [_el$6, _co$2] = getNextMarker(_el$5.nextSibling);
272
- use((el) => {
273
- assignRef(local.ref, el);
274
- assignRef(local.rootRef, el);
311
+ var _el$ = getNextElement(_tmpl$2);
312
+ var _el$2 = _el$.firstChild;
313
+ var [_el$3, _el$4] = getNextMarker(_el$2.nextSibling);
314
+ var _el$6 = _el$3.nextSibling;
315
+ var [_el$7, _el$8] = getNextMarker(_el$6.nextSibling);
316
+ ref(() => {
317
+ return (el) => {
318
+ assignRef$1(local.ref, el);
319
+ assignRef$1(local.rootRef, el);
320
+ };
275
321
  }, _el$);
276
- spread(_el$, mergeProps(domProps, cleanHoverProps, {
277
- get ["class"]() {
322
+ spread(_el$, [domProps, {
323
+ get "class"() {
278
324
  return renderProps.class();
279
325
  },
280
326
  get style() {
281
327
  return renderProps.style();
282
328
  },
283
- get ["data-open"]() {
284
- return comboBoxAria.isOpen() || void 0;
329
+ get "data-open"() {
330
+ return dataAttr(comboBoxAria.isOpen());
285
331
  },
286
- get ["data-focused"]() {
287
- return comboBoxAria.isFocused() || void 0;
332
+ get "data-focused"() {
333
+ return dataAttr(comboBoxAria.isFocused());
288
334
  },
289
- get ["data-focus-visible"]() {
290
- return comboBoxAria.isFocusVisible() || void 0;
335
+ get "data-disabled"() {
336
+ return dataAttr(ariaProps.isDisabled);
291
337
  },
292
- get ["data-disabled"]() {
293
- return ariaProps.isDisabled || void 0;
338
+ get "data-required"() {
339
+ return dataAttr(ariaProps.isRequired);
294
340
  },
295
- get ["data-required"]() {
296
- return ariaProps.isRequired || void 0;
341
+ get "data-invalid"() {
342
+ return dataAttr(comboBoxAria.isInvalid);
297
343
  },
298
- get ["data-invalid"]() {
299
- return ariaProps.isInvalid || void 0;
300
- },
301
- get ["data-readonly"]() {
302
- return ariaProps.isReadOnly || void 0;
303
- },
304
- get ["data-hovered"]() {
305
- return isHovered() || void 0;
344
+ get "data-readonly"() {
345
+ return dataAttr(ariaProps.isReadOnly);
306
346
  },
307
347
  get slot() {
308
348
  return local.slot;
309
349
  }
310
- }), false, true);
350
+ }], true);
351
+ insert(_el$, createComponent(Provider, {
352
+ values: [[TextContext, textSlots], [FieldErrorContext, fieldErrorContext]],
353
+ get children() {
354
+ return createComponent(ComboBoxChildren, {});
355
+ }
356
+ }), _el$3, _el$4);
311
357
  insert(_el$, createComponent(Show, {
312
358
  get when() {
313
- return memo(() => !!stateProps.name)() && effectiveFormValue() === "key";
359
+ return memo(() => {
360
+ return !!stateProps.name;
361
+ })() ? effectiveFormValue() === "key" : stateProps.name;
314
362
  },
315
363
  get children() {
316
- var _el$2 = getNextElement(_tmpl$);
317
- effect((_p$) => {
318
- var _v$ = stateProps.name, _v$2 = ariaProps.form;
319
- _v$ !== _p$.e && setAttribute(_el$2, "name", _p$.e = _v$);
320
- _v$2 !== _p$.t && setAttribute(_el$2, "form", _p$.t = _v$2);
321
- return _p$;
322
- }, {
323
- e: void 0,
324
- t: void 0
364
+ var _el$5 = getNextElement(_tmpl$);
365
+ effect(() => {
366
+ return {
367
+ e: stateProps.name,
368
+ t: ariaProps.form,
369
+ a: state.selectedKey()?.toString() ?? ""
370
+ };
371
+ }, ({ e, t, a }, _p$) => {
372
+ e !== _p$?.e && setAttribute(_el$5, "name", e);
373
+ t !== _p$?.t && setAttribute(_el$5, "form", t);
374
+ setProperty(_el$5, "value", a);
325
375
  });
326
- effect(() => setProperty(_el$2, "value", state.selectedKey()?.toString() ?? ""));
327
- return _el$2;
376
+ return _el$5;
328
377
  }
329
- }), _el$4, _co$);
330
- insert(_el$, createComponent(Provider, {
331
- values: [[TextContext, textSlots]],
332
- get children() {
333
- return createComponent(ComboBoxChildren, {});
334
- }
335
- }), _el$6, _co$2);
378
+ }), _el$7, _el$8);
336
379
  runHydrationEvents();
337
380
  return _el$;
338
381
  }
@@ -356,20 +399,24 @@ function ComboBoxLabel(props) {
356
399
  const { ref: _ref, ...rest } = context.labelProps();
357
400
  return rest;
358
401
  };
359
- return (() => {
360
- var _el$7 = getNextElement(_tmpl$3);
361
- spread(_el$7, mergeProps(domProps, cleanLabelProps, {
362
- get ["class"]() {
402
+ var _el$9 = getNextElement(_tmpl$3);
403
+ spread(_el$9, [
404
+ domProps,
405
+ cleanLabelProps,
406
+ {
407
+ get "class"() {
363
408
  return local.class;
364
409
  },
365
410
  get style() {
366
411
  return local.style;
367
412
  }
368
- }), false, true);
369
- insert(_el$7, () => local.children);
370
- runHydrationEvents();
371
- return _el$7;
372
- })();
413
+ }
414
+ ], true);
415
+ insert(_el$9, scope(() => {
416
+ return local.children;
417
+ }));
418
+ runHydrationEvents();
419
+ return _el$9;
373
420
  }
374
421
  /**
375
422
  * Description element for a combobox.
@@ -387,20 +434,27 @@ function ComboBoxDescription(props) {
387
434
  const { ref: _ref, ...rest } = context.descriptionProps();
388
435
  return rest;
389
436
  };
390
- return (() => {
391
- var _el$8 = getNextElement(_tmpl$4);
392
- spread(_el$8, mergeProps(domProps, cleanDescriptionProps, {
393
- get ["class"]() {
437
+ var _el$10 = getNextElement(_tmpl$4);
438
+ spread(_el$10, [
439
+ domProps,
440
+ cleanDescriptionProps,
441
+ {
442
+ get slot() {
443
+ return local.slot ?? "description";
444
+ },
445
+ get "class"() {
394
446
  return local.class;
395
447
  },
396
448
  get style() {
397
449
  return local.style;
398
450
  }
399
- }), false, true);
400
- insert(_el$8, () => local.children);
401
- runHydrationEvents();
402
- return _el$8;
403
- })();
451
+ }
452
+ ], true);
453
+ insert(_el$10, scope(() => {
454
+ return local.children;
455
+ }));
456
+ runHydrationEvents();
457
+ return _el$10;
404
458
  }
405
459
  /**
406
460
  * Error message element for a combobox.
@@ -418,20 +472,27 @@ function ComboBoxErrorMessage(props) {
418
472
  const { ref: _ref, ...rest } = context.errorMessageProps();
419
473
  return rest;
420
474
  };
421
- return (() => {
422
- var _el$9 = getNextElement(_tmpl$4);
423
- spread(_el$9, mergeProps(domProps, cleanErrorMessageProps, {
424
- get ["class"]() {
475
+ var _el$11 = getNextElement(_tmpl$4);
476
+ spread(_el$11, [
477
+ domProps,
478
+ cleanErrorMessageProps,
479
+ {
480
+ get slot() {
481
+ return local.slot ?? "errorMessage";
482
+ },
483
+ get "class"() {
425
484
  return local.class;
426
485
  },
427
486
  get style() {
428
487
  return local.style;
429
488
  }
430
- }), false, true);
431
- insert(_el$9, () => local.children);
432
- runHydrationEvents();
433
- return _el$9;
434
- })();
489
+ }
490
+ ], true);
491
+ insert(_el$11, scope(() => {
492
+ return local.children;
493
+ }));
494
+ runHydrationEvents();
495
+ return _el$11;
435
496
  }
436
497
  /**
437
498
  * The text input for a combobox.
@@ -466,45 +527,47 @@ function ComboBoxInput(props) {
466
527
  defaultClassName: "solidaria-ComboBox-input"
467
528
  }, renderValues);
468
529
  const cleanInputProps = () => {
469
- const { ref: _ref1, value: _value, ...rest } = context.inputProps();
530
+ const { ref: _ref1, value: _value, "data-open": _dataOpen, ...rest } = context.inputProps();
470
531
  return rest;
471
532
  };
472
533
  const cleanHoverProps = () => {
473
534
  const { ref: _ref2, ...rest } = hoverProps;
474
535
  return rest;
475
536
  };
476
- return (() => {
477
- var _el$0 = getNextElement(_tmpl$5);
478
- use((el) => setInputRef(el), _el$0);
479
- spread(_el$0, mergeProps(domProps, cleanInputProps, cleanHoverProps, {
537
+ var _el$12 = getNextElement(_tmpl$5);
538
+ ref(() => {
539
+ return (el) => setInputRef(el);
540
+ }, _el$12);
541
+ spread(_el$12, [
542
+ domProps,
543
+ cleanInputProps,
544
+ cleanHoverProps,
545
+ {
480
546
  get value() {
481
547
  return state.inputValue();
482
548
  },
483
- get ["class"]() {
549
+ get "class"() {
484
550
  return renderProps.class();
485
551
  },
486
552
  get style() {
487
553
  return renderProps.style();
488
554
  },
489
- get ["data-open"]() {
490
- return isOpen() || void 0;
491
- },
492
- get ["data-focused"]() {
493
- return isFocused() || void 0;
555
+ get "data-focused"() {
556
+ return dataAttr(isFocused());
494
557
  },
495
- get ["data-focus-visible"]() {
496
- return isFocusVisible() || void 0;
558
+ get "data-focus-visible"() {
559
+ return dataAttr(isFocusVisible());
497
560
  },
498
- get ["data-hovered"]() {
499
- return isHovered() || void 0;
561
+ get "data-hovered"() {
562
+ return dataAttr(isHovered());
500
563
  },
501
- get ["data-disabled"]() {
502
- return state.isDisabled || void 0;
564
+ get "data-disabled"() {
565
+ return dataAttr(state.isDisabled);
503
566
  }
504
- }), false, false);
505
- runHydrationEvents();
506
- return _el$0;
507
- })();
567
+ }
568
+ ], false);
569
+ runHydrationEvents();
570
+ return _el$12;
508
571
  }
509
572
  function ComboBoxValue(props) {
510
573
  const context = useContext(ComboBoxContext);
@@ -537,25 +600,29 @@ function ComboBoxValue(props) {
537
600
  selectedText: selectedText(),
538
601
  state
539
602
  }));
540
- return (() => {
541
- var _el$1 = getNextElement(_tmpl$4);
542
- insert(_el$1, (() => {
543
- var _c$ = memo(() => !!props.children);
544
- return () => _c$() ? renderProps.renderChildren() : memo(() => !!isPlaceholder())() ? props.placeholder : textValue();
545
- })());
546
- effect((_p$) => {
547
- var _v$3 = renderProps.class(), _v$4 = renderProps.style(), _v$5 = isPlaceholder() || void 0;
548
- _v$3 !== _p$.e && className(_el$1, _p$.e = _v$3);
549
- _p$.t = style(_el$1, _v$4, _p$.t);
550
- _v$5 !== _p$.a && setAttribute(_el$1, "data-placeholder", _p$.a = _v$5);
551
- return _p$;
552
- }, {
553
- e: void 0,
554
- t: void 0,
555
- a: void 0
603
+ var _el$13 = getNextElement(_tmpl$4);
604
+ insert(_el$13, scope((() => {
605
+ var _c$ = memo(() => {
606
+ return !!props.children;
556
607
  });
557
- return _el$1;
558
- })();
608
+ return () => {
609
+ return _c$() ? renderProps.renderChildren() : memo(() => {
610
+ return !!isPlaceholder();
611
+ })() ? props.placeholder : textValue();
612
+ };
613
+ })()));
614
+ effect(() => {
615
+ return {
616
+ e: readShallow(renderProps.class()),
617
+ t: readShallow(renderProps.style()),
618
+ a: dataAttr(isPlaceholder())
619
+ };
620
+ }, ({ e, t, a }, _p$) => {
621
+ className(_el$13, e, _p$?.e);
622
+ style(_el$13, t, _p$?.t);
623
+ a !== _p$?.a && setAttribute(_el$13, "data-placeholder", a);
624
+ });
625
+ return _el$13;
559
626
  }
560
627
  /**
561
628
  * The trigger button for a combobox.
@@ -570,15 +637,22 @@ function ComboBoxButton(props) {
570
637
  ]);
571
638
  const context = useContext(ComboBoxContext);
572
639
  if (!context) throw new Error("ComboBoxButton must be used within a ComboBox");
573
- const { isOpen, isFocused, state, setButtonRef } = context;
640
+ const { isOpen, state, setButtonRef } = context;
574
641
  const { isHovered, hoverProps } = createHover({ get isDisabled() {
575
642
  return state.isDisabled;
576
643
  } });
644
+ const { isFocused, isFocusVisible, focusProps } = createFocusRing();
645
+ const { isPressed, pressProps } = createPress({
646
+ get isDisabled() {
647
+ return state.isDisabled || state.isReadOnly;
648
+ },
649
+ preventFocusOnPress: true
650
+ });
577
651
  const renderValues = createMemo(() => ({
578
652
  isOpen: isOpen(),
579
653
  isFocused: isFocused(),
580
654
  isHovered: isHovered(),
581
- isPressed: isOpen(),
655
+ isPressed: isPressed(),
582
656
  isDisabled: state.isDisabled
583
657
  }));
584
658
  const renderProps = useRenderProps({
@@ -590,46 +664,57 @@ function ComboBoxButton(props) {
590
664
  defaultClassName: "solidaria-ComboBox-button"
591
665
  }, renderValues);
592
666
  const cleanButtonProps = () => {
593
- const { ref: _ref1, ...rest } = context.buttonProps();
667
+ const { ref: _ref1, "data-open": _dataOpen, ...rest } = context.buttonProps();
594
668
  return rest;
595
669
  };
596
670
  const cleanHoverProps = () => {
597
671
  const { ref: _ref2, ...rest } = hoverProps;
598
672
  return rest;
599
673
  };
600
- return (() => {
601
- var _el$10 = getNextElement(_tmpl$6);
602
- use((el) => {
674
+ const cleanFocusProps = () => {
675
+ const { ref: _ref3, ...rest } = focusProps;
676
+ return rest;
677
+ };
678
+ const cleanPressProps = () => {
679
+ const { ref: _ref4, ...rest } = pressProps;
680
+ return rest;
681
+ };
682
+ const mergedButtonProps = () => mergeProps$1(domProps, cleanButtonProps(), cleanHoverProps(), cleanFocusProps(), cleanPressProps());
683
+ var _el$14 = getNextElement(_tmpl$6);
684
+ ref(() => {
685
+ return (el) => {
603
686
  setButtonRef(el);
604
- assignRef(local.ref, el);
605
- }, _el$10);
606
- spread(_el$10, mergeProps(domProps, cleanButtonProps, cleanHoverProps, {
607
- get ["class"]() {
608
- return renderProps.class();
609
- },
610
- get style() {
611
- return renderProps.style();
612
- },
613
- get ["data-open"]() {
614
- return isOpen() || void 0;
615
- },
616
- get ["data-pressed"]() {
617
- return isOpen() || void 0;
618
- },
619
- get ["data-focused"]() {
620
- return isFocused() || void 0;
621
- },
622
- get ["data-hovered"]() {
623
- return isHovered() || void 0;
624
- },
625
- get ["data-disabled"]() {
626
- return state.isDisabled || void 0;
627
- }
628
- }), false, true);
629
- insert(_el$10, () => renderProps.renderChildren());
630
- runHydrationEvents();
631
- return _el$10;
632
- })();
687
+ assignRef$1(local.ref, el);
688
+ };
689
+ }, _el$14);
690
+ spread(_el$14, [mergedButtonProps, {
691
+ get "class"() {
692
+ return renderProps.class();
693
+ },
694
+ get style() {
695
+ return renderProps.style();
696
+ },
697
+ get "data-pressed"() {
698
+ return dataAttr(isPressed());
699
+ },
700
+ get "data-focused"() {
701
+ return dataAttr(isFocused());
702
+ },
703
+ get "data-focus-visible"() {
704
+ return dataAttr(isFocusVisible());
705
+ },
706
+ get "data-hovered"() {
707
+ return dataAttr(isHovered());
708
+ },
709
+ get "data-disabled"() {
710
+ return dataAttr(state.isDisabled);
711
+ }
712
+ }], true);
713
+ insert(_el$14, scope(() => {
714
+ return renderProps.renderChildren();
715
+ }));
716
+ runHydrationEvents();
717
+ return _el$14;
633
718
  }
634
719
  /**
635
720
  * The listbox popup for a combobox.
@@ -639,12 +724,17 @@ function ComboBoxListBox(props) {
639
724
  "class",
640
725
  "style",
641
726
  "slot",
642
- "children"
727
+ "children",
728
+ "renderEmptyState",
729
+ "onLoadMore",
730
+ "isLoading",
731
+ "renderLoadMore",
732
+ "loadMoreClass"
643
733
  ]);
644
734
  const rawContext = useContext(ComboBoxContext);
645
735
  if (!rawContext) throw new Error("ComboBoxListBox must be used within a ComboBox");
646
736
  const context = rawContext;
647
- const { state: comboBoxState, listState, isOpen, inputRef, buttonRef, setListBoxRef } = context;
737
+ const { state: comboBoxState, listState, isOpen, inputRef, buttonRef, setListBoxRef, setPopoverRef } = context;
648
738
  const state = comboBoxState;
649
739
  let listBoxRef;
650
740
  createScrollIntoViewOnFocus({
@@ -660,14 +750,22 @@ function ComboBoxListBox(props) {
660
750
  const button = buttonRef();
661
751
  if (input?.contains(target)) return;
662
752
  if (button?.contains(target)) return;
753
+ if (target.closest("[role=\"listbox\"]") || target.closest("[role=\"option\"]")) return;
663
754
  if (isOpen()) state.close();
664
755
  },
665
756
  get isDisabled() {
666
757
  return !isOpen();
667
758
  }
668
759
  });
669
- const { listBoxProps } = createListBox(context.listBoxProps, listState);
670
- const renderValues = createMemo(() => ({ isFocused: state.isFocused() }));
760
+ const parentCollectionRenderer = useCollectionRenderer();
761
+ const CollectionRoot = useCollectionRoot();
762
+ const isVirtualized = () => parentCollectionRenderer?.isVirtualized === true;
763
+ const { listBoxProps } = createListBox(() => ({
764
+ ...context.listBoxProps(),
765
+ isVirtualized: parentCollectionRenderer?.isVirtualized
766
+ }), listState);
767
+ const { isFocused: isListBoxFocused, isFocusVisible: isListBoxFocusVisible, focusProps } = createFocusRing();
768
+ const renderValues = createMemo(() => ({ isFocused: isListBoxFocused() }));
671
769
  const renderProps = useRenderProps({
672
770
  class: local.class,
673
771
  style: local.style,
@@ -681,6 +779,10 @@ function ComboBoxListBox(props) {
681
779
  const { ref: _ref2, ...rest } = listBoxProps;
682
780
  return rest;
683
781
  };
782
+ const cleanFocusProps = () => {
783
+ const { ref: _ref3, ...rest } = focusProps;
784
+ return rest;
785
+ };
684
786
  const items = () => Array.from(state.collection());
685
787
  const getNodeValue = (node) => {
686
788
  if (node.value != null) return node.value;
@@ -689,71 +791,166 @@ function ComboBoxListBox(props) {
689
791
  return (candidate.key ?? candidate.id ?? index) === node.key;
690
792
  }) ?? null;
691
793
  };
794
+ const [listBoxEl, setListBoxEl] = createSignal(null, { ownedWrite: true });
795
+ createEffect(() => listBoxEl(), (el) => {
796
+ if (!el) {
797
+ setPopoverRef(null);
798
+ return;
799
+ }
800
+ const overlay = el.closest("[data-placement]");
801
+ setPopoverRef(overlay instanceof HTMLElement ? overlay : el);
802
+ });
692
803
  const setListBoxElement = (el) => {
693
804
  listBoxRef = el;
694
805
  setListBoxRef(el);
806
+ setListBoxEl(el);
807
+ onCleanup(() => {
808
+ listBoxRef = void 0;
809
+ setListBoxRef(null);
810
+ setListBoxEl(null);
811
+ setPopoverRef(null);
812
+ });
695
813
  };
696
- onCleanup(() => {
697
- setListBoxRef(null);
698
- });
699
814
  return createComponent(Show, {
700
815
  get when() {
701
816
  return isOpen();
702
817
  },
703
818
  get children() {
704
- var _el$11 = getNextElement(_tmpl$7);
705
- use(setListBoxElement, _el$11);
706
- spread(_el$11, mergeProps(domProps, cleanContextProps, cleanListBoxProps, {
707
- get ["class"]() {
708
- return renderProps.class();
709
- },
710
- get style() {
711
- return renderProps.style();
712
- },
713
- get ["data-focused"]() {
714
- return state.isFocused() || void 0;
819
+ var _el$15 = getNextElement(_tmpl$7);
820
+ var _el$16 = _el$15.firstChild;
821
+ var [_el$17, _el$18] = getNextMarker(_el$16.nextSibling);
822
+ var _el$19 = _el$17.nextSibling;
823
+ var [_el$20, _el$21] = getNextMarker(_el$19.nextSibling);
824
+ var _el$22 = _el$20.nextSibling;
825
+ var [_el$23, _el$24] = getNextMarker(_el$22.nextSibling);
826
+ ref(() => {
827
+ return setListBoxElement;
828
+ }, _el$15);
829
+ spread(_el$15, [
830
+ domProps,
831
+ cleanContextProps,
832
+ cleanListBoxProps,
833
+ cleanFocusProps,
834
+ {
835
+ get "class"() {
836
+ return renderProps.class();
837
+ },
838
+ get style() {
839
+ return renderProps.style();
840
+ },
841
+ get "data-focused"() {
842
+ return dataAttr(isListBoxFocused());
843
+ },
844
+ get "data-focus-visible"() {
845
+ return dataAttr(isListBoxFocusVisible());
846
+ },
847
+ get "data-empty"() {
848
+ return dataAttr(state.collection().size === 0);
849
+ },
850
+ "data-layout": "stack",
851
+ "data-orientation": "vertical"
715
852
  }
716
- }), false, true);
717
- insert(_el$11, createComponent(Show, {
718
- get when() {
719
- return local.children;
853
+ ], true);
854
+ insert(_el$15, createComponent(CollectionRoot, {
855
+ get collection() {
856
+ return items();
720
857
  },
721
- get fallback() {
722
- return createComponent(For, {
723
- get each() {
724
- return items();
858
+ scrollRef: () => listBoxEl(),
859
+ get children() {
860
+ return createComponent(Show, {
861
+ get when() {
862
+ return local.children;
725
863
  },
726
- children: (node) => createComponent(ComboBoxOption, {
727
- get id() {
728
- return node.key;
729
- },
730
- get children() {
731
- return node.textValue;
732
- }
733
- })
864
+ get fallback() {
865
+ return createComponent(For, {
866
+ get each() {
867
+ return items();
868
+ },
869
+ children: (node, index) => {
870
+ const item = createComponent(ComboBoxItem, {
871
+ get id() {
872
+ return node.key;
873
+ },
874
+ get children() {
875
+ return node.textValue;
876
+ }
877
+ });
878
+ return isVirtualized() ? createComponent(VirtualizerItem, {
879
+ get index() {
880
+ return index();
881
+ },
882
+ children: item
883
+ }) : item;
884
+ }
885
+ });
886
+ },
887
+ get children() {
888
+ return createComponent(For, {
889
+ get each() {
890
+ return items();
891
+ },
892
+ children: (node, index) => {
893
+ const value = getNodeValue(node);
894
+ const child = value != null ? local.children(value) : null;
895
+ return isVirtualized() ? createComponent(VirtualizerItem, {
896
+ get index() {
897
+ return index();
898
+ },
899
+ children: child
900
+ }) : child;
901
+ }
902
+ });
903
+ }
734
904
  });
905
+ }
906
+ }), _el$17, _el$18);
907
+ insert(_el$15, scope((() => {
908
+ var _c$2 = memo(() => {
909
+ return !!(state.collection().size === 0 && local.renderEmptyState);
910
+ });
911
+ return () => {
912
+ return _c$2() ? (() => {
913
+ var _el$25 = getNextElement(_tmpl$8);
914
+ insert(_el$25, scope(() => {
915
+ return local.renderEmptyState();
916
+ }));
917
+ return _el$25;
918
+ })() : null;
919
+ };
920
+ })()), _el$20, _el$21);
921
+ insert(_el$15, createComponent(Show, {
922
+ get when() {
923
+ return local.onLoadMore;
735
924
  },
736
925
  get children() {
737
- return createComponent(For, {
738
- get each() {
739
- return items();
926
+ return createComponent(ListBoxLoadMoreItem, {
927
+ get onLoadMore() {
928
+ return local.onLoadMore;
929
+ },
930
+ get isLoading() {
931
+ return local.isLoading;
740
932
  },
741
- children: (node) => {
742
- const value = getNodeValue(node);
743
- return value != null ? local.children(value) : null;
933
+ get "class"() {
934
+ return local.loadMoreClass;
935
+ },
936
+ get children() {
937
+ return local.renderLoadMore?.();
744
938
  }
745
939
  });
746
940
  }
747
- }));
941
+ }), _el$23, _el$24);
748
942
  runHydrationEvents();
749
- return _el$11;
943
+ return _el$15;
750
944
  }
751
945
  });
752
946
  }
753
947
  /**
754
- * An option in a combobox listbox.
948
+ * An item in a combobox listbox.
949
+ *
950
+ * Local addition: RAC ComboBox uses {@link ListBoxItem}. Prefer that when
951
+ * composing the headless ComboBox. This wrapper stays for existing call sites.
755
952
  */
756
- function ComboBoxOption(props) {
953
+ function ComboBoxItem(props) {
757
954
  const [local, ariaProps] = splitProps(props, [
758
955
  "class",
759
956
  "style",
@@ -766,20 +963,24 @@ function ComboBoxOption(props) {
766
963
  ]);
767
964
  const stateContext = useContext(ComboBoxStateContext);
768
965
  const comboBoxContext = useContext(ComboBoxContext);
769
- if (!stateContext || !comboBoxContext) throw new Error("ComboBoxOption must be used within a ComboBox");
966
+ if (!stateContext || !comboBoxContext) throw new Error("ComboBoxItem must be used within a ComboBox");
770
967
  const state = stateContext;
771
968
  const listState = comboBoxContext.listState;
772
- const [ref, setRef] = createSignal(null);
969
+ const [ref$1, setRef] = createSignal(null);
773
970
  const optionId = () => {
774
971
  const listBoxId = getComboBoxData(state)?.listBoxId;
775
972
  return listBoxId ? `${listBoxId}-option-${local.id}` : String(local.id);
776
973
  };
777
- createEffect(() => {
974
+ createTrackedEffect(() => {
975
+ const _s2Cleanups = [];
778
976
  const key = local.id;
779
977
  comboBoxContext?.registerOptionAction(key, local.onAction);
780
- onCleanup(() => {
978
+ _s2Cleanups.push(() => {
781
979
  comboBoxContext?.registerOptionAction(key, void 0);
782
980
  });
981
+ return () => {
982
+ for (const c of _s2Cleanups) c();
983
+ };
783
984
  });
784
985
  const optionAria = createOption({
785
986
  key: local.id,
@@ -808,7 +1009,7 @@ function ComboBoxOption(props) {
808
1009
  get onAction() {
809
1010
  return local.onAction;
810
1011
  }
811
- }, listState, () => ref());
1012
+ }, listState, () => ref$1());
812
1013
  const isOptionFocusVisible = () => optionAria.isFocused() && isFocusVisible();
813
1014
  const renderValues = createMemo(() => ({
814
1015
  isSelected: optionAria.isSelected(),
@@ -831,45 +1032,98 @@ function ComboBoxOption(props) {
831
1032
  const { ref: _ref1, ...rest } = optionAria.optionProps;
832
1033
  return rest;
833
1034
  };
834
- return createComponent(SelectionIndicatorContext.Provider, {
1035
+ const optionTextSlots = { slots: {
1036
+ get [DEFAULT_SLOT]() {
1037
+ return optionAria.labelProps;
1038
+ },
1039
+ get label() {
1040
+ return optionAria.labelProps;
1041
+ },
1042
+ get description() {
1043
+ return optionAria.descriptionProps;
1044
+ }
1045
+ } };
1046
+ createRenderEffect(() => ({
1047
+ el: ref$1(),
1048
+ labelId: optionAria.labelProps.id,
1049
+ descriptionId: optionAria.descriptionProps.id
1050
+ }), ({ el, labelId, descriptionId }) => {
1051
+ if (!el) return;
1052
+ const stamp = () => {
1053
+ if (labelId) {
1054
+ const label = el.querySelector("[slot='label']");
1055
+ if (label && label.id !== labelId) label.id = labelId;
1056
+ }
1057
+ if (descriptionId) {
1058
+ const description = el.querySelector("[slot='description']");
1059
+ if (description && description.id !== descriptionId) description.id = descriptionId;
1060
+ }
1061
+ };
1062
+ stamp();
1063
+ const observer = new MutationObserver(stamp);
1064
+ observer.observe(el, {
1065
+ childList: true,
1066
+ subtree: true
1067
+ });
1068
+ return () => observer.disconnect();
1069
+ });
1070
+ const selectionMode = () => listState.selectionMode();
1071
+ return createComponent(SelectionIndicatorContext, {
835
1072
  get value() {
836
1073
  return selectionIndicatorContext();
837
1074
  },
838
1075
  get children() {
839
- var _el$12 = getNextElement(_tmpl$7);
840
- use((el) => {
841
- setRef(el);
842
- assignRef(local.ref, el);
843
- }, _el$12);
844
- spread(_el$12, mergeProps(cleanOptionProps, {
845
- get ["class"]() {
1076
+ var _el$26 = getNextElement(_tmpl$9);
1077
+ ref(() => {
1078
+ return (el) => {
1079
+ setRef(el);
1080
+ assignRef$1(local.ref, el);
1081
+ };
1082
+ }, _el$26);
1083
+ spread(_el$26, [cleanOptionProps, {
1084
+ get "class"() {
846
1085
  return renderProps.class();
847
1086
  },
848
1087
  get style() {
849
1088
  return renderProps.style();
850
1089
  },
851
- get ["data-selected"]() {
852
- return optionAria.isSelected() || void 0;
1090
+ get "data-selected"() {
1091
+ return dataAttr(optionAria.isSelected());
1092
+ },
1093
+ get "data-focused"() {
1094
+ return dataAttr(optionAria.isFocused());
853
1095
  },
854
- get ["data-focused"]() {
855
- return optionAria.isFocused() || void 0;
1096
+ get "data-focus-visible"() {
1097
+ return dataAttr(isOptionFocusVisible());
856
1098
  },
857
- get ["data-focus-visible"]() {
858
- return isOptionFocusVisible() || void 0;
1099
+ get "data-pressed"() {
1100
+ return dataAttr(optionAria.isPressed());
859
1101
  },
860
- get ["data-pressed"]() {
861
- return optionAria.isPressed() || void 0;
1102
+ get "data-hovered"() {
1103
+ return dataAttr(optionAria.isHovered());
862
1104
  },
863
- get ["data-hovered"]() {
864
- return optionAria.isHovered() || void 0;
1105
+ get "data-disabled"() {
1106
+ return dataAttr(optionAria.isDisabled());
865
1107
  },
866
- get ["data-disabled"]() {
867
- return optionAria.isDisabled() || void 0;
1108
+ get "data-selection-mode"() {
1109
+ return selectionMode() === "none" ? void 0 : selectionMode();
1110
+ }
1111
+ }], true);
1112
+ insert(_el$26, createComponent(Provider, {
1113
+ values: [[TextContext, optionTextSlots]],
1114
+ get children() {
1115
+ return createComponent(OptionContent, {
1116
+ get render() {
1117
+ return renderProps.renderChildrenStable;
1118
+ },
1119
+ get labelProps() {
1120
+ return optionAria.labelProps;
1121
+ }
1122
+ });
868
1123
  }
869
- }), false, true);
870
- insert(_el$12, () => renderProps.renderChildren());
1124
+ }));
871
1125
  runHydrationEvents();
872
- return _el$12;
1126
+ return _el$26;
873
1127
  }
874
1128
  });
875
1129
  }
@@ -889,23 +1143,23 @@ function ComboBoxTagGroup(props) {
889
1143
  return items().length > 0;
890
1144
  },
891
1145
  get children() {
892
- var _el$13 = getNextElement(_tmpl$8);
893
- insert(_el$13, createComponent(For, {
1146
+ var _el$27 = getNextElement(_tmpl$10);
1147
+ insert(_el$27, createComponent(For, {
894
1148
  get each() {
895
1149
  return items();
896
1150
  },
897
1151
  children: (item) => props.children(item)
898
1152
  }));
899
- effect((_p$) => {
900
- var _v$6 = props.class ?? "solidaria-ComboBox-tagGroup", _v$7 = props.style;
901
- _v$6 !== _p$.e && className(_el$13, _p$.e = _v$6);
902
- _p$.t = style(_el$13, _v$7, _p$.t);
903
- return _p$;
904
- }, {
905
- e: void 0,
906
- t: void 0
1153
+ effect(() => {
1154
+ return {
1155
+ e: readShallow(props.class ?? "solidaria-ComboBox-tagGroup"),
1156
+ t: readShallow(props.style)
1157
+ };
1158
+ }, ({ e, t }, _p$) => {
1159
+ className(_el$27, e, _p$?.e);
1160
+ style(_el$27, t, _p$?.t);
907
1161
  });
908
- return _el$13;
1162
+ return _el$27;
909
1163
  }
910
1164
  });
911
1165
  }
@@ -920,31 +1174,38 @@ function ComboBoxTag(props) {
920
1174
  if (props.onRemove) props.onRemove();
921
1175
  else state.removeSelectedKey(props.item.key);
922
1176
  };
923
- return (() => {
924
- var _el$14 = getNextElement(_tmpl$9), _el$16 = _el$14.firstChild, [_el$17, _co$3] = getNextMarker(_el$16.nextSibling), _el$15 = _el$17.nextSibling;
925
- insert(_el$14, () => props.children ?? props.item.label, _el$17, _co$3);
926
- _el$15.$$click = handleRemove;
927
- effect((_p$) => {
928
- var _v$8 = props.class ?? "solidaria-ComboBox-tag", _v$9 = props.style, _v$0 = String(props.item.key), _v$1 = `Remove ${props.item.label}`;
929
- _v$8 !== _p$.e && className(_el$14, _p$.e = _v$8);
930
- _p$.t = style(_el$14, _v$9, _p$.t);
931
- _v$0 !== _p$.a && setAttribute(_el$14, "data-key", _p$.a = _v$0);
932
- _v$1 !== _p$.o && setAttribute(_el$15, "aria-label", _p$.o = _v$1);
933
- return _p$;
934
- }, {
935
- e: void 0,
936
- t: void 0,
937
- a: void 0,
938
- o: void 0
939
- });
940
- runHydrationEvents();
941
- return _el$14;
942
- })();
1177
+ var _el$28 = getNextElement(_tmpl$11);
1178
+ var _el$29 = _el$28.firstChild;
1179
+ var [_el$30, _el$31] = getNextMarker(_el$29.nextSibling);
1180
+ var _el$32 = _el$30.nextSibling;
1181
+ insert(_el$28, () => {
1182
+ return props.children ?? props.item.label;
1183
+ }, _el$30, _el$31);
1184
+ _el$32._$$click = handleRemove;
1185
+ effect(() => {
1186
+ return {
1187
+ e: readShallow(props.class ?? "solidaria-ComboBox-tag"),
1188
+ t: readShallow(props.style),
1189
+ a: String(props.item.key),
1190
+ o: `Remove ${props.item.label}`
1191
+ };
1192
+ }, ({ e, t, a, o }, _p$) => {
1193
+ className(_el$28, e, _p$?.e);
1194
+ style(_el$28, t, _p$?.t);
1195
+ a !== _p$?.a && setAttribute(_el$28, "data-key", a);
1196
+ o !== _p$?.o && setAttribute(_el$32, "aria-label", o);
1197
+ });
1198
+ runHydrationEvents();
1199
+ return _el$28;
943
1200
  }
944
1201
  ComboBox.Input = ComboBoxInput;
945
1202
  ComboBox.Button = ComboBoxButton;
946
1203
  ComboBox.ListBox = ComboBoxListBox;
947
- ComboBox.Option = ComboBoxOption;
1204
+ /**
1205
+ * @deprecated Use {@link ComboBoxItem}. Local addition — RAC ComboBox uses ListBoxItem. Removed in a future minor.
1206
+ */
1207
+ const ComboBoxOption = ComboBoxItem;
1208
+ ComboBox.Option = ComboBoxItem;
948
1209
  ComboBox.Label = ComboBoxLabel;
949
1210
  ComboBox.Description = ComboBoxDescription;
950
1211
  ComboBox.ErrorMessage = ComboBoxErrorMessage;
@@ -954,7 +1215,7 @@ function createComboBoxListStateAdapter(state) {
954
1215
  const selectedKeys = createMemo(() => {
955
1216
  if (state.selectionMode() === "multiple") return state.selectedKeys();
956
1217
  const key = state.selectedKey();
957
- return key != null ? new Set([key]) : /* @__PURE__ */ new Set();
1218
+ return key != null ? /* @__PURE__ */ new Set([key]) : /* @__PURE__ */ new Set();
958
1219
  });
959
1220
  const disabledKeys = createMemo(() => {
960
1221
  const keys = /* @__PURE__ */ new Set();
@@ -983,6 +1244,10 @@ function createComboBoxListStateAdapter(state) {
983
1244
  toggleSelection: (key) => state.select(key),
984
1245
  replaceSelection: (key) => state.select(key),
985
1246
  setSelectedKeys: (keys) => {
1247
+ if (state.selectionMode() === "multiple") {
1248
+ state.setSelectedKeys(new Set(keys));
1249
+ return;
1250
+ }
986
1251
  const first = keys[Symbol.iterator]().next().value;
987
1252
  state.setSelectedKey(first ?? null);
988
1253
  },
@@ -995,6 +1260,6 @@ function createComboBoxListStateAdapter(state) {
995
1260
  }
996
1261
  delegateEvents(["click"]);
997
1262
  //#endregion
998
- export { ComboBox, ComboBoxButton, ComboBoxContext, ComboBoxDescription, ComboBoxErrorMessage, ComboBoxInput, ComboBoxLabel, ComboBoxListBox, ComboBoxOption, ComboBoxStateContext, ComboBoxTag, ComboBoxTagGroup, ComboBoxValue, ComboBoxValueContext, defaultContainsFilter };
1263
+ export { ComboBox, ComboBoxButton, ComboBoxContext, ComboBoxDescription, ComboBoxErrorMessage, ComboBoxInput, ComboBoxItem, ComboBoxLabel, ComboBoxListBox, ComboBoxOption, ComboBoxStateContext, ComboBoxTag, ComboBoxTagGroup, ComboBoxValue, ComboBoxValueContext, defaultContainsFilter };
999
1264
 
1000
1265
  //# sourceMappingURL=ComboBox.js.map