@neurocle/synapse-react 0.0.0-stage → 0.3.0

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 (824) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +162 -2
  3. package/dist/_virtual/_rolldown/runtime.mjs +13 -0
  4. package/dist/components/accordion/accordion.d.mts +38 -0
  5. package/dist/components/accordion/accordion.d.mts.map +1 -0
  6. package/dist/components/accordion/accordion.mjs +29 -0
  7. package/dist/components/accordion/accordion.mjs.map +1 -0
  8. package/dist/components/accordion/accordion.recipe.mjs +191 -0
  9. package/dist/components/accordion/accordion.recipe.mjs.map +1 -0
  10. package/dist/components/accordion/index.d.mts +2 -0
  11. package/dist/components/accordion/index.mjs +2 -0
  12. package/dist/components/alert/alert.anatomy.mjs +8 -0
  13. package/dist/components/alert/alert.anatomy.mjs.map +1 -0
  14. package/dist/components/alert/alert.connect.d.mts +4 -0
  15. package/dist/components/alert/alert.connect.d.mts.map +1 -0
  16. package/dist/components/alert/alert.connect.mjs +39 -0
  17. package/dist/components/alert/alert.connect.mjs.map +1 -0
  18. package/dist/components/alert/alert.d.mts +14 -0
  19. package/dist/components/alert/alert.d.mts.map +1 -0
  20. package/dist/components/alert/alert.mjs +37 -0
  21. package/dist/components/alert/alert.mjs.map +1 -0
  22. package/dist/components/alert/alert.recipe.mjs +141 -0
  23. package/dist/components/alert/alert.recipe.mjs.map +1 -0
  24. package/dist/components/alert/index.d.mts +3 -0
  25. package/dist/components/alert/index.mjs +2 -0
  26. package/dist/components/angle-slider/angle-slider.d.mts +35 -0
  27. package/dist/components/angle-slider/angle-slider.d.mts.map +1 -0
  28. package/dist/components/angle-slider/angle-slider.mjs +41 -0
  29. package/dist/components/angle-slider/angle-slider.mjs.map +1 -0
  30. package/dist/components/angle-slider/angle-slider.recipe.mjs +201 -0
  31. package/dist/components/angle-slider/angle-slider.recipe.mjs.map +1 -0
  32. package/dist/components/angle-slider/index.d.mts +2 -0
  33. package/dist/components/angle-slider/index.mjs +2 -0
  34. package/dist/components/avatar/avatar.d.mts +18 -0
  35. package/dist/components/avatar/avatar.d.mts.map +1 -0
  36. package/dist/components/avatar/avatar.mjs +35 -0
  37. package/dist/components/avatar/avatar.mjs.map +1 -0
  38. package/dist/components/avatar/avatar.recipe.mjs +113 -0
  39. package/dist/components/avatar/avatar.recipe.mjs.map +1 -0
  40. package/dist/components/avatar/index.d.mts +2 -0
  41. package/dist/components/avatar/index.mjs +2 -0
  42. package/dist/components/badge/badge.anatomy.mjs +8 -0
  43. package/dist/components/badge/badge.anatomy.mjs.map +1 -0
  44. package/dist/components/badge/badge.connect.d.mts +4 -0
  45. package/dist/components/badge/badge.connect.d.mts.map +1 -0
  46. package/dist/components/badge/badge.connect.mjs +32 -0
  47. package/dist/components/badge/badge.connect.mjs.map +1 -0
  48. package/dist/components/badge/badge.d.mts +14 -0
  49. package/dist/components/badge/badge.d.mts.map +1 -0
  50. package/dist/components/badge/badge.mjs +18 -0
  51. package/dist/components/badge/badge.mjs.map +1 -0
  52. package/dist/components/badge/badge.recipe.mjs +84 -0
  53. package/dist/components/badge/badge.recipe.mjs.map +1 -0
  54. package/dist/components/badge/index.d.mts +3 -0
  55. package/dist/components/badge/index.mjs +2 -0
  56. package/dist/components/breadcrumb/breadcrumb.anatomy.mjs +8 -0
  57. package/dist/components/breadcrumb/breadcrumb.anatomy.mjs.map +1 -0
  58. package/dist/components/breadcrumb/breadcrumb.connect.mjs +30 -0
  59. package/dist/components/breadcrumb/breadcrumb.connect.mjs.map +1 -0
  60. package/dist/components/breadcrumb/breadcrumb.d.mts +10 -0
  61. package/dist/components/breadcrumb/breadcrumb.d.mts.map +1 -0
  62. package/dist/components/breadcrumb/breadcrumb.mjs +31 -0
  63. package/dist/components/breadcrumb/breadcrumb.mjs.map +1 -0
  64. package/dist/components/breadcrumb/breadcrumb.recipe.mjs +121 -0
  65. package/dist/components/breadcrumb/breadcrumb.recipe.mjs.map +1 -0
  66. package/dist/components/breadcrumb/index.d.mts +2 -0
  67. package/dist/components/breadcrumb/index.mjs +2 -0
  68. package/dist/components/button/button.anatomy.mjs +8 -0
  69. package/dist/components/button/button.anatomy.mjs.map +1 -0
  70. package/dist/components/button/button.connect.mjs +35 -0
  71. package/dist/components/button/button.connect.mjs.map +1 -0
  72. package/dist/components/button/button.d.mts +19 -0
  73. package/dist/components/button/button.d.mts.map +1 -0
  74. package/dist/components/button/button.mjs +25 -0
  75. package/dist/components/button/button.mjs.map +1 -0
  76. package/dist/components/button/button.recipe.mjs +377 -0
  77. package/dist/components/button/button.recipe.mjs.map +1 -0
  78. package/dist/components/button/index.d.mts +2 -0
  79. package/dist/components/button/index.mjs +2 -0
  80. package/dist/components/card/card.anatomy.mjs +8 -0
  81. package/dist/components/card/card.anatomy.mjs.map +1 -0
  82. package/dist/components/card/card.connect.mjs +24 -0
  83. package/dist/components/card/card.connect.mjs.map +1 -0
  84. package/dist/components/card/card.d.mts +9 -0
  85. package/dist/components/card/card.d.mts.map +1 -0
  86. package/dist/components/card/card.mjs +23 -0
  87. package/dist/components/card/card.mjs.map +1 -0
  88. package/dist/components/card/card.recipe.mjs +58 -0
  89. package/dist/components/card/card.recipe.mjs.map +1 -0
  90. package/dist/components/card/index.d.mts +2 -0
  91. package/dist/components/card/index.mjs +2 -0
  92. package/dist/components/carousel/carousel.d.mts +67 -0
  93. package/dist/components/carousel/carousel.d.mts.map +1 -0
  94. package/dist/components/carousel/carousel.mjs +123 -0
  95. package/dist/components/carousel/carousel.mjs.map +1 -0
  96. package/dist/components/carousel/carousel.recipe.mjs +131 -0
  97. package/dist/components/carousel/carousel.recipe.mjs.map +1 -0
  98. package/dist/components/carousel/index.d.mts +2 -0
  99. package/dist/components/carousel/index.mjs +2 -0
  100. package/dist/components/cascade-select/cascade-select.d.mts +102 -0
  101. package/dist/components/cascade-select/cascade-select.d.mts.map +1 -0
  102. package/dist/components/cascade-select/cascade-select.mjs +169 -0
  103. package/dist/components/cascade-select/cascade-select.mjs.map +1 -0
  104. package/dist/components/cascade-select/cascade-select.recipe.mjs +309 -0
  105. package/dist/components/cascade-select/cascade-select.recipe.mjs.map +1 -0
  106. package/dist/components/cascade-select/index.d.mts +2 -0
  107. package/dist/components/cascade-select/index.mjs +2 -0
  108. package/dist/components/checkbox/checkbox.d.mts +37 -0
  109. package/dist/components/checkbox/checkbox.d.mts.map +1 -0
  110. package/dist/components/checkbox/checkbox.mjs +55 -0
  111. package/dist/components/checkbox/checkbox.mjs.map +1 -0
  112. package/dist/components/checkbox/checkbox.recipe.mjs +170 -0
  113. package/dist/components/checkbox/checkbox.recipe.mjs.map +1 -0
  114. package/dist/components/checkbox/index.d.mts +2 -0
  115. package/dist/components/checkbox/index.mjs +2 -0
  116. package/dist/components/clipboard/clipboard.d.mts +26 -0
  117. package/dist/components/clipboard/clipboard.d.mts.map +1 -0
  118. package/dist/components/clipboard/clipboard.mjs +76 -0
  119. package/dist/components/clipboard/clipboard.mjs.map +1 -0
  120. package/dist/components/clipboard/clipboard.recipe.mjs +119 -0
  121. package/dist/components/clipboard/clipboard.recipe.mjs.map +1 -0
  122. package/dist/components/clipboard/index.d.mts +2 -0
  123. package/dist/components/clipboard/index.mjs +2 -0
  124. package/dist/components/collapsible/collapsible.d.mts +21 -0
  125. package/dist/components/collapsible/collapsible.d.mts.map +1 -0
  126. package/dist/components/collapsible/collapsible.mjs +23 -0
  127. package/dist/components/collapsible/collapsible.mjs.map +1 -0
  128. package/dist/components/collapsible/collapsible.recipe.mjs +159 -0
  129. package/dist/components/collapsible/collapsible.recipe.mjs.map +1 -0
  130. package/dist/components/collapsible/index.d.mts +2 -0
  131. package/dist/components/collapsible/index.mjs +2 -0
  132. package/dist/components/collection-window.mjs +299 -0
  133. package/dist/components/collection-window.mjs.map +1 -0
  134. package/dist/components/color-picker/color-picker.d.mts +67 -0
  135. package/dist/components/color-picker/color-picker.d.mts.map +1 -0
  136. package/dist/components/color-picker/color-picker.mjs +230 -0
  137. package/dist/components/color-picker/color-picker.mjs.map +1 -0
  138. package/dist/components/color-picker/color-picker.recipe.mjs +345 -0
  139. package/dist/components/color-picker/color-picker.recipe.mjs.map +1 -0
  140. package/dist/components/color-picker/index.d.mts +2 -0
  141. package/dist/components/color-picker/index.mjs +2 -0
  142. package/dist/components/combobox/combobox.d.mts +129 -0
  143. package/dist/components/combobox/combobox.d.mts.map +1 -0
  144. package/dist/components/combobox/combobox.mjs +92 -0
  145. package/dist/components/combobox/combobox.mjs.map +1 -0
  146. package/dist/components/combobox/combobox.recipe.mjs +336 -0
  147. package/dist/components/combobox/combobox.recipe.mjs.map +1 -0
  148. package/dist/components/combobox/index.d.mts +2 -0
  149. package/dist/components/combobox/index.mjs +2 -0
  150. package/dist/components/date-input/date-input.d.mts +69 -0
  151. package/dist/components/date-input/date-input.d.mts.map +1 -0
  152. package/dist/components/date-input/date-input.mjs +106 -0
  153. package/dist/components/date-input/date-input.mjs.map +1 -0
  154. package/dist/components/date-input/date-input.recipe.mjs +142 -0
  155. package/dist/components/date-input/date-input.recipe.mjs.map +1 -0
  156. package/dist/components/date-input/index.d.mts +2 -0
  157. package/dist/components/date-input/index.mjs +2 -0
  158. package/dist/components/date-picker/date-picker.d.mts +114 -0
  159. package/dist/components/date-picker/date-picker.d.mts.map +1 -0
  160. package/dist/components/date-picker/date-picker.mjs +269 -0
  161. package/dist/components/date-picker/date-picker.mjs.map +1 -0
  162. package/dist/components/date-picker/date-picker.recipe.mjs +495 -0
  163. package/dist/components/date-picker/date-picker.recipe.mjs.map +1 -0
  164. package/dist/components/date-picker/index.d.mts +2 -0
  165. package/dist/components/date-picker/index.mjs +2 -0
  166. package/dist/components/details.d.mts +9 -0
  167. package/dist/components/details.d.mts.map +1 -0
  168. package/dist/components/dialog/dialog.d.mts +45 -0
  169. package/dist/components/dialog/dialog.d.mts.map +1 -0
  170. package/dist/components/dialog/dialog.mjs +49 -0
  171. package/dist/components/dialog/dialog.mjs.map +1 -0
  172. package/dist/components/dialog/dialog.recipe.mjs +138 -0
  173. package/dist/components/dialog/dialog.recipe.mjs.map +1 -0
  174. package/dist/components/dialog/index.d.mts +2 -0
  175. package/dist/components/dialog/index.mjs +2 -0
  176. package/dist/components/drawer/drawer.d.mts +62 -0
  177. package/dist/components/drawer/drawer.d.mts.map +1 -0
  178. package/dist/components/drawer/drawer.mjs +65 -0
  179. package/dist/components/drawer/drawer.mjs.map +1 -0
  180. package/dist/components/drawer/drawer.recipe.mjs +201 -0
  181. package/dist/components/drawer/drawer.recipe.mjs.map +1 -0
  182. package/dist/components/drawer/index.d.mts +2 -0
  183. package/dist/components/drawer/index.mjs +2 -0
  184. package/dist/components/editable/editable.d.mts +62 -0
  185. package/dist/components/editable/editable.d.mts.map +1 -0
  186. package/dist/components/editable/editable.mjs +78 -0
  187. package/dist/components/editable/editable.mjs.map +1 -0
  188. package/dist/components/editable/editable.recipe.mjs +152 -0
  189. package/dist/components/editable/editable.recipe.mjs.map +1 -0
  190. package/dist/components/editable/index.d.mts +2 -0
  191. package/dist/components/editable/index.mjs +2 -0
  192. package/dist/components/empty-state/empty-state.anatomy.mjs +8 -0
  193. package/dist/components/empty-state/empty-state.anatomy.mjs.map +1 -0
  194. package/dist/components/empty-state/empty-state.connect.mjs +26 -0
  195. package/dist/components/empty-state/empty-state.connect.mjs.map +1 -0
  196. package/dist/components/empty-state/empty-state.d.mts +10 -0
  197. package/dist/components/empty-state/empty-state.d.mts.map +1 -0
  198. package/dist/components/empty-state/empty-state.mjs +24 -0
  199. package/dist/components/empty-state/empty-state.mjs.map +1 -0
  200. package/dist/components/empty-state/empty-state.recipe.mjs +134 -0
  201. package/dist/components/empty-state/empty-state.recipe.mjs.map +1 -0
  202. package/dist/components/empty-state/index.d.mts +2 -0
  203. package/dist/components/empty-state/index.mjs +2 -0
  204. package/dist/components/field/field.anatomy.mjs +8 -0
  205. package/dist/components/field/field.anatomy.mjs.map +1 -0
  206. package/dist/components/field/field.connect.mjs +117 -0
  207. package/dist/components/field/field.connect.mjs.map +1 -0
  208. package/dist/components/field/field.d.mts +19 -0
  209. package/dist/components/field/field.d.mts.map +1 -0
  210. package/dist/components/field/field.mjs +77 -0
  211. package/dist/components/field/field.mjs.map +1 -0
  212. package/dist/components/field/field.recipe.mjs +60 -0
  213. package/dist/components/field/field.recipe.mjs.map +1 -0
  214. package/dist/components/field/index.d.mts +2 -0
  215. package/dist/components/field/index.mjs +2 -0
  216. package/dist/components/fieldset/fieldset.anatomy.mjs +8 -0
  217. package/dist/components/fieldset/fieldset.anatomy.mjs.map +1 -0
  218. package/dist/components/fieldset/fieldset.connect.mjs +60 -0
  219. package/dist/components/fieldset/fieldset.connect.mjs.map +1 -0
  220. package/dist/components/fieldset/fieldset.d.mts +13 -0
  221. package/dist/components/fieldset/fieldset.d.mts.map +1 -0
  222. package/dist/components/fieldset/fieldset.mjs +26 -0
  223. package/dist/components/fieldset/fieldset.mjs.map +1 -0
  224. package/dist/components/fieldset/fieldset.recipe.mjs +42 -0
  225. package/dist/components/fieldset/fieldset.recipe.mjs.map +1 -0
  226. package/dist/components/fieldset/index.d.mts +2 -0
  227. package/dist/components/fieldset/index.mjs +2 -0
  228. package/dist/components/file-upload/file-upload.d.mts +105 -0
  229. package/dist/components/file-upload/file-upload.d.mts.map +1 -0
  230. package/dist/components/file-upload/file-upload.mjs +127 -0
  231. package/dist/components/file-upload/file-upload.mjs.map +1 -0
  232. package/dist/components/file-upload/file-upload.recipe.mjs +236 -0
  233. package/dist/components/file-upload/file-upload.recipe.mjs.map +1 -0
  234. package/dist/components/file-upload/index.d.mts +2 -0
  235. package/dist/components/file-upload/index.mjs +2 -0
  236. package/dist/components/floating-panel/floating-panel.d.mts +87 -0
  237. package/dist/components/floating-panel/floating-panel.d.mts.map +1 -0
  238. package/dist/components/floating-panel/floating-panel.mjs +89 -0
  239. package/dist/components/floating-panel/floating-panel.mjs.map +1 -0
  240. package/dist/components/floating-panel/floating-panel.recipe.mjs +156 -0
  241. package/dist/components/floating-panel/floating-panel.recipe.mjs.map +1 -0
  242. package/dist/components/floating-panel/index.d.mts +2 -0
  243. package/dist/components/floating-panel/index.mjs +2 -0
  244. package/dist/components/hover-card/hover-card.d.mts +48 -0
  245. package/dist/components/hover-card/hover-card.d.mts.map +1 -0
  246. package/dist/components/hover-card/hover-card.mjs +31 -0
  247. package/dist/components/hover-card/hover-card.mjs.map +1 -0
  248. package/dist/components/hover-card/hover-card.recipe.mjs +133 -0
  249. package/dist/components/hover-card/hover-card.recipe.mjs.map +1 -0
  250. package/dist/components/hover-card/index.d.mts +2 -0
  251. package/dist/components/hover-card/index.mjs +2 -0
  252. package/dist/components/image-cropper/image-cropper.d.mts +111 -0
  253. package/dist/components/image-cropper/image-cropper.d.mts.map +1 -0
  254. package/dist/components/image-cropper/image-cropper.mjs +71 -0
  255. package/dist/components/image-cropper/image-cropper.mjs.map +1 -0
  256. package/dist/components/image-cropper/image-cropper.recipe.mjs +126 -0
  257. package/dist/components/image-cropper/image-cropper.recipe.mjs.map +1 -0
  258. package/dist/components/image-cropper/index.d.mts +2 -0
  259. package/dist/components/image-cropper/index.mjs +2 -0
  260. package/dist/components/input/index.d.mts +2 -0
  261. package/dist/components/input/index.mjs +2 -0
  262. package/dist/components/input/input.anatomy.mjs +8 -0
  263. package/dist/components/input/input.anatomy.mjs.map +1 -0
  264. package/dist/components/input/input.connect.mjs +82 -0
  265. package/dist/components/input/input.connect.mjs.map +1 -0
  266. package/dist/components/input/input.d.mts +31 -0
  267. package/dist/components/input/input.d.mts.map +1 -0
  268. package/dist/components/input/input.mjs +37 -0
  269. package/dist/components/input/input.mjs.map +1 -0
  270. package/dist/components/input/input.recipe.mjs +111 -0
  271. package/dist/components/input/input.recipe.mjs.map +1 -0
  272. package/dist/components/kbd/index.d.mts +2 -0
  273. package/dist/components/kbd/index.mjs +2 -0
  274. package/dist/components/kbd/kbd.anatomy.mjs +8 -0
  275. package/dist/components/kbd/kbd.anatomy.mjs.map +1 -0
  276. package/dist/components/kbd/kbd.connect.mjs +17 -0
  277. package/dist/components/kbd/kbd.connect.mjs.map +1 -0
  278. package/dist/components/kbd/kbd.d.mts +10 -0
  279. package/dist/components/kbd/kbd.d.mts.map +1 -0
  280. package/dist/components/kbd/kbd.mjs +18 -0
  281. package/dist/components/kbd/kbd.mjs.map +1 -0
  282. package/dist/components/kbd/kbd.recipe.mjs +55 -0
  283. package/dist/components/kbd/kbd.recipe.mjs.map +1 -0
  284. package/dist/components/listbox/index.d.mts +2 -0
  285. package/dist/components/listbox/index.mjs +2 -0
  286. package/dist/components/listbox/listbox.d.mts +70 -0
  287. package/dist/components/listbox/listbox.d.mts.map +1 -0
  288. package/dist/components/listbox/listbox.mjs +79 -0
  289. package/dist/components/listbox/listbox.mjs.map +1 -0
  290. package/dist/components/listbox/listbox.recipe.mjs +169 -0
  291. package/dist/components/listbox/listbox.recipe.mjs.map +1 -0
  292. package/dist/components/machine-translations.mjs +8 -0
  293. package/dist/components/machine-translations.mjs.map +1 -0
  294. package/dist/components/marquee/index.d.mts +2 -0
  295. package/dist/components/marquee/index.mjs +2 -0
  296. package/dist/components/marquee/marquee.d.mts +53 -0
  297. package/dist/components/marquee/marquee.d.mts.map +1 -0
  298. package/dist/components/marquee/marquee.mjs +30 -0
  299. package/dist/components/marquee/marquee.mjs.map +1 -0
  300. package/dist/components/marquee/marquee.recipe.mjs +123 -0
  301. package/dist/components/marquee/marquee.recipe.mjs.map +1 -0
  302. package/dist/components/menu/index.d.mts +2 -0
  303. package/dist/components/menu/index.mjs +2 -0
  304. package/dist/components/menu/menu.d.mts +66 -0
  305. package/dist/components/menu/menu.d.mts.map +1 -0
  306. package/dist/components/menu/menu.mjs +68 -0
  307. package/dist/components/menu/menu.mjs.map +1 -0
  308. package/dist/components/menu/menu.recipe.mjs +285 -0
  309. package/dist/components/menu/menu.recipe.mjs.map +1 -0
  310. package/dist/components/navigation-menu/index.d.mts +2 -0
  311. package/dist/components/navigation-menu/index.mjs +2 -0
  312. package/dist/components/navigation-menu/navigation-menu.d.mts +42 -0
  313. package/dist/components/navigation-menu/navigation-menu.d.mts.map +1 -0
  314. package/dist/components/navigation-menu/navigation-menu.mjs +47 -0
  315. package/dist/components/navigation-menu/navigation-menu.mjs.map +1 -0
  316. package/dist/components/navigation-menu/navigation-menu.recipe.mjs +271 -0
  317. package/dist/components/navigation-menu/navigation-menu.recipe.mjs.map +1 -0
  318. package/dist/components/number-input/index.d.mts +2 -0
  319. package/dist/components/number-input/index.mjs +2 -0
  320. package/dist/components/number-input/number-input.d.mts +88 -0
  321. package/dist/components/number-input/number-input.d.mts.map +1 -0
  322. package/dist/components/number-input/number-input.mjs +70 -0
  323. package/dist/components/number-input/number-input.mjs.map +1 -0
  324. package/dist/components/number-input/number-input.recipe.mjs +231 -0
  325. package/dist/components/number-input/number-input.recipe.mjs.map +1 -0
  326. package/dist/components/pagination/index.d.mts +2 -0
  327. package/dist/components/pagination/index.mjs +2 -0
  328. package/dist/components/pagination/pagination.d.mts +51 -0
  329. package/dist/components/pagination/pagination.d.mts.map +1 -0
  330. package/dist/components/pagination/pagination.mjs +74 -0
  331. package/dist/components/pagination/pagination.mjs.map +1 -0
  332. package/dist/components/pagination/pagination.recipe.mjs +144 -0
  333. package/dist/components/pagination/pagination.recipe.mjs.map +1 -0
  334. package/dist/components/password-input/index.d.mts +2 -0
  335. package/dist/components/password-input/index.mjs +2 -0
  336. package/dist/components/password-input/password-input.d.mts +37 -0
  337. package/dist/components/password-input/password-input.d.mts.map +1 -0
  338. package/dist/components/password-input/password-input.mjs +58 -0
  339. package/dist/components/password-input/password-input.mjs.map +1 -0
  340. package/dist/components/password-input/password-input.recipe.mjs +180 -0
  341. package/dist/components/password-input/password-input.recipe.mjs.map +1 -0
  342. package/dist/components/pin-input/index.d.mts +2 -0
  343. package/dist/components/pin-input/index.mjs +2 -0
  344. package/dist/components/pin-input/pin-input.d.mts +68 -0
  345. package/dist/components/pin-input/pin-input.d.mts.map +1 -0
  346. package/dist/components/pin-input/pin-input.mjs +51 -0
  347. package/dist/components/pin-input/pin-input.mjs.map +1 -0
  348. package/dist/components/pin-input/pin-input.recipe.mjs +81 -0
  349. package/dist/components/pin-input/pin-input.recipe.mjs.map +1 -0
  350. package/dist/components/popover/index.d.mts +2 -0
  351. package/dist/components/popover/index.mjs +2 -0
  352. package/dist/components/popover/popover.d.mts +42 -0
  353. package/dist/components/popover/popover.d.mts.map +1 -0
  354. package/dist/components/popover/popover.mjs +50 -0
  355. package/dist/components/popover/popover.mjs.map +1 -0
  356. package/dist/components/popover/popover.recipe.mjs +162 -0
  357. package/dist/components/popover/popover.recipe.mjs.map +1 -0
  358. package/dist/components/progress/index.d.mts +2 -0
  359. package/dist/components/progress/index.mjs +2 -0
  360. package/dist/components/progress/progress.d.mts +31 -0
  361. package/dist/components/progress/progress.d.mts.map +1 -0
  362. package/dist/components/progress/progress.mjs +42 -0
  363. package/dist/components/progress/progress.mjs.map +1 -0
  364. package/dist/components/progress/progress.recipe.mjs +189 -0
  365. package/dist/components/progress/progress.recipe.mjs.map +1 -0
  366. package/dist/components/qr-code/index.d.mts +2 -0
  367. package/dist/components/qr-code/index.mjs +2 -0
  368. package/dist/components/qr-code/qr-code.d.mts +36 -0
  369. package/dist/components/qr-code/qr-code.d.mts.map +1 -0
  370. package/dist/components/qr-code/qr-code.mjs +41 -0
  371. package/dist/components/qr-code/qr-code.mjs.map +1 -0
  372. package/dist/components/qr-code/qr-code.recipe.mjs +70 -0
  373. package/dist/components/qr-code/qr-code.recipe.mjs.map +1 -0
  374. package/dist/components/radio-group/index.d.mts +2 -0
  375. package/dist/components/radio-group/index.mjs +2 -0
  376. package/dist/components/radio-group/radio-group.d.mts +33 -0
  377. package/dist/components/radio-group/radio-group.d.mts.map +1 -0
  378. package/dist/components/radio-group/radio-group.mjs +47 -0
  379. package/dist/components/radio-group/radio-group.mjs.map +1 -0
  380. package/dist/components/radio-group/radio-group.recipe.mjs +189 -0
  381. package/dist/components/radio-group/radio-group.recipe.mjs.map +1 -0
  382. package/dist/components/rating-group/index.d.mts +2 -0
  383. package/dist/components/rating-group/index.mjs +2 -0
  384. package/dist/components/rating-group/rating-group.d.mts +43 -0
  385. package/dist/components/rating-group/rating-group.d.mts.map +1 -0
  386. package/dist/components/rating-group/rating-group.mjs +39 -0
  387. package/dist/components/rating-group/rating-group.mjs.map +1 -0
  388. package/dist/components/rating-group/rating-group.recipe.mjs +133 -0
  389. package/dist/components/rating-group/rating-group.recipe.mjs.map +1 -0
  390. package/dist/components/scroll-area/index.d.mts +2 -0
  391. package/dist/components/scroll-area/index.mjs +2 -0
  392. package/dist/components/scroll-area/scroll-area.d.mts +12 -0
  393. package/dist/components/scroll-area/scroll-area.d.mts.map +1 -0
  394. package/dist/components/scroll-area/scroll-area.mjs +31 -0
  395. package/dist/components/scroll-area/scroll-area.mjs.map +1 -0
  396. package/dist/components/scroll-area/scroll-area.recipe.mjs +76 -0
  397. package/dist/components/scroll-area/scroll-area.recipe.mjs.map +1 -0
  398. package/dist/components/select/index.d.mts +2 -0
  399. package/dist/components/select/index.mjs +2 -0
  400. package/dist/components/select/select.d.mts +90 -0
  401. package/dist/components/select/select.d.mts.map +1 -0
  402. package/dist/components/select/select.mjs +83 -0
  403. package/dist/components/select/select.mjs.map +1 -0
  404. package/dist/components/select/select.recipe.mjs +298 -0
  405. package/dist/components/select/select.recipe.mjs.map +1 -0
  406. package/dist/components/separator/index.d.mts +2 -0
  407. package/dist/components/separator/index.mjs +2 -0
  408. package/dist/components/separator/separator.anatomy.mjs +8 -0
  409. package/dist/components/separator/separator.anatomy.mjs.map +1 -0
  410. package/dist/components/separator/separator.connect.mjs +28 -0
  411. package/dist/components/separator/separator.connect.mjs.map +1 -0
  412. package/dist/components/separator/separator.d.mts +11 -0
  413. package/dist/components/separator/separator.d.mts.map +1 -0
  414. package/dist/components/separator/separator.mjs +15 -0
  415. package/dist/components/separator/separator.mjs.map +1 -0
  416. package/dist/components/separator/separator.recipe.mjs +22 -0
  417. package/dist/components/separator/separator.recipe.mjs.map +1 -0
  418. package/dist/components/signature-pad/index.d.mts +2 -0
  419. package/dist/components/signature-pad/index.mjs +2 -0
  420. package/dist/components/signature-pad/signature-pad.d.mts +44 -0
  421. package/dist/components/signature-pad/signature-pad.d.mts.map +1 -0
  422. package/dist/components/signature-pad/signature-pad.mjs +90 -0
  423. package/dist/components/signature-pad/signature-pad.mjs.map +1 -0
  424. package/dist/components/signature-pad/signature-pad.recipe.mjs +111 -0
  425. package/dist/components/signature-pad/signature-pad.recipe.mjs.map +1 -0
  426. package/dist/components/skeleton/index.d.mts +2 -0
  427. package/dist/components/skeleton/index.mjs +2 -0
  428. package/dist/components/skeleton/skeleton.anatomy.mjs +8 -0
  429. package/dist/components/skeleton/skeleton.anatomy.mjs.map +1 -0
  430. package/dist/components/skeleton/skeleton.connect.mjs +26 -0
  431. package/dist/components/skeleton/skeleton.connect.mjs.map +1 -0
  432. package/dist/components/skeleton/skeleton.d.mts +9 -0
  433. package/dist/components/skeleton/skeleton.d.mts.map +1 -0
  434. package/dist/components/skeleton/skeleton.mjs +16 -0
  435. package/dist/components/skeleton/skeleton.mjs.map +1 -0
  436. package/dist/components/skeleton/skeleton.recipe.mjs +46 -0
  437. package/dist/components/skeleton/skeleton.recipe.mjs.map +1 -0
  438. package/dist/components/slider/index.d.mts +2 -0
  439. package/dist/components/slider/index.mjs +2 -0
  440. package/dist/components/slider/slider.d.mts +72 -0
  441. package/dist/components/slider/slider.d.mts.map +1 -0
  442. package/dist/components/slider/slider.mjs +34 -0
  443. package/dist/components/slider/slider.mjs.map +1 -0
  444. package/dist/components/slider/slider.recipe.mjs +219 -0
  445. package/dist/components/slider/slider.recipe.mjs.map +1 -0
  446. package/dist/components/snackbar/index.d.mts +2 -0
  447. package/dist/components/snackbar/index.mjs +2 -0
  448. package/dist/components/snackbar/snackbar.d.mts +57 -0
  449. package/dist/components/snackbar/snackbar.d.mts.map +1 -0
  450. package/dist/components/snackbar/snackbar.mjs +226 -0
  451. package/dist/components/snackbar/snackbar.mjs.map +1 -0
  452. package/dist/components/snackbar/snackbar.recipe.mjs +217 -0
  453. package/dist/components/snackbar/snackbar.recipe.mjs.map +1 -0
  454. package/dist/components/spinner/index.d.mts +2 -0
  455. package/dist/components/spinner/index.mjs +2 -0
  456. package/dist/components/spinner/spinner.anatomy.mjs +8 -0
  457. package/dist/components/spinner/spinner.anatomy.mjs.map +1 -0
  458. package/dist/components/spinner/spinner.connect.mjs +27 -0
  459. package/dist/components/spinner/spinner.connect.mjs.map +1 -0
  460. package/dist/components/spinner/spinner.d.mts +10 -0
  461. package/dist/components/spinner/spinner.d.mts.map +1 -0
  462. package/dist/components/spinner/spinner.mjs +25 -0
  463. package/dist/components/spinner/spinner.mjs.map +1 -0
  464. package/dist/components/spinner/spinner.recipe.mjs +70 -0
  465. package/dist/components/spinner/spinner.recipe.mjs.map +1 -0
  466. package/dist/components/splitter/index.d.mts +2 -0
  467. package/dist/components/splitter/index.mjs +2 -0
  468. package/dist/components/splitter/splitter.d.mts +57 -0
  469. package/dist/components/splitter/splitter.d.mts.map +1 -0
  470. package/dist/components/splitter/splitter.mjs +40 -0
  471. package/dist/components/splitter/splitter.mjs.map +1 -0
  472. package/dist/components/splitter/splitter.recipe.mjs +129 -0
  473. package/dist/components/splitter/splitter.recipe.mjs.map +1 -0
  474. package/dist/components/steps/index.d.mts +2 -0
  475. package/dist/components/steps/index.mjs +2 -0
  476. package/dist/components/steps/steps.d.mts +42 -0
  477. package/dist/components/steps/steps.d.mts.map +1 -0
  478. package/dist/components/steps/steps.mjs +72 -0
  479. package/dist/components/steps/steps.mjs.map +1 -0
  480. package/dist/components/steps/steps.recipe.mjs +291 -0
  481. package/dist/components/steps/steps.recipe.mjs.map +1 -0
  482. package/dist/components/switch/index.d.mts +2 -0
  483. package/dist/components/switch/index.mjs +2 -0
  484. package/dist/components/switch/switch.d.mts +36 -0
  485. package/dist/components/switch/switch.d.mts.map +1 -0
  486. package/dist/components/switch/switch.mjs +50 -0
  487. package/dist/components/switch/switch.mjs.map +1 -0
  488. package/dist/components/switch/switch.recipe.mjs +171 -0
  489. package/dist/components/switch/switch.recipe.mjs.map +1 -0
  490. package/dist/components/table/index.d.mts +2 -0
  491. package/dist/components/table/index.mjs +2 -0
  492. package/dist/components/table/table.anatomy.mjs +8 -0
  493. package/dist/components/table/table.anatomy.mjs.map +1 -0
  494. package/dist/components/table/table.connect.mjs +50 -0
  495. package/dist/components/table/table.connect.mjs.map +1 -0
  496. package/dist/components/table/table.d.mts +10 -0
  497. package/dist/components/table/table.d.mts.map +1 -0
  498. package/dist/components/table/table.mjs +90 -0
  499. package/dist/components/table/table.mjs.map +1 -0
  500. package/dist/components/table/table.recipe.mjs +186 -0
  501. package/dist/components/table/table.recipe.mjs.map +1 -0
  502. package/dist/components/tabs/index.d.mts +2 -0
  503. package/dist/components/tabs/index.mjs +2 -0
  504. package/dist/components/tabs/tabs.d.mts +40 -0
  505. package/dist/components/tabs/tabs.d.mts.map +1 -0
  506. package/dist/components/tabs/tabs.mjs +23 -0
  507. package/dist/components/tabs/tabs.mjs.map +1 -0
  508. package/dist/components/tabs/tabs.recipe.mjs +182 -0
  509. package/dist/components/tabs/tabs.recipe.mjs.map +1 -0
  510. package/dist/components/tags-input/index.d.mts +2 -0
  511. package/dist/components/tags-input/index.mjs +2 -0
  512. package/dist/components/tags-input/tags-input.d.mts +77 -0
  513. package/dist/components/tags-input/tags-input.d.mts.map +1 -0
  514. package/dist/components/tags-input/tags-input.mjs +103 -0
  515. package/dist/components/tags-input/tags-input.mjs.map +1 -0
  516. package/dist/components/tags-input/tags-input.recipe.mjs +320 -0
  517. package/dist/components/tags-input/tags-input.recipe.mjs.map +1 -0
  518. package/dist/components/textarea/index.d.mts +2 -0
  519. package/dist/components/textarea/index.mjs +2 -0
  520. package/dist/components/textarea/textarea.anatomy.mjs +8 -0
  521. package/dist/components/textarea/textarea.anatomy.mjs.map +1 -0
  522. package/dist/components/textarea/textarea.connect.mjs +82 -0
  523. package/dist/components/textarea/textarea.connect.mjs.map +1 -0
  524. package/dist/components/textarea/textarea.d.mts +32 -0
  525. package/dist/components/textarea/textarea.d.mts.map +1 -0
  526. package/dist/components/textarea/textarea.mjs +41 -0
  527. package/dist/components/textarea/textarea.mjs.map +1 -0
  528. package/dist/components/textarea/textarea.recipe.mjs +58 -0
  529. package/dist/components/textarea/textarea.recipe.mjs.map +1 -0
  530. package/dist/components/timer/index.d.mts +2 -0
  531. package/dist/components/timer/index.mjs +2 -0
  532. package/dist/components/timer/timer.d.mts +31 -0
  533. package/dist/components/timer/timer.d.mts.map +1 -0
  534. package/dist/components/timer/timer.mjs +98 -0
  535. package/dist/components/timer/timer.mjs.map +1 -0
  536. package/dist/components/timer/timer.recipe.mjs +99 -0
  537. package/dist/components/timer/timer.recipe.mjs.map +1 -0
  538. package/dist/components/toast/index.d.mts +2 -0
  539. package/dist/components/toast/index.mjs +2 -0
  540. package/dist/components/toast/toast.d.mts +55 -0
  541. package/dist/components/toast/toast.d.mts.map +1 -0
  542. package/dist/components/toast/toast.mjs +194 -0
  543. package/dist/components/toast/toast.mjs.map +1 -0
  544. package/dist/components/toast/toast.recipe.mjs +172 -0
  545. package/dist/components/toast/toast.recipe.mjs.map +1 -0
  546. package/dist/components/toc/index.d.mts +2 -0
  547. package/dist/components/toc/index.mjs +2 -0
  548. package/dist/components/toc/toc.d.mts +47 -0
  549. package/dist/components/toc/toc.d.mts.map +1 -0
  550. package/dist/components/toc/toc.mjs +239 -0
  551. package/dist/components/toc/toc.mjs.map +1 -0
  552. package/dist/components/toc/toc.recipe.mjs +147 -0
  553. package/dist/components/toc/toc.recipe.mjs.map +1 -0
  554. package/dist/components/toggle/index.d.mts +2 -0
  555. package/dist/components/toggle/index.mjs +2 -0
  556. package/dist/components/toggle/toggle.d.mts +21 -0
  557. package/dist/components/toggle/toggle.d.mts.map +1 -0
  558. package/dist/components/toggle/toggle.mjs +34 -0
  559. package/dist/components/toggle/toggle.mjs.map +1 -0
  560. package/dist/components/toggle/toggle.recipe.mjs +175 -0
  561. package/dist/components/toggle/toggle.recipe.mjs.map +1 -0
  562. package/dist/components/toggle-group/index.d.mts +2 -0
  563. package/dist/components/toggle-group/index.mjs +2 -0
  564. package/dist/components/toggle-group/toggle-group.d.mts +29 -0
  565. package/dist/components/toggle-group/toggle-group.d.mts.map +1 -0
  566. package/dist/components/toggle-group/toggle-group.mjs +18 -0
  567. package/dist/components/toggle-group/toggle-group.mjs.map +1 -0
  568. package/dist/components/toggle-group/toggle-group.recipe.mjs +190 -0
  569. package/dist/components/toggle-group/toggle-group.recipe.mjs.map +1 -0
  570. package/dist/components/tooltip/index.d.mts +2 -0
  571. package/dist/components/tooltip/index.mjs +2 -0
  572. package/dist/components/tooltip/tooltip.d.mts +66 -0
  573. package/dist/components/tooltip/tooltip.d.mts.map +1 -0
  574. package/dist/components/tooltip/tooltip.mjs +64 -0
  575. package/dist/components/tooltip/tooltip.mjs.map +1 -0
  576. package/dist/components/tooltip/tooltip.recipe.mjs +149 -0
  577. package/dist/components/tooltip/tooltip.recipe.mjs.map +1 -0
  578. package/dist/components/tour/index.d.mts +2 -0
  579. package/dist/components/tour/index.mjs +2 -0
  580. package/dist/components/tour/tour.d.mts +92 -0
  581. package/dist/components/tour/tour.d.mts.map +1 -0
  582. package/dist/components/tour/tour.mjs +89 -0
  583. package/dist/components/tour/tour.mjs.map +1 -0
  584. package/dist/components/tour/tour.recipe.mjs +164 -0
  585. package/dist/components/tour/tour.recipe.mjs.map +1 -0
  586. package/dist/components/tree-view/index.d.mts +2 -0
  587. package/dist/components/tree-view/index.mjs +2 -0
  588. package/dist/components/tree-view/tree-view.d.mts +108 -0
  589. package/dist/components/tree-view/tree-view.d.mts.map +1 -0
  590. package/dist/components/tree-view/tree-view.mjs +145 -0
  591. package/dist/components/tree-view/tree-view.mjs.map +1 -0
  592. package/dist/components/tree-view/tree-view.recipe.mjs +458 -0
  593. package/dist/components/tree-view/tree-view.recipe.mjs.map +1 -0
  594. package/dist/icons/src/calendar.mjs +13 -0
  595. package/dist/icons/src/calendar.mjs.map +1 -0
  596. package/dist/icons/src/checkmark.mjs +13 -0
  597. package/dist/icons/src/checkmark.mjs.map +1 -0
  598. package/dist/icons/src/chevron-down.mjs +13 -0
  599. package/dist/icons/src/chevron-down.mjs.map +1 -0
  600. package/dist/icons/src/chevron-left.mjs +13 -0
  601. package/dist/icons/src/chevron-left.mjs.map +1 -0
  602. package/dist/icons/src/chevron-right.mjs +13 -0
  603. package/dist/icons/src/chevron-right.mjs.map +1 -0
  604. package/dist/icons/src/chevron-up.mjs +13 -0
  605. package/dist/icons/src/chevron-up.mjs.map +1 -0
  606. package/dist/icons/src/chevrons-left.mjs +13 -0
  607. package/dist/icons/src/chevrons-left.mjs.map +1 -0
  608. package/dist/icons/src/chevrons-right.mjs +13 -0
  609. package/dist/icons/src/chevrons-right.mjs.map +1 -0
  610. package/dist/icons/src/chevrons-up-down.mjs +13 -0
  611. package/dist/icons/src/chevrons-up-down.mjs.map +1 -0
  612. package/dist/icons/src/close.mjs +13 -0
  613. package/dist/icons/src/close.mjs.map +1 -0
  614. package/dist/icons/src/copy.mjs +13 -0
  615. package/dist/icons/src/copy.mjs.map +1 -0
  616. package/dist/icons/src/edit.mjs +13 -0
  617. package/dist/icons/src/edit.mjs.map +1 -0
  618. package/dist/icons/src/error.mjs +13 -0
  619. package/dist/icons/src/error.mjs.map +1 -0
  620. package/dist/icons/src/eyedropper.mjs +13 -0
  621. package/dist/icons/src/eyedropper.mjs.map +1 -0
  622. package/dist/icons/src/file.mjs +13 -0
  623. package/dist/icons/src/file.mjs.map +1 -0
  624. package/dist/icons/src/hide.mjs +13 -0
  625. package/dist/icons/src/hide.mjs.map +1 -0
  626. package/dist/icons/src/index.mjs +58 -0
  627. package/dist/icons/src/index.mjs.map +1 -0
  628. package/dist/icons/src/info.mjs +13 -0
  629. package/dist/icons/src/info.mjs.map +1 -0
  630. package/dist/icons/src/maximize.mjs +13 -0
  631. package/dist/icons/src/maximize.mjs.map +1 -0
  632. package/dist/icons/src/minus.mjs +13 -0
  633. package/dist/icons/src/minus.mjs.map +1 -0
  634. package/dist/icons/src/pause.mjs +13 -0
  635. package/dist/icons/src/pause.mjs.map +1 -0
  636. package/dist/icons/src/play.mjs +13 -0
  637. package/dist/icons/src/play.mjs.map +1 -0
  638. package/dist/icons/src/reset.mjs +13 -0
  639. package/dist/icons/src/reset.mjs.map +1 -0
  640. package/dist/icons/src/restore.mjs +13 -0
  641. package/dist/icons/src/restore.mjs.map +1 -0
  642. package/dist/icons/src/show.mjs +13 -0
  643. package/dist/icons/src/show.mjs.map +1 -0
  644. package/dist/icons/src/star.mjs +13 -0
  645. package/dist/icons/src/star.mjs.map +1 -0
  646. package/dist/icons/src/success.mjs +2 -0
  647. package/dist/icons/src/trash.mjs +13 -0
  648. package/dist/icons/src/trash.mjs.map +1 -0
  649. package/dist/icons/src/user.mjs +13 -0
  650. package/dist/icons/src/user.mjs.map +1 -0
  651. package/dist/icons/src/warning.mjs +13 -0
  652. package/dist/icons/src/warning.mjs.map +1 -0
  653. package/dist/index.d.mts +139 -0
  654. package/dist/index.mjs +71 -0
  655. package/dist/preset.d.mts +2 -0
  656. package/dist/preset.mjs +2 -0
  657. package/dist/provider/locale-context.mjs +36 -0
  658. package/dist/provider/locale-context.mjs.map +1 -0
  659. package/dist/provider/synapse-provider.d.mts +17 -0
  660. package/dist/provider/synapse-provider.d.mts.map +1 -0
  661. package/dist/provider/synapse-provider.mjs +59 -0
  662. package/dist/provider/synapse-provider.mjs.map +1 -0
  663. package/dist/provider/translations.d.mts +179 -0
  664. package/dist/provider/translations.d.mts.map +1 -0
  665. package/dist/provider/translations.mjs +201 -0
  666. package/dist/provider/translations.mjs.map +1 -0
  667. package/dist/provider/use-theme.d.mts +7 -0
  668. package/dist/provider/use-theme.d.mts.map +1 -0
  669. package/dist/provider/use-theme.mjs +37 -0
  670. package/dist/provider/use-theme.mjs.map +1 -0
  671. package/dist/react/styled-system/css/conditions.mjs +29 -0
  672. package/dist/react/styled-system/css/conditions.mjs.map +1 -0
  673. package/dist/react/styled-system/css/css.mjs +39 -0
  674. package/dist/react/styled-system/css/css.mjs.map +1 -0
  675. package/dist/react/styled-system/css/cva.mjs +66 -0
  676. package/dist/react/styled-system/css/cva.mjs.map +1 -0
  677. package/dist/react/styled-system/css/cx.mjs +13 -0
  678. package/dist/react/styled-system/css/cx.mjs.map +1 -0
  679. package/dist/react/styled-system/css/sva.mjs +44 -0
  680. package/dist/react/styled-system/css/sva.mjs.map +1 -0
  681. package/dist/react/styled-system/helpers.mjs +231 -0
  682. package/dist/react/styled-system/helpers.mjs.map +1 -0
  683. package/dist/shared/button-style.mjs +10 -0
  684. package/dist/shared/button-style.mjs.map +1 -0
  685. package/dist/shared/character-count.mjs +29 -0
  686. package/dist/shared/character-count.mjs.map +1 -0
  687. package/dist/shared/collection-internal.mjs +24 -0
  688. package/dist/shared/collection-internal.mjs.map +1 -0
  689. package/dist/shared/collection.d.mts +120 -0
  690. package/dist/shared/collection.d.mts.map +1 -0
  691. package/dist/shared/collection.mjs +395 -0
  692. package/dist/shared/collection.mjs.map +1 -0
  693. package/dist/shared/controller.d.mts +4 -0
  694. package/dist/shared/controller.d.mts.map +1 -0
  695. package/dist/shared/controller.mjs +53 -0
  696. package/dist/shared/controller.mjs.map +1 -0
  697. package/dist/shared/field-context.mjs +47 -0
  698. package/dist/shared/field-context.mjs.map +1 -0
  699. package/dist/shared/field-description.mjs +13 -0
  700. package/dist/shared/field-description.mjs.map +1 -0
  701. package/dist/shared/icon.mjs +23 -0
  702. package/dist/shared/icon.mjs.map +1 -0
  703. package/dist/shared/input-modality.mjs +47 -0
  704. package/dist/shared/input-modality.mjs.map +1 -0
  705. package/dist/shared/input-style.mjs +10 -0
  706. package/dist/shared/input-style.mjs.map +1 -0
  707. package/dist/shared/layering.d.mts +17 -0
  708. package/dist/shared/layering.d.mts.map +1 -0
  709. package/dist/shared/layering.mjs +37 -0
  710. package/dist/shared/layering.mjs.map +1 -0
  711. package/dist/shared/notification.d.mts +10 -0
  712. package/dist/shared/notification.d.mts.map +1 -0
  713. package/dist/shared/notification.mjs +105 -0
  714. package/dist/shared/notification.mjs.map +1 -0
  715. package/dist/shared/reduced-motion.mjs +19 -0
  716. package/dist/shared/reduced-motion.mjs.map +1 -0
  717. package/dist/shared/select-indicator.mjs +40 -0
  718. package/dist/shared/select-indicator.mjs.map +1 -0
  719. package/dist/shared/size-scale.d.mts +6 -0
  720. package/dist/shared/size-scale.d.mts.map +1 -0
  721. package/dist/shared/size-scale.mjs +28 -0
  722. package/dist/shared/size-scale.mjs.map +1 -0
  723. package/dist/shared/state-parts.mjs +123 -0
  724. package/dist/shared/state-parts.mjs.map +1 -0
  725. package/dist/shared/text-entry.mjs +54 -0
  726. package/dist/shared/text-entry.mjs.map +1 -0
  727. package/dist/styles.css +6238 -0
  728. package/dist/system/as-child.mjs +42 -0
  729. package/dist/system/as-child.mjs.map +1 -0
  730. package/dist/system/context.mjs +54 -0
  731. package/dist/system/context.mjs.map +1 -0
  732. package/dist/system/controlled.mjs +45 -0
  733. package/dist/system/controlled.mjs.map +1 -0
  734. package/dist/system/create-component.mjs +285 -0
  735. package/dist/system/create-component.mjs.map +1 -0
  736. package/dist/system/create-part.mjs +123 -0
  737. package/dist/system/create-part.mjs.map +1 -0
  738. package/dist/system/dev-warn.mjs +13 -0
  739. package/dist/system/dev-warn.mjs.map +1 -0
  740. package/dist/system/getters.mjs +24 -0
  741. package/dist/system/getters.mjs.map +1 -0
  742. package/dist/system/merge-props.d.mts +5 -0
  743. package/dist/system/merge-props.d.mts.map +1 -0
  744. package/dist/system/merge-props.mjs +95 -0
  745. package/dist/system/merge-props.mjs.map +1 -0
  746. package/dist/system/react-node.mjs +17 -0
  747. package/dist/system/react-node.mjs.map +1 -0
  748. package/dist/system/refs.mjs +21 -0
  749. package/dist/system/refs.mjs.map +1 -0
  750. package/dist/system/styled-component.mjs +15 -0
  751. package/dist/system/styled-component.mjs.map +1 -0
  752. package/dist/system/types.d.mts +47 -0
  753. package/dist/system/types.d.mts.map +1 -0
  754. package/dist/tokens/dist/preset.d.mts +6 -0
  755. package/dist/tokens/dist/preset.d.mts.map +1 -0
  756. package/dist/tokens/dist/preset.mjs +997 -0
  757. package/dist/tokens/dist/preset.mjs.map +1 -0
  758. package/package.json +409 -4
  759. package/skills/components/accordion/SKILL.md +138 -0
  760. package/skills/components/alert/SKILL.md +126 -0
  761. package/skills/components/angle-slider/SKILL.md +155 -0
  762. package/skills/components/avatar/SKILL.md +123 -0
  763. package/skills/components/badge/SKILL.md +117 -0
  764. package/skills/components/breadcrumb/SKILL.md +128 -0
  765. package/skills/components/button/SKILL.md +122 -0
  766. package/skills/components/card/SKILL.md +126 -0
  767. package/skills/components/carousel/SKILL.md +176 -0
  768. package/skills/components/cascade-select/SKILL.md +206 -0
  769. package/skills/components/checkbox/SKILL.md +149 -0
  770. package/skills/components/clipboard/SKILL.md +139 -0
  771. package/skills/components/collapsible/SKILL.md +130 -0
  772. package/skills/components/color-picker/SKILL.md +216 -0
  773. package/skills/components/combobox/SKILL.md +218 -0
  774. package/skills/components/date-input/SKILL.md +157 -0
  775. package/skills/components/date-picker/SKILL.md +235 -0
  776. package/skills/components/dialog/SKILL.md +159 -0
  777. package/skills/components/drawer/SKILL.md +192 -0
  778. package/skills/components/editable/SKILL.md +162 -0
  779. package/skills/components/empty-state/SKILL.md +125 -0
  780. package/skills/components/field/SKILL.md +133 -0
  781. package/skills/components/fieldset/SKILL.md +123 -0
  782. package/skills/components/file-upload/SKILL.md +184 -0
  783. package/skills/components/floating-panel/SKILL.md +206 -0
  784. package/skills/components/hover-card/SKILL.md +173 -0
  785. package/skills/components/image-cropper/SKILL.md +158 -0
  786. package/skills/components/input/SKILL.md +131 -0
  787. package/skills/components/kbd/SKILL.md +116 -0
  788. package/skills/components/listbox/SKILL.md +172 -0
  789. package/skills/components/marquee/SKILL.md +151 -0
  790. package/skills/components/menu/SKILL.md +202 -0
  791. package/skills/components/navigation-menu/SKILL.md +172 -0
  792. package/skills/components/number-input/SKILL.md +177 -0
  793. package/skills/components/pagination/SKILL.md +159 -0
  794. package/skills/components/password-input/SKILL.md +156 -0
  795. package/skills/components/pin-input/SKILL.md +157 -0
  796. package/skills/components/popover/SKILL.md +166 -0
  797. package/skills/components/progress/SKILL.md +144 -0
  798. package/skills/components/qr-code/SKILL.md +132 -0
  799. package/skills/components/radio-group/SKILL.md +153 -0
  800. package/skills/components/rating-group/SKILL.md +151 -0
  801. package/skills/components/scroll-area/SKILL.md +149 -0
  802. package/skills/components/select/SKILL.md +202 -0
  803. package/skills/components/separator/SKILL.md +114 -0
  804. package/skills/components/signature-pad/SKILL.md +161 -0
  805. package/skills/components/skeleton/SKILL.md +114 -0
  806. package/skills/components/slider/SKILL.md +178 -0
  807. package/skills/components/snackbar/SKILL.md +154 -0
  808. package/skills/components/spinner/SKILL.md +122 -0
  809. package/skills/components/splitter/SKILL.md +136 -0
  810. package/skills/components/steps/SKILL.md +150 -0
  811. package/skills/components/switch/SKILL.md +144 -0
  812. package/skills/components/table/SKILL.md +144 -0
  813. package/skills/components/tabs/SKILL.md +138 -0
  814. package/skills/components/tags-input/SKILL.md +194 -0
  815. package/skills/components/textarea/SKILL.md +131 -0
  816. package/skills/components/timer/SKILL.md +142 -0
  817. package/skills/components/toast/SKILL.md +129 -0
  818. package/skills/components/toc/SKILL.md +141 -0
  819. package/skills/components/toggle/SKILL.md +125 -0
  820. package/skills/components/toggle-group/SKILL.md +129 -0
  821. package/skills/components/tooltip/SKILL.md +188 -0
  822. package/skills/components/tour/SKILL.md +158 -0
  823. package/skills/components/tree-view/SKILL.md +180 -0
  824. package/skills/synapse/SKILL.md +301 -0
