@proyecto-viviana/solidaria 0.4.0 → 0.4.2

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 (480) hide show
  1. package/dist/_chunk/DragManager.js +627 -0
  2. package/dist/_chunk/DragManager.js.map +1 -0
  3. package/dist/_chunk/DragManager.jsx +627 -0
  4. package/dist/_chunk/DragManager.jsx.map +1 -0
  5. package/dist/_chunk/FocusScope.js +400 -0
  6. package/dist/_chunk/FocusScope.js.map +1 -0
  7. package/dist/_chunk/FocusScope.jsx +375 -0
  8. package/dist/_chunk/FocusScope.jsx.map +1 -0
  9. package/dist/_chunk/actiongroup.js +13 -79
  10. package/dist/_chunk/actiongroup.js.map +1 -1
  11. package/dist/_chunk/actiongroup.jsx +13 -79
  12. package/dist/_chunk/actiongroup.jsx.map +1 -1
  13. package/dist/_chunk/{live-announcer.js → announce.js} +1 -1
  14. package/dist/_chunk/announce.js.map +1 -0
  15. package/dist/_chunk/{live-announcer.jsx → announce.jsx} +1 -1
  16. package/dist/_chunk/announce.jsx.map +1 -0
  17. package/dist/_chunk/autocomplete.js +56 -8
  18. package/dist/_chunk/autocomplete.js.map +1 -1
  19. package/dist/_chunk/autocomplete.jsx +56 -8
  20. package/dist/_chunk/autocomplete.jsx.map +1 -1
  21. package/dist/_chunk/breadcrumbs.js +6 -4
  22. package/dist/_chunk/breadcrumbs.js.map +1 -1
  23. package/dist/_chunk/breadcrumbs.jsx +6 -4
  24. package/dist/_chunk/breadcrumbs.jsx.map +1 -1
  25. package/dist/_chunk/button.js +8 -9
  26. package/dist/_chunk/button.js.map +1 -1
  27. package/dist/_chunk/button.jsx +8 -9
  28. package/dist/_chunk/button.jsx.map +1 -1
  29. package/dist/_chunk/calendar.js +27 -26
  30. package/dist/_chunk/calendar.js.map +1 -1
  31. package/dist/_chunk/calendar.jsx +27 -26
  32. package/dist/_chunk/calendar.jsx.map +1 -1
  33. package/dist/_chunk/checkbox.js +5 -4
  34. package/dist/_chunk/checkbox.js.map +1 -1
  35. package/dist/_chunk/checkbox.jsx +5 -4
  36. package/dist/_chunk/checkbox.jsx.map +1 -1
  37. package/dist/_chunk/color.js +302 -18
  38. package/dist/_chunk/color.js.map +1 -1
  39. package/dist/_chunk/color.jsx +302 -18
  40. package/dist/_chunk/color.jsx.map +1 -1
  41. package/dist/_chunk/combobox.js +638 -12
  42. package/dist/_chunk/combobox.js.map +1 -1
  43. package/dist/_chunk/combobox.jsx +638 -12
  44. package/dist/_chunk/combobox.jsx.map +1 -1
  45. package/dist/_chunk/constants.js +19 -0
  46. package/dist/_chunk/constants.js.map +1 -0
  47. package/dist/_chunk/constants.jsx +19 -0
  48. package/dist/_chunk/constants.jsx.map +1 -0
  49. package/dist/_chunk/createCollator.js +3 -171
  50. package/dist/_chunk/createCollator.js.map +1 -1
  51. package/dist/_chunk/createCollator.jsx +3 -165
  52. package/dist/_chunk/createCollator.jsx.map +1 -1
  53. package/dist/_chunk/createField.js +2 -1
  54. package/dist/_chunk/createField.js.map +1 -1
  55. package/dist/_chunk/createField.jsx +2 -1
  56. package/dist/_chunk/createField.jsx.map +1 -1
  57. package/dist/_chunk/createFocus.js +12 -8
  58. package/dist/_chunk/createFocus.js.map +1 -1
  59. package/dist/_chunk/createFocus.jsx +12 -8
  60. package/dist/_chunk/createFocus.jsx.map +1 -1
  61. package/dist/_chunk/createFocusWithin.js +12 -13
  62. package/dist/_chunk/createFocusWithin.js.map +1 -1
  63. package/dist/_chunk/createFocusWithin.jsx +12 -13
  64. package/dist/_chunk/createFocusWithin.jsx.map +1 -1
  65. package/dist/_chunk/createFocusable.js +3 -3
  66. package/dist/_chunk/createFocusable.js.map +1 -1
  67. package/dist/_chunk/createFocusable.jsx +3 -3
  68. package/dist/_chunk/createFocusable.jsx.map +1 -1
  69. package/dist/_chunk/{form.js → createFormReset.js} +1 -1
  70. package/dist/_chunk/createFormReset.js.map +1 -0
  71. package/dist/_chunk/{form.jsx → createFormReset.jsx} +1 -1
  72. package/dist/_chunk/createFormReset.jsx.map +1 -0
  73. package/dist/_chunk/createHover.js +2 -1
  74. package/dist/_chunk/createHover.js.map +1 -1
  75. package/dist/_chunk/createHover.jsx +2 -1
  76. package/dist/_chunk/createHover.jsx.map +1 -1
  77. package/dist/_chunk/createInteractionModality.js +2 -3
  78. package/dist/_chunk/createInteractionModality.js.map +1 -1
  79. package/dist/_chunk/createInteractionModality.jsx +2 -3
  80. package/dist/_chunk/createInteractionModality.jsx.map +1 -1
  81. package/dist/_chunk/createLabel.js +2 -1
  82. package/dist/_chunk/createLabel.js.map +1 -1
  83. package/dist/_chunk/createLabel.jsx +2 -1
  84. package/dist/_chunk/createLabel.jsx.map +1 -1
  85. package/dist/_chunk/createLabels.js +3 -2
  86. package/dist/_chunk/createLabels.js.map +1 -1
  87. package/dist/_chunk/createLabels.jsx +3 -2
  88. package/dist/_chunk/createLabels.jsx.map +1 -1
  89. package/dist/_chunk/createLandmark.js +1 -1
  90. package/dist/_chunk/createLandmark.jsx +1 -1
  91. package/dist/_chunk/createProgressBar.js +2 -1
  92. package/dist/_chunk/createProgressBar.js.map +1 -1
  93. package/dist/_chunk/createProgressBar.jsx +2 -1
  94. package/dist/_chunk/createProgressBar.jsx.map +1 -1
  95. package/dist/_chunk/createSelectableItem.js +7 -3
  96. package/dist/_chunk/createSelectableItem.js.map +1 -1
  97. package/dist/_chunk/createSelectableItem.jsx +7 -3
  98. package/dist/_chunk/createSelectableItem.jsx.map +1 -1
  99. package/dist/_chunk/createStringFormatter.js +61 -0
  100. package/dist/_chunk/createStringFormatter.js.map +1 -0
  101. package/dist/_chunk/createStringFormatter.jsx +61 -0
  102. package/dist/_chunk/createStringFormatter.jsx.map +1 -0
  103. package/dist/_chunk/createToggle.js +5 -4
  104. package/dist/_chunk/createToggle.js.map +1 -1
  105. package/dist/_chunk/createToggle.jsx +5 -4
  106. package/dist/_chunk/createToggle.jsx.map +1 -1
  107. package/dist/_chunk/datepicker.js +1413 -1100
  108. package/dist/_chunk/datepicker.js.map +1 -1
  109. package/dist/_chunk/datepicker.jsx +1413 -1100
  110. package/dist/_chunk/datepicker.jsx.map +1 -1
  111. package/dist/_chunk/disclosure.js +2 -2
  112. package/dist/_chunk/disclosure.js.map +1 -1
  113. package/dist/_chunk/disclosure.jsx +2 -2
  114. package/dist/_chunk/disclosure.jsx.map +1 -1
  115. package/dist/_chunk/dnd.js +1586 -495
  116. package/dist/_chunk/dnd.js.map +1 -1
  117. package/dist/_chunk/dnd.jsx +1586 -495
  118. package/dist/_chunk/dnd.jsx.map +1 -1
  119. package/dist/_chunk/env.js +1 -19
  120. package/dist/_chunk/env.js.map +1 -1
  121. package/dist/_chunk/env.jsx +1 -19
  122. package/dist/_chunk/env.jsx.map +1 -1
  123. package/dist/_chunk/focus.js +1 -1
  124. package/dist/_chunk/focus.js.map +1 -1
  125. package/dist/_chunk/focus.jsx +1 -1
  126. package/dist/_chunk/focus.jsx.map +1 -1
  127. package/dist/_chunk/focus2.js +54 -318
  128. package/dist/_chunk/focus2.js.map +1 -1
  129. package/dist/_chunk/focus2.jsx +53 -292
  130. package/dist/_chunk/focus2.jsx.map +1 -1
  131. package/dist/_chunk/grid.js +1 -1
  132. package/dist/_chunk/grid.jsx +1 -1
  133. package/dist/_chunk/gridlist.js +14 -9
  134. package/dist/_chunk/gridlist.js.map +1 -1
  135. package/dist/_chunk/gridlist.jsx +14 -9
  136. package/dist/_chunk/gridlist.jsx.map +1 -1
  137. package/dist/_chunk/i18n.js +3 -58
  138. package/dist/_chunk/i18n.js.map +1 -1
  139. package/dist/_chunk/i18n.jsx +3 -58
  140. package/dist/_chunk/i18n.jsx.map +1 -1
  141. package/dist/_chunk/interactions.js +99 -9
  142. package/dist/_chunk/interactions.js.map +1 -1
  143. package/dist/_chunk/interactions.jsx +97 -9
  144. package/dist/_chunk/interactions.jsx.map +1 -1
  145. package/dist/_chunk/link.js +2 -1
  146. package/dist/_chunk/link.js.map +1 -1
  147. package/dist/_chunk/link.jsx +2 -1
  148. package/dist/_chunk/link.jsx.map +1 -1
  149. package/dist/_chunk/listbox.js +42 -10
  150. package/dist/_chunk/listbox.js.map +1 -1
  151. package/dist/_chunk/listbox.jsx +42 -10
  152. package/dist/_chunk/listbox.jsx.map +1 -1
  153. package/dist/_chunk/locale.js +173 -0
  154. package/dist/_chunk/locale.js.map +1 -0
  155. package/dist/_chunk/locale.jsx +167 -0
  156. package/dist/_chunk/locale.jsx.map +1 -0
  157. package/dist/_chunk/menu.js +5 -4
  158. package/dist/_chunk/menu.js.map +1 -1
  159. package/dist/_chunk/menu.jsx +5 -4
  160. package/dist/_chunk/menu.jsx.map +1 -1
  161. package/dist/_chunk/numberfield.js +3 -2
  162. package/dist/_chunk/numberfield.js.map +1 -1
  163. package/dist/_chunk/numberfield.jsx +3 -2
  164. package/dist/_chunk/numberfield.jsx.map +1 -1
  165. package/dist/_chunk/overlays.js +1 -1
  166. package/dist/_chunk/overlays.jsx +1 -1
  167. package/dist/_chunk/popover.js +3 -3
  168. package/dist/_chunk/popover.js.map +1 -1
  169. package/dist/_chunk/popover.jsx +3 -3
  170. package/dist/_chunk/popover.jsx.map +1 -1
  171. package/dist/_chunk/radio.js +7 -6
  172. package/dist/_chunk/radio.js.map +1 -1
  173. package/dist/_chunk/radio.jsx +7 -6
  174. package/dist/_chunk/radio.jsx.map +1 -1
  175. package/dist/_chunk/reactivity.js +21 -0
  176. package/dist/_chunk/reactivity.js.map +1 -0
  177. package/dist/_chunk/reactivity.jsx +21 -0
  178. package/dist/_chunk/reactivity.jsx.map +1 -0
  179. package/dist/_chunk/searchfield.js +2 -1
  180. package/dist/_chunk/searchfield.js.map +1 -1
  181. package/dist/_chunk/searchfield.jsx +2 -1
  182. package/dist/_chunk/searchfield.jsx.map +1 -1
  183. package/dist/_chunk/select.js +8 -5
  184. package/dist/_chunk/select.js.map +1 -1
  185. package/dist/_chunk/select.jsx +8 -5
  186. package/dist/_chunk/select.jsx.map +1 -1
  187. package/dist/_chunk/selection.js +8 -21
  188. package/dist/_chunk/selection.js.map +1 -1
  189. package/dist/_chunk/selection.jsx +8 -21
  190. package/dist/_chunk/selection.jsx.map +1 -1
  191. package/dist/_chunk/separator.js +1 -1
  192. package/dist/_chunk/separator.jsx +1 -1
  193. package/dist/_chunk/slider.js +5 -4
  194. package/dist/_chunk/slider.js.map +1 -1
  195. package/dist/_chunk/slider.jsx +5 -4
  196. package/dist/_chunk/slider.jsx.map +1 -1
  197. package/dist/_chunk/spinbutton.js +153 -0
  198. package/dist/_chunk/spinbutton.js.map +1 -0
  199. package/dist/_chunk/spinbutton.jsx +153 -0
  200. package/dist/_chunk/spinbutton.jsx.map +1 -0
  201. package/dist/_chunk/table.js +45 -8
  202. package/dist/_chunk/table.js.map +1 -1
  203. package/dist/_chunk/table.jsx +45 -8
  204. package/dist/_chunk/table.jsx.map +1 -1
  205. package/dist/_chunk/tabs.js +11 -8
  206. package/dist/_chunk/tabs.js.map +1 -1
  207. package/dist/_chunk/tabs.jsx +11 -8
  208. package/dist/_chunk/tabs.jsx.map +1 -1
  209. package/dist/_chunk/tag.js +54 -18
  210. package/dist/_chunk/tag.js.map +1 -1
  211. package/dist/_chunk/tag.jsx +54 -18
  212. package/dist/_chunk/tag.jsx.map +1 -1
  213. package/dist/_chunk/textfield.js +2 -1
  214. package/dist/_chunk/textfield.js.map +1 -1
  215. package/dist/_chunk/textfield.jsx +2 -1
  216. package/dist/_chunk/textfield.jsx.map +1 -1
  217. package/dist/_chunk/toolbar.js +4 -36
  218. package/dist/_chunk/toolbar.js.map +1 -1
  219. package/dist/_chunk/toolbar.jsx +4 -36
  220. package/dist/_chunk/toolbar.jsx.map +1 -1
  221. package/dist/_chunk/tooltip.js +2 -2
  222. package/dist/_chunk/tooltip.js.map +1 -1
  223. package/dist/_chunk/tooltip.jsx +2 -2
  224. package/dist/_chunk/tooltip.jsx.map +1 -1
  225. package/dist/_chunk/tree.js +42 -14
  226. package/dist/_chunk/tree.js.map +1 -1
  227. package/dist/_chunk/tree.jsx +42 -14
  228. package/dist/_chunk/tree.jsx.map +1 -1
  229. package/dist/_chunk/utils.js +59 -19
  230. package/dist/_chunk/utils.js.map +1 -1
  231. package/dist/_chunk/utils.jsx +59 -19
  232. package/dist/_chunk/utils.jsx.map +1 -1
  233. package/dist/_chunk/visually-hidden.js +3 -2
  234. package/dist/_chunk/visually-hidden.js.map +1 -1
  235. package/dist/_chunk/visually-hidden.jsx +3 -2
  236. package/dist/_chunk/visually-hidden.jsx.map +1 -1
  237. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  238. package/dist/autocomplete/createAutocomplete.d.ts +10 -7
  239. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  240. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  241. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  242. package/dist/calendar/createCalendar.d.ts.map +1 -1
  243. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  244. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  245. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  246. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  247. package/dist/calendar/intl/index.d.ts +1 -1
  248. package/dist/calendar/intl/index.d.ts.map +1 -1
  249. package/dist/collections/index.js +1 -1
  250. package/dist/collections/index.jsx +1 -1
  251. package/dist/color/createColorArea.d.ts.map +1 -1
  252. package/dist/color/createColorField.d.ts.map +1 -1
  253. package/dist/color/createColorSlider.d.ts.map +1 -1
  254. package/dist/color/createColorSwatch.d.ts.map +1 -1
  255. package/dist/color/createColorWheel.d.ts.map +1 -1
  256. package/dist/color/intl/index.d.ts +30 -0
  257. package/dist/color/intl/index.d.ts.map +1 -0
  258. package/dist/combobox/createComboBox.d.ts.map +1 -1
  259. package/dist/combobox/intl/generated-locales.d.ts +16 -0
  260. package/dist/combobox/intl/generated-locales.d.ts.map +1 -0
  261. package/dist/combobox/intl/index.d.ts +2 -2
  262. package/dist/combobox/intl/index.d.ts.map +1 -1
  263. package/dist/datepicker/createDateField.d.ts +45 -23
  264. package/dist/datepicker/createDateField.d.ts.map +1 -1
  265. package/dist/datepicker/createDatePicker.d.ts +34 -6
  266. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  267. package/dist/datepicker/createDatePickerGroup.d.ts +13 -13
  268. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
  269. package/dist/datepicker/createDateRangePicker.d.ts +55 -7
  270. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  271. package/dist/datepicker/createDateSegment.d.ts +6 -15
  272. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  273. package/dist/datepicker/createDisplayNames.d.ts +17 -0
  274. package/dist/datepicker/createDisplayNames.d.ts.map +1 -0
  275. package/dist/datepicker/createTimeField.d.ts +12 -49
  276. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  277. package/dist/datepicker/index.d.ts +3 -3
  278. package/dist/datepicker/index.d.ts.map +1 -1
  279. package/dist/datepicker/index.js +2 -2
  280. package/dist/datepicker/index.jsx +2 -2
  281. package/dist/datepicker/intl.d.ts +12 -0
  282. package/dist/datepicker/intl.d.ts.map +1 -0
  283. package/dist/dnd/DragManager.d.ts +86 -0
  284. package/dist/dnd/DragManager.d.ts.map +1 -0
  285. package/dist/dnd/DropTargetKeyboardNavigation.d.ts +42 -0
  286. package/dist/dnd/DropTargetKeyboardNavigation.d.ts.map +1 -0
  287. package/dist/dnd/createDrag.d.ts.map +1 -1
  288. package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
  289. package/dist/dnd/createDraggableItem.d.ts +12 -7
  290. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  291. package/dist/dnd/createDroppableCollection.d.ts +7 -15
  292. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  293. package/dist/dnd/index.d.ts +5 -1
  294. package/dist/dnd/index.d.ts.map +1 -1
  295. package/dist/dnd/index.js +3 -2
  296. package/dist/dnd/index.jsx +3 -2
  297. package/dist/dnd/intl/index.d.ts +39 -0
  298. package/dist/dnd/intl/index.d.ts.map +1 -0
  299. package/dist/dnd/utils.d.ts +5 -0
  300. package/dist/dnd/utils.d.ts.map +1 -1
  301. package/dist/focus/FocusScope.d.ts +7 -0
  302. package/dist/focus/FocusScope.d.ts.map +1 -1
  303. package/dist/focus/index.d.ts +2 -1
  304. package/dist/focus/index.d.ts.map +1 -1
  305. package/dist/focus/index.js +3 -2
  306. package/dist/focus/index.jsx +3 -2
  307. package/dist/focus/virtualFocus.d.ts +26 -0
  308. package/dist/focus/virtualFocus.d.ts.map +1 -0
  309. package/dist/form/index.js +1 -1
  310. package/dist/form/index.jsx +1 -1
  311. package/dist/gridlist/createGridList.d.ts.map +1 -1
  312. package/dist/i18n/index.js +4 -2
  313. package/dist/i18n/index.jsx +4 -2
  314. package/dist/index.d.ts +3 -3
  315. package/dist/index.d.ts.map +1 -1
  316. package/dist/index.js +18 -12
  317. package/dist/index.jsx +18 -12
  318. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  319. package/dist/interactions/createFocus.d.ts.map +1 -1
  320. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  321. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  322. package/dist/interactions/index.js +1 -2
  323. package/dist/interactions/index.jsx +1 -2
  324. package/dist/label/createLabels.d.ts.map +1 -1
  325. package/dist/listbox/createListBox.d.ts.map +1 -1
  326. package/dist/listbox/createOption.d.ts +1 -1
  327. package/dist/listbox/createOption.d.ts.map +1 -1
  328. package/dist/live-announcer/index.js +1 -1
  329. package/dist/live-announcer/index.jsx +1 -1
  330. package/dist/select/createSelect.d.ts +2 -0
  331. package/dist/select/createSelect.d.ts.map +1 -1
  332. package/dist/selection/createSelectableItem.d.ts.map +1 -1
  333. package/dist/selection/index.js +2 -1
  334. package/dist/selection/index.jsx +2 -1
  335. package/dist/spinbutton/createSpinButton.d.ts +41 -0
  336. package/dist/spinbutton/createSpinButton.d.ts.map +1 -0
  337. package/dist/spinbutton/index.d.ts +3 -0
  338. package/dist/spinbutton/index.d.ts.map +1 -0
  339. package/dist/spinbutton/index.js +2 -0
  340. package/dist/spinbutton/index.jsx +2 -0
  341. package/dist/spinbutton/intl.d.ts +5 -0
  342. package/dist/spinbutton/intl.d.ts.map +1 -0
  343. package/dist/table/createTable.d.ts.map +1 -1
  344. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  345. package/dist/table/createTableRow.d.ts.map +1 -1
  346. package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
  347. package/dist/table/types.d.ts +8 -0
  348. package/dist/table/types.d.ts.map +1 -1
  349. package/dist/table/utils.d.ts +15 -0
  350. package/dist/table/utils.d.ts.map +1 -0
  351. package/dist/tabs/createTabs.d.ts +1 -0
  352. package/dist/tabs/createTabs.d.ts.map +1 -1
  353. package/dist/tag/createTag.d.ts.map +1 -1
  354. package/dist/tag/createTagGroup.d.ts +7 -0
  355. package/dist/tag/createTagGroup.d.ts.map +1 -1
  356. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  357. package/dist/tree/createTree.d.ts.map +1 -1
  358. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  359. package/dist/utils/animation.d.ts.map +1 -1
  360. package/dist/utils/dom.d.ts +1 -0
  361. package/dist/utils/dom.d.ts.map +1 -1
  362. package/dist/utils/index.d.ts +1 -1
  363. package/dist/utils/index.d.ts.map +1 -1
  364. package/dist/utils/index.js +4 -3
  365. package/dist/utils/index.jsx +4 -3
  366. package/package.json +2 -2
  367. package/src/actiongroup/createActionGroup.ts +26 -109
  368. package/src/autocomplete/createAutocomplete.ts +136 -15
  369. package/src/breadcrumbs/createBreadcrumbs.ts +12 -4
  370. package/src/button/createToggleButtonGroup.ts +19 -14
  371. package/src/calendar/createCalendar.ts +3 -4
  372. package/src/calendar/createCalendarCell.ts +17 -3
  373. package/src/calendar/createCalendarGrid.ts +5 -4
  374. package/src/calendar/createRangeCalendar.ts +27 -17
  375. package/src/calendar/createRangeCalendarCell.ts +17 -3
  376. package/src/calendar/intl/index.ts +8 -0
  377. package/src/color/createColorArea.ts +17 -10
  378. package/src/color/createColorField.ts +8 -1
  379. package/src/color/createColorSlider.ts +1 -2
  380. package/src/color/createColorSwatch.ts +4 -2
  381. package/src/color/createColorWheel.ts +0 -6
  382. package/src/color/intl/index.ts +316 -0
  383. package/src/combobox/createComboBox.ts +35 -4
  384. package/src/combobox/intl/generated-locales.ts +635 -0
  385. package/src/combobox/intl/index.ts +8 -2
  386. package/src/datepicker/createDateField.ts +228 -213
  387. package/src/datepicker/createDatePicker.ts +157 -146
  388. package/src/datepicker/createDatePickerGroup.ts +88 -82
  389. package/src/datepicker/createDateRangePicker.ts +230 -179
  390. package/src/datepicker/createDateSegment.ts +386 -389
  391. package/src/datepicker/createDisplayNames.ts +45 -0
  392. package/src/datepicker/createTimeField.ts +36 -129
  393. package/src/datepicker/index.ts +13 -14
  394. package/src/datepicker/intl.ts +633 -0
  395. package/src/dnd/DragManager.ts +693 -0
  396. package/src/dnd/DropTargetKeyboardNavigation.ts +337 -0
  397. package/src/dnd/createDrag.ts +31 -5
  398. package/src/dnd/createDraggableCollection.ts +33 -15
  399. package/src/dnd/createDraggableItem.ts +92 -5
  400. package/src/dnd/createDroppableCollection.ts +487 -373
  401. package/src/dnd/index.ts +11 -0
  402. package/src/dnd/intl/ar-AE.json +29 -0
  403. package/src/dnd/intl/bg-BG.json +29 -0
  404. package/src/dnd/intl/cs-CZ.json +29 -0
  405. package/src/dnd/intl/da-DK.json +29 -0
  406. package/src/dnd/intl/de-DE.json +29 -0
  407. package/src/dnd/intl/el-GR.json +29 -0
  408. package/src/dnd/intl/en-US.json +29 -0
  409. package/src/dnd/intl/es-ES.json +29 -0
  410. package/src/dnd/intl/et-EE.json +29 -0
  411. package/src/dnd/intl/fi-FI.json +29 -0
  412. package/src/dnd/intl/fr-FR.json +29 -0
  413. package/src/dnd/intl/he-IL.json +29 -0
  414. package/src/dnd/intl/hr-HR.json +29 -0
  415. package/src/dnd/intl/hu-HU.json +29 -0
  416. package/src/dnd/intl/index.ts +139 -0
  417. package/src/dnd/intl/it-IT.json +29 -0
  418. package/src/dnd/intl/ja-JP.json +29 -0
  419. package/src/dnd/intl/ko-KR.json +29 -0
  420. package/src/dnd/intl/lt-LT.json +29 -0
  421. package/src/dnd/intl/lv-LV.json +29 -0
  422. package/src/dnd/intl/nb-NO.json +29 -0
  423. package/src/dnd/intl/nl-NL.json +29 -0
  424. package/src/dnd/intl/pl-PL.json +29 -0
  425. package/src/dnd/intl/pt-BR.json +29 -0
  426. package/src/dnd/intl/pt-PT.json +29 -0
  427. package/src/dnd/intl/ro-RO.json +29 -0
  428. package/src/dnd/intl/ru-RU.json +29 -0
  429. package/src/dnd/intl/sk-SK.json +29 -0
  430. package/src/dnd/intl/sl-SI.json +29 -0
  431. package/src/dnd/intl/sr-SP.json +29 -0
  432. package/src/dnd/intl/sv-SE.json +29 -0
  433. package/src/dnd/intl/tr-TR.json +29 -0
  434. package/src/dnd/intl/uk-UA.json +29 -0
  435. package/src/dnd/intl/zh-CN.json +29 -0
  436. package/src/dnd/intl/zh-TW.json +29 -0
  437. package/src/dnd/utils.ts +36 -0
  438. package/src/focus/FocusScope.tsx +120 -12
  439. package/src/focus/index.ts +8 -0
  440. package/src/focus/virtualFocus.ts +55 -0
  441. package/src/gridlist/createGridList.ts +52 -16
  442. package/src/index.ts +11 -3
  443. package/src/interactions/FocusableProvider.tsx +11 -6
  444. package/src/interactions/createFocus.ts +26 -21
  445. package/src/interactions/createFocusWithin.ts +23 -24
  446. package/src/interactions/createInteractionModality.ts +5 -3
  447. package/src/label/createLabels.ts +7 -4
  448. package/src/listbox/createListBox.ts +74 -2
  449. package/src/listbox/createOption.ts +16 -1
  450. package/src/select/createSelect.ts +23 -2
  451. package/src/selection/createSelectableItem.ts +14 -0
  452. package/src/spinbutton/createSpinButton.ts +163 -0
  453. package/src/spinbutton/index.ts +10 -0
  454. package/src/spinbutton/intl.ts +115 -0
  455. package/src/table/createTable.ts +26 -1
  456. package/src/table/createTableColumnHeader.ts +10 -0
  457. package/src/table/createTableRow.ts +10 -0
  458. package/src/table/createTableSelectionCheckbox.ts +24 -1
  459. package/src/table/types.ts +8 -0
  460. package/src/table/utils.ts +41 -0
  461. package/src/tabs/createTabs.ts +53 -12
  462. package/src/tag/createTag.ts +21 -32
  463. package/src/tag/createTagGroup.ts +92 -0
  464. package/src/toolbar/createToolbar.ts +6 -58
  465. package/src/tree/createTree.ts +69 -14
  466. package/src/tree/createTreeSelectionCheckbox.ts +14 -1
  467. package/src/utils/animation.ts +119 -27
  468. package/src/utils/dom.ts +3 -2
  469. package/src/utils/index.ts +2 -0
  470. package/dist/_chunk/createLongPress.js +0 -91
  471. package/dist/_chunk/createLongPress.js.map +0 -1
  472. package/dist/_chunk/createLongPress.jsx +0 -91
  473. package/dist/_chunk/createLongPress.jsx.map +0 -1
  474. package/dist/_chunk/form.js.map +0 -1
  475. package/dist/_chunk/form.jsx.map +0 -1
  476. package/dist/_chunk/live-announcer.js.map +0 -1
  477. package/dist/_chunk/live-announcer.jsx.map +0 -1
  478. package/dist/datepicker/createTimeSegment.d.ts +0 -29
  479. package/dist/datepicker/createTimeSegment.d.ts.map +0 -1
  480. package/src/datepicker/createTimeSegment.ts +0 -352
