@solid2-aria/components 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +58 -2
  3. package/dist/LICENSES/Apache-2.0.txt +201 -0
  4. package/dist/LICENSES/react-spectrum-NOTICE.txt +242 -0
  5. package/dist/NOTICE.txt +636 -0
  6. package/dist/browser/autocomplete.d.ts +35 -0
  7. package/dist/browser/autocomplete.js +69 -0
  8. package/dist/browser/autocomplete.js.map +1 -0
  9. package/dist/browser/breadcrumbs.d.ts +71 -0
  10. package/dist/browser/breadcrumbs.js +121 -0
  11. package/dist/browser/breadcrumbs.js.map +1 -0
  12. package/dist/browser/button.d.ts +36 -0
  13. package/dist/browser/button.js +156 -0
  14. package/dist/browser/button.js.map +1 -0
  15. package/dist/browser/calendar.d.ts +103 -0
  16. package/dist/browser/calendar.js +581 -0
  17. package/dist/browser/calendar.js.map +1 -0
  18. package/dist/browser/checkbox.d.ts +67 -0
  19. package/dist/browser/checkbox.js +345 -0
  20. package/dist/browser/checkbox.js.map +1 -0
  21. package/dist/browser/collection-dnd.d.ts +56 -0
  22. package/dist/browser/collection-dnd.js +156 -0
  23. package/dist/browser/collection-dnd.js.map +1 -0
  24. package/dist/browser/collection.d.ts +153 -0
  25. package/dist/browser/collection.js +106 -0
  26. package/dist/browser/collection.js.map +1 -0
  27. package/dist/browser/color-area.d.ts +21 -0
  28. package/dist/browser/color-area.js +94 -0
  29. package/dist/browser/color-area.js.map +1 -0
  30. package/dist/browser/color-field.d.ts +39 -0
  31. package/dist/browser/color-field.js +232 -0
  32. package/dist/browser/color-field.js.map +1 -0
  33. package/dist/browser/color-picker.d.ts +30 -0
  34. package/dist/browser/color-picker.js +84 -0
  35. package/dist/browser/color-picker.js.map +1 -0
  36. package/dist/browser/color-slider.d.ts +23 -0
  37. package/dist/browser/color-slider.js +132 -0
  38. package/dist/browser/color-slider.js.map +1 -0
  39. package/dist/browser/color-swatch-picker.d.ts +29 -0
  40. package/dist/browser/color-swatch-picker.js +131 -0
  41. package/dist/browser/color-swatch-picker.js.map +1 -0
  42. package/dist/browser/color-swatch.d.ts +19 -0
  43. package/dist/browser/color-swatch.js +42 -0
  44. package/dist/browser/color-swatch.js.map +1 -0
  45. package/dist/browser/color-thumb.d.ts +42 -0
  46. package/dist/browser/color-thumb.js +114 -0
  47. package/dist/browser/color-thumb.js.map +1 -0
  48. package/dist/browser/color-wheel.d.ts +29 -0
  49. package/dist/browser/color-wheel.js +109 -0
  50. package/dist/browser/color-wheel.js.map +1 -0
  51. package/dist/browser/combo-box.d.ts +113 -0
  52. package/dist/browser/combo-box.js +394 -0
  53. package/dist/browser/combo-box.js.map +1 -0
  54. package/dist/browser/create-drag-and-drop.d.ts +61 -0
  55. package/dist/browser/create-drag-and-drop.js +56 -0
  56. package/dist/browser/create-drag-and-drop.js.map +1 -0
  57. package/dist/browser/date-field.d.ts +71 -0
  58. package/dist/browser/date-field.js +508 -0
  59. package/dist/browser/date-field.js.map +1 -0
  60. package/dist/browser/date-picker.d.ts +50 -0
  61. package/dist/browser/date-picker.js +403 -0
  62. package/dist/browser/date-picker.js.map +1 -0
  63. package/dist/browser/dialog.d.ts +35 -0
  64. package/dist/browser/dialog.js +148 -0
  65. package/dist/browser/dialog.js.map +1 -0
  66. package/dist/browser/disclosure.d.ts +56 -0
  67. package/dist/browser/disclosure.js +180 -0
  68. package/dist/browser/disclosure.js.map +1 -0
  69. package/dist/browser/drag-and-drop.d.ts +43 -0
  70. package/dist/browser/drag-and-drop.js +66 -0
  71. package/dist/browser/drag-and-drop.js.map +1 -0
  72. package/dist/browser/drop-zone.d.ts +33 -0
  73. package/dist/browser/drop-zone.js +161 -0
  74. package/dist/browser/drop-zone.js.map +1 -0
  75. package/dist/browser/field-error.d.ts +28 -0
  76. package/dist/browser/field-error.js +60 -0
  77. package/dist/browser/field-error.js.map +1 -0
  78. package/dist/browser/file-trigger.d.ts +30 -0
  79. package/dist/browser/file-trigger.js +66 -0
  80. package/dist/browser/file-trigger.js.map +1 -0
  81. package/dist/browser/form.d.ts +28 -0
  82. package/dist/browser/form.js +64 -0
  83. package/dist/browser/form.js.map +1 -0
  84. package/dist/browser/grid-layout.d.ts +22 -0
  85. package/dist/browser/grid-layout.js +30 -0
  86. package/dist/browser/grid-layout.js.map +1 -0
  87. package/dist/browser/grid-list.d.ts +95 -0
  88. package/dist/browser/grid-list.js +609 -0
  89. package/dist/browser/grid-list.js.map +1 -0
  90. package/dist/browser/group.d.ts +35 -0
  91. package/dist/browser/group.js +92 -0
  92. package/dist/browser/group.js.map +1 -0
  93. package/dist/browser/header.d.ts +25 -0
  94. package/dist/browser/header.js +57 -0
  95. package/dist/browser/header.js.map +1 -0
  96. package/dist/browser/heading.d.ts +26 -0
  97. package/dist/browser/heading.js +53 -0
  98. package/dist/browser/heading.js.map +1 -0
  99. package/dist/browser/hidden-date-input.d.ts +34 -0
  100. package/dist/browser/hidden-date-input.js +84 -0
  101. package/dist/browser/hidden-date-input.js.map +1 -0
  102. package/dist/browser/index.d.ts +133 -0
  103. package/dist/browser/index.js +98 -0
  104. package/dist/browser/input.d.ts +33 -0
  105. package/dist/browser/input.js +94 -0
  106. package/dist/browser/input.js.map +1 -0
  107. package/dist/browser/intl/ar-AE.js +11 -0
  108. package/dist/browser/intl/ar-AE.js.map +1 -0
  109. package/dist/browser/intl/bg-BG.js +11 -0
  110. package/dist/browser/intl/bg-BG.js.map +1 -0
  111. package/dist/browser/intl/cs-CZ.js +11 -0
  112. package/dist/browser/intl/cs-CZ.js.map +1 -0
  113. package/dist/browser/intl/da-DK.js +11 -0
  114. package/dist/browser/intl/da-DK.js.map +1 -0
  115. package/dist/browser/intl/de-DE.js +11 -0
  116. package/dist/browser/intl/de-DE.js.map +1 -0
  117. package/dist/browser/intl/el-GR.js +11 -0
  118. package/dist/browser/intl/el-GR.js.map +1 -0
  119. package/dist/browser/intl/en-US.js +11 -0
  120. package/dist/browser/intl/en-US.js.map +1 -0
  121. package/dist/browser/intl/es-ES.js +11 -0
  122. package/dist/browser/intl/es-ES.js.map +1 -0
  123. package/dist/browser/intl/et-EE.js +11 -0
  124. package/dist/browser/intl/et-EE.js.map +1 -0
  125. package/dist/browser/intl/fi-FI.js +11 -0
  126. package/dist/browser/intl/fi-FI.js.map +1 -0
  127. package/dist/browser/intl/fr-FR.js +11 -0
  128. package/dist/browser/intl/fr-FR.js.map +1 -0
  129. package/dist/browser/intl/he-IL.js +11 -0
  130. package/dist/browser/intl/he-IL.js.map +1 -0
  131. package/dist/browser/intl/hr-HR.js +11 -0
  132. package/dist/browser/intl/hr-HR.js.map +1 -0
  133. package/dist/browser/intl/hu-HU.js +11 -0
  134. package/dist/browser/intl/hu-HU.js.map +1 -0
  135. package/dist/browser/intl/index.js +75 -0
  136. package/dist/browser/intl/index.js.map +1 -0
  137. package/dist/browser/intl/it-IT.js +11 -0
  138. package/dist/browser/intl/it-IT.js.map +1 -0
  139. package/dist/browser/intl/ja-JP.js +11 -0
  140. package/dist/browser/intl/ja-JP.js.map +1 -0
  141. package/dist/browser/intl/ko-KR.js +11 -0
  142. package/dist/browser/intl/ko-KR.js.map +1 -0
  143. package/dist/browser/intl/lt-LT.js +11 -0
  144. package/dist/browser/intl/lt-LT.js.map +1 -0
  145. package/dist/browser/intl/lv-LV.js +11 -0
  146. package/dist/browser/intl/lv-LV.js.map +1 -0
  147. package/dist/browser/intl/nb-NO.js +11 -0
  148. package/dist/browser/intl/nb-NO.js.map +1 -0
  149. package/dist/browser/intl/nl-NL.js +11 -0
  150. package/dist/browser/intl/nl-NL.js.map +1 -0
  151. package/dist/browser/intl/pl-PL.js +11 -0
  152. package/dist/browser/intl/pl-PL.js.map +1 -0
  153. package/dist/browser/intl/pt-BR.js +11 -0
  154. package/dist/browser/intl/pt-BR.js.map +1 -0
  155. package/dist/browser/intl/pt-PT.js +11 -0
  156. package/dist/browser/intl/pt-PT.js.map +1 -0
  157. package/dist/browser/intl/ro-RO.js +11 -0
  158. package/dist/browser/intl/ro-RO.js.map +1 -0
  159. package/dist/browser/intl/ru-RU.js +11 -0
  160. package/dist/browser/intl/ru-RU.js.map +1 -0
  161. package/dist/browser/intl/sk-SK.js +11 -0
  162. package/dist/browser/intl/sk-SK.js.map +1 -0
  163. package/dist/browser/intl/sl-SI.js +11 -0
  164. package/dist/browser/intl/sl-SI.js.map +1 -0
  165. package/dist/browser/intl/sr-SP.js +11 -0
  166. package/dist/browser/intl/sr-SP.js.map +1 -0
  167. package/dist/browser/intl/sv-SE.js +11 -0
  168. package/dist/browser/intl/sv-SE.js.map +1 -0
  169. package/dist/browser/intl/tr-TR.js +11 -0
  170. package/dist/browser/intl/tr-TR.js.map +1 -0
  171. package/dist/browser/intl/uk-UA.js +11 -0
  172. package/dist/browser/intl/uk-UA.js.map +1 -0
  173. package/dist/browser/intl/zh-CN.js +11 -0
  174. package/dist/browser/intl/zh-CN.js.map +1 -0
  175. package/dist/browser/intl/zh-TW.js +11 -0
  176. package/dist/browser/intl/zh-TW.js.map +1 -0
  177. package/dist/browser/keyboard.d.ts +25 -0
  178. package/dist/browser/keyboard.js +50 -0
  179. package/dist/browser/keyboard.js.map +1 -0
  180. package/dist/browser/label.d.ts +26 -0
  181. package/dist/browser/label.js +53 -0
  182. package/dist/browser/label.js.map +1 -0
  183. package/dist/browser/link.d.ts +34 -0
  184. package/dist/browser/link.js +92 -0
  185. package/dist/browser/link.js.map +1 -0
  186. package/dist/browser/list-box.d.ts +171 -0
  187. package/dist/browser/list-box.js +547 -0
  188. package/dist/browser/list-box.js.map +1 -0
  189. package/dist/browser/menu.d.ts +150 -0
  190. package/dist/browser/menu.js +597 -0
  191. package/dist/browser/menu.js.map +1 -0
  192. package/dist/browser/meter.d.ts +29 -0
  193. package/dist/browser/meter.js +73 -0
  194. package/dist/browser/meter.js.map +1 -0
  195. package/dist/browser/modal.d.ts +48 -0
  196. package/dist/browser/modal.js +190 -0
  197. package/dist/browser/modal.js.map +1 -0
  198. package/dist/browser/navigation-tree.d.ts +54 -0
  199. package/dist/browser/navigation-tree.js +233 -0
  200. package/dist/browser/navigation-tree.js.map +1 -0
  201. package/dist/browser/number-field.d.ts +36 -0
  202. package/dist/browser/number-field.js +179 -0
  203. package/dist/browser/number-field.js.map +1 -0
  204. package/dist/browser/overlay-arrow.d.ts +32 -0
  205. package/dist/browser/overlay-arrow.js +65 -0
  206. package/dist/browser/overlay-arrow.js.map +1 -0
  207. package/dist/browser/overlay-contexts.d.ts +22 -0
  208. package/dist/browser/overlay-contexts.js +24 -0
  209. package/dist/browser/overlay-contexts.js.map +1 -0
  210. package/dist/browser/popover.d.ts +50 -0
  211. package/dist/browser/popover.js +255 -0
  212. package/dist/browser/popover.js.map +1 -0
  213. package/dist/browser/preview-trigger.d.ts +25 -0
  214. package/dist/browser/preview-trigger.js +93 -0
  215. package/dist/browser/preview-trigger.js.map +1 -0
  216. package/dist/browser/progress-bar.d.ts +30 -0
  217. package/dist/browser/progress-bar.js +76 -0
  218. package/dist/browser/progress-bar.js.map +1 -0
  219. package/dist/browser/radio-group.d.ts +67 -0
  220. package/dist/browser/radio-group.js +336 -0
  221. package/dist/browser/radio-group.js.map +1 -0
  222. package/dist/browser/search-field.d.ts +34 -0
  223. package/dist/browser/search-field.js +156 -0
  224. package/dist/browser/search-field.js.map +1 -0
  225. package/dist/browser/select.d.ts +115 -0
  226. package/dist/browser/select.js +351 -0
  227. package/dist/browser/select.js.map +1 -0
  228. package/dist/browser/selection-indicator.d.ts +25 -0
  229. package/dist/browser/selection-indicator.js +40 -0
  230. package/dist/browser/selection-indicator.js.map +1 -0
  231. package/dist/browser/separator.d.ts +30 -0
  232. package/dist/browser/separator.js +68 -0
  233. package/dist/browser/separator.js.map +1 -0
  234. package/dist/browser/shared-element-transition.d.ts +35 -0
  235. package/dist/browser/shared-element-transition.js +141 -0
  236. package/dist/browser/shared-element-transition.js.map +1 -0
  237. package/dist/browser/sheet.d.ts +64 -0
  238. package/dist/browser/sheet.js +982 -0
  239. package/dist/browser/sheet.js.map +1 -0
  240. package/dist/browser/slider.d.ts +77 -0
  241. package/dist/browser/slider.js +318 -0
  242. package/dist/browser/slider.js.map +1 -0
  243. package/dist/browser/switch.d.ts +54 -0
  244. package/dist/browser/switch.js +240 -0
  245. package/dist/browser/switch.js.map +1 -0
  246. package/dist/browser/table-layout.d.ts +22 -0
  247. package/dist/browser/table-layout.js +31 -0
  248. package/dist/browser/table-layout.js.map +1 -0
  249. package/dist/browser/table.d.ts +184 -0
  250. package/dist/browser/table.js +1268 -0
  251. package/dist/browser/table.js.map +1 -0
  252. package/dist/browser/tabs.d.ts +194 -0
  253. package/dist/browser/tabs.js +378 -0
  254. package/dist/browser/tabs.js.map +1 -0
  255. package/dist/browser/tag-group.d.ts +112 -0
  256. package/dist/browser/tag-group.js +291 -0
  257. package/dist/browser/tag-group.js.map +1 -0
  258. package/dist/browser/text-area.d.ts +16 -0
  259. package/dist/browser/text-area.js +75 -0
  260. package/dist/browser/text-area.js.map +1 -0
  261. package/dist/browser/text-field.d.ts +31 -0
  262. package/dist/browser/text-field.js +152 -0
  263. package/dist/browser/text-field.js.map +1 -0
  264. package/dist/browser/text.d.ts +25 -0
  265. package/dist/browser/text.js +52 -0
  266. package/dist/browser/text.js.map +1 -0
  267. package/dist/browser/toast.d.ts +66 -0
  268. package/dist/browser/toast.js +226 -0
  269. package/dist/browser/toast.js.map +1 -0
  270. package/dist/browser/toggle-button-group.d.ts +32 -0
  271. package/dist/browser/toggle-button-group.js +74 -0
  272. package/dist/browser/toggle-button-group.js.map +1 -0
  273. package/dist/browser/toggle-button.d.ts +33 -0
  274. package/dist/browser/toggle-button.js +119 -0
  275. package/dist/browser/toggle-button.js.map +1 -0
  276. package/dist/browser/token-field.d.ts +124 -0
  277. package/dist/browser/token-field.js +277 -0
  278. package/dist/browser/token-field.js.map +1 -0
  279. package/dist/browser/toolbar.d.ts +28 -0
  280. package/dist/browser/toolbar.js +51 -0
  281. package/dist/browser/toolbar.js.map +1 -0
  282. package/dist/browser/tooltip.d.ts +44 -0
  283. package/dist/browser/tooltip.js +183 -0
  284. package/dist/browser/tooltip.js.map +1 -0
  285. package/dist/browser/tree-drop-target-delegate.d.ts +33 -0
  286. package/dist/browser/tree-drop-target-delegate.js +178 -0
  287. package/dist/browser/tree-drop-target-delegate.js.map +1 -0
  288. package/dist/browser/tree.d.ts +98 -0
  289. package/dist/browser/tree.js +699 -0
  290. package/dist/browser/tree.js.map +1 -0
  291. package/dist/browser/utils.d.ts +94 -0
  292. package/dist/browser/utils.js +173 -0
  293. package/dist/browser/utils.js.map +1 -0
  294. package/dist/browser/virtualizer.d.ts +33 -0
  295. package/dist/browser/virtualizer.js +179 -0
  296. package/dist/browser/virtualizer.js.map +1 -0
  297. package/dist/server/autocomplete.js +125 -0
  298. package/dist/server/autocomplete.js.map +1 -0
  299. package/dist/server/breadcrumbs.js +185 -0
  300. package/dist/server/breadcrumbs.js.map +1 -0
  301. package/dist/server/button.js +252 -0
  302. package/dist/server/button.js.map +1 -0
  303. package/dist/server/calendar.js +1054 -0
  304. package/dist/server/calendar.js.map +1 -0
  305. package/dist/server/checkbox.js +595 -0
  306. package/dist/server/checkbox.js.map +1 -0
  307. package/dist/server/collection-dnd.js +217 -0
  308. package/dist/server/collection-dnd.js.map +1 -0
  309. package/dist/server/collection.js +106 -0
  310. package/dist/server/collection.js.map +1 -0
  311. package/dist/server/color-area.js +142 -0
  312. package/dist/server/color-area.js.map +1 -0
  313. package/dist/server/color-field.js +394 -0
  314. package/dist/server/color-field.js.map +1 -0
  315. package/dist/server/color-picker.js +170 -0
  316. package/dist/server/color-picker.js.map +1 -0
  317. package/dist/server/color-slider.js +328 -0
  318. package/dist/server/color-slider.js.map +1 -0
  319. package/dist/server/color-swatch-picker.js +234 -0
  320. package/dist/server/color-swatch-picker.js.map +1 -0
  321. package/dist/server/color-swatch.js +52 -0
  322. package/dist/server/color-swatch.js.map +1 -0
  323. package/dist/server/color-thumb.js +132 -0
  324. package/dist/server/color-thumb.js.map +1 -0
  325. package/dist/server/color-wheel.js +188 -0
  326. package/dist/server/color-wheel.js.map +1 -0
  327. package/dist/server/combo-box.js +914 -0
  328. package/dist/server/combo-box.js.map +1 -0
  329. package/dist/server/create-drag-and-drop.js +56 -0
  330. package/dist/server/create-drag-and-drop.js.map +1 -0
  331. package/dist/server/date-field.js +1055 -0
  332. package/dist/server/date-field.js.map +1 -0
  333. package/dist/server/date-picker.js +1079 -0
  334. package/dist/server/date-picker.js.map +1 -0
  335. package/dist/server/dialog.js +295 -0
  336. package/dist/server/dialog.js.map +1 -0
  337. package/dist/server/disclosure.js +292 -0
  338. package/dist/server/disclosure.js.map +1 -0
  339. package/dist/server/drag-and-drop.js +66 -0
  340. package/dist/server/drag-and-drop.js.map +1 -0
  341. package/dist/server/drop-zone.js +241 -0
  342. package/dist/server/drop-zone.js.map +1 -0
  343. package/dist/server/field-error.js +90 -0
  344. package/dist/server/field-error.js.map +1 -0
  345. package/dist/server/file-trigger.js +98 -0
  346. package/dist/server/file-trigger.js.map +1 -0
  347. package/dist/server/form.js +116 -0
  348. package/dist/server/form.js.map +1 -0
  349. package/dist/server/grid-layout.js +30 -0
  350. package/dist/server/grid-layout.js.map +1 -0
  351. package/dist/server/grid-list.js +1015 -0
  352. package/dist/server/grid-list.js.map +1 -0
  353. package/dist/server/group.js +146 -0
  354. package/dist/server/group.js.map +1 -0
  355. package/dist/server/header.js +72 -0
  356. package/dist/server/header.js.map +1 -0
  357. package/dist/server/heading.js +68 -0
  358. package/dist/server/heading.js.map +1 -0
  359. package/dist/server/hidden-date-input.js +79 -0
  360. package/dist/server/hidden-date-input.js.map +1 -0
  361. package/dist/server/index.js +98 -0
  362. package/dist/server/input.js +134 -0
  363. package/dist/server/input.js.map +1 -0
  364. package/dist/server/intl/ar-AE.js +11 -0
  365. package/dist/server/intl/ar-AE.js.map +1 -0
  366. package/dist/server/intl/bg-BG.js +11 -0
  367. package/dist/server/intl/bg-BG.js.map +1 -0
  368. package/dist/server/intl/cs-CZ.js +11 -0
  369. package/dist/server/intl/cs-CZ.js.map +1 -0
  370. package/dist/server/intl/da-DK.js +11 -0
  371. package/dist/server/intl/da-DK.js.map +1 -0
  372. package/dist/server/intl/de-DE.js +11 -0
  373. package/dist/server/intl/de-DE.js.map +1 -0
  374. package/dist/server/intl/el-GR.js +11 -0
  375. package/dist/server/intl/el-GR.js.map +1 -0
  376. package/dist/server/intl/en-US.js +11 -0
  377. package/dist/server/intl/en-US.js.map +1 -0
  378. package/dist/server/intl/es-ES.js +11 -0
  379. package/dist/server/intl/es-ES.js.map +1 -0
  380. package/dist/server/intl/et-EE.js +11 -0
  381. package/dist/server/intl/et-EE.js.map +1 -0
  382. package/dist/server/intl/fi-FI.js +11 -0
  383. package/dist/server/intl/fi-FI.js.map +1 -0
  384. package/dist/server/intl/fr-FR.js +11 -0
  385. package/dist/server/intl/fr-FR.js.map +1 -0
  386. package/dist/server/intl/he-IL.js +11 -0
  387. package/dist/server/intl/he-IL.js.map +1 -0
  388. package/dist/server/intl/hr-HR.js +11 -0
  389. package/dist/server/intl/hr-HR.js.map +1 -0
  390. package/dist/server/intl/hu-HU.js +11 -0
  391. package/dist/server/intl/hu-HU.js.map +1 -0
  392. package/dist/server/intl/index.js +75 -0
  393. package/dist/server/intl/index.js.map +1 -0
  394. package/dist/server/intl/it-IT.js +11 -0
  395. package/dist/server/intl/it-IT.js.map +1 -0
  396. package/dist/server/intl/ja-JP.js +11 -0
  397. package/dist/server/intl/ja-JP.js.map +1 -0
  398. package/dist/server/intl/ko-KR.js +11 -0
  399. package/dist/server/intl/ko-KR.js.map +1 -0
  400. package/dist/server/intl/lt-LT.js +11 -0
  401. package/dist/server/intl/lt-LT.js.map +1 -0
  402. package/dist/server/intl/lv-LV.js +11 -0
  403. package/dist/server/intl/lv-LV.js.map +1 -0
  404. package/dist/server/intl/nb-NO.js +11 -0
  405. package/dist/server/intl/nb-NO.js.map +1 -0
  406. package/dist/server/intl/nl-NL.js +11 -0
  407. package/dist/server/intl/nl-NL.js.map +1 -0
  408. package/dist/server/intl/pl-PL.js +11 -0
  409. package/dist/server/intl/pl-PL.js.map +1 -0
  410. package/dist/server/intl/pt-BR.js +11 -0
  411. package/dist/server/intl/pt-BR.js.map +1 -0
  412. package/dist/server/intl/pt-PT.js +11 -0
  413. package/dist/server/intl/pt-PT.js.map +1 -0
  414. package/dist/server/intl/ro-RO.js +11 -0
  415. package/dist/server/intl/ro-RO.js.map +1 -0
  416. package/dist/server/intl/ru-RU.js +11 -0
  417. package/dist/server/intl/ru-RU.js.map +1 -0
  418. package/dist/server/intl/sk-SK.js +11 -0
  419. package/dist/server/intl/sk-SK.js.map +1 -0
  420. package/dist/server/intl/sl-SI.js +11 -0
  421. package/dist/server/intl/sl-SI.js.map +1 -0
  422. package/dist/server/intl/sr-SP.js +11 -0
  423. package/dist/server/intl/sr-SP.js.map +1 -0
  424. package/dist/server/intl/sv-SE.js +11 -0
  425. package/dist/server/intl/sv-SE.js.map +1 -0
  426. package/dist/server/intl/tr-TR.js +11 -0
  427. package/dist/server/intl/tr-TR.js.map +1 -0
  428. package/dist/server/intl/uk-UA.js +11 -0
  429. package/dist/server/intl/uk-UA.js.map +1 -0
  430. package/dist/server/intl/zh-CN.js +11 -0
  431. package/dist/server/intl/zh-CN.js.map +1 -0
  432. package/dist/server/intl/zh-TW.js +11 -0
  433. package/dist/server/intl/zh-TW.js.map +1 -0
  434. package/dist/server/keyboard.js +65 -0
  435. package/dist/server/keyboard.js.map +1 -0
  436. package/dist/server/label.js +68 -0
  437. package/dist/server/label.js.map +1 -0
  438. package/dist/server/link.js +138 -0
  439. package/dist/server/link.js.map +1 -0
  440. package/dist/server/list-box.js +906 -0
  441. package/dist/server/list-box.js.map +1 -0
  442. package/dist/server/menu.js +1188 -0
  443. package/dist/server/menu.js.map +1 -0
  444. package/dist/server/meter.js +101 -0
  445. package/dist/server/meter.js.map +1 -0
  446. package/dist/server/modal.js +360 -0
  447. package/dist/server/modal.js.map +1 -0
  448. package/dist/server/navigation-tree.js +316 -0
  449. package/dist/server/navigation-tree.js.map +1 -0
  450. package/dist/server/number-field.js +371 -0
  451. package/dist/server/number-field.js.map +1 -0
  452. package/dist/server/overlay-arrow.js +81 -0
  453. package/dist/server/overlay-arrow.js.map +1 -0
  454. package/dist/server/overlay-contexts.js +24 -0
  455. package/dist/server/overlay-contexts.js.map +1 -0
  456. package/dist/server/popover.js +455 -0
  457. package/dist/server/popover.js.map +1 -0
  458. package/dist/server/preview-trigger.js +153 -0
  459. package/dist/server/preview-trigger.js.map +1 -0
  460. package/dist/server/progress-bar.js +104 -0
  461. package/dist/server/progress-bar.js.map +1 -0
  462. package/dist/server/radio-group.js +586 -0
  463. package/dist/server/radio-group.js.map +1 -0
  464. package/dist/server/search-field.js +288 -0
  465. package/dist/server/search-field.js.map +1 -0
  466. package/dist/server/select.js +771 -0
  467. package/dist/server/select.js.map +1 -0
  468. package/dist/server/selection-indicator.js +54 -0
  469. package/dist/server/selection-indicator.js.map +1 -0
  470. package/dist/server/separator.js +91 -0
  471. package/dist/server/separator.js.map +1 -0
  472. package/dist/server/shared-element-transition.js +189 -0
  473. package/dist/server/shared-element-transition.js.map +1 -0
  474. package/dist/server/sheet.js +1197 -0
  475. package/dist/server/sheet.js.map +1 -0
  476. package/dist/server/slider.js +581 -0
  477. package/dist/server/slider.js.map +1 -0
  478. package/dist/server/switch.js +400 -0
  479. package/dist/server/switch.js.map +1 -0
  480. package/dist/server/table-layout.js +31 -0
  481. package/dist/server/table-layout.js.map +1 -0
  482. package/dist/server/table.js +2075 -0
  483. package/dist/server/table.js.map +1 -0
  484. package/dist/server/tabs.js +668 -0
  485. package/dist/server/tabs.js.map +1 -0
  486. package/dist/server/tag-group.js +538 -0
  487. package/dist/server/tag-group.js.map +1 -0
  488. package/dist/server/text-area.js +115 -0
  489. package/dist/server/text-area.js.map +1 -0
  490. package/dist/server/text-field.js +272 -0
  491. package/dist/server/text-field.js.map +1 -0
  492. package/dist/server/text.js +67 -0
  493. package/dist/server/text.js.map +1 -0
  494. package/dist/server/toast.js +449 -0
  495. package/dist/server/toast.js.map +1 -0
  496. package/dist/server/toggle-button-group.js +125 -0
  497. package/dist/server/toggle-button-group.js.map +1 -0
  498. package/dist/server/toggle-button.js +183 -0
  499. package/dist/server/toggle-button.js.map +1 -0
  500. package/dist/server/token-field.js +457 -0
  501. package/dist/server/token-field.js.map +1 -0
  502. package/dist/server/toolbar.js +67 -0
  503. package/dist/server/toolbar.js.map +1 -0
  504. package/dist/server/tooltip.js +331 -0
  505. package/dist/server/tooltip.js.map +1 -0
  506. package/dist/server/tree-drop-target-delegate.js +178 -0
  507. package/dist/server/tree-drop-target-delegate.js.map +1 -0
  508. package/dist/server/tree.js +1096 -0
  509. package/dist/server/tree.js.map +1 -0
  510. package/dist/server/utils.js +184 -0
  511. package/dist/server/utils.js.map +1 -0
  512. package/dist/server/virtualizer.js +254 -0
  513. package/dist/server/virtualizer.js.map +1 -0
  514. package/package.json +437 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.js","names":["<MenuContext\n value={mergeProps(\n merge(() => aria.menuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setScrollRef(element);\n },\n }\n )}\n >\n <OverlayTriggerStateContext value={state}>\n <RootMenuTriggerStateContext value={state}>\n <PopoverContext\n value={mergeProps(\n {\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"MenuTrigger\",\n triggerRef: ref,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n get offset() {\n return props.trigger === \"contextMenu\" ? 0 : undefined;\n },\n }\n )}\n >\n <PressResponder\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...merge(() => aria.menuTriggerProps ?? {})\n // oxlint-enable solid/reactivity\n }\n isPressed={state.isOpen}\n ref={(element) => {\n setRef(element);\n }}\n >\n {props.children}\n </PressResponder>\n </PopoverContext>\n </RootMenuTriggerStateContext>\n </OverlayTriggerStateContext>\n </MenuContext>","<OverlayTriggerStateContext value={state}>\n <RootMenuTriggerStateContext value={state}>\n <PopoverContext\n value={mergeProps(\n {\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"MenuTrigger\",\n triggerRef: ref,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n get offset() {\n return props.trigger === \"contextMenu\" ? 0 : undefined;\n },\n }\n )}\n >\n <PressResponder\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...merge(() => aria.menuTriggerProps ?? {})\n // oxlint-enable solid/reactivity\n }\n isPressed={state.isOpen}\n ref={(element) => {\n setRef(element);\n }}\n >\n {props.children}\n </PressResponder>\n </PopoverContext>\n </RootMenuTriggerStateContext>\n </OverlayTriggerStateContext>","value={state}","<RootMenuTriggerStateContext value={state}>\n <PopoverContext\n value={mergeProps(\n {\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"MenuTrigger\",\n triggerRef: ref,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n get offset() {\n return props.trigger === \"contextMenu\" ? 0 : undefined;\n },\n }\n )}\n >\n <PressResponder\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...merge(() => aria.menuTriggerProps ?? {})\n // oxlint-enable solid/reactivity\n }\n isPressed={state.isOpen}\n ref={(element) => {\n setRef(element);\n }}\n >\n {props.children}\n </PressResponder>\n </PopoverContext>\n </RootMenuTriggerStateContext>","<PopoverContext\n value={mergeProps(\n {\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"MenuTrigger\",\n triggerRef: ref,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n get offset() {\n return props.trigger === \"contextMenu\" ? 0 : undefined;\n },\n }\n )}\n >\n <PressResponder\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...merge(() => aria.menuTriggerProps ?? {})\n // oxlint-enable solid/reactivity\n }\n isPressed={state.isOpen}\n ref={(element) => {\n setRef(element);\n }}\n >\n {props.children}\n </PressResponder>\n </PopoverContext>","<PressResponder\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...merge(() => aria.menuTriggerProps ?? {})\n // oxlint-enable solid/reactivity\n }\n isPressed={state.isOpen}\n ref={(element) => {\n setRef(element);\n }}\n >\n {props.children}\n </PressResponder>","ref={(element) => {\n setRef(element);\n }}","<CollectionBuilder\n createCollection={() => new BaseCollection<T>()}\n content={<Collection {...props} />}\n >\n {(collection) => (\n <MenuInner props={props} collection={collection} menuRef={setRef} />\n )}\n </CollectionBuilder>","createCollection={() => new BaseCollection<T>()}","<Collection {...props} />","<MenuInner props={props} collection={collection} menuRef={setRef} />","menuRef={setRef}","<dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n render,\n merge(() => aria.menuProps ?? {})\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n data-empty={state.collection.size === 0 || undefined}\n >\n <MenuStateContext value={state}>\n <SelectionManagerContext value={untrack(() => state.selectionManager)}>\n <RootMenuTriggerStateContext value={trigger}>\n <SubmenuContext\n value={{\n parentMenuRef: ref,\n get shouldUseVirtualFocus() {\n return props.shouldUseVirtualFocus;\n },\n }}\n >\n <MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return props.shouldCloseOnSelect;\n },\n }}\n >\n <SelectableCollectionContext value={null}>\n <FieldInputContext value={null}>\n <SectionContext\n value={{\n name: \"MenuSection\",\n render: (\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ) =>\n MenuSectionInner(\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ),\n }}\n >\n <Root collection={state.collection} scrollRef={ref} />\n </SectionContext>\n </FieldInputContext>\n </SelectableCollectionContext>\n </MenuItemContext>\n </SubmenuContext>\n </RootMenuTriggerStateContext>\n </SelectionManagerContext>\n </MenuStateContext>\n {state.collection.size === 0 && props.renderEmptyState ? (\n <div role=\"menuitem\" style={{ display: \"contents\" }}>\n {props.renderEmptyState()}\n </div>\n ) : null}\n </dom.div>","dom.div","ref={(element: HTMLDivElement) => {\n setRef(element);\n }}","<MenuStateContext value={state}>\n <SelectionManagerContext value={untrack(() => state.selectionManager)}>\n <RootMenuTriggerStateContext value={trigger}>\n <SubmenuContext\n value={{\n parentMenuRef: ref,\n get shouldUseVirtualFocus() {\n return props.shouldUseVirtualFocus;\n },\n }}\n >\n <MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return props.shouldCloseOnSelect;\n },\n }}\n >\n <SelectableCollectionContext value={null}>\n <FieldInputContext value={null}>\n <SectionContext\n value={{\n name: \"MenuSection\",\n render: (\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ) =>\n MenuSectionInner(\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ),\n }}\n >\n <Root collection={state.collection} scrollRef={ref} />\n </SectionContext>\n </FieldInputContext>\n </SelectableCollectionContext>\n </MenuItemContext>\n </SubmenuContext>\n </RootMenuTriggerStateContext>\n </SelectionManagerContext>\n </MenuStateContext>","<SelectionManagerContext value={untrack(() => state.selectionManager)}>\n <RootMenuTriggerStateContext value={trigger}>\n <SubmenuContext\n value={{\n parentMenuRef: ref,\n get shouldUseVirtualFocus() {\n return props.shouldUseVirtualFocus;\n },\n }}\n >\n <MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return props.shouldCloseOnSelect;\n },\n }}\n >\n <SelectableCollectionContext value={null}>\n <FieldInputContext value={null}>\n <SectionContext\n value={{\n name: \"MenuSection\",\n render: (\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ) =>\n MenuSectionInner(\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ),\n }}\n >\n <Root collection={state.collection} scrollRef={ref} />\n </SectionContext>\n </FieldInputContext>\n </SelectableCollectionContext>\n </MenuItemContext>\n </SubmenuContext>\n </RootMenuTriggerStateContext>\n </SelectionManagerContext>","<RootMenuTriggerStateContext value={trigger}>\n <SubmenuContext\n value={{\n parentMenuRef: ref,\n get shouldUseVirtualFocus() {\n return props.shouldUseVirtualFocus;\n },\n }}\n >\n <MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return props.shouldCloseOnSelect;\n },\n }}\n >\n <SelectableCollectionContext value={null}>\n <FieldInputContext value={null}>\n <SectionContext\n value={{\n name: \"MenuSection\",\n render: (\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ) =>\n MenuSectionInner(\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ),\n }}\n >\n <Root collection={state.collection} scrollRef={ref} />\n </SectionContext>\n </FieldInputContext>\n </SelectableCollectionContext>\n </MenuItemContext>\n </SubmenuContext>\n </RootMenuTriggerStateContext>","value={trigger}","<SubmenuContext\n value={{\n parentMenuRef: ref,\n get shouldUseVirtualFocus() {\n return props.shouldUseVirtualFocus;\n },\n }}\n >\n <MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return props.shouldCloseOnSelect;\n },\n }}\n >\n <SelectableCollectionContext value={null}>\n <FieldInputContext value={null}>\n <SectionContext\n value={{\n name: \"MenuSection\",\n render: (\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ) =>\n MenuSectionInner(\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ),\n }}\n >\n <Root collection={state.collection} scrollRef={ref} />\n </SectionContext>\n </FieldInputContext>\n </SelectableCollectionContext>\n </MenuItemContext>\n </SubmenuContext>","value={{\n parentMenuRef: ref,\n get shouldUseVirtualFocus() {\n return props.shouldUseVirtualFocus;\n },\n }}","<MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return props.shouldCloseOnSelect;\n },\n }}\n >\n <SelectableCollectionContext value={null}>\n <FieldInputContext value={null}>\n <SectionContext\n value={{\n name: \"MenuSection\",\n render: (\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ) =>\n MenuSectionInner(\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ),\n }}\n >\n <Root collection={state.collection} scrollRef={ref} />\n </SectionContext>\n </FieldInputContext>\n </SelectableCollectionContext>\n </MenuItemContext>","value={{\n get shouldCloseOnSelect() {\n return props.shouldCloseOnSelect;\n },\n }}","<SelectableCollectionContext value={null}>\n <FieldInputContext value={null}>\n <SectionContext\n value={{\n name: \"MenuSection\",\n render: (\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ) =>\n MenuSectionInner(\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ),\n }}\n >\n <Root collection={state.collection} scrollRef={ref} />\n </SectionContext>\n </FieldInputContext>\n </SelectableCollectionContext>","value={null}","<FieldInputContext value={null}>\n <SectionContext\n value={{\n name: \"MenuSection\",\n render: (\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ) =>\n MenuSectionInner(\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ),\n }}\n >\n <Root collection={state.collection} scrollRef={ref} />\n </SectionContext>\n </FieldInputContext>","<SectionContext\n value={{\n name: \"MenuSection\",\n render: (\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ) =>\n MenuSectionInner(\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ),\n }}\n >\n <Root collection={state.collection} scrollRef={ref} />\n </SectionContext>","value={{\n name: \"MenuSection\",\n render: (\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ) =>\n MenuSectionInner(\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ),\n }}","<Root collection={state.collection} scrollRef={ref} />","scrollRef={ref}","{state.collection.size === 0 && props.renderEmptyState ? (\n <div role=\"menuitem\" style={{ display: \"contents\" }}>\n {props.renderEmptyState()}\n </div>\n ) : null}","{props.renderEmptyState()}","<dom.section\n {...mergeProps(\n omit(filterDOMProps(props, { global: true }), \"id\"),\n merge(() => aria.groupProps ?? {})\n )}\n ref={ref}\n render={props.render}\n class={props.class ?? defaultClass}\n style={props.style}\n >\n <HeaderContext\n value={mergeProps(\n merge(() => aria.headingProps ?? {}),\n { registerSlot: registerHeading }\n )}\n >\n <SelectionManagerContext value={untrack(manager)}>\n <MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return (\n props.shouldCloseOnSelect ?? context?.shouldCloseOnSelect\n );\n },\n }}\n >\n <Branch collection={state.collection} parent={node} />\n </MenuItemContext>\n </SelectionManagerContext>\n </HeaderContext>\n </dom.section>","dom.section","ref={ref}","<HeaderContext\n value={mergeProps(\n merge(() => aria.headingProps ?? {}),\n { registerSlot: registerHeading }\n )}\n >\n <SelectionManagerContext value={untrack(manager)}>\n <MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return (\n props.shouldCloseOnSelect ?? context?.shouldCloseOnSelect\n );\n },\n }}\n >\n <Branch collection={state.collection} parent={node} />\n </MenuItemContext>\n </SelectionManagerContext>\n </HeaderContext>","<SelectionManagerContext value={untrack(manager)}>\n <MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return (\n props.shouldCloseOnSelect ?? context?.shouldCloseOnSelect\n );\n },\n }}\n >\n <Branch collection={state.collection} parent={node} />\n </MenuItemContext>\n </SelectionManagerContext>","<MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return (\n props.shouldCloseOnSelect ?? context?.shouldCloseOnSelect\n );\n },\n }}\n >\n <Branch collection={state.collection} parent={node} />\n </MenuItemContext>","value={{\n get shouldCloseOnSelect() {\n return (\n props.shouldCloseOnSelect ?? context?.shouldCloseOnSelect\n );\n },\n }}","<Branch collection={state.collection} parent={node} />","parent={node}","<Element\n {...mergeProps(\n omit(filterDOMProps(props, { global: true }), \"id\", \"onClick\"),\n render,\n merge(() => aria.menuItemProps ?? {}),\n merge(() => hover.hoverProps ?? {})\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n data-selected={aria.isSelected || undefined}\n data-disabled={aria.isDisabled || undefined}\n data-hovered={hover.isHovered || undefined}\n data-focused={aria.isFocused || undefined}\n data-focus-visible={aria.isFocusVisible || undefined}\n data-pressed={aria.isPressed || undefined}\n data-has-submenu={values.hasSubmenu || undefined}\n data-open={values.isOpen || undefined}\n data-selection-mode={\n manager.selectionMode === \"none\" ? undefined : manager.selectionMode\n }\n >\n <TextContext\n value={{\n slots: {\n get [DEFAULT_SLOT]() {\n return aria.labelProps;\n },\n get description() {\n return aria.descriptionProps;\n },\n get label() {\n return aria.labelProps;\n },\n },\n }}\n >\n <KeyboardContext value={aria.keyboardShortcutProps}>\n <SelectionIndicatorContext\n value={{\n get isSelected() {\n return aria.isSelected;\n },\n }}\n >\n {render.children}\n </SelectionIndicatorContext>\n </KeyboardContext>\n </TextContext>\n </Element>","ref={(element: HTMLDivElement) => {\n setRef(element);\n }}","manager.selectionMode === \"none\" ? undefined : manager.selectionMode","<TextContext\n value={{\n slots: {\n get [DEFAULT_SLOT]() {\n return aria.labelProps;\n },\n get description() {\n return aria.descriptionProps;\n },\n get label() {\n return aria.labelProps;\n },\n },\n }}\n >\n <KeyboardContext value={aria.keyboardShortcutProps}>\n <SelectionIndicatorContext\n value={{\n get isSelected() {\n return aria.isSelected;\n },\n }}\n >\n {render.children}\n </SelectionIndicatorContext>\n </KeyboardContext>\n </TextContext>","value={{\n slots: {\n get [DEFAULT_SLOT]() {\n return aria.labelProps;\n },\n get description() {\n return aria.descriptionProps;\n },\n get label() {\n return aria.labelProps;\n },\n },\n }}","<KeyboardContext value={aria.keyboardShortcutProps}>\n <SelectionIndicatorContext\n value={{\n get isSelected() {\n return aria.isSelected;\n },\n }}\n >\n {render.children}\n </SelectionIndicatorContext>\n </KeyboardContext>","<SelectionIndicatorContext\n value={{\n get isSelected() {\n return aria.isSelected;\n },\n }}\n >\n {render.children}\n </SelectionIndicatorContext>","value={{\n get isSelected() {\n return aria.isSelected;\n },\n }}","<MenuItemContext\n value={mergeProps(\n merge(() => aria.submenuTriggerProps ?? {}),\n {\n onAction: undefined,\n ref: (element: HTMLDivElement) => {\n setItemRef(element);\n },\n }\n )}\n >\n <MenuContext\n value={mergeProps(\n merge(() => aria.submenuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setSubmenuRef(element);\n },\n }\n )}\n >\n <OverlayTriggerStateContext value={trigger}>\n <PopoverContext\n value={mergeProps(\n merge(() => aria.popoverProps ?? {}),\n {\n get \"aria-labelledby\"() {\n return aria.submenuProps[\"aria-labelledby\"];\n },\n get placement(): \"end top\" {\n return \"end top\";\n },\n trigger: \"SubmenuTrigger\",\n triggerRef: itemRef,\n }\n )}\n >\n <Branch collection={state.collection} parent={item} />\n <SubmenuCaptureContext value={true}>\n {props.renderPopover()}\n </SubmenuCaptureContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </MenuContext>\n </MenuItemContext>","<MenuContext\n value={mergeProps(\n merge(() => aria.submenuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setSubmenuRef(element);\n },\n }\n )}\n >\n <OverlayTriggerStateContext value={trigger}>\n <PopoverContext\n value={mergeProps(\n merge(() => aria.popoverProps ?? {}),\n {\n get \"aria-labelledby\"() {\n return aria.submenuProps[\"aria-labelledby\"];\n },\n get placement(): \"end top\" {\n return \"end top\";\n },\n trigger: \"SubmenuTrigger\",\n triggerRef: itemRef,\n }\n )}\n >\n <Branch collection={state.collection} parent={item} />\n <SubmenuCaptureContext value={true}>\n {props.renderPopover()}\n </SubmenuCaptureContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </MenuContext>","<OverlayTriggerStateContext value={trigger}>\n <PopoverContext\n value={mergeProps(\n merge(() => aria.popoverProps ?? {}),\n {\n get \"aria-labelledby\"() {\n return aria.submenuProps[\"aria-labelledby\"];\n },\n get placement(): \"end top\" {\n return \"end top\";\n },\n trigger: \"SubmenuTrigger\",\n triggerRef: itemRef,\n }\n )}\n >\n <Branch collection={state.collection} parent={item} />\n <SubmenuCaptureContext value={true}>\n {props.renderPopover()}\n </SubmenuCaptureContext>\n </PopoverContext>\n </OverlayTriggerStateContext>","<PopoverContext\n value={mergeProps(\n merge(() => aria.popoverProps ?? {}),\n {\n get \"aria-labelledby\"() {\n return aria.submenuProps[\"aria-labelledby\"];\n },\n get placement(): \"end top\" {\n return \"end top\";\n },\n trigger: \"SubmenuTrigger\",\n triggerRef: itemRef,\n }\n )}\n >\n <Branch collection={state.collection} parent={item} />\n <SubmenuCaptureContext value={true}>\n {props.renderPopover()}\n </SubmenuCaptureContext>\n </PopoverContext>","<Branch collection={state.collection} parent={item} />","parent={item}","<SubmenuCaptureContext value={true}>\n {props.renderPopover()}\n </SubmenuCaptureContext>","value={true}","ref={(element: HTMLDivElement) => {\n setSentinel(element);\n }}","<Show when={props.isLoading}>\n <dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={(element: HTMLDivElement) => {\n assignRef(forwardedRef, element);\n }}\n role=\"menuitem\"\n tabindex={-1}\n >\n {render.children}\n </dom.div>\n </Show>","<dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={(element: HTMLDivElement) => {\n assignRef(forwardedRef, element);\n }}\n role=\"menuitem\"\n tabindex={-1}\n >\n {render.children}\n </dom.div>","ref={(element: HTMLDivElement) => {\n assignRef(forwardedRef, element);\n }}","role=\"menuitem\"","tabindex={-1}","<MenuSectionCollection\n {...props}\n ref={(element: HTMLElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n />","ref={(element: HTMLElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}","<MenuItemCollection\n {...props}\n ref={(element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n />","ref={(element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}","<SubmenuTriggerCollection\n {...props}\n renderPopover={() => props.children[1]}\n ref={(element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n />","renderPopover={() => props.children[1]}","<MenuLoadMoreItemCollection\n {...props}\n ref={(element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n />","mergeProps","_$createComponent","_$mergeProps","_$memo","_$getNextElement","_$scope","_$applyRef"],"sources":["../../src/menu.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n/*\n * Derived from Adobe React Spectrum: packages/react-aria-components/src/Menu.tsx.\n * Modified for Solid Aria: adapted collection ownership, contexts, accessibility primitives, and reactive properties for Solid 2; uses Solid class props and press responders for custom triggers.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport {\n ItemNode,\n SectionNode,\n LoaderNode,\n CollectionNode,\n BaseCollection,\n} from \"@solid2-aria/core/collections/base-collection\";\nimport {\n Collection,\n CollectionBuilder,\n createLeafComponent,\n createBranchComponent,\n} from \"@solid2-aria/core/collections/collection-builder\";\nimport { createIsHidden } from \"@solid2-aria/core/collections/hidden\";\nimport { createHover } from \"@solid2-aria/core/interactions/create-hover\";\nimport { PressResponder } from \"@solid2-aria/core/interactions/press-responder\";\nimport { createMenu } from \"@solid2-aria/core/menu/create-menu\";\nimport type { AriaMenuProps } from \"@solid2-aria/core/menu/create-menu\";\nimport { createMenuItem } from \"@solid2-aria/core/menu/create-menu-item\";\nimport { createMenuSection } from \"@solid2-aria/core/menu/create-menu-section\";\nimport { createMenuTrigger } from \"@solid2-aria/core/menu/create-menu-trigger\";\nimport { createSubmenuTrigger } from \"@solid2-aria/core/menu/create-submenu-trigger\";\nimport { createLoadMoreSentinel } from \"@solid2-aria/core/utils/create-load-more-sentinel\";\nimport type { LoadMoreSentinelProps } from \"@solid2-aria/core/utils/create-load-more-sentinel\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { isTruthy } from \"@solid2-aria/core/utils/truthy\";\nimport { createMenuTriggerState } from \"@solid2-aria/stately/menu/create-menu-trigger-state\";\nimport type {\n MenuTriggerProps as BaseMenuTriggerProps,\n RootMenuTriggerState,\n} from \"@solid2-aria/stately/menu/create-menu-trigger-state\";\nimport { createSubmenuTriggerState } from \"@solid2-aria/stately/menu/create-submenu-trigger-state\";\nimport { createMultipleSelectionState } from \"@solid2-aria/stately/selection/create-multiple-selection-state\";\nimport { SelectionManager } from \"@solid2-aria/stately/selection/selection-manager\";\nimport type { MultipleSelectionState } from \"@solid2-aria/stately/selection/types\";\nimport { createTreeState } from \"@solid2-aria/stately/tree/create-tree-state\";\nimport type { TreeState } from \"@solid2-aria/stately/tree/create-tree-state\";\nimport type {\n FocusableElement,\n FocusEvents,\n HoverEvents,\n Key,\n LinkDOMProps,\n MultipleSelection,\n PressEvents,\n Node,\n FocusStrategy,\n} from \"@solid2-aria/types-shared\";\nimport type { GlobalDOMAttributes } from \"@solid2-aria/types-shared-web\";\nimport { dynamic } from \"@solidjs/web\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n merge,\n untrack,\n createSignal,\n createContext,\n createMemo,\n useContext,\n omit,\n Show,\n} from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\n\nimport { SelectableCollectionContext, FieldInputContext } from \"./autocomplete\";\nimport type { SelectableCollectionContextValue } from \"./autocomplete\";\nimport { CollectionRendererContext, SectionContext } from \"./collection\";\nimport type {\n CollectionProps,\n ItemRenderProps,\n SectionProps,\n} from \"./collection\";\nimport { OverlayTriggerStateContext } from \"./dialog\";\nimport { HeaderContext } from \"./header\";\nimport { KeyboardContext } from \"./keyboard\";\nimport { PopoverContext } from \"./popover\";\nimport { SelectionIndicatorContext } from \"./selection-indicator\";\nimport { TextContext } from \"./text\";\nimport {\n dom,\n createContextProps,\n createRenderProps,\n createSlot,\n DEFAULT_SLOT,\n createSlottedContext,\n assignRef,\n} from \"./utils\";\nimport type {\n Ref,\n ClassOrFunction,\n DOMRenderProps,\n PossibleLinkDOMRenderProps,\n RenderProps,\n SlotProps,\n StyleProps,\n StyleRenderProps,\n ContextValue,\n} from \"./utils\";\n\nexport const MenuContext =\n createContext<ContextValue<MenuProps<unknown>, HTMLDivElement>>(null);\n\nexport const MenuStateContext = createContext<TreeState<unknown> | null>(null);\n\nexport const RootMenuTriggerStateContext =\n createContext<RootMenuTriggerState | null>(null);\n\nconst SelectionManagerContext = createContext<SelectionManager | null>(null);\n\nconst MenuItemContext = createContext<\n ContextValue<\n MenuItemProps<unknown> & {\n isOpen?: boolean;\n \"aria-haspopup\"?: \"menu\" | \"dialog\";\n \"aria-expanded\"?: boolean | \"true\" | \"false\";\n \"aria-controls\"?: string;\n },\n HTMLDivElement\n >\n>(null);\n\nconst SubmenuContext = createContext<{\n parentMenuRef: Accessor<HTMLElement | null>;\n shouldUseVirtualFocus?: boolean;\n} | null>(null);\n\nconst SubmenuCaptureContext = createContext(false);\n\nexport interface MenuTriggerProps extends BaseMenuTriggerProps {\n children: JSX.Element;\n}\n\nexport interface SubmenuTriggerProps {\n /**\n * The contents of the SubmenuTrigger. The first child should be an Item (the trigger) and the\n * second child should be the Popover (for the submenu).\n */\n children: JSX.Element[];\n /**\n * The delay time in milliseconds for the submenu to appear after hovering over the trigger.\n *\n * @default 200\n */\n delay?: number;\n}\n\nexport interface MenuRenderProps {\n /**\n * Whether the menu has no items and should display its empty state.\n *\n * @selector [data-empty]\n */\n isEmpty: boolean;\n}\n\nexport interface MenuProps<T>\n extends\n Omit<AriaMenuProps<T>, \"children\">,\n CollectionProps<T>,\n StyleRenderProps<MenuRenderProps>,\n SlotProps,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [class](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Menu'\n */\n class?: ClassOrFunction<MenuRenderProps>;\n /** Provides content to display when there are no items in the menu. */\n renderEmptyState?: () => JSX.Element;\n /** Whether the menu should close when the menu item is selected. */\n shouldCloseOnSelect?: boolean;\n}\n\nexport interface MenuSectionProps<T>\n extends\n SectionProps<T>,\n Omit<MultipleSelection, \"disabledKeys\">,\n DOMRenderProps<\"section\", undefined> {\n /**\n * The CSS [class](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class) for the\n * element.\n *\n * @default 'react-aria-MenuSection'\n */\n class?: JSX.ClassValue;\n /** Whether the menu should close when the menu item is selected. */\n shouldCloseOnSelect?: boolean;\n}\n\nexport interface MenuItemRenderProps extends ItemRenderProps {\n /**\n * Whether the item has a submenu.\n *\n * @selector [data-has-submenu]\n */\n hasSubmenu: boolean;\n /**\n * Whether the item's submenu is open.\n *\n * @selector [data-open]\n */\n isOpen: boolean;\n}\n\nexport interface MenuItemProps<T = object>\n extends\n Omit<RenderProps<MenuItemRenderProps>, \"render\">,\n PossibleLinkDOMRenderProps<\"div\", MenuItemRenderProps>,\n LinkDOMProps,\n HoverEvents,\n FocusEvents,\n PressEvents,\n Omit<GlobalDOMAttributes<HTMLDivElement>, \"onClick\"> {\n /**\n * The CSS [class](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-MenuItem'\n */\n class?: ClassOrFunction<MenuItemRenderProps>;\n /** The unique id of the item. */\n id?: Key;\n /**\n * The object value that this item represents. When using dynamic collections, this is set\n * automatically.\n */\n value?: T;\n /** A string representation of the item's contents, used for features like typeahead. */\n textValue?: string;\n /** An accessibility label for this item. */\n \"aria-label\"?: string;\n /** Whether the item is disabled. */\n isDisabled?: boolean;\n /** Handler that is called when the item is selected. */\n onAction?: () => void;\n /** Whether the menu should close when the menu item is selected. */\n shouldCloseOnSelect?: boolean;\n}\n\nexport interface MenuLoadMoreItemProps\n extends\n Omit<LoadMoreSentinelProps, \"collection\" | \"direction\">,\n StyleProps,\n DOMRenderProps<\"div\", undefined>,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [class](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class) for the\n * element.\n *\n * @default 'react-aria-MenuLoadingIndicator'\n */\n class?: JSX.ClassValue;\n /**\n * The load more spinner to render when loading additional items.\n */\n children?: JSX.Element;\n /**\n * Whether or not the loading spinner should be rendered or not.\n */\n isLoading?: boolean;\n}\n\nexport function MenuTrigger(props: MenuTriggerProps): JSX.Element {\n const [scrollRef, setScrollRef] = createSignal<HTMLDivElement | null>(null, {\n ownedWrite: true,\n });\n\n if (createIsHidden()) {\n // oxlint-disable-next-line solid/components-return-once -- Static collection traversal and context registration are fixed when the owner is created.\n return null;\n }\n\n const state = createMenuTriggerState(props);\n\n const [ref, setRef] = createSignal<FocusableElement | null>(null, {\n ownedWrite: true,\n });\n\n const aria = createMenuTrigger(\n mergeProps(props, {\n get type(): \"menu\" {\n return \"menu\";\n },\n }),\n state,\n ref\n );\n\n return (\n <MenuContext\n value={mergeProps(\n merge(() => aria.menuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setScrollRef(element);\n },\n }\n )}\n >\n <OverlayTriggerStateContext value={state}>\n <RootMenuTriggerStateContext value={state}>\n <PopoverContext\n value={mergeProps(\n {\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"MenuTrigger\",\n triggerRef: ref,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n get offset() {\n return props.trigger === \"contextMenu\" ? 0 : undefined;\n },\n }\n )}\n >\n <PressResponder\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...merge(() => aria.menuTriggerProps ?? {})\n // oxlint-enable solid/reactivity\n }\n isPressed={state.isOpen}\n ref={(element) => {\n setRef(element);\n }}\n >\n {props.children}\n </PressResponder>\n </PopoverContext>\n </RootMenuTriggerStateContext>\n </OverlayTriggerStateContext>\n </MenuContext>\n );\n}\n\nexport function Menu<T extends object>(\n input: MenuProps<T> & { ref?: Ref<HTMLDivElement> }\n): JSX.Element {\n const [props, , setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n MenuContext\n );\n\n return (\n <CollectionBuilder\n createCollection={() => new BaseCollection<T>()}\n content={<Collection {...props} />}\n >\n {(collection) => (\n <MenuInner props={props} collection={collection} menuRef={setRef} />\n )}\n </CollectionBuilder>\n );\n}\n\nfunction MenuInner<T extends object>(input: {\n props: MenuProps<T> & SelectableCollectionContextValue<T>;\n collection: BaseCollection<T>;\n menuRef: (element: HTMLDivElement) => void;\n}): JSX.Element {\n const [props, ref, setRef] = createContextProps(\n untrack(() => input.props),\n untrack(() => input.menuRef),\n SelectableCollectionContext\n );\n\n const renderer = useContext(CollectionRendererContext);\n const Root = renderer.CollectionRoot;\n\n const state = createTreeState(\n mergeProps(omit(props, \"items\", \"filter\"), {\n children: undefined,\n get collection() {\n return props.filter\n ? input.collection.filter(props.filter)\n : input.collection;\n },\n })\n );\n\n const trigger =\n useContext(RootMenuTriggerStateContext) ?? createMenuTriggerState({});\n\n const aria = createMenu(\n mergeProps(omit(props, \"items\", \"children\"), {\n get isVirtualized() {\n return renderer.isVirtualized;\n },\n get onClose() {\n return props.onClose ?? trigger.close;\n },\n }),\n state,\n ref\n );\n\n const render = createRenderProps(\n mergeProps(props, {\n children: undefined,\n defaultClass: \"solid2-aria-Menu\",\n values: {\n get isEmpty() {\n return state.collection.size === 0;\n },\n },\n })\n );\n\n return (\n <dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n render,\n merge(() => aria.menuProps ?? {})\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n data-empty={state.collection.size === 0 || undefined}\n >\n <MenuStateContext value={state}>\n <SelectionManagerContext value={untrack(() => state.selectionManager)}>\n <RootMenuTriggerStateContext value={trigger}>\n <SubmenuContext\n value={{\n parentMenuRef: ref,\n get shouldUseVirtualFocus() {\n return props.shouldUseVirtualFocus;\n },\n }}\n >\n <MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return props.shouldCloseOnSelect;\n },\n }}\n >\n <SelectableCollectionContext value={null}>\n <FieldInputContext value={null}>\n <SectionContext\n value={{\n name: \"MenuSection\",\n render: (\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ) =>\n MenuSectionInner(\n sectionProps,\n sectionRef,\n node,\n defaultClass\n ),\n }}\n >\n <Root collection={state.collection} scrollRef={ref} />\n </SectionContext>\n </FieldInputContext>\n </SelectableCollectionContext>\n </MenuItemContext>\n </SubmenuContext>\n </RootMenuTriggerStateContext>\n </SelectionManagerContext>\n </MenuStateContext>\n {state.collection.size === 0 && props.renderEmptyState ? (\n <div role=\"menuitem\" style={{ display: \"contents\" }}>\n {props.renderEmptyState()}\n </div>\n ) : null}\n </dom.div>\n );\n}\n\nclass GroupSelectionManager extends SelectionManager {\n private readonly parent: SelectionManager;\n constructor(parent: SelectionManager, state: MultipleSelectionState) {\n super(parent.collection, state);\n this.parent = parent;\n }\n override get focusedKey() {\n return this.parent.focusedKey;\n }\n override get isFocused() {\n return this.parent.isFocused;\n }\n override setFocusedKey(key: Key | null, strategy?: FocusStrategy) {\n this.parent.setFocusedKey(key, strategy);\n }\n override setFocused(value: boolean) {\n this.parent.setFocused(value);\n }\n override get childFocusStrategy() {\n return this.parent.childFocusStrategy;\n }\n}\n\nfunction MenuSectionInner(\n // oxlint-disable-next-line typescript/no-explicit-any -- Collection contexts erase item types; each typed factory restores its owner's item contract.\n props: MenuSectionProps<any>,\n ref: Ref<HTMLElement>,\n node: Node<unknown>,\n defaultClass = \"solid2-aria-MenuSection\"\n): JSX.Element {\n const state = useContext(MenuStateContext);\n const parent = useContext(SelectionManagerContext);\n\n if (!state || !parent) {\n throw new Error(\"MenuSection must be rendered in a Menu.\");\n }\n\n const renderer = useContext(CollectionRendererContext);\n const Branch = renderer.CollectionBranch;\n const [registerHeading, heading] = createSlot();\n\n const aria = createMenuSection({\n get \"aria-label\"() {\n return props[\"aria-label\"] ?? undefined;\n },\n get heading() {\n return heading();\n },\n });\n\n const selection = createMultipleSelectionState(props);\n\n const manager = createMemo(() =>\n props.selectionMode === null || props.selectionMode === undefined\n ? parent\n : new GroupSelectionManager(parent, selection)\n );\n\n const context = createSlottedContext(MenuItemContext);\n\n return (\n <dom.section\n {...mergeProps(\n omit(filterDOMProps(props, { global: true }), \"id\"),\n merge(() => aria.groupProps ?? {})\n )}\n ref={ref}\n render={props.render}\n class={props.class ?? defaultClass}\n style={props.style}\n >\n <HeaderContext\n value={mergeProps(\n merge(() => aria.headingProps ?? {}),\n { registerSlot: registerHeading }\n )}\n >\n <SelectionManagerContext value={untrack(manager)}>\n <MenuItemContext\n value={{\n get shouldCloseOnSelect() {\n return (\n props.shouldCloseOnSelect ?? context?.shouldCloseOnSelect\n );\n },\n }}\n >\n <Branch collection={state.collection} parent={node} />\n </MenuItemContext>\n </SelectionManagerContext>\n </HeaderContext>\n </dom.section>\n );\n}\n\nconst MenuSectionCollection = createBranchComponent(\n SectionNode,\n MenuSectionInner\n);\n\nconst MenuItemCollection = createLeafComponent(\n ItemNode,\n <T,>(\n input: MenuItemProps<T>,\n forwardedRef: Ref<HTMLDivElement>,\n node: Node<T>\n ): JSX.Element => {\n const [props, ref, setRef] = createContextProps(\n input,\n forwardedRef,\n MenuItemContext\n );\n\n const context = createSlottedContext(MenuItemContext);\n const state = useContext(MenuStateContext);\n\n if (!state) {\n throw new Error(\"MenuItem must be rendered in a Menu.\");\n }\n\n const manager =\n useContext(SelectionManagerContext) ?? state.selectionManager;\n\n const renderer = useContext(CollectionRendererContext);\n\n const aria = createMenuItem(\n mergeProps(\n omit(props, \"id\", \"onAction\"),\n context\n ? // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n omit(context, \"id\", \"onAction\")\n : // oxlint-enable solid/reactivity\n undefined,\n {\n get isVirtualized() {\n return renderer.isVirtualized;\n },\n get key() {\n return node.key;\n },\n selectionManager: manager,\n }\n ),\n state,\n ref\n );\n\n const hover = createHover(\n mergeProps(props, {\n get isDisabled() {\n return aria.isDisabled;\n },\n })\n );\n\n const values: MenuItemRenderProps = {\n get hasSubmenu() {\n return !!context?.[\"aria-haspopup\"];\n },\n get isDisabled() {\n return aria.isDisabled;\n },\n get isFocusVisible() {\n return aria.isFocusVisible;\n },\n get isFocused() {\n return aria.isFocused;\n },\n get isHovered() {\n return hover.isHovered;\n },\n get isOpen() {\n return context?.isOpen === true;\n },\n get isPressed() {\n return aria.isPressed;\n },\n get isSelected() {\n return aria.isSelected;\n },\n get selectionBehavior() {\n return manager.selectionBehavior;\n },\n get selectionMode() {\n return manager.selectionMode;\n },\n };\n\n const render = createRenderProps(\n mergeProps(props, { defaultClass: \"solid2-aria-MenuItem\", values })\n );\n\n const Element = dynamic(() => (isTruthy(props.href) ? dom.a : dom.div));\n\n return (\n <Element\n {...mergeProps(\n omit(filterDOMProps(props, { global: true }), \"id\", \"onClick\"),\n render,\n merge(() => aria.menuItemProps ?? {}),\n merge(() => hover.hoverProps ?? {})\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n data-selected={aria.isSelected || undefined}\n data-disabled={aria.isDisabled || undefined}\n data-hovered={hover.isHovered || undefined}\n data-focused={aria.isFocused || undefined}\n data-focus-visible={aria.isFocusVisible || undefined}\n data-pressed={aria.isPressed || undefined}\n data-has-submenu={values.hasSubmenu || undefined}\n data-open={values.isOpen || undefined}\n data-selection-mode={\n manager.selectionMode === \"none\" ? undefined : manager.selectionMode\n }\n >\n <TextContext\n value={{\n slots: {\n get [DEFAULT_SLOT]() {\n return aria.labelProps;\n },\n get description() {\n return aria.descriptionProps;\n },\n get label() {\n return aria.labelProps;\n },\n },\n }}\n >\n <KeyboardContext value={aria.keyboardShortcutProps}>\n <SelectionIndicatorContext\n value={{\n get isSelected() {\n return aria.isSelected;\n },\n }}\n >\n {render.children}\n </SelectionIndicatorContext>\n </KeyboardContext>\n </TextContext>\n </Element>\n );\n }\n);\n\nclass SubmenuTriggerNode extends CollectionNode<unknown> {\n static override readonly type = \"submenutrigger\";\n override filter(\n collection: BaseCollection<unknown>,\n target: BaseCollection<unknown>,\n filter: (text: string, node: Node<unknown>) => boolean\n ): this | null {\n const item =\n this.firstChildKey === null || this.firstChildKey === undefined\n ? null\n : collection.getItem(this.firstChildKey);\n\n if (item && filter(item.textValue, this)) {\n const clone = this.clone();\n target.addDescendants(clone, collection);\n\n return clone;\n }\n\n return null;\n }\n}\n\nconst SubmenuTriggerCollection = createBranchComponent(\n SubmenuTriggerNode,\n (\n props: SubmenuTriggerProps & { renderPopover: () => JSX.Element },\n forwardedRef: Ref<HTMLDivElement>,\n item: Node<unknown>\n ): JSX.Element => {\n const [submenuRef, setSubmenuRef] = createSignal<HTMLDivElement | null>(\n null,\n { ownedWrite: true }\n );\n\n const state = useContext(MenuStateContext);\n const root = useContext(RootMenuTriggerStateContext);\n const parent = useContext(SubmenuContext);\n\n if (!state || !root || !parent) {\n throw new Error(\"SubmenuTrigger must be rendered in a Menu.\");\n }\n\n const renderer = useContext(CollectionRendererContext);\n const Branch = renderer.CollectionBranch;\n const trigger = createSubmenuTriggerState({ triggerKey: item.key }, root);\n\n const [itemRef, setItemRef] = createSignal<HTMLDivElement | null>(null, {\n ownedWrite: true,\n });\n\n const aria = createSubmenuTrigger(\n mergeProps(props, parent, { submenuRef }),\n trigger,\n itemRef\n );\n\n return (\n <MenuItemContext\n value={mergeProps(\n merge(() => aria.submenuTriggerProps ?? {}),\n {\n onAction: undefined,\n ref: (element: HTMLDivElement) => {\n setItemRef(element);\n },\n }\n )}\n >\n <MenuContext\n value={mergeProps(\n merge(() => aria.submenuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setSubmenuRef(element);\n },\n }\n )}\n >\n <OverlayTriggerStateContext value={trigger}>\n <PopoverContext\n value={mergeProps(\n merge(() => aria.popoverProps ?? {}),\n {\n get \"aria-labelledby\"() {\n return aria.submenuProps[\"aria-labelledby\"];\n },\n get placement(): \"end top\" {\n return \"end top\";\n },\n trigger: \"SubmenuTrigger\",\n triggerRef: itemRef,\n }\n )}\n >\n <Branch collection={state.collection} parent={item} />\n <SubmenuCaptureContext value={true}>\n {props.renderPopover()}\n </SubmenuCaptureContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </MenuContext>\n </MenuItemContext>\n );\n },\n (props) => untrack(() => props.children[0])\n);\n\nconst MenuLoadMoreItemCollection = createLeafComponent(\n LoaderNode,\n (\n props: MenuLoadMoreItemProps,\n forwardedRef: Ref<HTMLDivElement>,\n _node: Node<unknown>\n ): JSX.Element => {\n const state = useContext(MenuStateContext);\n\n if (!state) {\n throw new Error(\"MenuLoadMoreItem must be rendered in a Menu.\");\n }\n\n const [sentinel, setSentinel] = createSignal<HTMLDivElement | null>(null, {\n ownedWrite: true,\n });\n\n createLoadMoreSentinel(\n mergeProps(props, {\n get collection() {\n return state.collection;\n },\n }),\n sentinel\n );\n\n const render = createRenderProps(\n mergeProps(props, {\n defaultClass: \"solid2-aria-MenuLoadingIndicator\",\n values: undefined,\n })\n );\n\n return (\n <>\n <div style={{ height: 0, position: \"relative\", width: 0 }} inert>\n <div\n data-testid=\"loadMoreSentinel\"\n ref={(element: HTMLDivElement) => {\n setSentinel(element);\n }}\n style={{ height: \"1px\", position: \"absolute\", width: \"1px\" }}\n />\n </div>\n <Show when={props.isLoading}>\n <dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={(element: HTMLDivElement) => {\n assignRef(forwardedRef, element);\n }}\n role=\"menuitem\"\n tabindex={-1}\n >\n {render.children}\n </dom.div>\n </Show>\n </>\n );\n }\n);\n\nexport function MenuSection<T>(\n props: MenuSectionProps<T> & { ref?: Ref<HTMLElement> }\n): JSX.Element {\n return (\n <MenuSectionCollection\n {...props}\n ref={(element: HTMLElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n />\n );\n}\n\nexport function MenuItem<T>(\n props: MenuItemProps<T> & { ref?: Ref<HTMLDivElement> }\n): JSX.Element {\n if (useContext(SubmenuCaptureContext) && !createIsHidden()) {\n // oxlint-disable-next-line solid/components-return-once -- Static collection traversal and context registration are fixed when the owner is created.\n return null;\n }\n\n return (\n <MenuItemCollection\n {...props}\n ref={(element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n />\n );\n}\n\nexport function SubmenuTrigger(\n props: SubmenuTriggerProps & { ref?: Ref<HTMLDivElement> }\n): JSX.Element {\n return (\n <SubmenuTriggerCollection\n {...props}\n renderPopover={() => props.children[1]}\n ref={(element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n />\n );\n}\n\nexport function MenuLoadMoreItem(\n props: MenuLoadMoreItemProps & { ref?: Ref<HTMLDivElement> }\n): JSX.Element {\n return (\n <MenuLoadMoreItemCollection\n {...props}\n ref={(element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n />\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright 2022 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-aria-components/src/Meter.tsx.
14
+ * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; uses Solid class props.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { ContextValue, Ref, RenderProps, SlotProps } from "./utils.js";
18
+ import { JSX } from "@solidjs/web";
19
+ import { AriaMeterProps } from "@solid2-aria/core/meter/create-meter";
20
+ export interface MeterRenderProps {
21
+ percentage: number;
22
+ valueText: string | undefined;
23
+ }
24
+ export interface MeterProps extends Omit<AriaMeterProps, "label">, SlotProps, RenderProps<MeterRenderProps> {
25
+ ref?: Ref<HTMLDivElement>;
26
+ }
27
+ export declare const MeterContext: import("solid-js").Context<ContextValue<MeterProps, HTMLDivElement>>;
28
+ export declare function Meter(input: MeterProps): JSX.Element;
29
+ //# sourceMappingURL=meter.d.ts.map
@@ -0,0 +1,73 @@
1
+ /*
2
+ * Copyright 2022 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-aria-components/src/Meter.tsx.
14
+ * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; uses Solid class props.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { createContextProps, createRenderProps, createSlot, dom } from "./utils.js";
18
+ import { LabelContext } from "./label.js";
19
+ import { createComponent, mergeProps } from "@solidjs/web";
20
+ import { mergeProps as mergeProps$1 } from "@solid2-aria/core/utils/merge-props";
21
+ import { createContext, merge, untrack } from "solid-js";
22
+ import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
23
+ import { isTruthy } from "@solid2-aria/core/utils/truthy";
24
+ import { createMeter } from "@solid2-aria/core/meter/create-meter";
25
+ // src/meter.tsx
26
+ const MeterContext = createContext(null);
27
+ function Meter(input) {
28
+ const [props, , setRef] = createContextProps(input, untrack(() => input.ref), MeterContext);
29
+ const [registerLabel, label] = createSlot(() => !isTruthy(props["aria-label"]) && !isTruthy(props["aria-labelledby"]));
30
+ const aria = createMeter(mergeProps$1(props, { get label() {
31
+ return label();
32
+ } }));
33
+ const values = {
34
+ get percentage() {
35
+ const min = props.minValue ?? 0;
36
+ const max = props.maxValue ?? 100;
37
+ return max === min ? 0 : (Math.min(max, Math.max(min, props.value ?? 0)) - min) / (max - min) * 100;
38
+ },
39
+ get valueText() {
40
+ const text = aria.meterProps["aria-valuetext"];
41
+ return typeof text === "string" ? text : void 0;
42
+ }
43
+ };
44
+ const labelProps = mergeProps$1(merge(() => aria.labelProps), {
45
+ elementType: "span",
46
+ registerSlot: registerLabel
47
+ });
48
+ const render = createRenderProps(mergeProps$1(props, {
49
+ defaultClass: "solid2-aria-Meter",
50
+ values
51
+ }));
52
+ return createComponent(dom.div, mergeProps(() => {
53
+ return mergeProps$1(filterDOMProps(props, { global: true }), merge(() => aria.meterProps ?? {}), render);
54
+ }, {
55
+ ref: (element) => {
56
+ setRef(element);
57
+ },
58
+ get slot() {
59
+ return props.slot ?? void 0;
60
+ },
61
+ get children() {
62
+ return createComponent(LabelContext, {
63
+ value: labelProps,
64
+ get children() {
65
+ return render.children;
66
+ }
67
+ });
68
+ }
69
+ }));
70
+ }
71
+ export { Meter, MeterContext };
72
+
73
+ //# sourceMappingURL=meter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meter.js","names":["<dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => aria.meterProps ?? {}),\n render\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n >\n <LabelContext value={labelProps}>{render.children}</LabelContext>\n </dom.div>","dom.div","ref={(element: HTMLDivElement) => {\n setRef(element);\n }}","<LabelContext value={labelProps}>{render.children}</LabelContext>","value={labelProps}","mergeProps","_$createComponent","_$mergeProps"],"sources":["../../src/meter.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n/*\n * Derived from Adobe React Spectrum: packages/react-aria-components/src/Meter.tsx.\n * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; uses Solid class props.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport { createMeter } from \"@solid2-aria/core/meter/create-meter\";\nimport type { AriaMeterProps } from \"@solid2-aria/core/meter/create-meter\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { isTruthy } from \"@solid2-aria/core/utils/truthy\";\nimport type { JSX } from \"@solidjs/web\";\nimport { untrack, merge, createContext } from \"solid-js\";\n\nimport { LabelContext } from \"./label\";\nimport {\n dom,\n createContextProps,\n createRenderProps,\n createSlot,\n} from \"./utils\";\nimport type { Ref, ContextValue, SlotProps, RenderProps } from \"./utils\";\n\nexport interface MeterRenderProps {\n percentage: number;\n valueText: string | undefined;\n}\n\nexport interface MeterProps\n extends\n Omit<AriaMeterProps, \"label\">,\n SlotProps,\n RenderProps<MeterRenderProps> {\n ref?: Ref<HTMLDivElement>;\n}\n\nexport const MeterContext =\n createContext<ContextValue<MeterProps, HTMLDivElement>>(null);\n\nexport function Meter(input: MeterProps): JSX.Element {\n const [props, , setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n MeterContext\n );\n\n const [registerLabel, label] = createSlot(\n () => !isTruthy(props[\"aria-label\"]) && !isTruthy(props[\"aria-labelledby\"])\n );\n\n const aria = createMeter(\n mergeProps(props, {\n get label() {\n return label();\n },\n })\n );\n\n const values: MeterRenderProps = {\n get percentage() {\n const min = props.minValue ?? 0;\n const max = props.maxValue ?? 100;\n\n return max === min\n ? 0\n : ((Math.min(max, Math.max(min, props.value ?? 0)) - min) /\n (max - min)) *\n 100;\n },\n get valueText() {\n const text = aria.meterProps[\"aria-valuetext\"];\n\n return typeof text === \"string\" ? text : undefined;\n },\n };\n\n const labelProps = mergeProps(\n merge(() => aria.labelProps),\n { elementType: \"span\" as const, registerSlot: registerLabel }\n );\n\n const render = createRenderProps(\n mergeProps(props, { defaultClass: \"solid2-aria-Meter\", values })\n );\n\n return (\n <dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => aria.meterProps ?? {}),\n render\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n >\n <LabelContext value={labelProps}>{render.children}</LabelContext>\n </dom.div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAa,eACX,cAAwD,IAAI;AAE9D,SAAgB,MAAM,OAAgC;CACpD,MAAM,CAAC,SAAS,UAAU,mBACxB,OACA,cAAc,MAAM,GAAG,GACvB,YACF;CAEA,MAAM,CAAC,eAAe,SAAS,iBACvB,CAAC,SAAS,MAAM,aAAa,KAAK,CAAC,SAAS,MAAM,kBAAkB,CAC5E;CAEA,MAAM,OAAO,YACXK,aAAW,OAAO,EAChB,IAAI,QAAQ;EACV,OAAO,MAAM;CACf,EACF,CAAC,CACH;CAEA,MAAM,SAA2B;EAC/B,IAAI,aAAa;GACf,MAAM,MAAM,MAAM,YAAY;GAC9B,MAAM,MAAM,MAAM,YAAY;GAE9B,OAAO,QAAQ,MACX,KACE,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,MAAM,SAAS,CAAC,CAAC,IAAI,QAChD,MAAM,OACP;EACR;EACA,IAAI,YAAY;GACd,MAAM,OAAO,KAAK,WAAW;GAE7B,OAAO,OAAO,SAAS,WAAW,OAAO,KAAA;EAC3C;CACF;CAEA,MAAM,aAAaA,aACjB,YAAY,KAAK,UAAU,GAC3B;EAAE,aAAa;EAAiB,cAAc;CAAc,CAC9D;CAEA,MAAM,SAAS,kBACbA,aAAW,OAAO;EAAE,cAAc;EAAqB;CAAO,CAAC,CACjE;CAEA,OACEL,gBAAAA,IAACC,KAADD,iBACE;EAAI,OAAAK,aACF,eAAe,OAAO,EAAE,QAAQ,KAAK,CAAC,GACtC,YAAY,KAAK,cAAc,CAAC,CAAC,GACjC,MACF;CAAC,GALH;EAMEH,MAAM,YAA4B;GAChC,OAAO,OAAO;EAChB;EACA,IAAA,OAAA;GAAM,OAAA,MAAM,QAAQ,KAAA;EAAS;EAT/B,IAAA,WAAA;GAWEC,OAAAA,gBAAAA,cAAAA;IAAcC,OAAO;IAArB,IAAA,WAAA;KAAkC,OAAA,OAAO;IAAuB;;EACzD;;AAEb"}
@@ -0,0 +1,48 @@
1
+ /*
2
+ * Copyright 2022 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-aria-components/src/Modal.tsx.
14
+ * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; release detached modal refs so each opening animates its mounted content; uses Solid class props.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { ContextValue, Ref, RenderProps, SlotProps } from "./utils.js";
18
+ import { JSX } from "@solidjs/web";
19
+ import { Accessor } from "solid-js";
20
+ import { OverlayTriggerProps, OverlayTriggerState } from "@solid2-aria/stately/overlays/create-overlay-trigger-state";
21
+ import { AriaModalOverlayProps } from "@solid2-aria/core/overlays/create-modal-overlay";
22
+ export interface ModalRenderProps {
23
+ isEntering: boolean;
24
+ isExiting: boolean;
25
+ state: OverlayTriggerState;
26
+ }
27
+ export interface ModalOverlayProps extends AriaModalOverlayProps, OverlayTriggerProps, RenderProps<ModalRenderProps>, SlotProps {
28
+ ref?: Ref<HTMLDivElement>;
29
+ isEntering?: boolean;
30
+ isExiting?: boolean;
31
+ onEnter?: (element: HTMLElement) => void | Promise<void>;
32
+ onExit?: (element: HTMLElement) => void | Promise<void>;
33
+ UNSTABLE_portalContainer?: Element;
34
+ UNSTABLE_deferUntilEntered?: boolean;
35
+ }
36
+ export declare const ModalContext: import("solid-js").Context<ContextValue<ModalOverlayProps, HTMLDivElement>>;
37
+ interface InternalModalContextValue {
38
+ modalProps: JSX.HTMLAttributes<HTMLElement>;
39
+ modalRef: Accessor<HTMLDivElement | null>;
40
+ setModalRef: (element: HTMLDivElement | null) => void;
41
+ values: ModalRenderProps;
42
+ isDismissable?: boolean;
43
+ }
44
+ export declare const InternalModalContext: import("solid-js").Context<InternalModalContextValue | null>;
45
+ export declare function Modal(input: ModalOverlayProps): JSX.Element;
46
+ export declare function ModalOverlay(input: ModalOverlayProps): JSX.Element;
47
+ export {};
48
+ //# sourceMappingURL=modal.d.ts.map
@@ -0,0 +1,190 @@
1
+ /*
2
+ * Copyright 2022 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-aria-components/src/Modal.tsx.
14
+ * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; release detached modal refs so each opening animates its mounted content; uses Solid class props.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { assignRef, createContextProps, createRenderProps, dom } from "./utils.js";
18
+ import { OverlayTriggerStateContext } from "./overlay-contexts.js";
19
+ import { createComponent, memo, mergeProps } from "@solidjs/web";
20
+ import { mergeProps as mergeProps$1 } from "@solid2-aria/core/utils/merge-props";
21
+ import { Show, createContext, createSignal, merge, omit, onSettled, untrack, useContext } from "solid-js";
22
+ import { requireValue } from "@solid2-aria/core/utils/require-value";
23
+ import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
24
+ import { DismissButton } from "@solid2-aria/core/overlays/dismiss-button";
25
+ import { Overlay } from "@solid2-aria/core/overlays/overlay";
26
+ import { createEnterAnimation, createExitAnimation } from "@solid2-aria/core/utils/animation";
27
+ import { createOverlayTriggerState } from "@solid2-aria/stately/overlays/create-overlay-trigger-state";
28
+ import { createModalOverlay } from "@solid2-aria/core/overlays/create-modal-overlay";
29
+ // src/modal.tsx
30
+ const ModalContext = createContext(null);
31
+ const InternalModalContext = createContext(null);
32
+ function Modal(input) {
33
+ if (useContext(InternalModalContext)) return createComponent(ModalContent, input);
34
+ return createComponent(ModalOverlay, mergeProps(() => {
35
+ return omit(input, "children", "ref", "class", "style", "render");
36
+ }, { get children() {
37
+ return createComponent(ModalContent, input);
38
+ } }));
39
+ }
40
+ function ModalContent(props) {
41
+ const context = useContext(InternalModalContext);
42
+ if (!context) throw new Error("Modal requires ModalOverlay");
43
+ const render = createRenderProps(mergeProps$1(props, {
44
+ defaultClass: "solid2-aria-Modal",
45
+ get values() {
46
+ return context.values;
47
+ }
48
+ }));
49
+ return createComponent(dom.div, mergeProps(() => {
50
+ return mergeProps$1(filterDOMProps(props, { global: true }), merge(() => context.modalProps ?? {}), render);
51
+ }, {
52
+ ref: [(element) => {
53
+ context.setModalRef(element);
54
+ }, (element) => {
55
+ assignRef(untrack(() => props.ref), element);
56
+ }],
57
+ get "data-entering"() {
58
+ return context.values.isEntering || void 0;
59
+ },
60
+ get "data-exiting"() {
61
+ return context.values.isExiting || void 0;
62
+ },
63
+ get children() {
64
+ return [
65
+ memo(() => {
66
+ return memo(() => {
67
+ return context.isDismissable === true;
68
+ })() && createComponent(DismissButton, { get onDismiss() {
69
+ return context.values.state.close;
70
+ } });
71
+ }),
72
+ memo(() => {
73
+ return render.children;
74
+ }),
75
+ createComponent(DismissButton, { get onDismiss() {
76
+ return context.values.state.close;
77
+ } })
78
+ ];
79
+ }
80
+ }));
81
+ }
82
+ function ModalOverlay(input) {
83
+ const [props, overlayRef, setOverlayRef] = createContextProps(input, untrack(() => input.ref), ModalContext);
84
+ const context = useContext(OverlayTriggerStateContext);
85
+ const local = createOverlayTriggerState(props);
86
+ const state = untrack(() => props.isOpen !== void 0 || props.defaultOpen !== void 0 || !context) ? local : requireValue(context, "Expected context");
87
+ const [modalRef, setModalRef] = createSignal(null, { ownedWrite: true });
88
+ const exiting = createExitAnimation(modalRef, () => state.isOpen, (element) => untrack(() => props.onExit)?.(element));
89
+ return createComponent(Show, {
90
+ get when() {
91
+ return state.isOpen || exiting() || props.isExiting;
92
+ },
93
+ get children() {
94
+ return createComponent(Overlay, {
95
+ get portalContainer() {
96
+ return props.UNSTABLE_portalContainer;
97
+ },
98
+ get isExiting() {
99
+ return exiting() || props.isExiting;
100
+ },
101
+ shouldContainFocus: true,
102
+ get children() {
103
+ return createComponent(ModalOverlayInner, {
104
+ props,
105
+ overlayRef,
106
+ setOverlayRef: (element) => {
107
+ setOverlayRef(element);
108
+ },
109
+ modalRef,
110
+ setModalRef: (element) => {
111
+ setModalRef(element);
112
+ },
113
+ state,
114
+ exiting
115
+ });
116
+ }
117
+ });
118
+ }
119
+ });
120
+ }
121
+ function ModalOverlayInner(args) {
122
+ onSettled(() => () => {
123
+ args.setModalRef(null);
124
+ });
125
+ const entering = createEnterAnimation(untrack(() => args.modalRef), true, (element) => untrack(() => args.props.onEnter)?.(element));
126
+ const values = {
127
+ get isEntering() {
128
+ return args.props.isEntering === true || entering();
129
+ },
130
+ get isExiting() {
131
+ return args.props.isExiting === true || args.exiting();
132
+ },
133
+ get state() {
134
+ return args.state;
135
+ }
136
+ };
137
+ const aria = createModalOverlay(mergeProps$1(merge(() => args.props ?? {}), { get isEntering() {
138
+ return values.isEntering;
139
+ } }), untrack(() => args.state), untrack(() => args.modalRef));
140
+ const render = createRenderProps(mergeProps$1(merge(() => args.props ?? {}), {
141
+ defaultClass: "solid2-aria-ModalOverlay",
142
+ values
143
+ }));
144
+ const internal = {
145
+ get isDismissable() {
146
+ return args.props.isDismissable;
147
+ },
148
+ get modalProps() {
149
+ return aria.modalProps;
150
+ },
151
+ get modalRef() {
152
+ return args.modalRef;
153
+ },
154
+ get setModalRef() {
155
+ return args.setModalRef;
156
+ },
157
+ values
158
+ };
159
+ return createComponent(dom.div, mergeProps(() => {
160
+ return mergeProps$1(filterDOMProps(args.props, { global: true }), merge(() => aria.underlayProps ?? {}), render);
161
+ }, {
162
+ ref: (element) => {
163
+ args.setOverlayRef(element);
164
+ },
165
+ get "data-entering"() {
166
+ return values.isEntering || void 0;
167
+ },
168
+ get "data-exiting"() {
169
+ return values.isExiting || void 0;
170
+ },
171
+ get children() {
172
+ return createComponent(OverlayTriggerStateContext, {
173
+ get value() {
174
+ return args.state;
175
+ },
176
+ get children() {
177
+ return createComponent(InternalModalContext, {
178
+ value: internal,
179
+ get children() {
180
+ return render.children;
181
+ }
182
+ });
183
+ }
184
+ });
185
+ }
186
+ }));
187
+ }
188
+ export { InternalModalContext, Modal, ModalContext, ModalOverlay };
189
+
190
+ //# sourceMappingURL=modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.js","names":["<ModalContent {...input} />","<ModalOverlay\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(input, \"children\", \"ref\", \"class\", \"style\", \"render\")\n // oxlint-enable solid/reactivity\n }\n >\n <ModalContent {...input} />\n </ModalOverlay>","<dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => context.modalProps ?? {}),\n render\n )}\n ref={[\n (element: HTMLDivElement) => {\n context.setModalRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n data-entering={context.values.isEntering || undefined}\n data-exiting={context.values.isExiting || undefined}\n >\n {context.isDismissable === true && (\n <DismissButton onDismiss={context.values.state.close} />\n )}\n {render.children}\n <DismissButton onDismiss={context.values.state.close} />\n </dom.div>","dom.div","ref={[\n (element: HTMLDivElement) => {\n context.setModalRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}","{context.isDismissable === true && (\n <DismissButton onDismiss={context.values.state.close} />\n )}","<DismissButton onDismiss={context.values.state.close} />","render.children","<Show when={state.isOpen || exiting() || props.isExiting}>\n <Overlay\n portalContainer={props.UNSTABLE_portalContainer}\n isExiting={exiting() || props.isExiting}\n shouldContainFocus\n >\n <ModalOverlayInner\n props={props}\n overlayRef={overlayRef}\n setOverlayRef={(element: HTMLDivElement) => {\n setOverlayRef(element);\n }}\n modalRef={modalRef}\n setModalRef={(element: HTMLDivElement | null) => {\n setModalRef(element);\n }}\n state={state}\n exiting={exiting}\n />\n </Overlay>\n </Show>","<Overlay\n portalContainer={props.UNSTABLE_portalContainer}\n isExiting={exiting() || props.isExiting}\n shouldContainFocus\n >\n <ModalOverlayInner\n props={props}\n overlayRef={overlayRef}\n setOverlayRef={(element: HTMLDivElement) => {\n setOverlayRef(element);\n }}\n modalRef={modalRef}\n setModalRef={(element: HTMLDivElement | null) => {\n setModalRef(element);\n }}\n state={state}\n exiting={exiting}\n />\n </Overlay>","<ModalOverlayInner\n props={props}\n overlayRef={overlayRef}\n setOverlayRef={(element: HTMLDivElement) => {\n setOverlayRef(element);\n }}\n modalRef={modalRef}\n setModalRef={(element: HTMLDivElement | null) => {\n setModalRef(element);\n }}\n state={state}\n exiting={exiting}\n />","setOverlayRef={(element: HTMLDivElement) => {\n setOverlayRef(element);\n }}","setModalRef={(element: HTMLDivElement | null) => {\n setModalRef(element);\n }}","<dom.div\n {...mergeProps(\n filterDOMProps(args.props, { global: true }),\n merge(() => aria.underlayProps ?? {}),\n render\n )}\n ref={(element: HTMLDivElement) => {\n args.setOverlayRef(element);\n }}\n data-entering={values.isEntering || undefined}\n data-exiting={values.isExiting || undefined}\n >\n <OverlayTriggerStateContext value={args.state}>\n <InternalModalContext value={internal}>\n {render.children}\n </InternalModalContext>\n </OverlayTriggerStateContext>\n </dom.div>","ref={(element: HTMLDivElement) => {\n args.setOverlayRef(element);\n }}","<OverlayTriggerStateContext value={args.state}>\n <InternalModalContext value={internal}>\n {render.children}\n </InternalModalContext>\n </OverlayTriggerStateContext>","<InternalModalContext value={internal}>\n {render.children}\n </InternalModalContext>","value={internal}","_$createComponent","_$mergeProps","mergeProps","_$memo"],"sources":["../../src/modal.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n/*\n * Derived from Adobe React Spectrum: packages/react-aria-components/src/Modal.tsx.\n * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; release detached modal refs so each opening animates its mounted content; uses Solid class props.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport { createModalOverlay } from \"@solid2-aria/core/overlays/create-modal-overlay\";\nimport type { AriaModalOverlayProps } from \"@solid2-aria/core/overlays/create-modal-overlay\";\nimport { DismissButton } from \"@solid2-aria/core/overlays/dismiss-button\";\nimport { Overlay } from \"@solid2-aria/core/overlays/overlay\";\nimport {\n createEnterAnimation,\n createExitAnimation,\n} from \"@solid2-aria/core/utils/animation\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { requireValue } from \"@solid2-aria/core/utils/require-value\";\nimport { createOverlayTriggerState } from \"@solid2-aria/stately/overlays/create-overlay-trigger-state\";\nimport type {\n OverlayTriggerProps,\n OverlayTriggerState,\n} from \"@solid2-aria/stately/overlays/create-overlay-trigger-state\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n merge,\n createSignal,\n createContext,\n Show,\n useContext,\n untrack,\n omit,\n onSettled,\n} from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\n\nimport { OverlayTriggerStateContext } from \"./dialog\";\nimport { assignRef, dom, createContextProps, createRenderProps } from \"./utils\";\nimport type { ContextValue, Ref, RenderProps, SlotProps } from \"./utils\";\n\nexport interface ModalRenderProps {\n isEntering: boolean;\n isExiting: boolean;\n state: OverlayTriggerState;\n}\n\nexport interface ModalOverlayProps\n extends\n AriaModalOverlayProps,\n OverlayTriggerProps,\n RenderProps<ModalRenderProps>,\n SlotProps {\n ref?: Ref<HTMLDivElement>;\n isEntering?: boolean;\n isExiting?: boolean;\n onEnter?: (element: HTMLElement) => void | Promise<void>;\n onExit?: (element: HTMLElement) => void | Promise<void>;\n UNSTABLE_portalContainer?: Element;\n UNSTABLE_deferUntilEntered?: boolean;\n}\n\nexport const ModalContext =\n createContext<ContextValue<ModalOverlayProps, HTMLDivElement>>(null);\n\ninterface InternalModalContextValue {\n modalProps: JSX.HTMLAttributes<HTMLElement>;\n modalRef: Accessor<HTMLDivElement | null>;\n setModalRef: (element: HTMLDivElement | null) => void;\n values: ModalRenderProps;\n isDismissable?: boolean;\n}\n\nexport const InternalModalContext =\n createContext<InternalModalContextValue | null>(null);\n\nexport function Modal(input: ModalOverlayProps): JSX.Element {\n const context = useContext(InternalModalContext);\n\n if (context) {\n // oxlint-disable-next-line solid/components-return-once -- Static collection traversal and context registration are fixed when the owner is created.\n return <ModalContent {...input} />;\n }\n\n return (\n <ModalOverlay\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(input, \"children\", \"ref\", \"class\", \"style\", \"render\")\n // oxlint-enable solid/reactivity\n }\n >\n <ModalContent {...input} />\n </ModalOverlay>\n );\n}\n\nfunction ModalContent(props: ModalOverlayProps): JSX.Element {\n const context = useContext(InternalModalContext);\n\n if (!context) {\n throw new Error(\"Modal requires ModalOverlay\");\n }\n\n const render = createRenderProps(\n mergeProps(props, {\n defaultClass: \"solid2-aria-Modal\",\n get values() {\n return context.values;\n },\n })\n );\n\n return (\n <dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => context.modalProps ?? {}),\n render\n )}\n ref={[\n (element: HTMLDivElement) => {\n context.setModalRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n data-entering={context.values.isEntering || undefined}\n data-exiting={context.values.isExiting || undefined}\n >\n {context.isDismissable === true && (\n <DismissButton onDismiss={context.values.state.close} />\n )}\n {render.children}\n <DismissButton onDismiss={context.values.state.close} />\n </dom.div>\n );\n}\n\nexport function ModalOverlay(input: ModalOverlayProps): JSX.Element {\n const [props, overlayRef, setOverlayRef] = createContextProps(\n input,\n untrack(() => input.ref),\n ModalContext\n );\n\n const context = useContext(OverlayTriggerStateContext);\n const local = createOverlayTriggerState(props);\n\n const state = untrack(\n () =>\n props.isOpen !== undefined || props.defaultOpen !== undefined || !context\n )\n ? local\n : requireValue(context, \"Expected context\");\n\n const [modalRef, setModalRef] = createSignal<HTMLDivElement | null>(null, {\n ownedWrite: true,\n });\n\n const exiting = createExitAnimation(\n modalRef,\n () => state.isOpen,\n (element): void | Promise<void> => untrack(() => props.onExit)?.(element)\n );\n\n return (\n <Show when={state.isOpen || exiting() || props.isExiting}>\n <Overlay\n portalContainer={props.UNSTABLE_portalContainer}\n isExiting={exiting() || props.isExiting}\n shouldContainFocus\n >\n <ModalOverlayInner\n props={props}\n overlayRef={overlayRef}\n setOverlayRef={(element: HTMLDivElement) => {\n setOverlayRef(element);\n }}\n modalRef={modalRef}\n setModalRef={(element: HTMLDivElement | null) => {\n setModalRef(element);\n }}\n state={state}\n exiting={exiting}\n />\n </Overlay>\n </Show>\n );\n}\n\nfunction ModalOverlayInner(args: {\n props: ModalOverlayProps;\n overlayRef: Accessor<HTMLDivElement | null>;\n setOverlayRef: (element: HTMLDivElement) => void;\n modalRef: Accessor<HTMLDivElement | null>;\n setModalRef: (element: HTMLDivElement | null) => void;\n state: OverlayTriggerState;\n exiting: () => boolean;\n}): JSX.Element {\n onSettled(() => () => {\n args.setModalRef(null);\n });\n\n const entering = createEnterAnimation(\n untrack(() => args.modalRef),\n true,\n (element): void | Promise<void> =>\n untrack(() => args.props.onEnter)?.(element)\n );\n\n const values: ModalRenderProps = {\n get isEntering() {\n return args.props.isEntering === true || entering();\n },\n get isExiting() {\n return args.props.isExiting === true || args.exiting();\n },\n get state() {\n return args.state;\n },\n };\n\n const aria = createModalOverlay(\n mergeProps(\n merge(() => args.props ?? {}),\n {\n get isEntering() {\n return values.isEntering;\n },\n }\n ),\n untrack(() => args.state),\n untrack(() => args.modalRef)\n );\n\n const render = createRenderProps(\n mergeProps(\n merge(() => args.props ?? {}),\n {\n defaultClass: \"solid2-aria-ModalOverlay\",\n values,\n }\n )\n );\n\n const internal = {\n get isDismissable() {\n return args.props.isDismissable;\n },\n get modalProps() {\n return aria.modalProps;\n },\n get modalRef() {\n return args.modalRef;\n },\n get setModalRef() {\n return args.setModalRef;\n },\n values,\n };\n\n return (\n <dom.div\n {...mergeProps(\n filterDOMProps(args.props, { global: true }),\n merge(() => aria.underlayProps ?? {}),\n render\n )}\n ref={(element: HTMLDivElement) => {\n args.setOverlayRef(element);\n }}\n data-entering={values.isEntering || undefined}\n data-exiting={values.isExiting || undefined}\n >\n <OverlayTriggerStateContext value={args.state}>\n <InternalModalContext value={internal}>\n {render.children}\n </InternalModalContext>\n </OverlayTriggerStateContext>\n </dom.div>\n );\n}\n"],"mappings":"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"}