@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,982 @@
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/Sheet.tsx.
14
+ * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; measures rendered CSS snap lengths, tracks page offsets, preserves native scrolling, defers focus until entry, and settles handle gestures on release.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { assignRef, createRenderProps, createSlottedContext, dom } from "./utils.js";
18
+ import { ButtonContext } from "./button.js";
19
+ import { OverlayTriggerStateContext } from "./overlay-contexts.js";
20
+ import { Dialog, DialogTrigger } from "./dialog.js";
21
+ import { InternalModalContext, ModalOverlay } from "./modal.js";
22
+ import { createComponent, effect, getNextElement, getNextMarker, insert, memo, mergeProps, readShallow, ref, scope, setAttribute, setStyleProperty, style, template } from "@solidjs/web";
23
+ import { mergeProps as mergeProps$1 } from "@solid2-aria/core/utils/merge-props";
24
+ import { For, createContext, createEffect, createMemo, createSignal, createUniqueId, merge, omit, onSettled, untrack, useContext } from "solid-js";
25
+ import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
26
+ import { createLocale } from "@solid2-aria/core/i18n/i18n-provider";
27
+ import { DismissButton } from "@solid2-aria/core/overlays/dismiss-button";
28
+ import { createOverlayTriggerState } from "@solid2-aria/stately/overlays/create-overlay-trigger-state";
29
+ import { PressResponder } from "@solid2-aria/core/interactions/press-responder";
30
+ // src/sheet.tsx
31
+ var _tmpl$ = /* @__PURE__ */ template(`<div data-sheet-scroll><!$><!/><!$><!/><div data-sheet-stage style=display:flex;height:100dvh;position:absolute;width:100dvw></div><!$><!/>`);
32
+ var _tmpl$2 = /* @__PURE__ */ template(`<div data-sheet-detents>`);
33
+ var _tmpl$3 = /* @__PURE__ */ template(`<div data-sheet-snap style=position:absolute>`);
34
+ var _tmpl$4 = /* @__PURE__ */ template(`<div data-sheet-detent>`);
35
+ const registries = /* @__PURE__ */ new WeakMap();
36
+ const SheetContext = createContext(null);
37
+ function swipeConfig(direction) {
38
+ const axis = [
39
+ "top",
40
+ "bottom",
41
+ "vertical"
42
+ ].includes(direction) ? "y" : "x";
43
+ const before = [
44
+ "top",
45
+ "left",
46
+ "vertical",
47
+ "horizontal"
48
+ ].includes(direction);
49
+ const after = [
50
+ "bottom",
51
+ "right",
52
+ "vertical",
53
+ "horizontal"
54
+ ].includes(direction);
55
+ let viewDirection = "normal";
56
+ let viewRange = "entry";
57
+ if (before && after) {
58
+ viewDirection = "alternate";
59
+ viewRange = "cover";
60
+ } else if (before) {
61
+ viewDirection = "reverse";
62
+ viewRange = "exit";
63
+ }
64
+ return {
65
+ after,
66
+ axis,
67
+ before,
68
+ containerOffset: before && !after ? -100 : 0,
69
+ enteredScroll: before && !after ? 0 : 100,
70
+ maxScroll: (Number(before) + Number(after)) * 100,
71
+ viewDirection,
72
+ viewIterations: before && after ? 2 : 1,
73
+ viewRange
74
+ };
75
+ }
76
+ function resolveDirection(value, direction) {
77
+ if (value === "start") return direction === "rtl" ? "right" : "left";
78
+ if (value === "end") return direction === "rtl" ? "left" : "right";
79
+ return value;
80
+ }
81
+ function registerSheet(doc, entry, notify) {
82
+ let registry = registries.get(doc);
83
+ if (!registry) {
84
+ registry = {
85
+ entries: [],
86
+ listeners: /* @__PURE__ */ new Set(),
87
+ previousScope: doc.documentElement.style.getPropertyValue("timeline-scope"),
88
+ registrations: /* @__PURE__ */ new Map()
89
+ };
90
+ registries.set(doc, registry);
91
+ }
92
+ const current = registry;
93
+ const update = () => {
94
+ notify(current.entries);
95
+ };
96
+ current.listeners.add(update);
97
+ const count = current.registrations.get(entry.id) ?? 0;
98
+ current.registrations.set(entry.id, count + 1);
99
+ if (!count) current.entries = [...current.entries, entry];
100
+ const emit = () => {
101
+ const names = current.entries.map((_, i) => `--sheet-timeline-${i}`);
102
+ doc.documentElement.style.setProperty("timeline-scope", [current.previousScope, ...names].filter(Boolean).join(", "));
103
+ for (const listener of current.listeners) listener();
104
+ };
105
+ emit();
106
+ return () => {
107
+ current.listeners.delete(update);
108
+ const remaining = (current.registrations.get(entry.id) ?? 1) - 1;
109
+ if (remaining) current.registrations.set(entry.id, remaining);
110
+ else {
111
+ current.registrations.delete(entry.id);
112
+ current.entries = current.entries.filter((value) => value.id !== entry.id);
113
+ }
114
+ emit();
115
+ if (!current.entries.length) {
116
+ if (current.previousScope) doc.documentElement.style.setProperty("timeline-scope", current.previousScope);
117
+ else doc.documentElement.style.removeProperty("timeline-scope");
118
+ registries.delete(doc);
119
+ }
120
+ };
121
+ }
122
+ function SheetTrigger(props) {
123
+ return createComponent(DialogTrigger, mergeProps(props, { get children() {
124
+ return createComponent(SheetTriggerContent, { get children() {
125
+ return props.children;
126
+ } });
127
+ } }));
128
+ }
129
+ function SheetTriggerContent(props) {
130
+ const button = createSlottedContext(ButtonContext);
131
+ return createComponent(ButtonContext, {
132
+ get value() {
133
+ return mergeProps$1(button ?? {}, { isPressed: false });
134
+ },
135
+ get children() {
136
+ return createComponent(PressResponder, {
137
+ isPressed: false,
138
+ get children() {
139
+ return props.children;
140
+ }
141
+ });
142
+ }
143
+ });
144
+ }
145
+ function SheetOverlay(props) {
146
+ const locale = createLocale();
147
+ const trigger = useContext(OverlayTriggerStateContext);
148
+ const local = createOverlayTriggerState(props);
149
+ const selected = () => props.isOpen !== void 0 || props.defaultOpen !== void 0 || !trigger ? local : trigger;
150
+ const state = {
151
+ close: () => {
152
+ selected().close();
153
+ },
154
+ get isOpen() {
155
+ return selected().isOpen;
156
+ },
157
+ open: () => {
158
+ selected().open();
159
+ },
160
+ get point() {
161
+ return selected().point;
162
+ },
163
+ setOpen: (value) => {
164
+ selected().setOpen(value);
165
+ },
166
+ setPoint: (point) => {
167
+ selected().setPoint(point);
168
+ },
169
+ toggle: () => {
170
+ selected().toggle();
171
+ }
172
+ };
173
+ const [expanded, setExpanded] = createSignal(false, { ownedWrite: true });
174
+ const [stack, setStack] = createSignal([], { ownedWrite: true });
175
+ const id = createUniqueId();
176
+ const position = () => resolveDirection(props.position ?? "bottom", locale.direction);
177
+ const swipe = () => {
178
+ if (props.swipeDirection !== void 0) return resolveDirection(props.swipeDirection, locale.direction);
179
+ const resolved = position();
180
+ return resolved === "center" ? "vertical" : resolved;
181
+ };
182
+ const index = () => Math.max(0, stack().findIndex((entry) => entry.id === id));
183
+ const values = {
184
+ get hasDescendants() {
185
+ return stack().length > index() + 1;
186
+ },
187
+ isEntering: false,
188
+ isExiting: false,
189
+ get isExpanded() {
190
+ return expanded();
191
+ },
192
+ get position() {
193
+ return position();
194
+ },
195
+ get stackIndex() {
196
+ return index();
197
+ },
198
+ state,
199
+ get swipeDirection() {
200
+ return swipe();
201
+ }
202
+ };
203
+ const context = {
204
+ get descendants() {
205
+ return stack().slice(index() + 1);
206
+ },
207
+ get entry() {
208
+ return stack()[index()];
209
+ },
210
+ props,
211
+ register(element, visual) {
212
+ const config = swipeConfig(swipe());
213
+ return registerSheet(element.ownerDocument, {
214
+ direction: config.viewDirection,
215
+ get height() {
216
+ return visual.height;
217
+ },
218
+ id,
219
+ get isSwiping() {
220
+ return visual.isSwiping;
221
+ },
222
+ iterations: config.viewIterations,
223
+ range: config.viewRange,
224
+ get swipeProgress() {
225
+ return visual.swipeProgress;
226
+ }
227
+ }, (entries) => {
228
+ setStack(entries);
229
+ });
230
+ },
231
+ setExpanded(value) {
232
+ setExpanded(value);
233
+ },
234
+ values
235
+ };
236
+ const fullValues = (modal) => mergeProps$1(values, modal);
237
+ return createComponent(ModalOverlay, mergeProps(() => {
238
+ return omit(props, "children", "class", "style", "render", "position", "swipeDirection", "snapPoints", "preventDismissal");
239
+ }, {
240
+ get isOpen() {
241
+ return state.isOpen;
242
+ },
243
+ defaultOpen: void 0,
244
+ get onOpenChange() {
245
+ return state.setOpen;
246
+ },
247
+ get isDismissable() {
248
+ return props.preventDismissal !== true;
249
+ },
250
+ get isKeyboardDismissDisabled() {
251
+ return props.preventDismissal;
252
+ },
253
+ UNSTABLE_overrideFocus: true,
254
+ class: (modal) => {
255
+ const value = props.class;
256
+ return (typeof value === "function" ? value(mergeProps$1(fullValues(modal), { defaultClass: "solid2-aria-SheetOverlay" })) : value) ?? "solid2-aria-SheetOverlay";
257
+ },
258
+ style: (modal) => {
259
+ return {
260
+ "--sheet-scroll-padding-x": "calc(100vw - var(--visual-viewport-width))",
261
+ "--sheet-scroll-padding-y": "calc(100dvh - var(--visual-viewport-height))",
262
+ height: "max(var(--page-height), 100dvh)",
263
+ left: 0,
264
+ overflow: "clip",
265
+ position: "absolute",
266
+ top: 0,
267
+ width: "max(var(--page-width), 100vw)",
268
+ ...objectStyle(typeof props.style === "function" ? props.style(mergeProps$1(fullValues(modal), { defaultStyle: {} })) : props.style)
269
+ };
270
+ }
271
+ }, () => {
272
+ return sheetData(values);
273
+ }, {
274
+ get render() {
275
+ return props.render ? (domProps, modal) => props.render?.(mergeProps$1(domProps, sheetData(fullValues(modal))), fullValues(modal)) : void 0;
276
+ },
277
+ get children() {
278
+ return createComponent(SheetOverlayContent, { context });
279
+ }
280
+ }));
281
+ }
282
+ function SheetOverlayContent(props) {
283
+ const modalContext = useContext(InternalModalContext);
284
+ if (!modalContext) throw new Error("SheetOverlay requires ModalOverlay");
285
+ const modal = modalContext.values;
286
+ const values = mergeProps$1(merge(() => props.context.values), modal);
287
+ const context = mergeProps$1(merge(() => props.context), { values });
288
+ return createComponent(SheetContext, {
289
+ value: context,
290
+ get children() {
291
+ return createComponent(SheetOverlayChildren, {
292
+ get values() {
293
+ return context.values;
294
+ },
295
+ get children() {
296
+ return props.context.props.children;
297
+ }
298
+ });
299
+ }
300
+ });
301
+ }
302
+ function SheetOverlayChildren(props) {
303
+ const content = createMemo(() => {
304
+ const supplied = props.children;
305
+ return typeof supplied === "function" && supplied.length > 0 ? supplied(mergeProps$1(merge(() => props.values ?? {}), { defaultChildren: void 0 })) : supplied;
306
+ });
307
+ return memo(content);
308
+ }
309
+ function sheetData(values) {
310
+ return {
311
+ get "data-entering"() {
312
+ return values.isEntering || void 0;
313
+ },
314
+ get "data-exiting"() {
315
+ return values.isExiting || void 0;
316
+ },
317
+ get "data-expanded"() {
318
+ return values.isExpanded || void 0;
319
+ },
320
+ get "data-has-descendants"() {
321
+ return values.hasDescendants || void 0;
322
+ },
323
+ get "data-position"() {
324
+ return values.position;
325
+ },
326
+ get "data-stack-index"() {
327
+ return values.stackIndex;
328
+ },
329
+ get "data-swipe-direction"() {
330
+ return values.swipeDirection;
331
+ }
332
+ };
333
+ }
334
+ function viewTimelineSupported() {
335
+ return typeof CSS !== "undefined" && typeof CSS.supports === "function" && CSS.supports("animation-timeline: view()");
336
+ }
337
+ function toLength(point) {
338
+ return typeof point === "number" ? `${point}px` : point;
339
+ }
340
+ function swipeAnimation(props, context) {
341
+ if (props.swipeAnimation === void 0 || props.swipeAnimation.length === 0) return {};
342
+ const config = swipeConfig(context.values.swipeDirection);
343
+ if (viewTimelineSupported()) {
344
+ let start = props.swipeAnimationRange?.start === void 0 ? "0%" : toLength(context.props.snapPoints?.[props.swipeAnimationRange.start] ?? "0%");
345
+ let end = props.swipeAnimationRange?.end === void 0 ? "100%" : toLength(context.props.snapPoints?.[props.swipeAnimationRange.end] ?? "100%");
346
+ if (context.values.swipeDirection === "top" || context.values.swipeDirection === "left") {
347
+ const previous = start;
348
+ start = `calc(100% - ${end})`;
349
+ end = `calc(100% - ${previous})`;
350
+ }
351
+ return {
352
+ "animation-composition": "replace",
353
+ "animation-direction": config.viewDirection,
354
+ "animation-fill-mode": "both",
355
+ "animation-iteration-count": config.viewIterations,
356
+ "animation-name": props.swipeAnimation,
357
+ "animation-range": `${config.viewRange} ${start} ${config.viewRange} ${end}`,
358
+ "animation-timeline": `--sheet-timeline-${context.values.stackIndex}`,
359
+ "animation-timing-function": "linear"
360
+ };
361
+ }
362
+ return context.values.isEntering || context.values.isExiting ? {
363
+ "animation-composition": "replace",
364
+ "animation-direction": context.values.isExiting ? "reverse" : "normal",
365
+ "animation-duration": "300ms",
366
+ "animation-fill-mode": "both",
367
+ "animation-iteration-count": 1,
368
+ "animation-name": props.swipeAnimation,
369
+ "animation-timing-function": "linear"
370
+ } : {};
371
+ }
372
+ function objectStyle(value) {
373
+ return typeof value === "object" ? value : {};
374
+ }
375
+ function parseCSSNumber(value) {
376
+ return Number.parseFloat(value);
377
+ }
378
+ function resolveLength(point, size, element) {
379
+ if (typeof point === "number") return point;
380
+ const numeric = parseCSSNumber(point);
381
+ if (!Number.isFinite(numeric)) return size;
382
+ if (point.endsWith("%")) return size * numeric / 100;
383
+ if (/(?:d|s|l)?vh$/u.test(point)) return window.innerHeight * numeric / 100;
384
+ if (/(?:d|s|l)?vw$/u.test(point)) return window.innerWidth * numeric / 100;
385
+ if (point.endsWith("rem")) return numeric * (parseCSSNumber(getComputedStyle(document.documentElement).fontSize) || 16);
386
+ if (point.endsWith("em")) return numeric * (parseCSSNumber(getComputedStyle(element).fontSize) || 16);
387
+ return numeric;
388
+ }
389
+ function canScroll(target, sheet, axis, delta) {
390
+ let element = target instanceof HTMLElement ? target : null;
391
+ while (element && element !== sheet) {
392
+ const style = getComputedStyle(element);
393
+ const overflow = axis === "y" ? style.overflowY : style.overflowX;
394
+ const size = axis === "y" ? element.scrollHeight - element.clientHeight : element.scrollWidth - element.clientWidth;
395
+ const position = axis === "y" ? element.scrollTop : element.scrollLeft;
396
+ if (size > 0 && /(?:auto|scroll)/u.test(overflow) && (delta > 0 && position > 0 || delta < 0 && position < size)) return true;
397
+ element = element.parentElement;
398
+ }
399
+ return false;
400
+ }
401
+ function Sheet(props) {
402
+ const context = useContext(SheetContext);
403
+ if (!context) throw new Error("Sheet requires SheetOverlay");
404
+ const [ref$1, setRef] = createSignal(null, { ownedWrite: true });
405
+ const locale = createLocale();
406
+ const modalContext = useContext(InternalModalContext);
407
+ if (!modalContext) throw new Error("Sheet requires ModalOverlay");
408
+ let scroller;
409
+ const [pageOffset, setPageOffset] = createSignal({
410
+ x: typeof window === "undefined" ? 0 : window.scrollX,
411
+ y: typeof window === "undefined" ? 0 : window.scrollY
412
+ }, { ownedWrite: true });
413
+ const [geometry, setGeometry] = createSignal({
414
+ points: [],
415
+ size: 0,
416
+ viewport: 0
417
+ }, { ownedWrite: true });
418
+ const [scroll, setScroll] = createSignal(0, { ownedWrite: true });
419
+ const [isDragging, setDragging] = createSignal(false, { ownedWrite: true });
420
+ const config = () => swipeConfig(context.values.swipeDirection);
421
+ const points = () => {
422
+ const { points: measured, size } = geometry();
423
+ const element = ref$1();
424
+ const configured = context.props.snapPoints;
425
+ const configuredPoints = configured !== void 0 && configured.length > 0 ? configured : [size];
426
+ return element ? configuredPoints.map((point, index) => Math.max(0, Math.min(size, measured[index] ?? resolveLength(point, size, element)))) : [size];
427
+ };
428
+ const smallest = () => Math.min(...points());
429
+ const clamped = () => context.props.preventDismissal === true && !context.values.isEntering && !context.values.isExiting;
430
+ const travel = () => Math.max(1, geometry().size - smallest());
431
+ const stageStart = () => {
432
+ if (clamped() && config().after) return config().before ? 1 : travel();
433
+ return geometry().viewport;
434
+ };
435
+ const entered = () => config().before && !config().after ? 0 : stageStart();
436
+ const visible = () => Math.max(0, geometry().size - Math.abs(scroll() - entered()));
437
+ const scrollForPoint = (point) => entered() + (config().after ? -1 : 1) * (geometry().size - point);
438
+ const setPosition = (value) => {
439
+ if (!scroller) return;
440
+ const conf = config();
441
+ let lower = 0;
442
+ let upper = geometry().viewport * (conf.maxScroll / 100);
443
+ if (clamped()) {
444
+ const dual = conf.before === conf.after;
445
+ lower = dual ? entered() - 1 : 0;
446
+ upper = dual ? entered() + 1 : travel();
447
+ }
448
+ const position = Math.max(lower, Math.min(upper, value));
449
+ if (conf.axis === "y") scroller.scrollTop = position;
450
+ else scroller.scrollLeft = position;
451
+ setScroll(position);
452
+ };
453
+ let initialized = false;
454
+ let lastInitial = "";
455
+ let previousEntered = 0;
456
+ const measure = () => {
457
+ const element = ref$1();
458
+ if (!element || !scroller) return;
459
+ const conf = config();
460
+ const rect = element.getBoundingClientRect();
461
+ const total = conf.axis === "y" ? element.offsetHeight || rect.height : element.offsetWidth || rect.width;
462
+ let padding = 0;
463
+ if (props.overscrollPadding === true && context.values.position === context.values.swipeDirection) padding = conf.axis === "y" ? window.innerHeight : window.innerWidth;
464
+ const size = Math.max(0, total - padding);
465
+ const edges = conf.axis === "y" ? ["top", "bottom"] : ["left", "right"];
466
+ const edge = conf.after ? edges[0] : edges[1];
467
+ const markers = element.querySelectorAll("[data-sheet-detent]");
468
+ const configured = context.props.snapPoints ?? [];
469
+ const measured = Array.from(markers, (marker, index) => {
470
+ const length = getComputedStyle(marker)[edge];
471
+ const value = length.endsWith("px") ? parseCSSNumber(length) : NaN;
472
+ return Number.isFinite(value) ? value : resolveLength(configured[index] ?? size, size, element);
473
+ });
474
+ setGeometry({
475
+ points: measured,
476
+ size,
477
+ viewport: conf.axis === "y" ? window.innerHeight : window.innerWidth
478
+ });
479
+ };
480
+ const updatePageOffset = () => {
481
+ setPageOffset({
482
+ x: window.scrollX,
483
+ y: window.scrollY
484
+ });
485
+ };
486
+ onSettled(() => {
487
+ untrack(measure);
488
+ const element = untrack(ref$1);
489
+ if (element?.isConnected !== true) return;
490
+ const unregister = context.register(element, {
491
+ get height() {
492
+ geometry();
493
+ return element.offsetHeight;
494
+ },
495
+ get isSwiping() {
496
+ return isDragging();
497
+ },
498
+ get swipeProgress() {
499
+ const offsets = points().map((point) => geometry().size - point).toSorted((a, b) => a - b);
500
+ const minimum = offsets[0] ?? 0;
501
+ const range = offsets.length > 1 ? (offsets[1] ?? 0) - minimum : geometry().size;
502
+ return Math.max(0, Math.min(1, (geometry().size - visible() - minimum) / (range || 1)));
503
+ }
504
+ });
505
+ const observer = new ResizeObserver(measure);
506
+ observer.observe(element);
507
+ window.addEventListener("resize", measure);
508
+ window.addEventListener("scroll", updatePageOffset, { passive: true });
509
+ return () => {
510
+ unregister();
511
+ observer.disconnect();
512
+ window.removeEventListener("resize", measure);
513
+ window.removeEventListener("scroll", updatePageOffset);
514
+ };
515
+ });
516
+ createEffect(() => ({
517
+ axis: config().axis,
518
+ points: context.props.snapPoints?.join(" ")
519
+ }), () => {
520
+ untrack(measure);
521
+ }, { ssrSource: "client" });
522
+ createEffect(() => {
523
+ const conf = config();
524
+ const { size, viewport } = geometry();
525
+ const start = entered();
526
+ const isClamped = clamped();
527
+ const dual = conf.before === conf.after;
528
+ let upper = viewport * (conf.maxScroll / 100);
529
+ if (isClamped) upper = dual ? start + 1 : travel();
530
+ return {
531
+ axis: conf.axis,
532
+ direction: context.values.swipeDirection,
533
+ entered: start,
534
+ initial: scrollForPoint(points()[0] ?? size),
535
+ lower: isClamped && dual ? start - 1 : 0,
536
+ points: context.props.snapPoints?.join(" "),
537
+ scroll: untrack(scroll),
538
+ size,
539
+ upper,
540
+ viewport
541
+ };
542
+ }, (next) => {
543
+ if (!next.size || !next.viewport || !scroller) return;
544
+ const initialKey = `${next.direction}:${next.points ?? ""}`;
545
+ const target = !initialized || initialKey !== lastInitial ? next.initial : next.scroll + next.entered - previousEntered;
546
+ const position = Math.max(next.lower, Math.min(next.upper, target));
547
+ if (next.axis === "y") scroller.scrollTop = position;
548
+ else scroller.scrollLeft = position;
549
+ setScroll(position);
550
+ initialized = true;
551
+ lastInitial = initialKey;
552
+ previousEntered = next.entered;
553
+ });
554
+ const setExpanded = untrack(() => context.setExpanded);
555
+ createEffect(() => ({
556
+ size: geometry().size,
557
+ visible: visible()
558
+ }), (next) => {
559
+ setExpanded(next.size > 0 && next.visible >= next.size - 1);
560
+ });
561
+ const finish = () => {
562
+ if (!initialized) return;
563
+ const { size } = geometry();
564
+ const amount = visible();
565
+ const minimum = smallest();
566
+ if (context.props.preventDismissal !== true && amount < minimum / 2) {
567
+ context.values.state.close();
568
+ return;
569
+ }
570
+ let nearest = minimum;
571
+ for (const point of points()) if (Math.abs(point - amount) < Math.abs(nearest - amount)) nearest = point;
572
+ let side = config().after ? -1 : 1;
573
+ if (config().before && config().after && scroll() > entered()) side = 1;
574
+ setPosition(entered() + side * (size - nearest));
575
+ };
576
+ let gesture;
577
+ const onDown = (event) => {
578
+ if (event.button !== 0 || context.values.hasDescendants || event.pointerType === "touch" && (!(event.target instanceof Element) || !event.target.closest("[data-sheet-drag-handle]")) || !initialized) return;
579
+ gesture = {
580
+ coordinate: config().axis === "y" ? event.clientY : event.clientX,
581
+ dragged: false,
582
+ id: event.pointerId,
583
+ scroll: scroll(),
584
+ target: event.target
585
+ };
586
+ };
587
+ const onUp = (event) => {
588
+ if (gesture?.id !== event.pointerId) return;
589
+ const { dragged } = gesture;
590
+ gesture = void 0;
591
+ if (dragged) finish();
592
+ setDragging(false);
593
+ };
594
+ const onCancel = () => {
595
+ if (gesture) {
596
+ gesture = void 0;
597
+ finish();
598
+ setDragging(false);
599
+ }
600
+ };
601
+ onSettled(() => {
602
+ const element = untrack(ref$1);
603
+ if (element?.isConnected !== true) return;
604
+ modalContext.setModalRef(element);
605
+ const onMove = (event) => {
606
+ if (!gesture || event.pointerId !== gesture.id) return;
607
+ const delta = (config().axis === "y" ? event.clientY : event.clientX) - gesture.coordinate;
608
+ if (!gesture.dragged && Math.abs(delta) < 6) return;
609
+ if (!gesture.dragged && canScroll(gesture.target, element, config().axis, delta)) {
610
+ gesture = void 0;
611
+ return;
612
+ }
613
+ gesture.dragged = true;
614
+ setDragging(true);
615
+ element.setPointerCapture?.(event.pointerId);
616
+ event.preventDefault();
617
+ setPosition(gesture.scroll - delta);
618
+ };
619
+ element.addEventListener("pointerdown", onDown);
620
+ const doc = element.ownerDocument;
621
+ doc.addEventListener("pointermove", onMove);
622
+ doc.addEventListener("pointerup", onUp);
623
+ doc.addEventListener("pointercancel", onCancel);
624
+ return () => {
625
+ element.removeEventListener("pointerdown", onDown);
626
+ doc.removeEventListener("pointermove", onMove);
627
+ doc.removeEventListener("pointerup", onUp);
628
+ doc.removeEventListener("pointercancel", onCancel);
629
+ };
630
+ });
631
+ const render = createRenderProps(mergeProps$1(props, {
632
+ defaultClass: "solid2-aria-Sheet",
633
+ get values() {
634
+ return context.values;
635
+ }
636
+ }));
637
+ const sheetStyle = () => {
638
+ const frontmost = context.descendants.at(-1);
639
+ const own = {
640
+ "--sheet-descendant-count": context.descendants.length,
641
+ "--sheet-frontmost-height": `${frontmost?.height ?? 0}px`,
642
+ "--sheet-swipe-progress": frontmost?.swipeProgress ?? context.entry?.swipeProgress ?? 0,
643
+ direction: locale.direction,
644
+ position: "relative",
645
+ ...swipeAnimation(props, context)
646
+ };
647
+ if (props.overscrollPadding === true && context.values.position === context.values.swipeDirection) {
648
+ const amount = config().axis === "y" ? "100vh" : "100vw";
649
+ const { position } = context.values;
650
+ if (position === "bottom") {
651
+ own["padding-bottom"] = amount;
652
+ own["margin-bottom"] = `-${amount}`;
653
+ } else if (position === "top") {
654
+ own["padding-top"] = amount;
655
+ own["margin-top"] = `-${amount}`;
656
+ } else if (position === "left") {
657
+ own["padding-left"] = amount;
658
+ own["margin-left"] = `-${amount}`;
659
+ } else if (position === "right") {
660
+ own["padding-right"] = amount;
661
+ own["margin-right"] = `-${amount}`;
662
+ }
663
+ }
664
+ if (props.stackAnimation !== void 0 && props.stackAnimation.length > 0 && viewTimelineSupported() && context.descendants.length) {
665
+ const { descendants } = context;
666
+ own["animation-name"] = [own["animation-name"], ...descendants.map(() => props.stackAnimation)].filter(Boolean).join(", ");
667
+ own["animation-timeline"] = [own["animation-timeline"], ...descendants.map((_, i) => `--sheet-timeline-${context.values.stackIndex + 1 + i}`)].filter(Boolean).join(", ");
668
+ own["animation-direction"] = [own["animation-direction"], ...descendants.map((entry) => entry.direction)].filter(Boolean).join(", ");
669
+ own["animation-iteration-count"] = [own["animation-iteration-count"], ...descendants.map((entry) => entry.iterations)].filter(Boolean).join(", ");
670
+ own["animation-range"] = [own["animation-range"], ...descendants.map((entry) => entry.range)].filter(Boolean).join(", ");
671
+ own["animation-fill-mode"] = [own["animation-fill-mode"], ...descendants.map(() => "both")].filter(Boolean).join(", ");
672
+ own["animation-composition"] = [own["animation-composition"], ...descendants.map(() => "accumulate")].filter(Boolean).join(", ");
673
+ own["animation-timing-function"] = [own["animation-timing-function"], ...descendants.map(() => "linear")].filter(Boolean).join(", ");
674
+ }
675
+ return Object.assign(own, objectStyle(render.style));
676
+ };
677
+ const alignment = {
678
+ bottom: ["center", "flex-end"],
679
+ center: ["center", "center"],
680
+ left: ["flex-start", "center"],
681
+ right: ["flex-end", "center"],
682
+ top: ["center", "flex-start"]
683
+ };
684
+ const viewport = () => config().axis === "y" ? "100dvh" : "100dvw";
685
+ const endMarker = () => {
686
+ if (clamped() && config().before) return config().after ? `calc(${stageStart()}px + ${viewport()} + 1px)` : `calc(${travel()}px + ${viewport()})`;
687
+ return `calc(${stageStart()}px + ${viewport()}${config().before && config().after ? ` + ${viewport()}` : ""})`;
688
+ };
689
+ const scrollerStyle = () => ({
690
+ direction: "ltr",
691
+ height: config().axis === "y" ? "200dvh" : "100dvh",
692
+ left: config().axis === "x" ? `calc(${pageOffset().x}px + ${config().containerOffset}dvw)` : `${pageOffset().x}px`,
693
+ "overflow-x": config().axis === "x" ? "auto" : "hidden",
694
+ "overflow-y": config().axis === "y" ? "auto" : "hidden",
695
+ "overscroll-behavior-x": config().axis === "x" ? "contain" : "none",
696
+ "overscroll-behavior-y": config().axis === "y" ? "contain" : "none",
697
+ position: "absolute",
698
+ "scroll-snap-type": context.values.isEntering || context.values.isExiting || isDragging() ? "none" : `${config().axis} mandatory`,
699
+ "scrollbar-width": "none",
700
+ top: config().axis === "y" ? `calc(${pageOffset().y}px + ${config().containerOffset}dvh)` : `${pageOffset().y}px`,
701
+ width: config().axis === "x" ? "200dvw" : "100dvw"
702
+ });
703
+ const detentStyle = () => {
704
+ const style = {
705
+ inset: 0,
706
+ "pointer-events": "none",
707
+ position: "absolute"
708
+ };
709
+ if (props.overscrollPadding === true && context.values.position === context.values.swipeDirection) {
710
+ const { position } = context.values;
711
+ style[position] = config().axis === "y" ? "100vh" : "100vw";
712
+ }
713
+ return style;
714
+ };
715
+ var _el$ = getNextElement(_tmpl$);
716
+ var _el$2 = _el$.firstChild;
717
+ var [_el$3, _el$4] = getNextMarker(_el$2.nextSibling);
718
+ var _el$5 = _el$3.nextSibling;
719
+ var [_el$6, _el$7] = getNextMarker(_el$5.nextSibling);
720
+ var _el$8 = _el$6.nextSibling;
721
+ var _el$9 = _el$8.nextSibling;
722
+ var [_el$10, _el$11] = getNextMarker(_el$9.nextSibling);
723
+ _el$.addEventListener("scrollend", () => {
724
+ if (!gesture) finish();
725
+ });
726
+ _el$.addEventListener("scroll", () => {
727
+ if (!scroller) return;
728
+ const position = config().axis === "y" ? scroller.scrollTop : scroller.scrollLeft;
729
+ if (context.props.preventDismissal === true && initialized) setPosition(position);
730
+ else setScroll(position);
731
+ });
732
+ ref(() => {
733
+ return (element) => {
734
+ scroller = element;
735
+ };
736
+ }, _el$);
737
+ insert(_el$, createComponent(SnapPoint, {
738
+ point: 0,
739
+ get align() {
740
+ return clamped() && config().after ? "none" : "start";
741
+ },
742
+ get axis() {
743
+ return config().axis;
744
+ }
745
+ }), _el$3, _el$4);
746
+ insert(_el$, scope((() => {
747
+ var _c$ = memo(() => {
748
+ return !!(config().before && config().after);
749
+ });
750
+ return () => {
751
+ return _c$() ? createComponent(SnapPoint, {
752
+ get point() {
753
+ return stageStart();
754
+ },
755
+ align: "start",
756
+ get axis() {
757
+ return config().axis;
758
+ }
759
+ }) : config().before && config().after;
760
+ };
761
+ })()), _el$6, _el$7);
762
+ insert(_el$8, createComponent(dom.div, mergeProps(() => {
763
+ return mergeProps$1(filterDOMProps(props, { global: true }), merge(() => modalContext.modalProps ?? {}), omit(render, "children"), sheetData(context.values));
764
+ }, {
765
+ ref: [
766
+ (element) => {
767
+ modalContext.setModalRef(element);
768
+ },
769
+ (element) => {
770
+ setRef(element);
771
+ },
772
+ (element) => {
773
+ assignRef(untrack(() => props.ref), element);
774
+ }
775
+ ],
776
+ get style() {
777
+ return sheetStyle();
778
+ },
779
+ get "data-swiping"() {
780
+ return isDragging() || void 0;
781
+ },
782
+ get "data-descendants-swiping"() {
783
+ return context.descendants.some((entry) => entry.isSwiping) || void 0;
784
+ },
785
+ get children() {
786
+ return [
787
+ memo(() => {
788
+ return memo(() => {
789
+ return modalContext.isDismissable === true;
790
+ })() && createComponent(DismissButton, { get onDismiss() {
791
+ return context.values.state.close;
792
+ } });
793
+ }),
794
+ memo(() => {
795
+ return memo(() => {
796
+ return !!context.props.snapPoints;
797
+ })() ? (() => {
798
+ var _el$12 = getNextElement(_tmpl$2);
799
+ insert(_el$12, createComponent(For, {
800
+ get each() {
801
+ return context.props.snapPoints;
802
+ },
803
+ children: (point, index) => createComponent(DetentPoint, {
804
+ point,
805
+ get axis() {
806
+ return config().axis;
807
+ },
808
+ get after() {
809
+ return config().after;
810
+ },
811
+ get isInitial() {
812
+ return index() === 0;
813
+ }
814
+ })
815
+ }));
816
+ effect(() => readShallow(detentStyle()), (_v$, _$p) => {
817
+ style(_el$12, _v$, _$p);
818
+ });
819
+ return _el$12;
820
+ })() : context.props.snapPoints;
821
+ }),
822
+ createComponent(SheetOverlayChildren, {
823
+ get values() {
824
+ return context.values;
825
+ },
826
+ get children() {
827
+ return props.children;
828
+ }
829
+ }),
830
+ createComponent(DismissButton, { get onDismiss() {
831
+ return context.values.state.close;
832
+ } })
833
+ ];
834
+ }
835
+ })));
836
+ insert(_el$, createComponent(SnapPoint, {
837
+ get point() {
838
+ return endMarker();
839
+ },
840
+ get align() {
841
+ return clamped() && config().before ? "none" : "end";
842
+ },
843
+ get axis() {
844
+ return config().axis;
845
+ }
846
+ }), _el$10, _el$11);
847
+ effect(() => {
848
+ return {
849
+ e: readShallow(scrollerStyle()),
850
+ t: config().axis === "y" ? alignment[context.values.position][0] : alignment[context.values.position][1],
851
+ a: config().axis === "y" ? "column" : "row",
852
+ o: config().axis === "y" ? alignment[context.values.position][1] : alignment[context.values.position][0],
853
+ i: config().axis === "x" ? `${stageStart()}px` : 0,
854
+ n: config().axis === "y" ? `${stageStart()}px` : 0
855
+ };
856
+ }, ({ e, t, a, o, i, n }, _p$) => {
857
+ style(_el$, e, _p$?.e);
858
+ t !== _p$?.t && setStyleProperty(_el$8, "align-items", t);
859
+ a !== _p$?.a && setStyleProperty(_el$8, "flex-direction", a);
860
+ o !== _p$?.o && setStyleProperty(_el$8, "justify-content", o);
861
+ i !== _p$?.i && setStyleProperty(_el$8, "left", i);
862
+ n !== _p$?.n && setStyleProperty(_el$8, "top", n);
863
+ });
864
+ return _el$;
865
+ }
866
+ function SnapPoint(props) {
867
+ var _el$13 = getNextElement(_tmpl$3);
868
+ effect(() => {
869
+ return {
870
+ e: props.axis === "y" ? "100dvh" : "1px",
871
+ t: props.axis === "x" ? toLength(props.point) : 0,
872
+ a: props.align,
873
+ o: props.axis === "y" ? toLength(props.point) : 0,
874
+ i: props.axis === "x" ? "100dvw" : "1px"
875
+ };
876
+ }, ({ e, t, a, o, i }, _p$) => {
877
+ e !== _p$?.e && setStyleProperty(_el$13, "height", e);
878
+ t !== _p$?.t && setStyleProperty(_el$13, "left", t);
879
+ a !== _p$?.a && setStyleProperty(_el$13, "scroll-snap-align", a);
880
+ o !== _p$?.o && setStyleProperty(_el$13, "top", o);
881
+ i !== _p$?.i && setStyleProperty(_el$13, "width", i);
882
+ });
883
+ return _el$13;
884
+ }
885
+ function DetentPoint(props) {
886
+ const style$1 = () => {
887
+ const detent = {
888
+ height: "1px",
889
+ "pointer-events": "none",
890
+ position: "absolute",
891
+ "scroll-snap-align": props.after ? "start" : "end",
892
+ width: "1px"
893
+ };
894
+ if (props.axis === "y") {
895
+ detent.left = 0;
896
+ if (props.after) {
897
+ detent.top = toLength(props.point);
898
+ detent["scroll-margin-top"] = "100dvh";
899
+ } else {
900
+ detent.bottom = toLength(props.point);
901
+ detent["scroll-margin-bottom"] = "100dvh";
902
+ }
903
+ } else {
904
+ detent.top = 0;
905
+ if (props.after) {
906
+ detent.left = toLength(props.point);
907
+ detent["scroll-margin-left"] = "100dvw";
908
+ } else {
909
+ detent.right = toLength(props.point);
910
+ detent["scroll-margin-right"] = "100dvw";
911
+ }
912
+ }
913
+ return detent;
914
+ };
915
+ var _el$14 = getNextElement(_tmpl$4);
916
+ effect(() => {
917
+ return {
918
+ e: props.isInitial || void 0,
919
+ t: readShallow(style$1())
920
+ };
921
+ }, ({ e, t }, _p$) => {
922
+ e !== _p$?.e && setAttribute(_el$14, "data-sheet-initial", e);
923
+ style(_el$14, t, _p$?.t);
924
+ });
925
+ return _el$14;
926
+ }
927
+ function SheetBackdrop(props) {
928
+ const context = useContext(SheetContext);
929
+ if (!context) throw new Error("SheetBackdrop requires SheetOverlay");
930
+ const render = createRenderProps(mergeProps$1(props, {
931
+ defaultClass: "solid2-aria-SheetBackdrop",
932
+ get defaultStyle() {
933
+ return {
934
+ "--sheet-swipe-progress": context.entry?.swipeProgress ?? 0,
935
+ inset: 0,
936
+ position: "absolute",
937
+ ...swipeAnimation(props, context)
938
+ };
939
+ },
940
+ get values() {
941
+ return context.values;
942
+ }
943
+ }));
944
+ return createComponent(dom.div, mergeProps(() => {
945
+ return mergeProps$1(filterDOMProps(props, { global: true }), render, sheetData(context.values), {
946
+ onClick() {
947
+ if (context.props.preventDismissal !== true && !context.values.hasDescendants) context.values.state.close();
948
+ },
949
+ get ref() {
950
+ return props.ref;
951
+ }
952
+ });
953
+ }));
954
+ }
955
+ function SheetContent(props) {
956
+ const context = useContext(SheetContext);
957
+ if (!context) throw new Error("SheetContent requires SheetOverlay");
958
+ const config = () => swipeConfig(context.values.swipeDirection);
959
+ const viewport = () => config().axis === "y" ? "100dvh" : "100dvw";
960
+ return createComponent(Dialog, mergeProps(props, {
961
+ get isEntering() {
962
+ return context.values.isEntering;
963
+ },
964
+ "data-sheet-content": true,
965
+ get "class"() {
966
+ return props.class ?? "solid2-aria-SheetContent";
967
+ },
968
+ style: (values) => {
969
+ return {
970
+ ...objectStyle(typeof props.style === "function" ? props.style(values) : props.style),
971
+ height: "100%",
972
+ "view-timeline-axis": config().axis,
973
+ "view-timeline-inset": config().before && !config().after ? `${viewport()} 0` : `0 ${viewport()}`,
974
+ "view-timeline-name": `--sheet-timeline-${context.values.stackIndex}`,
975
+ width: "100%"
976
+ };
977
+ }
978
+ }));
979
+ }
980
+ export { Sheet, SheetBackdrop, SheetContent, SheetOverlay, SheetTrigger };
981
+
982
+ //# sourceMappingURL=sheet.js.map