@@ -1 +1 @@
1
- {"version":3,"file":"color.js","names":["createId","createId","createId","createId","createId"],"sources":["../../src/color/createColorSlider.ts","../../src/color/createColorArea.ts","../../src/color/createColorWheel.ts","../../src/color/createColorField.ts","../../src/color/createColorSwatch.ts"],"sourcesContent":["/**\n * createColorSlider hook.\n *\n * Provides ARIA attributes and keyboard handling for a color slider.\n */\n\nimport { createMemo, onCleanup, type Accessor } from \"solid-js\";\nimport type { ColorSliderState } from \"@proyecto-viviana/solid-stately\";\nimport { useLocale } from \"../i18n\";\nimport { createId } from \"../ssr\";\nimport { focusWithoutScrolling } from \"../utils/focus\";\nimport type { AriaColorSliderOptions, ColorSliderAria } from \"./types\";\n\n/**\n * Creates ARIA props for a color slider.\n */\nexport function createColorSlider(\n props: Accessor<AriaColorSliderOptions>,\n state: Accessor<ColorSliderState>,\n trackRef: Accessor<HTMLDivElement | null>,\n inputRef?: Accessor<HTMLInputElement | null>,\n): ColorSliderAria {\n const getProps = () => props();\n const getState = () => state();\n const locale = useLocale();\n const isRTL = () => locale().direction === \"rtl\";\n\n // Generate IDs\n const trackId = createId();\n const inputId = createId();\n const labelId = createId();\n let cleanupPointerDrag: (() => void) | undefined;\n let cleanupMouseDrag: (() => void) | undefined;\n\n const getInput = () =>\n inputRef?.() ?? trackRef()?.querySelector<HTMLInputElement>('input[type=\"range\"]') ?? null;\n const focusInput = () => {\n focusWithoutScrolling(getInput());\n queueMicrotask(() => focusWithoutScrolling(getInput()));\n };\n\n // Get channel name for ARIA label\n const channelName = createMemo(() => {\n const p = getProps();\n if (p.channelName) return p.channelName;\n const s = getState();\n return s.value.getChannelName(s.channel, \"en-US\");\n });\n\n const orientation = () => getProps().orientation ?? \"horizontal\";\n const hasVisibleLabel = () => getProps().label != null;\n const trackElementId = () => getProps().id ?? trackId;\n const trackLabelledBy = () => {\n const p = getProps();\n return p[\"aria-labelledby\"] ?? (hasVisibleLabel() ? labelId : undefined);\n };\n const inputLabelledBy = () => (hasVisibleLabel() ? labelId : trackElementId());\n const trackAriaLabel = () => {\n const p = getProps();\n if (p[\"aria-label\"]) return p[\"aria-label\"];\n if (p[\"aria-labelledby\"] || hasVisibleLabel()) return undefined;\n return channelName();\n };\n\n const updateFromPointer = (clientX: number, clientY: number) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n\n const track = trackRef();\n if (!track) return;\n\n const rect = track.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return;\n\n let percent: number;\n if (orientation() === \"vertical\") {\n percent = 1 - (clientY - rect.top) / rect.height;\n } else {\n const physicalPercent = (clientX - rect.left) / rect.width;\n percent = isRTL() ? 1 - physicalPercent : physicalPercent;\n }\n\n getState().setThumbPercent(Math.max(0, Math.min(1, percent)));\n };\n\n const endDrag = (target: EventTarget | null, pointerId?: number) => {\n const s = getState();\n if (!s.isDragging) return;\n s.setDragging(false);\n focusInput();\n if (pointerId == null) return;\n try {\n (target as HTMLElement | null)?.releasePointerCapture?.(pointerId);\n } catch {\n // Some synthetic pointer sequences do not have active capture by the time\n // drag end runs. React Aria treats capture as best-effort as well.\n }\n };\n\n const installPointerDragListeners = () => {\n if (typeof window === \"undefined\") return;\n cleanupPointerDrag?.();\n\n const onPointerMove = (e: PointerEvent) => {\n if (!getState().isDragging) return;\n updateFromPointer(e.clientX, e.clientY);\n };\n const onPointerEnd = (e: PointerEvent) => {\n cleanupPointerDrag?.();\n cleanupPointerDrag = undefined;\n endDrag(trackRef(), e.pointerId);\n };\n\n window.addEventListener(\"pointermove\", onPointerMove);\n window.addEventListener(\"pointerup\", onPointerEnd);\n window.addEventListener(\"pointercancel\", onPointerEnd);\n\n cleanupPointerDrag = () => {\n window.removeEventListener(\"pointermove\", onPointerMove);\n window.removeEventListener(\"pointerup\", onPointerEnd);\n window.removeEventListener(\"pointercancel\", onPointerEnd);\n };\n };\n\n const installMouseDragListeners = () => {\n if (typeof window === \"undefined\") return;\n cleanupMouseDrag?.();\n\n const onMouseMove = (e: MouseEvent) => {\n if (!getState().isDragging) return;\n updateFromPointer(e.clientX, e.clientY);\n };\n const onMouseEnd = () => {\n cleanupMouseDrag?.();\n cleanupMouseDrag = undefined;\n endDrag(trackRef());\n };\n\n window.addEventListener(\"mousemove\", onMouseMove);\n window.addEventListener(\"mouseup\", onMouseEnd);\n\n cleanupMouseDrag = () => {\n window.removeEventListener(\"mousemove\", onMouseMove);\n window.removeEventListener(\"mouseup\", onMouseEnd);\n };\n };\n\n onCleanup(() => {\n cleanupPointerDrag?.();\n cleanupMouseDrag?.();\n });\n\n // Handle pointer interaction on the track\n const onTrackPointerDown = (e: PointerEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n updateFromPointer(e.clientX, e.clientY);\n focusInput();\n getState().setDragging(true);\n try {\n (e.currentTarget as HTMLElement).setPointerCapture?.(e.pointerId);\n } catch {\n // Keep drag behavior working in environments where pointer capture is not\n // active for this event, including Playwright's synthetic mouse pointer.\n }\n installPointerDragListeners();\n e.preventDefault();\n };\n\n const onTrackPointerMove = (e: PointerEvent) => {\n if (!getState().isDragging) return;\n updateFromPointer(e.clientX, e.clientY);\n };\n\n const onTrackPointerUp = (e: PointerEvent) => {\n cleanupPointerDrag?.();\n cleanupPointerDrag = undefined;\n endDrag(e.currentTarget, e.pointerId);\n };\n\n const onTrackPointerCancel = (e: PointerEvent) => {\n cleanupPointerDrag?.();\n cleanupPointerDrag = undefined;\n endDrag(e.currentTarget, e.pointerId);\n };\n\n const onTrackMouseDown = (e: MouseEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n updateFromPointer(e.clientX, e.clientY);\n getState().setDragging(true);\n installMouseDragListeners();\n e.preventDefault();\n };\n\n const onTrackMouseMove = (e: MouseEvent) => {\n if (!getState().isDragging) return;\n updateFromPointer(e.clientX, e.clientY);\n };\n\n const onTrackMouseUp = (e: MouseEvent) => {\n cleanupMouseDrag?.();\n cleanupMouseDrag = undefined;\n endDrag(e.currentTarget);\n };\n\n // Handle keyboard\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.defaultPrevented) return;\n if (getProps().isDisabled || getState().isDisabled) return;\n\n const s = getState();\n let handled = true;\n\n switch (e.key) {\n case \"ArrowUp\":\n s.incrementThumb();\n break;\n case \"ArrowDown\":\n s.decrementThumb();\n break;\n case \"ArrowRight\":\n if (orientation() === \"horizontal\" && isRTL()) {\n s.decrementThumb();\n } else {\n s.incrementThumb();\n }\n break;\n case \"ArrowLeft\":\n if (orientation() === \"horizontal\" && isRTL()) {\n s.incrementThumb();\n } else {\n s.decrementThumb();\n }\n break;\n case \"PageUp\":\n s.incrementThumb(s.pageSize);\n break;\n case \"PageDown\":\n s.decrementThumb(s.pageSize);\n break;\n case \"Home\":\n s.setThumbValue(s.minValue);\n break;\n case \"End\":\n s.setThumbValue(s.maxValue);\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n // Generate gradient background for the slider track\n const generateBackground = () => {\n const s = getState();\n const value = s.getDisplayColor();\n const channel = s.channel;\n const to = orientation() === \"vertical\" ? \"top\" : isRTL() ? \"left\" : \"right\";\n\n switch (channel) {\n case \"hue\": {\n const stops = [0, 60, 120, 180, 240, 300, 360]\n .map((hue) => value.withChannelValue(\"hue\", hue).toString(\"css\"))\n .join(\", \");\n return `linear-gradient(to ${to}, ${stops})`;\n }\n case \"lightness\": {\n const min = s.minValue;\n const max = s.maxValue;\n const start = value.withChannelValue(channel, min).toString(\"css\");\n const middle = value.withChannelValue(channel, (max - min) / 2).toString(\"css\");\n const end = value.withChannelValue(channel, max).toString(\"css\");\n return `linear-gradient(to ${to}, ${start}, ${middle}, ${end})`;\n }\n case \"saturation\":\n case \"brightness\":\n case \"red\":\n case \"green\":\n case \"blue\":\n case \"alpha\": {\n const start = value.withChannelValue(channel, s.minValue).toString(\"css\");\n const end = value.withChannelValue(channel, s.maxValue).toString(\"css\");\n return `linear-gradient(to ${to}, ${start}, ${end})`;\n }\n default:\n return undefined;\n }\n };\n\n // Track props\n const trackProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const bg = generateBackground();\n return {\n id: trackElementId(),\n role: \"group\" as const,\n \"aria-label\": trackAriaLabel(),\n \"aria-labelledby\": trackLabelledBy(),\n onPointerDown: onTrackPointerDown,\n onPointerMove: onTrackPointerMove,\n onPointerUp: onTrackPointerUp,\n onPointerCancel: onTrackPointerCancel,\n onMouseDown: onTrackMouseDown,\n onMouseMove: onTrackMouseMove,\n onMouseUp: onTrackMouseUp,\n style: {\n position: \"relative\" as const,\n \"touch-action\": \"none\",\n \"forced-color-adjust\": \"none\" as const,\n ...(bg ? { background: bg } : {}),\n },\n \"data-disabled\": s.isDisabled || undefined,\n };\n });\n\n // Thumb props\n const thumbProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const percent = s.getThumbPercent();\n const x = orientation() === \"horizontal\" ? (isRTL() ? 1 - percent : percent) : 0.5;\n const y = orientation() === \"horizontal\" ? 0.5 : 1 - percent;\n\n return {\n role: \"presentation\" as const,\n onKeyDown,\n style: {\n position: \"absolute\" as const,\n left: `${x * 100}%`,\n top: `${y * 100}%`,\n transform: \"translate(-50%, -50%)\",\n \"touch-action\": \"none\",\n \"forced-color-adjust\": \"none\" as const,\n },\n \"data-dragging\": s.isDragging || undefined,\n \"data-disabled\": s.isDisabled || p.isDisabled || undefined,\n };\n });\n\n const ariaValueText = () => {\n const s = getState();\n const loc = locale().locale;\n const displayColor = s.getDisplayColor();\n let valueText = s.getThumbValueLabel();\n\n if (s.channel === \"hue\") {\n valueText += `, ${displayColor.getHueName(loc)}`;\n } else if (s.channel !== \"alpha\") {\n valueText += `, ${displayColor.getColorName(loc)}`;\n }\n\n return valueText;\n };\n\n // Input props (hidden, for accessibility)\n const inputProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n\n return {\n type: \"range\",\n id: inputId,\n min: s.minValue,\n max: s.maxValue,\n step: s.step,\n value: s.getThumbValue(),\n name: p.name,\n form: p.form,\n disabled: s.isDisabled || p.isDisabled,\n tabIndex: s.isDisabled || p.isDisabled ? undefined : 0,\n \"aria-orientation\": orientation(),\n \"aria-labelledby\": inputLabelledBy(),\n \"aria-describedby\": p[\"aria-describedby\"] ?? \"\",\n \"aria-details\": p[\"aria-details\"] ?? \"\",\n \"aria-valuetext\": ariaValueText(),\n onKeyDown,\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n s.setThumbValue(parseFloat(target.value));\n },\n onChange: (e: Event) => {\n const target = e.target as HTMLInputElement;\n s.setThumbValue(parseFloat(target.value));\n },\n onFocus: () => {\n // Focus handling\n },\n style: {\n position: \"absolute\" as const,\n opacity: \"0.0001\",\n width: \"100%\",\n height: \"100%\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n \"white-space\": \"nowrap\",\n border: \"0\",\n \"pointer-events\": \"none\" as const,\n },\n };\n });\n\n // Output props\n const outputProps = createMemo(() => {\n return {\n \"aria-live\": \"off\" as const,\n for: inputId,\n };\n });\n\n // Label props\n const labelProps = createMemo(() => {\n return {\n id: labelId,\n onClick: () => {\n if (typeof document !== \"undefined\") {\n document.getElementById(inputId)?.focus();\n }\n },\n };\n });\n\n return {\n get trackProps() {\n return trackProps();\n },\n get thumbProps() {\n return thumbProps();\n },\n get inputProps() {\n return inputProps();\n },\n get outputProps() {\n return outputProps();\n },\n get labelProps() {\n return labelProps();\n },\n };\n}\n","/**\n * createColorArea hook.\n *\n * Provides ARIA attributes and keyboard/pointer handling for a 2D color area.\n */\n\nimport { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { Color, ColorAreaState, ColorChannel } from \"@proyecto-viviana/solid-stately\";\nimport { parseColor } from \"@proyecto-viviana/solid-stately\";\nimport { useLocale } from \"../i18n\";\nimport { createId } from \"../ssr\";\nimport type { AriaColorAreaOptions, ColorAreaAria } from \"./types\";\n\n/**\n * Creates ARIA props for a color area.\n */\nexport function createColorArea(\n props: Accessor<AriaColorAreaOptions>,\n state: Accessor<ColorAreaState>,\n areaRef: Accessor<HTMLDivElement | null>,\n): ColorAreaAria {\n const getProps = () => props();\n const getState = () => state();\n const locale = useLocale();\n const isRTL = () => locale().direction === \"rtl\";\n const [focusedInput, setFocusedInput] = createSignal<\"x\" | \"y\" | null>(null);\n const [valueChangedViaKeyboard, setValueChangedViaKeyboard] = createSignal(false);\n const [valueChangedViaInputChangeEvent, setValueChangedViaInputChangeEvent] = createSignal(false);\n\n // Generate IDs\n const colorAreaId = createId();\n const xInputId = createId();\n const yInputId = createId();\n\n const colorPickerLabel = () => \"Color picker\";\n const colorInputLabel = () => {\n const ariaLabel = getProps()[\"aria-label\"];\n return ariaLabel ? `${ariaLabel}, ${colorPickerLabel()}` : colorPickerLabel();\n };\n const colorAreaLabel = () => {\n const ariaLabel = getProps()[\"aria-label\"];\n return ariaLabel ? `${ariaLabel}, ${colorPickerLabel()}` : undefined;\n };\n const formatChannelValueText = (channel: ColorChannel) => {\n const value = getState().getDisplayColor();\n const loc = locale().locale;\n return `${value.getChannelName(channel, loc)}: ${value.formatChannelValue(channel, loc)}`;\n };\n const getAriaValueTextForChannel = (channel: ColorChannel) => {\n const s = getState();\n const value = s.getDisplayColor();\n const loc = locale().locale;\n if (valueChangedViaInputChangeEvent() || valueChangedViaKeyboard()) {\n return `${formatChannelValueText(channel)}, ${value.getColorName(loc)}`;\n }\n\n const otherChannel = channel === s.yChannel ? s.xChannel : s.yChannel;\n return (\n [\n formatChannelValueText(channel),\n formatChannelValueText(otherChannel),\n formatChannelValueText(s.zChannel),\n ].join(\", \") + `, ${value.getColorName(loc)}`\n );\n };\n\n const updateFromInput = (e: Event, axis: \"x\" | \"y\") => {\n const target = e.target as HTMLInputElement;\n const nextValue = parseFloat(target.value);\n\n setValueChangedViaInputChangeEvent(true);\n if (axis === \"x\") {\n getState().setXValue(nextValue);\n } else {\n getState().setYValue(nextValue);\n }\n };\n\n // Calculate position from pointer event\n const getPositionFromEvent = (e: MouseEvent | PointerEvent) => {\n const area = areaRef();\n if (!area) return null;\n\n const rect = area.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return null;\n\n const physicalX = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));\n const x = isRTL() ? 1 - physicalX : physicalX;\n const y = Math.max(0, Math.min(1, (e.clientY - rect.top) / rect.height));\n\n return { x, y };\n };\n\n // Handle pointer down\n const onPointerDown = (e: PointerEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n\n const pos = getPositionFromEvent(e);\n if (!pos) return;\n\n getState().setColorFromPoint(pos.x, pos.y);\n getState().setDragging(true);\n\n // Capture pointer for dragging\n (e.currentTarget as HTMLElement).setPointerCapture?.(e.pointerId);\n };\n\n // Handle pointer move\n const onPointerMove = (e: PointerEvent) => {\n if (!getState().isDragging) return;\n\n const pos = getPositionFromEvent(e);\n if (!pos) return;\n\n getState().setColorFromPoint(pos.x, pos.y);\n };\n\n // Handle pointer up\n const onPointerUp = (e: PointerEvent) => {\n if (getState().isDragging) {\n getState().setDragging(false);\n (e.currentTarget as HTMLElement).releasePointerCapture?.(e.pointerId);\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n\n const s = getState();\n const xStep =\n e.shiftKey && s.xChannelPageStep > s.xChannelStep ? s.xChannelPageStep : s.xChannelStep;\n const yStep =\n e.shiftKey && s.yChannelPageStep > s.yChannelStep ? s.yChannelPageStep : s.yChannelStep;\n let focusedAxis: \"x\" | \"y\" = \"x\";\n let handled = true;\n\n switch (e.key) {\n case \"ArrowRight\":\n if (isRTL()) {\n s.decrementX(xStep);\n } else {\n s.incrementX(xStep);\n }\n break;\n case \"ArrowLeft\":\n if (isRTL()) {\n s.incrementX(xStep);\n } else {\n s.decrementX(xStep);\n }\n break;\n case \"ArrowUp\":\n s.incrementY(yStep);\n focusedAxis = \"y\";\n break;\n case \"ArrowDown\":\n s.decrementY(yStep);\n focusedAxis = \"y\";\n break;\n case \"PageUp\":\n s.incrementY(s.yChannelPageStep);\n focusedAxis = \"y\";\n break;\n case \"PageDown\":\n s.decrementY(s.yChannelPageStep);\n focusedAxis = \"y\";\n break;\n case \"Home\":\n if (isRTL()) {\n s.incrementX(s.xChannelPageStep);\n } else {\n s.decrementX(s.xChannelPageStep);\n }\n break;\n case \"End\":\n if (isRTL()) {\n s.decrementX(s.xChannelPageStep);\n } else {\n s.incrementX(s.xChannelPageStep);\n }\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n setFocusedInput(focusedAxis);\n setValueChangedViaKeyboard(true);\n s.setDragging(true);\n s.setDragging(false);\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n const onFocusOut = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as HTMLElement;\n const relatedTarget = e.relatedTarget as Node | null;\n if (!relatedTarget || !currentTarget.contains(relatedTarget)) {\n setValueChangedViaKeyboard(false);\n setValueChangedViaInputChangeEvent(false);\n }\n };\n\n // Color area props\n const colorAreaProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n\n return {\n id: p.id ?? colorAreaId,\n role: \"group\" as const,\n \"aria-label\": colorAreaLabel(),\n \"aria-labelledby\": p[\"aria-labelledby\"],\n onPointerDown,\n onPointerMove,\n onPointerUp,\n style: {\n position: \"relative\" as const,\n \"touch-action\": \"none\",\n \"forced-color-adjust\": \"none\" as const,\n ...generateGradient(),\n },\n \"data-disabled\": s.isDisabled || p.isDisabled || undefined,\n };\n });\n\n // Generate gradient background for the color area\n function generateGradient(): Record<string, string> {\n const s = getState();\n const value = s.value;\n const xCh = s.xChannel;\n const yCh = s.yChannel;\n const zCh = s.zChannel;\n const zValue = value.getChannelValue(zCh);\n const end = isRTL() ? \"left\" : \"right\";\n\n const hue = (color: Color) =>\n [0, 60, 120, 180, 240, 300, 360]\n .map((h) => color.withChannelValue(\"hue\", h).toString(\"css\"))\n .join(\", \");\n\n const hslChannels: Record<string, (c: Color) => string> = {\n hue,\n saturation: (color) =>\n `${color.withChannelValue(\"saturation\", 0).toString(\"css\")}, transparent`,\n lightness: () => \"black, transparent, white\",\n };\n\n const hsbChannels: Record<string, (c: Color) => string> = {\n hue,\n saturation: (color) =>\n `${color.withChannelValue(\"saturation\", 0).toString(\"css\")}, transparent`,\n brightness: () => \"black, transparent\",\n };\n\n switch (value.getColorSpace()) {\n case \"rgb\": {\n const rgb = parseColor(\"rgb(0, 0, 0)\");\n return {\n background: [\n `linear-gradient(to ${end}, ${rgb.withChannelValue(xCh, 0).toString(\"css\")}, ${rgb.withChannelValue(xCh, 255).toString(\"css\")})`,\n `linear-gradient(to top, ${rgb.withChannelValue(yCh, 0).toString(\"css\")}, ${rgb.withChannelValue(yCh, 255).toString(\"css\")})`,\n rgb.withChannelValue(zCh, zValue).toString(\"css\"),\n ].join(\",\"),\n \"background-blend-mode\": \"screen\",\n };\n }\n case \"hsl\": {\n const channels = value.getColorChannels();\n const base = parseColor(\"hsl(0, 100%, 50%)\").withChannelValue(zCh, zValue);\n const bg = channels\n .filter((c: ColorChannel) => c !== zCh)\n .map(\n (c: ColorChannel) =>\n `linear-gradient(to ${c === xCh ? end : \"top\"}, ${hslChannels[c]?.(base) ?? \"\"})`,\n )\n .reverse();\n if (zCh === \"hue\") {\n bg.push(base.toString(\"css\"));\n }\n\n return {\n background: bg.join(\", \"),\n };\n }\n case \"hsb\": {\n const channels = value.getColorChannels();\n const base = parseColor(\"hsb(0, 100%, 100%)\").withChannelValue(zCh, zValue);\n const bg = channels\n .filter((c: ColorChannel) => c !== zCh)\n .map(\n (c: ColorChannel) =>\n `linear-gradient(to ${c === xCh ? end : \"top\"}, ${hsbChannels[c]?.(base) ?? \"\"})`,\n )\n .reverse();\n if (zCh === \"hue\") {\n bg.push(base.toString(\"css\"));\n }\n\n return {\n background: bg.join(\", \"),\n };\n }\n default:\n return {};\n }\n }\n\n // Gradient props (the visual area)\n const gradientProps = createMemo(() => {\n const gradientStyles = generateGradient();\n return {\n role: \"presentation\" as const,\n style: {\n width: \"100%\",\n height: \"100%\",\n \"forced-color-adjust\": \"none\" as const,\n ...gradientStyles,\n },\n };\n });\n\n // Thumb props\n const thumbProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const pos = s.getThumbPosition();\n const x = isRTL() ? 1 - pos.x : pos.x;\n\n return {\n role: \"presentation\" as const,\n style: {\n position: \"absolute\" as const,\n left: `${x * 100}%`,\n top: `${pos.y * 100}%`,\n transform: \"translate(-50%, -50%)\",\n \"touch-action\": \"none\",\n \"forced-color-adjust\": \"none\" as const,\n },\n onKeyDown,\n onFocusOut,\n \"data-dragging\": s.isDragging || undefined,\n \"data-disabled\": s.isDisabled || p.isDisabled || undefined,\n };\n });\n\n // X input props (hidden, for accessibility)\n const xInputProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const xRange = s.value.getChannelRange(s.xChannel);\n\n return {\n type: \"range\",\n id: p.id ?? xInputId,\n \"aria-label\": colorInputLabel(),\n \"aria-roledescription\": \"2D slider\",\n \"aria-valuetext\": getAriaValueTextForChannel(s.xChannel),\n \"aria-orientation\": \"horizontal\" as const,\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-details\": p[\"aria-details\"],\n min: xRange.minValue,\n max: xRange.maxValue,\n step: xRange.step,\n value: s.getXValue(),\n name: p.xName,\n form: p.form,\n disabled: s.isDisabled || p.isDisabled,\n \"aria-hidden\":\n !focusedInput() || focusedInput() === \"x\" || valueChangedViaKeyboard()\n ? undefined\n : (\"true\" as const),\n onFocus: () => setFocusedInput(\"x\"),\n onKeyDown,\n onInput: (e: Event) => updateFromInput(e, \"x\"),\n onChange: (e: Event) => updateFromInput(e, \"x\"),\n onBlur: () => {\n if (s.isDragging) {\n s.setDragging(false);\n }\n },\n tabIndex: !focusedInput() || focusedInput() === \"x\" ? undefined : -1,\n style: {\n position: \"absolute\" as const,\n width: \"1px\",\n height: \"1px\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n \"white-space\": \"nowrap\",\n border: \"0\",\n },\n };\n });\n\n // Y input props (hidden, for accessibility)\n const yInputProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const yRange = s.value.getChannelRange(s.yChannel);\n\n return {\n type: \"range\",\n id: p.id ?? yInputId,\n \"aria-label\": colorInputLabel(),\n \"aria-roledescription\": \"2D slider\",\n \"aria-valuetext\": getAriaValueTextForChannel(s.yChannel),\n \"aria-orientation\": \"vertical\" as const,\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-details\": p[\"aria-details\"],\n min: yRange.minValue,\n max: yRange.maxValue,\n step: yRange.step,\n value: s.getYValue(),\n name: p.yName,\n form: p.form,\n disabled: s.isDisabled || p.isDisabled,\n \"aria-hidden\":\n focusedInput() === \"y\" || valueChangedViaKeyboard() ? undefined : (\"true\" as const),\n onFocus: () => setFocusedInput(\"y\"),\n onKeyDown,\n onInput: (e: Event) => updateFromInput(e, \"y\"),\n onChange: (e: Event) => updateFromInput(e, \"y\"),\n tabIndex: focusedInput() === \"y\" ? undefined : -1,\n style: {\n position: \"absolute\" as const,\n width: \"1px\",\n height: \"1px\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n \"white-space\": \"nowrap\",\n border: \"0\",\n },\n };\n });\n\n return {\n get colorAreaProps() {\n return colorAreaProps();\n },\n get gradientProps() {\n return gradientProps();\n },\n get thumbProps() {\n return thumbProps();\n },\n get xInputProps() {\n return xInputProps();\n },\n get yInputProps() {\n return yInputProps();\n },\n };\n}\n","/**\n * createColorWheel hook.\n *\n * Provides ARIA attributes and keyboard/pointer handling for a circular hue selector.\n */\n\nimport { createMemo, onCleanup, type Accessor } from \"solid-js\";\nimport type { ColorWheelState } from \"@proyecto-viviana/solid-stately\";\nimport { useLocale } from \"../i18n\";\nimport { createId } from \"../ssr\";\nimport { focusWithoutScrolling } from \"../utils/focus\";\nimport type { AriaColorWheelOptions, ColorWheelAria } from \"./types\";\n\n/**\n * Creates ARIA props for a color wheel.\n */\nexport function createColorWheel(\n props: Accessor<AriaColorWheelOptions>,\n state: Accessor<ColorWheelState>,\n wheelRef: Accessor<HTMLDivElement | null>,\n): ColorWheelAria {\n const getProps = () => props();\n const getState = () => state();\n const locale = useLocale();\n\n // Generate IDs\n const inputId = createId();\n let cleanupPointerDrag: (() => void) | undefined;\n let cleanupMouseDrag: (() => void) | undefined;\n let dragElement: HTMLElement | null = null;\n\n const outerRadius = () => getProps().outerRadius ?? 100;\n const innerRadius = () => getProps().innerRadius ?? 74;\n const thumbRadius = () => (innerRadius() + outerRadius()) / 2;\n\n const getInput = () => wheelRef()?.querySelector<HTMLInputElement>('input[type=\"range\"]') ?? null;\n const focusInput = () => {\n focusWithoutScrolling(getInput());\n queueMicrotask(() => focusWithoutScrolling(getInput()));\n };\n\n const getPointFromEvent = (clientX: number, clientY: number, element?: HTMLElement | null) => {\n const wheel = element ?? dragElement ?? wheelRef();\n if (!wheel) return null;\n\n const rect = wheel.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n return {\n x: clientX - centerX,\n y: clientY - centerY,\n };\n };\n\n const updateFromPoint = (\n clientX: number,\n clientY: number,\n requireTrackHit = false,\n element?: HTMLElement | null,\n ) => {\n if (getProps().isDisabled || getState().isDisabled) return false;\n\n const point = getPointFromEvent(clientX, clientY, element);\n if (!point) return false;\n\n const distance = Math.sqrt(point.x ** 2 + point.y ** 2);\n if (requireTrackHit && (distance <= innerRadius() || distance >= outerRadius())) {\n return false;\n }\n\n getState().setHueFromPoint(point.x, point.y, thumbRadius());\n return true;\n };\n\n const endDrag = () => {\n if (!getState().isDragging) return;\n getState().setDragging(false);\n dragElement = null;\n focusInput();\n };\n\n const installPointerDragListeners = () => {\n if (typeof window === \"undefined\") return;\n cleanupPointerDrag?.();\n\n const onPointerMove = (e: PointerEvent) => {\n if (!getState().isDragging) return;\n updateFromPoint(e.clientX, e.clientY);\n };\n const onPointerEnd = () => {\n cleanupPointerDrag?.();\n cleanupPointerDrag = undefined;\n endDrag();\n };\n\n window.addEventListener(\"pointermove\", onPointerMove);\n window.addEventListener(\"pointerup\", onPointerEnd);\n window.addEventListener(\"pointercancel\", onPointerEnd);\n\n cleanupPointerDrag = () => {\n window.removeEventListener(\"pointermove\", onPointerMove);\n window.removeEventListener(\"pointerup\", onPointerEnd);\n window.removeEventListener(\"pointercancel\", onPointerEnd);\n };\n };\n\n const installMouseDragListeners = () => {\n if (typeof window === \"undefined\") return;\n cleanupMouseDrag?.();\n\n const onMouseMove = (e: MouseEvent) => {\n if (!getState().isDragging) return;\n updateFromPoint(e.clientX, e.clientY);\n };\n const onMouseEnd = () => {\n cleanupMouseDrag?.();\n cleanupMouseDrag = undefined;\n endDrag();\n };\n\n window.addEventListener(\"mousemove\", onMouseMove);\n window.addEventListener(\"mouseup\", onMouseEnd);\n\n cleanupMouseDrag = () => {\n window.removeEventListener(\"mousemove\", onMouseMove);\n window.removeEventListener(\"mouseup\", onMouseEnd);\n };\n };\n\n onCleanup(() => {\n cleanupPointerDrag?.();\n cleanupMouseDrag?.();\n });\n\n const onTrackPointerDown = (e: PointerEvent) => {\n dragElement = e.currentTarget as HTMLElement;\n if (!updateFromPoint(e.clientX, e.clientY, true, dragElement)) {\n dragElement = null;\n return;\n }\n focusInput();\n getState().setDragging(true);\n installPointerDragListeners();\n e.preventDefault();\n };\n\n const onTrackMouseDown = (e: MouseEvent) => {\n dragElement = e.currentTarget as HTMLElement;\n if (!updateFromPoint(e.clientX, e.clientY, true, dragElement)) {\n dragElement = null;\n return;\n }\n focusInput();\n getState().setDragging(true);\n installMouseDragListeners();\n e.preventDefault();\n };\n\n const onThumbPointerDown = (e: PointerEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n focusInput();\n getState().setDragging(true);\n installPointerDragListeners();\n e.preventDefault();\n e.stopPropagation();\n };\n\n const onThumbMouseDown = (e: MouseEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n focusInput();\n getState().setDragging(true);\n installMouseDragListeners();\n e.preventDefault();\n e.stopPropagation();\n };\n\n // Handle keyboard\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.defaultPrevented) return;\n if (getProps().isDisabled || getState().isDisabled) return;\n\n const s = getState();\n let handled = true;\n\n switch (e.key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n s.increment();\n break;\n case \"ArrowLeft\":\n case \"ArrowDown\":\n s.decrement();\n break;\n case \"PageUp\":\n s.increment(s.pageStep);\n break;\n case \"PageDown\":\n s.decrement(s.pageStep);\n break;\n case \"Home\":\n s.setHue(0);\n break;\n case \"End\":\n s.setHue(359);\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n s.setDragging(true);\n s.setDragging(false);\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n // Hue spectrum conic gradient\n const conicGradient = `conic-gradient(from 90deg, hsl(0, 100%, 50%), hsl(30, 100%, 50%), hsl(60, 100%, 50%), hsl(90, 100%, 50%), hsl(120, 100%, 50%), hsl(150, 100%, 50%), hsl(180, 100%, 50%), hsl(210, 100%, 50%), hsl(240, 100%, 50%), hsl(270, 100%, 50%), hsl(300, 100%, 50%), hsl(330, 100%, 50%), hsl(360, 100%, 50%))`;\n\n const ringPath = () => {\n const outer = outerRadius();\n const inner = innerRadius();\n const circlePath = (radius: number) =>\n [\n `M ${outer}, ${outer} m ${-radius}, 0`,\n `a ${radius}, ${radius}, 0, 1, 0, ${radius * 2}, 0`,\n `a ${radius}, ${radius}, 0, 1, 0 ${-radius * 2}, 0`,\n ].join(\" \");\n return `path(evenodd, \"${circlePath(outer)} ${circlePath(inner)}\")`;\n };\n\n // Track props (the wheel container)\n const trackProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n\n return {\n onPointerDown: onTrackPointerDown,\n onMouseDown: onTrackMouseDown,\n style: {\n position: \"relative\" as const,\n \"touch-action\": \"none\",\n width: `${outerRadius() * 2}px`,\n height: `${outerRadius() * 2}px`,\n background: conicGradient,\n \"clip-path\": ringPath(),\n \"forced-color-adjust\": \"none\" as const,\n },\n \"data-disabled\": s.isDisabled || p.isDisabled || undefined,\n };\n });\n\n // Thumb props\n const thumbProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const position = s.getThumbPosition(thumbRadius());\n\n return {\n onPointerDown: onThumbPointerDown,\n onMouseDown: onThumbMouseDown,\n onKeyDown,\n style: {\n position: \"absolute\" as const,\n left: `${outerRadius() + position.x}px`,\n top: `${outerRadius() + position.y}px`,\n transform: \"translate(-50%, -50%)\",\n \"touch-action\": \"none\",\n \"forced-color-adjust\": \"none\" as const,\n },\n \"data-dragging\": s.isDragging || undefined,\n \"data-disabled\": s.isDisabled || p.isDisabled || undefined,\n };\n });\n\n // Input props (hidden, for accessibility)\n const inputProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n\n return {\n type: \"range\",\n id: p.id ?? inputId,\n min: 0,\n max: 360,\n step: s.step,\n value: s.getHue(),\n name: p.name,\n form: p.form,\n disabled: s.isDisabled || p.isDisabled,\n tabIndex: s.isDisabled || p.isDisabled ? undefined : 0,\n \"aria-label\":\n p[\"aria-label\"] ??\n (p[\"aria-labelledby\"] ? undefined : s.value.getChannelName(\"hue\", locale().locale)),\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-details\": p[\"aria-details\"],\n \"aria-errormessage\": p[\"aria-errormessage\"],\n \"aria-valuetext\": `${s.value.formatChannelValue(\"hue\", locale().locale)}, ${s.value.getHueName(locale().locale)}`,\n onKeyDown,\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n s.setHue(parseFloat(target.value));\n },\n onChange: (e: Event) => {\n const target = e.target as HTMLInputElement;\n s.setHue(parseFloat(target.value));\n },\n onBlur: () => {\n if (s.isDragging) {\n s.setDragging(false);\n }\n },\n style: {\n position: \"absolute\" as const,\n width: \"100%\",\n height: \"100%\",\n opacity: \"0.0001\",\n padding: \"0\",\n margin: \"0\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n \"white-space\": \"nowrap\",\n border: \"0\",\n \"pointer-events\": \"none\" as const,\n },\n };\n });\n\n return {\n get trackProps() {\n return trackProps();\n },\n get thumbProps() {\n return thumbProps();\n },\n get inputProps() {\n return inputProps();\n },\n };\n}\n","/**\n * createColorField hook.\n *\n * Provides ARIA attributes and keyboard handling for a color input field.\n */\n\nimport { createEffect, createMemo, type Accessor } from \"solid-js\";\nimport type { ColorFieldState } from \"@proyecto-viviana/solid-stately\";\nimport { createId } from \"../ssr\";\nimport type { AriaColorFieldOptions, ColorFieldAria } from \"./types\";\n\n/**\n * Creates ARIA props for a color field.\n */\nexport function createColorField(\n props: Accessor<AriaColorFieldOptions>,\n state: Accessor<ColorFieldState>,\n inputRef: Accessor<HTMLInputElement | null>,\n): ColorFieldAria {\n const getProps = () => props();\n const getState = () => state();\n\n const generatedInputId = createId();\n const labelId = createId();\n const descriptionId = createId();\n const errorMessageId = createId();\n\n let didAutoFocus = false;\n createEffect(() => {\n const input = inputRef();\n if (!didAutoFocus && getProps().autoFocus && input) {\n didAutoFocus = true;\n input.focus();\n }\n });\n\n const isDisabled = () => getProps().isDisabled || getState().isDisabled;\n const isReadOnly = () => getProps().isReadOnly || getState().isReadOnly;\n const isInvalid = () => getProps().isInvalid || getState().isInvalid;\n const validationBehavior = () => getProps().validationBehavior ?? \"native\";\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = getState();\n\n if (isDisabled() || isReadOnly()) {\n return;\n }\n\n let handled = true;\n\n switch (e.key) {\n case \"ArrowUp\":\n s.increment();\n break;\n case \"ArrowDown\":\n s.decrement();\n break;\n case \"PageUp\":\n s.incrementToMax();\n break;\n case \"PageDown\":\n s.decrementToMin();\n break;\n case \"Home\":\n s.decrementToMin();\n break;\n case \"End\":\n s.incrementToMax();\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n e.preventDefault();\n }\n };\n\n const onWheel = (e: WheelEvent) => {\n const p = getProps();\n const s = getState();\n\n if (\n p.isWheelDisabled ||\n isDisabled() ||\n isReadOnly() ||\n document.activeElement !== inputRef()\n ) {\n return;\n }\n\n if (e.deltaY < 0) {\n s.increment();\n } else if (e.deltaY > 0) {\n s.decrement();\n } else {\n return;\n }\n\n e.preventDefault();\n };\n\n const labelProps = createMemo(() => {\n return {\n id: labelId,\n for: getProps().id ?? generatedInputId,\n };\n });\n\n const descriptionProps = createMemo(() => ({\n id: descriptionId,\n }));\n\n const errorMessageProps = createMemo(() => ({\n id: getProps()[\"aria-errormessage\"] ?? errorMessageId,\n }));\n\n const inputProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const channelLabel =\n s.channel && s.colorValue ? s.colorValue.getChannelName(s.channel, \"en-US\") : undefined;\n const required = p.isRequired || s.isRequired;\n const invalid = isInvalid();\n const describedBy = p[\"aria-describedby\"];\n\n return {\n id: p.id ?? generatedInputId,\n type: \"text\",\n value: s.inputValue,\n name: s.channel ? undefined : p.name,\n form: s.channel ? undefined : p.form,\n placeholder: p.placeholder,\n disabled: isDisabled(),\n readOnly: isReadOnly(),\n required: validationBehavior() === \"native\" ? required || undefined : undefined,\n tabIndex: p.excludeFromTabOrder ? -1 : undefined,\n autoComplete: \"off\",\n autoCorrect: \"off\",\n spellCheck: \"false\",\n \"aria-label\": p[\"aria-label\"] ?? channelLabel,\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": describedBy,\n \"aria-details\": p[\"aria-details\"],\n \"aria-errormessage\": invalid ? (p[\"aria-errormessage\"] ?? errorMessageId) : undefined,\n \"aria-invalid\": invalid || undefined,\n \"aria-required\": validationBehavior() === \"aria\" && required ? true : undefined,\n role: s.channel ? undefined : (\"textbox\" as const),\n \"aria-valuenow\": undefined,\n \"aria-valuemin\": undefined,\n \"aria-valuemax\": undefined,\n \"aria-valuetext\": undefined,\n onInput: (e: InputEvent) => {\n const target = e.target as HTMLInputElement;\n if (s.validate(target.value)) {\n s.setInputValue(target.value);\n } else {\n target.value = s.inputValue;\n }\n },\n onChange: () => {\n s.commit();\n },\n onBlur: () => {\n s.commit();\n },\n onKeyDown,\n onWheel,\n };\n });\n\n return {\n get labelProps() {\n return labelProps();\n },\n get inputProps() {\n return inputProps();\n },\n get descriptionProps() {\n return descriptionProps();\n },\n get errorMessageProps() {\n return errorMessageProps();\n },\n };\n}\n","/**\n * createColorSwatch hook.\n *\n * Provides ARIA attributes for a color swatch display.\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport { normalizeColor } from \"@proyecto-viviana/solid-stately\";\nimport { useLocale } from \"../i18n\";\nimport { createId } from \"../ssr\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport type { AriaColorSwatchOptions, ColorSwatchAria } from \"./types\";\n\n/**\n * Creates ARIA props for a color swatch.\n */\nexport function createColorSwatch(props: Accessor<AriaColorSwatchOptions>): ColorSwatchAria {\n const getProps = () => props();\n const locale = useLocale();\n const generatedId = createId();\n const id = () => getProps().id ?? generatedId;\n\n const color = createMemo(() => normalizeColor(getProps().color ?? \"#fff0\"));\n\n const colorName = createMemo(() => {\n const p = getProps();\n if (p.colorName) return p.colorName;\n\n const resolvedColor = color();\n if (resolvedColor.getChannelValue(\"alpha\") === 0) {\n return \"transparent\";\n }\n\n return resolvedColor.getColorName(locale().locale);\n });\n\n const swatchProps = createMemo(() => {\n const p = getProps();\n const domProps = filterDOMProps(p as Record<string, unknown>, { labelable: true });\n const ariaLabel = [colorName(), p[\"aria-label\"] || \"\"].filter(Boolean).join(\", \");\n\n return {\n ...domProps,\n id: id(),\n slot: p.slot,\n role: \"img\" as const,\n \"aria-roledescription\": \"color swatch\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": p[\"aria-labelledby\"] ? `${id()} ${p[\"aria-labelledby\"]}` : undefined,\n style: {\n \"background-color\": color().toString(\"css\"),\n \"forced-color-adjust\": \"none\" as const,\n },\n };\n });\n\n return {\n get swatchProps() {\n return swatchProps();\n },\n get color() {\n return color();\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;AAgBA,SAAgB,kBACd,OACA,OACA,UACA,UACiB;CACjB,MAAM,iBAAiB,MAAM;CAC7B,MAAM,iBAAiB,MAAM;CAC7B,MAAM,SAAS,UAAU;CACzB,MAAM,cAAc,OAAO,CAAC,CAAC,cAAc;CAG3C,MAAM,UAAUA,WAAS;CACzB,MAAM,UAAUA,WAAS;CACzB,MAAM,UAAUA,WAAS;CACzB,IAAI;CACJ,IAAI;CAEJ,MAAM,iBACJ,WAAW,KAAK,SAAS,CAAC,EAAE,cAAgC,uBAAqB,KAAK;CACxF,MAAM,mBAAmB;EACvB,sBAAsB,SAAS,CAAC;EAChC,qBAAqB,sBAAsB,SAAS,CAAC,CAAC;CACxD;CAGA,MAAM,cAAc,iBAAiB;EACnC,MAAM,IAAI,SAAS;EACnB,IAAI,EAAE,aAAa,OAAO,EAAE;EAC5B,MAAM,IAAI,SAAS;EACnB,OAAO,EAAE,MAAM,eAAe,EAAE,SAAS,OAAO;CAClD,CAAC;CAED,MAAM,oBAAoB,SAAS,CAAC,CAAC,eAAe;CACpD,MAAM,wBAAwB,SAAS,CAAC,CAAC,SAAS;CAClD,MAAM,uBAAuB,SAAS,CAAC,CAAC,MAAM;CAC9C,MAAM,wBAAwB;EAE5B,OADU,SACH,CAAC,CAAC,uBAAuB,gBAAgB,IAAI,UAAU,KAAA;CAChE;CACA,MAAM,wBAAyB,gBAAgB,IAAI,UAAU,eAAe;CAC5E,MAAM,uBAAuB;EAC3B,MAAM,IAAI,SAAS;EACnB,IAAI,EAAE,eAAe,OAAO,EAAE;EAC9B,IAAI,EAAE,sBAAsB,gBAAgB,GAAG,OAAO,KAAA;EACtD,OAAO,YAAY;CACrB;CAEA,MAAM,qBAAqB,SAAiB,YAAoB;EAC9D,IAAI,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,YAAY;EAEpD,MAAM,QAAQ,SAAS;EACvB,IAAI,CAAC,OAAO;EAEZ,MAAM,OAAO,MAAM,sBAAsB;EACzC,IAAI,KAAK,UAAU,KAAK,KAAK,WAAW,GAAG;EAE3C,IAAI;EACJ,IAAI,YAAY,MAAM,YACpB,UAAU,KAAK,UAAU,KAAK,OAAO,KAAK;OACrC;GACL,MAAM,mBAAmB,UAAU,KAAK,QAAQ,KAAK;GACrD,UAAU,MAAM,IAAI,IAAI,kBAAkB;EAC5C;EAEA,SAAS,CAAC,CAAC,gBAAgB,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,CAAC;CAC9D;CAEA,MAAM,WAAW,QAA4B,cAAuB;EAClE,MAAM,IAAI,SAAS;EACnB,IAAI,CAAC,EAAE,YAAY;EACnB,EAAE,YAAY,KAAK;EACnB,WAAW;EACX,IAAI,aAAa,MAAM;EACvB,IAAI;GACF,QAAgC,wBAAwB,SAAS;EACnE,QAAQ,CAGR;CACF;CAEA,MAAM,oCAAoC;EACxC,IAAI,OAAO,WAAW,aAAa;EACnC,qBAAqB;EAErB,MAAM,iBAAiB,MAAoB;GACzC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY;GAC5B,kBAAkB,EAAE,SAAS,EAAE,OAAO;EACxC;EACA,MAAM,gBAAgB,MAAoB;GACxC,qBAAqB;GACrB,qBAAqB,KAAA;GACrB,QAAQ,SAAS,GAAG,EAAE,SAAS;EACjC;EAEA,OAAO,iBAAiB,eAAe,aAAa;EACpD,OAAO,iBAAiB,aAAa,YAAY;EACjD,OAAO,iBAAiB,iBAAiB,YAAY;EAErD,2BAA2B;GACzB,OAAO,oBAAoB,eAAe,aAAa;GACvD,OAAO,oBAAoB,aAAa,YAAY;GACpD,OAAO,oBAAoB,iBAAiB,YAAY;EAC1D;CACF;CAEA,MAAM,kCAAkC;EACtC,IAAI,OAAO,WAAW,aAAa;EACnC,mBAAmB;EAEnB,MAAM,eAAe,MAAkB;GACrC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY;GAC5B,kBAAkB,EAAE,SAAS,EAAE,OAAO;EACxC;EACA,MAAM,mBAAmB;GACvB,mBAAmB;GACnB,mBAAmB,KAAA;GACnB,QAAQ,SAAS,CAAC;EACpB;EAEA,OAAO,iBAAiB,aAAa,WAAW;EAChD,OAAO,iBAAiB,WAAW,UAAU;EAE7C,yBAAyB;GACvB,OAAO,oBAAoB,aAAa,WAAW;GACnD,OAAO,oBAAoB,WAAW,UAAU;EAClD;CACF;CAEA,gBAAgB;EACd,qBAAqB;EACrB,mBAAmB;CACrB,CAAC;CAGD,MAAM,sBAAsB,MAAoB;EAC9C,IAAI,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,YAAY;EACpD,kBAAkB,EAAE,SAAS,EAAE,OAAO;EACtC,WAAW;EACX,SAAS,CAAC,CAAC,YAAY,IAAI;EAC3B,IAAI;GACF,EAAG,cAA8B,oBAAoB,EAAE,SAAS;EAClE,QAAQ,CAGR;EACA,4BAA4B;EAC5B,EAAE,eAAe;CACnB;CAEA,MAAM,sBAAsB,MAAoB;EAC9C,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY;EAC5B,kBAAkB,EAAE,SAAS,EAAE,OAAO;CACxC;CAEA,MAAM,oBAAoB,MAAoB;EAC5C,qBAAqB;EACrB,qBAAqB,KAAA;EACrB,QAAQ,EAAE,eAAe,EAAE,SAAS;CACtC;CAEA,MAAM,wBAAwB,MAAoB;EAChD,qBAAqB;EACrB,qBAAqB,KAAA;EACrB,QAAQ,EAAE,eAAe,EAAE,SAAS;CACtC;CAEA,MAAM,oBAAoB,MAAkB;EAC1C,IAAI,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,YAAY;EACpD,kBAAkB,EAAE,SAAS,EAAE,OAAO;EACtC,SAAS,CAAC,CAAC,YAAY,IAAI;EAC3B,0BAA0B;EAC1B,EAAE,eAAe;CACnB;CAEA,MAAM,oBAAoB,MAAkB;EAC1C,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY;EAC5B,kBAAkB,EAAE,SAAS,EAAE,OAAO;CACxC;CAEA,MAAM,kBAAkB,MAAkB;EACxC,mBAAmB;EACnB,mBAAmB,KAAA;EACnB,QAAQ,EAAE,aAAa;CACzB;CAGA,MAAM,aAAa,MAAqB;EACtC,IAAI,EAAE,kBAAkB;EACxB,IAAI,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,YAAY;EAEpD,MAAM,IAAI,SAAS;EACnB,IAAI,UAAU;EAEd,QAAQ,EAAE,KAAV;GACE,KAAK;IACH,EAAE,eAAe;IACjB;GACF,KAAK;IACH,EAAE,eAAe;IACjB;GACF,KAAK;IACH,IAAI,YAAY,MAAM,gBAAgB,MAAM,GAC1C,EAAE,eAAe;SAEjB,EAAE,eAAe;IAEnB;GACF,KAAK;IACH,IAAI,YAAY,MAAM,gBAAgB,MAAM,GAC1C,EAAE,eAAe;SAEjB,EAAE,eAAe;IAEnB;GACF,KAAK;IACH,EAAE,eAAe,EAAE,QAAQ;IAC3B;GACF,KAAK;IACH,EAAE,eAAe,EAAE,QAAQ;IAC3B;GACF,KAAK;IACH,EAAE,cAAc,EAAE,QAAQ;IAC1B;GACF,KAAK;IACH,EAAE,cAAc,EAAE,QAAQ;IAC1B;GACF,SACE,UAAU;EACd;EAEA,IAAI,SAAS;GACX,EAAE,eAAe;GACjB,EAAE,gBAAgB;EACpB;CACF;CAGA,MAAM,2BAA2B;EAC/B,MAAM,IAAI,SAAS;EACnB,MAAM,QAAQ,EAAE,gBAAgB;EAChC,MAAM,UAAU,EAAE;EAClB,MAAM,KAAK,YAAY,MAAM,aAAa,QAAQ,MAAM,IAAI,SAAS;EAErE,QAAQ,SAAR;GACE,KAAK,OAIH,OAAO,sBAAsB,GAAG,IAHlB;IAAC;IAAG;IAAI;IAAK;IAAK;IAAK;IAAK;GAAG,CAAC,CAC3C,KAAK,QAAQ,MAAM,iBAAiB,OAAO,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAChE,KAAK,IACgC,EAAE;GAE5C,KAAK,aAAa;IAChB,MAAM,MAAM,EAAE;IACd,MAAM,MAAM,EAAE;IAId,OAAO,sBAAsB,GAAG,IAHlB,MAAM,iBAAiB,SAAS,GAAG,CAAC,CAAC,SAAS,KAGpB,EAAE,IAF3B,MAAM,iBAAiB,UAAU,MAAM,OAAO,CAAC,CAAC,CAAC,SAAS,KAEtB,EAAE,IADzC,MAAM,iBAAiB,SAAS,GAAG,CAAC,CAAC,SAAS,KACC,EAAE;GAC/D;GACA,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,SAGH,OAAO,sBAAsB,GAAG,IAFlB,MAAM,iBAAiB,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,KAE3B,EAAE,IAD9B,MAAM,iBAAiB,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,KACjB,EAAE;GAEpD,SACE;EACJ;CACF;CAGA,MAAM,aAAa,iBAAiB;EAClC,MAAM,IAAI,SAAS;EACT,SAAS;EACnB,MAAM,KAAK,mBAAmB;EAC9B,OAAO;GACL,IAAI,eAAe;GACnB,MAAM;GACN,cAAc,eAAe;GAC7B,mBAAmB,gBAAgB;GACnC,eAAe;GACf,eAAe;GACf,aAAa;GACb,iBAAiB;GACjB,aAAa;GACb,aAAa;GACb,WAAW;GACX,OAAO;IACL,UAAU;IACV,gBAAgB;IAChB,uBAAuB;IACvB,GAAI,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;GACjC;GACA,iBAAiB,EAAE,cAAc,KAAA;EACnC;CACF,CAAC;CAGD,MAAM,aAAa,iBAAiB;EAClC,MAAM,IAAI,SAAS;EACnB,MAAM,IAAI,SAAS;EACnB,MAAM,UAAU,EAAE,gBAAgB;EAClC,MAAM,IAAI,YAAY,MAAM,eAAgB,MAAM,IAAI,IAAI,UAAU,UAAW;EAC/E,MAAM,IAAI,YAAY,MAAM,eAAe,KAAM,IAAI;EAErD,OAAO;GACL,MAAM;GACN;GACA,OAAO;IACL,UAAU;IACV,MAAM,GAAG,IAAI,IAAI;IACjB,KAAK,GAAG,IAAI,IAAI;IAChB,WAAW;IACX,gBAAgB;IAChB,uBAAuB;GACzB;GACA,iBAAiB,EAAE,cAAc,KAAA;GACjC,iBAAiB,EAAE,cAAc,EAAE,cAAc,KAAA;EACnD;CACF,CAAC;CAED,MAAM,sBAAsB;EAC1B,MAAM,IAAI,SAAS;EACnB,MAAM,MAAM,OAAO,CAAC,CAAC;EACrB,MAAM,eAAe,EAAE,gBAAgB;EACvC,IAAI,YAAY,EAAE,mBAAmB;EAErC,IAAI,EAAE,YAAY,OAChB,aAAa,KAAK,aAAa,WAAW,GAAG;OACxC,IAAI,EAAE,YAAY,SACvB,aAAa,KAAK,aAAa,aAAa,GAAG;EAGjD,OAAO;CACT;CAGA,MAAM,aAAa,iBAAiB;EAClC,MAAM,IAAI,SAAS;EACnB,MAAM,IAAI,SAAS;EAEnB,OAAO;GACL,MAAM;GACN,IAAI;GACJ,KAAK,EAAE;GACP,KAAK,EAAE;GACP,MAAM,EAAE;GACR,OAAO,EAAE,cAAc;GACvB,MAAM,EAAE;GACR,MAAM,EAAE;GACR,UAAU,EAAE,cAAc,EAAE;GAC5B,UAAU,EAAE,cAAc,EAAE,aAAa,KAAA,IAAY;GACrD,oBAAoB,YAAY;GAChC,mBAAmB,gBAAgB;GACnC,oBAAoB,EAAE,uBAAuB;GAC7C,gBAAgB,EAAE,mBAAmB;GACrC,kBAAkB,cAAc;GAChC;GACA,UAAU,MAAa;IACrB,MAAM,SAAS,EAAE;IACjB,EAAE,cAAc,WAAW,OAAO,KAAK,CAAC;GAC1C;GACA,WAAW,MAAa;IACtB,MAAM,SAAS,EAAE;IACjB,EAAE,cAAc,WAAW,OAAO,KAAK,CAAC;GAC1C;GACA,eAAe,CAEf;GACA,OAAO;IACL,UAAU;IACV,SAAS;IACT,OAAO;IACP,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;IACN,eAAe;IACf,QAAQ;IACR,kBAAkB;GACpB;EACF;CACF,CAAC;CAGD,MAAM,cAAc,iBAAiB;EACnC,OAAO;GACL,aAAa;GACb,KAAK;EACP;CACF,CAAC;CAGD,MAAM,aAAa,iBAAiB;EAClC,OAAO;GACL,IAAI;GACJ,eAAe;IACb,IAAI,OAAO,aAAa,aACtB,SAAS,eAAe,OAAO,CAAC,EAAE,MAAM;GAE5C;EACF;CACF,CAAC;CAED,OAAO;EACL,IAAI,aAAa;GACf,OAAO,WAAW;EACpB;EACA,IAAI,aAAa;GACf,OAAO,WAAW;EACpB;EACA,IAAI,aAAa;GACf,OAAO,WAAW;EACpB;EACA,IAAI,cAAc;GAChB,OAAO,YAAY;EACrB;EACA,IAAI,aAAa;GACf,OAAO,WAAW;EACpB;CACF;AACF;;;;;;;;;;;AC3aA,SAAgB,gBACd,OACA,OACA,SACe;CACf,MAAM,iBAAiB,MAAM;CAC7B,MAAM,iBAAiB,MAAM;CAC7B,MAAM,SAAS,UAAU;CACzB,MAAM,cAAc,OAAO,CAAC,CAAC,cAAc;CAC3C,MAAM,CAAC,cAAc,mBAAmB,aAA+B,IAAI;CAC3E,MAAM,CAAC,yBAAyB,8BAA8B,aAAa,KAAK;CAChF,MAAM,CAAC,iCAAiC,sCAAsC,aAAa,KAAK;CAGhG,MAAM,cAAcC,WAAS;CAC7B,MAAM,WAAWA,WAAS;CAC1B,MAAM,WAAWA,WAAS;CAE1B,MAAM,yBAAyB;CAC/B,MAAM,wBAAwB;EAC5B,MAAM,YAAY,SAAS,CAAC,CAAC;EAC7B,OAAO,YAAY,GAAG,UAAU,IAAI,iBAAiB,MAAM,iBAAiB;CAC9E;CACA,MAAM,uBAAuB;EAC3B,MAAM,YAAY,SAAS,CAAC,CAAC;EAC7B,OAAO,YAAY,GAAG,UAAU,IAAI,iBAAiB,MAAM,KAAA;CAC7D;CACA,MAAM,0BAA0B,YAA0B;EACxD,MAAM,QAAQ,SAAS,CAAC,CAAC,gBAAgB;EACzC,MAAM,MAAM,OAAO,CAAC,CAAC;EACrB,OAAO,GAAG,MAAM,eAAe,SAAS,GAAG,EAAE,IAAI,MAAM,mBAAmB,SAAS,GAAG;CACxF;CACA,MAAM,8BAA8B,YAA0B;EAC5D,MAAM,IAAI,SAAS;EACnB,MAAM,QAAQ,EAAE,gBAAgB;EAChC,MAAM,MAAM,OAAO,CAAC,CAAC;EACrB,IAAI,gCAAgC,KAAK,wBAAwB,GAC/D,OAAO,GAAG,uBAAuB,OAAO,EAAE,IAAI,MAAM,aAAa,GAAG;EAGtE,MAAM,eAAe,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE;EAC7D,OACE;GACE,uBAAuB,OAAO;GAC9B,uBAAuB,YAAY;GACnC,uBAAuB,EAAE,QAAQ;EACnC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,MAAM,aAAa,GAAG;CAE9C;CAEA,MAAM,mBAAmB,GAAU,SAAoB;EACrD,MAAM,SAAS,EAAE;EACjB,MAAM,YAAY,WAAW,OAAO,KAAK;EAEzC,mCAAmC,IAAI;EACvC,IAAI,SAAS,KACX,SAAS,CAAC,CAAC,UAAU,SAAS;OAE9B,SAAS,CAAC,CAAC,UAAU,SAAS;CAElC;CAGA,MAAM,wBAAwB,MAAiC;EAC7D,MAAM,OAAO,QAAQ;EACrB,IAAI,CAAC,MAAM,OAAO;EAElB,MAAM,OAAO,KAAK,sBAAsB;EACxC,IAAI,KAAK,UAAU,KAAK,KAAK,WAAW,GAAG,OAAO;EAElD,MAAM,YAAY,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,UAAU,KAAK,QAAQ,KAAK,KAAK,CAAC;EAI/E,OAAO;GAAE,GAHC,MAAM,IAAI,IAAI,YAAY;GAGxB,GAFF,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,UAAU,KAAK,OAAO,KAAK,MAAM,CAE1D;EAAE;CAChB;CAGA,MAAM,iBAAiB,MAAoB;EACzC,IAAI,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,YAAY;EAEpD,MAAM,MAAM,qBAAqB,CAAC;EAClC,IAAI,CAAC,KAAK;EAEV,SAAS,CAAC,CAAC,kBAAkB,IAAI,GAAG,IAAI,CAAC;EACzC,SAAS,CAAC,CAAC,YAAY,IAAI;EAG3B,EAAG,cAA8B,oBAAoB,EAAE,SAAS;CAClE;CAGA,MAAM,iBAAiB,MAAoB;EACzC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY;EAE5B,MAAM,MAAM,qBAAqB,CAAC;EAClC,IAAI,CAAC,KAAK;EAEV,SAAS,CAAC,CAAC,kBAAkB,IAAI,GAAG,IAAI,CAAC;CAC3C;CAGA,MAAM,eAAe,MAAoB;EACvC,IAAI,SAAS,CAAC,CAAC,YAAY;GACzB,SAAS,CAAC,CAAC,YAAY,KAAK;GAC5B,EAAG,cAA8B,wBAAwB,EAAE,SAAS;EACtE;CACF;CAEA,MAAM,aAAa,MAAqB;EACtC,IAAI,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,YAAY;EAEpD,MAAM,IAAI,SAAS;EACnB,MAAM,QACJ,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE;EAC7E,MAAM,QACJ,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE;EAC7E,IAAI,cAAyB;EAC7B,IAAI,UAAU;EAEd,QAAQ,EAAE,KAAV;GACE,KAAK;IACH,IAAI,MAAM,GACR,EAAE,WAAW,KAAK;SAElB,EAAE,WAAW,KAAK;IAEpB;GACF,KAAK;IACH,IAAI,MAAM,GACR,EAAE,WAAW,KAAK;SAElB,EAAE,WAAW,KAAK;IAEpB;GACF,KAAK;IACH,EAAE,WAAW,KAAK;IAClB,cAAc;IACd;GACF,KAAK;IACH,EAAE,WAAW,KAAK;IAClB,cAAc;IACd;GACF,KAAK;IACH,EAAE,WAAW,EAAE,gBAAgB;IAC/B,cAAc;IACd;GACF,KAAK;IACH,EAAE,WAAW,EAAE,gBAAgB;IAC/B,cAAc;IACd;GACF,KAAK;IACH,IAAI,MAAM,GACR,EAAE,WAAW,EAAE,gBAAgB;SAE/B,EAAE,WAAW,EAAE,gBAAgB;IAEjC;GACF,KAAK;IACH,IAAI,MAAM,GACR,EAAE,WAAW,EAAE,gBAAgB;SAE/B,EAAE,WAAW,EAAE,gBAAgB;IAEjC;GACF,SACE,UAAU;EACd;EAEA,IAAI,SAAS;GACX,gBAAgB,WAAW;GAC3B,2BAA2B,IAAI;GAC/B,EAAE,YAAY,IAAI;GAClB,EAAE,YAAY,KAAK;GACnB,EAAE,eAAe;GACjB,EAAE,gBAAgB;EACpB;CACF;CAEA,MAAM,cAAc,MAAkB;EACpC,MAAM,gBAAgB,EAAE;EACxB,MAAM,gBAAgB,EAAE;EACxB,IAAI,CAAC,iBAAiB,CAAC,cAAc,SAAS,aAAa,GAAG;GAC5D,2BAA2B,KAAK;GAChC,mCAAmC,KAAK;EAC1C;CACF;CAGA,MAAM,iBAAiB,iBAAiB;EACtC,MAAM,IAAI,SAAS;EACnB,MAAM,IAAI,SAAS;EAEnB,OAAO;GACL,IAAI,EAAE,MAAM;GACZ,MAAM;GACN,cAAc,eAAe;GAC7B,mBAAmB,EAAE;GACrB;GACA;GACA;GACA,OAAO;IACL,UAAU;IACV,gBAAgB;IAChB,uBAAuB;IACvB,GAAG,iBAAiB;GACtB;GACA,iBAAiB,EAAE,cAAc,EAAE,cAAc,KAAA;EACnD;CACF,CAAC;CAGD,SAAS,mBAA2C;EAClD,MAAM,IAAI,SAAS;EACnB,MAAM,QAAQ,EAAE;EAChB,MAAM,MAAM,EAAE;EACd,MAAM,MAAM,EAAE;EACd,MAAM,MAAM,EAAE;EACd,MAAM,SAAS,MAAM,gBAAgB,GAAG;EACxC,MAAM,MAAM,MAAM,IAAI,SAAS;EAE/B,MAAM,OAAO,UACX;GAAC;GAAG;GAAI;GAAK;GAAK;GAAK;GAAK;EAAG,CAAC,CAC7B,KAAK,MAAM,MAAM,iBAAiB,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAC5D,KAAK,IAAI;EAEd,MAAM,cAAoD;GACxD;GACA,aAAa,UACX,GAAG,MAAM,iBAAiB,cAAc,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE;GAC7D,iBAAiB;EACnB;EAEA,MAAM,cAAoD;GACxD;GACA,aAAa,UACX,GAAG,MAAM,iBAAiB,cAAc,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE;GAC7D,kBAAkB;EACpB;EAEA,QAAQ,MAAM,cAAc,GAA5B;GACE,KAAK,OAAO;IACV,MAAM,MAAM,WAAW,cAAc;IACrC,OAAO;KACL,YAAY;MACV,sBAAsB,IAAI,IAAI,IAAI,iBAAiB,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,IAAI,iBAAiB,KAAK,GAAG,CAAC,CAAC,SAAS,KAAK,EAAE;MAC9H,2BAA2B,IAAI,iBAAiB,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,IAAI,iBAAiB,KAAK,GAAG,CAAC,CAAC,SAAS,KAAK,EAAE;MAC3H,IAAI,iBAAiB,KAAK,MAAM,CAAC,CAAC,SAAS,KAAK;KAClD,CAAC,CAAC,KAAK,GAAG;KACV,yBAAyB;IAC3B;GACF;GACA,KAAK,OAAO;IACV,MAAM,WAAW,MAAM,iBAAiB;IACxC,MAAM,OAAO,WAAW,mBAAmB,CAAC,CAAC,iBAAiB,KAAK,MAAM;IACzE,MAAM,KAAK,SACR,QAAQ,MAAoB,MAAM,GAAG,CAAC,CACtC,KACE,MACC,sBAAsB,MAAM,MAAM,MAAM,MAAM,IAAI,YAAY,EAAE,GAAG,IAAI,KAAK,GAAG,EACnF,CAAC,CACA,QAAQ;IACX,IAAI,QAAQ,OACV,GAAG,KAAK,KAAK,SAAS,KAAK,CAAC;IAG9B,OAAO,EACL,YAAY,GAAG,KAAK,IAAI,EAC1B;GACF;GACA,KAAK,OAAO;IACV,MAAM,WAAW,MAAM,iBAAiB;IACxC,MAAM,OAAO,WAAW,oBAAoB,CAAC,CAAC,iBAAiB,KAAK,MAAM;IAC1E,MAAM,KAAK,SACR,QAAQ,MAAoB,MAAM,GAAG,CAAC,CACtC,KACE,MACC,sBAAsB,MAAM,MAAM,MAAM,MAAM,IAAI,YAAY,EAAE,GAAG,IAAI,KAAK,GAAG,EACnF,CAAC,CACA,QAAQ;IACX,IAAI,QAAQ,OACV,GAAG,KAAK,KAAK,SAAS,KAAK,CAAC;IAG9B,OAAO,EACL,YAAY,GAAG,KAAK,IAAI,EAC1B;GACF;GACA,SACE,OAAO,CAAC;EACZ;CACF;CAGA,MAAM,gBAAgB,iBAAiB;EAErC,OAAO;GACL,MAAM;GACN,OAAO;IACL,OAAO;IACP,QAAQ;IACR,uBAAuB;IACvB,GAPmB,iBAOH;GAClB;EACF;CACF,CAAC;CAGD,MAAM,aAAa,iBAAiB;EAClC,MAAM,IAAI,SAAS;EACnB,MAAM,IAAI,SAAS;EACnB,MAAM,MAAM,EAAE,iBAAiB;EAG/B,OAAO;GACL,MAAM;GACN,OAAO;IACL,UAAU;IACV,MAAM,IANA,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,KAMnB,IAAI;IACjB,KAAK,GAAG,IAAI,IAAI,IAAI;IACpB,WAAW;IACX,gBAAgB;IAChB,uBAAuB;GACzB;GACA;GACA;GACA,iBAAiB,EAAE,cAAc,KAAA;GACjC,iBAAiB,EAAE,cAAc,EAAE,cAAc,KAAA;EACnD;CACF,CAAC;CAGD,MAAM,cAAc,iBAAiB;EACnC,MAAM,IAAI,SAAS;EACnB,MAAM,IAAI,SAAS;EACnB,MAAM,SAAS,EAAE,MAAM,gBAAgB,EAAE,QAAQ;EAEjD,OAAO;GACL,MAAM;GACN,IAAI,EAAE,MAAM;GACZ,cAAc,gBAAgB;GAC9B,wBAAwB;GACxB,kBAAkB,2BAA2B,EAAE,QAAQ;GACvD,oBAAoB;GACpB,oBAAoB,EAAE;GACtB,gBAAgB,EAAE;GAClB,KAAK,OAAO;GACZ,KAAK,OAAO;GACZ,MAAM,OAAO;GACb,OAAO,EAAE,UAAU;GACnB,MAAM,EAAE;GACR,MAAM,EAAE;GACR,UAAU,EAAE,cAAc,EAAE;GAC5B,eACE,CAAC,aAAa,KAAK,aAAa,MAAM,OAAO,wBAAwB,IACjE,KAAA,IACC;GACP,eAAe,gBAAgB,GAAG;GAClC;GACA,UAAU,MAAa,gBAAgB,GAAG,GAAG;GAC7C,WAAW,MAAa,gBAAgB,GAAG,GAAG;GAC9C,cAAc;IACZ,IAAI,EAAE,YACJ,EAAE,YAAY,KAAK;GAEvB;GACA,UAAU,CAAC,aAAa,KAAK,aAAa,MAAM,MAAM,KAAA,IAAY;GAClE,OAAO;IACL,UAAU;IACV,OAAO;IACP,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;IACN,eAAe;IACf,QAAQ;GACV;EACF;CACF,CAAC;CAGD,MAAM,cAAc,iBAAiB;EACnC,MAAM,IAAI,SAAS;EACnB,MAAM,IAAI,SAAS;EACnB,MAAM,SAAS,EAAE,MAAM,gBAAgB,EAAE,QAAQ;EAEjD,OAAO;GACL,MAAM;GACN,IAAI,EAAE,MAAM;GACZ,cAAc,gBAAgB;GAC9B,wBAAwB;GACxB,kBAAkB,2BAA2B,EAAE,QAAQ;GACvD,oBAAoB;GACpB,oBAAoB,EAAE;GACtB,gBAAgB,EAAE;GAClB,KAAK,OAAO;GACZ,KAAK,OAAO;GACZ,MAAM,OAAO;GACb,OAAO,EAAE,UAAU;GACnB,MAAM,EAAE;GACR,MAAM,EAAE;GACR,UAAU,EAAE,cAAc,EAAE;GAC5B,eACE,aAAa,MAAM,OAAO,wBAAwB,IAAI,KAAA,IAAa;GACrE,eAAe,gBAAgB,GAAG;GAClC;GACA,UAAU,MAAa,gBAAgB,GAAG,GAAG;GAC7C,WAAW,MAAa,gBAAgB,GAAG,GAAG;GAC9C,UAAU,aAAa,MAAM,MAAM,KAAA,IAAY;GAC/C,OAAO;IACL,UAAU;IACV,OAAO;IACP,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;IACN,eAAe;IACf,QAAQ;GACV;EACF;CACF,CAAC;CAED,OAAO;EACL,IAAI,iBAAiB;GACnB,OAAO,eAAe;EACxB;EACA,IAAI,gBAAgB;GAClB,OAAO,cAAc;EACvB;EACA,IAAI,aAAa;GACf,OAAO,WAAW;EACpB;EACA,IAAI,cAAc;GAChB,OAAO,YAAY;EACrB;EACA,IAAI,cAAc;GAChB,OAAO,YAAY;EACrB;CACF;AACF;;;;;;;;;;;ACzbA,SAAgB,iBACd,OACA,OACA,UACgB;CAChB,MAAM,iBAAiB,MAAM;CAC7B,MAAM,iBAAiB,MAAM;CAC7B,MAAM,SAAS,UAAU;CAGzB,MAAM,UAAUC,WAAS;CACzB,IAAI;CACJ,IAAI;CACJ,IAAI,cAAkC;CAEtC,MAAM,oBAAoB,SAAS,CAAC,CAAC,eAAe;CACpD,MAAM,oBAAoB,SAAS,CAAC,CAAC,eAAe;CACpD,MAAM,qBAAqB,YAAY,IAAI,YAAY,KAAK;CAE5D,MAAM,iBAAiB,SAAS,CAAC,EAAE,cAAgC,uBAAqB,KAAK;CAC7F,MAAM,mBAAmB;EACvB,sBAAsB,SAAS,CAAC;EAChC,qBAAqB,sBAAsB,SAAS,CAAC,CAAC;CACxD;CAEA,MAAM,qBAAqB,SAAiB,SAAiB,YAAiC;EAC5F,MAAM,QAAQ,WAAW,eAAe,SAAS;EACjD,IAAI,CAAC,OAAO,OAAO;EAEnB,MAAM,OAAO,MAAM,sBAAsB;EACzC,MAAM,UAAU,KAAK,OAAO,KAAK,QAAQ;EACzC,MAAM,UAAU,KAAK,MAAM,KAAK,SAAS;EAEzC,OAAO;GACL,GAAG,UAAU;GACb,GAAG,UAAU;EACf;CACF;CAEA,MAAM,mBACJ,SACA,SACA,kBAAkB,OAClB,YACG;EACH,IAAI,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,YAAY,OAAO;EAE3D,MAAM,QAAQ,kBAAkB,SAAS,SAAS,OAAO;EACzD,IAAI,CAAC,OAAO,OAAO;EAEnB,MAAM,WAAW,KAAK,KAAK,MAAM,KAAK,IAAI,MAAM,KAAK,CAAC;EACtD,IAAI,oBAAoB,YAAY,YAAY,KAAK,YAAY,YAAY,IAC3E,OAAO;EAGT,SAAS,CAAC,CAAC,gBAAgB,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;EAC1D,OAAO;CACT;CAEA,MAAM,gBAAgB;EACpB,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY;EAC5B,SAAS,CAAC,CAAC,YAAY,KAAK;EAC5B,cAAc;EACd,WAAW;CACb;CAEA,MAAM,oCAAoC;EACxC,IAAI,OAAO,WAAW,aAAa;EACnC,qBAAqB;EAErB,MAAM,iBAAiB,MAAoB;GACzC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY;GAC5B,gBAAgB,EAAE,SAAS,EAAE,OAAO;EACtC;EACA,MAAM,qBAAqB;GACzB,qBAAqB;GACrB,qBAAqB,KAAA;GACrB,QAAQ;EACV;EAEA,OAAO,iBAAiB,eAAe,aAAa;EACpD,OAAO,iBAAiB,aAAa,YAAY;EACjD,OAAO,iBAAiB,iBAAiB,YAAY;EAErD,2BAA2B;GACzB,OAAO,oBAAoB,eAAe,aAAa;GACvD,OAAO,oBAAoB,aAAa,YAAY;GACpD,OAAO,oBAAoB,iBAAiB,YAAY;EAC1D;CACF;CAEA,MAAM,kCAAkC;EACtC,IAAI,OAAO,WAAW,aAAa;EACnC,mBAAmB;EAEnB,MAAM,eAAe,MAAkB;GACrC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY;GAC5B,gBAAgB,EAAE,SAAS,EAAE,OAAO;EACtC;EACA,MAAM,mBAAmB;GACvB,mBAAmB;GACnB,mBAAmB,KAAA;GACnB,QAAQ;EACV;EAEA,OAAO,iBAAiB,aAAa,WAAW;EAChD,OAAO,iBAAiB,WAAW,UAAU;EAE7C,yBAAyB;GACvB,OAAO,oBAAoB,aAAa,WAAW;GACnD,OAAO,oBAAoB,WAAW,UAAU;EAClD;CACF;CAEA,gBAAgB;EACd,qBAAqB;EACrB,mBAAmB;CACrB,CAAC;CAED,MAAM,sBAAsB,MAAoB;EAC9C,cAAc,EAAE;EAChB,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,SAAS,MAAM,WAAW,GAAG;GAC7D,cAAc;GACd;EACF;EACA,WAAW;EACX,SAAS,CAAC,CAAC,YAAY,IAAI;EAC3B,4BAA4B;EAC5B,EAAE,eAAe;CACnB;CAEA,MAAM,oBAAoB,MAAkB;EAC1C,cAAc,EAAE;EAChB,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,SAAS,MAAM,WAAW,GAAG;GAC7D,cAAc;GACd;EACF;EACA,WAAW;EACX,SAAS,CAAC,CAAC,YAAY,IAAI;EAC3B,0BAA0B;EAC1B,EAAE,eAAe;CACnB;CAEA,MAAM,sBAAsB,MAAoB;EAC9C,IAAI,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,YAAY;EACpD,WAAW;EACX,SAAS,CAAC,CAAC,YAAY,IAAI;EAC3B,4BAA4B;EAC5B,EAAE,eAAe;EACjB,EAAE,gBAAgB;CACpB;CAEA,MAAM,oBAAoB,MAAkB;EAC1C,IAAI,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,YAAY;EACpD,WAAW;EACX,SAAS,CAAC,CAAC,YAAY,IAAI;EAC3B,0BAA0B;EAC1B,EAAE,eAAe;EACjB,EAAE,gBAAgB;CACpB;CAGA,MAAM,aAAa,MAAqB;EACtC,IAAI,EAAE,kBAAkB;EACxB,IAAI,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,YAAY;EAEpD,MAAM,IAAI,SAAS;EACnB,IAAI,UAAU;EAEd,QAAQ,EAAE,KAAV;GACE,KAAK;GACL,KAAK;IACH,EAAE,UAAU;IACZ;GACF,KAAK;GACL,KAAK;IACH,EAAE,UAAU;IACZ;GACF,KAAK;IACH,EAAE,UAAU,EAAE,QAAQ;IACtB;GACF,KAAK;IACH,EAAE,UAAU,EAAE,QAAQ;IACtB;GACF,KAAK;IACH,EAAE,OAAO,CAAC;IACV;GACF,KAAK;IACH,EAAE,OAAO,GAAG;IACZ;GACF,SACE,UAAU;EACd;EAEA,IAAI,SAAS;GACX,EAAE,YAAY,IAAI;GAClB,EAAE,YAAY,KAAK;GACnB,EAAE,eAAe;GACjB,EAAE,gBAAgB;EACpB;CACF;CAGA,MAAM,gBAAgB;CAEtB,MAAM,iBAAiB;EACrB,MAAM,QAAQ,YAAY;EAC1B,MAAM,QAAQ,YAAY;EAC1B,MAAM,cAAc,WAClB;GACE,KAAK,MAAM,IAAI,MAAM,KAAK,CAAC,OAAO;GAClC,KAAK,OAAO,IAAI,OAAO,aAAa,SAAS,EAAE;GAC/C,KAAK,OAAO,IAAI,OAAO,YAAY,CAAC,SAAS,EAAE;EACjD,CAAC,CAAC,KAAK,GAAG;EACZ,OAAO,kBAAkB,WAAW,KAAK,EAAE,GAAG,WAAW,KAAK,EAAE;CAClE;CAGA,MAAM,aAAa,iBAAiB;EAClC,MAAM,IAAI,SAAS;EACnB,MAAM,IAAI,SAAS;EAEnB,OAAO;GACL,eAAe;GACf,aAAa;GACb,OAAO;IACL,UAAU;IACV,gBAAgB;IAChB,OAAO,GAAG,YAAY,IAAI,EAAE;IAC5B,QAAQ,GAAG,YAAY,IAAI,EAAE;IAC7B,YAAY;IACZ,aAAa,SAAS;IACtB,uBAAuB;GACzB;GACA,iBAAiB,EAAE,cAAc,EAAE,cAAc,KAAA;EACnD;CACF,CAAC;CAGD,MAAM,aAAa,iBAAiB;EAClC,MAAM,IAAI,SAAS;EACnB,MAAM,IAAI,SAAS;EACnB,MAAM,WAAW,EAAE,iBAAiB,YAAY,CAAC;EAEjD,OAAO;GACL,eAAe;GACf,aAAa;GACb;GACA,OAAO;IACL,UAAU;IACV,MAAM,GAAG,YAAY,IAAI,SAAS,EAAE;IACpC,KAAK,GAAG,YAAY,IAAI,SAAS,EAAE;IACnC,WAAW;IACX,gBAAgB;IAChB,uBAAuB;GACzB;GACA,iBAAiB,EAAE,cAAc,KAAA;GACjC,iBAAiB,EAAE,cAAc,EAAE,cAAc,KAAA;EACnD;CACF,CAAC;CAGD,MAAM,aAAa,iBAAiB;EAClC,MAAM,IAAI,SAAS;EACnB,MAAM,IAAI,SAAS;EAEnB,OAAO;GACL,MAAM;GACN,IAAI,EAAE,MAAM;GACZ,KAAK;GACL,KAAK;GACL,MAAM,EAAE;GACR,OAAO,EAAE,OAAO;GAChB,MAAM,EAAE;GACR,MAAM,EAAE;GACR,UAAU,EAAE,cAAc,EAAE;GAC5B,UAAU,EAAE,cAAc,EAAE,aAAa,KAAA,IAAY;GACrD,cACE,EAAE,kBACD,EAAE,qBAAqB,KAAA,IAAY,EAAE,MAAM,eAAe,OAAO,OAAO,CAAC,CAAC,MAAM;GACnF,mBAAmB,EAAE;GACrB,oBAAoB,EAAE;GACtB,gBAAgB,EAAE;GAClB,qBAAqB,EAAE;GACvB,kBAAkB,GAAG,EAAE,MAAM,mBAAmB,OAAO,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,OAAO,CAAC,CAAC,MAAM;GAC9G;GACA,UAAU,MAAa;IACrB,MAAM,SAAS,EAAE;IACjB,EAAE,OAAO,WAAW,OAAO,KAAK,CAAC;GACnC;GACA,WAAW,MAAa;IACtB,MAAM,SAAS,EAAE;IACjB,EAAE,OAAO,WAAW,OAAO,KAAK,CAAC;GACnC;GACA,cAAc;IACZ,IAAI,EAAE,YACJ,EAAE,YAAY,KAAK;GAEvB;GACA,OAAO;IACL,UAAU;IACV,OAAO;IACP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;IACN,eAAe;IACf,QAAQ;IACR,kBAAkB;GACpB;EACF;CACF,CAAC;CAED,OAAO;EACL,IAAI,aAAa;GACf,OAAO,WAAW;EACpB;EACA,IAAI,aAAa;GACf,OAAO,WAAW;EACpB;EACA,IAAI,aAAa;GACf,OAAO,WAAW;EACpB;CACF;AACF;;;;;;;;;;;ACxUA,SAAgB,iBACd,OACA,OACA,UACgB;CAChB,MAAM,iBAAiB,MAAM;CAC7B,MAAM,iBAAiB,MAAM;CAE7B,MAAM,mBAAmBC,WAAS;CAClC,MAAM,UAAUA,WAAS;CACzB,MAAM,gBAAgBA,WAAS;CAC/B,MAAM,iBAAiBA,WAAS;CAEhC,IAAI,eAAe;CACnB,mBAAmB;EACjB,MAAM,QAAQ,SAAS;EACvB,IAAI,CAAC,gBAAgB,SAAS,CAAC,CAAC,aAAa,OAAO;GAClD,eAAe;GACf,MAAM,MAAM;EACd;CACF,CAAC;CAED,MAAM,mBAAmB,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC;CAC7D,MAAM,mBAAmB,SAAS,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC;CAC7D,MAAM,kBAAkB,SAAS,CAAC,CAAC,aAAa,SAAS,CAAC,CAAC;CAC3D,MAAM,2BAA2B,SAAS,CAAC,CAAC,sBAAsB;CAElE,MAAM,aAAa,MAAqB;EACtC,MAAM,IAAI,SAAS;EAEnB,IAAI,WAAW,KAAK,WAAW,GAC7B;EAGF,IAAI,UAAU;EAEd,QAAQ,EAAE,KAAV;GACE,KAAK;IACH,EAAE,UAAU;IACZ;GACF,KAAK;IACH,EAAE,UAAU;IACZ;GACF,KAAK;IACH,EAAE,eAAe;IACjB;GACF,KAAK;IACH,EAAE,eAAe;IACjB;GACF,KAAK;IACH,EAAE,eAAe;IACjB;GACF,KAAK;IACH,EAAE,eAAe;IACjB;GACF,SACE,UAAU;EACd;EAEA,IAAI,SACF,EAAE,eAAe;CAErB;CAEA,MAAM,WAAW,MAAkB;EACjC,MAAM,IAAI,SAAS;EACnB,MAAM,IAAI,SAAS;EAEnB,IACE,EAAE,mBACF,WAAW,KACX,WAAW,KACX,SAAS,kBAAkB,SAAS,GAEpC;EAGF,IAAI,EAAE,SAAS,GACb,EAAE,UAAU;OACP,IAAI,EAAE,SAAS,GACpB,EAAE,UAAU;OAEZ;EAGF,EAAE,eAAe;CACnB;CAEA,MAAM,aAAa,iBAAiB;EAClC,OAAO;GACL,IAAI;GACJ,KAAK,SAAS,CAAC,CAAC,MAAM;EACxB;CACF,CAAC;CAED,MAAM,mBAAmB,kBAAkB,EACzC,IAAI,cACN,EAAE;CAEF,MAAM,oBAAoB,kBAAkB,EAC1C,IAAI,SAAS,CAAC,CAAC,wBAAwB,eACzC,EAAE;CAEF,MAAM,aAAa,iBAAiB;EAClC,MAAM,IAAI,SAAS;EACnB,MAAM,IAAI,SAAS;EACnB,MAAM,eACJ,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,eAAe,EAAE,SAAS,OAAO,IAAI,KAAA;EAChF,MAAM,WAAW,EAAE,cAAc,EAAE;EACnC,MAAM,UAAU,UAAU;EAC1B,MAAM,cAAc,EAAE;EAEtB,OAAO;GACL,IAAI,EAAE,MAAM;GACZ,MAAM;GACN,OAAO,EAAE;GACT,MAAM,EAAE,UAAU,KAAA,IAAY,EAAE;GAChC,MAAM,EAAE,UAAU,KAAA,IAAY,EAAE;GAChC,aAAa,EAAE;GACf,UAAU,WAAW;GACrB,UAAU,WAAW;GACrB,UAAU,mBAAmB,MAAM,WAAW,YAAY,KAAA,IAAY,KAAA;GACtE,UAAU,EAAE,sBAAsB,KAAK,KAAA;GACvC,cAAc;GACd,aAAa;GACb,YAAY;GACZ,cAAc,EAAE,iBAAiB;GACjC,mBAAmB,EAAE;GACrB,oBAAoB;GACpB,gBAAgB,EAAE;GAClB,qBAAqB,UAAW,EAAE,wBAAwB,iBAAkB,KAAA;GAC5E,gBAAgB,WAAW,KAAA;GAC3B,iBAAiB,mBAAmB,MAAM,UAAU,WAAW,OAAO,KAAA;GACtE,MAAM,EAAE,UAAU,KAAA,IAAa;GAC/B,iBAAiB,KAAA;GACjB,iBAAiB,KAAA;GACjB,iBAAiB,KAAA;GACjB,kBAAkB,KAAA;GAClB,UAAU,MAAkB;IAC1B,MAAM,SAAS,EAAE;IACjB,IAAI,EAAE,SAAS,OAAO,KAAK,GACzB,EAAE,cAAc,OAAO,KAAK;SAE5B,OAAO,QAAQ,EAAE;GAErB;GACA,gBAAgB;IACd,EAAE,OAAO;GACX;GACA,cAAc;IACZ,EAAE,OAAO;GACX;GACA;GACA;EACF;CACF,CAAC;CAED,OAAO;EACL,IAAI,aAAa;GACf,OAAO,WAAW;EACpB;EACA,IAAI,aAAa;GACf,OAAO,WAAW;EACpB;EACA,IAAI,mBAAmB;GACrB,OAAO,iBAAiB;EAC1B;EACA,IAAI,oBAAoB;GACtB,OAAO,kBAAkB;EAC3B;CACF;AACF;;;;;;;;;;;ACzKA,SAAgB,kBAAkB,OAA0D;CAC1F,MAAM,iBAAiB,MAAM;CAC7B,MAAM,SAAS,UAAU;CACzB,MAAM,cAAcC,WAAS;CAC7B,MAAM,WAAW,SAAS,CAAC,CAAC,MAAM;CAElC,MAAM,QAAQ,iBAAiB,eAAe,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC;CAE1E,MAAM,YAAY,iBAAiB;EACjC,MAAM,IAAI,SAAS;EACnB,IAAI,EAAE,WAAW,OAAO,EAAE;EAE1B,MAAM,gBAAgB,MAAM;EAC5B,IAAI,cAAc,gBAAgB,OAAO,MAAM,GAC7C,OAAO;EAGT,OAAO,cAAc,aAAa,OAAO,CAAC,CAAC,MAAM;CACnD,CAAC;CAED,MAAM,cAAc,iBAAiB;EACnC,MAAM,IAAI,SAAS;EACnB,MAAM,WAAW,eAAe,GAA8B,EAAE,WAAW,KAAK,CAAC;EACjF,MAAM,YAAY,CAAC,UAAU,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,IAAI;EAEhF,OAAO;GACL,GAAG;GACH,IAAI,GAAG;GACP,MAAM,EAAE;GACR,MAAM;GACN,wBAAwB;GACxB,cAAc;GACd,mBAAmB,EAAE,qBAAqB,GAAG,GAAG,EAAE,GAAG,EAAE,uBAAuB,KAAA;GAC9E,OAAO;IACL,oBAAoB,MAAM,CAAC,CAAC,SAAS,KAAK;IAC1C,uBAAuB;GACzB;EACF;CACF,CAAC;CAED,OAAO;EACL,IAAI,cAAc;GAChB,OAAO,YAAY;EACrB;EACA,IAAI,QAAQ;GACV,OAAO,MAAM;EACf;CACF;AACF"}
1
+ {"version":3,"file":"color.js","names":["createId","createId","createId","createId","createId"],"sources":["../../src/color/createColorSlider.ts","../../src/color/intl/index.ts","../../src/color/createColorArea.ts","../../src/color/createColorWheel.ts","../../src/color/createColorField.ts","../../src/color/createColorSwatch.ts"],"sourcesContent":["/**\n * createColorSlider hook.\n *\n * Provides ARIA attributes and keyboard handling for a color slider.\n */\n\nimport { createMemo, onCleanup, type Accessor } from \"solid-js\";\nimport type { ColorSliderState } from \"@proyecto-viviana/solid-stately\";\nimport { useLocale } from \"../i18n\";\nimport { createId } from \"../ssr\";\nimport { focusWithoutScrolling } from \"../utils/focus\";\nimport type { AriaColorSliderOptions, ColorSliderAria } from \"./types\";\n\n/**\n * Creates ARIA props for a color slider.\n */\nexport function createColorSlider(\n props: Accessor<AriaColorSliderOptions>,\n state: Accessor<ColorSliderState>,\n trackRef: Accessor<HTMLDivElement | null>,\n inputRef?: Accessor<HTMLInputElement | null>,\n): ColorSliderAria {\n const getProps = () => props();\n const getState = () => state();\n const locale = useLocale();\n const isRTL = () => locale().direction === \"rtl\";\n\n // Generate IDs\n const trackId = createId();\n const inputId = createId();\n const labelId = createId();\n let cleanupPointerDrag: (() => void) | undefined;\n let cleanupMouseDrag: (() => void) | undefined;\n\n const getInput = () =>\n inputRef?.() ?? trackRef()?.querySelector<HTMLInputElement>('input[type=\"range\"]') ?? null;\n const focusInput = () => {\n focusWithoutScrolling(getInput());\n queueMicrotask(() => focusWithoutScrolling(getInput()));\n };\n\n // Get channel name for ARIA label\n const channelName = createMemo(() => {\n const p = getProps();\n if (p.channelName) return p.channelName;\n const s = getState();\n return s.value.getChannelName(s.channel, locale().locale);\n });\n\n const orientation = () => getProps().orientation ?? \"horizontal\";\n const hasVisibleLabel = () => getProps().label != null;\n const trackElementId = () => getProps().id ?? trackId;\n const trackLabelledBy = () => {\n const p = getProps();\n return p[\"aria-labelledby\"] ?? (hasVisibleLabel() ? labelId : undefined);\n };\n const inputLabelledBy = () => (hasVisibleLabel() ? labelId : trackElementId());\n const trackAriaLabel = () => {\n const p = getProps();\n if (p[\"aria-label\"]) return p[\"aria-label\"];\n if (p[\"aria-labelledby\"] || hasVisibleLabel()) return undefined;\n return channelName();\n };\n\n const updateFromPointer = (clientX: number, clientY: number) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n\n const track = trackRef();\n if (!track) return;\n\n const rect = track.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return;\n\n let percent: number;\n if (orientation() === \"vertical\") {\n percent = 1 - (clientY - rect.top) / rect.height;\n } else {\n const physicalPercent = (clientX - rect.left) / rect.width;\n percent = isRTL() ? 1 - physicalPercent : physicalPercent;\n }\n\n getState().setThumbPercent(Math.max(0, Math.min(1, percent)));\n };\n\n const endDrag = (target: EventTarget | null, pointerId?: number) => {\n const s = getState();\n if (!s.isDragging) return;\n s.setDragging(false);\n focusInput();\n if (pointerId == null) return;\n try {\n (target as HTMLElement | null)?.releasePointerCapture?.(pointerId);\n } catch {\n // Some synthetic pointer sequences do not have active capture by the time\n // drag end runs. React Aria treats capture as best-effort as well.\n }\n };\n\n const installPointerDragListeners = () => {\n if (typeof window === \"undefined\") return;\n cleanupPointerDrag?.();\n\n const onPointerMove = (e: PointerEvent) => {\n if (!getState().isDragging) return;\n updateFromPointer(e.clientX, e.clientY);\n };\n const onPointerEnd = (e: PointerEvent) => {\n cleanupPointerDrag?.();\n cleanupPointerDrag = undefined;\n endDrag(trackRef(), e.pointerId);\n };\n\n window.addEventListener(\"pointermove\", onPointerMove);\n window.addEventListener(\"pointerup\", onPointerEnd);\n window.addEventListener(\"pointercancel\", onPointerEnd);\n\n cleanupPointerDrag = () => {\n window.removeEventListener(\"pointermove\", onPointerMove);\n window.removeEventListener(\"pointerup\", onPointerEnd);\n window.removeEventListener(\"pointercancel\", onPointerEnd);\n };\n };\n\n const installMouseDragListeners = () => {\n if (typeof window === \"undefined\") return;\n cleanupMouseDrag?.();\n\n const onMouseMove = (e: MouseEvent) => {\n if (!getState().isDragging) return;\n updateFromPointer(e.clientX, e.clientY);\n };\n const onMouseEnd = () => {\n cleanupMouseDrag?.();\n cleanupMouseDrag = undefined;\n endDrag(trackRef());\n };\n\n window.addEventListener(\"mousemove\", onMouseMove);\n window.addEventListener(\"mouseup\", onMouseEnd);\n\n cleanupMouseDrag = () => {\n window.removeEventListener(\"mousemove\", onMouseMove);\n window.removeEventListener(\"mouseup\", onMouseEnd);\n };\n };\n\n onCleanup(() => {\n cleanupPointerDrag?.();\n cleanupMouseDrag?.();\n });\n\n // Handle pointer interaction on the track\n const onTrackPointerDown = (e: PointerEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n updateFromPointer(e.clientX, e.clientY);\n focusInput();\n getState().setDragging(true);\n try {\n (e.currentTarget as HTMLElement).setPointerCapture?.(e.pointerId);\n } catch {\n // Keep drag behavior working in environments where pointer capture is not\n // active for this event, including Playwright's synthetic mouse pointer.\n }\n installPointerDragListeners();\n e.preventDefault();\n };\n\n const onTrackPointerMove = (e: PointerEvent) => {\n if (!getState().isDragging) return;\n updateFromPointer(e.clientX, e.clientY);\n };\n\n const onTrackPointerUp = (e: PointerEvent) => {\n cleanupPointerDrag?.();\n cleanupPointerDrag = undefined;\n endDrag(e.currentTarget, e.pointerId);\n };\n\n const onTrackPointerCancel = (e: PointerEvent) => {\n cleanupPointerDrag?.();\n cleanupPointerDrag = undefined;\n endDrag(e.currentTarget, e.pointerId);\n };\n\n const onTrackMouseDown = (e: MouseEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n updateFromPointer(e.clientX, e.clientY);\n getState().setDragging(true);\n installMouseDragListeners();\n e.preventDefault();\n };\n\n const onTrackMouseMove = (e: MouseEvent) => {\n if (!getState().isDragging) return;\n updateFromPointer(e.clientX, e.clientY);\n };\n\n const onTrackMouseUp = (e: MouseEvent) => {\n cleanupMouseDrag?.();\n cleanupMouseDrag = undefined;\n endDrag(e.currentTarget);\n };\n\n // Handle keyboard\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.defaultPrevented) return;\n if (getProps().isDisabled || getState().isDisabled) return;\n\n const s = getState();\n let handled = true;\n\n switch (e.key) {\n case \"ArrowUp\":\n s.incrementThumb();\n break;\n case \"ArrowDown\":\n s.decrementThumb();\n break;\n case \"ArrowRight\":\n if (orientation() === \"horizontal\" && isRTL()) {\n s.decrementThumb();\n } else {\n s.incrementThumb();\n }\n break;\n case \"ArrowLeft\":\n if (orientation() === \"horizontal\" && isRTL()) {\n s.incrementThumb();\n } else {\n s.decrementThumb();\n }\n break;\n case \"PageUp\":\n s.incrementThumb(s.pageSize);\n break;\n case \"PageDown\":\n s.decrementThumb(s.pageSize);\n break;\n case \"Home\":\n s.setThumbValue(s.minValue);\n break;\n case \"End\":\n s.setThumbValue(s.maxValue);\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n // Generate gradient background for the slider track\n const generateBackground = () => {\n const s = getState();\n const value = s.getDisplayColor();\n const channel = s.channel;\n const to = orientation() === \"vertical\" ? \"top\" : isRTL() ? \"left\" : \"right\";\n\n switch (channel) {\n case \"hue\": {\n const stops = [0, 60, 120, 180, 240, 300, 360]\n .map((hue) => value.withChannelValue(\"hue\", hue).toString(\"css\"))\n .join(\", \");\n return `linear-gradient(to ${to}, ${stops})`;\n }\n case \"lightness\": {\n const min = s.minValue;\n const max = s.maxValue;\n const start = value.withChannelValue(channel, min).toString(\"css\");\n const middle = value.withChannelValue(channel, (max - min) / 2).toString(\"css\");\n const end = value.withChannelValue(channel, max).toString(\"css\");\n return `linear-gradient(to ${to}, ${start}, ${middle}, ${end})`;\n }\n case \"saturation\":\n case \"brightness\":\n case \"red\":\n case \"green\":\n case \"blue\":\n case \"alpha\": {\n const start = value.withChannelValue(channel, s.minValue).toString(\"css\");\n const end = value.withChannelValue(channel, s.maxValue).toString(\"css\");\n return `linear-gradient(to ${to}, ${start}, ${end})`;\n }\n default:\n return undefined;\n }\n };\n\n // Track props\n const trackProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const bg = generateBackground();\n return {\n id: trackElementId(),\n role: \"group\" as const,\n \"aria-label\": trackAriaLabel(),\n \"aria-labelledby\": trackLabelledBy(),\n onPointerDown: onTrackPointerDown,\n onPointerMove: onTrackPointerMove,\n onPointerUp: onTrackPointerUp,\n onPointerCancel: onTrackPointerCancel,\n onMouseDown: onTrackMouseDown,\n onMouseMove: onTrackMouseMove,\n onMouseUp: onTrackMouseUp,\n style: {\n position: \"relative\" as const,\n \"touch-action\": \"none\",\n \"forced-color-adjust\": \"none\" as const,\n ...(bg ? { background: bg } : {}),\n },\n \"data-disabled\": s.isDisabled || undefined,\n };\n });\n\n // Thumb props\n const thumbProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const percent = s.getThumbPercent();\n const x = orientation() === \"horizontal\" ? (isRTL() ? 1 - percent : percent) : 0.5;\n const y = orientation() === \"horizontal\" ? 0.5 : 1 - percent;\n\n return {\n onKeyDown,\n style: {\n position: \"absolute\" as const,\n left: `${x * 100}%`,\n top: `${y * 100}%`,\n transform: \"translate(-50%, -50%)\",\n \"touch-action\": \"none\",\n \"forced-color-adjust\": \"none\" as const,\n },\n \"data-dragging\": s.isDragging || undefined,\n \"data-disabled\": s.isDisabled || p.isDisabled || undefined,\n };\n });\n\n const ariaValueText = () => {\n const s = getState();\n const loc = locale().locale;\n const displayColor = s.getDisplayColor();\n let valueText = s.getThumbValueLabel();\n\n if (s.channel === \"hue\") {\n valueText += `, ${displayColor.getHueName(loc)}`;\n } else if (s.channel !== \"alpha\") {\n valueText += `, ${displayColor.getColorName(loc)}`;\n }\n\n return valueText;\n };\n\n // Input props (hidden, for accessibility)\n const inputProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n\n return {\n type: \"range\",\n id: inputId,\n min: s.minValue,\n max: s.maxValue,\n step: s.step,\n value: s.getThumbValue(),\n name: p.name,\n form: p.form,\n disabled: s.isDisabled || p.isDisabled,\n tabIndex: s.isDisabled || p.isDisabled ? undefined : 0,\n \"aria-orientation\": orientation(),\n \"aria-labelledby\": inputLabelledBy(),\n \"aria-describedby\": p[\"aria-describedby\"] ?? \"\",\n \"aria-details\": p[\"aria-details\"] ?? \"\",\n \"aria-valuetext\": ariaValueText(),\n onKeyDown,\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n s.setThumbValue(parseFloat(target.value));\n },\n onChange: (e: Event) => {\n const target = e.target as HTMLInputElement;\n s.setThumbValue(parseFloat(target.value));\n },\n onFocus: () => {\n // Focus handling\n },\n style: {\n position: \"absolute\" as const,\n opacity: \"0.0001\",\n width: \"100%\",\n height: \"100%\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n \"white-space\": \"nowrap\",\n border: \"0\",\n \"pointer-events\": \"none\" as const,\n },\n };\n });\n\n // Output props\n const outputProps = createMemo(() => {\n return {\n \"aria-live\": \"off\" as const,\n for: inputId,\n };\n });\n\n // Label props\n const labelProps = createMemo(() => {\n return {\n id: labelId,\n onClick: () => {\n if (typeof document !== \"undefined\") {\n document.getElementById(inputId)?.focus();\n }\n },\n };\n });\n\n return {\n get trackProps() {\n return trackProps();\n },\n get thumbProps() {\n return thumbProps();\n },\n get inputProps() {\n return inputProps();\n },\n get outputProps() {\n return outputProps();\n },\n get labelProps() {\n return labelProps();\n },\n };\n}\n","/**\n * Color internationalization strings.\n *\n * Port of `@react-aria/color`'s intl catalog — the `colorPicker`,\n * `twoDimensionalSlider`, `colorSwatch`, `transparent`, `colorNameAndValue`,\n * and `colorInputLabel` messages across all 34 upstream locales. Consumed via\n * `createColorStringFormatter`, mirroring upstream's\n * `useLocalizedStringFormatter(intlMessages, '@react-aria/color')`.\n *\n * The per-locale message SEPARATORS differ (e.g. CJK `:`/`、`, French\n * non-breaking ` :`), so each locale's function form is preserved\n * verbatim rather than shared.\n */\n\nimport type { LocalizedStrings } from \"@internationalized/string\";\nimport { createStringFormatter } from \"../../i18n\";\n\nexport type ColorIntlKey =\n | \"colorPicker\"\n | \"twoDimensionalSlider\"\n | \"colorSwatch\"\n | \"transparent\"\n | \"colorNameAndValue\"\n | \"colorInputLabel\";\n\nexport type ColorIntlVariables = {\n name?: string;\n value?: string;\n label?: string;\n channelLabel?: string;\n};\n\ntype ColorIntlMessage = string | ((args: ColorIntlVariables | undefined) => string);\n\nexport const colorIntlStrings: LocalizedStrings<ColorIntlKey, ColorIntlMessage> = {\n \"ar-AE\": {\n colorPicker: \"أداة انتقاء اللون\",\n twoDimensionalSlider: \"مُنزلق 2D\",\n colorSwatch: \"تغيير الألوان\",\n transparent: \"شفاف\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"bg-BG\": {\n colorPicker: \"Средство за избиране на цвят\",\n twoDimensionalSlider: \"2D плъзгач\",\n colorSwatch: \"цветна мостра\",\n transparent: \"прозрачен\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"cs-CZ\": {\n colorPicker: \"Výběr barvy\",\n twoDimensionalSlider: \"2D posuvník\",\n colorSwatch: \"barevný vzorek\",\n transparent: \"průhledný\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"da-DK\": {\n colorPicker: \"Farvevælger\",\n twoDimensionalSlider: \"2D-skyder\",\n colorSwatch: \"farveprøve\",\n transparent: \"gennemsigtig\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"de-DE\": {\n colorPicker: \"Farbwähler\",\n twoDimensionalSlider: \"2D-Schieberegler\",\n colorSwatch: \"Farbfeld\",\n transparent: \"transparent\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"el-GR\": {\n colorPicker: \"Επιλογέας χρωμάτων\",\n twoDimensionalSlider: \"Ρυθμιστικό 2D\",\n colorSwatch: \"χρωματικό δείγμα\",\n transparent: \"διαφανές\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"en-US\": {\n colorPicker: \"Color picker\",\n twoDimensionalSlider: \"2D slider\",\n colorSwatch: \"color swatch\",\n transparent: \"transparent\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"es-ES\": {\n colorPicker: \"Selector de color\",\n twoDimensionalSlider: \"Regulador 2D\",\n colorSwatch: \"muestra de color\",\n transparent: \"transparente\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"et-EE\": {\n colorPicker: \"Värvivalija\",\n twoDimensionalSlider: \"2D-liugur\",\n colorSwatch: \"värvinäidis\",\n transparent: \"läbipaistev\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"fi-FI\": {\n colorPicker: \"Värimuokkain\",\n twoDimensionalSlider: \"2D-liukusäädin\",\n colorSwatch: \"värimalli\",\n transparent: \"läpinäkyvä\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"fr-FR\": {\n colorPicker: \"Sélecteur de couleurs\",\n twoDimensionalSlider: \"Curseur 2D\",\n colorSwatch: \"Échantillon de couleurs\",\n transparent: \"Transparent\",\n colorNameAndValue: (args) => `${args?.name} : ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"he-IL\": {\n colorPicker: \"בוחר הצבעים\",\n twoDimensionalSlider: \"מחוון דו מימדי\",\n colorSwatch: \"דוגמית צבע\",\n transparent: \"שקוף\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"hr-HR\": {\n colorPicker: \"Odabir boje\",\n twoDimensionalSlider: \"2D klizač\",\n colorSwatch: \"uzorak boje\",\n transparent: \"transparentno\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"hu-HU\": {\n colorPicker: \"Színválasztó\",\n twoDimensionalSlider: \"2D-csúszka\",\n colorSwatch: \"színtár\",\n transparent: \"átlátszó\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"it-IT\": {\n colorPicker: \"Selettore colore\",\n twoDimensionalSlider: \"Cursore 2D\",\n colorSwatch: \"campione di colore\",\n transparent: \"trasparente\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"ja-JP\": {\n colorPicker: \"カラーピッカー\",\n twoDimensionalSlider: \"2D スライダー\",\n colorSwatch: \"カラースウォッチ\",\n transparent: \"透明\",\n colorNameAndValue: (args) => `${args?.name} : ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}、${args?.channelLabel}`,\n },\n \"ko-KR\": {\n colorPicker: \"색상 피커\",\n twoDimensionalSlider: \"2D 슬라이더\",\n colorSwatch: \"색상 견본\",\n transparent: \"투명도\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"lt-LT\": {\n colorPicker: \"Spalvų parinkiklis\",\n twoDimensionalSlider: \"2D slankiklis\",\n colorSwatch: \"spalvų pavyzdys\",\n transparent: \"skaidrus\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"lv-LV\": {\n colorPicker: \"Krāsu atlasītājs\",\n twoDimensionalSlider: \"2D slīdnis\",\n colorSwatch: \"krāsu paraugs\",\n transparent: \"caurspīdīgs\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"nb-NO\": {\n colorPicker: \"Fargevelger\",\n twoDimensionalSlider: \"2D-glidebryter\",\n colorSwatch: \"fargekart\",\n transparent: \"gjennomsiktig\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"nl-NL\": {\n colorPicker: \"Kleurkiezer\",\n twoDimensionalSlider: \"2D-schuifregelaar\",\n colorSwatch: \"kleurstaal\",\n transparent: \"transparant\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"pl-PL\": {\n colorPicker: \"Próbnik kolorów\",\n twoDimensionalSlider: \"Suwak 2D\",\n colorSwatch: \"próbka koloru\",\n transparent: \"przezroczysty\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"pt-BR\": {\n colorPicker: \"Seletor de cores\",\n twoDimensionalSlider: \"Controle deslizante 2D\",\n colorSwatch: \"amostra de cores\",\n transparent: \"transparente\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"pt-PT\": {\n colorPicker: \"Seletor de cores\",\n twoDimensionalSlider: \"Controle deslizante 2D\",\n colorSwatch: \"amostra de cor\",\n transparent: \"transparente\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"ro-RO\": {\n colorPicker: \"Selector de culori\",\n twoDimensionalSlider: \"Glisor 2D\",\n colorSwatch: \"specimen de culoare\",\n transparent: \"transparent\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"ru-RU\": {\n colorPicker: \"Палитра цветов\",\n twoDimensionalSlider: \"Ползунок 2D\",\n colorSwatch: \"цветовой образец\",\n transparent: \"прозрачный\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"sk-SK\": {\n colorPicker: \"Výber farieb\",\n twoDimensionalSlider: \"2D jazdec\",\n colorSwatch: \"vzorkovník farieb\",\n transparent: \"transparentný\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"sl-SI\": {\n colorPicker: \"Izbirnik barv\",\n twoDimensionalSlider: \"2D drsnik\",\n colorSwatch: \"barvna paleta\",\n transparent: \"prozorno\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"sr-SP\": {\n colorPicker: \"Birač boja\",\n twoDimensionalSlider: \"2D klizač\",\n colorSwatch: \"Uzorak boje\",\n transparent: \"providno\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"sv-SE\": {\n colorPicker: \"Färgväljaren\",\n twoDimensionalSlider: \"2D-reglage\",\n colorSwatch: \"färgruta\",\n transparent: \"genomskinlig\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"tr-TR\": {\n colorPicker: \"Renk Seçici\",\n twoDimensionalSlider: \"2D sürgü\",\n colorSwatch: \"renk örneği\",\n transparent: \"saydam\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"uk-UA\": {\n colorPicker: \"Палітра кольорів\",\n twoDimensionalSlider: \"Повзунок 2D\",\n colorSwatch: \"зразок кольору\",\n transparent: \"прозорий\",\n colorNameAndValue: (args) => `${args?.name}: ${args?.value}`,\n colorInputLabel: (args) => `${args?.label}, ${args?.channelLabel}`,\n },\n \"zh-CN\": {\n colorPicker: \"拾色器\",\n twoDimensionalSlider: \"2D 滑块\",\n colorSwatch: \"颜色色板\",\n transparent: \"透明\",\n colorNameAndValue: (args) => `${args?.name}:${args?.value}`,\n colorInputLabel: (args) => `${args?.label}、${args?.channelLabel}`,\n },\n \"zh-TW\": {\n colorPicker: \"檢色器\",\n twoDimensionalSlider: \"2D 滑桿\",\n colorSwatch: \"色票\",\n transparent: \"透明\",\n colorNameAndValue: (args) => `${args?.name}:${args?.value}`,\n colorInputLabel: (args) => `${args?.label},${args?.channelLabel}`,\n },\n};\n\n/**\n * Reactive color string formatter for the current locale. Mirrors upstream\n * `useLocalizedStringFormatter(intlMessages, '@react-aria/color')`.\n */\nexport function createColorStringFormatter() {\n return createStringFormatter(colorIntlStrings, \"@react-aria/color\");\n}\n","/**\n * createColorArea hook.\n *\n * Provides ARIA attributes and keyboard/pointer handling for a 2D color area.\n */\n\nimport { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { Color, ColorAreaState, ColorChannel } from \"@proyecto-viviana/solid-stately\";\nimport { parseColor } from \"@proyecto-viviana/solid-stately\";\nimport { useLocale } from \"../i18n\";\nimport { createId } from \"../ssr\";\nimport { createColorStringFormatter } from \"./intl\";\nimport type { AriaColorAreaOptions, ColorAreaAria } from \"./types\";\n\n/**\n * Creates ARIA props for a color area.\n */\nexport function createColorArea(\n props: Accessor<AriaColorAreaOptions>,\n state: Accessor<ColorAreaState>,\n areaRef: Accessor<HTMLDivElement | null>,\n): ColorAreaAria {\n const getProps = () => props();\n const getState = () => state();\n const locale = useLocale();\n const stringFormatter = createColorStringFormatter();\n const isRTL = () => locale().direction === \"rtl\";\n const [focusedInput, setFocusedInput] = createSignal<\"x\" | \"y\" | null>(null);\n const [valueChangedViaKeyboard, setValueChangedViaKeyboard] = createSignal(false);\n const [valueChangedViaInputChangeEvent, setValueChangedViaInputChangeEvent] = createSignal(false);\n\n // Generate IDs\n const colorAreaId = createId();\n const xInputId = createId();\n const yInputId = createId();\n\n const colorPickerLabel = () => stringFormatter().format(\"colorPicker\");\n const colorInputLabel = () => {\n const ariaLabel = getProps()[\"aria-label\"];\n return ariaLabel\n ? stringFormatter().format(\"colorInputLabel\", {\n label: ariaLabel,\n channelLabel: colorPickerLabel(),\n })\n : colorPickerLabel();\n };\n // Upstream joins the group label with a literal \", \" (useColorArea.ts:488),\n // NOT the colorInputLabel message.\n const colorAreaLabel = () => {\n const ariaLabel = getProps()[\"aria-label\"];\n return ariaLabel ? `${ariaLabel}, ${colorPickerLabel()}` : undefined;\n };\n const formatChannelValueText = (channel: ColorChannel) => {\n const value = getState().getDisplayColor();\n const loc = locale().locale;\n return stringFormatter().format(\"colorNameAndValue\", {\n name: value.getChannelName(channel, loc),\n value: value.formatChannelValue(channel, loc),\n });\n };\n const getAriaValueTextForChannel = (channel: ColorChannel) => {\n const s = getState();\n const value = s.getDisplayColor();\n const loc = locale().locale;\n if (valueChangedViaInputChangeEvent() || valueChangedViaKeyboard()) {\n return `${formatChannelValueText(channel)}, ${value.getColorName(loc)}`;\n }\n\n const otherChannel = channel === s.yChannel ? s.xChannel : s.yChannel;\n return (\n [\n formatChannelValueText(channel),\n formatChannelValueText(otherChannel),\n formatChannelValueText(s.zChannel),\n ].join(\", \") + `, ${value.getColorName(loc)}`\n );\n };\n\n const updateFromInput = (e: Event, axis: \"x\" | \"y\") => {\n const target = e.target as HTMLInputElement;\n const nextValue = parseFloat(target.value);\n\n setValueChangedViaInputChangeEvent(true);\n if (axis === \"x\") {\n getState().setXValue(nextValue);\n } else {\n getState().setYValue(nextValue);\n }\n };\n\n // Calculate position from pointer event\n const getPositionFromEvent = (e: MouseEvent | PointerEvent) => {\n const area = areaRef();\n if (!area) return null;\n\n const rect = area.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return null;\n\n const physicalX = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));\n const x = isRTL() ? 1 - physicalX : physicalX;\n const y = Math.max(0, Math.min(1, (e.clientY - rect.top) / rect.height));\n\n return { x, y };\n };\n\n // Handle pointer down\n const onPointerDown = (e: PointerEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n\n const pos = getPositionFromEvent(e);\n if (!pos) return;\n\n getState().setColorFromPoint(pos.x, pos.y);\n getState().setDragging(true);\n\n // Capture pointer for dragging\n (e.currentTarget as HTMLElement).setPointerCapture?.(e.pointerId);\n };\n\n // Handle pointer move\n const onPointerMove = (e: PointerEvent) => {\n if (!getState().isDragging) return;\n\n const pos = getPositionFromEvent(e);\n if (!pos) return;\n\n getState().setColorFromPoint(pos.x, pos.y);\n };\n\n // Handle pointer up\n const onPointerUp = (e: PointerEvent) => {\n if (getState().isDragging) {\n getState().setDragging(false);\n (e.currentTarget as HTMLElement).releasePointerCapture?.(e.pointerId);\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n\n const s = getState();\n const xStep =\n e.shiftKey && s.xChannelPageStep > s.xChannelStep ? s.xChannelPageStep : s.xChannelStep;\n const yStep =\n e.shiftKey && s.yChannelPageStep > s.yChannelStep ? s.yChannelPageStep : s.yChannelStep;\n let focusedAxis: \"x\" | \"y\" = \"x\";\n let handled = true;\n\n switch (e.key) {\n case \"ArrowRight\":\n if (isRTL()) {\n s.decrementX(xStep);\n } else {\n s.incrementX(xStep);\n }\n break;\n case \"ArrowLeft\":\n if (isRTL()) {\n s.incrementX(xStep);\n } else {\n s.decrementX(xStep);\n }\n break;\n case \"ArrowUp\":\n s.incrementY(yStep);\n focusedAxis = \"y\";\n break;\n case \"ArrowDown\":\n s.decrementY(yStep);\n focusedAxis = \"y\";\n break;\n case \"PageUp\":\n s.incrementY(s.yChannelPageStep);\n focusedAxis = \"y\";\n break;\n case \"PageDown\":\n s.decrementY(s.yChannelPageStep);\n focusedAxis = \"y\";\n break;\n case \"Home\":\n if (isRTL()) {\n s.incrementX(s.xChannelPageStep);\n } else {\n s.decrementX(s.xChannelPageStep);\n }\n break;\n case \"End\":\n if (isRTL()) {\n s.decrementX(s.xChannelPageStep);\n } else {\n s.incrementX(s.xChannelPageStep);\n }\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n setFocusedInput(focusedAxis);\n setValueChangedViaKeyboard(true);\n s.setDragging(true);\n s.setDragging(false);\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n const onFocusOut = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as HTMLElement;\n const relatedTarget = e.relatedTarget as Node | null;\n if (!relatedTarget || !currentTarget.contains(relatedTarget)) {\n setValueChangedViaKeyboard(false);\n setValueChangedViaInputChangeEvent(false);\n }\n };\n\n // Color area props\n const colorAreaProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n\n return {\n id: p.id ?? colorAreaId,\n role: \"group\" as const,\n \"aria-label\": colorAreaLabel(),\n \"aria-labelledby\": p[\"aria-labelledby\"],\n onPointerDown,\n onPointerMove,\n onPointerUp,\n style: {\n position: \"relative\" as const,\n \"touch-action\": \"none\",\n \"forced-color-adjust\": \"none\" as const,\n ...generateGradient(),\n },\n \"data-disabled\": s.isDisabled || p.isDisabled || undefined,\n };\n });\n\n // Generate gradient background for the color area\n function generateGradient(): Record<string, string> {\n const s = getState();\n const value = s.value;\n const xCh = s.xChannel;\n const yCh = s.yChannel;\n const zCh = s.zChannel;\n const zValue = value.getChannelValue(zCh);\n const end = isRTL() ? \"left\" : \"right\";\n\n const hue = (color: Color) =>\n [0, 60, 120, 180, 240, 300, 360]\n .map((h) => color.withChannelValue(\"hue\", h).toString(\"css\"))\n .join(\", \");\n\n const hslChannels: Record<string, (c: Color) => string> = {\n hue,\n saturation: (color) =>\n `${color.withChannelValue(\"saturation\", 0).toString(\"css\")}, transparent`,\n lightness: () => \"black, transparent, white\",\n };\n\n const hsbChannels: Record<string, (c: Color) => string> = {\n hue,\n saturation: (color) =>\n `${color.withChannelValue(\"saturation\", 0).toString(\"css\")}, transparent`,\n brightness: () => \"black, transparent\",\n };\n\n switch (value.getColorSpace()) {\n case \"rgb\": {\n const rgb = parseColor(\"rgb(0, 0, 0)\");\n return {\n background: [\n `linear-gradient(to ${end}, ${rgb.withChannelValue(xCh, 0).toString(\"css\")}, ${rgb.withChannelValue(xCh, 255).toString(\"css\")})`,\n `linear-gradient(to top, ${rgb.withChannelValue(yCh, 0).toString(\"css\")}, ${rgb.withChannelValue(yCh, 255).toString(\"css\")})`,\n rgb.withChannelValue(zCh, zValue).toString(\"css\"),\n ].join(\",\"),\n \"background-blend-mode\": \"screen\",\n };\n }\n case \"hsl\": {\n const channels = value.getColorChannels();\n const base = parseColor(\"hsl(0, 100%, 50%)\").withChannelValue(zCh, zValue);\n const bg = channels\n .filter((c: ColorChannel) => c !== zCh)\n .map(\n (c: ColorChannel) =>\n `linear-gradient(to ${c === xCh ? end : \"top\"}, ${hslChannels[c]?.(base) ?? \"\"})`,\n )\n .reverse();\n if (zCh === \"hue\") {\n bg.push(base.toString(\"css\"));\n }\n\n return {\n background: bg.join(\", \"),\n };\n }\n case \"hsb\": {\n const channels = value.getColorChannels();\n const base = parseColor(\"hsb(0, 100%, 100%)\").withChannelValue(zCh, zValue);\n const bg = channels\n .filter((c: ColorChannel) => c !== zCh)\n .map(\n (c: ColorChannel) =>\n `linear-gradient(to ${c === xCh ? end : \"top\"}, ${hsbChannels[c]?.(base) ?? \"\"})`,\n )\n .reverse();\n if (zCh === \"hue\") {\n bg.push(base.toString(\"css\"));\n }\n\n return {\n background: bg.join(\", \"),\n };\n }\n default:\n return {};\n }\n }\n\n // Gradient props (the visual area)\n const gradientProps = createMemo(() => {\n const gradientStyles = generateGradient();\n return {\n role: \"presentation\" as const,\n style: {\n width: \"100%\",\n height: \"100%\",\n \"forced-color-adjust\": \"none\" as const,\n ...gradientStyles,\n },\n };\n });\n\n // Thumb props\n const thumbProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const pos = s.getThumbPosition();\n const x = isRTL() ? 1 - pos.x : pos.x;\n\n return {\n role: \"presentation\" as const,\n style: {\n position: \"absolute\" as const,\n left: `${x * 100}%`,\n top: `${pos.y * 100}%`,\n transform: \"translate(-50%, -50%)\",\n \"touch-action\": \"none\",\n \"forced-color-adjust\": \"none\" as const,\n },\n onKeyDown,\n onFocusOut,\n \"data-dragging\": s.isDragging || undefined,\n \"data-disabled\": s.isDisabled || p.isDisabled || undefined,\n };\n });\n\n // X input props (hidden, for accessibility)\n const xInputProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const xRange = s.value.getChannelRange(s.xChannel);\n\n return {\n type: \"range\",\n id: p.id ?? xInputId,\n \"aria-label\": colorInputLabel(),\n \"aria-roledescription\": stringFormatter().format(\"twoDimensionalSlider\"),\n \"aria-valuetext\": getAriaValueTextForChannel(s.xChannel),\n \"aria-orientation\": \"horizontal\" as const,\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-details\": p[\"aria-details\"],\n min: xRange.minValue,\n max: xRange.maxValue,\n step: xRange.step,\n value: s.getXValue(),\n name: p.xName,\n form: p.form,\n disabled: s.isDisabled || p.isDisabled,\n \"aria-hidden\":\n !focusedInput() || focusedInput() === \"x\" || valueChangedViaKeyboard()\n ? undefined\n : (\"true\" as const),\n onFocus: () => setFocusedInput(\"x\"),\n onKeyDown,\n onInput: (e: Event) => updateFromInput(e, \"x\"),\n onChange: (e: Event) => updateFromInput(e, \"x\"),\n tabIndex: !focusedInput() || focusedInput() === \"x\" ? undefined : -1,\n style: {\n position: \"absolute\" as const,\n width: \"1px\",\n height: \"1px\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n \"white-space\": \"nowrap\",\n border: \"0\",\n },\n };\n });\n\n // Y input props (hidden, for accessibility)\n const yInputProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const yRange = s.value.getChannelRange(s.yChannel);\n\n return {\n type: \"range\",\n id: p.id ?? yInputId,\n \"aria-label\": colorInputLabel(),\n \"aria-roledescription\": stringFormatter().format(\"twoDimensionalSlider\"),\n \"aria-valuetext\": getAriaValueTextForChannel(s.yChannel),\n \"aria-orientation\": \"vertical\" as const,\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-details\": p[\"aria-details\"],\n min: yRange.minValue,\n max: yRange.maxValue,\n step: yRange.step,\n value: s.getYValue(),\n name: p.yName,\n form: p.form,\n disabled: s.isDisabled || p.isDisabled,\n \"aria-hidden\":\n focusedInput() === \"y\" || valueChangedViaKeyboard() ? undefined : (\"true\" as const),\n onFocus: () => setFocusedInput(\"y\"),\n onKeyDown,\n onInput: (e: Event) => updateFromInput(e, \"y\"),\n onChange: (e: Event) => updateFromInput(e, \"y\"),\n tabIndex: focusedInput() === \"y\" ? undefined : -1,\n style: {\n position: \"absolute\" as const,\n width: \"1px\",\n height: \"1px\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n \"white-space\": \"nowrap\",\n border: \"0\",\n },\n };\n });\n\n return {\n get colorAreaProps() {\n return colorAreaProps();\n },\n get gradientProps() {\n return gradientProps();\n },\n get thumbProps() {\n return thumbProps();\n },\n get xInputProps() {\n return xInputProps();\n },\n get yInputProps() {\n return yInputProps();\n },\n };\n}\n","/**\n * createColorWheel hook.\n *\n * Provides ARIA attributes and keyboard/pointer handling for a circular hue selector.\n */\n\nimport { createMemo, onCleanup, type Accessor } from \"solid-js\";\nimport type { ColorWheelState } from \"@proyecto-viviana/solid-stately\";\nimport { useLocale } from \"../i18n\";\nimport { createId } from \"../ssr\";\nimport { focusWithoutScrolling } from \"../utils/focus\";\nimport type { AriaColorWheelOptions, ColorWheelAria } from \"./types\";\n\n/**\n * Creates ARIA props for a color wheel.\n */\nexport function createColorWheel(\n props: Accessor<AriaColorWheelOptions>,\n state: Accessor<ColorWheelState>,\n wheelRef: Accessor<HTMLDivElement | null>,\n): ColorWheelAria {\n const getProps = () => props();\n const getState = () => state();\n const locale = useLocale();\n\n // Generate IDs\n const inputId = createId();\n let cleanupPointerDrag: (() => void) | undefined;\n let cleanupMouseDrag: (() => void) | undefined;\n let dragElement: HTMLElement | null = null;\n\n const outerRadius = () => getProps().outerRadius ?? 100;\n const innerRadius = () => getProps().innerRadius ?? 74;\n const thumbRadius = () => (innerRadius() + outerRadius()) / 2;\n\n const getInput = () => wheelRef()?.querySelector<HTMLInputElement>('input[type=\"range\"]') ?? null;\n const focusInput = () => {\n focusWithoutScrolling(getInput());\n queueMicrotask(() => focusWithoutScrolling(getInput()));\n };\n\n const getPointFromEvent = (clientX: number, clientY: number, element?: HTMLElement | null) => {\n const wheel = element ?? dragElement ?? wheelRef();\n if (!wheel) return null;\n\n const rect = wheel.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n return {\n x: clientX - centerX,\n y: clientY - centerY,\n };\n };\n\n const updateFromPoint = (\n clientX: number,\n clientY: number,\n requireTrackHit = false,\n element?: HTMLElement | null,\n ) => {\n if (getProps().isDisabled || getState().isDisabled) return false;\n\n const point = getPointFromEvent(clientX, clientY, element);\n if (!point) return false;\n\n const distance = Math.sqrt(point.x ** 2 + point.y ** 2);\n if (requireTrackHit && (distance <= innerRadius() || distance >= outerRadius())) {\n return false;\n }\n\n getState().setHueFromPoint(point.x, point.y, thumbRadius());\n return true;\n };\n\n const endDrag = () => {\n if (!getState().isDragging) return;\n getState().setDragging(false);\n dragElement = null;\n focusInput();\n };\n\n const installPointerDragListeners = () => {\n if (typeof window === \"undefined\") return;\n cleanupPointerDrag?.();\n\n const onPointerMove = (e: PointerEvent) => {\n if (!getState().isDragging) return;\n updateFromPoint(e.clientX, e.clientY);\n };\n const onPointerEnd = () => {\n cleanupPointerDrag?.();\n cleanupPointerDrag = undefined;\n endDrag();\n };\n\n window.addEventListener(\"pointermove\", onPointerMove);\n window.addEventListener(\"pointerup\", onPointerEnd);\n window.addEventListener(\"pointercancel\", onPointerEnd);\n\n cleanupPointerDrag = () => {\n window.removeEventListener(\"pointermove\", onPointerMove);\n window.removeEventListener(\"pointerup\", onPointerEnd);\n window.removeEventListener(\"pointercancel\", onPointerEnd);\n };\n };\n\n const installMouseDragListeners = () => {\n if (typeof window === \"undefined\") return;\n cleanupMouseDrag?.();\n\n const onMouseMove = (e: MouseEvent) => {\n if (!getState().isDragging) return;\n updateFromPoint(e.clientX, e.clientY);\n };\n const onMouseEnd = () => {\n cleanupMouseDrag?.();\n cleanupMouseDrag = undefined;\n endDrag();\n };\n\n window.addEventListener(\"mousemove\", onMouseMove);\n window.addEventListener(\"mouseup\", onMouseEnd);\n\n cleanupMouseDrag = () => {\n window.removeEventListener(\"mousemove\", onMouseMove);\n window.removeEventListener(\"mouseup\", onMouseEnd);\n };\n };\n\n onCleanup(() => {\n cleanupPointerDrag?.();\n cleanupMouseDrag?.();\n });\n\n const onTrackPointerDown = (e: PointerEvent) => {\n dragElement = e.currentTarget as HTMLElement;\n if (!updateFromPoint(e.clientX, e.clientY, true, dragElement)) {\n dragElement = null;\n return;\n }\n focusInput();\n getState().setDragging(true);\n installPointerDragListeners();\n e.preventDefault();\n };\n\n const onTrackMouseDown = (e: MouseEvent) => {\n dragElement = e.currentTarget as HTMLElement;\n if (!updateFromPoint(e.clientX, e.clientY, true, dragElement)) {\n dragElement = null;\n return;\n }\n focusInput();\n getState().setDragging(true);\n installMouseDragListeners();\n e.preventDefault();\n };\n\n const onThumbPointerDown = (e: PointerEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n focusInput();\n getState().setDragging(true);\n installPointerDragListeners();\n e.preventDefault();\n e.stopPropagation();\n };\n\n const onThumbMouseDown = (e: MouseEvent) => {\n if (getProps().isDisabled || getState().isDisabled) return;\n focusInput();\n getState().setDragging(true);\n installMouseDragListeners();\n e.preventDefault();\n e.stopPropagation();\n };\n\n // Handle keyboard\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.defaultPrevented) return;\n if (getProps().isDisabled || getState().isDisabled) return;\n\n const s = getState();\n let handled = true;\n\n switch (e.key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n s.increment();\n break;\n case \"ArrowLeft\":\n case \"ArrowDown\":\n s.decrement();\n break;\n case \"PageUp\":\n s.increment(s.pageStep);\n break;\n case \"PageDown\":\n s.decrement(s.pageStep);\n break;\n case \"Home\":\n s.setHue(0);\n break;\n case \"End\":\n s.setHue(359);\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n s.setDragging(true);\n s.setDragging(false);\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n // Hue spectrum conic gradient\n const conicGradient = `conic-gradient(from 90deg, hsl(0, 100%, 50%), hsl(30, 100%, 50%), hsl(60, 100%, 50%), hsl(90, 100%, 50%), hsl(120, 100%, 50%), hsl(150, 100%, 50%), hsl(180, 100%, 50%), hsl(210, 100%, 50%), hsl(240, 100%, 50%), hsl(270, 100%, 50%), hsl(300, 100%, 50%), hsl(330, 100%, 50%), hsl(360, 100%, 50%))`;\n\n const ringPath = () => {\n const outer = outerRadius();\n const inner = innerRadius();\n const circlePath = (radius: number) =>\n [\n `M ${outer}, ${outer} m ${-radius}, 0`,\n `a ${radius}, ${radius}, 0, 1, 0, ${radius * 2}, 0`,\n `a ${radius}, ${radius}, 0, 1, 0 ${-radius * 2}, 0`,\n ].join(\" \");\n return `path(evenodd, \"${circlePath(outer)} ${circlePath(inner)}\")`;\n };\n\n // Track props (the wheel container)\n const trackProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n\n return {\n onPointerDown: onTrackPointerDown,\n onMouseDown: onTrackMouseDown,\n style: {\n position: \"relative\" as const,\n \"touch-action\": \"none\",\n width: `${outerRadius() * 2}px`,\n height: `${outerRadius() * 2}px`,\n background: conicGradient,\n \"clip-path\": ringPath(),\n \"forced-color-adjust\": \"none\" as const,\n },\n \"data-disabled\": s.isDisabled || p.isDisabled || undefined,\n };\n });\n\n // Thumb props\n const thumbProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const position = s.getThumbPosition(thumbRadius());\n\n return {\n onPointerDown: onThumbPointerDown,\n onMouseDown: onThumbMouseDown,\n onKeyDown,\n style: {\n position: \"absolute\" as const,\n left: `${outerRadius() + position.x}px`,\n top: `${outerRadius() + position.y}px`,\n transform: \"translate(-50%, -50%)\",\n \"touch-action\": \"none\",\n \"forced-color-adjust\": \"none\" as const,\n },\n \"data-dragging\": s.isDragging || undefined,\n \"data-disabled\": s.isDisabled || p.isDisabled || undefined,\n };\n });\n\n // Input props (hidden, for accessibility)\n const inputProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n\n return {\n type: \"range\",\n id: p.id ?? inputId,\n min: 0,\n max: 360,\n step: s.step,\n value: s.getHue(),\n name: p.name,\n form: p.form,\n disabled: s.isDisabled || p.isDisabled,\n \"aria-label\":\n p[\"aria-label\"] ??\n (p[\"aria-labelledby\"] ? undefined : s.value.getChannelName(\"hue\", locale().locale)),\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-details\": p[\"aria-details\"],\n \"aria-errormessage\": p[\"aria-errormessage\"],\n \"aria-valuetext\": `${s.value.formatChannelValue(\"hue\", locale().locale)}, ${s.value.getHueName(locale().locale)}`,\n onKeyDown,\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n s.setHue(parseFloat(target.value));\n },\n onChange: (e: Event) => {\n const target = e.target as HTMLInputElement;\n s.setHue(parseFloat(target.value));\n },\n style: {\n position: \"absolute\" as const,\n width: \"100%\",\n height: \"100%\",\n opacity: \"0.0001\",\n padding: \"0\",\n margin: \"0\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n \"white-space\": \"nowrap\",\n border: \"0\",\n \"pointer-events\": \"none\" as const,\n },\n };\n });\n\n return {\n get trackProps() {\n return trackProps();\n },\n get thumbProps() {\n return thumbProps();\n },\n get inputProps() {\n return inputProps();\n },\n };\n}\n","/**\n * createColorField hook.\n *\n * Provides ARIA attributes and keyboard handling for a color input field.\n */\n\nimport { createEffect, createMemo, type Accessor } from \"solid-js\";\nimport type { ColorFieldState } from \"@proyecto-viviana/solid-stately\";\nimport { createId } from \"../ssr\";\nimport type { AriaColorFieldOptions, ColorFieldAria } from \"./types\";\n\n/**\n * Creates ARIA props for a color field.\n */\nexport function createColorField(\n props: Accessor<AriaColorFieldOptions>,\n state: Accessor<ColorFieldState>,\n inputRef: Accessor<HTMLInputElement | null>,\n): ColorFieldAria {\n const getProps = () => props();\n const getState = () => state();\n\n const generatedInputId = createId();\n const labelId = createId();\n const descriptionId = createId();\n const errorMessageId = createId();\n\n let didAutoFocus = false;\n createEffect(() => {\n const input = inputRef();\n if (!didAutoFocus && getProps().autoFocus && input) {\n didAutoFocus = true;\n input.focus();\n }\n });\n\n const isDisabled = () => getProps().isDisabled || getState().isDisabled;\n const isReadOnly = () => getProps().isReadOnly || getState().isReadOnly;\n const isInvalid = () => getProps().isInvalid || getState().isInvalid;\n const validationBehavior = () => getProps().validationBehavior ?? \"native\";\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = getState();\n\n if (isDisabled() || isReadOnly()) {\n return;\n }\n\n let handled = true;\n\n switch (e.key) {\n case \"ArrowUp\":\n s.increment();\n break;\n case \"ArrowDown\":\n s.decrement();\n break;\n case \"PageUp\":\n s.incrementToMax();\n break;\n case \"PageDown\":\n s.decrementToMin();\n break;\n case \"Home\":\n s.decrementToMin();\n break;\n case \"End\":\n s.incrementToMax();\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n e.preventDefault();\n }\n };\n\n const onWheel = (e: WheelEvent) => {\n const p = getProps();\n const s = getState();\n\n if (\n p.isWheelDisabled ||\n isDisabled() ||\n isReadOnly() ||\n document.activeElement !== inputRef()\n ) {\n return;\n }\n\n if (e.deltaY < 0) {\n s.increment();\n } else if (e.deltaY > 0) {\n s.decrement();\n } else {\n return;\n }\n\n e.preventDefault();\n };\n\n const labelProps = createMemo(() => {\n return {\n id: labelId,\n for: getProps().id ?? generatedInputId,\n };\n });\n\n const descriptionProps = createMemo(() => ({\n id: descriptionId,\n }));\n\n const errorMessageProps = createMemo(() => ({\n id: getProps()[\"aria-errormessage\"] ?? errorMessageId,\n }));\n\n const inputProps = createMemo(() => {\n const s = getState();\n const p = getProps();\n const channelLabel =\n s.channel && s.colorValue ? s.colorValue.getChannelName(s.channel, \"en-US\") : undefined;\n const required = p.isRequired || s.isRequired;\n const invalid = isInvalid();\n const describedBy = p[\"aria-describedby\"];\n\n return {\n id: p.id ?? generatedInputId,\n type: \"text\",\n value: s.inputValue,\n name: s.channel ? undefined : p.name,\n form: s.channel ? undefined : p.form,\n placeholder: p.placeholder,\n disabled: isDisabled(),\n readOnly: isReadOnly(),\n required: validationBehavior() === \"native\" ? required || undefined : undefined,\n // Upstream routes the input through useFormattedTextField → useTextField →\n // useFocusable, which ALWAYS sets a tabIndex (\"so that Safari allows focusing\n // native buttons and inputs\"): `excludeFromTabOrder ? -1 : 0`, then `undefined`\n // when disabled (useFocusable.mjs:65-66). We hand-roll inputProps, so replay that\n // one focusable prop here — the port previously dropped the default `0`, so the\n // rendered input carried no `tabindex` while React's carries `tabindex=\"0\"` (a D5\n // focus-trail divergence), exactly as createNumberField already replays it.\n tabIndex: isDisabled() ? undefined : p.excludeFromTabOrder ? -1 : 0,\n autoComplete: \"off\",\n autoCorrect: \"off\",\n spellCheck: \"false\",\n \"aria-label\": p[\"aria-label\"] ?? channelLabel,\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": describedBy,\n \"aria-details\": p[\"aria-details\"],\n \"aria-errormessage\": invalid ? (p[\"aria-errormessage\"] ?? errorMessageId) : undefined,\n \"aria-invalid\": invalid || undefined,\n \"aria-required\": validationBehavior() === \"aria\" && required ? true : undefined,\n role: s.channel ? undefined : (\"textbox\" as const),\n \"aria-valuenow\": undefined,\n \"aria-valuemin\": undefined,\n \"aria-valuemax\": undefined,\n \"aria-valuetext\": undefined,\n onInput: (e: InputEvent) => {\n const target = e.target as HTMLInputElement;\n if (s.validate(target.value)) {\n s.setInputValue(target.value);\n } else {\n target.value = s.inputValue;\n }\n },\n onChange: () => {\n s.commit();\n },\n onBlur: () => {\n s.commit();\n },\n onKeyDown,\n onWheel,\n };\n });\n\n return {\n get labelProps() {\n return labelProps();\n },\n get inputProps() {\n return inputProps();\n },\n get descriptionProps() {\n return descriptionProps();\n },\n get errorMessageProps() {\n return errorMessageProps();\n },\n };\n}\n","/**\n * createColorSwatch hook.\n *\n * Provides ARIA attributes for a color swatch display.\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport { normalizeColor } from \"@proyecto-viviana/solid-stately\";\nimport { useLocale } from \"../i18n\";\nimport { createId } from \"../ssr\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { createColorStringFormatter } from \"./intl\";\nimport type { AriaColorSwatchOptions, ColorSwatchAria } from \"./types\";\n\n/**\n * Creates ARIA props for a color swatch.\n */\nexport function createColorSwatch(props: Accessor<AriaColorSwatchOptions>): ColorSwatchAria {\n const getProps = () => props();\n const locale = useLocale();\n const stringFormatter = createColorStringFormatter();\n const generatedId = createId();\n const id = () => getProps().id ?? generatedId;\n\n const color = createMemo(() => normalizeColor(getProps().color ?? \"#fff0\"));\n\n const colorName = createMemo(() => {\n const p = getProps();\n if (p.colorName) return p.colorName;\n\n const resolvedColor = color();\n if (resolvedColor.getChannelValue(\"alpha\") === 0) {\n return stringFormatter().format(\"transparent\");\n }\n\n return resolvedColor.getColorName(locale().locale);\n });\n\n const swatchProps = createMemo(() => {\n const p = getProps();\n const domProps = filterDOMProps(p as Record<string, unknown>, { labelable: true });\n const ariaLabel = [colorName(), p[\"aria-label\"] || \"\"].filter(Boolean).join(\", \");\n\n return {\n ...domProps,\n id: id(),\n slot: p.slot,\n role: \"img\" as const,\n \"aria-roledescription\": stringFormatter().format(\"colorSwatch\"),\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": p[\"aria-labelledby\"] ? `${id()} ${p[\"aria-labelledby\"]}` : undefined,\n style: {\n \"background-color\": color().toString(\"css\"),\n \"forced-color-adjust\": \"none\" as const,\n },\n };\n });\n\n return {\n get swatchProps() {\n return swatchProps();\n },\n get color() {\n return color();\n },\n };\n}\n"],"mappings":"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"}