@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":"disclosure.js","names":["dom.div","<dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={(element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n data-disabled={state.isDisabled || undefined}\n >\n <DisclosureGroupStateContext value={state}>\n {render.children}\n </DisclosureGroupStateContext>\n </dom.div>","<dom.div\n {...mergeProps(\n omit(filterDOMProps(props, { global: true }), \"id\"),\n merge(() => focus.focusProps ?? {}),\n render\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n data-expanded={state.isExpanded || undefined}\n data-disabled={values.isDisabled || undefined}\n data-focus-visible-within={values.isFocusVisibleWithin || undefined}\n >\n <DisclosureStateContext value={state}>\n <PanelContext value={panel}>\n <ButtonContext\n value={{\n slots: {\n [DEFAULT_SLOT]: {},\n get trigger() {\n return aria.buttonProps;\n },\n },\n }}\n >\n {render.children}\n </ButtonContext>\n </PanelContext>\n </DisclosureStateContext>\n </dom.div>","<dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => context.panelProps ?? {}),\n merge(() => focus.focusProps ?? {}),\n render\n )}\n role={props.role ?? \"group\"}\n ref={[\n (element: HTMLDivElement) => {\n context.setPanelRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n data-focus-visible-within={values.isFocusVisibleWithin || undefined}\n >\n {render.children}\n </dom.div>","_$mergeProps"],"sources":["../../src/disclosure.tsx"],"sourcesContent":["/*\n * Copyright 2024 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/Disclosure.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 { createDisclosure } from \"@solid2-aria/core/disclosure/create-disclosure\";\nimport type { AriaDisclosureProps } from \"@solid2-aria/core/disclosure/create-disclosure\";\nimport { createFocusRing } from \"@solid2-aria/core/focus/create-focus-ring\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { createDisclosureGroupState } from \"@solid2-aria/stately/disclosure/create-disclosure-group-state\";\nimport type {\n DisclosureGroupState,\n DisclosureGroupProps as GroupOptions,\n} from \"@solid2-aria/stately/disclosure/create-disclosure-group-state\";\nimport { createDisclosureState } from \"@solid2-aria/stately/disclosure/create-disclosure-state\";\nimport type { DisclosureState } from \"@solid2-aria/stately/disclosure/create-disclosure-state\";\nimport type { Key } from \"@solid2-aria/types-shared\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n merge,\n untrack,\n createSignal,\n createContext,\n createUniqueId,\n useContext,\n omit,\n} from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\n\nimport { ButtonContext } from \"./button\";\nimport {\n assignRef,\n dom,\n DEFAULT_SLOT,\n createContextProps,\n createRenderProps,\n} from \"./utils\";\nimport type { ContextValue, Ref, RenderProps, SlotProps } from \"./utils\";\n\nexport interface DisclosureGroupRenderProps {\n isDisabled: boolean;\n state: DisclosureGroupState;\n}\n\nexport interface DisclosureGroupProps\n extends GroupOptions, RenderProps<DisclosureGroupRenderProps> {\n ref?: Ref<HTMLDivElement>;\n}\n\nexport interface DisclosureRenderProps {\n isExpanded: boolean;\n isFocusVisibleWithin: boolean;\n isDisabled: boolean;\n state: DisclosureState;\n}\n\nexport interface DisclosureProps\n extends AriaDisclosureProps, RenderProps<DisclosureRenderProps>, SlotProps {\n id?: Key;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport interface DisclosurePanelRenderProps {\n isFocusVisibleWithin: boolean;\n}\n\nexport interface DisclosurePanelProps extends RenderProps<DisclosurePanelRenderProps> {\n ref?: Ref<HTMLDivElement>;\n role?: \"group\" | \"region\";\n shouldForceMount?: boolean;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n}\n\nexport const DisclosureGroupStateContext =\n createContext<DisclosureGroupState | null>(null);\n\nexport const DisclosureStateContext = createContext<DisclosureState | null>(\n null\n);\n\nexport const DisclosureContext =\n createContext<ContextValue<DisclosureProps, HTMLDivElement>>(null);\n\nconst PanelContext = createContext<{\n panelProps: JSX.HTMLAttributes<HTMLElement>;\n panelRef: Accessor<HTMLDivElement | null>;\n setPanelRef: (element: HTMLDivElement) => void;\n} | null>(null);\n\nexport function DisclosureGroup(props: DisclosureGroupProps): JSX.Element {\n const state = createDisclosureGroupState(props);\n\n const values = {\n get isDisabled() {\n return state.isDisabled;\n },\n state,\n };\n\n const render = createRenderProps(\n mergeProps(props, {\n defaultClass: \"solid2-aria-DisclosureGroup\",\n values,\n })\n );\n\n return (\n <dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={(element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n data-disabled={state.isDisabled || undefined}\n >\n <DisclosureGroupStateContext value={state}>\n {render.children}\n </DisclosureGroupStateContext>\n </dom.div>\n );\n}\n\nexport function Disclosure(input: DisclosureProps): JSX.Element {\n const [props, , setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n DisclosureContext\n );\n\n const group = useContext(DisclosureGroupStateContext);\n const defaultId = createUniqueId();\n const id = () => props.id ?? defaultId;\n\n const options = mergeProps(props, {\n get isDisabled() {\n return props.isDisabled ?? group?.isDisabled;\n },\n get isExpanded() {\n return group ? group.expandedKeys.has(id()) : props.isExpanded;\n },\n onExpandedChange(expanded: boolean) {\n group?.toggleKey(id());\n props.onExpandedChange?.(expanded);\n },\n });\n\n const state = createDisclosureState(options);\n\n const [panelRef, setPanelRef] = createSignal<HTMLDivElement | null>(null, {\n ownedWrite: true,\n });\n\n const aria = createDisclosure(options, state, panelRef);\n const focus = createFocusRing({ within: true });\n\n const values: DisclosureRenderProps = {\n get isDisabled() {\n return options.isDisabled === true;\n },\n get isExpanded() {\n return state.isExpanded;\n },\n get isFocusVisibleWithin() {\n return focus.isFocusVisible;\n },\n state,\n };\n\n const render = createRenderProps(\n mergeProps(props, { defaultClass: \"solid2-aria-Disclosure\", values })\n );\n\n const panel = {\n get panelProps() {\n return aria.panelProps;\n },\n panelRef,\n setPanelRef: (element: HTMLDivElement) => {\n setPanelRef(element);\n },\n };\n\n return (\n <dom.div\n {...mergeProps(\n omit(filterDOMProps(props, { global: true }), \"id\"),\n merge(() => focus.focusProps ?? {}),\n render\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n data-expanded={state.isExpanded || undefined}\n data-disabled={values.isDisabled || undefined}\n data-focus-visible-within={values.isFocusVisibleWithin || undefined}\n >\n <DisclosureStateContext value={state}>\n <PanelContext value={panel}>\n <ButtonContext\n value={{\n slots: {\n [DEFAULT_SLOT]: {},\n get trigger() {\n return aria.buttonProps;\n },\n },\n }}\n >\n {render.children}\n </ButtonContext>\n </PanelContext>\n </DisclosureStateContext>\n </dom.div>\n );\n}\n\nexport function DisclosurePanel(props: DisclosurePanelProps): JSX.Element {\n const context = useContext(PanelContext);\n\n if (!context) {\n throw new Error(\"DisclosurePanel requires Disclosure\");\n }\n\n const focus = createFocusRing({ within: true });\n\n const values = {\n get isFocusVisibleWithin() {\n return focus.isFocusVisible;\n },\n };\n\n const render = createRenderProps(\n mergeProps(props, {\n defaultClass: \"solid2-aria-DisclosurePanel\",\n values,\n })\n );\n\n return (\n <dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => context.panelProps ?? {}),\n merge(() => focus.focusProps ?? {}),\n render\n )}\n role={props.role ?? \"group\"}\n ref={[\n (element: HTMLDivElement) => {\n context.setPanelRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n data-focus-visible-within={values.isFocusVisibleWithin || undefined}\n >\n {render.children}\n </dom.div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /*
2
+ * Copyright 2024 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-aria-components/src/DragAndDrop.tsx.
14
+ * Modified for Solid Aria: contexts and indicator rendering use Solid reactive ownership.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { createContext, untrack, useContext } from "solid-js";
18
+ import { memo } from "@solidjs/web";
19
+ import { isPresent } from "@solid2-aria/core/utils/is-present";
20
+ // src/drag-and-drop.tsx
21
+ const DragAndDropContext = createContext({});
22
+ const DropIndicatorContext = createContext(null);
23
+ function DropIndicator(props) {
24
+ const context = useContext(DropIndicatorContext);
25
+ if (!context) throw new Error("DropIndicator must be rendered in a droppable collection.");
26
+ return context.render(props, untrack(() => props.ref));
27
+ }
28
+ function createRenderDropIndicator(hooks, state) {
29
+ if (!hooks?.createDropIndicator) return;
30
+ return (target) => {
31
+ if (hooks.isVirtualDragging?.() !== true && state?.isDropTarget(target) !== true) return null;
32
+ return memo(() => {
33
+ return memo(() => {
34
+ return !!hooks.renderDropIndicator;
35
+ })() ? hooks.renderDropIndicator(target) : DropIndicator({ target });
36
+ });
37
+ };
38
+ }
39
+ function createDndPersistedKeys(manager, hooks, state) {
40
+ let dropKey = null;
41
+ if (hooks?.isVirtualDragging?.() === true && state?.target?.type === "item") {
42
+ dropKey = state.target.key;
43
+ if (state.target.dropPosition === "after") {
44
+ let next = state.collection.getKeyAfter(dropKey);
45
+ let last = null;
46
+ const level = state.collection.getItem(dropKey)?.level ?? 0;
47
+ while (isPresent(next)) {
48
+ const node = state.collection.getItem(next);
49
+ if (!node) break;
50
+ if (node.type === "item") {
51
+ if ((node.level ?? 0) <= level) break;
52
+ last = next;
53
+ }
54
+ next = state.collection.getKeyAfter(next);
55
+ }
56
+ dropKey = next ?? last ?? dropKey;
57
+ }
58
+ }
59
+ const keys = /* @__PURE__ */ new Set();
60
+ if (isPresent(manager.focusedKey)) keys.add(manager.focusedKey);
61
+ if (isPresent(dropKey)) keys.add(dropKey);
62
+ return keys;
63
+ }
64
+ export { DragAndDropContext, DropIndicator, DropIndicatorContext, createDndPersistedKeys, createRenderDropIndicator };
65
+
66
+ //# sourceMappingURL=drag-and-drop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drag-and-drop.js","names":["{hooks.renderDropIndicator ? (\n hooks.renderDropIndicator(target)\n ) : (\n <DropIndicator target={target} />\n )}","_$memo"],"sources":["../../src/drag-and-drop.tsx"],"sourcesContent":["/*\n * Copyright 2024 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/DragAndDrop.tsx.\n * Modified for Solid Aria: contexts and indicator rendering use Solid reactive ownership.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport type { DropIndicatorProps as AriaDropIndicatorProps } from \"@solid2-aria/core/dnd/create-drop-indicator\";\nimport { isPresent } from \"@solid2-aria/core/utils/is-present\";\nimport type { DraggableCollectionState } from \"@solid2-aria/stately/dnd/create-draggable-collection-state\";\nimport type { DroppableCollectionState } from \"@solid2-aria/stately/dnd/create-droppable-collection-state\";\nimport type { MultipleSelectionManager } from \"@solid2-aria/stately/selection/types\";\nimport type { ItemDropTarget, Key } from \"@solid2-aria/types-shared\";\nimport type { JSX } from \"@solidjs/web\";\nimport { untrack, createContext, useContext } from \"solid-js\";\n\nimport type { DragAndDropHooks } from \"./create-drag-and-drop\";\nimport type { Ref, RenderProps } from \"./utils\";\n\nexport interface DragAndDropContextValue {\n // oxlint-disable-next-line typescript/no-explicit-any -- The collection owner and its descendants share one item type through this context.\n dragAndDropHooks?: DragAndDropHooks<any>;\n dragState?: DraggableCollectionState;\n dropState?: DroppableCollectionState;\n}\n\nexport interface DropIndicatorRenderProps {\n isDropTarget: boolean;\n}\n\nexport interface DropIndicatorProps\n extends\n Omit<AriaDropIndicatorProps, \"activateButtonRef\">,\n RenderProps<DropIndicatorRenderProps> {\n ref?: Ref<HTMLElement>;\n}\n\nexport const DragAndDropContext = createContext<DragAndDropContextValue>({});\n\nexport const DropIndicatorContext = createContext<{\n render: (props: DropIndicatorProps, ref?: Ref<HTMLElement>) => JSX.Element;\n} | null>(null);\n\nexport function DropIndicator(props: DropIndicatorProps): JSX.Element {\n const context = useContext(DropIndicatorContext);\n\n if (!context) {\n throw new Error(\n \"DropIndicator must be rendered in a droppable collection.\"\n );\n }\n\n return context.render(\n props,\n untrack(() => props.ref)\n );\n}\n\nexport function createRenderDropIndicator<T>(\n hooks?: DragAndDropHooks<T>,\n state?: DroppableCollectionState\n): ((target: ItemDropTarget) => JSX.Element) | undefined {\n if (!hooks?.createDropIndicator) {\n return undefined;\n }\n\n return (target): JSX.Element => {\n if (\n hooks.isVirtualDragging?.() !== true &&\n state?.isDropTarget(target) !== true\n ) {\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 <>\n {hooks.renderDropIndicator ? (\n hooks.renderDropIndicator(target)\n ) : (\n <DropIndicator target={target} />\n )}\n </>\n );\n };\n}\n\nexport function createDndPersistedKeys<T>(\n manager: MultipleSelectionManager,\n hooks?: DragAndDropHooks<T>,\n state?: DroppableCollectionState\n): Set<Key> {\n let dropKey: Key | null = null;\n\n if (hooks?.isVirtualDragging?.() === true && state?.target?.type === \"item\") {\n dropKey = state.target.key;\n\n if (state.target.dropPosition === \"after\") {\n let next = state.collection.getKeyAfter(dropKey);\n let last: Key | null = null;\n const level = state.collection.getItem(dropKey)?.level ?? 0;\n\n while (isPresent(next)) {\n const node = state.collection.getItem(next);\n\n if (!node) {\n break;\n }\n\n if (node.type === \"item\") {\n if ((node.level ?? 0) <= level) {\n break;\n }\n\n last = next;\n }\n\n next = state.collection.getKeyAfter(next);\n }\n\n dropKey = next ?? last ?? dropKey;\n }\n }\n\n const keys = new Set<Key>();\n\n if (isPresent(manager.focusedKey)) {\n keys.add(manager.focusedKey);\n }\n\n if (isPresent(dropKey)) {\n keys.add(dropKey);\n }\n\n return keys;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA+CA,MAAa,qBAAqB,cAAuC,CAAC,CAAC;AAE3E,MAAa,uBAAuB,cAE1B,IAAI;AAEd,SAAgB,cAAc,OAAwC;CACpE,MAAM,UAAU,WAAW,oBAAoB;CAE/C,IAAI,CAAC,SACH,MAAM,IAAI,MACR,2DACF;CAGF,OAAO,QAAQ,OACb,OACA,cAAc,MAAM,GAAG,CACzB;AACF;AAEA,SAAgB,0BACd,OACA,OACuD;CACvD,IAAI,CAAC,OAAO,qBACV;CAGF,QAAQ,WAAwB;EAC9B,IACE,MAAM,oBAAoB,MAAM,QAChC,OAAO,aAAa,MAAM,MAAM,MAGhC,OAAO;EAGT,OAEIA,WAAAA;;IAAC,OAAA,CAAA,CAAA,MAAM;GAIN,CAAA,CAAC,CAAD,IAHC,MAAM,oBAAoB,MAAM,IAAA,cAEhC,EAAuB,OAAS,CAAA;EACjC,CAAA;CAGP;AACF;AAEA,SAAgB,uBACd,SACA,OACA,OACU;CACV,IAAI,UAAsB;CAE1B,IAAI,OAAO,oBAAoB,MAAM,QAAQ,OAAO,QAAQ,SAAS,QAAQ;EAC3E,UAAU,MAAM,OAAO;EAEvB,IAAI,MAAM,OAAO,iBAAiB,SAAS;GACzC,IAAI,OAAO,MAAM,WAAW,YAAY,OAAO;GAC/C,IAAI,OAAmB;GACvB,MAAM,QAAQ,MAAM,WAAW,QAAQ,OAAO,CAAC,EAAE,SAAS;GAE1D,OAAO,UAAU,IAAI,GAAG;IACtB,MAAM,OAAO,MAAM,WAAW,QAAQ,IAAI;IAE1C,IAAI,CAAC,MACH;IAGF,IAAI,KAAK,SAAS,QAAQ;KACxB,KAAK,KAAK,SAAS,MAAM,OACvB;KAGF,OAAO;IACT;IAEA,OAAO,MAAM,WAAW,YAAY,IAAI;GAC1C;GAEA,UAAU,QAAQ,QAAQ;EAC5B;CACF;CAEA,MAAM,uBAAO,IAAI,IAAS;CAE1B,IAAI,UAAU,QAAQ,UAAU,GAC9B,KAAK,IAAI,QAAQ,UAAU;CAG7B,IAAI,UAAU,OAAO,GACnB,KAAK,IAAI,OAAO;CAGlB,OAAO;AACT"}
@@ -0,0 +1,241 @@
1
+ /*
2
+ * Copyright 2023 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/DropZone.tsx.
14
+ * Modified for Solid Aria: DOM refs, focus, drag, clipboard and render state use Solid factories; 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, dom } from "./utils.js";
18
+ import { TextContext } from "./text.js";
19
+ import intl_default from "./intl/index.js";
20
+ import { mergeProps } from "@solid2-aria/core/utils/merge-props";
21
+ import { createContext, createSignal, merge, untrack } from "solid-js";
22
+ import { memo, mergeProps as mergeProps$1, ssrElement } from "@solidjs/web";
23
+ import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
24
+ import { createFocusRing } from "@solid2-aria/core/focus/create-focus-ring";
25
+ import { createHover } from "@solid2-aria/core/interactions/create-hover";
26
+ import { createButton } from "@solid2-aria/core/button/create-button";
27
+ import { createVisuallyHidden } from "@solid2-aria/core/visually-hidden/visually-hidden";
28
+ import { createLocalizedStringFormatter } from "@solid2-aria/core/i18n/create-localized-string-formatter";
29
+ import { createClipboard } from "@solid2-aria/core/dnd/create-clipboard";
30
+ import { createDrop } from "@solid2-aria/core/dnd/create-drop";
31
+ import { createSlotId } from "@solid2-aria/core/utils/create-id";
32
+ import { createLabels } from "@solid2-aria/core/utils/create-labels";
33
+ import { focusWithoutScrolling } from "@solid2-aria/core/utils/focus-without-scrolling";
34
+ import { isFocusable } from "@solid2-aria/core/utils/is-focusable";
35
+ // src/drop-zone.tsx
36
+ var _m$ = Symbol();
37
+ var _m$2 = Symbol();
38
+ var _m$3 = Symbol();
39
+ var _m$4 = Symbol();
40
+ var _m$5 = Symbol();
41
+ var _m$6 = Symbol();
42
+ var _m$7 = Symbol();
43
+ var _m$8 = Symbol();
44
+ var _m$9 = Symbol();
45
+ var _m$10 = Symbol();
46
+ var _m$11 = Symbol();
47
+ var _m$12 = Symbol();
48
+ var _d$ = {
49
+ get() {
50
+ return this[_m$].slot ?? void 0;
51
+ },
52
+ enumerable: true,
53
+ configurable: true
54
+ };
55
+ var _d$2 = {
56
+ get() {
57
+ return this[_m$2].isHovered || void 0;
58
+ },
59
+ enumerable: true,
60
+ configurable: true
61
+ };
62
+ var _d$3 = {
63
+ get() {
64
+ return this[_m$3].isFocused || void 0;
65
+ },
66
+ enumerable: true,
67
+ configurable: true
68
+ };
69
+ var _d$4 = {
70
+ get() {
71
+ return this[_m$3].isFocusVisible || void 0;
72
+ },
73
+ enumerable: true,
74
+ configurable: true
75
+ };
76
+ var _d$5 = {
77
+ get() {
78
+ return this[_m$4].isDropTarget || void 0;
79
+ },
80
+ enumerable: true,
81
+ configurable: true
82
+ };
83
+ var _d$6 = {
84
+ get() {
85
+ return this[_m$].isDisabled ?? void 0;
86
+ },
87
+ enumerable: true,
88
+ configurable: true
89
+ };
90
+ var _d$7 = {
91
+ get() {
92
+ const hidden = this[_m$5];
93
+ const button = this[_m$6];
94
+ const focus = this[_m$3];
95
+ const clipboard = this[_m$7];
96
+ const labels = this[_m$8];
97
+ const render = this[_m$9];
98
+ return [ssrElement("div", hidden.visuallyHiddenProps, () => {
99
+ return ssrElement("button", mergeProps(merge(() => button.buttonProps ?? {}), merge(() => focus.focusProps ?? {}), merge(() => clipboard.clipboardProps ?? {}), labels), void 0, false);
100
+ }, true), memo(() => {
101
+ return render.children;
102
+ })];
103
+ },
104
+ enumerable: true,
105
+ configurable: true
106
+ };
107
+ function _P$(_p, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9, _p0, _p1) {
108
+ this[_m$] = _p;
109
+ this[_m$2] = _p2;
110
+ this[_m$3] = _p3;
111
+ this[_m$4] = _p4;
112
+ this[_m$5] = _p5;
113
+ this[_m$6] = _p6;
114
+ this[_m$7] = _p7;
115
+ this[_m$8] = _p8;
116
+ this[_m$9] = _p9;
117
+ this.ref = _p0;
118
+ Object.defineProperty(this, "slot", _d$);
119
+ Object.defineProperty(this, "data-hovered", _d$2);
120
+ Object.defineProperty(this, "data-focused", _d$3);
121
+ Object.defineProperty(this, "data-focus-visible", _d$4);
122
+ Object.defineProperty(this, "data-drop-target", _d$5);
123
+ Object.defineProperty(this, "data-disabled", _d$6);
124
+ this.onClick = _p1;
125
+ Object.defineProperty(this, "children", _d$7);
126
+ }
127
+ _P$.prototype = Object.prototype;
128
+ var _d$8 = {
129
+ get() {
130
+ const props = this[_m$];
131
+ const render = this[_m$2];
132
+ const drop = this[_m$3];
133
+ const hover = this[_m$4];
134
+ const focus = this[_m$5];
135
+ const hidden = this[_m$6];
136
+ const button = this[_m$7];
137
+ const clipboard = this[_m$8];
138
+ const labels = this[_m$9];
139
+ const setRef = this[_m$10];
140
+ const ref = this[_m$11];
141
+ const buttonRef = this[_m$12];
142
+ return dom.div(mergeProps$1(() => {
143
+ return mergeProps(filterDOMProps(props, { global: true }), render, merge(() => drop.dropProps ?? {}), merge(() => hover.hoverProps ?? {}));
144
+ }, new _P$(props, hover, focus, drop, hidden, button, clipboard, labels, render, (element) => {
145
+ setRef(element);
146
+ }, (event) => {
147
+ let target = event.target instanceof HTMLElement ? event.target : null;
148
+ while (target && ref()?.contains(target) === true) {
149
+ if (isFocusable(target)) break;
150
+ const focusTarget = buttonRef();
151
+ if (target === ref() && focusTarget) {
152
+ focusWithoutScrolling(focusTarget);
153
+ break;
154
+ }
155
+ target = target.parentElement;
156
+ }
157
+ })));
158
+ },
159
+ enumerable: true,
160
+ configurable: true
161
+ };
162
+ function _P$2(_p10, _p11, _p12, _p13, _p14, _p15, _p16, _p17, _p18, _p19, _p20, _p21, _p22) {
163
+ this[_m$] = _p10;
164
+ this[_m$2] = _p11;
165
+ this[_m$3] = _p12;
166
+ this[_m$4] = _p13;
167
+ this[_m$5] = _p14;
168
+ this[_m$6] = _p15;
169
+ this[_m$7] = _p16;
170
+ this[_m$8] = _p17;
171
+ this[_m$9] = _p18;
172
+ this[_m$10] = _p19;
173
+ this[_m$11] = _p20;
174
+ this[_m$12] = _p21;
175
+ this.value = _p22;
176
+ Object.defineProperty(this, "children", _d$8);
177
+ }
178
+ _P$2.prototype = Object.prototype;
179
+ const DropZoneContext = createContext(null);
180
+ function DropZone(input) {
181
+ const [props, ref, setRef] = createContextProps(input, untrack(() => input.ref), DropZoneContext);
182
+ const [buttonRef, setButtonRef] = createSignal(null, { ownedWrite: true });
183
+ const drop = createDrop(mergeProps(props, {
184
+ hasDropButton: true,
185
+ ref: buttonRef
186
+ }));
187
+ const button = createButton(mergeProps({ get children() {
188
+ return props.children;
189
+ } }, drop.dropButtonProps ?? {}), buttonRef);
190
+ const hover = createHover(props);
191
+ const focus = createFocusRing();
192
+ const hidden = createVisuallyHidden();
193
+ const textId = createSlotId();
194
+ const formatter = createLocalizedStringFormatter(intl_default, "@solid2-aria/components");
195
+ const labels = createLabels({
196
+ get "aria-label"() {
197
+ return props["aria-label"] ?? formatter.format("dropzoneLabel");
198
+ },
199
+ get "aria-labelledby"() {
200
+ return [textId(), props["aria-labelledby"]].filter(Boolean).join(" ") || void 0;
201
+ }
202
+ });
203
+ const clipboard = createClipboard({
204
+ get isDisabled() {
205
+ return props.isDisabled;
206
+ },
207
+ onPaste: (items) => props.onDrop?.({
208
+ dropOperation: "copy",
209
+ items,
210
+ type: "drop",
211
+ x: 0,
212
+ y: 0
213
+ })
214
+ });
215
+ const render = createRenderProps(mergeProps(props, {
216
+ defaultClass: "solid2-aria-DropZone",
217
+ values: {
218
+ get isDisabled() {
219
+ return props.isDisabled === true;
220
+ },
221
+ get isDropTarget() {
222
+ return drop.isDropTarget;
223
+ },
224
+ get isFocusVisible() {
225
+ return focus.isFocusVisible;
226
+ },
227
+ get isFocused() {
228
+ return focus.isFocused;
229
+ },
230
+ get isHovered() {
231
+ return hover.isHovered;
232
+ }
233
+ }
234
+ }));
235
+ return TextContext(new _P$2(props, render, drop, hover, focus, hidden, button, clipboard, labels, setRef, ref, buttonRef, { slots: { label: { get id() {
236
+ return textId();
237
+ } } } }));
238
+ }
239
+ export { DropZone, DropZoneContext };
240
+
241
+ //# sourceMappingURL=drop-zone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drop-zone.js","names":["<div {...hidden.visuallyHiddenProps}>\n <button\n {...mergeProps(\n merge(() => button.buttonProps ?? {}),\n merge(() => focus.focusProps ?? {}),\n merge(() => clipboard.clipboardProps ?? {}),\n labels\n )}\n\n ref={(element: HTMLButtonElement) => {\n setButtonRef(element);\n }}\n />\n </div>","<button\n {...mergeProps(\n merge(() => button.buttonProps ?? {}),\n merge(() => focus.focusProps ?? {}),\n merge(() => clipboard.clipboardProps ?? {}),\n labels\n )}\n\n ref={(element: HTMLButtonElement) => {\n setButtonRef(element);\n }}\n />","{render.children}","dom.div","<dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n render,\n merge(() => drop.dropProps ?? {}),\n merge(() => hover.hoverProps ?? {})\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n data-hovered={hover.isHovered || undefined}\n data-focused={focus.isFocused || undefined}\n data-focus-visible={focus.isFocusVisible || undefined}\n data-drop-target={drop.isDropTarget || undefined}\n data-disabled={props.isDisabled ?? undefined}\n onClick={(event) => {\n let target =\n event.target instanceof HTMLElement ? event.target : null;\n\n while (target && ref()?.contains(target) === true) {\n if (isFocusable(target)) {\n break;\n }\n\n const focusTarget = buttonRef();\n\n if (target === ref() && focusTarget) {\n focusWithoutScrolling(focusTarget);\n break;\n }\n\n target = target.parentElement;\n }\n }}\n >\n <div {...hidden.visuallyHiddenProps}>\n <button\n {...mergeProps(\n merge(() => button.buttonProps ?? {}),\n merge(() => focus.focusProps ?? {}),\n merge(() => clipboard.clipboardProps ?? {}),\n labels\n )}\n\n ref={(element: HTMLButtonElement) => {\n setButtonRef(element);\n }}\n />\n </div>\n {render.children}\n </dom.div>","_$ssrElement","_$memo","_$mergeProps","intlMessages"],"sources":["../../src/drop-zone.tsx"],"sourcesContent":["/*\n * Copyright 2023 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/DropZone.tsx.\n * Modified for Solid Aria: DOM refs, focus, drag, clipboard and render state use Solid factories; 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 { createButton } from \"@solid2-aria/core/button/create-button\";\nimport { createClipboard } from \"@solid2-aria/core/dnd/create-clipboard\";\nimport { createDrop } from \"@solid2-aria/core/dnd/create-drop\";\nimport type { DropOptions } from \"@solid2-aria/core/dnd/create-drop\";\nimport { createFocusRing } from \"@solid2-aria/core/focus/create-focus-ring\";\nimport { createLocalizedStringFormatter } from \"@solid2-aria/core/i18n/create-localized-string-formatter\";\nimport { createHover } from \"@solid2-aria/core/interactions/create-hover\";\nimport { createSlotId } from \"@solid2-aria/core/utils/create-id\";\nimport { createLabels } from \"@solid2-aria/core/utils/create-labels\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { focusWithoutScrolling } from \"@solid2-aria/core/utils/focus-without-scrolling\";\nimport { isFocusable } from \"@solid2-aria/core/utils/is-focusable\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { createVisuallyHidden } from \"@solid2-aria/core/visually-hidden/visually-hidden\";\nimport type { AriaLabelingProps, HoverEvents } from \"@solid2-aria/types-shared\";\nimport type { GlobalDOMAttributes } from \"@solid2-aria/types-shared-web\";\nimport { merge, untrack, createSignal, createContext } from \"solid-js\";\n\nimport intlMessages from \"../intl\";\nimport { TextContext } from \"./text\";\nimport { dom, createContextProps, createRenderProps } from \"./utils\";\nimport type { ContextValue, RenderProps, SlotProps, Ref } from \"./utils\";\n\nexport interface DropZoneRenderProps {\n isHovered: boolean;\n isFocused: boolean;\n isFocusVisible: boolean;\n isDropTarget: boolean;\n isDisabled: boolean;\n}\n\nexport interface DropZoneProps\n extends\n Omit<DropOptions, \"getDropOperationForPoint\" | \"ref\" | \"hasDropButton\">,\n HoverEvents,\n RenderProps<DropZoneRenderProps>,\n SlotProps,\n AriaLabelingProps,\n GlobalDOMAttributes<HTMLDivElement> {\n ref?: Ref<HTMLDivElement>;\n}\n\nexport const DropZoneContext =\n createContext<ContextValue<DropZoneProps, HTMLDivElement>>(null);\n\nexport function DropZone(input: DropZoneProps) {\n const [props, ref, setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n DropZoneContext\n );\n\n const [buttonRef, setButtonRef] = createSignal<HTMLButtonElement | null>(\n null,\n { ownedWrite: true }\n );\n\n const drop = createDrop(\n mergeProps(props, { hasDropButton: true, ref: buttonRef })\n );\n\n const button = createButton(\n mergeProps(\n {\n get children() {\n return props.children;\n },\n },\n drop.dropButtonProps ?? {}\n ),\n buttonRef\n );\n\n const hover = createHover(props);\n const focus = createFocusRing();\n const hidden = createVisuallyHidden();\n const textId = createSlotId();\n\n const formatter = createLocalizedStringFormatter(\n intlMessages,\n \"@solid2-aria/components\"\n );\n\n const labels = createLabels({\n get \"aria-label\"() {\n return props[\"aria-label\"] ?? formatter.format(\"dropzoneLabel\");\n },\n get \"aria-labelledby\"() {\n return (\n [textId(), props[\"aria-labelledby\"]].filter(Boolean).join(\" \") ||\n undefined\n );\n },\n });\n\n const clipboard = createClipboard({\n get isDisabled() {\n return props.isDisabled;\n },\n onPaste: (items) =>\n props.onDrop?.({\n dropOperation: \"copy\",\n items,\n type: \"drop\",\n x: 0,\n y: 0,\n }),\n });\n\n const values = {\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isDropTarget() {\n return drop.isDropTarget;\n },\n get isFocusVisible() {\n return focus.isFocusVisible;\n },\n get isFocused() {\n return focus.isFocused;\n },\n get isHovered() {\n return hover.isHovered;\n },\n };\n\n const render = createRenderProps(\n mergeProps(props, { defaultClass: \"solid2-aria-DropZone\", values })\n );\n\n return (\n <TextContext\n value={{\n slots: {\n label: {\n get id() {\n return textId();\n },\n },\n },\n }}\n >\n <dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n render,\n merge(() => drop.dropProps ?? {}),\n merge(() => hover.hoverProps ?? {})\n )}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n data-hovered={hover.isHovered || undefined}\n data-focused={focus.isFocused || undefined}\n data-focus-visible={focus.isFocusVisible || undefined}\n data-drop-target={drop.isDropTarget || undefined}\n data-disabled={props.isDisabled ?? undefined}\n onClick={(event) => {\n let target =\n event.target instanceof HTMLElement ? event.target : null;\n\n while (target && ref()?.contains(target) === true) {\n if (isFocusable(target)) {\n break;\n }\n\n const focusTarget = buttonRef();\n\n if (target === ref() && focusTarget) {\n focusWithoutScrolling(focusTarget);\n break;\n }\n\n target = target.parentElement;\n }\n }}\n >\n <div {...hidden.visuallyHiddenProps}>\n <button\n {...mergeProps(\n merge(() => button.buttonProps ?? {}),\n merge(() => focus.focusProps ?? {}),\n merge(() => clipboard.clipboardProps ?? {}),\n labels\n )}\n\n ref={(element: HTMLButtonElement) => {\n setButtonRef(element);\n }}\n />\n </div>\n {render.children}\n </dom.div>\n </TextContext>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /*
2
+ * Copyright 2023 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/FieldError.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 { createRenderProps } from "./utils.js";
18
+ import { Text } from "./text.js";
19
+ import { mergeProps } from "@solid2-aria/core/utils/merge-props";
20
+ import { Show, createContext, untrack, useContext } from "solid-js";
21
+ import { applyRef, mergeProps as mergeProps$1 } from "@solidjs/web";
22
+ import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
23
+ // src/field-error.tsx
24
+ var _m$ = Symbol();
25
+ var _d$ = {
26
+ get() {
27
+ const v = this[_m$];
28
+ return v();
29
+ },
30
+ enumerable: true,
31
+ configurable: true
32
+ };
33
+ function _P$(_p) {
34
+ this[_m$] = _p;
35
+ Object.defineProperty(this, "validation", _d$);
36
+ }
37
+ _P$.prototype = Object.prototype;
38
+ var _d$2 = {
39
+ get() {
40
+ const validation = this[_m$];
41
+ return validation?.isInvalid === true && validation;
42
+ },
43
+ enumerable: true,
44
+ configurable: true
45
+ };
46
+ function _P$2(_p2, _p3) {
47
+ this[_m$] = _p2;
48
+ Object.defineProperty(this, "when", _d$2);
49
+ this.children = _p3;
50
+ }
51
+ _P$2.prototype = Object.prototype;
52
+ var _d$3 = {
53
+ get() {
54
+ return this[_m$].elementType;
55
+ },
56
+ enumerable: true,
57
+ configurable: true
58
+ };
59
+ function _P$3(_p4, _p5) {
60
+ this[_m$] = _p4;
61
+ this.slot = _p5;
62
+ Object.defineProperty(this, "elementType", _d$3);
63
+ this.ref = (r$) => {
64
+ const props = this[_m$];
65
+ var _ref$ = props.ref;
66
+ typeof _ref$ === "function" || Array.isArray(_ref$) ? applyRef(_ref$, r$) : props.ref = r$;
67
+ };
68
+ }
69
+ _P$3.prototype = Object.prototype;
70
+ const FieldErrorContext = createContext(null);
71
+ function FieldError(props) {
72
+ const validation = useContext(FieldErrorContext);
73
+ return Show(new _P$2(validation, (v) => FieldErrorInner(mergeProps$1(props, new _P$(v)))));
74
+ }
75
+ function FieldErrorInner(props) {
76
+ const { validation } = untrack(() => props);
77
+ const render = createRenderProps(mergeProps(props, {
78
+ get defaultChildren() {
79
+ return validation.validationErrors.join(" ") || void 0;
80
+ },
81
+ defaultClass: "solid2-aria-FieldError",
82
+ values: validation
83
+ }));
84
+ return Text(mergeProps$1(() => {
85
+ return filterDOMProps(props, { global: true });
86
+ }, render, new _P$3(props, "errorMessage")));
87
+ }
88
+ export { FieldError, FieldErrorContext };
89
+
90
+ //# sourceMappingURL=field-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-error.js","names":["ref={props.ref}","<FieldErrorInner {...props} validation={v()} />","<Text\n {...filterDOMProps(props, { global: true })}\n {...render}\n slot=\"errorMessage\"\n elementType={props.elementType}\n ref={props.ref}\n />","_$applyRef","_$mergeProps"],"sources":["../../src/field-error.tsx"],"sourcesContent":["/*\n * Copyright 2023 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/FieldError.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 { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport type { ValidationResult } from \"@solid2-aria/types-shared\";\nimport type { JSX } from \"@solidjs/web\";\nimport { untrack, createContext, Show, useContext } from \"solid-js\";\n\nimport { Text } from \"./text\";\nimport { createRenderProps } from \"./utils\";\nimport type { Ref, SlotProps, RenderProps } from \"./utils\";\n\nexport type FieldErrorRenderProps = ValidationResult;\n\nexport interface FieldErrorProps\n extends RenderProps<FieldErrorRenderProps>, SlotProps {\n id?: string;\n elementType?: keyof JSX.IntrinsicElements;\n ref?: Ref<HTMLElement>;\n}\n\nexport const FieldErrorContext = createContext<ValidationResult | null>(null);\n\nexport function FieldError(props: FieldErrorProps): JSX.Element {\n const validation = useContext(FieldErrorContext);\n\n return (\n <Show when={validation?.isInvalid === true && validation}>\n {(v) => <FieldErrorInner {...props} validation={v()} />}\n </Show>\n );\n}\n\nfunction FieldErrorInner(\n props: FieldErrorProps & { validation: ValidationResult }\n): JSX.Element {\n const { validation } = untrack(() => props);\n\n const render = createRenderProps(\n mergeProps(props, {\n get defaultChildren() {\n return validation.validationErrors.join(\" \") || undefined;\n },\n defaultClass: \"solid2-aria-FieldError\",\n values: validation,\n })\n );\n\n return (\n <Text\n {...filterDOMProps(props, { global: true })}\n {...render}\n slot=\"errorMessage\"\n elementType={props.elementType}\n ref={props.ref}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;EA2C0C,OAAY,EAAE;;;;;;;;;;;;;EAD9C,OAAM,YAAY,cAAc,QAAQ;;;;;;;;;;;;;EA0B5C,O,SAAa,CAAM;;;;;;;;;CACnB,KAAA,OAAA,OAAA;;EAAK,IAAA,QAAA,MAAM;EAAX,OAAA,UAAA,cAAA,MAAA,QAAA,KAAc,IAAdA,SAAAA,OAAAA,EAAc,IAAd,MAAW,MAAXA;;;;AAjCN,MAAa,oBAAoB,cAAuC,IAAI;AAE5E,SAAgB,WAAW,OAAqC;CAC9D,MAAM,aAAa,WAAW,iBAAiB;CAE/C,OAAA,KACE,IAAA,KAAY,aACR,MAAA,gBAAMC,aAAqB,OAArB,IAAA,IAAwC,CAAM,CAAA,CAAA,CAClD,CAAA;AAEV;AAEA,SAAS,gBACP,OACa;CACb,MAAM,EAAE,eAAe,cAAc,KAAK;CAE1C,MAAM,SAAS,kBACb,WAAW,OAAO;EAChB,IAAI,kBAAkB;GACpB,OAAO,WAAW,iBAAiB,KAAK,GAAG,KAAK,KAAA;EAClD;EACA,cAAc;EACd,QAAQ;CACV,CAAC,CACH;CAEA,OAAA,KACEC,mBACE;EAAI,OAAA,eAAe,OAAO,EAAE,QAAQ,KAAK,CAAC;CAAC,GACvC,QAFN,IAAA,KAIe,OADb,cAGD,CAAA,CAAA;AAEL"}
@@ -0,0 +1,98 @@
1
+ /*
2
+ * Copyright 2023 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/FileTrigger.tsx.
14
+ * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { assignRef, dom } from "./utils.js";
18
+ import { createSignal, untrack } from "solid-js";
19
+ import { mergeProps } from "@solidjs/web";
20
+ import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
21
+ import { PressResponder } from "@solid2-aria/core/interactions/press-responder";
22
+ // src/file-trigger.tsx
23
+ var _m$ = Symbol();
24
+ var _d$ = {
25
+ get() {
26
+ return this[_m$].children;
27
+ },
28
+ enumerable: true,
29
+ configurable: true
30
+ };
31
+ function _P$(_p, _p2) {
32
+ this[_m$] = _p;
33
+ this.onPress = _p2;
34
+ Object.defineProperty(this, "children", _d$);
35
+ }
36
+ _P$.prototype = Object.prototype;
37
+ var _d$2 = {
38
+ get() {
39
+ return this[_m$].acceptedFileTypes?.join(",");
40
+ },
41
+ enumerable: true,
42
+ configurable: true
43
+ };
44
+ var _d$3 = {
45
+ get() {
46
+ return this[_m$].allowsMultiple;
47
+ },
48
+ enumerable: true,
49
+ configurable: true
50
+ };
51
+ var _d$4 = {
52
+ get() {
53
+ return this[_m$].defaultCamera;
54
+ },
55
+ enumerable: true,
56
+ configurable: true
57
+ };
58
+ var _d$5 = {
59
+ get() {
60
+ return this[_m$].acceptDirectory === true ? "" : void 0;
61
+ },
62
+ enumerable: true,
63
+ configurable: true
64
+ };
65
+ function _P$2(_p3, _p4, _p5, _p6, _p7, _p8) {
66
+ this[_m$] = _p3;
67
+ this.type = _p4;
68
+ this.style = _p5;
69
+ this.ref = _p6;
70
+ Object.defineProperty(this, "accept", _d$2);
71
+ Object.defineProperty(this, "multiple", _d$3);
72
+ Object.defineProperty(this, "capture", _d$4);
73
+ Object.defineProperty(this, "webkitdirectory", _d$5);
74
+ this.onClick = _p7;
75
+ this.onChange = _p8;
76
+ }
77
+ _P$2.prototype = Object.prototype;
78
+ function FileTrigger(props) {
79
+ const [ref, setRef] = createSignal(null, { ownedWrite: true });
80
+ return [PressResponder(new _P$(props, () => {
81
+ const input = ref();
82
+ if (input) {
83
+ input.value = "";
84
+ input.click();
85
+ }
86
+ })), dom.input(mergeProps(() => {
87
+ return filterDOMProps(props, { global: true });
88
+ }, new _P$2(props, "file", { display: "none" }, [(element) => {
89
+ setRef(element);
90
+ }, (element) => {
91
+ assignRef(untrack(() => props.ref), element);
92
+ }], (event) => {
93
+ event.stopPropagation();
94
+ }, (event) => props.onSelect?.(event.currentTarget.files))))];
95
+ }
96
+ export { FileTrigger };
97
+
98
+ //# sourceMappingURL=file-trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-trigger.js","names":["dom.input","<dom.input\n {...filterDOMProps(props, { global: true })}\n type=\"file\"\n style={{ display: \"none\" }}\n ref={[\n (element: HTMLInputElement) => {\n setRef(element);\n },\n (element: HTMLInputElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n accept={props.acceptedFileTypes?.join(\",\")}\n multiple={props.allowsMultiple}\n capture={props.defaultCamera}\n webkitdirectory={props.acceptDirectory === true ? \"\" : undefined}\n onClick={(event) => {\n event.stopPropagation();\n }}\n onChange={(event) => props.onSelect?.(event.currentTarget.files)}\n />","_$mergeProps"],"sources":["../../src/file-trigger.tsx"],"sourcesContent":["/*\n * Copyright 2023 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/FileTrigger.tsx.\n * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport { PressResponder } from \"@solid2-aria/core/interactions/press-responder\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport type { JSX } from \"@solidjs/web\";\nimport { untrack, createSignal } from \"solid-js\";\n\nimport { assignRef, dom } from \"./utils\";\nimport type { Ref } from \"./utils\";\n\nexport interface FileTriggerProps {\n acceptedFileTypes?: readonly string[];\n allowsMultiple?: boolean;\n defaultCamera?: \"user\" | \"environment\";\n onSelect?: (files: FileList | null) => void;\n children?: JSX.Element;\n acceptDirectory?: boolean;\n ref?: Ref<HTMLInputElement>;\n id?: string;\n}\n\nexport function FileTrigger(props: FileTriggerProps): JSX.Element {\n const [ref, setRef] = createSignal<HTMLInputElement | null>(null, {\n ownedWrite: true,\n });\n\n return (\n <>\n <PressResponder\n onPress={() => {\n const input = ref();\n\n if (input) {\n input.value = \"\";\n input.click();\n }\n }}\n >\n {props.children}\n </PressResponder>\n <dom.input\n {...filterDOMProps(props, { global: true })}\n type=\"file\"\n style={{ display: \"none\" }}\n ref={[\n (element: HTMLInputElement) => {\n setRef(element);\n },\n (element: HTMLInputElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n accept={props.acceptedFileTypes?.join(\",\")}\n multiple={props.allowsMultiple}\n capture={props.defaultCamera}\n webkitdirectory={props.acceptDirectory === true ? \"\" : undefined}\n onClick={(event) => {\n event.stopPropagation();\n }}\n onChange={(event) => props.onSelect?.(event.currentTarget.files)}\n />\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAqDQ,O,SAAC,CAAM;;;;;;;;;;;;;EAiBP,O,SAAQ,CAAM,mBAAmB,KAAK,GAAG;;;;;;;EACzC,O,SAAU,CAAM;;;;;;;EAChB,O,SAAS,CAAM;;;;;;;EACf,O,SAAiB,CAAM,oBAAoB,OAAO,KAAK,KAAA;;;;;;;;;;;;;;;;;;AArC/D,SAAgB,YAAY,OAAsC;CAChE,MAAM,CAAC,KAAK,UAAU,aAAsC,MAAM,EAChE,YAAY,KACd,CAAC;CAED,OACE,CAAA,eACE,IAAA,IAUG,aATc;EACb,MAAM,QAAQ,IAAI;EAElB,IAAI,OAAO;GACT,MAAM,QAAQ;GACd,MAAM,MAAM;EACd;CACF,CAGc,CAAA,GAAA,IACfA,MAADC,iBACE;EAAI,OAAA,eAAe,OAAO,EAAE,QAAQ,KAAK,CAAC;CAAC,GAD7C,IAAA,KAeU,OAbR,QACO,EAAE,SAAS,OAAO,GACpB,EACF,YAA8B;EAC7B,OAAO,OAAO;CAChB,IACC,YAA8B;EAC7B,UACE,cAAc,MAAM,GAAG,GACvB,OACF;CACF,CACF,IAKU,UAAU;EAClB,MAAM,gBAAgB;CACxB,IACW,UAAU,MAAM,WAAW,MAAM,cAAc,KAAK,CAChE,CAAA,CAAA,CACD;AAEN"}