@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":["{state.collection.size === 0 && props.renderEmptyState ? (\n <div role=\"menuitem\" style={{ display: \"contents\" }}>\n {props.renderEmptyState()}\n </div>\n ) : null}","{props.renderEmptyState()}","props.renderEmptyState()","<div role=\"menuitem\" style={{ display: \"contents\" }}>\n {props.renderEmptyState()}\n </div>","style={{ display: \"contents\" }}","manager.selectionMode === \"none\" ? undefined : manager.selectionMode","dom.div","<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>","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.section","<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>","ref={ref}","<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>","<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>","style={{ height: 0, position: \"relative\", width: 0 }}","style={{ height: \"1px\", position: \"absolute\", width: \"1px\" }}","<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","_$memo","_$ssrHydrationKey","_$scope","_$escape","_$ssr","_$ssrStyleProperty","_$applyRef","_$ssrStyleProperties"],"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,101 @@
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 { mergeProps } from "@solid2-aria/core/utils/merge-props";
20
+ import { createContext, merge, untrack } from "solid-js";
21
+ import { mergeProps as mergeProps$1 } from "@solidjs/web";
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
+ var _m$ = Symbol();
27
+ var _m$2 = Symbol();
28
+ var _m$3 = Symbol();
29
+ var _d$ = {
30
+ get() {
31
+ return this[_m$].children;
32
+ },
33
+ enumerable: true,
34
+ configurable: true
35
+ };
36
+ function _P$(_p, _p2) {
37
+ this[_m$] = _p;
38
+ this.value = _p2;
39
+ Object.defineProperty(this, "children", _d$);
40
+ }
41
+ _P$.prototype = Object.prototype;
42
+ var _d$2 = {
43
+ get() {
44
+ return this[_m$].slot ?? void 0;
45
+ },
46
+ enumerable: true,
47
+ configurable: true
48
+ };
49
+ var _d$3 = {
50
+ get() {
51
+ const render = this[_m$2];
52
+ const labelProps = this[_m$3];
53
+ return LabelContext(new _P$(render, labelProps));
54
+ },
55
+ enumerable: true,
56
+ configurable: true
57
+ };
58
+ function _P$2(_p3, _p4, _p5, _p6) {
59
+ this[_m$] = _p3;
60
+ this[_m$2] = _p4;
61
+ this[_m$3] = _p5;
62
+ this.ref = _p6;
63
+ Object.defineProperty(this, "slot", _d$2);
64
+ Object.defineProperty(this, "children", _d$3);
65
+ }
66
+ _P$2.prototype = Object.prototype;
67
+ const MeterContext = createContext(null);
68
+ function Meter(input) {
69
+ const [props, , setRef] = createContextProps(input, untrack(() => input.ref), MeterContext);
70
+ const [registerLabel, label] = createSlot(() => !isTruthy(props["aria-label"]) && !isTruthy(props["aria-labelledby"]));
71
+ const aria = createMeter(mergeProps(props, { get label() {
72
+ return label();
73
+ } }));
74
+ const values = {
75
+ get percentage() {
76
+ const min = props.minValue ?? 0;
77
+ const max = props.maxValue ?? 100;
78
+ return max === min ? 0 : (Math.min(max, Math.max(min, props.value ?? 0)) - min) / (max - min) * 100;
79
+ },
80
+ get valueText() {
81
+ const text = aria.meterProps["aria-valuetext"];
82
+ return typeof text === "string" ? text : void 0;
83
+ }
84
+ };
85
+ const labelProps = mergeProps(merge(() => aria.labelProps), {
86
+ elementType: "span",
87
+ registerSlot: registerLabel
88
+ });
89
+ const render = createRenderProps(mergeProps(props, {
90
+ defaultClass: "solid2-aria-Meter",
91
+ values
92
+ }));
93
+ return dom.div(mergeProps$1(() => {
94
+ return mergeProps(filterDOMProps(props, { global: true }), merge(() => aria.meterProps ?? {}), render);
95
+ }, new _P$2(props, render, labelProps, (element) => {
96
+ setRef(element);
97
+ })));
98
+ }
99
+ export { Meter, MeterContext };
100
+
101
+ //# sourceMappingURL=meter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meter.js","names":["dom.div","<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>","_$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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4GuC,O,SAAC,CAAO;;;;;;;;;;;;;EAFzC,O,SAAM,CAAM,QAAQ,KAAA;;;;;;;;;EAEpB,OAAA,aAAA,IAAA,IAAkC,QAAb,UAA2C,CAAA;;;;;;;;;;;;;;AA7DtE,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,YACX,WAAW,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,aAAa,WACjB,YAAY,KAAK,UAAU,GAC3B;EAAE,aAAa;EAAiB,cAAc;CAAc,CAC9D;CAEA,MAAM,SAAS,kBACb,WAAW,OAAO;EAAE,cAAc;EAAqB;CAAO,CAAC,CACjE;CAEA,OAAA,IACGA,IAADC,mBACE;EAAI,OAAA,WACF,eAAe,OAAO,EAAE,QAAQ,KAAK,CAAC,GACtC,YAAY,KAAK,cAAc,CAAC,CAAC,GACjC,MACF;CAAC,GALH,IAAA,KASQ,OAE4B,QAAb,aALf,YAA4B;EAChC,OAAO,OAAO;CAChB,CAIO,CAAA,CAAA;AAEb"}
@@ -0,0 +1,360 @@
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 { mergeProps } from "@solid2-aria/core/utils/merge-props";
20
+ import { Show, createContext, createSignal, merge, omit, onSettled, untrack, useContext } from "solid-js";
21
+ import { memo, mergeProps as mergeProps$1 } from "@solidjs/web";
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
+ var _m$ = Symbol();
31
+ var _m$2 = Symbol();
32
+ var _m$3 = Symbol();
33
+ var _m$4 = Symbol();
34
+ var _m$5 = Symbol();
35
+ var _m$6 = Symbol();
36
+ var _m$7 = Symbol();
37
+ var _d$ = {
38
+ get() {
39
+ const input = this[_m$];
40
+ return ModalContent(input);
41
+ },
42
+ enumerable: true,
43
+ configurable: true
44
+ };
45
+ function _P$(_p) {
46
+ this[_m$] = _p;
47
+ Object.defineProperty(this, "children", _d$);
48
+ }
49
+ _P$.prototype = Object.prototype;
50
+ var _d$2 = {
51
+ get() {
52
+ return this[_m$].values.state.close;
53
+ },
54
+ enumerable: true,
55
+ configurable: true
56
+ };
57
+ function _P$2(_p2) {
58
+ this[_m$] = _p2;
59
+ Object.defineProperty(this, "onDismiss", _d$2);
60
+ }
61
+ _P$2.prototype = Object.prototype;
62
+ var _d$3 = {
63
+ get() {
64
+ return this[_m$].values.state.close;
65
+ },
66
+ enumerable: true,
67
+ configurable: true
68
+ };
69
+ function _P$3(_p3) {
70
+ this[_m$] = _p3;
71
+ Object.defineProperty(this, "onDismiss", _d$3);
72
+ }
73
+ _P$3.prototype = Object.prototype;
74
+ var _d$4 = {
75
+ get() {
76
+ return this[_m$].values.isEntering || void 0;
77
+ },
78
+ enumerable: true,
79
+ configurable: true
80
+ };
81
+ var _d$5 = {
82
+ get() {
83
+ return this[_m$].values.isExiting || void 0;
84
+ },
85
+ enumerable: true,
86
+ configurable: true
87
+ };
88
+ var _d$6 = {
89
+ get() {
90
+ const context = this[_m$];
91
+ const render = this[_m$2];
92
+ return [
93
+ memo(() => {
94
+ return memo(() => {
95
+ return context.isDismissable === true;
96
+ })() && DismissButton(new _P$2(context));
97
+ }),
98
+ memo(() => {
99
+ return render.children;
100
+ }),
101
+ DismissButton(new _P$3(context))
102
+ ];
103
+ },
104
+ enumerable: true,
105
+ configurable: true
106
+ };
107
+ function _P$4(_p4, _p5, _p6) {
108
+ this[_m$] = _p4;
109
+ this[_m$2] = _p5;
110
+ this.ref = _p6;
111
+ Object.defineProperty(this, "data-entering", _d$4);
112
+ Object.defineProperty(this, "data-exiting", _d$5);
113
+ Object.defineProperty(this, "children", _d$6);
114
+ }
115
+ _P$4.prototype = Object.prototype;
116
+ var _d$7 = {
117
+ get() {
118
+ return this[_m$].UNSTABLE_portalContainer;
119
+ },
120
+ enumerable: true,
121
+ configurable: true
122
+ };
123
+ var _d$8 = {
124
+ get() {
125
+ const exiting = this[_m$2];
126
+ const props = this[_m$];
127
+ return exiting() || props.isExiting;
128
+ },
129
+ enumerable: true,
130
+ configurable: true
131
+ };
132
+ var _d$9 = {
133
+ get() {
134
+ const props = this[_m$];
135
+ const overlayRef = this[_m$3];
136
+ const setOverlayRef = this[_m$4];
137
+ const modalRef = this[_m$5];
138
+ const setModalRef = this[_m$6];
139
+ const state = this[_m$7];
140
+ const exiting = this[_m$2];
141
+ return ModalOverlayInner({
142
+ props,
143
+ overlayRef,
144
+ setOverlayRef: (element) => {
145
+ setOverlayRef(element);
146
+ },
147
+ modalRef,
148
+ setModalRef: (element) => {
149
+ setModalRef(element);
150
+ },
151
+ state,
152
+ exiting
153
+ });
154
+ },
155
+ enumerable: true,
156
+ configurable: true
157
+ };
158
+ function _P$5(_p7, _p8, _p9, _p0, _p1, _p10, _p11, _p12) {
159
+ this[_m$] = _p7;
160
+ this[_m$2] = _p8;
161
+ this[_m$3] = _p9;
162
+ this[_m$4] = _p0;
163
+ this[_m$5] = _p1;
164
+ this[_m$6] = _p10;
165
+ this[_m$7] = _p11;
166
+ Object.defineProperty(this, "portalContainer", _d$7);
167
+ Object.defineProperty(this, "isExiting", _d$8);
168
+ this.shouldContainFocus = _p12;
169
+ Object.defineProperty(this, "children", _d$9);
170
+ }
171
+ _P$5.prototype = Object.prototype;
172
+ var _d$10 = {
173
+ get() {
174
+ const state = this[_m$];
175
+ const exiting = this[_m$2];
176
+ const props = this[_m$3];
177
+ return state.isOpen || exiting() || props.isExiting;
178
+ },
179
+ enumerable: true,
180
+ configurable: true
181
+ };
182
+ var _d$11 = {
183
+ get() {
184
+ const props = this[_m$3];
185
+ const exiting = this[_m$2];
186
+ const overlayRef = this[_m$4];
187
+ const setOverlayRef = this[_m$5];
188
+ const modalRef = this[_m$6];
189
+ const setModalRef = this[_m$7];
190
+ const state = this[_m$];
191
+ return Overlay(new _P$5(props, exiting, overlayRef, setOverlayRef, modalRef, setModalRef, state, true));
192
+ },
193
+ enumerable: true,
194
+ configurable: true
195
+ };
196
+ function _P$6(_p13, _p14, _p15, _p16, _p17, _p18, _p19) {
197
+ this[_m$] = _p13;
198
+ this[_m$2] = _p14;
199
+ this[_m$3] = _p15;
200
+ this[_m$4] = _p16;
201
+ this[_m$5] = _p17;
202
+ this[_m$6] = _p18;
203
+ this[_m$7] = _p19;
204
+ Object.defineProperty(this, "when", _d$10);
205
+ Object.defineProperty(this, "children", _d$11);
206
+ }
207
+ _P$6.prototype = Object.prototype;
208
+ var _d$12 = {
209
+ get() {
210
+ return this[_m$].children;
211
+ },
212
+ enumerable: true,
213
+ configurable: true
214
+ };
215
+ function _P$7(_p20, _p21) {
216
+ this[_m$] = _p20;
217
+ this.value = _p21;
218
+ Object.defineProperty(this, "children", _d$12);
219
+ }
220
+ _P$7.prototype = Object.prototype;
221
+ var _d$13 = {
222
+ get() {
223
+ return this[_m$].state;
224
+ },
225
+ enumerable: true,
226
+ configurable: true
227
+ };
228
+ var _d$14 = {
229
+ get() {
230
+ const render = this[_m$2];
231
+ const internal = this[_m$3];
232
+ return InternalModalContext(new _P$7(render, internal));
233
+ },
234
+ enumerable: true,
235
+ configurable: true
236
+ };
237
+ function _P$8(_p22, _p23, _p24) {
238
+ this[_m$] = _p22;
239
+ this[_m$2] = _p23;
240
+ this[_m$3] = _p24;
241
+ Object.defineProperty(this, "value", _d$13);
242
+ Object.defineProperty(this, "children", _d$14);
243
+ }
244
+ _P$8.prototype = Object.prototype;
245
+ var _d$15 = {
246
+ get() {
247
+ return this[_m$].isEntering || void 0;
248
+ },
249
+ enumerable: true,
250
+ configurable: true
251
+ };
252
+ var _d$16 = {
253
+ get() {
254
+ return this[_m$].isExiting || void 0;
255
+ },
256
+ enumerable: true,
257
+ configurable: true
258
+ };
259
+ var _d$17 = {
260
+ get() {
261
+ const args = this[_m$2];
262
+ const render = this[_m$3];
263
+ const internal = this[_m$4];
264
+ return OverlayTriggerStateContext(new _P$8(args, render, internal));
265
+ },
266
+ enumerable: true,
267
+ configurable: true
268
+ };
269
+ function _P$9(_p25, _p26, _p27, _p28, _p29) {
270
+ this[_m$] = _p25;
271
+ this[_m$2] = _p26;
272
+ this[_m$3] = _p27;
273
+ this[_m$4] = _p28;
274
+ this.ref = _p29;
275
+ Object.defineProperty(this, "data-entering", _d$15);
276
+ Object.defineProperty(this, "data-exiting", _d$16);
277
+ Object.defineProperty(this, "children", _d$17);
278
+ }
279
+ _P$9.prototype = Object.prototype;
280
+ const ModalContext = createContext(null);
281
+ const InternalModalContext = createContext(null);
282
+ function Modal(input) {
283
+ if (useContext(InternalModalContext)) return ModalContent(input);
284
+ return ModalOverlay(mergeProps$1(() => {
285
+ return omit(input, "children", "ref", "class", "style", "render");
286
+ }, new _P$(input)));
287
+ }
288
+ function ModalContent(props) {
289
+ const context = useContext(InternalModalContext);
290
+ if (!context) throw new Error("Modal requires ModalOverlay");
291
+ const render = createRenderProps(mergeProps(props, {
292
+ defaultClass: "solid2-aria-Modal",
293
+ get values() {
294
+ return context.values;
295
+ }
296
+ }));
297
+ return dom.div(mergeProps$1(() => {
298
+ return mergeProps(filterDOMProps(props, { global: true }), merge(() => context.modalProps ?? {}), render);
299
+ }, new _P$4(context, render, [(element) => {
300
+ context.setModalRef(element);
301
+ }, (element) => {
302
+ assignRef(untrack(() => props.ref), element);
303
+ }])));
304
+ }
305
+ function ModalOverlay(input) {
306
+ const [props, overlayRef, setOverlayRef] = createContextProps(input, untrack(() => input.ref), ModalContext);
307
+ const context = useContext(OverlayTriggerStateContext);
308
+ const local = createOverlayTriggerState(props);
309
+ const state = untrack(() => props.isOpen !== void 0 || props.defaultOpen !== void 0 || !context) ? local : requireValue(context, "Expected context");
310
+ const [modalRef, setModalRef] = createSignal(null, { ownedWrite: true });
311
+ const exiting = createExitAnimation(modalRef, () => state.isOpen, (element) => untrack(() => props.onExit)?.(element));
312
+ return Show(new _P$6(state, exiting, props, overlayRef, setOverlayRef, modalRef, setModalRef));
313
+ }
314
+ function ModalOverlayInner(args) {
315
+ onSettled(() => () => {
316
+ args.setModalRef(null);
317
+ });
318
+ const entering = createEnterAnimation(untrack(() => args.modalRef), true, (element) => untrack(() => args.props.onEnter)?.(element));
319
+ const values = {
320
+ get isEntering() {
321
+ return args.props.isEntering === true || entering();
322
+ },
323
+ get isExiting() {
324
+ return args.props.isExiting === true || args.exiting();
325
+ },
326
+ get state() {
327
+ return args.state;
328
+ }
329
+ };
330
+ const aria = createModalOverlay(mergeProps(merge(() => args.props ?? {}), { get isEntering() {
331
+ return values.isEntering;
332
+ } }), untrack(() => args.state), untrack(() => args.modalRef));
333
+ const render = createRenderProps(mergeProps(merge(() => args.props ?? {}), {
334
+ defaultClass: "solid2-aria-ModalOverlay",
335
+ values
336
+ }));
337
+ const internal = {
338
+ get isDismissable() {
339
+ return args.props.isDismissable;
340
+ },
341
+ get modalProps() {
342
+ return aria.modalProps;
343
+ },
344
+ get modalRef() {
345
+ return args.modalRef;
346
+ },
347
+ get setModalRef() {
348
+ return args.setModalRef;
349
+ },
350
+ values
351
+ };
352
+ return dom.div(mergeProps$1(() => {
353
+ return mergeProps(filterDOMProps(args.props, { global: true }), merge(() => aria.underlayProps ?? {}), render);
354
+ }, new _P$9(values, args, render, internal, (element) => {
355
+ args.setOverlayRef(element);
356
+ })));
357
+ }
358
+ export { InternalModalContext, Modal, ModalContext, ModalOverlay };
359
+
360
+ //# sourceMappingURL=modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.js","names":["{context.isDismissable === true && (\n <DismissButton onDismiss={context.values.state.close} />\n )}","{render.children}","setOverlayRef={(element: HTMLDivElement) => {\n setOverlayRef(element);\n }}","setModalRef={(element: HTMLDivElement | null) => {\n setModalRef(element);\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>","dom.div","<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\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>","_$memo","_$mergeProps"],"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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"}