@@ -0,0 +1,299 @@
1
+ "use client";
2
+ import { unwrap, unwrapTree } from "../shared/collection-internal.mjs";
3
+ import { createContext, createElement, useContext, useEffect, useRef, useState } from "react";
4
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
5
+ import { visuallyHiddenStyle } from "@zag-js/dom-query";
6
+ //#region src/components/collection-window.tsx
7
+ const upstreamOf = (api) => typeof api === "object" && api !== null && "collection" in api && typeof api.collection === "object" && api.collection !== null ? api.collection : void 0;
8
+ const listSourceOf = /* @__PURE__ */ new WeakMap();
9
+ function rememberCollection(collection) {
10
+ const upstream = unwrap(collection);
11
+ listSourceOf.set(upstream, collection);
12
+ return upstream;
13
+ }
14
+ function collectionOf(api) {
15
+ const upstream = upstreamOf(api);
16
+ return upstream === void 0 ? null : listSourceOf.get(upstream) ?? null;
17
+ }
18
+ const treeSourceOf = /* @__PURE__ */ new WeakMap();
19
+ function treeSource(collection) {
20
+ return {
21
+ rootNode: collection.rootNode,
22
+ nodeOf: (value) => collection.nodeOf(value),
23
+ labelOf: (value) => collection.labelOf(value),
24
+ isBranch: (value) => collection.isBranch(value),
25
+ positionOf: (value) => collection.positionOf(value),
26
+ visibleValues: (expandedValues) => collection.visibleValues(expandedValues),
27
+ resolveWindow: (request) => collection.resolveWindow(request),
28
+ childEntries: (value) => collection.childrenOf(value).map((node) => ({
29
+ item: node,
30
+ value: collection.valueOf(node)
31
+ }))
32
+ };
33
+ }
34
+ function rememberTreeCollection(collection) {
35
+ const upstream = unwrapTree(collection);
36
+ treeSourceOf.set(upstream, treeSource(collection));
37
+ return upstream;
38
+ }
39
+ function treeCollectionOf(api) {
40
+ const upstream = upstreamOf(api);
41
+ return upstream === void 0 ? null : treeSourceOf.get(upstream) ?? null;
42
+ }
43
+ const UNMEASURED_WINDOW = 60;
44
+ const OVERSCAN = 8;
45
+ const ESTIMATED_ROW_HEIGHT = 32;
46
+ const PINNED_ROW_STYLE = visuallyHiddenStyle;
47
+ function pinnedRowProps(hidden) {
48
+ return hidden ? { style: PINNED_ROW_STYLE } : {};
49
+ }
50
+ const UNMEASURED = {
51
+ scrollTop: 0,
52
+ height: 0
53
+ };
54
+ function scrollParentOf(element) {
55
+ let current = element?.parentElement ?? null;
56
+ while (current !== null) {
57
+ const { overflowY } = getComputedStyle(current);
58
+ if (overflowY === "auto" || overflowY === "scroll" || overflowY === "overlay") return current;
59
+ current = current.parentElement;
60
+ }
61
+ return null;
62
+ }
63
+ function resolveWindowRange(request) {
64
+ const { scrollTop, viewportHeight, itemHeight, forced } = request;
65
+ const measured = viewportHeight > 0;
66
+ const count = measured ? Math.ceil(viewportHeight / itemHeight) : UNMEASURED_WINDOW;
67
+ let start = measured ? Math.floor(scrollTop / itemHeight) : 0;
68
+ if (forced !== null) {
69
+ const index = Math.max(0, Math.min(forced.index, Math.max(0, forced.size - 1)));
70
+ if (index < start) start = index;
71
+ else if (index >= start + count) start = index - count + 1;
72
+ }
73
+ return {
74
+ start: Math.max(0, start),
75
+ count
76
+ };
77
+ }
78
+ function useScrollRange(sizeOf) {
79
+ const anchor = useRef(null);
80
+ const [viewport, setViewport] = useState(UNMEASURED);
81
+ const [rowHeight, setRowHeight] = useState(0);
82
+ const [forcedIndex, setForcedIndex] = useState(null);
83
+ useEffect(() => {
84
+ const scroller = scrollParentOf(anchor.current);
85
+ if (scroller === null) return;
86
+ const read = () => {
87
+ setForcedIndex(null);
88
+ setViewport((previous) => previous.scrollTop === scroller.scrollTop && previous.height === scroller.clientHeight ? previous : {
89
+ scrollTop: scroller.scrollTop,
90
+ height: scroller.clientHeight
91
+ });
92
+ };
93
+ read();
94
+ scroller.addEventListener("scroll", read, { passive: true });
95
+ const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(() => read());
96
+ observer?.observe(scroller);
97
+ return () => {
98
+ scroller.removeEventListener("scroll", read);
99
+ observer?.disconnect();
100
+ };
101
+ }, []);
102
+ useEffect(() => {
103
+ const first = anchor.current?.nextElementSibling;
104
+ if (!(first instanceof HTMLElement)) return;
105
+ const measured = first.offsetHeight;
106
+ if (measured > 0 && measured !== rowHeight) setRowHeight(measured);
107
+ });
108
+ const unit = rowHeight > 0 ? rowHeight : ESTIMATED_ROW_HEIGHT;
109
+ const range = resolveWindowRange({
110
+ scrollTop: viewport.scrollTop,
111
+ viewportHeight: viewport.height,
112
+ itemHeight: unit,
113
+ forced: forcedIndex === null ? null : {
114
+ index: forcedIndex,
115
+ size: sizeOf()
116
+ }
117
+ });
118
+ useEffect(() => {
119
+ if (forcedIndex === null) return;
120
+ const scroller = scrollParentOf(anchor.current);
121
+ if (scroller === null) return;
122
+ const target = range.start * unit;
123
+ if (scroller.scrollTop !== target) scroller.scrollTop = target;
124
+ }, [
125
+ forcedIndex,
126
+ range.start,
127
+ unit
128
+ ]);
129
+ return {
130
+ anchor,
131
+ unit,
132
+ start: range.start,
133
+ count: range.count,
134
+ forceIndex: setForcedIndex
135
+ };
136
+ }
137
+ function createWindowHandle() {
138
+ let mounted = null;
139
+ return {
140
+ forceIndex: (index) => mounted?.(index),
141
+ connect: (forceIndex) => {
142
+ mounted = forceIndex;
143
+ return () => {
144
+ if (mounted === forceIndex) mounted = null;
145
+ };
146
+ }
147
+ };
148
+ }
149
+ const WindowHandleContext = createContext(null);
150
+ WindowHandleContext.displayName = "SynapseWindowHandle";
151
+ function useWindowHandle() {
152
+ return useContext(WindowHandleContext);
153
+ }
154
+ function withWindowHandle(Root) {
155
+ function WindowedRoot(props) {
156
+ const [handle] = useState(createWindowHandle);
157
+ return createElement(WindowHandleContext.Provider, { value: handle }, createElement(Root, props));
158
+ }
159
+ WindowedRoot.displayName = "displayName" in Root && typeof Root.displayName === "string" ? Root.displayName : "Root";
160
+ return WindowedRoot;
161
+ }
162
+ function usePublishedHandle(forceIndex) {
163
+ const handle = useContext(WindowHandleContext);
164
+ useEffect(() => handle?.connect(forceIndex), [handle, forceIndex]);
165
+ }
166
+ const spacerRow = (rows, unit, anchor) => /* @__PURE__ */ jsx("div", {
167
+ ref: anchor ?? null,
168
+ role: "presentation",
169
+ "aria-hidden": "true",
170
+ style: { blockSize: `${rows * unit}px` }
171
+ });
172
+ function WindowedRows(props) {
173
+ const { collection, activeValue, renderRow } = props;
174
+ const { anchor, start, count, unit } = useScrollRange(() => collection.size);
175
+ const window = collection.resolveWindow({
176
+ start,
177
+ count,
178
+ activeValue,
179
+ overscan: OVERSCAN
180
+ });
181
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
182
+ spacerRow(window.leadingCount, unit, anchor),
183
+ window.rows.map((row) => renderRow(row, row.pinned)),
184
+ spacerRow(window.trailingCount, unit)
185
+ ] });
186
+ }
187
+ function WindowedTreeRows(props) {
188
+ const { collection, expandedValues, activeValue, renderRow } = props;
189
+ const { anchor, start, count, unit, forceIndex } = useScrollRange(() => collection.visibleValues(expandedValues).length);
190
+ usePublishedHandle(forceIndex);
191
+ const window = collection.resolveWindow({
192
+ expandedValues,
193
+ start,
194
+ count,
195
+ activeValue,
196
+ overscan: OVERSCAN
197
+ });
198
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
199
+ spacerRow(window.leadingCount, unit, anchor),
200
+ window.rows.map((row) => renderRow(row, row.pinned)),
201
+ spacerRow(window.trailingCount, unit)
202
+ ] });
203
+ }
204
+ function resolveBranchWindow(collection, parentValue, request) {
205
+ const children = collection.childEntries(parentValue);
206
+ const size = children.length;
207
+ const safeCount = Math.max(0, request.count);
208
+ const rawStart = Math.max(0, Math.min(request.start, Math.max(0, size - safeCount)));
209
+ const windowStart = Math.max(0, rawStart - request.overscan);
210
+ const windowEnd = Math.min(size, rawStart + safeCount + request.overscan);
211
+ const entries = children.slice(windowStart, windowEnd).map((child, offset) => ({
212
+ item: child.item,
213
+ value: child.value,
214
+ index: windowStart + offset
215
+ }));
216
+ const activeIndex = request.activeValue === null ? -1 : children.findIndex((child) => child.value === request.activeValue);
217
+ const activeChild = activeIndex !== -1 && (activeIndex < windowStart || activeIndex >= windowEnd) ? children[activeIndex] : void 0;
218
+ const pinned = activeChild === void 0 ? null : {
219
+ item: activeChild.item,
220
+ value: activeChild.value,
221
+ index: activeIndex
222
+ };
223
+ const rows = (pinned === null ? entries : pinned.index < windowStart ? [pinned, ...entries] : [...entries, pinned]).map((entry) => ({
224
+ item: entry.item,
225
+ value: entry.value,
226
+ index: entry.index,
227
+ position: collection.positionOf(entry.value) ?? {
228
+ level: 1,
229
+ posInSet: entry.index + 1,
230
+ setSize: size,
231
+ indexPath: [entry.index],
232
+ valuePath: [entry.value],
233
+ branch: false
234
+ },
235
+ pinned: pinned !== null && entry.index === pinned.index
236
+ }));
237
+ return {
238
+ start: windowStart,
239
+ end: windowEnd,
240
+ entries,
241
+ leadingCount: windowStart,
242
+ trailingCount: size - windowEnd,
243
+ pinned,
244
+ rows
245
+ };
246
+ }
247
+ function WindowedBranchRows(props) {
248
+ const { collection, parentValue, activeValue, renderRow } = props;
249
+ const { anchor, start, count, unit } = useScrollRange(() => collection.childEntries(parentValue).length);
250
+ const window = resolveBranchWindow(collection, parentValue, {
251
+ start,
252
+ count,
253
+ activeValue,
254
+ overscan: OVERSCAN
255
+ });
256
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
257
+ spacerRow(window.leadingCount, unit, anchor),
258
+ window.rows.map((row) => renderRow(row, row.pinned)),
259
+ spacerRow(window.trailingCount, unit)
260
+ ] });
261
+ }
262
+ function positionProps(position) {
263
+ return {
264
+ "aria-posinset": position.posInSet,
265
+ "aria-setsize": position.setSize
266
+ };
267
+ }
268
+ const highlightedValueOf = (api) => typeof api === "object" && api !== null && "highlightedValue" in api && typeof api.highlightedValue === "string" ? api.highlightedValue : null;
269
+ function windowedContent(options) {
270
+ const readActive = options.activeValue ?? highlightedValueOf;
271
+ return (api) => {
272
+ const collection = collectionOf(api);
273
+ if (collection === null) return null;
274
+ return /* @__PURE__ */ jsx(WindowedRows, {
275
+ collection,
276
+ activeValue: readActive(api),
277
+ renderRow: (row, hidden) => options.renderRow(row, hidden, collection)
278
+ });
279
+ };
280
+ }
281
+ const isString = (value) => typeof value === "string";
282
+ const expandedValueOf = (api) => typeof api === "object" && api !== null && "expandedValue" in api && Array.isArray(api.expandedValue) ? api.expandedValue.filter(isString) : [];
283
+ function windowedTreeContent(options) {
284
+ const readExpanded = options.expandedValues ?? expandedValueOf;
285
+ return (api) => {
286
+ const collection = treeCollectionOf(api);
287
+ if (collection === null) return null;
288
+ return /* @__PURE__ */ jsx(WindowedTreeRows, {
289
+ collection,
290
+ expandedValues: readExpanded(api),
291
+ activeValue: options.activeValue(api),
292
+ renderRow: (row, hidden) => options.renderRow(row, hidden, collection)
293
+ });
294
+ };
295
+ }
296
+ //#endregion
297
+ export { WindowedBranchRows, WindowedRows, WindowedTreeRows, collectionOf, pinnedRowProps, positionProps, rememberCollection, rememberTreeCollection, resolveWindowRange, treeCollectionOf, useWindowHandle, windowedContent, windowedTreeContent, withWindowHandle };
298
+
299
+ //# sourceMappingURL=collection-window.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-window.mjs","names":[],"sources":["../../src/components/collection-window.tsx"],"sourcesContent":["'use client'\n\nimport type { ListCollection, TreeCollection } from '@zag-js/collection'\nimport { visuallyHiddenStyle } from '@zag-js/dom-query'\nimport {\n createContext,\n createElement,\n useContext,\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type RefObject,\n} from 'react'\n\nimport { unwrap, unwrapTree } from '#/shared/collection-internal.ts'\nimport type {\n CollectionWindow,\n ItemPosition,\n SynapseCollection,\n SynapseTreeCollection,\n TreeNodePosition,\n TreeWindowRequest,\n WindowEntry,\n WindowRequest,\n WindowRow,\n} from '#/shared/collection.ts'\n\nexport interface ListSource {\n readonly size: number\n labelOf: (value: string | null | undefined) => string | null\n resolveWindow: (request: WindowRequest) => CollectionWindow<unknown>\n}\n\nexport interface TreeSource {\n readonly rootNode: unknown\n nodeOf: (value: string | null | undefined) => unknown\n labelOf: (value: string | null | undefined) => string | null\n isBranch: (value: string | null | undefined) => boolean\n positionOf: (value: string | null | undefined) => TreeNodePosition | null\n visibleValues: (expandedValues: readonly string[]) => readonly string[]\n resolveWindow: (request: TreeWindowRequest) => CollectionWindow<unknown, TreeNodePosition>\n childEntries: (value: string | null | undefined) => readonly ChildEntry[]\n}\n\nexport interface ChildEntry {\n readonly item: unknown\n readonly value: string\n}\n\nconst upstreamOf = (api: unknown): object | undefined =>\n typeof api === 'object' &&\n api !== null &&\n 'collection' in api &&\n typeof api.collection === 'object' &&\n api.collection !== null\n ? api.collection\n : undefined\n\nconst listSourceOf = new WeakMap<object, ListSource>()\n\nexport function rememberCollection<TItem>(\n collection: SynapseCollection<TItem>,\n): ListCollection<unknown> {\n const upstream = unwrap(collection)\n listSourceOf.set(upstream, collection)\n return upstream\n}\n\nexport function collectionOf(api: unknown): ListSource | null {\n const upstream = upstreamOf(api)\n return upstream === undefined ? null : (listSourceOf.get(upstream) ?? null)\n}\n\nconst treeSourceOf = new WeakMap<object, TreeSource>()\n\nfunction treeSource<TNode>(collection: SynapseTreeCollection<TNode>): TreeSource {\n return {\n rootNode: collection.rootNode,\n nodeOf: (value) => collection.nodeOf(value),\n labelOf: (value) => collection.labelOf(value),\n isBranch: (value) => collection.isBranch(value),\n positionOf: (value) => collection.positionOf(value),\n visibleValues: (expandedValues) => collection.visibleValues(expandedValues),\n resolveWindow: (request) => collection.resolveWindow(request),\n childEntries: (value) =>\n collection.childrenOf(value).map((node) => ({ item: node, value: collection.valueOf(node) })),\n }\n}\n\nexport function rememberTreeCollection<TNode>(\n collection: SynapseTreeCollection<TNode>,\n): TreeCollection<unknown> {\n const upstream = unwrapTree(collection)\n treeSourceOf.set(upstream, treeSource(collection))\n return upstream\n}\n\nexport function treeCollectionOf(api: unknown): TreeSource | null {\n const upstream = upstreamOf(api)\n return upstream === undefined ? null : (treeSourceOf.get(upstream) ?? null)\n}\n\nexport const WINDOWED_COLLECTION_LIMIT = 100_000\n\nconst UNMEASURED_WINDOW = 60\n\nconst OVERSCAN = 8\n\nconst ESTIMATED_ROW_HEIGHT = 32\n\nconst PINNED_ROW_STYLE: CSSProperties = visuallyHiddenStyle\n\nexport interface WindowedRowsProps {\n collection: ListSource\n activeValue: string | null\n renderRow: (row: WindowRow<unknown>, hidden: boolean) => ReactNode\n}\n\nexport function pinnedRowProps(hidden: boolean): { style?: CSSProperties } {\n return hidden ? { style: PINNED_ROW_STYLE } : {}\n}\n\ninterface Viewport {\n scrollTop: number\n height: number\n}\n\nconst UNMEASURED: Viewport = { scrollTop: 0, height: 0 }\n\nfunction scrollParentOf(element: Element | null): HTMLElement | null {\n let current = element?.parentElement ?? null\n while (current !== null) {\n const { overflowY } = getComputedStyle(current)\n if (overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'overlay') return current\n current = current.parentElement\n }\n return null\n}\n\nexport interface ForcedIndex {\n index: number\n size: number\n}\n\nexport interface WindowRange {\n start: number\n count: number\n}\n\nexport interface WindowRangeRequest {\n scrollTop: number\n viewportHeight: number\n itemHeight: number\n forced: ForcedIndex | null\n}\n\nexport function resolveWindowRange(request: WindowRangeRequest): WindowRange {\n const { scrollTop, viewportHeight, itemHeight, forced } = request\n const measured = viewportHeight > 0\n const count = measured ? Math.ceil(viewportHeight / itemHeight) : UNMEASURED_WINDOW\n let start = measured ? Math.floor(scrollTop / itemHeight) : 0\n\n if (forced !== null) {\n const index = Math.max(0, Math.min(forced.index, Math.max(0, forced.size - 1)))\n if (index < start) start = index\n else if (index >= start + count) start = index - count + 1\n }\n\n return { start: Math.max(0, start), count }\n}\n\ninterface ScrollRange {\n anchor: RefObject<HTMLDivElement | null>\n start: number\n count: number\n unit: number\n forceIndex: (index: number) => void\n}\n\nfunction useScrollRange(sizeOf: () => number): ScrollRange {\n const anchor = useRef<HTMLDivElement | null>(null)\n const [viewport, setViewport] = useState<Viewport>(UNMEASURED)\n const [rowHeight, setRowHeight] = useState(0)\n const [forcedIndex, setForcedIndex] = useState<number | null>(null)\n\n useEffect(() => {\n const scroller = scrollParentOf(anchor.current)\n if (scroller === null) return\n\n const read = (): void => {\n setForcedIndex(null)\n setViewport((previous) =>\n previous.scrollTop === scroller.scrollTop && previous.height === scroller.clientHeight\n ? previous\n : { scrollTop: scroller.scrollTop, height: scroller.clientHeight },\n )\n }\n\n read()\n scroller.addEventListener('scroll', read, { passive: true })\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(() => read())\n observer?.observe(scroller)\n return () => {\n scroller.removeEventListener('scroll', read)\n observer?.disconnect()\n }\n }, [])\n\n useEffect(() => {\n const first = anchor.current?.nextElementSibling\n if (!(first instanceof HTMLElement)) return\n const measured = first.offsetHeight\n if (measured > 0 && measured !== rowHeight) setRowHeight(measured)\n })\n\n const unit = rowHeight > 0 ? rowHeight : ESTIMATED_ROW_HEIGHT\n const range = resolveWindowRange({\n scrollTop: viewport.scrollTop,\n viewportHeight: viewport.height,\n itemHeight: unit,\n forced: forcedIndex === null ? null : { index: forcedIndex, size: sizeOf() },\n })\n\n useEffect(() => {\n if (forcedIndex === null) return\n const scroller = scrollParentOf(anchor.current)\n if (scroller === null) return\n const target = range.start * unit\n if (scroller.scrollTop !== target) scroller.scrollTop = target\n }, [forcedIndex, range.start, unit])\n\n return { anchor, unit, start: range.start, count: range.count, forceIndex: setForcedIndex }\n}\n\nexport interface WindowHandle {\n forceIndex: (index: number) => void\n connect: (forceIndex: (index: number) => void) => () => void\n}\n\nfunction createWindowHandle(): WindowHandle {\n let mounted: ((index: number) => void) | null = null\n return {\n forceIndex: (index) => mounted?.(index),\n connect: (forceIndex) => {\n mounted = forceIndex\n return () => {\n if (mounted === forceIndex) mounted = null\n }\n },\n }\n}\n\nconst WindowHandleContext = createContext<WindowHandle | null>(null)\nWindowHandleContext.displayName = 'SynapseWindowHandle'\n\nexport function useWindowHandle(): WindowHandle | null {\n return useContext(WindowHandleContext)\n}\n\nexport function withWindowHandle<TProps extends object>(\n Root: (props: TProps) => ReactNode,\n): (props: TProps) => ReactNode {\n function WindowedRoot(props: TProps): ReactNode {\n const [handle] = useState(createWindowHandle)\n return createElement(\n WindowHandleContext.Provider,\n { value: handle },\n createElement(Root, props),\n )\n }\n WindowedRoot.displayName =\n 'displayName' in Root && typeof Root.displayName === 'string' ? Root.displayName : 'Root'\n return WindowedRoot\n}\n\nfunction usePublishedHandle(forceIndex: (index: number) => void): void {\n const handle = useContext(WindowHandleContext)\n useEffect(() => handle?.connect(forceIndex), [handle, forceIndex])\n}\n\nconst spacerRow = (\n rows: number,\n unit: number,\n anchor?: RefObject<HTMLDivElement | null>,\n): ReactNode => (\n <div\n ref={anchor ?? null}\n role=\"presentation\"\n aria-hidden=\"true\"\n style={{ blockSize: `${rows * unit}px` }}\n />\n)\n\nexport function WindowedRows(props: WindowedRowsProps): ReactNode {\n const { collection, activeValue, renderRow } = props\n const { anchor, start, count, unit } = useScrollRange(() => collection.size)\n\n const window = collection.resolveWindow({ start, count, activeValue, overscan: OVERSCAN })\n\n return (\n <>\n {spacerRow(window.leadingCount, unit, anchor)}\n {window.rows.map((row) => renderRow(row, row.pinned))}\n {spacerRow(window.trailingCount, unit)}\n </>\n )\n}\n\nexport interface WindowedTreeRowsProps {\n collection: TreeSource\n expandedValues: readonly string[]\n activeValue: string | null\n renderRow: (row: WindowRow<unknown, TreeNodePosition>, hidden: boolean) => ReactNode\n}\n\nexport function WindowedTreeRows(props: WindowedTreeRowsProps): ReactNode {\n const { collection, expandedValues, activeValue, renderRow } = props\n const { anchor, start, count, unit, forceIndex } = useScrollRange(\n () => collection.visibleValues(expandedValues).length,\n )\n usePublishedHandle(forceIndex)\n\n const window = collection.resolveWindow({\n expandedValues,\n start,\n count,\n activeValue,\n overscan: OVERSCAN,\n })\n\n return (\n <>\n {spacerRow(window.leadingCount, unit, anchor)}\n {window.rows.map((row) => renderRow(row, row.pinned))}\n {spacerRow(window.trailingCount, unit)}\n </>\n )\n}\n\nfunction resolveBranchWindow(\n collection: TreeSource,\n parentValue: string | null,\n request: { start: number; count: number; activeValue: string | null; overscan: number },\n): CollectionWindow<unknown, TreeNodePosition> {\n const children = collection.childEntries(parentValue)\n const size = children.length\n const safeCount = Math.max(0, request.count)\n const rawStart = Math.max(0, Math.min(request.start, Math.max(0, size - safeCount)))\n const windowStart = Math.max(0, rawStart - request.overscan)\n const windowEnd = Math.min(size, rawStart + safeCount + request.overscan)\n\n const entries: WindowEntry<unknown>[] = children\n .slice(windowStart, windowEnd)\n .map((child, offset) => ({ item: child.item, value: child.value, index: windowStart + offset }))\n\n const activeIndex =\n request.activeValue === null\n ? -1\n : children.findIndex((child) => child.value === request.activeValue)\n const outside = activeIndex !== -1 && (activeIndex < windowStart || activeIndex >= windowEnd)\n const activeChild = outside ? children[activeIndex] : undefined\n const pinned: WindowEntry<unknown> | null =\n activeChild === undefined\n ? null\n : { item: activeChild.item, value: activeChild.value, index: activeIndex }\n\n const withPin: WindowEntry<unknown>[] =\n pinned === null\n ? entries\n : pinned.index < windowStart\n ? [pinned, ...entries]\n : [...entries, pinned]\n\n const rows: WindowRow<unknown, TreeNodePosition>[] = withPin.map((entry) => ({\n item: entry.item,\n value: entry.value,\n index: entry.index,\n position: collection.positionOf(entry.value) ?? {\n level: 1,\n posInSet: entry.index + 1,\n setSize: size,\n indexPath: [entry.index],\n valuePath: [entry.value],\n branch: false,\n },\n pinned: pinned !== null && entry.index === pinned.index,\n }))\n\n return {\n start: windowStart,\n end: windowEnd,\n entries,\n leadingCount: windowStart,\n trailingCount: size - windowEnd,\n pinned,\n rows,\n }\n}\n\nexport interface WindowedBranchRowsProps {\n collection: TreeSource\n parentValue: string | null\n activeValue: string | null\n renderRow: (row: WindowRow<unknown, TreeNodePosition>, hidden: boolean) => ReactNode\n}\n\nexport function WindowedBranchRows(props: WindowedBranchRowsProps): ReactNode {\n const { collection, parentValue, activeValue, renderRow } = props\n const { anchor, start, count, unit } = useScrollRange(\n () => collection.childEntries(parentValue).length,\n )\n\n const window = resolveBranchWindow(collection, parentValue, {\n start,\n count,\n activeValue,\n overscan: OVERSCAN,\n })\n\n return (\n <>\n {spacerRow(window.leadingCount, unit, anchor)}\n {window.rows.map((row) => renderRow(row, row.pinned))}\n {spacerRow(window.trailingCount, unit)}\n </>\n )\n}\n\nexport function positionProps(position: ItemPosition): {\n 'aria-posinset': number\n 'aria-setsize': number\n} {\n return { 'aria-posinset': position.posInSet, 'aria-setsize': position.setSize }\n}\n\nexport interface WindowedContentOptions {\n activeValue?: (api: unknown) => string | null\n renderRow: (row: WindowRow<unknown>, hidden: boolean, collection: ListSource) => ReactNode\n}\n\nconst highlightedValueOf = (api: unknown): string | null =>\n typeof api === 'object' &&\n api !== null &&\n 'highlightedValue' in api &&\n typeof api.highlightedValue === 'string'\n ? api.highlightedValue\n : null\n\nexport function windowedContent(options: WindowedContentOptions): (api: unknown) => ReactNode {\n const readActive = options.activeValue ?? highlightedValueOf\n return (api) => {\n const collection = collectionOf(api)\n if (collection === null) return null\n return (\n <WindowedRows\n collection={collection}\n activeValue={readActive(api)}\n renderRow={(row, hidden) => options.renderRow(row, hidden, collection)}\n />\n )\n }\n}\n\nexport interface WindowedTreeContentOptions<TApi> {\n expandedValues?: (api: TApi) => readonly string[]\n activeValue: (api: TApi) => string | null\n renderRow: (\n row: WindowRow<unknown, TreeNodePosition>,\n hidden: boolean,\n collection: TreeSource,\n ) => ReactNode\n}\n\nconst isString = (value: unknown): value is string => typeof value === 'string'\n\nconst expandedValueOf = (api: unknown): readonly string[] =>\n typeof api === 'object' &&\n api !== null &&\n 'expandedValue' in api &&\n Array.isArray(api.expandedValue)\n ? api.expandedValue.filter(isString)\n : []\n\nexport function windowedTreeContent<TApi>(\n options: WindowedTreeContentOptions<TApi>,\n): (api: TApi) => ReactNode {\n const readExpanded = options.expandedValues ?? expandedValueOf\n return (api) => {\n const collection = treeCollectionOf(api)\n if (collection === null) return null\n return (\n <WindowedTreeRows\n collection={collection}\n expandedValues={readExpanded(api)}\n activeValue={options.activeValue(api)}\n renderRow={(row, hidden) => options.renderRow(row, hidden, collection)}\n />\n )\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { TranslationOverrides } from "../../provider/translations.mjs";
2
+ import { SynapseComponent } from "../../system/types.mjs";
3
+ import { OpenChangeDetails } from "../details.mjs";
4
+ import { Size } from "../../shared/size-scale.mjs";
5
+ //#region src/components/color-picker/color-picker.d.ts
6
+ export declare const COLOR_PICKER_FORMATS: readonly ['rgba', 'hsla', 'hsba'];
7
+ export type ColorPickerFormat = (typeof COLOR_PICKER_FORMATS)[number];
8
+ export interface ColorPickerPositioning {
9
+ placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'right';
10
+ gutter?: number;
11
+ flip?: boolean;
12
+ }
13
+ export interface ColorPickerValueChangeDetails {
14
+ readonly value: string;
15
+ }
16
+ export interface ColorPickerFormatChangeDetails {
17
+ readonly format: ColorPickerFormat;
18
+ }
19
+ export interface ColorPickerRootProps {
20
+ /** 제어되는 색이며, 어떤 CSS 색 문자열이든 됩니다. */
21
+ value?: string;
22
+ /** 비제어 초기 색. `value`가 주어지면 무시됩니다. */
23
+ defaultValue?: string;
24
+ /** 드래그의 매 단계를 포함해, 값이 바뀔 때마다 알림을 받습니다. */
25
+ onValueChange?: (details: ColorPickerValueChangeDetails) => void;
26
+ /** 드래그가 끝난 뒤 한 번 알림을 받습니다 — 저장할 때 쓸 콜백입니다. */
27
+ onValueChangeEnd?: (details: ColorPickerValueChangeDetails) => void;
28
+ /** 제어되는 떠 있는 레이어의 열림 상태. */
29
+ open?: boolean;
30
+ /** 비제어 초기 열림 상태. */
31
+ defaultOpen?: boolean;
32
+ /** 피커가 열리거나 닫힐 때마다 알림을 받습니다. */
33
+ onOpenChange?: (details: OpenChangeDetails) => void;
34
+ /** 숫자 입력과 슬라이더가 다루는, 제어되는 채널 형식. */
35
+ format?: ColorPickerFormat;
36
+ /** 비제어 초기 형식. 기본값은 `rgba`입니다. */
37
+ defaultFormat?: ColorPickerFormat;
38
+ /** 형식이 바뀔 때마다 알림을 받습니다. */
39
+ onFormatChange?: (details: ColorPickerFormatChangeDetails) => void;
40
+ /** 피커를 떠 있는 레이어가 아니라 제자리에 렌더링합니다. */
41
+ inline?: boolean;
42
+ /** 색 견본을 고르면 떠 있는 레이어를 닫습니다. 기본값은 false입니다. */
43
+ closeOnSelect?: boolean;
44
+ /** 열릴 때 포커스를 콘텐츠 안으로 옮깁니다. 기본값은 true입니다. */
45
+ openAutoFocus?: boolean;
46
+ /** 떠 있는 레이어가 놓이는 위치. */
47
+ positioning?: ColorPickerPositioning;
48
+ /** 폼 필드 이름. 이것이 없으면 컨트롤은 아무것도 제출하지 않습니다. */
49
+ name?: string;
50
+ /** 비활성화된 ColorPicker는 제출되지 않고 반응하지도 않습니다. */
51
+ disabled?: boolean;
52
+ /** 읽기 전용 ColorPicker는 값을 제출하지만 바꿀 수는 없습니다. */
53
+ readOnly?: boolean;
54
+ /** 보조 기술에 `aria-invalid`로 알려집니다. */
55
+ invalid?: boolean;
56
+ /** 제약 검증: 폼이 제출되려면 색이 골라져 있어야 합니다. */
57
+ required?: boolean;
58
+ /** 이 ColorPicker에만 적용되는 접근성 문자열이며, provider의 것보다 우선합니다. */
59
+ translations?: TranslationOverrides;
60
+ /** 하나의 공유 척도에서 옵니다. 모든 컴포넌트가 그렇듯 기본값은 `md`입니다. */
61
+ size?: Size;
62
+ /** 팩토리가 생성하는 식별자를 덮어씁니다. 서버와 클라이언트에서 동일합니다. */
63
+ id?: string;
64
+ }
65
+ export declare const ColorPicker: SynapseComponent<"area" | "areaBackground" | "areaThumb" | "channelInput" | "channelSlider" | "channelSliderLabel" | "channelSliderThumb" | "channelSliderTrack" | "channelSliderValueText" | "content" | "control" | "eyeDropperTrigger" | "formatSelect" | "formatTrigger" | "label" | "positioner" | "root" | "swatch" | "swatchGroup" | "swatchIndicator" | "swatchTrigger" | "transparencyGrid" | "trigger" | "valueText", "root", ColorPickerRootProps, never>;
66
+ //#endregion
67
+ //# sourceMappingURL=color-picker.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.d.mts","names":[],"sources":["../../../src/components/color-picker/color-picker.tsx"],"mappings":";;;;;qBAgBa;YAED,4BAA4B;iBAEvB;EACf;EASA;EACA;;iBAGe;WACN;;iBAGM;WACN,QAAQ;;iBAGF;;EAEf;;EAEA;;EAEA,iBAAiB,SAAS;;EAE1B,oBAAoB,SAAS;;EAE7B;;EAEA;;EAEA,gBAAgB,SAAS;;EAEzB,SAAS;;EAET,gBAAgB;;EAEhB,kBAAkB,SAAS;;EAE3B;;EAEA;;EAEA;;EAEA,cAAc;;EAEd;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,eAAe;;EAEf,OAAO;;EAEP;;qBA8FW,aAAW,waAAA"}
@@ -0,0 +1,230 @@
1
+ "use client";
2
+ import { resolveSize, sizeBelow } from "../../shared/size-scale.mjs";
3
+ import { checkmark } from "../../icons/src/checkmark.mjs";
4
+ import { eyedropper } from "../../icons/src/eyedropper.mjs";
5
+ import "../../icons/src/index.mjs";
6
+ import { Icon } from "../../shared/icon.mjs";
7
+ import { defineComponent } from "../../system/create-component.mjs";
8
+ import { buttonPartClass } from "../../shared/button-style.mjs";
9
+ import { inputPartClass } from "../../shared/input-style.mjs";
10
+ import { withSelectIndicator } from "../../shared/select-indicator.mjs";
11
+ import { colorPickerRecipe } from "./color-picker.recipe.mjs";
12
+ import { createElement, useState } from "react";
13
+ import { jsx } from "react/jsx-runtime";
14
+ import * as colorPicker from "@zag-js/color-picker";
15
+ //#region src/components/color-picker/color-picker.tsx
16
+ const COLOR_PICKER_FORMATS = [
17
+ "rgba",
18
+ "hsla",
19
+ "hsba"
20
+ ];
21
+ const useColorPickerMachineProps = (props) => {
22
+ const [emitted] = useState(() => /* @__PURE__ */ new Map());
23
+ const remember = (details) => {
24
+ emitted.clear();
25
+ emitted.set(details.valueAsString, details.value);
26
+ };
27
+ const resolve = (value) => emitted.get(value) ?? colorPicker.parse(value);
28
+ return {
29
+ ...props.value === void 0 ? {} : { value: resolve(props.value) },
30
+ ...props.defaultValue === void 0 ? {} : { defaultValue: colorPicker.parse(props.defaultValue) },
31
+ onValueChange: (details) => {
32
+ remember(details);
33
+ props.onValueChange?.({ value: details.valueAsString });
34
+ },
35
+ onValueChangeEnd: (details) => {
36
+ remember(details);
37
+ props.onValueChangeEnd?.({ value: details.valueAsString });
38
+ }
39
+ };
40
+ };
41
+ const CHANNEL_LABELS = {
42
+ hue: "colorPicker.channelSlider.hue",
43
+ saturation: "colorPicker.channelSlider.saturation",
44
+ brightness: "colorPicker.channelSlider.brightness",
45
+ lightness: "colorPicker.channelSlider.lightness",
46
+ red: "colorPicker.channelSlider.red",
47
+ green: "colorPicker.channelSlider.green",
48
+ blue: "colorPicker.channelSlider.blue",
49
+ alpha: "colorPicker.channelSlider.alpha",
50
+ hex: "colorPicker.channelSlider.hex",
51
+ css: "colorPicker.channelSlider.css"
52
+ };
53
+ const channelLabel = (channel, translate) => {
54
+ const key = typeof channel === "string" ? CHANNEL_LABELS[channel] : void 0;
55
+ return key === void 0 ? String(channel) : translate(key);
56
+ };
57
+ const invalidOf = (behaviorProps) => behaviorProps["data-invalid"] === "" ? true : void 0;
58
+ const PERCENT_CHANNELS = /* @__PURE__ */ new Set([
59
+ "saturation",
60
+ "brightness",
61
+ "lightness"
62
+ ]);
63
+ const channelValueText = (channel, value, translate) => {
64
+ if (Number.isNaN(value)) return void 0;
65
+ if (channel === "hue") return translate("colorPicker.channelSliderThumb.degrees", { value: Math.round(value) });
66
+ if (channel === "alpha") return translate("colorPicker.channelSliderThumb.percent", { value: Math.round(value * 100) });
67
+ if (PERCENT_CHANNELS.has(channel)) return translate("colorPicker.channelSliderThumb.percent", { value: Math.round(value) });
68
+ return String(Math.round(value));
69
+ };
70
+ const MACHINE_FORMATS = [
71
+ "hsba",
72
+ "hsla",
73
+ "rgba"
74
+ ];
75
+ const COLOR_CHANNELS = [
76
+ "hue",
77
+ "saturation",
78
+ "brightness",
79
+ "lightness",
80
+ "red",
81
+ "green",
82
+ "blue",
83
+ "alpha"
84
+ ];
85
+ const channelOr = (value, fallback) => COLOR_CHANNELS.find((channel) => channel === value) ?? fallback;
86
+ const formatOptions = () => COLOR_PICKER_FORMATS.map((format) => createElement("option", {
87
+ key: format,
88
+ value: format
89
+ }, format));
90
+ const ColorPicker = defineComponent()({
91
+ name: "ColorPicker",
92
+ module: colorPicker,
93
+ rootPart: "root",
94
+ elements: {
95
+ valueText: "span",
96
+ channelSliderLabel: "span",
97
+ channelSliderValueText: "span",
98
+ swatchIndicator: "span",
99
+ channelInput: "input",
100
+ formatSelect: "select"
101
+ },
102
+ getterProps: {
103
+ area: ["xChannel", "yChannel"],
104
+ areaBackground: ["xChannel", "yChannel"],
105
+ areaThumb: ["xChannel", "yChannel"],
106
+ channelSlider: [
107
+ "channel",
108
+ "orientation",
109
+ "format"
110
+ ],
111
+ channelSliderTrack: [
112
+ "channel",
113
+ "orientation",
114
+ "format"
115
+ ],
116
+ channelSliderThumb: [
117
+ "channel",
118
+ "orientation",
119
+ "format"
120
+ ],
121
+ channelSliderLabel: ["channel", "orientation"],
122
+ channelSliderValueText: ["channel", "orientation"],
123
+ channelInput: ["channel", "orientation"],
124
+ swatchTrigger: ["value", "disabled"],
125
+ swatch: ["value", "respectAlpha"],
126
+ swatchIndicator: ["value", "respectAlpha"]
127
+ },
128
+ defaultContent: {
129
+ formatSelect: formatOptions,
130
+ valueText: (api) => api.valueAsString,
131
+ eyeDropperTrigger: () => /* @__PURE__ */ jsx(Icon, { icon: eyedropper }),
132
+ swatchIndicator: () => /* @__PURE__ */ jsx(Icon, { icon: checkmark })
133
+ },
134
+ rootOwnedGetters: [{
135
+ name: "hiddenInput",
136
+ getter: "getHiddenInputProps",
137
+ element: "input"
138
+ }],
139
+ amendBehaviorProps: {
140
+ trigger: (behaviorProps, api, _args, translate) => ({
141
+ "aria-label": translate("colorPicker.trigger.label", { value: api.valueAsString }),
142
+ "aria-invalid": invalidOf(behaviorProps)
143
+ }),
144
+ areaThumb: (behaviorProps, api, getterArgs, translate) => {
145
+ const { value, format } = api;
146
+ const area = value.toFormat(format.startsWith("hsl") ? "hsla" : "hsba");
147
+ const [, defaultX, defaultY] = area.getChannels();
148
+ const xChannel = channelOr(getterArgs["xChannel"], defaultX);
149
+ const yChannel = channelOr(getterArgs["yChannel"], defaultY);
150
+ const x = channelLabel(xChannel, translate);
151
+ const y = channelLabel(yChannel, translate);
152
+ return {
153
+ "aria-label": translate("colorPicker.areaThumb.label", {
154
+ xChannel: x,
155
+ yChannel: y
156
+ }),
157
+ "aria-roledescription": translate("colorPicker.areaThumb.roleDescription"),
158
+ "aria-valuetext": translate("colorPicker.areaThumb.valueText", {
159
+ xChannel: x,
160
+ xValue: String(area.getChannelValue(xChannel)),
161
+ yChannel: y,
162
+ yValue: String(area.getChannelValue(yChannel))
163
+ }),
164
+ "aria-invalid": invalidOf(behaviorProps)
165
+ };
166
+ },
167
+ channelSliderThumb: (behaviorProps, _api, getterArgs, translate) => ({
168
+ "aria-label": channelLabel(getterArgs["channel"], translate),
169
+ "aria-valuetext": channelValueText(String(getterArgs["channel"]), Number(behaviorProps["aria-valuenow"]), translate),
170
+ "aria-invalid": invalidOf(behaviorProps)
171
+ }),
172
+ channelInput: (behaviorProps, _api, getterArgs, translate) => ({
173
+ "aria-label": channelLabel(getterArgs["channel"], translate),
174
+ "aria-invalid": invalidOf(behaviorProps)
175
+ }),
176
+ eyeDropperTrigger: (_behaviorProps, _api, _args, translate) => ({ "aria-label": translate("colorPicker.eyeDropperTrigger.label") }),
177
+ swatchTrigger: (behaviorProps, _api, _args, translate) => ({ "aria-label": translate("colorPicker.swatchTrigger.label", { value: String(behaviorProps["data-value"]) }) }),
178
+ formatTrigger: (_behaviorProps, api, _args, translate) => {
179
+ const index = MACHINE_FORMATS.indexOf(api.format);
180
+ return { "aria-label": translate("colorPicker.formatTrigger.label", { format: MACHINE_FORMATS[(index + 1) % MACHINE_FORMATS.length] ?? MACHINE_FORMATS[0] }) };
181
+ },
182
+ formatSelect: (_behaviorProps, _api, _args, translate) => ({ "aria-label": translate("colorPicker.formatSelect.label") }),
183
+ positioner: (_behaviorProps, api) => api.inline ? { style: void 0 } : {}
184
+ },
185
+ field: {
186
+ ids: (field) => ({
187
+ label: field.label,
188
+ trigger: field.control
189
+ }),
190
+ describe: [
191
+ "trigger",
192
+ "channelInput",
193
+ "areaThumb",
194
+ "channelSliderThumb"
195
+ ],
196
+ labelable: false
197
+ },
198
+ machineTranslations: null,
199
+ variantProps: [
200
+ "value",
201
+ "defaultValue",
202
+ "onValueChange",
203
+ "onValueChangeEnd",
204
+ "size"
205
+ ],
206
+ useMachineProps: useColorPickerMachineProps,
207
+ slots: (props) => {
208
+ const size = resolveSize(props.size, "ColorPicker");
209
+ const raw = colorPickerRecipe.raw({ size });
210
+ return {
211
+ ...colorPickerRecipe({ size }),
212
+ eyeDropperTrigger: buttonPartClass({
213
+ variant: "ghost",
214
+ tone: "neutral",
215
+ size
216
+ }, raw.eyeDropperTrigger),
217
+ formatTrigger: buttonPartClass({
218
+ variant: "ghost",
219
+ tone: "neutral",
220
+ size: sizeBelow(size)
221
+ }, raw.formatTrigger),
222
+ channelInput: inputPartClass(size, raw.channelInput)
223
+ };
224
+ }
225
+ });
226
+ Object.assign(ColorPicker, { FormatSelect: withSelectIndicator(ColorPicker.FormatSelect) });
227
+ //#endregion
228
+ export { COLOR_PICKER_FORMATS, ColorPicker };
229
+
230
+ //# sourceMappingURL=color-picker.mjs.map