@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,119 @@
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/ToggleButton.tsx.
14
+ * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; uses Solid class props and an untracked setup-time choice of group interaction behavior.
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 { SelectionIndicatorContext } from "./selection-indicator.js";
19
+ import { ToggleGroupStateContext } from "./toggle-button-group.js";
20
+ import { createComponent, mergeProps } from "@solidjs/web";
21
+ import { mergeProps as mergeProps$1 } from "@solid2-aria/core/utils/merge-props";
22
+ import { createContext, merge, omit, untrack, useContext } from "solid-js";
23
+ import { requireValue } from "@solid2-aria/core/utils/require-value";
24
+ import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
25
+ import { createFocusRing } from "@solid2-aria/core/focus/create-focus-ring";
26
+ import { createHover } from "@solid2-aria/core/interactions/create-hover";
27
+ import { createToggleState } from "@solid2-aria/stately/toggle/create-toggle-state";
28
+ import { isPresent } from "@solid2-aria/core/utils/is-present";
29
+ import { createToggleButton } from "@solid2-aria/core/button/create-toggle-button";
30
+ import { createToggleButtonGroupItem } from "@solid2-aria/core/button/create-toggle-button-group";
31
+ // src/toggle-button.tsx
32
+ const ToggleButtonContext = createContext(null);
33
+ function ToggleButton(input) {
34
+ const [props, ref, setRef] = createContextProps(input, untrack(() => input.ref), ToggleButtonContext);
35
+ const group = useContext(ToggleGroupStateContext);
36
+ const state = createToggleState(group ? {
37
+ get isSelected() {
38
+ return isPresent(props.id) && group.selectedKeys.has(props.id);
39
+ },
40
+ onChange(selected) {
41
+ if (isPresent(props.id)) group.setSelected(props.id, selected);
42
+ }
43
+ } : props);
44
+ const aria = group && untrack(() => isPresent(props.id)) ? createToggleButtonGroupItem(mergeProps$1(props, { get id() {
45
+ return requireValue(props.id, "Expected props.id");
46
+ } }), group, ref) : createToggleButton(mergeProps$1(props, { get id() {
47
+ return isPresent(props.id) ? String(props.id) : void 0;
48
+ } }), state, ref);
49
+ const focus = createFocusRing(props);
50
+ const hover = createHover(mergeProps$1(props, { get isDisabled() {
51
+ return aria.isDisabled;
52
+ } }));
53
+ const values = {
54
+ get isDisabled() {
55
+ return aria.isDisabled;
56
+ },
57
+ get isFocusVisible() {
58
+ return focus.isFocusVisible;
59
+ },
60
+ get isFocused() {
61
+ return focus.isFocused;
62
+ },
63
+ get isHovered() {
64
+ return hover.isHovered;
65
+ },
66
+ get isPressed() {
67
+ return aria.isPressed;
68
+ },
69
+ get isSelected() {
70
+ return state.isSelected;
71
+ },
72
+ state
73
+ };
74
+ const render = createRenderProps(mergeProps$1(props, {
75
+ defaultClass: "solid2-aria-ToggleButton",
76
+ values
77
+ }));
78
+ return createComponent(dom.button, mergeProps(() => {
79
+ return mergeProps$1(omit(filterDOMProps(props, { global: true }), "id", "onClick"), merge(() => aria.buttonProps ?? {}), merge(() => focus.focusProps ?? {}), merge(() => hover.hoverProps ?? {}), render);
80
+ }, {
81
+ ref: (element) => {
82
+ setRef(element);
83
+ },
84
+ get slot() {
85
+ return props.slot ?? void 0;
86
+ },
87
+ get "data-selected"() {
88
+ return values.isSelected || void 0;
89
+ },
90
+ get "data-disabled"() {
91
+ return values.isDisabled || void 0;
92
+ },
93
+ get "data-pressed"() {
94
+ return values.isPressed || void 0;
95
+ },
96
+ get "data-hovered"() {
97
+ return hover.isHovered || void 0;
98
+ },
99
+ get "data-focused"() {
100
+ return focus.isFocused || void 0;
101
+ },
102
+ get "data-focus-visible"() {
103
+ return focus.isFocusVisible || void 0;
104
+ },
105
+ get children() {
106
+ return createComponent(SelectionIndicatorContext, {
107
+ value: { get isSelected() {
108
+ return state.isSelected;
109
+ } },
110
+ get children() {
111
+ return render.children;
112
+ }
113
+ });
114
+ }
115
+ }));
116
+ }
117
+ export { ToggleButton, ToggleButtonContext };
118
+
119
+ //# sourceMappingURL=toggle-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-button.js","names":["<dom.button\n {...mergeProps(\n omit(filterDOMProps(props, { global: true }), \"id\", \"onClick\"),\n merge(() => aria.buttonProps ?? {}),\n merge(() => focus.focusProps ?? {}),\n merge(() => hover.hoverProps ?? {}),\n render\n )}\n ref={(element: HTMLButtonElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n data-selected={values.isSelected || undefined}\n data-disabled={values.isDisabled || undefined}\n data-pressed={values.isPressed || undefined}\n data-hovered={hover.isHovered || undefined}\n data-focused={focus.isFocused || undefined}\n data-focus-visible={focus.isFocusVisible || undefined}\n >\n <SelectionIndicatorContext\n value={{\n get isSelected() {\n return state.isSelected;\n },\n }}\n >\n {render.children}\n </SelectionIndicatorContext>\n </dom.button>","dom.button","ref={(element: HTMLButtonElement) => {\n setRef(element);\n }}","<SelectionIndicatorContext\n value={{\n get isSelected() {\n return state.isSelected;\n },\n }}\n >\n {render.children}\n </SelectionIndicatorContext>","value={{\n get isSelected() {\n return state.isSelected;\n },\n }}","mergeProps","_$createComponent","_$mergeProps"],"sources":["../../src/toggle-button.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/ToggleButton.tsx.\n * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; uses Solid class props and an untracked setup-time choice of group interaction behavior.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport { createToggleButton } from \"@solid2-aria/core/button/create-toggle-button\";\nimport type { AriaToggleButtonProps } from \"@solid2-aria/core/button/create-toggle-button\";\nimport { createToggleButtonGroupItem } from \"@solid2-aria/core/button/create-toggle-button-group\";\nimport { createFocusRing } from \"@solid2-aria/core/focus/create-focus-ring\";\nimport { createHover } from \"@solid2-aria/core/interactions/create-hover\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { isPresent } from \"@solid2-aria/core/utils/is-present\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { requireValue } from \"@solid2-aria/core/utils/require-value\";\nimport { createToggleState } from \"@solid2-aria/stately/toggle/create-toggle-state\";\nimport type { ToggleState } from \"@solid2-aria/stately/toggle/create-toggle-state\";\nimport type { HoverEvents, Key } from \"@solid2-aria/types-shared\";\nimport type { JSX } from \"@solidjs/web\";\nimport { merge, untrack, createContext, useContext, omit } from \"solid-js\";\n\nimport type { ButtonRenderProps } from \"./button\";\nimport { SelectionIndicatorContext } from \"./selection-indicator\";\nimport { ToggleGroupStateContext } from \"./toggle-button-group\";\nimport { dom, createContextProps, createRenderProps } from \"./utils\";\nimport type { Ref, ContextValue, SlotProps, RenderProps } from \"./utils\";\n\nexport interface ToggleButtonRenderProps extends Omit<\n ButtonRenderProps,\n \"isPending\"\n> {\n isSelected: boolean;\n state: ToggleState;\n}\n\nexport interface ToggleButtonProps\n extends\n Omit<AriaToggleButtonProps, \"children\" | \"elementType\" | \"id\">,\n SlotProps,\n HoverEvents,\n RenderProps<ToggleButtonRenderProps, \"button\"> {\n id?: Key;\n ref?: Ref<HTMLButtonElement>;\n}\n\nexport const ToggleButtonContext =\n createContext<ContextValue<ToggleButtonProps, HTMLButtonElement>>(null);\n\nexport function ToggleButton(input: ToggleButtonProps): JSX.Element {\n const [props, ref, setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n ToggleButtonContext\n );\n\n const group = useContext(ToggleGroupStateContext);\n\n const state = createToggleState(\n group\n ? {\n get isSelected() {\n return isPresent(props.id) && group.selectedKeys.has(props.id);\n },\n onChange(selected) {\n if (isPresent(props.id)) {\n group.setSelected(props.id, selected);\n }\n },\n }\n : props\n );\n\n const aria =\n group && untrack(() => isPresent(props.id))\n ? createToggleButtonGroupItem(\n mergeProps(props, {\n get id() {\n return requireValue(props.id, \"Expected props.id\");\n },\n }),\n group,\n ref\n )\n : createToggleButton(\n mergeProps(props, {\n get id() {\n return isPresent(props.id) ? String(props.id) : undefined;\n },\n }),\n state,\n ref\n );\n\n const focus = createFocusRing(props);\n\n const hover = createHover(\n mergeProps(props, {\n get isDisabled() {\n return aria.isDisabled;\n },\n })\n );\n\n const values: ToggleButtonRenderProps = {\n get isDisabled() {\n return aria.isDisabled;\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 get isPressed() {\n return aria.isPressed;\n },\n get isSelected() {\n return state.isSelected;\n },\n state,\n };\n\n const render = createRenderProps(\n mergeProps(props, { defaultClass: \"solid2-aria-ToggleButton\", values })\n );\n\n return (\n <dom.button\n {...mergeProps(\n omit(filterDOMProps(props, { global: true }), \"id\", \"onClick\"),\n merge(() => aria.buttonProps ?? {}),\n merge(() => focus.focusProps ?? {}),\n merge(() => hover.hoverProps ?? {}),\n render\n )}\n ref={(element: HTMLButtonElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n data-selected={values.isSelected || undefined}\n data-disabled={values.isDisabled || undefined}\n data-pressed={values.isPressed || undefined}\n data-hovered={hover.isHovered || undefined}\n data-focused={focus.isFocused || undefined}\n data-focus-visible={focus.isFocusVisible || undefined}\n >\n <SelectionIndicatorContext\n value={{\n get isSelected() {\n return state.isSelected;\n },\n }}\n >\n {render.children}\n </SelectionIndicatorContext>\n </dom.button>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,MAAa,sBACX,cAAkE,IAAI;AAExE,SAAgB,aAAa,OAAuC;CAClE,MAAM,CAAC,OAAO,KAAK,UAAU,mBAC3B,OACA,cAAc,MAAM,GAAG,GACvB,mBACF;CAEA,MAAM,QAAQ,WAAW,uBAAuB;CAEhD,MAAM,QAAQ,kBACZ,QACI;EACE,IAAI,aAAa;GACf,OAAO,UAAU,MAAM,EAAE,KAAK,MAAM,aAAa,IAAI,MAAM,EAAE;EAC/D;EACA,SAAS,UAAU;GACjB,IAAI,UAAU,MAAM,EAAE,GACpB,MAAM,YAAY,MAAM,IAAI,QAAQ;EAExC;CACF,IACA,KACN;CAEA,MAAM,OACJ,SAAS,cAAc,UAAU,MAAM,EAAE,CAAC,IACtC,4BACEK,aAAW,OAAO,EAChB,IAAI,KAAK;EACP,OAAO,aAAa,MAAM,IAAI,mBAAmB;CACnD,EACF,CAAC,GACD,OACA,GACF,IACA,mBACEA,aAAW,OAAO,EAChB,IAAI,KAAK;EACP,OAAO,UAAU,MAAM,EAAE,IAAI,OAAO,MAAM,EAAE,IAAI,KAAA;CAClD,EACF,CAAC,GACD,OACA,GACF;CAEN,MAAM,QAAQ,gBAAgB,KAAK;CAEnC,MAAM,QAAQ,YACZA,aAAW,OAAO,EAChB,IAAI,aAAa;EACf,OAAO,KAAK;CACd,EACF,CAAC,CACH;CAEA,MAAM,SAAkC;EACtC,IAAI,aAAa;GACf,OAAO,KAAK;EACd;EACA,IAAI,iBAAiB;GACnB,OAAO,MAAM;EACf;EACA,IAAI,YAAY;GACd,OAAO,MAAM;EACf;EACA,IAAI,YAAY;GACd,OAAO,MAAM;EACf;EACA,IAAI,YAAY;GACd,OAAO,KAAK;EACd;EACA,IAAI,aAAa;GACf,OAAO,MAAM;EACf;EACA;CACF;CAEA,MAAM,SAAS,kBACbA,aAAW,OAAO;EAAE,cAAc;EAA4B;CAAO,CAAC,CACxE;CAEA,OACEL,gBAAAA,IAACC,QAADD,iBACE;EAAI,OAAAK,aACF,KAAK,eAAe,OAAO,EAAE,QAAQ,KAAK,CAAC,GAAG,MAAM,SAAS,GAC7D,YAAY,KAAK,eAAe,CAAC,CAAC,GAClC,YAAY,MAAM,cAAc,CAAC,CAAC,GAClC,YAAY,MAAM,cAAc,CAAC,CAAC,GAClC,MACF;CAAC,GAPH;EAQEH,MAAM,YAA+B;GACnC,OAAO,OAAO;EAChB;EACA,IAAA,OAAA;GAAM,OAAA,MAAM,QAAQ,KAAA;EAAS;EAC7B,IAAA,kBAAA;GAAe,OAAA,OAAO,cAAc,KAAA;EAAS;EAC7C,IAAA,kBAAA;GAAe,OAAA,OAAO,cAAc,KAAA;EAAS;EAC7C,IAAA,iBAAA;GAAc,OAAA,OAAO,aAAa,KAAA;EAAS;EAC3C,IAAA,iBAAA;GAAc,OAAA,MAAM,aAAa,KAAA;EAAS;EAC1C,IAAA,iBAAA;GAAc,OAAA,MAAM,aAAa,KAAA;EAAS;EAC1C,IAAA,uBAAA;GAAoB,OAAA,MAAM,kBAAkB,KAAA;EAAS;EAjBvD,IAAA,WAAA;GAmBEC,OAAAA,gBAAAA,2BAAAA;IACEC,OAAO,EACL,IAAI,aAAa;KACf,OAAO,MAAM;IACf,EACF;IALF,IAAA,WAAA;KAOG,OAAA,OAAO;IACiB;;EACjB;;AAEhB"}
@@ -0,0 +1,124 @@
1
+ /*
2
+ * Copyright 2026 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/TokenField.tsx.
14
+ * Modified for Solid Aria: adapted collection ownership, contexts, accessibility primitives, 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 { ClassOrFunction, ContextValue, Ref, RenderProps, SlotProps, StyleRenderProps } from "./utils.js";
18
+ import { JSX } from "@solidjs/web";
19
+ import { HoverProps } from "@solid2-aria/core/interactions/create-hover";
20
+ import { AriaTokenFieldProps } from "@solid2-aria/core/tokenfield/create-token-field";
21
+ import { TokenFieldValue, TokenSegment } from "@solid2-aria/stately/tokenfield/token-field-value";
22
+ import { GlobalDOMAttributes } from "@solid2-aria/types-shared-web";
23
+ export declare const TokenFieldContext: import("solid-js").Context<ContextValue<TokenFieldProps<TokenFieldValue<unknown>>, HTMLDivElement>>;
24
+ export interface TokenFieldRenderProps {
25
+ /**
26
+ * Whether the token field is disabled.
27
+ *
28
+ * @selector [data-disabled]
29
+ */
30
+ isDisabled: boolean;
31
+ /**
32
+ * Whether the token field is read only.
33
+ *
34
+ * @selector [data-readonly]
35
+ */
36
+ isReadOnly: boolean;
37
+ }
38
+ export type TokenFieldProps<T extends TokenFieldValue = TokenFieldValue> = AriaTokenFieldProps<T> & RenderProps<TokenFieldRenderProps> & SlotProps & GlobalDOMAttributes<HTMLDivElement> & {
39
+ /**
40
+ * The CSS [class](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class) for the
41
+ * element. A function may be provided to compute the class based on component state.
42
+ *
43
+ * @default 'react-aria-TokenField'
44
+ */
45
+ class?: ClassOrFunction<TokenFieldRenderProps>;
46
+ };
47
+ export interface TokenInputRenderProps {
48
+ /**
49
+ * Whether the token input is currently hovered with a mouse.
50
+ *
51
+ * @selector [data-hovered]
52
+ */
53
+ isHovered: boolean;
54
+ /**
55
+ * Whether the token input is focused, either via a mouse or keyboard.
56
+ *
57
+ * @selector [data-focused]
58
+ */
59
+ isFocused: boolean;
60
+ /**
61
+ * Whether the token input is keyboard focused.
62
+ *
63
+ * @selector [data-focus-visible]
64
+ */
65
+ isFocusVisible: boolean;
66
+ /**
67
+ * Whether the token input is disabled.
68
+ *
69
+ * @selector [data-disabled]
70
+ */
71
+ isDisabled: boolean;
72
+ /**
73
+ * Whether the token input is read only.
74
+ *
75
+ * @selector [data-readonly]
76
+ */
77
+ isReadOnly: boolean;
78
+ }
79
+ export interface TokenInputProps<T extends TokenFieldValue = TokenFieldValue> extends HoverProps, StyleRenderProps<TokenInputRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
80
+ /**
81
+ * A function that renders a token for each segment in the token field.
82
+ */
83
+ children: (segment: TokenSegment<T extends TokenFieldValue<infer V> ? V : never>) => JSX.Element;
84
+ /**
85
+ * The CSS [class](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class) for the
86
+ * element. A function may be provided to compute the class based on component state.
87
+ *
88
+ * @default 'react-aria-TokenInput'
89
+ */
90
+ class?: ClassOrFunction<TokenInputRenderProps>;
91
+ }
92
+ export interface TokenRenderProps {
93
+ /**
94
+ * Whether the token is selected.
95
+ *
96
+ * @selector [data-selected]
97
+ */
98
+ isSelected: boolean;
99
+ /**
100
+ * Whether the token is disabled.
101
+ *
102
+ * @selector [data-disabled]
103
+ */
104
+ isDisabled: boolean;
105
+ }
106
+ export interface TokenProps extends RenderProps<TokenRenderProps, "span">, GlobalDOMAttributes<HTMLSpanElement> {
107
+ /**
108
+ * The CSS [class](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class) for the
109
+ * element. A function may be provided to compute the class based on component state.
110
+ *
111
+ * @default 'react-aria-Token'
112
+ */
113
+ class?: ClassOrFunction<TokenRenderProps>;
114
+ }
115
+ export declare function TokenField<T extends TokenFieldValue = TokenFieldValue>(input: TokenFieldProps<T> & {
116
+ ref?: Ref<HTMLDivElement>;
117
+ }): JSX.Element;
118
+ export declare function TokenInput<T extends TokenFieldValue = TokenFieldValue>(props: TokenInputProps<T> & {
119
+ ref?: Ref<HTMLDivElement>;
120
+ }): JSX.Element;
121
+ export declare function Token(props: TokenProps & {
122
+ ref?: Ref<HTMLSpanElement>;
123
+ }): JSX.Element;
124
+ //# sourceMappingURL=token-field.d.ts.map
@@ -0,0 +1,277 @@
1
+ /*
2
+ * Copyright 2026 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/TokenField.tsx.
14
+ * Modified for Solid Aria: adapted collection ownership, contexts, accessibility primitives, 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 { assignRef, createContextProps, createRenderProps, createSlot, createSlottedContext, dom } from "./utils.js";
18
+ import { FieldInputContext } from "./autocomplete.js";
19
+ import { LabelContext } from "./label.js";
20
+ import { TextContext } from "./text.js";
21
+ import { createComponent, getNextElement, getNextMarker, insert, memo, mergeProps, scope, template } from "@solidjs/web";
22
+ import { mergeProps as mergeProps$1 } from "@solid2-aria/core/utils/merge-props";
23
+ import { For, createContext, createMemo, createSignal, merge, omit, onSettled, untrack, useContext } from "solid-js";
24
+ import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
25
+ import { createFocusRing } from "@solid2-aria/core/focus/create-focus-ring";
26
+ import { createHover } from "@solid2-aria/core/interactions/create-hover";
27
+ import { isTruthy } from "@solid2-aria/core/utils/truthy";
28
+ import { createIsHidden } from "@solid2-aria/core/collections/hidden";
29
+ import { readProperty } from "@solid2-aria/core/utils/read-property";
30
+ import { createToken } from "@solid2-aria/core/tokenfield/create-token";
31
+ import { createTokenField } from "@solid2-aria/core/tokenfield/create-token-field";
32
+ import { createTokenFieldState } from "@solid2-aria/stately/tokenfield/create-token-field-state";
33
+ // src/token-field.tsx
34
+ var _tmpl$ = /* @__PURE__ */ template(`<span data-react-aria-token>​<!$><!/>​`);
35
+ var _tmpl$2 = /* @__PURE__ */ template(`<br>`);
36
+ const TokenFieldContext = createContext(null);
37
+ const TokenInputContext = createContext(null);
38
+ function TokenField(input) {
39
+ if (createIsHidden()) return null;
40
+ const [props, , setRef] = createContextProps(input, untrack(() => input.ref), TokenFieldContext);
41
+ const field = createSlottedContext(FieldInputContext, props.slot);
42
+ const [inputRef, setInputRef] = createSignal(null, { ownedWrite: true });
43
+ const [registerLabel, label] = createSlot(() => !isTruthy(props["aria-label"]) && !isTruthy(props["aria-labelledby"]));
44
+ const stateProps = new Proxy(props, { get(target, key) {
45
+ if (key === "onChange") return (value) => {
46
+ props.onChange?.(value);
47
+ field?.onChange?.(value.toString());
48
+ };
49
+ return readProperty(target, key);
50
+ } });
51
+ const baseState = createTokenFieldState(stateProps);
52
+ const ariaProps = new Proxy(props, { get(target, key) {
53
+ if (key === "label") return label();
54
+ if (key === "role") return props.role ?? "textbox";
55
+ return readProperty(target, key);
56
+ } });
57
+ const aria = createTokenField(ariaProps, baseState, inputRef);
58
+ const values = {
59
+ get isDisabled() {
60
+ return props.isDisabled === true;
61
+ },
62
+ get isReadOnly() {
63
+ return props.isReadOnly === true;
64
+ }
65
+ };
66
+ const render = createRenderProps(merge(props, {
67
+ defaultClass: "solid2-aria-TokenField",
68
+ values
69
+ }));
70
+ return createComponent(dom.div, mergeProps(() => {
71
+ return filterDOMProps(props, { global: true });
72
+ }, render, {
73
+ ref: (element) => {
74
+ setRef(element);
75
+ },
76
+ get slot() {
77
+ return props.slot ?? void 0;
78
+ },
79
+ get "data-disabled"() {
80
+ return values.isDisabled || void 0;
81
+ },
82
+ get "data-readonly"() {
83
+ return values.isReadOnly || void 0;
84
+ },
85
+ get children() {
86
+ return createComponent(LabelContext, {
87
+ get value() {
88
+ return mergeProps$1(merge(() => aria.labelProps ?? {}), {
89
+ get elementType() {
90
+ return "span";
91
+ },
92
+ registerSlot: registerLabel
93
+ });
94
+ },
95
+ get children() {
96
+ return createComponent(TextContext, {
97
+ value: { slots: { get description() {
98
+ return aria.descriptionProps;
99
+ } } },
100
+ get children() {
101
+ return createComponent(TokenInputContext, {
102
+ value: {
103
+ aria,
104
+ inputRef,
105
+ get isDisabled() {
106
+ return values.isDisabled;
107
+ },
108
+ get isReadOnly() {
109
+ return values.isReadOnly;
110
+ },
111
+ setInputRef: (element) => {
112
+ setInputRef(element);
113
+ },
114
+ state: baseState
115
+ },
116
+ get children() {
117
+ return render.children;
118
+ }
119
+ });
120
+ }
121
+ });
122
+ }
123
+ });
124
+ }
125
+ }));
126
+ }
127
+ function TokenInput(props) {
128
+ const context = useContext(TokenInputContext);
129
+ if (!context) throw new Error("TokenInput must be rendered in a TokenField.");
130
+ const hover = createHover(mergeProps$1(props, { get isDisabled() {
131
+ return context.isDisabled;
132
+ } }));
133
+ const focus = createFocusRing({ isTextInput: true });
134
+ const field = createSlottedContext(FieldInputContext, untrack(() => props.slot));
135
+ const values = {
136
+ get isDisabled() {
137
+ return context.isDisabled;
138
+ },
139
+ get isFocusVisible() {
140
+ return focus.isFocusVisible;
141
+ },
142
+ get isFocused() {
143
+ return focus.isFocused;
144
+ },
145
+ get isHovered() {
146
+ return hover.isHovered;
147
+ },
148
+ get isReadOnly() {
149
+ return context.isReadOnly;
150
+ }
151
+ };
152
+ const render = createRenderProps(mergeProps$1(omit(props, "children"), {
153
+ defaultClass: "solid2-aria-TokenInput",
154
+ values
155
+ }));
156
+ let previousSegments = untrack(() => context.state.value.segments);
157
+ const segments = createMemo(() => {
158
+ if (!context.state.isComposing) previousSegments = context.state.value.segments;
159
+ return previousSegments;
160
+ });
161
+ onSettled(() => insertSelectionStyle(context.inputRef()));
162
+ return createComponent(dom.div, mergeProps(() => {
163
+ return mergeProps$1(filterDOMProps(props, { global: true }), render, merge(() => focus.focusProps ?? {}), merge(() => hover.hoverProps ?? {}), merge(() => context.aria.tokenFieldProps ?? {}), field ? omit(field, "ref", "value", "onChange") : void 0);
164
+ }, {
165
+ ref: (el) => {
166
+ context.setInputRef(el);
167
+ assignRef(untrack(() => props.ref), el);
168
+ assignRef(untrack(() => field?.ref), el);
169
+ },
170
+ get slot() {
171
+ return props.slot ?? void 0;
172
+ },
173
+ get "data-focused"() {
174
+ return focus.isFocused || void 0;
175
+ },
176
+ get "data-focus-visible"() {
177
+ return focus.isFocusVisible || void 0;
178
+ },
179
+ get "data-hovered"() {
180
+ return hover.isHovered || void 0;
181
+ },
182
+ get "data-disabled"() {
183
+ return values.isDisabled || void 0;
184
+ },
185
+ get "data-readonly"() {
186
+ return values.isReadOnly || void 0;
187
+ },
188
+ get children() {
189
+ return [createComponent(For, {
190
+ get each() {
191
+ return segments();
192
+ },
193
+ children: (segment) => segment.type === "text" ? segment.text : (() => {
194
+ var _el$ = getNextElement(_tmpl$);
195
+ var _el$3 = _el$.firstChild.nextSibling;
196
+ var [_el$4, _el$5] = getNextMarker(_el$3.nextSibling);
197
+ _el$4.nextSibling;
198
+ insert(_el$, scope(() => {
199
+ return props.children(segment);
200
+ }), _el$4, _el$5);
201
+ return _el$;
202
+ })()
203
+ }), memo(() => {
204
+ return memo(() => {
205
+ return segments().at(-1)?.text.endsWith("\n") === true;
206
+ })() ? getNextElement(_tmpl$2) : null;
207
+ })];
208
+ }
209
+ }));
210
+ }
211
+ function Token(props) {
212
+ const context = useContext(TokenInputContext);
213
+ if (!context) throw new Error("Token must be rendered in a TokenInput.");
214
+ const [ref, setRef] = createSignal(null, { ownedWrite: true });
215
+ const aria = createToken({}, context.state, ref);
216
+ const render = createRenderProps(mergeProps$1(props, {
217
+ defaultClass: "solid2-aria-Token",
218
+ values: {
219
+ get isDisabled() {
220
+ return context.isDisabled;
221
+ },
222
+ get isSelected() {
223
+ return aria.isSelected;
224
+ }
225
+ }
226
+ }));
227
+ return createComponent(dom.span, mergeProps(() => {
228
+ return mergeProps$1(filterDOMProps(props, { global: true }), render, merge(() => aria.tokenProps ?? {}));
229
+ }, {
230
+ ref: [(element) => {
231
+ setRef(element);
232
+ }, (element) => {
233
+ assignRef(untrack(() => props.ref), element);
234
+ }],
235
+ contenteditable: "false",
236
+ get "data-selected"() {
237
+ return aria.isSelected || void 0;
238
+ },
239
+ get "data-disabled"() {
240
+ return context.isDisabled || void 0;
241
+ },
242
+ get style() {
243
+ return mergeProps$1(typeof render.style === "object" ? render.style : {}, typeof aria.tokenProps.style === "object" ? aria.tokenProps.style : {});
244
+ },
245
+ get children() {
246
+ return render.children;
247
+ }
248
+ }));
249
+ }
250
+ const tokenSelectionStyles = /* @__PURE__ */ new WeakMap();
251
+ function insertSelectionStyle(element) {
252
+ if (!element || typeof CSSStyleSheet !== "function") return;
253
+ const root = element.getRootNode();
254
+ if (!(root instanceof Document) && !(root instanceof ShadowRoot) || !isTruthy(root.adoptedStyleSheets)) return;
255
+ let entry = tokenSelectionStyles.get(root);
256
+ if (!entry) {
257
+ const sheet = new CSSStyleSheet();
258
+ sheet.replaceSync("[data-react-aria-token]::selection,[data-react-aria-token]>*::selection{background:#ffffff01}");
259
+ entry = {
260
+ sheet,
261
+ users: 0
262
+ };
263
+ tokenSelectionStyles.set(root, entry);
264
+ root.adoptedStyleSheets = [...root.adoptedStyleSheets, sheet];
265
+ }
266
+ entry.users += 1;
267
+ return () => {
268
+ entry.users -= 1;
269
+ if (entry.users === 0) {
270
+ root.adoptedStyleSheets = root.adoptedStyleSheets.filter((sheet) => sheet !== entry.sheet);
271
+ tokenSelectionStyles.delete(root);
272
+ }
273
+ };
274
+ }
275
+ export { Token, TokenField, TokenFieldContext, TokenInput };
276
+
277
+ //# sourceMappingURL=token-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-field.js","names":["<dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n data-disabled={values.isDisabled || undefined}\n data-readonly={values.isReadOnly || undefined}\n >\n <LabelContext\n value={mergeProps(\n merge(() => aria.labelProps ?? {}),\n {\n get elementType(): \"span\" {\n return \"span\";\n },\n registerSlot: registerLabel,\n }\n )}\n >\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n },\n }}\n >\n <TokenInputContext\n value={{\n aria,\n inputRef,\n get isDisabled() {\n return values.isDisabled;\n },\n get isReadOnly() {\n return values.isReadOnly;\n },\n setInputRef: (element: HTMLDivElement) => {\n setInputRef(element);\n },\n state: baseState,\n }}\n >\n {render.children}\n </TokenInputContext>\n </TextContext>\n </LabelContext>\n </dom.div>","dom.div","ref={(element: HTMLDivElement) => {\n setRef(element);\n }}","<LabelContext\n value={mergeProps(\n merge(() => aria.labelProps ?? {}),\n {\n get elementType(): \"span\" {\n return \"span\";\n },\n registerSlot: registerLabel,\n }\n )}\n >\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n },\n }}\n >\n <TokenInputContext\n value={{\n aria,\n inputRef,\n get isDisabled() {\n return values.isDisabled;\n },\n get isReadOnly() {\n return values.isReadOnly;\n },\n setInputRef: (element: HTMLDivElement) => {\n setInputRef(element);\n },\n state: baseState,\n }}\n >\n {render.children}\n </TokenInputContext>\n </TextContext>\n </LabelContext>","<TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n },\n }}\n >\n <TokenInputContext\n value={{\n aria,\n inputRef,\n get isDisabled() {\n return values.isDisabled;\n },\n get isReadOnly() {\n return values.isReadOnly;\n },\n setInputRef: (element: HTMLDivElement) => {\n setInputRef(element);\n },\n state: baseState,\n }}\n >\n {render.children}\n </TokenInputContext>\n </TextContext>","value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n },\n }}","<TokenInputContext\n value={{\n aria,\n inputRef,\n get isDisabled() {\n return values.isDisabled;\n },\n get isReadOnly() {\n return values.isReadOnly;\n },\n setInputRef: (element: HTMLDivElement) => {\n setInputRef(element);\n },\n state: baseState,\n }}\n >\n {render.children}\n </TokenInputContext>","value={{\n aria,\n inputRef,\n get isDisabled() {\n return values.isDisabled;\n },\n get isReadOnly() {\n return values.isReadOnly;\n },\n setInputRef: (element: HTMLDivElement) => {\n setInputRef(element);\n },\n state: baseState,\n }}","<dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n render,\n merge(() => focus.focusProps ?? {}),\n merge(() => hover.hoverProps ?? {}),\n merge(() => context.aria.tokenFieldProps ?? {}),\n field\n ? // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n omit(field, \"ref\", \"value\", \"onChange\")\n : // oxlint-enable solid/reactivity\n undefined\n )}\n ref={(el: HTMLDivElement) => {\n context.setInputRef(el);\n\n assignRef(\n untrack(() => props.ref),\n el\n );\n assignRef(\n untrack(() => field?.ref),\n el\n );\n }}\n slot={props.slot ?? undefined}\n data-focused={focus.isFocused || undefined}\n data-focus-visible={focus.isFocusVisible || undefined}\n data-hovered={hover.isHovered || undefined}\n data-disabled={values.isDisabled || undefined}\n data-readonly={values.isReadOnly || undefined}\n >\n <For each={segments()}>\n {(segment) =>\n segment.type === \"text\" ? (\n segment.text\n ) : (\n <span data-react-aria-token>\n {\"\\u200B\"}\n {props.children(\n // SAFETY: The token segments come from this TokenFieldValue<T> owner's value.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- The shared context erases the concrete token value type.\n segment as TokenSegment<\n T extends TokenFieldValue<infer V> ? V : never\n >\n )}\n {\"\\u200B\"}\n </span>\n )\n }\n </For>\n {segments().at(-1)?.text.endsWith(\"\\n\") === true ? <br /> : null}\n </dom.div>","ref={(el: HTMLDivElement) => {\n context.setInputRef(el);\n\n assignRef(\n untrack(() => props.ref),\n el\n );\n assignRef(\n untrack(() => field?.ref),\n el\n );\n }}","<For each={segments()}>\n {(segment) =>\n segment.type === \"text\" ? (\n segment.text\n ) : (\n <span data-react-aria-token>\n {\"\\u200B\"}\n {props.children(\n // SAFETY: The token segments come from this TokenFieldValue<T> owner's value.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- The shared context erases the concrete token value type.\n segment as TokenSegment<\n T extends TokenFieldValue<infer V> ? V : never\n >\n )}\n {\"\\u200B\"}\n </span>\n )\n }\n </For>","{props.children(\n // SAFETY: The token segments come from this TokenFieldValue<T> owner's value.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- The shared context erases the concrete token value type.\n segment as TokenSegment<\n T extends TokenFieldValue<infer V> ? V : never\n >\n )}","<span data-react-aria-token>\n {\"\\u200B\"}\n {props.children(\n // SAFETY: The token segments come from this TokenFieldValue<T> owner's value.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- The shared context erases the concrete token value type.\n segment as TokenSegment<\n T extends TokenFieldValue<infer V> ? V : never\n >\n )}\n {\"\\u200B\"}\n </span>","{segments().at(-1)?.text.endsWith(\"\\n\") === true ? <br /> : null}","<br />","<dom.span\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n render,\n merge(() => aria.tokenProps ?? {})\n )}\n ref={[\n (element: HTMLSpanElement) => {\n setRef(element);\n },\n (element: HTMLSpanElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n contenteditable=\"false\"\n data-selected={aria.isSelected || undefined}\n data-disabled={context.isDisabled || undefined}\n style={mergeProps(\n typeof render.style === \"object\" ? render.style : {},\n typeof aria.tokenProps.style === \"object\" ? aria.tokenProps.style : {}\n )}\n >\n {render.children}\n </dom.span>","dom.span","ref={[\n (element: HTMLSpanElement) => {\n setRef(element);\n },\n (element: HTMLSpanElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}","contenteditable=\"false\"","_$createComponent","_$mergeProps","mergeProps","_$getNextElement","_$getNextMarker","_$scope","_$memo"],"sources":["../../src/token-field.tsx"],"sourcesContent":["/*\n * Copyright 2026 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/TokenField.tsx.\n * Modified for Solid Aria: adapted collection ownership, contexts, accessibility primitives, 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 { createIsHidden } from \"@solid2-aria/core/collections/hidden\";\nimport { createFocusRing } from \"@solid2-aria/core/focus/create-focus-ring\";\nimport { createHover } from \"@solid2-aria/core/interactions/create-hover\";\nimport type { HoverProps } from \"@solid2-aria/core/interactions/create-hover\";\nimport { createToken } from \"@solid2-aria/core/tokenfield/create-token\";\nimport { createTokenField } from \"@solid2-aria/core/tokenfield/create-token-field\";\nimport type {\n AriaTokenFieldProps,\n TokenFieldAria,\n} from \"@solid2-aria/core/tokenfield/create-token-field\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { readProperty } from \"@solid2-aria/core/utils/read-property\";\nimport { isTruthy } from \"@solid2-aria/core/utils/truthy\";\nimport { createTokenFieldState } from \"@solid2-aria/stately/tokenfield/create-token-field-state\";\nimport type { TokenFieldState } from \"@solid2-aria/stately/tokenfield/create-token-field-state\";\nimport type {\n TokenFieldValue,\n TokenSegment,\n} from \"@solid2-aria/stately/tokenfield/token-field-value\";\nimport type { GlobalDOMAttributes } from \"@solid2-aria/types-shared-web\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n untrack,\n createSignal,\n createContext,\n createMemo,\n useContext,\n omit,\n merge,\n onSettled,\n For,\n} from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\n\nimport { FieldInputContext } from \"./autocomplete\";\nimport { LabelContext } from \"./label\";\nimport { TextContext } from \"./text\";\nimport {\n dom,\n createContextProps,\n createRenderProps,\n createSlot,\n createSlottedContext,\n assignRef,\n} from \"./utils\";\nimport type {\n Ref,\n ClassOrFunction,\n RenderProps,\n SlotProps,\n StyleRenderProps,\n ContextValue,\n} from \"./utils\";\n\nexport const TokenFieldContext =\n createContext<ContextValue<TokenFieldProps, HTMLDivElement>>(null);\n\nconst TokenInputContext = createContext<TokenInputContextValue | null>(null);\n\nexport interface TokenFieldRenderProps {\n /**\n * Whether the token field is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the token field is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n}\n\nexport type TokenFieldProps<T extends TokenFieldValue = TokenFieldValue> =\n AriaTokenFieldProps<T> &\n RenderProps<TokenFieldRenderProps> &\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-TokenField'\n */\n class?: ClassOrFunction<TokenFieldRenderProps>;\n };\n\nexport interface TokenInputRenderProps {\n /**\n * Whether the token input is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the token input is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the token input is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the token input is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the token input is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n}\n\nexport interface TokenInputProps<T extends TokenFieldValue = TokenFieldValue>\n extends\n HoverProps,\n StyleRenderProps<TokenInputRenderProps>,\n SlotProps,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * A function that renders a token for each segment in the token field.\n */\n children: (\n segment: TokenSegment<T extends TokenFieldValue<infer V> ? V : never>\n ) => JSX.Element;\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-TokenInput'\n */\n class?: ClassOrFunction<TokenInputRenderProps>;\n}\n\nexport interface TokenRenderProps {\n /**\n * Whether the token is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the token is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n}\n\nexport interface TokenProps\n extends\n RenderProps<TokenRenderProps, \"span\">,\n GlobalDOMAttributes<HTMLSpanElement> {\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-Token'\n */\n class?: ClassOrFunction<TokenRenderProps>;\n}\n\ninterface TokenInputContextValue {\n state: TokenFieldState;\n aria: TokenFieldAria;\n isDisabled: boolean;\n isReadOnly: boolean;\n inputRef: Accessor<HTMLDivElement | null>;\n setInputRef: (element: HTMLDivElement) => void;\n}\n\nexport function TokenField<T extends TokenFieldValue = TokenFieldValue>(\n input: TokenFieldProps<T> & { ref?: Ref<HTMLDivElement> }\n): JSX.Element {\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 [props, , setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n TokenFieldContext\n );\n\n const field = createSlottedContext(FieldInputContext, props.slot);\n\n const [inputRef, setInputRef] = createSignal<HTMLDivElement | null>(null, {\n ownedWrite: true,\n });\n\n const [registerLabel, label] = createSlot(\n () => !isTruthy(props[\"aria-label\"]) && !isTruthy(props[\"aria-labelledby\"])\n );\n\n const stateProps = new Proxy(props, {\n get(target, key) {\n if (key === \"onChange\") {\n return (value: T) => {\n props.onChange?.(value);\n field?.onChange?.(value.toString());\n };\n }\n\n return readProperty(target, key);\n },\n });\n\n const state = createTokenFieldState<T>(stateProps);\n // Context and the accessibility adapter erase T, while all updates use the value object's subtype-preserving methods.\n // SAFETY: TokenFieldValue edits preserve the concrete value subtype, and this context belongs to the same owner.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertions -- The accessibility adapter uses the base TokenFieldValue contract.\n const baseState = state as unknown as TokenFieldState;\n\n const ariaProps = new Proxy(props, {\n get(target, key) {\n if (key === \"label\") {\n return label();\n }\n\n if (key === \"role\") {\n return props.role ?? \"textbox\";\n }\n\n return readProperty(target, key);\n },\n });\n\n const aria = createTokenField<T>(ariaProps, baseState, inputRef);\n\n const values: TokenFieldRenderProps = {\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isReadOnly() {\n return props.isReadOnly === true;\n },\n };\n\n const render = createRenderProps<TokenFieldRenderProps>(\n merge(props, { defaultClass: \"solid2-aria-TokenField\", values })\n );\n\n return (\n <dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n data-disabled={values.isDisabled || undefined}\n data-readonly={values.isReadOnly || undefined}\n >\n <LabelContext\n value={mergeProps(\n merge(() => aria.labelProps ?? {}),\n {\n get elementType(): \"span\" {\n return \"span\";\n },\n registerSlot: registerLabel,\n }\n )}\n >\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n },\n }}\n >\n <TokenInputContext\n value={{\n aria,\n inputRef,\n get isDisabled() {\n return values.isDisabled;\n },\n get isReadOnly() {\n return values.isReadOnly;\n },\n setInputRef: (element: HTMLDivElement) => {\n setInputRef(element);\n },\n state: baseState,\n }}\n >\n {render.children}\n </TokenInputContext>\n </TextContext>\n </LabelContext>\n </dom.div>\n );\n}\n\nexport function TokenInput<T extends TokenFieldValue = TokenFieldValue>(\n props: TokenInputProps<T> & { ref?: Ref<HTMLDivElement> }\n): JSX.Element {\n const context = useContext(TokenInputContext);\n\n if (!context) {\n throw new Error(\"TokenInput must be rendered in a TokenField.\");\n }\n\n const hover = createHover(\n mergeProps(props, {\n get isDisabled() {\n return context.isDisabled;\n },\n })\n );\n\n const focus = createFocusRing({ isTextInput: true });\n\n const field = createSlottedContext(\n FieldInputContext,\n untrack(() => props.slot)\n );\n\n const values: TokenInputRenderProps = {\n get isDisabled() {\n return context.isDisabled;\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 get isReadOnly() {\n return context.isReadOnly;\n },\n };\n\n const render = createRenderProps(\n mergeProps(omit(props, \"children\"), {\n defaultClass: \"solid2-aria-TokenInput\",\n values,\n })\n );\n\n let previousSegments = untrack(() => context.state.value.segments);\n\n const segments = createMemo(() => {\n if (!context.state.isComposing) {\n previousSegments = context.state.value.segments;\n }\n\n return previousSegments;\n });\n\n onSettled(() => insertSelectionStyle(context.inputRef()));\n\n return (\n <dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n render,\n merge(() => focus.focusProps ?? {}),\n merge(() => hover.hoverProps ?? {}),\n merge(() => context.aria.tokenFieldProps ?? {}),\n field\n ? // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n omit(field, \"ref\", \"value\", \"onChange\")\n : // oxlint-enable solid/reactivity\n undefined\n )}\n ref={(el: HTMLDivElement) => {\n context.setInputRef(el);\n\n assignRef(\n untrack(() => props.ref),\n el\n );\n assignRef(\n untrack(() => field?.ref),\n el\n );\n }}\n slot={props.slot ?? undefined}\n data-focused={focus.isFocused || undefined}\n data-focus-visible={focus.isFocusVisible || undefined}\n data-hovered={hover.isHovered || undefined}\n data-disabled={values.isDisabled || undefined}\n data-readonly={values.isReadOnly || undefined}\n >\n <For each={segments()}>\n {(segment) =>\n segment.type === \"text\" ? (\n segment.text\n ) : (\n <span data-react-aria-token>\n {\"\\u200B\"}\n {props.children(\n // SAFETY: The token segments come from this TokenFieldValue<T> owner's value.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- The shared context erases the concrete token value type.\n segment as TokenSegment<\n T extends TokenFieldValue<infer V> ? V : never\n >\n )}\n {\"\\u200B\"}\n </span>\n )\n }\n </For>\n {segments().at(-1)?.text.endsWith(\"\\n\") === true ? <br /> : null}\n </dom.div>\n );\n}\n\nexport function Token(\n props: TokenProps & { ref?: Ref<HTMLSpanElement> }\n): JSX.Element {\n const context = useContext(TokenInputContext);\n\n if (!context) {\n throw new Error(\"Token must be rendered in a TokenInput.\");\n }\n\n const [ref, setRef] = createSignal<HTMLSpanElement | null>(null, {\n ownedWrite: true,\n });\n\n const aria = createToken({}, context.state, ref);\n\n const values: TokenRenderProps = {\n get isDisabled() {\n return context.isDisabled;\n },\n get isSelected() {\n return aria.isSelected;\n },\n };\n\n const render = createRenderProps(\n mergeProps(props, { defaultClass: \"solid2-aria-Token\", values })\n );\n\n return (\n <dom.span\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n render,\n merge(() => aria.tokenProps ?? {})\n )}\n ref={[\n (element: HTMLSpanElement) => {\n setRef(element);\n },\n (element: HTMLSpanElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n contenteditable=\"false\"\n data-selected={aria.isSelected || undefined}\n data-disabled={context.isDisabled || undefined}\n style={mergeProps(\n typeof render.style === \"object\" ? render.style : {},\n typeof aria.tokenProps.style === \"object\" ? aria.tokenProps.style : {}\n )}\n >\n {render.children}\n </dom.span>\n );\n}\n\nconst tokenSelectionStyles = new WeakMap<\n Document | ShadowRoot,\n { sheet: CSSStyleSheet; users: number }\n>();\n\nfunction insertSelectionStyle(\n element: HTMLDivElement | null\n): (() => void) | undefined {\n if (!element || typeof CSSStyleSheet !== \"function\") {\n return undefined;\n }\n\n const root = element.getRootNode();\n\n if (\n (!(root instanceof Document) && !(root instanceof ShadowRoot)) ||\n !isTruthy(root.adoptedStyleSheets)\n ) {\n return undefined;\n }\n\n let entry = tokenSelectionStyles.get(root);\n\n if (!entry) {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(\n \"[data-react-aria-token]::selection,[data-react-aria-token]>*::selection{background:#ffffff01}\"\n );\n entry = { sheet, users: 0 };\n tokenSelectionStyles.set(root, entry);\n root.adoptedStyleSheets = [...root.adoptedStyleSheets, sheet];\n }\n\n entry.users += 1;\n\n return () => {\n entry.users -= 1;\n\n if (entry.users === 0) {\n root.adoptedStyleSheets = root.adoptedStyleSheets.filter(\n (sheet) => sheet !== entry.sheet\n );\n tokenSelectionStyles.delete(root);\n }\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,28 @@
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/Toolbar.tsx.
14
+ * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; uses Solid class props.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { ContextValue, Ref, RenderProps, SlotProps } from "./utils.js";
18
+ import { JSX } from "@solidjs/web";
19
+ import { AriaToolbarProps } from "@solid2-aria/core/toolbar/create-toolbar";
20
+ export interface ToolbarRenderProps {
21
+ orientation: "horizontal" | "vertical";
22
+ }
23
+ export interface ToolbarProps extends AriaToolbarProps, SlotProps, RenderProps<ToolbarRenderProps> {
24
+ ref?: Ref<HTMLDivElement>;
25
+ }
26
+ export declare const ToolbarContext: import("solid-js").Context<ContextValue<ToolbarProps, HTMLDivElement>>;
27
+ export declare function Toolbar(input: ToolbarProps): JSX.Element;
28
+ //# sourceMappingURL=toolbar.d.ts.map