@solid2-aria/components 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +58 -2
  3. package/dist/LICENSES/Apache-2.0.txt +201 -0
  4. package/dist/LICENSES/react-spectrum-NOTICE.txt +242 -0
  5. package/dist/NOTICE.txt +636 -0
  6. package/dist/browser/autocomplete.d.ts +35 -0
  7. package/dist/browser/autocomplete.js +69 -0
  8. package/dist/browser/autocomplete.js.map +1 -0
  9. package/dist/browser/breadcrumbs.d.ts +71 -0
  10. package/dist/browser/breadcrumbs.js +121 -0
  11. package/dist/browser/breadcrumbs.js.map +1 -0
  12. package/dist/browser/button.d.ts +36 -0
  13. package/dist/browser/button.js +156 -0
  14. package/dist/browser/button.js.map +1 -0
  15. package/dist/browser/calendar.d.ts +103 -0
  16. package/dist/browser/calendar.js +581 -0
  17. package/dist/browser/calendar.js.map +1 -0
  18. package/dist/browser/checkbox.d.ts +67 -0
  19. package/dist/browser/checkbox.js +345 -0
  20. package/dist/browser/checkbox.js.map +1 -0
  21. package/dist/browser/collection-dnd.d.ts +56 -0
  22. package/dist/browser/collection-dnd.js +156 -0
  23. package/dist/browser/collection-dnd.js.map +1 -0
  24. package/dist/browser/collection.d.ts +153 -0
  25. package/dist/browser/collection.js +106 -0
  26. package/dist/browser/collection.js.map +1 -0
  27. package/dist/browser/color-area.d.ts +21 -0
  28. package/dist/browser/color-area.js +94 -0
  29. package/dist/browser/color-area.js.map +1 -0
  30. package/dist/browser/color-field.d.ts +39 -0
  31. package/dist/browser/color-field.js +232 -0
  32. package/dist/browser/color-field.js.map +1 -0
  33. package/dist/browser/color-picker.d.ts +30 -0
  34. package/dist/browser/color-picker.js +84 -0
  35. package/dist/browser/color-picker.js.map +1 -0
  36. package/dist/browser/color-slider.d.ts +23 -0
  37. package/dist/browser/color-slider.js +132 -0
  38. package/dist/browser/color-slider.js.map +1 -0
  39. package/dist/browser/color-swatch-picker.d.ts +29 -0
  40. package/dist/browser/color-swatch-picker.js +131 -0
  41. package/dist/browser/color-swatch-picker.js.map +1 -0
  42. package/dist/browser/color-swatch.d.ts +19 -0
  43. package/dist/browser/color-swatch.js +42 -0
  44. package/dist/browser/color-swatch.js.map +1 -0
  45. package/dist/browser/color-thumb.d.ts +42 -0
  46. package/dist/browser/color-thumb.js +114 -0
  47. package/dist/browser/color-thumb.js.map +1 -0
  48. package/dist/browser/color-wheel.d.ts +29 -0
  49. package/dist/browser/color-wheel.js +109 -0
  50. package/dist/browser/color-wheel.js.map +1 -0
  51. package/dist/browser/combo-box.d.ts +113 -0
  52. package/dist/browser/combo-box.js +394 -0
  53. package/dist/browser/combo-box.js.map +1 -0
  54. package/dist/browser/create-drag-and-drop.d.ts +61 -0
  55. package/dist/browser/create-drag-and-drop.js +56 -0
  56. package/dist/browser/create-drag-and-drop.js.map +1 -0
  57. package/dist/browser/date-field.d.ts +71 -0
  58. package/dist/browser/date-field.js +508 -0
  59. package/dist/browser/date-field.js.map +1 -0
  60. package/dist/browser/date-picker.d.ts +50 -0
  61. package/dist/browser/date-picker.js +403 -0
  62. package/dist/browser/date-picker.js.map +1 -0
  63. package/dist/browser/dialog.d.ts +35 -0
  64. package/dist/browser/dialog.js +148 -0
  65. package/dist/browser/dialog.js.map +1 -0
  66. package/dist/browser/disclosure.d.ts +56 -0
  67. package/dist/browser/disclosure.js +180 -0
  68. package/dist/browser/disclosure.js.map +1 -0
  69. package/dist/browser/drag-and-drop.d.ts +43 -0
  70. package/dist/browser/drag-and-drop.js +66 -0
  71. package/dist/browser/drag-and-drop.js.map +1 -0
  72. package/dist/browser/drop-zone.d.ts +33 -0
  73. package/dist/browser/drop-zone.js +161 -0
  74. package/dist/browser/drop-zone.js.map +1 -0
  75. package/dist/browser/field-error.d.ts +28 -0
  76. package/dist/browser/field-error.js +60 -0
  77. package/dist/browser/field-error.js.map +1 -0
  78. package/dist/browser/file-trigger.d.ts +30 -0
  79. package/dist/browser/file-trigger.js +66 -0
  80. package/dist/browser/file-trigger.js.map +1 -0
  81. package/dist/browser/form.d.ts +28 -0
  82. package/dist/browser/form.js +64 -0
  83. package/dist/browser/form.js.map +1 -0
  84. package/dist/browser/grid-layout.d.ts +22 -0
  85. package/dist/browser/grid-layout.js +30 -0
  86. package/dist/browser/grid-layout.js.map +1 -0
  87. package/dist/browser/grid-list.d.ts +95 -0
  88. package/dist/browser/grid-list.js +609 -0
  89. package/dist/browser/grid-list.js.map +1 -0
  90. package/dist/browser/group.d.ts +35 -0
  91. package/dist/browser/group.js +92 -0
  92. package/dist/browser/group.js.map +1 -0
  93. package/dist/browser/header.d.ts +25 -0
  94. package/dist/browser/header.js +57 -0
  95. package/dist/browser/header.js.map +1 -0
  96. package/dist/browser/heading.d.ts +26 -0
  97. package/dist/browser/heading.js +53 -0
  98. package/dist/browser/heading.js.map +1 -0
  99. package/dist/browser/hidden-date-input.d.ts +34 -0
  100. package/dist/browser/hidden-date-input.js +84 -0
  101. package/dist/browser/hidden-date-input.js.map +1 -0
  102. package/dist/browser/index.d.ts +133 -0
  103. package/dist/browser/index.js +98 -0
  104. package/dist/browser/input.d.ts +33 -0
  105. package/dist/browser/input.js +94 -0
  106. package/dist/browser/input.js.map +1 -0
  107. package/dist/browser/intl/ar-AE.js +11 -0
  108. package/dist/browser/intl/ar-AE.js.map +1 -0
  109. package/dist/browser/intl/bg-BG.js +11 -0
  110. package/dist/browser/intl/bg-BG.js.map +1 -0
  111. package/dist/browser/intl/cs-CZ.js +11 -0
  112. package/dist/browser/intl/cs-CZ.js.map +1 -0
  113. package/dist/browser/intl/da-DK.js +11 -0
  114. package/dist/browser/intl/da-DK.js.map +1 -0
  115. package/dist/browser/intl/de-DE.js +11 -0
  116. package/dist/browser/intl/de-DE.js.map +1 -0
  117. package/dist/browser/intl/el-GR.js +11 -0
  118. package/dist/browser/intl/el-GR.js.map +1 -0
  119. package/dist/browser/intl/en-US.js +11 -0
  120. package/dist/browser/intl/en-US.js.map +1 -0
  121. package/dist/browser/intl/es-ES.js +11 -0
  122. package/dist/browser/intl/es-ES.js.map +1 -0
  123. package/dist/browser/intl/et-EE.js +11 -0
  124. package/dist/browser/intl/et-EE.js.map +1 -0
  125. package/dist/browser/intl/fi-FI.js +11 -0
  126. package/dist/browser/intl/fi-FI.js.map +1 -0
  127. package/dist/browser/intl/fr-FR.js +11 -0
  128. package/dist/browser/intl/fr-FR.js.map +1 -0
  129. package/dist/browser/intl/he-IL.js +11 -0
  130. package/dist/browser/intl/he-IL.js.map +1 -0
  131. package/dist/browser/intl/hr-HR.js +11 -0
  132. package/dist/browser/intl/hr-HR.js.map +1 -0
  133. package/dist/browser/intl/hu-HU.js +11 -0
  134. package/dist/browser/intl/hu-HU.js.map +1 -0
  135. package/dist/browser/intl/index.js +75 -0
  136. package/dist/browser/intl/index.js.map +1 -0
  137. package/dist/browser/intl/it-IT.js +11 -0
  138. package/dist/browser/intl/it-IT.js.map +1 -0
  139. package/dist/browser/intl/ja-JP.js +11 -0
  140. package/dist/browser/intl/ja-JP.js.map +1 -0
  141. package/dist/browser/intl/ko-KR.js +11 -0
  142. package/dist/browser/intl/ko-KR.js.map +1 -0
  143. package/dist/browser/intl/lt-LT.js +11 -0
  144. package/dist/browser/intl/lt-LT.js.map +1 -0
  145. package/dist/browser/intl/lv-LV.js +11 -0
  146. package/dist/browser/intl/lv-LV.js.map +1 -0
  147. package/dist/browser/intl/nb-NO.js +11 -0
  148. package/dist/browser/intl/nb-NO.js.map +1 -0
  149. package/dist/browser/intl/nl-NL.js +11 -0
  150. package/dist/browser/intl/nl-NL.js.map +1 -0
  151. package/dist/browser/intl/pl-PL.js +11 -0
  152. package/dist/browser/intl/pl-PL.js.map +1 -0
  153. package/dist/browser/intl/pt-BR.js +11 -0
  154. package/dist/browser/intl/pt-BR.js.map +1 -0
  155. package/dist/browser/intl/pt-PT.js +11 -0
  156. package/dist/browser/intl/pt-PT.js.map +1 -0
  157. package/dist/browser/intl/ro-RO.js +11 -0
  158. package/dist/browser/intl/ro-RO.js.map +1 -0
  159. package/dist/browser/intl/ru-RU.js +11 -0
  160. package/dist/browser/intl/ru-RU.js.map +1 -0
  161. package/dist/browser/intl/sk-SK.js +11 -0
  162. package/dist/browser/intl/sk-SK.js.map +1 -0
  163. package/dist/browser/intl/sl-SI.js +11 -0
  164. package/dist/browser/intl/sl-SI.js.map +1 -0
  165. package/dist/browser/intl/sr-SP.js +11 -0
  166. package/dist/browser/intl/sr-SP.js.map +1 -0
  167. package/dist/browser/intl/sv-SE.js +11 -0
  168. package/dist/browser/intl/sv-SE.js.map +1 -0
  169. package/dist/browser/intl/tr-TR.js +11 -0
  170. package/dist/browser/intl/tr-TR.js.map +1 -0
  171. package/dist/browser/intl/uk-UA.js +11 -0
  172. package/dist/browser/intl/uk-UA.js.map +1 -0
  173. package/dist/browser/intl/zh-CN.js +11 -0
  174. package/dist/browser/intl/zh-CN.js.map +1 -0
  175. package/dist/browser/intl/zh-TW.js +11 -0
  176. package/dist/browser/intl/zh-TW.js.map +1 -0
  177. package/dist/browser/keyboard.d.ts +25 -0
  178. package/dist/browser/keyboard.js +50 -0
  179. package/dist/browser/keyboard.js.map +1 -0
  180. package/dist/browser/label.d.ts +26 -0
  181. package/dist/browser/label.js +53 -0
  182. package/dist/browser/label.js.map +1 -0
  183. package/dist/browser/link.d.ts +34 -0
  184. package/dist/browser/link.js +92 -0
  185. package/dist/browser/link.js.map +1 -0
  186. package/dist/browser/list-box.d.ts +171 -0
  187. package/dist/browser/list-box.js +547 -0
  188. package/dist/browser/list-box.js.map +1 -0
  189. package/dist/browser/menu.d.ts +150 -0
  190. package/dist/browser/menu.js +597 -0
  191. package/dist/browser/menu.js.map +1 -0
  192. package/dist/browser/meter.d.ts +29 -0
  193. package/dist/browser/meter.js +73 -0
  194. package/dist/browser/meter.js.map +1 -0
  195. package/dist/browser/modal.d.ts +48 -0
  196. package/dist/browser/modal.js +190 -0
  197. package/dist/browser/modal.js.map +1 -0
  198. package/dist/browser/navigation-tree.d.ts +54 -0
  199. package/dist/browser/navigation-tree.js +233 -0
  200. package/dist/browser/navigation-tree.js.map +1 -0
  201. package/dist/browser/number-field.d.ts +36 -0
  202. package/dist/browser/number-field.js +179 -0
  203. package/dist/browser/number-field.js.map +1 -0
  204. package/dist/browser/overlay-arrow.d.ts +32 -0
  205. package/dist/browser/overlay-arrow.js +65 -0
  206. package/dist/browser/overlay-arrow.js.map +1 -0
  207. package/dist/browser/overlay-contexts.d.ts +22 -0
  208. package/dist/browser/overlay-contexts.js +24 -0
  209. package/dist/browser/overlay-contexts.js.map +1 -0
  210. package/dist/browser/popover.d.ts +50 -0
  211. package/dist/browser/popover.js +255 -0
  212. package/dist/browser/popover.js.map +1 -0
  213. package/dist/browser/preview-trigger.d.ts +25 -0
  214. package/dist/browser/preview-trigger.js +93 -0
  215. package/dist/browser/preview-trigger.js.map +1 -0
  216. package/dist/browser/progress-bar.d.ts +30 -0
  217. package/dist/browser/progress-bar.js +76 -0
  218. package/dist/browser/progress-bar.js.map +1 -0
  219. package/dist/browser/radio-group.d.ts +67 -0
  220. package/dist/browser/radio-group.js +336 -0
  221. package/dist/browser/radio-group.js.map +1 -0
  222. package/dist/browser/search-field.d.ts +34 -0
  223. package/dist/browser/search-field.js +156 -0
  224. package/dist/browser/search-field.js.map +1 -0
  225. package/dist/browser/select.d.ts +115 -0
  226. package/dist/browser/select.js +351 -0
  227. package/dist/browser/select.js.map +1 -0
  228. package/dist/browser/selection-indicator.d.ts +25 -0
  229. package/dist/browser/selection-indicator.js +40 -0
  230. package/dist/browser/selection-indicator.js.map +1 -0
  231. package/dist/browser/separator.d.ts +30 -0
  232. package/dist/browser/separator.js +68 -0
  233. package/dist/browser/separator.js.map +1 -0
  234. package/dist/browser/shared-element-transition.d.ts +35 -0
  235. package/dist/browser/shared-element-transition.js +141 -0
  236. package/dist/browser/shared-element-transition.js.map +1 -0
  237. package/dist/browser/sheet.d.ts +64 -0
  238. package/dist/browser/sheet.js +982 -0
  239. package/dist/browser/sheet.js.map +1 -0
  240. package/dist/browser/slider.d.ts +77 -0
  241. package/dist/browser/slider.js +318 -0
  242. package/dist/browser/slider.js.map +1 -0
  243. package/dist/browser/switch.d.ts +54 -0
  244. package/dist/browser/switch.js +240 -0
  245. package/dist/browser/switch.js.map +1 -0
  246. package/dist/browser/table-layout.d.ts +22 -0
  247. package/dist/browser/table-layout.js +31 -0
  248. package/dist/browser/table-layout.js.map +1 -0
  249. package/dist/browser/table.d.ts +184 -0
  250. package/dist/browser/table.js +1268 -0
  251. package/dist/browser/table.js.map +1 -0
  252. package/dist/browser/tabs.d.ts +194 -0
  253. package/dist/browser/tabs.js +378 -0
  254. package/dist/browser/tabs.js.map +1 -0
  255. package/dist/browser/tag-group.d.ts +112 -0
  256. package/dist/browser/tag-group.js +291 -0
  257. package/dist/browser/tag-group.js.map +1 -0
  258. package/dist/browser/text-area.d.ts +16 -0
  259. package/dist/browser/text-area.js +75 -0
  260. package/dist/browser/text-area.js.map +1 -0
  261. package/dist/browser/text-field.d.ts +31 -0
  262. package/dist/browser/text-field.js +152 -0
  263. package/dist/browser/text-field.js.map +1 -0
  264. package/dist/browser/text.d.ts +25 -0
  265. package/dist/browser/text.js +52 -0
  266. package/dist/browser/text.js.map +1 -0
  267. package/dist/browser/toast.d.ts +66 -0
  268. package/dist/browser/toast.js +226 -0
  269. package/dist/browser/toast.js.map +1 -0
  270. package/dist/browser/toggle-button-group.d.ts +32 -0
  271. package/dist/browser/toggle-button-group.js +74 -0
  272. package/dist/browser/toggle-button-group.js.map +1 -0
  273. package/dist/browser/toggle-button.d.ts +33 -0
  274. package/dist/browser/toggle-button.js +119 -0
  275. package/dist/browser/toggle-button.js.map +1 -0
  276. package/dist/browser/token-field.d.ts +124 -0
  277. package/dist/browser/token-field.js +277 -0
  278. package/dist/browser/token-field.js.map +1 -0
  279. package/dist/browser/toolbar.d.ts +28 -0
  280. package/dist/browser/toolbar.js +51 -0
  281. package/dist/browser/toolbar.js.map +1 -0
  282. package/dist/browser/tooltip.d.ts +44 -0
  283. package/dist/browser/tooltip.js +183 -0
  284. package/dist/browser/tooltip.js.map +1 -0
  285. package/dist/browser/tree-drop-target-delegate.d.ts +33 -0
  286. package/dist/browser/tree-drop-target-delegate.js +178 -0
  287. package/dist/browser/tree-drop-target-delegate.js.map +1 -0
  288. package/dist/browser/tree.d.ts +98 -0
  289. package/dist/browser/tree.js +699 -0
  290. package/dist/browser/tree.js.map +1 -0
  291. package/dist/browser/utils.d.ts +94 -0
  292. package/dist/browser/utils.js +173 -0
  293. package/dist/browser/utils.js.map +1 -0
  294. package/dist/browser/virtualizer.d.ts +33 -0
  295. package/dist/browser/virtualizer.js +179 -0
  296. package/dist/browser/virtualizer.js.map +1 -0
  297. package/dist/server/autocomplete.js +125 -0
  298. package/dist/server/autocomplete.js.map +1 -0
  299. package/dist/server/breadcrumbs.js +185 -0
  300. package/dist/server/breadcrumbs.js.map +1 -0
  301. package/dist/server/button.js +252 -0
  302. package/dist/server/button.js.map +1 -0
  303. package/dist/server/calendar.js +1054 -0
  304. package/dist/server/calendar.js.map +1 -0
  305. package/dist/server/checkbox.js +595 -0
  306. package/dist/server/checkbox.js.map +1 -0
  307. package/dist/server/collection-dnd.js +217 -0
  308. package/dist/server/collection-dnd.js.map +1 -0
  309. package/dist/server/collection.js +106 -0
  310. package/dist/server/collection.js.map +1 -0
  311. package/dist/server/color-area.js +142 -0
  312. package/dist/server/color-area.js.map +1 -0
  313. package/dist/server/color-field.js +394 -0
  314. package/dist/server/color-field.js.map +1 -0
  315. package/dist/server/color-picker.js +170 -0
  316. package/dist/server/color-picker.js.map +1 -0
  317. package/dist/server/color-slider.js +328 -0
  318. package/dist/server/color-slider.js.map +1 -0
  319. package/dist/server/color-swatch-picker.js +234 -0
  320. package/dist/server/color-swatch-picker.js.map +1 -0
  321. package/dist/server/color-swatch.js +52 -0
  322. package/dist/server/color-swatch.js.map +1 -0
  323. package/dist/server/color-thumb.js +132 -0
  324. package/dist/server/color-thumb.js.map +1 -0
  325. package/dist/server/color-wheel.js +188 -0
  326. package/dist/server/color-wheel.js.map +1 -0
  327. package/dist/server/combo-box.js +914 -0
  328. package/dist/server/combo-box.js.map +1 -0
  329. package/dist/server/create-drag-and-drop.js +56 -0
  330. package/dist/server/create-drag-and-drop.js.map +1 -0
  331. package/dist/server/date-field.js +1055 -0
  332. package/dist/server/date-field.js.map +1 -0
  333. package/dist/server/date-picker.js +1079 -0
  334. package/dist/server/date-picker.js.map +1 -0
  335. package/dist/server/dialog.js +295 -0
  336. package/dist/server/dialog.js.map +1 -0
  337. package/dist/server/disclosure.js +292 -0
  338. package/dist/server/disclosure.js.map +1 -0
  339. package/dist/server/drag-and-drop.js +66 -0
  340. package/dist/server/drag-and-drop.js.map +1 -0
  341. package/dist/server/drop-zone.js +241 -0
  342. package/dist/server/drop-zone.js.map +1 -0
  343. package/dist/server/field-error.js +90 -0
  344. package/dist/server/field-error.js.map +1 -0
  345. package/dist/server/file-trigger.js +98 -0
  346. package/dist/server/file-trigger.js.map +1 -0
  347. package/dist/server/form.js +116 -0
  348. package/dist/server/form.js.map +1 -0
  349. package/dist/server/grid-layout.js +30 -0
  350. package/dist/server/grid-layout.js.map +1 -0
  351. package/dist/server/grid-list.js +1015 -0
  352. package/dist/server/grid-list.js.map +1 -0
  353. package/dist/server/group.js +146 -0
  354. package/dist/server/group.js.map +1 -0
  355. package/dist/server/header.js +72 -0
  356. package/dist/server/header.js.map +1 -0
  357. package/dist/server/heading.js +68 -0
  358. package/dist/server/heading.js.map +1 -0
  359. package/dist/server/hidden-date-input.js +79 -0
  360. package/dist/server/hidden-date-input.js.map +1 -0
  361. package/dist/server/index.js +98 -0
  362. package/dist/server/input.js +134 -0
  363. package/dist/server/input.js.map +1 -0
  364. package/dist/server/intl/ar-AE.js +11 -0
  365. package/dist/server/intl/ar-AE.js.map +1 -0
  366. package/dist/server/intl/bg-BG.js +11 -0
  367. package/dist/server/intl/bg-BG.js.map +1 -0
  368. package/dist/server/intl/cs-CZ.js +11 -0
  369. package/dist/server/intl/cs-CZ.js.map +1 -0
  370. package/dist/server/intl/da-DK.js +11 -0
  371. package/dist/server/intl/da-DK.js.map +1 -0
  372. package/dist/server/intl/de-DE.js +11 -0
  373. package/dist/server/intl/de-DE.js.map +1 -0
  374. package/dist/server/intl/el-GR.js +11 -0
  375. package/dist/server/intl/el-GR.js.map +1 -0
  376. package/dist/server/intl/en-US.js +11 -0
  377. package/dist/server/intl/en-US.js.map +1 -0
  378. package/dist/server/intl/es-ES.js +11 -0
  379. package/dist/server/intl/es-ES.js.map +1 -0
  380. package/dist/server/intl/et-EE.js +11 -0
  381. package/dist/server/intl/et-EE.js.map +1 -0
  382. package/dist/server/intl/fi-FI.js +11 -0
  383. package/dist/server/intl/fi-FI.js.map +1 -0
  384. package/dist/server/intl/fr-FR.js +11 -0
  385. package/dist/server/intl/fr-FR.js.map +1 -0
  386. package/dist/server/intl/he-IL.js +11 -0
  387. package/dist/server/intl/he-IL.js.map +1 -0
  388. package/dist/server/intl/hr-HR.js +11 -0
  389. package/dist/server/intl/hr-HR.js.map +1 -0
  390. package/dist/server/intl/hu-HU.js +11 -0
  391. package/dist/server/intl/hu-HU.js.map +1 -0
  392. package/dist/server/intl/index.js +75 -0
  393. package/dist/server/intl/index.js.map +1 -0
  394. package/dist/server/intl/it-IT.js +11 -0
  395. package/dist/server/intl/it-IT.js.map +1 -0
  396. package/dist/server/intl/ja-JP.js +11 -0
  397. package/dist/server/intl/ja-JP.js.map +1 -0
  398. package/dist/server/intl/ko-KR.js +11 -0
  399. package/dist/server/intl/ko-KR.js.map +1 -0
  400. package/dist/server/intl/lt-LT.js +11 -0
  401. package/dist/server/intl/lt-LT.js.map +1 -0
  402. package/dist/server/intl/lv-LV.js +11 -0
  403. package/dist/server/intl/lv-LV.js.map +1 -0
  404. package/dist/server/intl/nb-NO.js +11 -0
  405. package/dist/server/intl/nb-NO.js.map +1 -0
  406. package/dist/server/intl/nl-NL.js +11 -0
  407. package/dist/server/intl/nl-NL.js.map +1 -0
  408. package/dist/server/intl/pl-PL.js +11 -0
  409. package/dist/server/intl/pl-PL.js.map +1 -0
  410. package/dist/server/intl/pt-BR.js +11 -0
  411. package/dist/server/intl/pt-BR.js.map +1 -0
  412. package/dist/server/intl/pt-PT.js +11 -0
  413. package/dist/server/intl/pt-PT.js.map +1 -0
  414. package/dist/server/intl/ro-RO.js +11 -0
  415. package/dist/server/intl/ro-RO.js.map +1 -0
  416. package/dist/server/intl/ru-RU.js +11 -0
  417. package/dist/server/intl/ru-RU.js.map +1 -0
  418. package/dist/server/intl/sk-SK.js +11 -0
  419. package/dist/server/intl/sk-SK.js.map +1 -0
  420. package/dist/server/intl/sl-SI.js +11 -0
  421. package/dist/server/intl/sl-SI.js.map +1 -0
  422. package/dist/server/intl/sr-SP.js +11 -0
  423. package/dist/server/intl/sr-SP.js.map +1 -0
  424. package/dist/server/intl/sv-SE.js +11 -0
  425. package/dist/server/intl/sv-SE.js.map +1 -0
  426. package/dist/server/intl/tr-TR.js +11 -0
  427. package/dist/server/intl/tr-TR.js.map +1 -0
  428. package/dist/server/intl/uk-UA.js +11 -0
  429. package/dist/server/intl/uk-UA.js.map +1 -0
  430. package/dist/server/intl/zh-CN.js +11 -0
  431. package/dist/server/intl/zh-CN.js.map +1 -0
  432. package/dist/server/intl/zh-TW.js +11 -0
  433. package/dist/server/intl/zh-TW.js.map +1 -0
  434. package/dist/server/keyboard.js +65 -0
  435. package/dist/server/keyboard.js.map +1 -0
  436. package/dist/server/label.js +68 -0
  437. package/dist/server/label.js.map +1 -0
  438. package/dist/server/link.js +138 -0
  439. package/dist/server/link.js.map +1 -0
  440. package/dist/server/list-box.js +906 -0
  441. package/dist/server/list-box.js.map +1 -0
  442. package/dist/server/menu.js +1188 -0
  443. package/dist/server/menu.js.map +1 -0
  444. package/dist/server/meter.js +101 -0
  445. package/dist/server/meter.js.map +1 -0
  446. package/dist/server/modal.js +360 -0
  447. package/dist/server/modal.js.map +1 -0
  448. package/dist/server/navigation-tree.js +316 -0
  449. package/dist/server/navigation-tree.js.map +1 -0
  450. package/dist/server/number-field.js +371 -0
  451. package/dist/server/number-field.js.map +1 -0
  452. package/dist/server/overlay-arrow.js +81 -0
  453. package/dist/server/overlay-arrow.js.map +1 -0
  454. package/dist/server/overlay-contexts.js +24 -0
  455. package/dist/server/overlay-contexts.js.map +1 -0
  456. package/dist/server/popover.js +455 -0
  457. package/dist/server/popover.js.map +1 -0
  458. package/dist/server/preview-trigger.js +153 -0
  459. package/dist/server/preview-trigger.js.map +1 -0
  460. package/dist/server/progress-bar.js +104 -0
  461. package/dist/server/progress-bar.js.map +1 -0
  462. package/dist/server/radio-group.js +586 -0
  463. package/dist/server/radio-group.js.map +1 -0
  464. package/dist/server/search-field.js +288 -0
  465. package/dist/server/search-field.js.map +1 -0
  466. package/dist/server/select.js +771 -0
  467. package/dist/server/select.js.map +1 -0
  468. package/dist/server/selection-indicator.js +54 -0
  469. package/dist/server/selection-indicator.js.map +1 -0
  470. package/dist/server/separator.js +91 -0
  471. package/dist/server/separator.js.map +1 -0
  472. package/dist/server/shared-element-transition.js +189 -0
  473. package/dist/server/shared-element-transition.js.map +1 -0
  474. package/dist/server/sheet.js +1197 -0
  475. package/dist/server/sheet.js.map +1 -0
  476. package/dist/server/slider.js +581 -0
  477. package/dist/server/slider.js.map +1 -0
  478. package/dist/server/switch.js +400 -0
  479. package/dist/server/switch.js.map +1 -0
  480. package/dist/server/table-layout.js +31 -0
  481. package/dist/server/table-layout.js.map +1 -0
  482. package/dist/server/table.js +2075 -0
  483. package/dist/server/table.js.map +1 -0
  484. package/dist/server/tabs.js +668 -0
  485. package/dist/server/tabs.js.map +1 -0
  486. package/dist/server/tag-group.js +538 -0
  487. package/dist/server/tag-group.js.map +1 -0
  488. package/dist/server/text-area.js +115 -0
  489. package/dist/server/text-area.js.map +1 -0
  490. package/dist/server/text-field.js +272 -0
  491. package/dist/server/text-field.js.map +1 -0
  492. package/dist/server/text.js +67 -0
  493. package/dist/server/text.js.map +1 -0
  494. package/dist/server/toast.js +449 -0
  495. package/dist/server/toast.js.map +1 -0
  496. package/dist/server/toggle-button-group.js +125 -0
  497. package/dist/server/toggle-button-group.js.map +1 -0
  498. package/dist/server/toggle-button.js +183 -0
  499. package/dist/server/toggle-button.js.map +1 -0
  500. package/dist/server/token-field.js +457 -0
  501. package/dist/server/token-field.js.map +1 -0
  502. package/dist/server/toolbar.js +67 -0
  503. package/dist/server/toolbar.js.map +1 -0
  504. package/dist/server/tooltip.js +331 -0
  505. package/dist/server/tooltip.js.map +1 -0
  506. package/dist/server/tree-drop-target-delegate.js +178 -0
  507. package/dist/server/tree-drop-target-delegate.js.map +1 -0
  508. package/dist/server/tree.js +1096 -0
  509. package/dist/server/tree.js.map +1 -0
  510. package/dist/server/utils.js +184 -0
  511. package/dist/server/utils.js.map +1 -0
  512. package/dist/server/virtualizer.js +254 -0
  513. package/dist/server/virtualizer.js.map +1 -0
  514. package/package.json +437 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet.js","names":["<DialogTrigger {...props}>\n <SheetTriggerContent>{props.children}</SheetTriggerContent>\n </DialogTrigger>","<SheetTriggerContent>{props.children}</SheetTriggerContent>","<ButtonContext value={mergeProps(button ?? {}, { isPressed: false })}>\n <PressResponder isPressed={false}>{props.children}</PressResponder>\n </ButtonContext>","<PressResponder isPressed={false}>{props.children}</PressResponder>","isPressed={false}","<ModalOverlay\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n props,\n \"children\",\n \"class\",\n \"style\",\n \"render\",\n \"position\",\n \"swipeDirection\",\n \"snapPoints\",\n \"preventDismissal\"\n )\n // oxlint-enable solid/reactivity\n }\n isOpen={state.isOpen}\n defaultOpen={undefined}\n onOpenChange={state.setOpen}\n isDismissable={props.preventDismissal !== true}\n isKeyboardDismissDisabled={props.preventDismissal}\n UNSTABLE_overrideFocus\n class={(modal) => {\n const value = props.class;\n\n return (\n (typeof value === \"function\"\n ? value(\n mergeProps(fullValues(modal), {\n defaultClass: \"solid2-aria-SheetOverlay\",\n })\n )\n : value) ?? \"solid2-aria-SheetOverlay\"\n );\n }}\n style={(modal) => {\n const style =\n typeof props.style === \"function\"\n ? props.style(mergeProps(fullValues(modal), { defaultStyle: {} }))\n : props.style;\n\n return {\n \"--sheet-scroll-padding-x\":\n \"calc(100vw - var(--visual-viewport-width))\",\n \"--sheet-scroll-padding-y\":\n \"calc(100dvh - var(--visual-viewport-height))\",\n height: \"max(var(--page-height), 100dvh)\",\n left: 0,\n overflow: \"clip\",\n position: \"absolute\",\n top: 0,\n width: \"max(var(--page-width), 100vw)\",\n ...objectStyle(style),\n };\n }}\n {...sheetData(values)}\n render={\n props.render\n ? (domProps, modal) =>\n props.render?.(\n mergeProps(domProps, sheetData(fullValues(modal))),\n fullValues(modal)\n )\n : undefined\n }\n >\n <SheetOverlayContent context={context} />\n </ModalOverlay>","defaultOpen={undefined}","class={(modal) => {\n const value = props.class;\n\n return (\n (typeof value === \"function\"\n ? value(\n mergeProps(fullValues(modal), {\n defaultClass: \"solid2-aria-SheetOverlay\",\n })\n )\n : value) ?? \"solid2-aria-SheetOverlay\"\n );\n }}","style={(modal) => {\n const style =\n typeof props.style === \"function\"\n ? props.style(mergeProps(fullValues(modal), { defaultStyle: {} }))\n : props.style;\n\n return {\n \"--sheet-scroll-padding-x\":\n \"calc(100vw - var(--visual-viewport-width))\",\n \"--sheet-scroll-padding-y\":\n \"calc(100dvh - var(--visual-viewport-height))\",\n height: \"max(var(--page-height), 100dvh)\",\n left: 0,\n overflow: \"clip\",\n position: \"absolute\",\n top: 0,\n width: \"max(var(--page-width), 100vw)\",\n ...objectStyle(style),\n };\n }}","<SheetOverlayContent context={context} />","<SheetContext value={context}>\n <SheetOverlayChildren values={context.values}>\n {props.context.props.children}\n </SheetOverlayChildren>\n </SheetContext>","value={context}","<SheetOverlayChildren values={context.values}>\n {props.context.props.children}\n </SheetOverlayChildren>","{content()}","ref={(element) => {\n scroller = element;\n }}","<SnapPoint\n point={0}\n align={clamped() && config().after ? \"none\" : \"start\"}\n axis={config().axis}\n />","point={0}","<div\n data-sheet-scroll\n ref={(element) => {\n scroller = element;\n }}\n onScroll={() => {\n if (!scroller) {\n return;\n }\n\n const position =\n config().axis === \"y\" ? scroller.scrollTop : scroller.scrollLeft;\n\n if (context.props.preventDismissal === true && initialized) {\n setPosition(position);\n } else {\n setScroll(position);\n }\n }}\n onScrollEnd={() => {\n if (!gesture) {\n finish();\n }\n }}\n style={scrollerStyle()}\n >\n <SnapPoint\n point={0}\n align={clamped() && config().after ? \"none\" : \"start\"}\n axis={config().axis}\n />\n {config().before && config().after && (\n <SnapPoint point={stageStart()} align=\"start\" axis={config().axis} />\n )}\n <div\n data-sheet-stage\n style={{\n \"align-items\":\n config().axis === \"y\"\n ? alignment[context.values.position][0]\n : alignment[context.values.position][1],\n display: \"flex\",\n \"flex-direction\": config().axis === \"y\" ? \"column\" : \"row\",\n height: \"100dvh\",\n \"justify-content\":\n config().axis === \"y\"\n ? alignment[context.values.position][1]\n : alignment[context.values.position][0],\n left: config().axis === \"x\" ? `${stageStart()}px` : 0,\n position: \"absolute\",\n top: config().axis === \"y\" ? `${stageStart()}px` : 0,\n width: \"100dvw\",\n }}\n >\n <dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => modalContext.modalProps ?? {}),\n omit(render, \"children\"),\n sheetData(context.values)\n )}\n ref={[\n (element: HTMLDivElement) => {\n modalContext.setModalRef(element);\n },\n (element: HTMLDivElement) => {\n setRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n style={sheetStyle()}\n data-swiping={isDragging() || undefined}\n data-descendants-swiping={\n context.descendants.some((entry) => entry.isSwiping) || undefined\n }\n >\n {modalContext.isDismissable === true && (\n <DismissButton onDismiss={context.values.state.close} />\n )}\n {context.props.snapPoints && (\n <div data-sheet-detents style={detentStyle()}>\n <For each={context.props.snapPoints}>\n {(point, index) => (\n <DetentPoint\n point={point}\n axis={config().axis}\n after={config().after}\n isInitial={index() === 0}\n />\n )}\n </For>\n </div>\n )}\n <SheetOverlayChildren values={context.values}>\n {props.children}\n </SheetOverlayChildren>\n <DismissButton onDismiss={context.values.state.close} />\n </dom.div>\n </div>\n <SnapPoint\n point={endMarker()}\n align={clamped() && config().before ? \"none\" : \"end\"}\n axis={config().axis}\n />\n </div>","{config().before && config().after && (\n <SnapPoint point={stageStart()} align=\"start\" axis={config().axis} />\n )}","<SnapPoint point={stageStart()} align=\"start\" axis={config().axis} />","align=\"start\"","<dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => modalContext.modalProps ?? {}),\n omit(render, \"children\"),\n sheetData(context.values)\n )}\n ref={[\n (element: HTMLDivElement) => {\n modalContext.setModalRef(element);\n },\n (element: HTMLDivElement) => {\n setRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n style={sheetStyle()}\n data-swiping={isDragging() || undefined}\n data-descendants-swiping={\n context.descendants.some((entry) => entry.isSwiping) || undefined\n }\n >\n {modalContext.isDismissable === true && (\n <DismissButton onDismiss={context.values.state.close} />\n )}\n {context.props.snapPoints && (\n <div data-sheet-detents style={detentStyle()}>\n <For each={context.props.snapPoints}>\n {(point, index) => (\n <DetentPoint\n point={point}\n axis={config().axis}\n after={config().after}\n isInitial={index() === 0}\n />\n )}\n </For>\n </div>\n )}\n <SheetOverlayChildren values={context.values}>\n {props.children}\n </SheetOverlayChildren>\n <DismissButton onDismiss={context.values.state.close} />\n </dom.div>","dom.div","ref={[\n (element: HTMLDivElement) => {\n modalContext.setModalRef(element);\n },\n (element: HTMLDivElement) => {\n setRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}","{modalContext.isDismissable === true && (\n <DismissButton onDismiss={context.values.state.close} />\n )}","<DismissButton onDismiss={context.values.state.close} />","{context.props.snapPoints && (\n <div data-sheet-detents style={detentStyle()}>\n <For each={context.props.snapPoints}>\n {(point, index) => (\n <DetentPoint\n point={point}\n axis={config().axis}\n after={config().after}\n isInitial={index() === 0}\n />\n )}\n </For>\n </div>\n )}","<For each={context.props.snapPoints}>\n {(point, index) => (\n <DetentPoint\n point={point}\n axis={config().axis}\n after={config().after}\n isInitial={index() === 0}\n />\n )}\n </For>","<DetentPoint\n point={point}\n axis={config().axis}\n after={config().after}\n isInitial={index() === 0}\n />","<SheetOverlayChildren values={context.values}>\n {props.children}\n </SheetOverlayChildren>","<SnapPoint\n point={endMarker()}\n align={clamped() && config().before ? \"none\" : \"end\"}\n axis={config().axis}\n />","\"align-items\":\n config().axis === \"y\"\n ? alignment[context.values.position][0]\n : alignment[context.values.position][1]","\"flex-direction\": config().axis === \"y\" ? \"column\" : \"row\"","\"justify-content\":\n config().axis === \"y\"\n ? alignment[context.values.position][1]\n : alignment[context.values.position][0]","left: config().axis === \"x\" ? `${stageStart()}px` : 0","top: config().axis === \"y\" ? `${stageStart()}px` : 0","left: props.axis === \"x\" ? toLength(props.point) : 0","\"scroll-snap-align\": props.align","top: props.axis === \"y\" ? toLength(props.point) : 0","width: props.axis === \"x\" ? \"100dvw\" : \"1px\"","<div\n data-sheet-snap\n style={{\n height: props.axis === \"y\" ? \"100dvh\" : \"1px\",\n left: props.axis === \"x\" ? toLength(props.point) : 0,\n position: \"absolute\",\n \"scroll-snap-align\": props.align,\n top: props.axis === \"y\" ? toLength(props.point) : 0,\n width: props.axis === \"x\" ? \"100dvw\" : \"1px\",\n }}\n />","style={style()}","<div\n data-sheet-detent\n data-sheet-initial={props.isInitial || undefined}\n style={style()}\n />","<dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n render,\n sheetData(context.values),\n {\n onClick() {\n if (\n context.props.preventDismissal !== true &&\n !context.values.hasDescendants\n ) {\n context.values.state.close();\n }\n },\n get ref() {\n return props.ref;\n },\n }\n )}\n />","<Dialog\n {...props}\n isEntering={context.values.isEntering}\n data-sheet-content\n class={props.class ?? \"solid2-aria-SheetContent\"}\n style={(values) => {\n const own =\n typeof props.style === \"function\" ? props.style(values) : props.style;\n\n return {\n ...objectStyle(own),\n height: \"100%\",\n \"view-timeline-axis\": config().axis,\n \"view-timeline-inset\":\n config().before && !config().after\n ? `${viewport()} 0`\n : `0 ${viewport()}`,\n \"view-timeline-name\": `--sheet-timeline-${context.values.stackIndex}`,\n width: \"100%\",\n };\n }}\n />","style={(values) => {\n const own =\n typeof props.style === \"function\" ? props.style(values) : props.style;\n\n return {\n ...objectStyle(own),\n height: \"100%\",\n \"view-timeline-axis\": config().axis,\n \"view-timeline-inset\":\n config().before && !config().after\n ? `${viewport()} 0`\n : `0 ${viewport()}`,\n \"view-timeline-name\": `--sheet-timeline-${context.values.stackIndex}`,\n width: \"100%\",\n };\n }}","_$createComponent","_$mergeProps","mergeProps","_$memo","ref","_$getNextElement","_$getNextMarker","_$scope","_$readShallow","_$setStyleProperty","style","_$setAttribute"],"sources":["../../src/sheet.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/Sheet.tsx.\n * 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.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport { createLocale } from \"@solid2-aria/core/i18n/i18n-provider\";\nimport { PressResponder } from \"@solid2-aria/core/interactions/press-responder\";\nimport { DismissButton } from \"@solid2-aria/core/overlays/dismiss-button\";\nimport type { CSSProperties } from \"@solid2-aria/core/types\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { createOverlayTriggerState } from \"@solid2-aria/stately/overlays/create-overlay-trigger-state\";\nimport type { GlobalDOMAttributes } from \"@solid2-aria/types-shared-web\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n For,\n merge,\n untrack,\n createSignal,\n createContext,\n createMemo,\n createEffect,\n createUniqueId,\n onSettled,\n useContext,\n omit,\n} from \"solid-js\";\n\nimport { ButtonContext } from \"./button\";\nimport { Dialog, DialogTrigger, OverlayTriggerStateContext } from \"./dialog\";\nimport type { DialogProps, DialogTriggerProps } from \"./dialog\";\nimport { ModalOverlay, InternalModalContext } from \"./modal\";\nimport type { ModalRenderProps, ModalOverlayProps } from \"./modal\";\nimport {\n assignRef,\n dom,\n createRenderProps,\n createSlottedContext,\n} from \"./utils\";\nimport type { Ref, RenderProps } from \"./utils\";\n\ntype SheetPosition = \"bottom\" | \"top\" | \"left\" | \"right\" | \"center\";\n\ntype SheetSwipeDirection =\n | Exclude<SheetPosition, \"center\">\n | \"vertical\"\n | \"horizontal\";\n\ntype Axis = \"x\" | \"y\";\n\nexport interface SheetRenderProps extends ModalRenderProps {\n position: SheetPosition;\n swipeDirection: SheetSwipeDirection;\n stackIndex: number;\n hasDescendants: boolean;\n isExpanded: boolean;\n}\n\nexport interface SheetOverlayProps\n extends\n Omit<\n ModalOverlayProps,\n | \"class\"\n | \"style\"\n | \"children\"\n | \"render\"\n | \"onEnter\"\n | \"onExit\"\n | \"isEntering\"\n | \"isExiting\"\n | \"isDismissable\"\n | \"isKeyboardDismissDisabled\"\n >,\n RenderProps<SheetRenderProps> {\n position?: SheetPosition | \"start\" | \"end\";\n swipeDirection?: SheetSwipeDirection | \"start\" | \"end\";\n snapPoints?: (number | string)[];\n preventDismissal?: boolean;\n}\n\nexport type SheetTriggerProps = DialogTriggerProps;\n\nexport interface SheetProps\n extends\n Omit<\n ModalOverlayProps,\n | \"class\"\n | \"style\"\n | \"children\"\n | \"render\"\n | \"onEnter\"\n | \"onExit\"\n | \"isEntering\"\n | \"isExiting\"\n | \"isDismissable\"\n | \"isOpen\"\n | \"defaultOpen\"\n | \"onOpenChange\"\n | \"isKeyboardDismissDisabled\"\n | \"shouldCloseOnInteractOutside\"\n >,\n RenderProps<SheetRenderProps> {\n swipeAnimation?: string;\n swipeAnimationRange?: { start?: number; end?: number };\n stackAnimation?: string;\n overscrollPadding?: boolean;\n}\n\nexport interface SheetBackdropProps\n extends RenderProps<SheetRenderProps>, GlobalDOMAttributes<HTMLDivElement> {\n ref?: Ref<HTMLDivElement>;\n swipeAnimation?: string;\n swipeAnimationRange?: { start?: number; end?: number };\n}\n\nexport interface SheetContentProps extends Omit<\n DialogProps,\n \"class\" | \"isEntering\"\n> {\n class?: JSX.ClassValue;\n}\n\ninterface StackEntry {\n id: string;\n range: \"cover\" | \"entry\" | \"exit\";\n direction: \"normal\" | \"reverse\" | \"alternate\";\n iterations: number;\n height: number;\n swipeProgress: number;\n isSwiping: boolean;\n}\n\ninterface SheetRegistry {\n entries: StackEntry[];\n listeners: Set<() => void>;\n previousScope: string;\n registrations: Map<string, number>;\n}\n\nconst registries = new WeakMap<Document, SheetRegistry>();\n\ninterface SheetContextValue {\n props: SheetOverlayProps;\n values: SheetRenderProps;\n descendants: StackEntry[];\n entry: StackEntry | undefined;\n setExpanded: (value: boolean) => void;\n register: (\n element: HTMLElement,\n visual: Pick<StackEntry, \"height\" | \"swipeProgress\" | \"isSwiping\">\n ) => () => void;\n}\n\nconst SheetContext = createContext<SheetContextValue | null>(null);\n\nfunction swipeConfig(direction: SheetSwipeDirection) {\n const axis: Axis = [\"top\", \"bottom\", \"vertical\"].includes(direction)\n ? \"y\"\n : \"x\";\n\n const before = [\"top\", \"left\", \"vertical\", \"horizontal\"].includes(direction);\n\n const after = [\"bottom\", \"right\", \"vertical\", \"horizontal\"].includes(\n direction\n );\n\n let viewDirection: StackEntry[\"direction\"] = \"normal\";\n let viewRange: StackEntry[\"range\"] = \"entry\";\n\n if (before && after) {\n viewDirection = \"alternate\";\n viewRange = \"cover\";\n } else if (before) {\n viewDirection = \"reverse\";\n viewRange = \"exit\";\n }\n\n return {\n after,\n axis,\n before,\n containerOffset: before && !after ? -100 : 0,\n enteredScroll: before && !after ? 0 : 100,\n maxScroll: (Number(before) + Number(after)) * 100,\n viewDirection,\n viewIterations: before && after ? 2 : 1,\n viewRange,\n };\n}\n\nfunction resolveDirection<T extends string>(\n value: T | \"start\" | \"end\",\n direction: \"ltr\" | \"rtl\"\n): T | \"left\" | \"right\" {\n if (value === \"start\") {\n return direction === \"rtl\" ? \"right\" : \"left\";\n }\n\n if (value === \"end\") {\n return direction === \"rtl\" ? \"left\" : \"right\";\n }\n\n return value;\n}\n\nfunction registerSheet(\n doc: Document,\n entry: StackEntry,\n notify: (entries: StackEntry[]) => void\n) {\n let registry = registries.get(doc);\n\n if (!registry) {\n registry = {\n entries: [],\n listeners: new Set(),\n previousScope:\n doc.documentElement.style.getPropertyValue(\"timeline-scope\"),\n registrations: new Map(),\n };\n registries.set(doc, registry);\n }\n\n const current = registry;\n\n const update = () => {\n notify(current.entries);\n };\n\n current.listeners.add(update);\n const count = current.registrations.get(entry.id) ?? 0;\n current.registrations.set(entry.id, count + 1);\n\n if (!count) {\n current.entries = [...current.entries, entry];\n }\n\n const emit = () => {\n const names = current.entries.map((_, i) => `--sheet-timeline-${i}`);\n doc.documentElement.style.setProperty(\n \"timeline-scope\",\n [current.previousScope, ...names].filter(Boolean).join(\", \")\n );\n\n for (const listener of current.listeners) {\n listener();\n }\n };\n\n emit();\n\n return () => {\n current.listeners.delete(update);\n const remaining = (current.registrations.get(entry.id) ?? 1) - 1;\n\n if (remaining) {\n current.registrations.set(entry.id, remaining);\n } else {\n current.registrations.delete(entry.id);\n current.entries = current.entries.filter(\n (value) => value.id !== entry.id\n );\n }\n\n emit();\n\n if (!current.entries.length) {\n if (current.previousScope) {\n doc.documentElement.style.setProperty(\n \"timeline-scope\",\n current.previousScope\n );\n } else {\n doc.documentElement.style.removeProperty(\"timeline-scope\");\n }\n\n registries.delete(doc);\n }\n };\n}\n\nexport function SheetTrigger(props: SheetTriggerProps): JSX.Element {\n return (\n <DialogTrigger {...props}>\n <SheetTriggerContent>{props.children}</SheetTriggerContent>\n </DialogTrigger>\n );\n}\n\nfunction SheetTriggerContent(props: { children?: JSX.Element }) {\n const button = createSlottedContext(ButtonContext);\n\n return (\n <ButtonContext value={mergeProps(button ?? {}, { isPressed: false })}>\n <PressResponder isPressed={false}>{props.children}</PressResponder>\n </ButtonContext>\n );\n}\n\nexport function SheetOverlay(props: SheetOverlayProps): JSX.Element {\n const locale = createLocale();\n const trigger = useContext(OverlayTriggerStateContext);\n const local = createOverlayTriggerState(props);\n\n const selected = () =>\n props.isOpen !== undefined || props.defaultOpen !== undefined || !trigger\n ? local\n : trigger;\n\n const state = {\n close: () => {\n selected().close();\n },\n get isOpen() {\n return selected().isOpen;\n },\n open: () => {\n selected().open();\n },\n get point() {\n return selected().point;\n },\n setOpen: (value: boolean) => {\n selected().setOpen(value);\n },\n setPoint: (point: { x: number; y: number }) => {\n selected().setPoint(point);\n },\n toggle: () => {\n selected().toggle();\n },\n };\n\n const [expanded, setExpanded] = createSignal(false, { ownedWrite: true });\n\n const [stack, setStack] = createSignal<StackEntry[]>([], {\n ownedWrite: true,\n });\n\n const id = createUniqueId();\n\n const position = () =>\n resolveDirection(props.position ?? \"bottom\", locale.direction);\n\n const swipe = (): SheetSwipeDirection => {\n if (props.swipeDirection !== undefined) {\n return resolveDirection(props.swipeDirection, locale.direction);\n }\n\n const resolved = position();\n\n return resolved === \"center\" ? \"vertical\" : resolved;\n };\n\n const index = () =>\n Math.max(\n 0,\n stack().findIndex((entry) => entry.id === id)\n );\n\n const values: SheetRenderProps = {\n get hasDescendants() {\n return stack().length > index() + 1;\n },\n isEntering: false,\n isExiting: false,\n get isExpanded() {\n return expanded();\n },\n get position() {\n return position();\n },\n get stackIndex() {\n return index();\n },\n state,\n get swipeDirection() {\n return swipe();\n },\n };\n\n const context: SheetContextValue = {\n get descendants() {\n return stack().slice(index() + 1);\n },\n get entry() {\n return stack()[index()];\n },\n props,\n register(element, visual) {\n const config = swipeConfig(swipe());\n\n return registerSheet(\n element.ownerDocument,\n {\n direction: config.viewDirection,\n get height() {\n return visual.height;\n },\n id,\n get isSwiping() {\n return visual.isSwiping;\n },\n iterations: config.viewIterations,\n range: config.viewRange,\n get swipeProgress() {\n return visual.swipeProgress;\n },\n },\n (entries: StackEntry[]) => {\n setStack(entries);\n }\n );\n },\n setExpanded(value) {\n setExpanded(value);\n },\n values,\n };\n\n const fullValues = (modal: ModalRenderProps) => mergeProps(values, modal);\n\n return (\n <ModalOverlay\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n props,\n \"children\",\n \"class\",\n \"style\",\n \"render\",\n \"position\",\n \"swipeDirection\",\n \"snapPoints\",\n \"preventDismissal\"\n )\n // oxlint-enable solid/reactivity\n }\n isOpen={state.isOpen}\n defaultOpen={undefined}\n onOpenChange={state.setOpen}\n isDismissable={props.preventDismissal !== true}\n isKeyboardDismissDisabled={props.preventDismissal}\n UNSTABLE_overrideFocus\n class={(modal) => {\n const value = props.class;\n\n return (\n (typeof value === \"function\"\n ? value(\n mergeProps(fullValues(modal), {\n defaultClass: \"solid2-aria-SheetOverlay\",\n })\n )\n : value) ?? \"solid2-aria-SheetOverlay\"\n );\n }}\n style={(modal) => {\n const style =\n typeof props.style === \"function\"\n ? props.style(mergeProps(fullValues(modal), { defaultStyle: {} }))\n : props.style;\n\n return {\n \"--sheet-scroll-padding-x\":\n \"calc(100vw - var(--visual-viewport-width))\",\n \"--sheet-scroll-padding-y\":\n \"calc(100dvh - var(--visual-viewport-height))\",\n height: \"max(var(--page-height), 100dvh)\",\n left: 0,\n overflow: \"clip\",\n position: \"absolute\",\n top: 0,\n width: \"max(var(--page-width), 100vw)\",\n ...objectStyle(style),\n };\n }}\n {...sheetData(values)}\n render={\n props.render\n ? (domProps, modal) =>\n props.render?.(\n mergeProps(domProps, sheetData(fullValues(modal))),\n fullValues(modal)\n )\n : undefined\n }\n >\n <SheetOverlayContent context={context} />\n </ModalOverlay>\n );\n}\n\nfunction SheetOverlayContent(props: { context: SheetContextValue }) {\n const modalContext = useContext(InternalModalContext);\n\n if (!modalContext) {\n throw new Error(\"SheetOverlay requires ModalOverlay\");\n }\n\n const modal = modalContext.values;\n\n const values = mergeProps(\n merge(() => props.context.values),\n modal\n );\n\n const context = mergeProps(\n merge(() => props.context),\n { values }\n );\n\n return (\n <SheetContext value={context}>\n <SheetOverlayChildren values={context.values}>\n {props.context.props.children}\n </SheetOverlayChildren>\n </SheetContext>\n );\n}\n\nfunction SheetOverlayChildren(props: {\n values: SheetRenderProps;\n children?: RenderProps<SheetRenderProps>[\"children\"];\n}) {\n const content = createMemo(() => {\n const supplied = props.children;\n\n return typeof supplied === \"function\" && supplied.length > 0\n ? supplied(\n mergeProps(\n merge(() => props.values ?? {}),\n { defaultChildren: undefined }\n )\n )\n : supplied;\n });\n\n return <>{content()}</>;\n}\n\nfunction sheetData(values: SheetRenderProps) {\n return {\n get \"data-entering\"() {\n return values.isEntering || undefined;\n },\n get \"data-exiting\"() {\n return values.isExiting || undefined;\n },\n get \"data-expanded\"() {\n return values.isExpanded || undefined;\n },\n get \"data-has-descendants\"() {\n return values.hasDescendants || undefined;\n },\n get \"data-position\"() {\n return values.position;\n },\n get \"data-stack-index\"() {\n return values.stackIndex;\n },\n get \"data-swipe-direction\"() {\n return values.swipeDirection;\n },\n };\n}\n\nfunction viewTimelineSupported() {\n return (\n typeof CSS !== \"undefined\" &&\n typeof CSS.supports === \"function\" &&\n CSS.supports(\"animation-timeline: view()\")\n );\n}\n\nfunction toLength(point: number | string) {\n return typeof point === \"number\" ? `${point}px` : point;\n}\n\nfunction swipeAnimation(\n props: Pick<SheetProps, \"swipeAnimation\" | \"swipeAnimationRange\">,\n context: SheetContextValue\n): CSSProperties {\n if (props.swipeAnimation === undefined || props.swipeAnimation.length === 0) {\n return {};\n }\n\n const config = swipeConfig(context.values.swipeDirection);\n\n if (viewTimelineSupported()) {\n let start =\n props.swipeAnimationRange?.start === undefined\n ? \"0%\"\n : toLength(\n context.props.snapPoints?.[props.swipeAnimationRange.start] ?? \"0%\"\n );\n\n let end =\n props.swipeAnimationRange?.end === undefined\n ? \"100%\"\n : toLength(\n context.props.snapPoints?.[props.swipeAnimationRange.end] ?? \"100%\"\n );\n\n if (\n context.values.swipeDirection === \"top\" ||\n context.values.swipeDirection === \"left\"\n ) {\n const previous = start;\n start = `calc(100% - ${end})`;\n end = `calc(100% - ${previous})`;\n }\n\n return {\n \"animation-composition\": \"replace\",\n \"animation-direction\": config.viewDirection,\n \"animation-fill-mode\": \"both\",\n \"animation-iteration-count\": config.viewIterations,\n \"animation-name\": props.swipeAnimation,\n \"animation-range\": `${config.viewRange} ${start} ${config.viewRange} ${end}`,\n \"animation-timeline\": `--sheet-timeline-${context.values.stackIndex}`,\n \"animation-timing-function\": \"linear\",\n };\n }\n\n return context.values.isEntering || context.values.isExiting\n ? {\n \"animation-composition\": \"replace\",\n \"animation-direction\": context.values.isExiting ? \"reverse\" : \"normal\",\n \"animation-duration\": \"300ms\",\n \"animation-fill-mode\": \"both\",\n \"animation-iteration-count\": 1,\n \"animation-name\": props.swipeAnimation,\n \"animation-timing-function\": \"linear\",\n }\n : {};\n}\n\nfunction objectStyle(\n value: CSSProperties | string | false | undefined\n): CSSProperties {\n return typeof value === \"object\" ? value : {};\n}\n\nfunction parseCSSNumber(value: string): number {\n // oxlint-disable-next-line unicorn/prefer-number-coercion -- CSS lengths include units, so numeric coercion would return NaN.\n return Number.parseFloat(value);\n}\n\nfunction resolveLength(\n point: number | string,\n size: number,\n element: HTMLElement\n): number {\n if (typeof point === \"number\") {\n return point;\n }\n\n const numeric = parseCSSNumber(point);\n\n if (!Number.isFinite(numeric)) {\n return size;\n }\n\n if (point.endsWith(\"%\")) {\n return (size * numeric) / 100;\n }\n\n if (/(?:d|s|l)?vh$/u.test(point)) {\n return (window.innerHeight * numeric) / 100;\n }\n\n if (/(?:d|s|l)?vw$/u.test(point)) {\n return (window.innerWidth * numeric) / 100;\n }\n\n if (point.endsWith(\"rem\")) {\n return (\n numeric *\n (parseCSSNumber(getComputedStyle(document.documentElement).fontSize) ||\n 16)\n );\n }\n\n if (point.endsWith(\"em\")) {\n return numeric * (parseCSSNumber(getComputedStyle(element).fontSize) || 16);\n }\n\n return numeric;\n}\n\nfunction canScroll(\n target: EventTarget | null,\n sheet: HTMLElement,\n axis: Axis,\n delta: number\n): boolean {\n let element = target instanceof HTMLElement ? target : null;\n\n while (element && element !== sheet) {\n const style = getComputedStyle(element);\n const overflow = axis === \"y\" ? style.overflowY : style.overflowX;\n\n const size =\n axis === \"y\"\n ? element.scrollHeight - element.clientHeight\n : element.scrollWidth - element.clientWidth;\n\n const position = axis === \"y\" ? element.scrollTop : element.scrollLeft;\n\n if (\n size > 0 &&\n /(?:auto|scroll)/u.test(overflow) &&\n ((delta > 0 && position > 0) || (delta < 0 && position < size))\n ) {\n return true;\n }\n\n element = element.parentElement;\n }\n\n return false;\n}\n\nexport function Sheet(props: SheetProps): JSX.Element {\n const context = useContext(SheetContext);\n\n if (!context) {\n throw new Error(\"Sheet requires SheetOverlay\");\n }\n\n const [ref, setRef] = createSignal<HTMLDivElement | null>(null, {\n ownedWrite: true,\n });\n\n const locale = createLocale();\n const modalContext = useContext(InternalModalContext);\n\n if (!modalContext) {\n throw new Error(\"Sheet requires ModalOverlay\");\n }\n\n let scroller: HTMLDivElement | undefined;\n\n const [pageOffset, setPageOffset] = createSignal(\n {\n x: typeof window === \"undefined\" ? 0 : window.scrollX,\n y: typeof window === \"undefined\" ? 0 : window.scrollY,\n },\n { ownedWrite: true }\n );\n\n const [geometry, setGeometry] = createSignal<{\n points: number[];\n size: number;\n viewport: number;\n }>({ points: [], size: 0, viewport: 0 }, { ownedWrite: true });\n\n const [scroll, setScroll] = createSignal(0, { ownedWrite: true });\n const [isDragging, setDragging] = createSignal(false, { ownedWrite: true });\n const config = () => swipeConfig(context.values.swipeDirection);\n\n const points = () => {\n const { points: measured, size } = geometry();\n const element = ref();\n\n const configured = context.props.snapPoints;\n\n const configuredPoints =\n configured !== undefined && configured.length > 0 ? configured : [size];\n\n return element\n ? configuredPoints.map((point, index) =>\n Math.max(\n 0,\n Math.min(\n size,\n measured[index] ?? resolveLength(point, size, element)\n )\n )\n )\n : [size];\n };\n\n const smallest = () => Math.min(...points());\n\n const clamped = () =>\n context.props.preventDismissal === true &&\n !context.values.isEntering &&\n !context.values.isExiting;\n\n const travel = () => Math.max(1, geometry().size - smallest());\n\n const stageStart = () => {\n if (clamped() && config().after) {\n return config().before ? 1 : travel();\n }\n\n return geometry().viewport;\n };\n\n const entered = () => (config().before && !config().after ? 0 : stageStart());\n\n const visible = () =>\n Math.max(0, geometry().size - Math.abs(scroll() - entered()));\n\n const scrollForPoint = (point: number) =>\n entered() + (config().after ? -1 : 1) * (geometry().size - point);\n\n const setPosition = (value: number) => {\n if (!scroller) {\n return;\n }\n\n const conf = config();\n\n let lower = 0;\n let upper = geometry().viewport * (conf.maxScroll / 100);\n\n if (clamped()) {\n const dual = conf.before === conf.after;\n lower = dual ? entered() - 1 : 0;\n upper = dual ? entered() + 1 : travel();\n }\n\n const position = Math.max(lower, Math.min(upper, value));\n\n if (conf.axis === \"y\") {\n scroller.scrollTop = position;\n } else {\n scroller.scrollLeft = position;\n }\n\n setScroll(position);\n };\n\n let initialized = false;\n let lastInitial = \"\";\n let previousEntered = 0;\n\n const measure = () => {\n const element = ref();\n\n if (!element || !scroller) {\n return;\n }\n\n const conf = config();\n const rect = element.getBoundingClientRect();\n\n const total =\n conf.axis === \"y\"\n ? element.offsetHeight || rect.height\n : element.offsetWidth || rect.width;\n\n let padding = 0;\n\n if (\n props.overscrollPadding === true &&\n context.values.position === context.values.swipeDirection\n ) {\n padding = conf.axis === \"y\" ? window.innerHeight : window.innerWidth;\n }\n\n const size = Math.max(0, total - padding);\n\n const edges =\n conf.axis === \"y\"\n ? ([\"top\", \"bottom\"] as const)\n : ([\"left\", \"right\"] as const);\n\n const edge = conf.after ? edges[0] : edges[1];\n\n const markers = element.querySelectorAll<HTMLElement>(\n \"[data-sheet-detent]\"\n );\n\n const configured = context.props.snapPoints ?? [];\n\n const measured = Array.from(markers, (marker, index) => {\n const length = getComputedStyle(marker)[edge];\n const value = length.endsWith(\"px\") ? parseCSSNumber(length) : Number.NaN;\n\n return Number.isFinite(value)\n ? value\n : resolveLength(configured[index] ?? size, size, element);\n });\n\n setGeometry({\n points: measured,\n size,\n viewport: conf.axis === \"y\" ? window.innerHeight : window.innerWidth,\n });\n };\n\n const updatePageOffset = () => {\n setPageOffset({ x: window.scrollX, y: window.scrollY });\n };\n\n onSettled((): (() => void) | undefined => {\n untrack(measure);\n\n const element = untrack(ref);\n\n if (element?.isConnected !== true) {\n return undefined;\n }\n\n const unregister = context.register(element, {\n get height() {\n geometry();\n\n return element.offsetHeight;\n },\n get isSwiping() {\n return isDragging();\n },\n get swipeProgress() {\n const offsets = points()\n .map((point) => geometry().size - point)\n .toSorted((a, b) => a - b);\n\n const minimum = offsets[0] ?? 0;\n\n const range =\n offsets.length > 1 ? (offsets[1] ?? 0) - minimum : geometry().size;\n\n return Math.max(\n 0,\n Math.min(1, (geometry().size - visible() - minimum) / (range || 1))\n );\n },\n });\n\n const observer = new ResizeObserver(measure);\n\n observer.observe(element);\n window.addEventListener(\"resize\", measure);\n window.addEventListener(\"scroll\", updatePageOffset, { passive: true });\n\n return () => {\n unregister();\n observer.disconnect();\n window.removeEventListener(\"resize\", measure);\n window.removeEventListener(\"scroll\", updatePageOffset);\n };\n });\n createEffect(\n () => ({\n axis: config().axis,\n points: context.props.snapPoints?.join(\" \"),\n }),\n () => {\n untrack(measure);\n },\n { ssrSource: \"client\" }\n );\n createEffect(\n () => {\n const conf = config();\n const { size, viewport } = geometry();\n const start = entered();\n const isClamped = clamped();\n const dual = conf.before === conf.after;\n\n let upper = viewport * (conf.maxScroll / 100);\n\n if (isClamped) {\n upper = dual ? start + 1 : travel();\n }\n\n return {\n axis: conf.axis,\n direction: context.values.swipeDirection,\n entered: start,\n initial: scrollForPoint(points()[0] ?? size),\n lower: isClamped && dual ? start - 1 : 0,\n points: context.props.snapPoints?.join(\" \"),\n scroll: untrack(scroll),\n size,\n upper,\n viewport,\n };\n },\n (next) => {\n if (!next.size || !next.viewport || !scroller) {\n return;\n }\n\n const initialKey = `${next.direction}:${next.points ?? \"\"}`;\n\n const target =\n !initialized || initialKey !== lastInitial\n ? next.initial\n : next.scroll + next.entered - previousEntered;\n\n const position = Math.max(next.lower, Math.min(next.upper, target));\n\n if (next.axis === \"y\") {\n scroller.scrollTop = position;\n } else {\n scroller.scrollLeft = position;\n }\n\n setScroll(position);\n initialized = true;\n lastInitial = initialKey;\n previousEntered = next.entered;\n }\n );\n const setExpanded = untrack(() => context.setExpanded);\n createEffect(\n () => ({ size: geometry().size, visible: visible() }),\n (next) => {\n setExpanded(next.size > 0 && next.visible >= next.size - 1);\n }\n );\n\n const finish = () => {\n if (!initialized) {\n return;\n }\n\n const { size } = geometry();\n const amount = visible();\n const minimum = smallest();\n\n if (context.props.preventDismissal !== true && amount < minimum / 2) {\n context.values.state.close();\n\n return;\n }\n\n let nearest = minimum;\n\n for (const point of points()) {\n if (Math.abs(point - amount) < Math.abs(nearest - amount)) {\n nearest = point;\n }\n }\n\n let side = config().after ? -1 : 1;\n\n if (config().before && config().after && scroll() > entered()) {\n side = 1;\n }\n\n setPosition(entered() + side * (size - nearest));\n };\n\n let gesture:\n | {\n id: number;\n coordinate: number;\n scroll: number;\n target: EventTarget | null;\n dragged: boolean;\n }\n | undefined;\n\n const onDown = (event: PointerEvent) => {\n if (\n event.button !== 0 ||\n context.values.hasDescendants ||\n (event.pointerType === \"touch\" &&\n (!(event.target instanceof Element) ||\n !event.target.closest(\"[data-sheet-drag-handle]\"))) ||\n !initialized\n ) {\n return;\n }\n\n gesture = {\n coordinate: config().axis === \"y\" ? event.clientY : event.clientX,\n dragged: false,\n id: event.pointerId,\n scroll: scroll(),\n target: event.target,\n };\n };\n\n const onUp = (event: PointerEvent) => {\n if (gesture?.id !== event.pointerId) {\n return;\n }\n\n const { dragged } = gesture;\n gesture = undefined;\n\n if (dragged) {\n finish();\n }\n\n setDragging(false);\n };\n\n const onCancel = () => {\n if (gesture) {\n gesture = undefined;\n finish();\n setDragging(false);\n }\n };\n\n onSettled((): (() => void) | undefined => {\n const element = untrack(ref);\n\n if (element?.isConnected !== true) {\n return undefined;\n }\n\n modalContext.setModalRef(element);\n\n const onMove = (event: PointerEvent) => {\n if (!gesture || event.pointerId !== gesture.id) {\n return;\n }\n\n const coordinate = config().axis === \"y\" ? event.clientY : event.clientX;\n const delta = coordinate - gesture.coordinate;\n\n if (!gesture.dragged && Math.abs(delta) < 6) {\n return;\n }\n\n if (\n !gesture.dragged &&\n canScroll(gesture.target, element, config().axis, delta)\n ) {\n gesture = undefined;\n\n return;\n }\n\n gesture.dragged = true;\n setDragging(true);\n element.setPointerCapture?.(event.pointerId);\n event.preventDefault();\n setPosition(gesture.scroll - delta);\n };\n\n element.addEventListener(\"pointerdown\", onDown);\n const doc = element.ownerDocument;\n doc.addEventListener(\"pointermove\", onMove);\n doc.addEventListener(\"pointerup\", onUp);\n doc.addEventListener(\"pointercancel\", onCancel);\n\n return () => {\n element.removeEventListener(\"pointerdown\", onDown);\n doc.removeEventListener(\"pointermove\", onMove);\n doc.removeEventListener(\"pointerup\", onUp);\n doc.removeEventListener(\"pointercancel\", onCancel);\n };\n });\n\n const render = createRenderProps(\n mergeProps(props, {\n defaultClass: \"solid2-aria-Sheet\",\n get values() {\n return context.values;\n },\n })\n );\n\n const sheetStyle = (): CSSProperties => {\n const frontmost = context.descendants.at(-1);\n\n const own: CSSProperties = {\n \"--sheet-descendant-count\": context.descendants.length,\n \"--sheet-frontmost-height\": `${frontmost?.height ?? 0}px`,\n \"--sheet-swipe-progress\":\n frontmost?.swipeProgress ?? context.entry?.swipeProgress ?? 0,\n direction: locale.direction,\n position: \"relative\",\n ...swipeAnimation(props, context),\n };\n\n if (\n props.overscrollPadding === true &&\n context.values.position === context.values.swipeDirection\n ) {\n const vertical = config().axis === \"y\";\n const amount = vertical ? \"100vh\" : \"100vw\";\n const { position } = context.values;\n\n if (position === \"bottom\") {\n own[\"padding-bottom\"] = amount;\n own[\"margin-bottom\"] = `-${amount}`;\n } else if (position === \"top\") {\n own[\"padding-top\"] = amount;\n own[\"margin-top\"] = `-${amount}`;\n } else if (position === \"left\") {\n own[\"padding-left\"] = amount;\n own[\"margin-left\"] = `-${amount}`;\n } else if (position === \"right\") {\n own[\"padding-right\"] = amount;\n own[\"margin-right\"] = `-${amount}`;\n }\n }\n\n if (\n props.stackAnimation !== undefined &&\n props.stackAnimation.length > 0 &&\n viewTimelineSupported() &&\n context.descendants.length\n ) {\n const { descendants } = context;\n own[\"animation-name\"] = [\n own[\"animation-name\"],\n ...descendants.map(() => props.stackAnimation),\n ]\n .filter(Boolean)\n .join(\", \");\n own[\"animation-timeline\"] = [\n own[\"animation-timeline\"],\n ...descendants.map(\n (_, i) => `--sheet-timeline-${context.values.stackIndex + 1 + i}`\n ),\n ]\n .filter(Boolean)\n .join(\", \");\n own[\"animation-direction\"] = [\n own[\"animation-direction\"],\n ...descendants.map((entry) => entry.direction),\n ]\n .filter(Boolean)\n .join(\", \");\n own[\"animation-iteration-count\"] = [\n own[\"animation-iteration-count\"],\n ...descendants.map((entry) => entry.iterations),\n ]\n .filter(Boolean)\n .join(\", \");\n own[\"animation-range\"] = [\n own[\"animation-range\"],\n ...descendants.map((entry) => entry.range),\n ]\n .filter(Boolean)\n .join(\", \");\n own[\"animation-fill-mode\"] = [\n own[\"animation-fill-mode\"],\n ...descendants.map(() => \"both\"),\n ]\n .filter(Boolean)\n .join(\", \");\n own[\"animation-composition\"] = [\n own[\"animation-composition\"],\n ...descendants.map(() => \"accumulate\"),\n ]\n .filter(Boolean)\n .join(\", \");\n own[\"animation-timing-function\"] = [\n own[\"animation-timing-function\"],\n ...descendants.map(() => \"linear\"),\n ]\n .filter(Boolean)\n .join(\", \");\n }\n\n return Object.assign(own, objectStyle(render.style));\n };\n\n const alignment: Record<SheetPosition, [string, string]> = {\n bottom: [\"center\", \"flex-end\"],\n center: [\"center\", \"center\"],\n left: [\"flex-start\", \"center\"],\n right: [\"flex-end\", \"center\"],\n top: [\"center\", \"flex-start\"],\n };\n\n const viewport = () => (config().axis === \"y\" ? \"100dvh\" : \"100dvw\");\n\n const endMarker = () => {\n if (clamped() && config().before) {\n return config().after\n ? `calc(${stageStart()}px + ${viewport()} + 1px)`\n : `calc(${travel()}px + ${viewport()})`;\n }\n\n return `calc(${stageStart()}px + ${viewport()}${config().before && config().after ? ` + ${viewport()}` : \"\"})`;\n };\n\n const scrollerStyle = (): JSX.CSSProperties => ({\n direction: \"ltr\",\n height: config().axis === \"y\" ? \"200dvh\" : \"100dvh\",\n left:\n config().axis === \"x\"\n ? `calc(${pageOffset().x}px + ${config().containerOffset}dvw)`\n : `${pageOffset().x}px`,\n \"overflow-x\": config().axis === \"x\" ? \"auto\" : \"hidden\",\n \"overflow-y\": config().axis === \"y\" ? \"auto\" : \"hidden\",\n \"overscroll-behavior-x\": config().axis === \"x\" ? \"contain\" : \"none\",\n \"overscroll-behavior-y\": config().axis === \"y\" ? \"contain\" : \"none\",\n position: \"absolute\",\n \"scroll-snap-type\":\n context.values.isEntering || context.values.isExiting || isDragging()\n ? \"none\"\n : `${config().axis} mandatory`,\n \"scrollbar-width\": \"none\",\n top:\n config().axis === \"y\"\n ? `calc(${pageOffset().y}px + ${config().containerOffset}dvh)`\n : `${pageOffset().y}px`,\n width: config().axis === \"x\" ? \"200dvw\" : \"100dvw\",\n });\n\n const detentStyle = (): CSSProperties => {\n const style: CSSProperties = {\n inset: 0,\n \"pointer-events\": \"none\",\n position: \"absolute\",\n };\n\n if (\n props.overscrollPadding === true &&\n context.values.position === context.values.swipeDirection\n ) {\n const { position } = context.values;\n style[position] = config().axis === \"y\" ? \"100vh\" : \"100vw\";\n }\n\n return style;\n };\n\n return (\n <div\n data-sheet-scroll\n ref={(element) => {\n scroller = element;\n }}\n onScroll={() => {\n if (!scroller) {\n return;\n }\n\n const position =\n config().axis === \"y\" ? scroller.scrollTop : scroller.scrollLeft;\n\n if (context.props.preventDismissal === true && initialized) {\n setPosition(position);\n } else {\n setScroll(position);\n }\n }}\n onScrollEnd={() => {\n if (!gesture) {\n finish();\n }\n }}\n style={scrollerStyle()}\n >\n <SnapPoint\n point={0}\n align={clamped() && config().after ? \"none\" : \"start\"}\n axis={config().axis}\n />\n {config().before && config().after && (\n <SnapPoint point={stageStart()} align=\"start\" axis={config().axis} />\n )}\n <div\n data-sheet-stage\n style={{\n \"align-items\":\n config().axis === \"y\"\n ? alignment[context.values.position][0]\n : alignment[context.values.position][1],\n display: \"flex\",\n \"flex-direction\": config().axis === \"y\" ? \"column\" : \"row\",\n height: \"100dvh\",\n \"justify-content\":\n config().axis === \"y\"\n ? alignment[context.values.position][1]\n : alignment[context.values.position][0],\n left: config().axis === \"x\" ? `${stageStart()}px` : 0,\n position: \"absolute\",\n top: config().axis === \"y\" ? `${stageStart()}px` : 0,\n width: \"100dvw\",\n }}\n >\n <dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => modalContext.modalProps ?? {}),\n omit(render, \"children\"),\n sheetData(context.values)\n )}\n ref={[\n (element: HTMLDivElement) => {\n modalContext.setModalRef(element);\n },\n (element: HTMLDivElement) => {\n setRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n style={sheetStyle()}\n data-swiping={isDragging() || undefined}\n data-descendants-swiping={\n context.descendants.some((entry) => entry.isSwiping) || undefined\n }\n >\n {modalContext.isDismissable === true && (\n <DismissButton onDismiss={context.values.state.close} />\n )}\n {context.props.snapPoints && (\n <div data-sheet-detents style={detentStyle()}>\n <For each={context.props.snapPoints}>\n {(point, index) => (\n <DetentPoint\n point={point}\n axis={config().axis}\n after={config().after}\n isInitial={index() === 0}\n />\n )}\n </For>\n </div>\n )}\n <SheetOverlayChildren values={context.values}>\n {props.children}\n </SheetOverlayChildren>\n <DismissButton onDismiss={context.values.state.close} />\n </dom.div>\n </div>\n <SnapPoint\n point={endMarker()}\n align={clamped() && config().before ? \"none\" : \"end\"}\n axis={config().axis}\n />\n </div>\n );\n}\n\nfunction SnapPoint(props: {\n point: number | string;\n align: \"start\" | \"end\" | \"none\";\n axis: Axis;\n}) {\n return (\n <div\n data-sheet-snap\n style={{\n height: props.axis === \"y\" ? \"100dvh\" : \"1px\",\n left: props.axis === \"x\" ? toLength(props.point) : 0,\n position: \"absolute\",\n \"scroll-snap-align\": props.align,\n top: props.axis === \"y\" ? toLength(props.point) : 0,\n width: props.axis === \"x\" ? \"100dvw\" : \"1px\",\n }}\n />\n );\n}\n\nfunction DetentPoint(props: {\n point: number | string;\n axis: Axis;\n after: boolean;\n isInitial: boolean;\n}) {\n const style = (): CSSProperties => {\n const detent: CSSProperties = {\n height: \"1px\",\n \"pointer-events\": \"none\",\n position: \"absolute\",\n \"scroll-snap-align\": props.after ? \"start\" : \"end\",\n width: \"1px\",\n };\n\n if (props.axis === \"y\") {\n detent.left = 0;\n\n if (props.after) {\n detent.top = toLength(props.point);\n detent[\"scroll-margin-top\"] = \"100dvh\";\n } else {\n detent.bottom = toLength(props.point);\n detent[\"scroll-margin-bottom\"] = \"100dvh\";\n }\n } else {\n detent.top = 0;\n\n if (props.after) {\n detent.left = toLength(props.point);\n detent[\"scroll-margin-left\"] = \"100dvw\";\n } else {\n detent.right = toLength(props.point);\n detent[\"scroll-margin-right\"] = \"100dvw\";\n }\n }\n\n return detent;\n };\n\n return (\n <div\n data-sheet-detent\n data-sheet-initial={props.isInitial || undefined}\n style={style()}\n />\n );\n}\n\nexport function SheetBackdrop(props: SheetBackdropProps): JSX.Element {\n const context = useContext(SheetContext);\n\n if (!context) {\n throw new Error(\"SheetBackdrop requires SheetOverlay\");\n }\n\n const render = createRenderProps(\n mergeProps(props, {\n defaultClass: \"solid2-aria-SheetBackdrop\",\n get defaultStyle(): CSSProperties {\n return {\n \"--sheet-swipe-progress\": context.entry?.swipeProgress ?? 0,\n inset: 0,\n position: \"absolute\" as const,\n ...swipeAnimation(props, context),\n };\n },\n get values() {\n return context.values;\n },\n })\n );\n\n return (\n <dom.div\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n render,\n sheetData(context.values),\n {\n onClick() {\n if (\n context.props.preventDismissal !== true &&\n !context.values.hasDescendants\n ) {\n context.values.state.close();\n }\n },\n get ref() {\n return props.ref;\n },\n }\n )}\n />\n );\n}\n\nexport function SheetContent(props: SheetContentProps): JSX.Element {\n const context = useContext(SheetContext);\n\n if (!context) {\n throw new Error(\"SheetContent requires SheetOverlay\");\n }\n\n const config = () => swipeConfig(context.values.swipeDirection);\n const viewport = () => (config().axis === \"y\" ? \"100dvh\" : \"100dvw\");\n\n return (\n <Dialog\n {...props}\n isEntering={context.values.isEntering}\n data-sheet-content\n class={props.class ?? \"solid2-aria-SheetContent\"}\n style={(values) => {\n const own =\n typeof props.style === \"function\" ? props.style(values) : props.style;\n\n return {\n ...objectStyle(own),\n height: \"100%\",\n \"view-timeline-axis\": config().axis,\n \"view-timeline-inset\":\n config().before && !config().after\n ? `${viewport()} 0`\n : `0 ${viewport()}`,\n \"view-timeline-name\": `--sheet-timeline-${context.values.stackIndex}`,\n width: \"100%\",\n };\n }}\n />\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,77 @@
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/Slider.tsx.
14
+ * Modified for Solid Aria: composed Solid Aria and Stately primitives with Solid 2 contexts, reactive getters, and DOM refs; uses Solid class props.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { ContextValue, Ref, RenderProps, SlotProps } from "./utils.js";
18
+ import { JSX } from "@solidjs/web";
19
+ import { Accessor } from "solid-js";
20
+ import { AriaSliderProps } from "@solid2-aria/core/slider/create-slider";
21
+ import { AriaSliderThumbProps } from "@solid2-aria/core/slider/create-slider-thumb";
22
+ import { SliderState } from "@solid2-aria/stately/slider/create-slider-state";
23
+ import { HoverEvents, Orientation } from "@solid2-aria/types-shared";
24
+ import { GlobalDOMAttributes } from "@solid2-aria/types-shared-web";
25
+ export interface SliderRenderProps {
26
+ orientation: Orientation;
27
+ isDisabled: boolean;
28
+ state: SliderState;
29
+ }
30
+ export interface SliderProps<T = number | number[]> extends Omit<AriaSliderProps<T>, "label">, RenderProps<SliderRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
31
+ formatOptions?: Intl.NumberFormatOptions;
32
+ ref?: Ref<HTMLDivElement>;
33
+ }
34
+ export interface SliderTrackRenderProps extends SliderRenderProps {
35
+ isHovered: boolean;
36
+ }
37
+ export interface SliderTrackProps extends HoverEvents, RenderProps<SliderTrackRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
38
+ ref?: Ref<HTMLDivElement>;
39
+ }
40
+ export interface SliderOutputProps extends RenderProps<SliderRenderProps, "output">, GlobalDOMAttributes<HTMLOutputElement> {
41
+ ref?: Ref<HTMLOutputElement>;
42
+ }
43
+ export interface SliderThumbRenderProps {
44
+ state: SliderState;
45
+ isDragging: boolean;
46
+ isHovered: boolean;
47
+ isFocused: boolean;
48
+ isFocusVisible: boolean;
49
+ isDisabled: boolean;
50
+ }
51
+ export interface SliderThumbProps extends Omit<AriaSliderThumbProps, "label" | "validationState">, HoverEvents, RenderProps<SliderThumbRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
52
+ inputRef?: Ref<HTMLInputElement>;
53
+ ref?: Ref<HTMLDivElement>;
54
+ }
55
+ export interface SliderFillRenderProps extends SliderRenderProps {
56
+ isHovered: boolean;
57
+ }
58
+ export interface SliderFillProps extends HoverEvents, RenderProps<SliderFillRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
59
+ offset?: number;
60
+ ref?: Ref<HTMLDivElement>;
61
+ }
62
+ type TrackContext = Omit<SliderTrackProps, keyof JSX.HTMLAttributes<HTMLDivElement>> & Omit<JSX.HTMLAttributes<HTMLDivElement>, "ref" | "class" | "style" | "children"> & Pick<SliderTrackProps, "class" | "style" | "children"> & {
63
+ trackRef: Accessor<HTMLDivElement | null>;
64
+ };
65
+ type OutputContext = Omit<SliderOutputProps, keyof JSX.OutputHTMLAttributes<HTMLOutputElement>> & Omit<JSX.OutputHTMLAttributes<HTMLOutputElement>, "ref" | "class" | "style" | "children"> & Pick<SliderOutputProps, "class" | "style" | "children">;
66
+ export declare const SliderContext: import("solid-js").Context<ContextValue<SliderProps<number | number[]>, HTMLDivElement>>;
67
+ export declare const SliderStateContext: import("solid-js").Context<SliderState | null>;
68
+ export declare const SliderTrackContext: import("solid-js").Context<ContextValue<TrackContext, HTMLDivElement>>;
69
+ export declare const SliderFillContext: import("solid-js").Context<ContextValue<SliderFillProps, HTMLDivElement>>;
70
+ export declare const SliderOutputContext: import("solid-js").Context<ContextValue<OutputContext, HTMLOutputElement>>;
71
+ export declare function Slider<T extends number | number[]>(input: SliderProps<T>): JSX.Element;
72
+ export declare function SliderOutput(input: SliderOutputProps): JSX.Element;
73
+ export declare function SliderTrack(input: SliderTrackProps): JSX.Element;
74
+ export declare function SliderThumb(props: SliderThumbProps): JSX.Element;
75
+ export declare function SliderFill(input: SliderFillProps): JSX.Element;
76
+ export {};
77
+ //# sourceMappingURL=slider.d.ts.map
@@ -0,0 +1,318 @@
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/Slider.tsx.
14
+ * Modified for Solid Aria: composed Solid Aria and Stately primitives with Solid 2 contexts, reactive getters, and DOM refs; 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 { LabelContext } from "./label.js";
19
+ import { createComponent, getNextElement, memo, mergeProps, ref, runHydrationEvents, spread, template } from "@solidjs/web";
20
+ import { mergeProps as mergeProps$1 } from "@solid2-aria/core/utils/merge-props";
21
+ import { createContext, createMemo, createSignal, merge, omit, untrack, useContext } from "solid-js";
22
+ import { requireValue } from "@solid2-aria/core/utils/require-value";
23
+ import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
24
+ import { createFocusRing } from "@solid2-aria/core/focus/create-focus-ring";
25
+ import { createHover } from "@solid2-aria/core/interactions/create-hover";
26
+ import { VisuallyHidden } from "@solid2-aria/core/visually-hidden/visually-hidden";
27
+ import { createNumberFormatter } from "@solid2-aria/core/i18n/create-number-formatter";
28
+ import { createSlider } from "@solid2-aria/core/slider/create-slider";
29
+ import { createSliderThumb } from "@solid2-aria/core/slider/create-slider-thumb";
30
+ import { createSliderState } from "@solid2-aria/stately/slider/create-slider-state";
31
+ // src/slider.tsx
32
+ var _tmpl$ = /* @__PURE__ */ template(`<input>`);
33
+ const SliderContext = createContext(null);
34
+ const SliderStateContext = createContext(null);
35
+ const SliderTrackContext = createContext(null);
36
+ const SliderFillContext = createContext(null);
37
+ const SliderOutputContext = createContext(null);
38
+ function sliderValues(state) {
39
+ return {
40
+ get isDisabled() {
41
+ return state.isDisabled;
42
+ },
43
+ get orientation() {
44
+ return state.orientation;
45
+ },
46
+ state
47
+ };
48
+ }
49
+ function Slider(input) {
50
+ const [props, , setRef] = createContextProps(input, untrack(() => input.ref), SliderContext);
51
+ const [trackRef, setTrackRef] = createSignal(null, { ownedWrite: true });
52
+ const formatter = createNumberFormatter(merge(() => props.formatOptions ?? {}));
53
+ const options = mergeProps$1(props, { numberFormatter: formatter });
54
+ const state = createSliderState(options);
55
+ const [registerLabel, label] = createSlot(() => (props["aria-label"]?.length ?? 0) === 0 && (props["aria-labelledby"]?.length ?? 0) === 0);
56
+ const aria = createSlider(mergeProps$1(props, { get label() {
57
+ return label();
58
+ } }), state, trackRef);
59
+ const render = createRenderProps(mergeProps$1(props, {
60
+ defaultClass: "solid2-aria-Slider",
61
+ values: sliderValues(state)
62
+ }));
63
+ return createComponent(SliderStateContext, {
64
+ value: state,
65
+ get children() {
66
+ return createComponent(SliderTrackContext, {
67
+ get value() {
68
+ return mergeProps$1(merge(() => aria.trackProps), {
69
+ ref: (element) => {
70
+ setTrackRef(element);
71
+ },
72
+ trackRef
73
+ });
74
+ },
75
+ get children() {
76
+ return createComponent(SliderOutputContext, {
77
+ get value() {
78
+ return merge(() => aria.outputProps);
79
+ },
80
+ get children() {
81
+ return createComponent(LabelContext, {
82
+ get value() {
83
+ return mergeProps$1(merge(() => aria.labelProps), { registerSlot: registerLabel });
84
+ },
85
+ get children() {
86
+ return createComponent(dom.div, mergeProps(() => {
87
+ return mergeProps$1(omit(filterDOMProps(props, { global: true }), "id"), render, merge(() => aria.groupProps));
88
+ }, {
89
+ ref: (element) => {
90
+ setRef(element);
91
+ },
92
+ get slot() {
93
+ return memo(() => {
94
+ return !!(typeof props.slot === "string" && props.slot.length > 0);
95
+ })() ? props.slot : void 0;
96
+ },
97
+ get "data-orientation"() {
98
+ return state.orientation;
99
+ },
100
+ get "data-disabled"() {
101
+ return state.isDisabled || void 0;
102
+ },
103
+ get children() {
104
+ return render.children;
105
+ }
106
+ }));
107
+ }
108
+ });
109
+ }
110
+ });
111
+ }
112
+ });
113
+ }
114
+ });
115
+ }
116
+ function SliderOutput(input) {
117
+ const [props, , setRef] = createContextProps(input, untrack(() => input.ref), SliderOutputContext);
118
+ const state = requireValue(useContext(SliderStateContext), "Expected required component value");
119
+ const render = createRenderProps(mergeProps$1(props, {
120
+ get defaultChildren() {
121
+ return state.getFormattedValue();
122
+ },
123
+ defaultClass: "solid2-aria-SliderOutput",
124
+ values: sliderValues(state)
125
+ }));
126
+ return createComponent(dom.output, mergeProps(() => {
127
+ return omit(props, "ref");
128
+ }, render, {
129
+ ref: (element) => {
130
+ setRef(element);
131
+ },
132
+ get "data-orientation"() {
133
+ return state.orientation;
134
+ },
135
+ get "data-disabled"() {
136
+ return state.isDisabled || void 0;
137
+ },
138
+ get children() {
139
+ return render.children;
140
+ }
141
+ }));
142
+ }
143
+ function SliderTrack(input) {
144
+ const [props, , setRef] = createContextProps(input, untrack(() => input.ref), SliderTrackContext);
145
+ const state = requireValue(useContext(SliderStateContext), "Expected required component value");
146
+ const hover = createHover(props);
147
+ const render = createRenderProps(mergeProps$1(props, {
148
+ defaultClass: "solid2-aria-SliderTrack",
149
+ values: mergeProps$1(sliderValues(state), { get isHovered() {
150
+ return hover.isHovered;
151
+ } })
152
+ }));
153
+ return createComponent(dom.div, mergeProps(() => {
154
+ return mergeProps$1(omit(props, "onHoverStart", "onHoverEnd", "onHoverChange", "ref"), merge(() => hover.hoverProps ?? {}), render);
155
+ }, {
156
+ ref: (element) => {
157
+ setRef(element);
158
+ },
159
+ get "data-hovered"() {
160
+ return hover.isHovered || void 0;
161
+ },
162
+ get "data-orientation"() {
163
+ return state.orientation;
164
+ },
165
+ get "data-disabled"() {
166
+ return state.isDisabled || void 0;
167
+ },
168
+ get children() {
169
+ return render.children;
170
+ }
171
+ }));
172
+ }
173
+ function SliderThumb(props) {
174
+ const [inputRef, setInputRef] = createSignal(null, { ownedWrite: true });
175
+ const state = requireValue(useContext(SliderStateContext), "Expected required component value");
176
+ const track = requireValue(createSlottedContext(SliderTrackContext), "Expected required component value");
177
+ const trackRef = untrack(() => track.trackRef);
178
+ const [registerLabel, label] = createSlot(() => (props["aria-label"]?.length ?? 0) === 0 && (props["aria-labelledby"]?.length ?? 0) === 0);
179
+ const aria = createSliderThumb(mergeProps$1(props, {
180
+ get index() {
181
+ return props.index ?? 0;
182
+ },
183
+ inputRef,
184
+ get label() {
185
+ return label();
186
+ },
187
+ trackRef
188
+ }), state);
189
+ const focus = createFocusRing();
190
+ const hover = createHover(props);
191
+ const render = createRenderProps(mergeProps$1(props, {
192
+ defaultClass: "solid2-aria-SliderThumb",
193
+ get defaultStyle() {
194
+ const { style } = aria.thumbProps;
195
+ return typeof style === "object" ? style : void 0;
196
+ },
197
+ values: {
198
+ get isDisabled() {
199
+ return aria.isDisabled;
200
+ },
201
+ get isDragging() {
202
+ return aria.isDragging;
203
+ },
204
+ get isFocusVisible() {
205
+ return focus.isFocusVisible;
206
+ },
207
+ get isFocused() {
208
+ return aria.isFocused;
209
+ },
210
+ get isHovered() {
211
+ return hover.isHovered;
212
+ },
213
+ state
214
+ }
215
+ }));
216
+ return createComponent(dom.div, mergeProps(() => {
217
+ return mergeProps$1(omit(filterDOMProps(props, { global: true }), "id"), merge(() => aria.thumbProps), merge(() => hover.hoverProps ?? {}), render);
218
+ }, {
219
+ ref: (element) => {
220
+ assignRef(untrack(() => props.ref), element);
221
+ },
222
+ get "data-hovered"() {
223
+ return hover.isHovered || void 0;
224
+ },
225
+ get "data-dragging"() {
226
+ return aria.isDragging || void 0;
227
+ },
228
+ get "data-focused"() {
229
+ return aria.isFocused || void 0;
230
+ },
231
+ get "data-focus-visible"() {
232
+ return focus.isFocusVisible || void 0;
233
+ },
234
+ get "data-disabled"() {
235
+ return aria.isDisabled || void 0;
236
+ },
237
+ get children() {
238
+ return [createComponent(VisuallyHidden, { get children() {
239
+ var _el$ = getNextElement(_tmpl$);
240
+ spread(_el$, () => {
241
+ return mergeProps$1(merge(() => aria.inputProps), merge(() => focus.focusProps ?? {}));
242
+ }, false);
243
+ ref(() => {
244
+ return [(element) => {
245
+ setInputRef(element);
246
+ }, (element) => {
247
+ assignRef(untrack(() => props.inputRef), element);
248
+ }];
249
+ }, _el$);
250
+ runHydrationEvents();
251
+ return _el$;
252
+ } }), createComponent(LabelContext, {
253
+ get value() {
254
+ return mergeProps$1(merge(() => aria.labelProps), { registerSlot: registerLabel });
255
+ },
256
+ get children() {
257
+ return render.children;
258
+ }
259
+ })];
260
+ }
261
+ }));
262
+ }
263
+ function SliderFill(input) {
264
+ const [props, , setRef] = createContextProps(input, untrack(() => input.ref), SliderFillContext);
265
+ const state = requireValue(useContext(SliderStateContext), "Expected required component value");
266
+ const hover = createHover(props);
267
+ const geometry = createMemo(() => {
268
+ const offset = Math.min(state.getThumbMaxValue(0), Math.max(state.getThumbMinValue(0), props.offset ?? state.getThumbMinValue(0)));
269
+ const start = state.values.length > 1 ? state.getThumbPercent(0) : state.getValuePercent(offset);
270
+ const end = state.values.length ? state.getThumbPercent(state.values.length - 1) : 0;
271
+ return {
272
+ size: Math.max(0, Math.abs(end - start)) * 100,
273
+ start: Math.min(start, end) * 100
274
+ };
275
+ });
276
+ const render = createRenderProps(mergeProps$1(props, {
277
+ defaultClass: "solid2-aria-SliderFill",
278
+ get defaultStyle() {
279
+ const g = geometry();
280
+ return state.orientation === "vertical" ? {
281
+ bottom: `${g.start}%`,
282
+ height: `${g.size}%`,
283
+ position: "absolute",
284
+ width: "100%"
285
+ } : {
286
+ height: "100%",
287
+ "inset-inline-start": `${g.start}%`,
288
+ position: "absolute",
289
+ width: `${g.size}%`
290
+ };
291
+ },
292
+ values: mergeProps$1(sliderValues(state), { get isHovered() {
293
+ return hover.isHovered;
294
+ } })
295
+ }));
296
+ return createComponent(dom.div, mergeProps(() => {
297
+ return mergeProps$1(omit(props, "offset", "ref", "onHoverStart", "onHoverEnd", "onHoverChange"), merge(() => hover.hoverProps ?? {}), render);
298
+ }, {
299
+ ref: (element) => {
300
+ setRef(element);
301
+ },
302
+ get "data-hovered"() {
303
+ return hover.isHovered || void 0;
304
+ },
305
+ get "data-orientation"() {
306
+ return state.orientation;
307
+ },
308
+ get "data-disabled"() {
309
+ return state.isDisabled || void 0;
310
+ },
311
+ get children() {
312
+ return render.children;
313
+ }
314
+ }));
315
+ }
316
+ export { Slider, SliderContext, SliderFill, SliderFillContext, SliderOutput, SliderOutputContext, SliderStateContext, SliderThumb, SliderTrack, SliderTrackContext };
317
+
318
+ //# sourceMappingURL=slider.js.map