@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,122 @@
1
+ ---
2
+ name: 'button'
3
+ description: 'Button — 눌러서 동작 하나를 실행하는 기본 컨트롤입니다. 네이티브 `<button>`을 렌더링하며, 모양(`variant`)과 성격(`tone`)으로 한 화면 안의 주된 동작과 되돌릴 수 없는 동작을 구별합니다. 다른 이름: button, action button, icon button, submit button, CTA, 버튼, 아이콘 버튼, 제출 버튼, 액션 버튼.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/button.json'
8
+ registryStructuralVersion: '0.3.0'
9
+ lifecycle: 'active'
10
+ generator: 'packages/react/src/skills/generate.ts'
11
+ ---
12
+
13
+ <!--
14
+ 생성된 파일 — 손으로 고치지 않습니다.
15
+
16
+ Source: packages/registry/data/components/button.json (항목 구조 0.3.0)
17
+ Generator: packages/react/src/skills/generate.ts
18
+ Regenerate: npx nx run react:skills:generate
19
+
20
+ 아래에서 이 컴포넌트에 대해 말하는 모든 문장은 그 항목의 필드입니다. 여기서 고친 내용은 다음
21
+ 재생성 때 지워지고, 손으로 설명한 컴포넌트는 아무것도 실패하지 않은 채 설명과 어긋납니다.
22
+ 대신 항목을 고칩니다.
23
+ -->
24
+
25
+ # Button
26
+
27
+ > 눌러서 동작 하나를 실행하는 기본 컨트롤입니다. 네이티브 `<button>`을 렌더링하며, 모양(`variant`)과 성격(`tone`)으로 한 화면 안의 주된 동작과 되돌릴 수 없는 동작을 구별합니다.
28
+
29
+ `@neurocle/synapse-react` 0.3.0에서 생성했습니다. 설치된 버전이 이 버전이 아니면, 이 페이지의 어떤 내용보다 설치된 패키지 안에 함께 배포된 Registry를 우선합니다.
30
+
31
+ - 패키지: `@neurocle/synapse-react`
32
+ - 내보내기: `Button`
33
+ - 분류: `form-controls`
34
+ - 수명 주기: `active`
35
+
36
+ ## Do
37
+
38
+ > 사용자가 눌러서 동작 하나를 바로 실행하게 할 때 쓰세요 — 저장, 제출, 대화상자 열기, 삭제처럼. 한 화면의 주된 동작 하나만 `variant="solid"`로 두고 나머지는 `outline`이나 `ghost`로 물러나게 해서, 어느 버튼이 다음 단계인지 모양만 보고 알 수 있게 하세요. 아이콘만 있는 버튼은 자식으로 svg 하나와 `aria-label`을 주면 크기 척도의 컨트롤 치수를 가진 정사각형이 됩니다. IconButton을 따로 두지 않는 것은 의도된 결정입니다.
39
+
40
+ ## Don't
41
+
42
+ > 켜져 있거나 꺼져 있는 모드를 전환하는 데 쓰지 마세요 — 눌린 상태를 aria-pressed로 알리는 것은 Toggle입니다. 다른 페이지로 이동하는 데 `<button>`을 쓰지 마세요. 이동은 링크여야 하므로 `asChild`로 `<a>`를 렌더링해 버튼 모양만 입히세요. `tone="danger"`는 되돌릴 수 없는 동작에만 쓰며, 그 동작은 보통 `alertdialog` 역할의 Dialog로 한 번 더 확인받습니다. 동작 여러 개를 버튼으로 줄지어 늘어놓는 대신 한 trigger 뒤에 모아야 한다면 Menu를 쓰세요.
43
+
44
+ ## Anti-patterns
45
+
46
+ > 비활성화한 이유를 버튼에 붙은 툴팁으로만 설명하는 것. 비활성화된 Button은 탭 순서에서 빠지므로 키보드 사용자는 그 버튼에 도달해 이유를 읽을 수 없습니다 — 이유는 버튼 바깥의 보이는 텍스트로 두세요. 한 화면에 `solid` 버튼을 여러 개 두는 것도 같은 부류의 실수입니다. 모두가 주된 동작이면 어느 것도 주된 동작이 아닙니다.
47
+
48
+ Registry는 이 컴포넌트의 안내를 `reviewed`로 기록합니다(검토일 2026-09-26).
49
+
50
+ ## 관련 컴포넌트
51
+
52
+ - `Toggle` (`toggle`)
53
+ - `Menu` (`menu`)
54
+ - `Dialog` (`dialog`)
55
+
56
+ ## 가져오기
57
+
58
+ ```tsx
59
+ import { Button } from '@neurocle/synapse-react'
60
+ ```
61
+
62
+ ## Anatomy
63
+
64
+ React 네임스페이스가 노출하는 part 1개를 항목의 `parts.containment`가 기록한 대로 조합했습니다. 한 part가 놓일 수 있는 정당한 자리가 둘 이상이면 스니펫은 첫 번째를 쓰고, 아래 목록이 나머지를 알려 줍니다.
65
+
66
+ ```tsx
67
+ <Button.Root />
68
+ ```
69
+
70
+ - `Button.Root` — 최상위에 놓입니다
71
+
72
+ ## Props
73
+
74
+ 빌드가 방출하는 선언에서 도출한 prop 4개. 선언에는 기본값을 둘 자리가 없으므로 prop 기록에는 기본값이 없습니다. 기본값이 있다면 그 prop의 설명에 적혀 있습니다.
75
+
76
+ 모든 prop이 선택입니다. 아무것도 넘기지 않으면 컴포넌트는 비제어로 동작합니다.
77
+
78
+ ### 선택
79
+
80
+ - `variant` — `ButtonVariant`, 선택. 채움의 모양. 한 화면의 주된 동작 하나만 `solid`로 두고 나머지는 `outline`이나 `ghost`로 물러나게 합니다. `soft`는 상태 색으로 물든 알림 안의 동작처럼, 주변 표면의 톤을 따라가는 버튼에 씁니다. 기본값은 `solid`입니다.
81
+ - `tone` — `ButtonTone`, 선택. 동작의 성격. `danger`는 되돌릴 수 없는 동작에만 쓰고, `success`, `info`, `warning`은 같은 상태를 알리는 맥락 안의 동작에 씁니다. 기본값은 `primary`입니다.
82
+ - `size` — `Size`, 선택. 하나뿐인 공용 척도를 따릅니다. 모든 컴포넌트와 마찬가지로 기본값은 `md`입니다.
83
+ - `disabled` — `boolean`, 선택. 비활성화된 Button은 반응하지 않습니다. `asChild`로 링크를 렌더하면 탭 순서에서 빠지고 활성화가 막힙니다.
84
+
85
+ ## Variants
86
+
87
+ - `variant` — `solid`, `outline`, `ghost`, `soft`. 기본값은 `solid`.
88
+ - `tone` — `primary`, `neutral`, `danger`, `success`, `info`, `warning`. 기본값은 `primary`.
89
+ - `size` — `xs`, `sm`, `md`, `lg`, `xl`. 기본값은 `md`.
90
+
91
+ ## 폼
92
+
93
+ 폼 참여: 아니요.
94
+
95
+ > 기본 `type`이 `button`이라 스스로 폼을 제출하지 않고, 보관하는 값도 없습니다. 사용처가 `type="submit"`을 주면 폼의 제출자가 되며, 그때 준 `name`과 `value`는 이 버튼으로 제출했을 때만 FormData에 들어갑니다. 값을 가진 컨트롤로서 참여하는 것이 아니라 제출을 일으키는 쪽으로만 참여합니다.
96
+
97
+ ## 이 컴포넌트에 일부러 없는 것
98
+
99
+ - `empty-state` — Button은 값도 컬렉션도 갖지 않으므로 비어 있을 수 있는 것이 없습니다. 레이블이 없는 버튼은 빈 상태가 아니라 접근 가능한 이름이 빠진 결함입니다.
100
+ - `loading-state` — 진행 중인 동작은 사용처가 `disabled`와 `aria-busy`, 그리고 스피너 같은 자식을 조합해 표현합니다. Button이 로딩 상태를 따로 가지면 누를 수 없음을 나타내는 두 번째 방식이 생기고, 둘 중 하나만 갱신되는 순간부터 두 방식이 어긋납니다.
101
+ - `error-state` — Button은 검증할 값이 없고 `invalid` prop도 없습니다. 실패하는 것은 버튼이 촉발한 동작이며, 그 실패는 동작의 결과가 나타나는 곳 — 폼 필드나 인라인 알림 — 에서 알립니다.
102
+
103
+ ## 접근성
104
+
105
+ ### 접근 가능한 이름
106
+
107
+ > 버튼의 텍스트 콘텐츠입니다. 아이콘만 있는 버튼은 svg가 이름을 주지 않으므로 `aria-label`이 반드시 있어야 하며, 정사각형 모양도 `aria-label`과 svg 하나뿐인 자식이 함께 있을 때만 적용됩니다. 이름이 없는 아이콘 버튼은 모양부터 어긋나 보입니다.
108
+
109
+ ### 포커스
110
+
111
+ > root가 유일하게 포커스 가능한 요소이며 탭 순서에 들어갑니다. `disabled`이면 네이티브 `disabled`와 함께 aria-disabled="true", data-disabled, tabIndex=-1을 받고 클릭이 삼켜지므로, `asChild`로 렌더링한 링크도 탭 순서에서 빠지고 활성화되지 않습니다.
112
+
113
+ ## 로케일과 컬렉션
114
+
115
+ - 로케일 의존: 아니요. 항목은 이를 이유 없이 사실로만 기록합니다.
116
+ - 컬렉션 윈도잉: 아니요. 항목은 이를 이유 없이 사실로만 기록합니다.
117
+
118
+ ## 기능 용어와 다른 이름
119
+
120
+ - 다루는 기능: `trigger-action`, `toolbar-control`.
121
+ - 다른 이름: `button`, `action button`, `icon button`, `submit button`, `CTA`, `버튼`, `아이콘 버튼`, `제출 버튼`, `액션 버튼`.
122
+ - 어휘 상태: `controlled`.
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: 'card'
3
+ description: 'Card — 제목, 설명, 본문, 동작을 하나의 올라온 표면에 묶어 목록이나 격자의 한 단위로 보여 주는 컨테이너입니다. 제목의 제목 수준은 강제하지 않으며 사용처가 `asChild`로 알맞은 제목 요소를 고릅니다. 다른 이름: card, panel, tile, box, container, 카드, 패널, 타일.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/card.json'
8
+ registryStructuralVersion: '0.3.0'
9
+ lifecycle: 'active'
10
+ generator: 'packages/react/src/skills/generate.ts'
11
+ ---
12
+
13
+ <!--
14
+ 생성된 파일 — 손으로 고치지 않습니다.
15
+
16
+ Source: packages/registry/data/components/card.json (항목 구조 0.3.0)
17
+ Generator: packages/react/src/skills/generate.ts
18
+ Regenerate: npx nx run react:skills:generate
19
+
20
+ 아래에서 이 컴포넌트에 대해 말하는 모든 문장은 그 항목의 필드입니다. 여기서 고친 내용은 다음
21
+ 재생성 때 지워지고, 손으로 설명한 컴포넌트는 아무것도 실패하지 않은 채 설명과 어긋납니다.
22
+ 대신 항목을 고칩니다.
23
+ -->
24
+
25
+ # Card
26
+
27
+ > 제목, 설명, 본문, 동작을 하나의 올라온 표면에 묶어 목록이나 격자의 한 단위로 보여 주는 컨테이너입니다. 제목의 제목 수준은 강제하지 않으며 사용처가 `asChild`로 알맞은 제목 요소를 고릅니다.
28
+
29
+ `@neurocle/synapse-react` 0.3.0에서 생성했습니다. 설치된 버전이 이 버전이 아니면, 이 페이지의 어떤 내용보다 설치된 패키지 안에 함께 배포된 Registry를 우선합니다.
30
+
31
+ - 패키지: `@neurocle/synapse-react`
32
+ - 내보내기: `Card`
33
+ - 분류: `disclosure-layout-display`
34
+ - 수명 주기: `active`
35
+
36
+ ## Do
37
+
38
+ > 하나의 대상(모델, 데이터셋, 실험 결과)을 제목, 요약, 동작과 함께 한 덩어리로 보여 줄 때 쓰세요. 같은 모양의 카드를 목록이나 격자로 나란히 놓아 비교하게 하세요.
39
+
40
+ ## Don't
41
+
42
+ > 페이지의 구획을 나누려고 모든 영역을 카드로 감싸지 마세요 — 구획은 제목과 간격, 필요하면 Separator로 나누세요. 펼치고 접는 영역은 Collapsible이나 Accordion이고, 떠 있는 내용은 Popover나 Dialog입니다.
43
+
44
+ ## Anti-patterns
45
+
46
+ > 카드 전체를 `onClick`이 달린 `<div>`로 만드는 것. 키보드로 도달할 수 없고 이름도 없습니다. 누를 수 있는 카드는 제목의 링크 하나로 이동하게 하세요. 카드 안에 카드를 겹치는 것도 같은 부류입니다 — 표면이 두 겹이 되어 무엇이 한 단위인지 흐려집니다.
47
+
48
+ Registry는 이 컴포넌트의 안내를 `reviewed`로 기록합니다(검토일 2026-09-26).
49
+
50
+ ## 관련 컴포넌트
51
+
52
+ - `Separator` (`separator`)
53
+ - `Collapsible` (`collapsible`)
54
+ - `Dialog` (`dialog`)
55
+
56
+ ## 가져오기
57
+
58
+ ```tsx
59
+ import { Card } from '@neurocle/synapse-react'
60
+ ```
61
+
62
+ ## Anatomy
63
+
64
+ React 네임스페이스가 노출하는 part 6개를 항목의 `parts.containment`가 기록한 대로 조합했습니다. 한 part가 놓일 수 있는 정당한 자리가 둘 이상이면 스니펫은 첫 번째를 쓰고, 아래 목록이 나머지를 알려 줍니다.
65
+
66
+ ```tsx
67
+ <Card.Root>
68
+ <Card.Header>
69
+ <Card.Title />
70
+ <Card.Description />
71
+ </Card.Header>
72
+ <Card.Body />
73
+ <Card.Footer />
74
+ </Card.Root>
75
+ ```
76
+
77
+ - `Card.Root` — 최상위에 놓입니다
78
+ - `Card.Header` — `Root` 안에 놓입니다
79
+ - `Card.Title` — `Header` 안, 또는 `Root` 안에 놓입니다
80
+ - `Card.Description` — `Header` 안, 또는 `Root` 안에 놓입니다
81
+ - `Card.Body` — `Root` 안에 놓입니다
82
+ - `Card.Footer` — `Root` 안에 놓입니다
83
+
84
+ ## Props
85
+
86
+ 빌드가 방출하는 선언에서 도출한 prop 1개. 선언에는 기본값을 둘 자리가 없으므로 prop 기록에는 기본값이 없습니다. 기본값이 있다면 그 prop의 설명에 적혀 있습니다.
87
+
88
+ 모든 prop이 선택입니다. 아무것도 넘기지 않으면 컴포넌트는 비제어로 동작합니다.
89
+
90
+ ### 선택
91
+
92
+ - `id` — `string`, 선택. 카드 전체의 식별자. 서버와 클라이언트에서 같습니다.
93
+
94
+ ## 폼
95
+
96
+ 폼 참여: 아니요.
97
+
98
+ > 폼에 제출하는 값이 없습니다. 폼 안에 놓여도 내용을 보여 주는 요소일 뿐입니다.
99
+
100
+ ## 이 컴포넌트에 일부러 없는 것
101
+
102
+ - `size-axis` — 카드의 크기는 담긴 내용과 놓인 격자가 정합니다. 여백과 제목 크기를 xs부터 xl까지 바꾸는 척도는 카드가 아니라 안쪽 컨트롤의 몫입니다.
103
+ - `empty-state` — 카드는 사용처가 넣은 내용을 담는 틀이라 스스로 비어 있을 수 없습니다. 목록이 비었다는 사실은 카드가 아니라 EmptyState로 알립니다.
104
+ - `loading-state` — 카드는 아무것도 불러오지 않습니다. 내용을 불러오는 동안은 안쪽을 Skeleton으로 채웁니다.
105
+ - `error-state` — 카드 자신은 실패할 동작이 없습니다. 내용의 오류는 안쪽에 Alert로 알립니다.
106
+
107
+ ## 접근성
108
+
109
+ ### 접근 가능한 이름
110
+
111
+ > 이름이 따로 없습니다. 의미가 필요하면 사용처가 `<article aria-labelledby>`로 제목을 이름으로 잇습니다.
112
+
113
+ ### 포커스
114
+
115
+ > 카드 자체는 포커스를 받지 않습니다. 카드 전체를 누를 수 있게 하려면 제목 안의 링크 하나만 포커스를 받게 하고 영역을 넓히며, 카드를 버튼으로 만들지 마세요.
116
+
117
+ ## 로케일과 컬렉션
118
+
119
+ - 로케일 의존: 아니요. 항목은 이를 이유 없이 사실로만 기록합니다.
120
+ - 컬렉션 윈도잉: 아니요. 항목은 이를 이유 없이 사실로만 기록합니다.
121
+
122
+ ## 기능 용어와 다른 이름
123
+
124
+ - 다루는 기능: `content-card`, `grouped-content`.
125
+ - 다른 이름: `card`, `panel`, `tile`, `box`, `container`, `카드`, `패널`, `타일`.
126
+ - 어휘 상태: `controlled`.
@@ -0,0 +1,176 @@
1
+ ---
2
+ name: 'carousel'
3
+ description: 'Carousel — 스냅 지점을 가진 스크롤러로, 버튼, 인디케이터 점, 드래그, 그리고 선택적으로 타이머가 구동합니다. 슬라이드는 사용처의 children이며, 컴포넌트는 개수와 페이지를 보관하고 스냅 지점이 놓일 위치를 결정하는 CSS 사용자 정의 속성을 기록합니다. 다른 이름: carousel, slider, slideshow, gallery, image slider, swiper, 캐러셀, 슬라이더, 슬라이드쇼, 이미지 슬라이더.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/carousel.json'
8
+ registryStructuralVersion: '0.3.0'
9
+ lifecycle: 'active'
10
+ generator: 'packages/react/src/skills/generate.ts'
11
+ ---
12
+
13
+ <!--
14
+ 생성된 파일 — 손으로 고치지 않습니다.
15
+
16
+ Source: packages/registry/data/components/carousel.json (항목 구조 0.3.0)
17
+ Generator: packages/react/src/skills/generate.ts
18
+ Regenerate: npx nx run react:skills:generate
19
+
20
+ 아래에서 이 컴포넌트에 대해 말하는 모든 문장은 그 항목의 필드입니다. 여기서 고친 내용은 다음
21
+ 재생성 때 지워지고, 손으로 설명한 컴포넌트는 아무것도 실패하지 않은 채 설명과 어긋납니다.
22
+ 대신 항목을 고칩니다.
23
+ -->
24
+
25
+ # Carousel
26
+
27
+ > 스냅 지점을 가진 스크롤러로, 버튼, 인디케이터 점, 드래그, 그리고 선택적으로 타이머가 구동합니다. 슬라이드는 사용처의 children이며, 컴포넌트는 개수와 페이지를 보관하고 스냅 지점이 놓일 위치를 결정하는 CSS 사용자 정의 속성을 기록합니다.
28
+
29
+ `@neurocle/synapse-react` 0.3.0에서 생성했습니다. 설치된 버전이 이 버전이 아니면, 이 페이지의 어떤 내용보다 설치된 패키지 안에 함께 배포된 Registry를 우선합니다.
30
+
31
+ - 패키지: `@neurocle/synapse-react`
32
+ - 내보내기: `Carousel`
33
+ - 분류: `collection-data-entry`
34
+ - 수명 주기: `active`
35
+
36
+ ## 알려진 예외 — 사용 전에 확인
37
+
38
+ 이 컴포넌트는 아래 기준 1개를 **의도적으로 충족하지 않습니다**. 기록된 결정이므로 고치려 들지 말고, 각 항목의 유의점을 지켜서 씁니다.
39
+
40
+ ### 국제화 — 번역할 수 없는 문자열
41
+
42
+ - 대상 part: `progressText`
43
+ - 충족하지 못하는 것: 진행 텍스트가 `3 / 8` 형태로 고정되며 번역 키가 없습니다.
44
+ - 의도한 이유: 단어가 없는 보이는 텍스트이므로, 아무도 요청하지 않은 키를 만들지 않고 그대로 둡니다.
45
+ - 사용 시 유의점: 로케일마다 다른 표기(예: "8개 중 3번째")가 필요하면 진행 텍스트 part를 쓰지 않고 제품이 직접 렌더링하세요.
46
+
47
+ ## Do
48
+
49
+ > 사용자가 비교하기보다 훑어보는, 같은 종류의 대등한 콘텐츠 — 상품 사진, 순환하는 고객 후기, 뷰포트보다 넓은 카드 선반. 항목들이 동등하고 한꺼번에 모두 보는 것이 목적이 아닐 때 제 몫을 합니다. 페이지가 둘 이상이면 언제나 인디케이터 점을 렌더링하세요. 점은 얼마나 많은지와 사용자가 어디에 있는지를 말해주는 유일한 part이며, 점이 없는 캐러셀은 자신의 범위를 숨깁니다. `slidesPerPage`와 `slidesPerMove: "auto"`를 함께 쓰면 제품이 흔히 원하는 선반 동작을 얻습니다.
50
+
51
+ ## Don't
52
+
53
+ > 반드시 읽혀야 하는 콘텐츠에는 쓰지 마세요 — 중요한 메시지를 순환하는 배너는 사용자가 다 읽기 전에 넘어가 버리고, 기다리거나 점을 찾아 헤매는 것 말고는 되돌아갈 방법이 없어 놓치게 됩니다. 긴 목록을 페이지로 나누는 데 쓰지 마세요. 모든 슬라이드가 마운트되고 컬렉션도 윈도잉도 없으므로 항목 백 개는 살아 있는 요소 백 개이며, 이럴 때는 Pagination이나 가상화된 목록이 맞는 도구입니다. 단계별 흐름으로 쓰지 마세요 — Steps는 어떤 단계가 끝났고 어떤 단계가 현재인지 알지만, 캐러셀은 "Slide 3 of 8"이라고만 말합니다. 그리고 사용자가 조치해야 하는 것에는 자동 재생을 켜지 마세요. machine이 hover, 포커스, 동작 줄이기 설정에서 일시 정지하여 문제를 완화하지만, 그렇다고 움직이는 콘텐츠가 결정을 놓아둘 좋은 자리가 되지는 않습니다.
54
+
55
+ ## Anti-patterns
56
+
57
+ > 슬라이드 사이 간격을 `spacing` prop 대신 레시피나 래퍼의 CSS로 설정하는 것. machine은 `--slide-spacing`으로부터 `--slide-item-size`를 계산하므로, 간격을 다른 곳에서 스타일링하면 스냅 지점이 슬라이드가 더 이상 갖지 않은 너비를 기준으로 계산된 채 남습니다. 그러면 캐러셀은 매 페이지마다 몇 픽셀씩 어긋나게 멈추고, 페이지가 많을수록 더 멀리 벗어납니다. 이번 묶음에서 공개 인터페이스에 리터럴 CSS 길이를 두는 것이 토큰 규율의 실패가 아니라 올바른 답인 유일한 컴포넌트이며 — 이는 색상이나 모서리가 아니라 길이이므로, 테마로 바꿀 수 있는 무언가가 새어 나가는 것도 아닙니다.
58
+
59
+ Registry는 이 컴포넌트의 안내를 `reviewed`로 기록합니다(검토일 2026-09-22).
60
+
61
+ ## 관련 컴포넌트
62
+
63
+ - `Pagination` (`pagination`)
64
+ - `Marquee` (`marquee`)
65
+ - `Tabs` (`tabs`)
66
+ - `ScrollArea` (`scroll-area`)
67
+ - `Steps` (`steps`)
68
+
69
+ ## 가져오기
70
+
71
+ ```tsx
72
+ import { Carousel } from '@neurocle/synapse-react'
73
+ ```
74
+
75
+ ## Anatomy
76
+
77
+ React 네임스페이스가 노출하는 part 10개를 항목의 `parts.containment`가 기록한 대로 조합했습니다. 한 part가 놓일 수 있는 정당한 자리가 둘 이상이면 스니펫은 첫 번째를 쓰고, 아래 목록이 나머지를 알려 줍니다.
78
+
79
+ ```tsx
80
+ <Carousel.Root>
81
+ <Carousel.ItemGroup>
82
+ <Carousel.Item />
83
+ </Carousel.ItemGroup>
84
+ <Carousel.Control>
85
+ <Carousel.NextTrigger />
86
+ <Carousel.PrevTrigger />
87
+ <Carousel.AutoplayTrigger />
88
+ <Carousel.ProgressText />
89
+ </Carousel.Control>
90
+ <Carousel.IndicatorGroup>
91
+ <Carousel.Indicator />
92
+ </Carousel.IndicatorGroup>
93
+ </Carousel.Root>
94
+ ```
95
+
96
+ - `Carousel.Root` — 최상위에 놓입니다
97
+ - `Carousel.ItemGroup` — `Root` 안에 놓입니다
98
+ - `Carousel.Item` — `ItemGroup` 안에 놓입니다
99
+ - `Carousel.Control` — `Root` 안에 놓입니다
100
+ - `Carousel.NextTrigger` — `Control` 안에 놓입니다
101
+ - `Carousel.PrevTrigger` — `Control` 안에 놓입니다
102
+ - `Carousel.IndicatorGroup` — `Root` 안에 놓입니다
103
+ - `Carousel.Indicator` — `IndicatorGroup` 안에 놓입니다
104
+ - `Carousel.AutoplayTrigger` — `Control` 안에 놓입니다
105
+ - `Carousel.ProgressText` — `Control` 안에 놓입니다
106
+
107
+ ## Props
108
+
109
+ 빌드가 방출하는 선언에서 도출한 prop 20개. 선언에는 기본값을 둘 자리가 없으므로 prop 기록에는 기본값이 없습니다. 기본값이 있다면 그 prop의 설명에 적혀 있습니다.
110
+
111
+ ### 필수
112
+
113
+ - `slideCount` — `number`, 필수. 슬라이드가 몇 개인지. 컴포넌트는 슬라이드를 쥐지 않고 이 개수를 쥡니다.
114
+
115
+ ### 선택
116
+
117
+ - `page` — `number`, 선택. 제어되는 현재 페이지이며, 0부터 세요.
118
+ - `defaultPage` — `number`, 선택. 비제어 초기 페이지. `page`가 주어지면 무시됩니다.
119
+ - `onPageChange` — `(details: CarouselPageChangeDetails) => void`, 선택. 제어 여부와 무관하게 페이지가 바뀔 때마다 알림을 받습니다.
120
+ - `slidesPerPage` — `number`, 선택. 한 번에 보이는 슬라이드 수. 기본값은 1입니다.
121
+ - `slidesPerMove` — `number | 'auto'`, 선택. 한 단계에 움직이는 슬라이드 수이며, `'auto'`는 한 페이지를 통째로 움직입니다.
122
+ - `spacing` — `string`, 선택. 슬라이드 사이의 간격이며, CSS 길이입니다. 토큰이 아니라 길이인 이유는 machine이 이 값으로 스냅 지점을 계산하기 때문입니다. 제품 자신의 여백 척도에서 값을 가져와 넘기면 됩니다.
123
+ - `padding` — `string`, 선택. 첫 슬라이드 앞과 마지막 슬라이드 뒤의 여백이며, CSS 길이입니다.
124
+ - `orientation` — `Orientation`, 선택. 슬라이드가 스크롤되는 축. 기본값은 `horizontal`입니다.
125
+ - `loop` — `boolean`, 선택. 양 끝을 넘어가면 반대편으로 이어집니다.
126
+ - `autoplay` — `boolean | { readonly delay: number; }`, 선택. 자동으로 넘깁니다. 숫자를 주면 밀리초 단위의 지연 시간이 됩니다.
127
+ - `onAutoplayStatusChange` — `(details: CarouselAutoplayStatusDetails) => void`, 선택. 원인이 무엇이든 자동 넘김이 시작되거나 멈출 때 알림을 받습니다.
128
+ - `allowMouseDrag` — `boolean`, 선택. 터치에서 이미 되는 것처럼 마우스로도 드래그할 수 있게 합니다.
129
+ - `onDragStatusChange` — `(details: CarouselDragStatusDetails) => void`, 선택. 드래그가 시작되거나 끝날 때 알림을 받습니다.
130
+ - `inViewThreshold` — `number | number[]`, 선택. 슬라이드가 보이는 것으로 치려면 얼마만큼 노출되어야 하는지.
131
+ - `snapType` — `CarouselSnapType`, 선택. 스크롤러가 얼마나 단단히 자리 잡는지. 기본값은 `mandatory`입니다.
132
+ - `autoSize` — `boolean`, 선택. 각 슬라이드의 크기를 페이지가 아니라 자기 콘텐츠에 맞춥니다.
133
+ - `translations` — `TranslationOverrides`, 선택. 이 Carousel에만 적용되는 접근성 문자열이며, provider의 것보다 우선합니다.
134
+ - `size` — `Size`, 선택. 하나의 공유 척도에서 옵니다. 모든 컴포넌트가 그렇듯 기본값은 `md`입니다.
135
+ - `id` — `string`, 선택. 팩토리가 생성하는 식별자를 덮어씁니다. 서버와 클라이언트에서 동일합니다.
136
+
137
+ ## Variants
138
+
139
+ - `size` — `xs`, `sm`, `md`, `lg`, `xl`. 기본값은 `md`. size는 세 개의 trigger 버튼과 진행 텍스트 — 슬라이드를 둘러싼 크롬 — 의 크기를 조절합니다. 슬라이드에는 의도적으로 손대지 않습니다. 슬라이드의 간격과 끝 여백은 `spacing`과 `padding` prop인데, machine이 이를 `--slide-spacing`과 스냅 지점의 위치를 결정하는 `--slide-item-size` 계산에 기록하기 때문입니다. 레시피가 자체 간격을 선언하면 간격과 스냅 지점이 서로 다른 곳에 놓여, 캐러셀이 매 페이지마다 몇 픽셀씩 어긋나게 멈춥니다.
140
+
141
+ ## 폼
142
+
143
+ 폼 참여: 아니요.
144
+
145
+ > 폼에 제출하는 값이 없습니다. 페이지는 어떤 슬라이드가 화면에 있는지를 나타내는 뷰 상태이며, 이를 영속해야 하는 제품은 `page`와 `onPageChange`로 직접 보관합니다.
146
+
147
+ ## 이 컴포넌트에 일부러 없는 것
148
+
149
+ - `empty-state` — `slideCount`가 0이면 넘길 것이 없다는 뜻이며, 아무것도 없는 캐러셀은 모든 컨트롤이 아무 일도 하지 않는 틀일 뿐입니다. 사진이 없는 항목에 갤러리를 렌더링하지 않기로 하는 것과 같은 방식으로, 제품이 이를 렌더링하지 않기로 결정합니다.
150
+ - `loading-state` — 슬라이드는 이 컴포넌트가 렌더링될 때 이미 존재하는 children입니다. 흔히 로드되는 것은 슬라이드 안의 이미지이며, 스켈레톤은 스크롤러 전체 위가 아니라 그곳에 있어야 합니다. 루트의 로딩 상태는 컨트롤과 사용자가 추적하고 있는 위치를 지워버립니다.
151
+ - `error-state` — 스냅 지점으로의 스크롤은 실패할 수 없고, 여기에는 거부될 요청도 없습니다. 이미지 로드에 실패한 슬라이드는 그 실패를 슬라이드 안에서 보여주며, 실패한 요소도 사용자가 보고 있는 요소도 바로 그 슬라이드입니다.
152
+
153
+ ## 접근성
154
+
155
+ ### 접근 가능한 이름
156
+
157
+ > 두 단계 버튼과 자동 재생 버튼은 provider의 번역 세트에서 이름을 얻습니다. 점별·슬라이드별 이름 — `indicator(index)`와 `item(index, count)` — 은 machine이 호출하는 함수이므로 `machineTranslations`로 표현할 수 없고, 거기에 문자열을 넘기면 예외가 발생합니다. 그래서 대신 `useMachineProps`에서 `carousel.indicator.label`과 `carousel.item.label`에 맞춰 해석합니다. machine은 슬라이드 번호를 0부터 세지만 사람은 그렇지 않으므로, `+ 1`은 machine이 아니라 번역이 담당합니다.
158
+
159
+ ### 포커스
160
+
161
+ > 페이지가 바뀌어도 machine은 포커스를 어디로도 옮기지 않습니다 — 눌린 컨트롤이 포커스를 유지하며, 덕분에 사용자가 다음 버튼을 반복해서 누를 수 있습니다. Synapse는 포인터가 캐러셀 위에 있거나 포커스가 그 안에 있는 동안 실행 중인 자동 재생을 일시 정지하고, 둘 다 떠나면 다시 시작합니다(사용자가 자동 재생 trigger로 멈춘 회전은 멈춘 채로 둡니다). prefers-reduced-motion에서는 자동 재생을 강제로 끄고, machine의 부드러운 페이지 스크롤을 즉시 이동으로 바꿉니다.
162
+
163
+ ### 알려진 빈틈
164
+
165
+ > `progressText({ page, totalPages })`는 `3 / 8`로 렌더링됩니다. 이는 접근 가능한 이름이 아니라 보이는 텍스트이고, 단어를 담고 있지 않으며, 번역 세트에 키도 없으므로 아무도 요청하지 않은 키를 만들어 주는 대신 그대로 둡니다. 루트와 슬라이드의 역할 설명은 동작 prop을 보정하여 번역합니다(`carousel.root.roleDescription`, `carousel.item.roleDescription`). 어떤 machine 번역도 aria-roledescription에 닿지 않기 때문입니다.
166
+
167
+ ## 로케일과 컬렉션
168
+
169
+ - 로케일 의존: 예. 스크롤러는 논리적 인라인 방향으로 동작하고 인디케이터 그룹의 화살표 키는 `dir`에 맞춰 해석되므로, ArrowRight는 왼쪽에서 오른쪽으로 쓰는 제품에서는 앞으로, 오른쪽에서 왼쪽으로 쓰는 제품에서는 뒤로 이동합니다. 네 개의 고정된 컨트롤 이름은 provider의 번역에서 오며, 슬라이드별·점별 이름은 슬라이드의 1부터 시작하는 번호로 provider에 맞춰 형식화됩니다.
170
+ - 컬렉션 윈도잉: 아니요. 모든 슬라이드가 렌더링됩니다. machine은 어떤 슬라이드가 보이는지만 결정하고 나머지에는 aria-hidden을 표시합니다. 컬렉션 인터페이스가 없으므로 슬라이드가 백 개인 캐러셀은 마운트된 요소 백 개이며 — 이는 나중에 메울 윈도잉 공백이 아니라 다른 패턴을 택해야 할 이유입니다.
171
+
172
+ ## 기능 용어와 다른 이름
173
+
174
+ - 다루는 기능: `slideshow`, `snap-scrolling`, `autoplay-rotation`, `slide-indicators`, `drag-to-scroll`, `slides-per-page`, `reduced-motion`, `axis-orientation`, `translatable-strings`.
175
+ - 다른 이름: `carousel`, `slider`, `slideshow`, `gallery`, `image slider`, `swiper`, `캐러셀`, `슬라이더`, `슬라이드쇼`, `이미지 슬라이더`.
176
+ - 어휘 상태: `controlled`.
@@ -0,0 +1,206 @@
1
+ ---
2
+ name: 'cascade-select'
3
+ description: 'CascadeSelect — 트리의 각 단계마다 하나씩 연결된 열로 이루어진 패널을 여는 trigger. 선택을 한 단계씩 좁혀 가며, 최상위부터 내려오는 전체 경로로 제출됩니다. 다른 이름: cascader, cascade select, multi-level select, drill-down picker, 캐스케이더, 계층 선택, 다단계 셀렉트, 연쇄 선택.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/cascade-select.json'
8
+ registryStructuralVersion: '0.3.0'
9
+ lifecycle: 'active'
10
+ generator: 'packages/react/src/skills/generate.ts'
11
+ ---
12
+
13
+ <!--
14
+ 생성된 파일 — 손으로 고치지 않습니다.
15
+
16
+ Source: packages/registry/data/components/cascade-select.json (항목 구조 0.3.0)
17
+ Generator: packages/react/src/skills/generate.ts
18
+ Regenerate: npx nx run react:skills:generate
19
+
20
+ 아래에서 이 컴포넌트에 대해 말하는 모든 문장은 그 항목의 필드입니다. 여기서 고친 내용은 다음
21
+ 재생성 때 지워지고, 손으로 설명한 컴포넌트는 아무것도 실패하지 않은 채 설명과 어긋납니다.
22
+ 대신 항목을 고칩니다.
23
+ -->
24
+
25
+ # CascadeSelect
26
+
27
+ > 트리의 각 단계마다 하나씩 연결된 열로 이루어진 패널을 여는 trigger. 선택을 한 단계씩 좁혀 가며, 최상위부터 내려오는 전체 경로로 제출됩니다.
28
+
29
+ `@neurocle/synapse-react` 0.3.0에서 생성했습니다. 설치된 버전이 이 버전이 아니면, 이 페이지의 어떤 내용보다 설치된 패키지 안에 함께 배포된 Registry를 우선합니다.
30
+
31
+ - 패키지: `@neurocle/synapse-react`
32
+ - 내보내기: `CascadeSelect`
33
+ - 분류: `collection-data-entry`
34
+ - 수명 주기: `active`
35
+
36
+ ## 알려진 예외 — 사용 전에 확인
37
+
38
+ 이 컴포넌트는 아래 기준 2개를 **의도적으로 충족하지 않습니다**. 기록된 결정이므로 고치려 들지 말고, 각 항목의 유의점을 지켜서 씁니다.
39
+
40
+ ### WCAG 2.2 SC 1.4.11 비텍스트 대비 (AA)
41
+
42
+ - 대상 part: `item`
43
+ - 충족하지 못하는 것: CascadeSelect의 강조된 항목은 `secondary.default` 배경만으로 표시되며, overlay 배경 대비 1.16:1(밝은 테마), 1.46:1(어두운 테마)로 3:1에 못 미칩니다. 포인터와 키보드 모두 링을 그리지 않습니다.
44
+ - 의도한 이유: 모든 강조 행에 링을 그리면 시스템의 다른 어떤 hover보다 무겁게 보였습니다. 포커스는 목록에 머물고 강조된 항목은 `aria-activedescendant`로 보조 기술에 전달되며, 선택된 항목은 파란 글자와 체크 표시로 따로 구분됩니다. `contrast-pairs.json`에 `highlight` 용도로 기록되어 있습니다.
45
+ - 사용 시 유의점: 저시력 사용자에게 강조 위치가 잘 보이지 않을 수 있습니다. 접근성 감사 대상 제품이라면 이 예외를 감사 문서에 포함하세요. 항목을 직접 그릴 때는 선택 상태의 글자색과 체크 표시를 지워 강조와 선택을 같은 모양으로 만들지 마세요.
46
+
47
+ ### Synapse 목록 강조 일관성
48
+
49
+ - 대상 part: `item`
50
+ - 충족하지 못하는 것: `highlightTrigger="click"`을 넘기면 포인터가 강조를 옮기지 않아 가지 항목은 가리켜도 반응이 없는데, 잎 항목은 가리키면 강조 배경이 그려집니다. 같은 목록 안에서 hover 반응이 섞입니다.
51
+ - 의도한 이유: 기본값 `hover`에서 Zag는 잎 항목을 가리킬 때 강조를 부모 경로에 두므로, 잎의 hover는 CSS로 따로 그립니다. 이 규칙은 `click` 모드에서도 적용되며 두 모드를 구분할 속성이 machine에 없습니다.
52
+ - 사용 시 유의점: 가능하면 기본값 `hover`를 쓰세요. `click`이 꼭 필요하면 hover 반응이 가지와 잎에서 다르게 보인다는 점을 감안하고 스타일을 덧씌우세요.
53
+
54
+ ## Do
55
+
56
+ > 진정으로 계층적이고 한꺼번에 보여주기에는 너무 큰 집합에서의 선택 — 대륙 안의 국가 안의 지역, 부서 안의 카테고리, 파일 트리 안의 노드 — 처럼 사용자가 한 단계씩 좁혀 가고 답이 마지막 조각이 아니라 전체 경로인 경우. 보고하는 값이 경로이고 알리는 개수가 가지별이므로, 제품이 이미 단계를 따로 모델링하고 있는 데이터에 잘 맞습니다.
57
+
58
+ ## Don't
59
+
60
+ > 아무리 길어도 평평한 옵션 집합에는 쓰지 마세요. 그것은 Select이며, 단계가 없는 데이터에 단계를 덧씌우면 그냥 나열할 수 있었던 항목에 닿기 위해 사용자가 열을 열어야 합니다. 사용자가 여러 가지를 나란히 펼쳐 둔 채 계층 전체를 탐색하거나 재구성하려 할 때는 쓰지 마세요 — 그것은 단일 경로가 아니라 구조를 보여주는 TreeView입니다. 사용자가 원하는 것을 알고 있어 직접 입력하는 편을 선호할 때는 쓰지 마세요. 잎 레이블에 대한 Combobox는 한 번의 동작으로 답에 도달하며, 이것을 대체하기보다 곁에 함께 제공할 수 있습니다.
61
+
62
+ ## Anti-patterns
63
+
64
+ > 열에서 알리는 개수를 렌더링한 행으로부터 도출하는 것. 가지의 aria-setsize는 형제의 수이고 항목의 id는 값 경로에서 도출되므로, 한 번도 DOM에 들어간 적 없는 노드도 안정적인 id와 올바른 알림 위치를 가집니다 — 그리고 하이라이트된 노드는 자기 열의 윈도 밖에 있을 때마다 잘린 채로라도 렌더링되어야 하며, 그렇지 않으면 aria-activedescendant가 아무것도 가리키지 않습니다. 마찬가지로, 데이터가 중첩된 형태로 도착한다는 이유로 이것을 택하지 마세요. 페이로드의 중첩은 사용자가 탐색하고 싶어 하는 단계가 아닙니다.
65
+
66
+ Registry는 이 컴포넌트의 안내를 `reviewed`로 기록합니다(검토일 2026-09-22).
67
+
68
+ ## 관련 컴포넌트
69
+
70
+ - `Select` (`select`)
71
+ - `TreeView` (`tree-view`)
72
+ - `Combobox` (`combobox`)
73
+ - `Menu` (`menu`)
74
+ - `Listbox` (`listbox`)
75
+
76
+ ## 가져오기
77
+
78
+ ```tsx
79
+ import { CascadeSelect } from '@neurocle/synapse-react'
80
+ ```
81
+
82
+ ## Anatomy
83
+
84
+ React 네임스페이스가 노출하는 part 13개를 항목의 `parts.containment`가 기록한 대로 조합했습니다. 한 part가 놓일 수 있는 정당한 자리가 둘 이상이면 스니펫은 첫 번째를 쓰고, 아래 목록이 나머지를 알려 줍니다.
85
+
86
+ ```tsx
87
+ <CascadeSelect.Root>
88
+ <CascadeSelect.Label />
89
+ <CascadeSelect.Control>
90
+ <CascadeSelect.Trigger>
91
+ <CascadeSelect.Indicator />
92
+ <CascadeSelect.ValueText />
93
+ </CascadeSelect.Trigger>
94
+ <CascadeSelect.ClearTrigger />
95
+ </CascadeSelect.Control>
96
+ <CascadeSelect.Positioner>
97
+ <CascadeSelect.Content>
98
+ <CascadeSelect.List>
99
+ <CascadeSelect.Item>
100
+ <CascadeSelect.ItemText />
101
+ <CascadeSelect.ItemIndicator />
102
+ </CascadeSelect.Item>
103
+ </CascadeSelect.List>
104
+ </CascadeSelect.Content>
105
+ </CascadeSelect.Positioner>
106
+ </CascadeSelect.Root>
107
+ ```
108
+
109
+ - `CascadeSelect.Root` — 최상위에 놓입니다
110
+ - `CascadeSelect.Label` — `Root` 안에 놓입니다
111
+ - `CascadeSelect.Control` — `Root` 안에 놓입니다
112
+ - `CascadeSelect.Trigger` — `Control` 안에 놓입니다
113
+ - `CascadeSelect.Indicator` — `Trigger` 안에 놓입니다
114
+ - `CascadeSelect.ValueText` — `Trigger` 안에 놓입니다
115
+ - `CascadeSelect.ClearTrigger` — `Control` 안에 놓입니다
116
+ - `CascadeSelect.Positioner` — `Root` 안에 놓입니다
117
+ - `CascadeSelect.Content` — `Positioner` 안에 놓입니다
118
+ - `CascadeSelect.List` — `Content` 안에 놓입니다
119
+ - `CascadeSelect.Item` — `List` 안에 놓입니다
120
+ - `CascadeSelect.ItemText` — `Item` 안에 놓입니다
121
+ - `CascadeSelect.ItemIndicator` — `Item` 안에 놓입니다
122
+
123
+ ### part가 렌더링하고 소유하는 요소
124
+
125
+ - `hiddenInput`, `CascadeSelect.Root`가 렌더링합니다 — 폼과 함께 제출되고 초기화되는 숨겨진 네이티브 input이며, Label의 htmlFor가 가리키는 요소입니다. 의도적으로 part가 아닙니다. anatomy 키가 없는 part는 이 Registry의 part 검사를 통과하지 못하며, 사용처가 폼과 레이블 연결 둘 다 의존하는 요소를 옮기거나 빠뜨릴 수 있게 되기 때문입니다.
126
+
127
+ ## Props
128
+
129
+ 빌드가 방출하는 선언에서 도출한 prop 26개. 선언에는 기본값을 둘 자리가 없으므로 prop 기록에는 기본값이 없습니다. 기본값이 있다면 그 prop의 설명에 적혀 있습니다.
130
+
131
+ ### 필수
132
+
133
+ - `collection` — `SynapseTreeCollection<TNode>`, 필수. `createTreeCollection`으로 만든 트리 전체. 윈도잉은 이것을 바꾸지 않습니다.
134
+
135
+ ### 선택
136
+
137
+ - `value` — `readonly (readonly string[])[]`, 선택. 제어되는 선택이며, 선택된 노드마다 값 경로 하나입니다. 단일 선택 CascadeSelect라도 경로의 배열입니다. Select의 `value`가 값의 배열인 것과 같은 이유로, `multiple`에 따라 타입이 달라지는 prop에는 어떤 사용처도 타입을 붙일 수 없습니다.
138
+ - `defaultValue` — `readonly (readonly string[])[]`, 선택. 비제어 초기 선택. `value`가 주어지면 무시됩니다.
139
+ - `onValueChange` — `(details: CascadeSelectValueChangeDetails) => void`, 선택. 제어 여부와 무관하게 선택이 바뀔 때마다 알림을 받습니다.
140
+ - `highlightedValue` — `readonly string[]`, 선택. 제어되는 하이라이트 경로 — 열린 열들이 따라가고, 보조 기술이 안내하는 대상입니다.
141
+ - `defaultHighlightedValue` — `readonly string[]`, 선택. 비제어 초기 하이라이트 경로.
142
+ - `onHighlightChange` — `(details: CascadeSelectHighlightChangeDetails) => void`, 선택. 하이라이트가 움직일 때 알림을 받으며, 한 번도 렌더된 적 없는 노드로 옮겨갈 때도 받습니다.
143
+ - `open` — `boolean`, 선택. 제어되는 패널의 열림 상태.
144
+ - `defaultOpen` — `boolean`, 선택. 비제어 초기 열림 상태.
145
+ - `onOpenChange` — `(details: OpenChangeDetails) => void`, 선택. 패널이 열리거나 닫힐 때마다 알림을 받습니다.
146
+ - `multiple` — `boolean`, 선택. 둘 이상의 경로를 선택할 수 있게 합니다.
147
+ - `allowParentSelection` — `boolean`, 선택. 잎뿐 아니라 가지도 선택할 수 있게 합니다.
148
+ - `closeOnSelect` — `boolean`, 선택. 선택하면 패널을 닫습니다. 기본값은 true입니다.
149
+ - `highlightTrigger` — `CascadeSelectHighlightTrigger`, 선택. 아이템을 가리켜야 그 열이 열리는지, 클릭해야 열리는지. 기본값은 `hover`로, 다른 목록처럼 포인터가 강조를 옮깁니다.
150
+ - `loopFocus` — `boolean`, 선택. 키보드 이동이 열의 양 끝을 넘어가면 반대편으로 이어집니다.
151
+ - `formatValue` — `(selected: readonly (readonly TNode[])[]) => string`, 선택. 선택이 trigger에서 어떻게 읽히는지를 정합니다. 기본 동작은 각 경로의 레이블을 이어 붙이는 것입니다. "Asia / India / Haryana"가 아니라 "Haryana"를 원하거나, 여러 개가 선택되면 개수를 보이고 싶은 제품이 이 prop을 줍니다 — 컨트롤 안의 유일한 문구이며, 문구는 제품의 몫입니다.
152
+ - `positioning` — `CascadeSelectPositioning`, 선택. 패널이 놓이는 위치.
153
+ - `name` — `string`, 선택. 폼 필드 이름. 이것이 없으면 컨트롤은 아무것도 제출하지 않습니다.
154
+ - `form` — `string`, 선택. 폼 바깥에 렌더된 CascadeSelect를 id로 폼과 연결합니다.
155
+ - `disabled` — `boolean`, 선택. 비활성화된 CascadeSelect는 제출되지 않고 반응하지도 않습니다.
156
+ - `readOnly` — `boolean`, 선택. 읽기 전용 CascadeSelect는 값을 제출하지만 바꿀 수는 없습니다.
157
+ - `invalid` — `boolean`, 선택. 보조 기술에 `aria-invalid`로 알려집니다.
158
+ - `required` — `boolean`, 선택. 제약 검증: 폼이 제출되려면 무언가가 선택되어 있어야 합니다.
159
+ - `translations` — `TranslationOverrides`, 선택. 이 CascadeSelect에만 적용되는 접근성 문자열이며, provider의 것보다 우선합니다.
160
+ - `size` — `Size`, 선택. 하나의 공유 척도에서 옵니다. 모든 컴포넌트가 그렇듯 기본값은 `md`입니다.
161
+ - `id` — `string`, 선택. 팩토리가 생성하는 식별자를 덮어씁니다. 서버와 클라이언트에서 동일합니다.
162
+
163
+ ## Variants
164
+
165
+ - `size` — `xs`, `sm`, `md`, `lg`, `xl`. 기본값은 `md`.
166
+
167
+ ## 폼
168
+
169
+ 폼 참여: 예.
170
+
171
+ - `input`으로 제출합니다.
172
+ - 제출 값은 `value`에서 옵니다.
173
+ - 항목은 사용처가 아무것도 설정하지 않았을 때 제출되는 값을 기록하지 않습니다.
174
+
175
+ > 값은 값 경로의 목록이며, 숨겨진 input은 machine이 이를 해시로 인코딩한 값을 담습니다. 두 가지가 같은 이름을 가질 수 있는 트리에서 잎 자신의 값만으로는 노드를 식별할 수 없기 때문입니다. `disabled`이면 제출되지 않습니다. Label은 htmlFor로 이 input과 연결되며, 그래서 `name`이 주어지든 아니든 이 요소가 렌더링됩니다.
176
+
177
+ ## 이 컴포넌트에 일부러 없는 것
178
+
179
+ - `empty-state` — 트리는 통째로 컴포넌트에 전달되고 컴포넌트는 이를 좁히지 않으므로, 제공할 것이 없는 CascadeSelect는 제품이 렌더링하기 전에 이미 아는 사실입니다. Combobox에 empty part가 필요한 것은 필터링 때문에 '일치 항목 없음'이 상호작용 도중에 도달하는 정상 상태가 되기 때문입니다. 여기서 '지역이 없습니다'를 말할 정직한 자리는 컴포넌트가 자기 일정대로 여는 패널 안이 아니라 컨트롤을 대신하는 자리입니다.
180
+ - `loading-state` — CascadeSelect는 요청을 수행하지 않습니다. 사용처가 트리를 가져와 전달하므로, 진행 중인 요청은 이 컨트롤이 아니라 사용처 화면의 상태이며, 클릭해야만 열리는 패널 안의 스피너는 그것이 중요한 시간 내내 보이지 않을 것입니다. 지연 로드되는 가지는 대신 createTreeCollection의 nodeToChildrenCount가 처리하며, 이는 자식이 도착하기 전에도 알려지는 형제 개수를 정확하게 유지합니다.
181
+ - `error-state` — 유효하지 않음은 컨트롤의 상태이며 `invalid`로 보고되고 aria-invalid로 알려집니다. 트리를 로드하는 데 실패한 것은 가져오기를 수행한 사용처의 몫이며, 이를 패널 안에서 보고하면 사용자는 실패로 비어버린 바로 그 컨트롤을 연 뒤에야 메시지를 보게 됩니다.
182
+
183
+ ## 접근성
184
+
185
+ ### 접근 가능한 이름
186
+
187
+ > aria-labelledby를 통해 Label part에서 가져옵니다. machine은 translations prop을 받지 않고 clear trigger의 영어 aria-label을 하드코딩하므로, 컴포넌트가 요소에 닿기 전에 이를 provider의 `cascadeSelect.clearTrigger.label`로 보정합니다.
188
+
189
+ ### 포커스
190
+
191
+ > 포커스는 하나의 탭 정지 지점인 패널 안으로 옮겨가고, 활성 노드는 aria-activedescendant로 가리킵니다. 어떤 열도 자체 포커스를 받지 않으며, 덕분에 열린 열마다 탭 정지 지점이 생기는 대신 하나의 화살표 키 세트가 모든 단계를 조작합니다.
192
+
193
+ ### 알려 주는 위치
194
+
195
+ > aria-posinset과 aria-setsize는 노드의 형제 — 노드가 속한 가지 — 를 나타내며, 결코 컬렉션 전체나 렌더링된 윈도를 나타내지 않습니다. 트리는 'item 2 of 3, level 3'처럼 읽히기 때문입니다. aria-level은 깊이이며, 루트의 직계 자식을 1로 셉니다.
196
+
197
+ ## 로케일과 컬렉션
198
+
199
+ - 로케일 의존: 예. 패널의 배치는 논리적이므로 `bottom-start`는 텍스트 방향을 따르고 열은 읽는 방향으로 펼쳐집니다. 제품이 제공하는 레이블은 해당 로케일의 것이며, 제품은 `formatValue`로 자기 언어가 경로를 잇는 방식대로 경로를 이어 붙입니다.
200
+ - 컬렉션 윈도잉: 예. 각 열은 자기 가지를 자기 스크롤러에 맞춰 윈도잉하므로, 자식이 십만 개인 가지도 뷰포트 한 화면 분량만 렌더링합니다. 알려지는 개수는 렌더링된 조각이 아니라 트리 컬렉션의 형제 개수이며, 하이라이트된 노드는 범위 밖에 있어도 자기 열에 고정되므로, machine이 DOM이 아니라 값 경로로부터 도출하는 aria-activedescendant가 언제나 실제 요소를 가리킵니다.
201
+
202
+ ## 기능 용어와 다른 이름
203
+
204
+ - 다루는 기능: `choose-from-hierarchy`, `progressive-narrowing`, `single-select`, `multi-select`, `form-value`, `floating-layer`, `windowed-collection`, `readonly-display`.
205
+ - 다른 이름: `cascader`, `cascade select`, `multi-level select`, `drill-down picker`, `캐스케이더`, `계층 선택`, `다단계 셀렉트`, `연쇄 선택`.
206
+ - 어휘 상태: `controlled`.