@neurocle/synapse-react 0.0.0-bootstrap

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 +163 -0
  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 +411 -0
  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,149 @@
1
+ ---
2
+ name: 'scroll-area'
3
+ description: 'ScrollArea — 제품이 스크롤바에 스타일을 입힐 수 있는 스크롤 컨테이너로, 그 아래에서는 브라우저 자체의 스크롤을 유지하므로 페이지 내 찾기, 앵커 링크, 스크롤 복원이 모두 그대로 동작합니다. 다른 이름: scroll area, scrollbar, custom scrollbar, overflow box, scroll container, 스크롤 영역, 커스텀 스크롤바, 스크롤 컨테이너.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/scroll-area.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/scroll-area.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
+ # ScrollArea
26
+
27
+ > 제품이 스크롤바에 스타일을 입힐 수 있는 스크롤 컨테이너로, 그 아래에서는 브라우저 자체의 스크롤을 유지하므로 페이지 내 찾기, 앵커 링크, 스크롤 복원이 모두 그대로 동작합니다.
28
+
29
+ `@neurocle/synapse-react` 0.3.0에서 생성했습니다. 설치된 버전이 이 버전이 아니면, 이 페이지의 어떤 내용보다 설치된 패키지 안에 함께 배포된 Registry를 우선합니다.
30
+
31
+ - 패키지: `@neurocle/synapse-react`
32
+ - 내보내기: `ScrollArea`
33
+ - 분류: `disclosure-layout-display`
34
+ - 수명 주기: `active`
35
+
36
+ ## 알려진 예외 — 사용 전에 확인
37
+
38
+ 이 컴포넌트는 아래 기준 2개를 **의도적으로 충족하지 않습니다**. 기록된 결정이므로 고치려 들지 말고, 각 항목의 유의점을 지켜서 씁니다.
39
+
40
+ ### WCAG 2.2 SC 1.4.11 비텍스트 대비 (AA)
41
+
42
+ - 대상 part: `thumb`
43
+ - 충족하지 못하는 것: 스크롤바 썸은 평소 `border.default`로 그려져 3:1에 못 미칩니다. 스크롤바를 직접 가리키거나 드래그할 때만 `border.strong`(3:1)으로 진해집니다. 스크롤바 자체도 영역을 가리키거나 포커스가 있거나 스크롤하는 동안에만 보입니다.
44
+ - 의도한 이유: 스크롤바는 역할이 없는 포인터 편의 기능이며, viewport는 휠·터치·키보드로 이미 스크롤됩니다. 항상 진하게 보이는 막대는 콘텐츠보다 눈에 띄었습니다. `contrast-pairs.json`에 `hairline` 용도로 기록되어 있습니다.
45
+ - 사용 시 유의점: 영역에 스크롤할 내용이 더 있다는 사실을 스크롤바에만 맡기지 마세요. 필요하면 가장자리 페이드나 "더 보기" 같은 단서를 콘텐츠 쪽에 두세요.
46
+
47
+ ### WCAG 2.2 SC 2.5.8 대상 크기(최소) (AA)
48
+
49
+ - 대상 part: `scrollbar`
50
+ - 충족하지 못하는 것: 스크롤바의 폭은 `icon.sm`으로 최소 대상 크기보다 좁습니다.
51
+ - 의도한 이유: SC 2.5.8의 동등 대안 예외에 기댑니다. 같은 스크롤을 viewport에서 휠·터치·키보드로 할 수 있습니다.
52
+ - 사용 시 유의점: viewport의 키보드 포커스와 이름(`aria-label`)을 제거하지 마세요. 동등 대안이 사라지면 예외도 성립하지 않습니다.
53
+
54
+ ## Do
55
+
56
+ > 콘텐츠가 넘치는 경계 있는 영역에서, 스크롤바가 운영 체제가 아니라 제품의 모양과 맞아야 할 때 쓰세요. 네이티브 스크롤바가 화면에서 유일하게 테마를 입힐 수 없는 부분이고, 대안이 벤더 의사 요소로 스크롤바를 숨기는 것뿐일 때 이것을 고르세요.
57
+
58
+ ## Don't
59
+
60
+ > 페이지 자체에는 쓰지 마세요. 문서 자체의 스크롤바는 스크롤 복원, 브라우저 찾기, 모바일에서 주소창이 접히는 동작처럼 컴포넌트가 재현할 수 없는 동작을 지니며, 이를 대체하면 그 모든 것을 겉모습과 맞바꾸게 됩니다. 작은 오버플로를 감추는 데에도 쓰지 마세요. 스크롤되는데 스크롤되는 것처럼 보이지 않는 영역은 사용자가 끝내 찾지 못하는 콘텐츠가 됩니다. 윈도잉해야 하는 긴 목록에도 쓰지 마세요. 스크롤 영역은 주어진 것을 모두 렌더링합니다.
61
+
62
+ ## Anti-patterns
63
+
64
+ > 콘텐츠를 오버플로시키는 대신 transform으로 옮겨 스크롤하는 것. 이동된 상자는 스크롤된 것이 아닙니다. 페이지 내 찾기가 일치 항목을 화면에 가져오지 못하고, 앵커 탐색은 아무 곳에도 닿지 않으며, 뒤로 가기 시 브라우저가 복원할 것이 없습니다. 이 machine의 설계 전체는 스크롤을 네이티브로 유지하고 스크롤바만 그린다는 데 있습니다.
65
+
66
+ Registry는 이 컴포넌트의 안내를 `reviewed`로 기록합니다(검토일 2026-09-22).
67
+
68
+ ## 관련 컴포넌트
69
+
70
+ - `Splitter` (`splitter`)
71
+ - `Toc` (`toc`)
72
+ - `Marquee` (`marquee`)
73
+
74
+ ## 가져오기
75
+
76
+ ```tsx
77
+ import { ScrollArea } from '@neurocle/synapse-react'
78
+ ```
79
+
80
+ ## Anatomy
81
+
82
+ React 네임스페이스가 노출하는 part 6개를 항목의 `parts.containment`가 기록한 대로 조합했습니다. 한 part가 놓일 수 있는 정당한 자리가 둘 이상이면 스니펫은 첫 번째를 쓰고, 아래 목록이 나머지를 알려 줍니다.
83
+
84
+ ```tsx
85
+ <ScrollArea.Root>
86
+ <ScrollArea.Viewport>
87
+ <ScrollArea.Content />
88
+ </ScrollArea.Viewport>
89
+ <ScrollArea.Scrollbar>
90
+ <ScrollArea.Thumb />
91
+ </ScrollArea.Scrollbar>
92
+ <ScrollArea.Corner />
93
+ </ScrollArea.Root>
94
+ ```
95
+
96
+ - `ScrollArea.Root` — 최상위에 놓입니다
97
+ - `ScrollArea.Viewport` — `Root` 안에 놓입니다
98
+ - `ScrollArea.Content` — `Viewport` 안에 놓입니다
99
+ - `ScrollArea.Scrollbar` — `Root` 안에 놓입니다
100
+ - `ScrollArea.Thumb` — `Scrollbar` 안에 놓입니다
101
+ - `ScrollArea.Corner` — `Root` 안에 놓입니다
102
+
103
+ ## Props
104
+
105
+ 빌드가 방출하는 선언에서 도출한 prop 2개. 선언에는 기본값을 둘 자리가 없으므로 prop 기록에는 기본값이 없습니다. 기본값이 있다면 그 prop의 설명에 적혀 있습니다.
106
+
107
+ 모든 prop이 선택입니다. 아무것도 넘기지 않으면 컴포넌트는 비제어로 동작합니다.
108
+
109
+ ### 선택
110
+
111
+ - `size` — `Size`, 선택. 하나뿐인 공용 척도를 따릅니다. 모든 컴포넌트와 마찬가지로 기본값은 `md`입니다.
112
+ - `id` — `string`, 선택. 팩토리가 만드는 식별자를 덮어씁니다. 서버와 클라이언트에서 같은 값으로 유지됩니다.
113
+
114
+ ## Variants
115
+
116
+ - `size` — `xs`, `sm`, `md`, `lg`, `xl`. 기본값은 `md`. 여기서 크기 축은 스크롤바의 두께만을 뜻합니다. 스크롤 영역 자체의 크기는 레이아웃이 정합니다. 자기 상자의 크기를 스스로 정하는 컴포넌트는 자신이 놓인 그리드나 플렉스 컨테이너와 다투게 되는데, 스크롤 영역의 크기가 실제로 정해지는 곳이 바로 그 컨테이너입니다.
117
+
118
+ ## 폼
119
+
120
+ 폼 참여: 아니요.
121
+
122
+ > 폼에 제출하는 값이 없습니다.
123
+
124
+ ## 이 컴포넌트에 일부러 없는 것
125
+
126
+ - `empty-state` — 컴포넌트는 주어진 콘텐츠를 무엇이든 렌더링합니다. 컬렉션을 읽지 않으므로 보여줄 것이 없는 상태도 없습니다. 콘텐츠가 없는 스크롤 영역은 그저 스크롤되지 않는 상자일 뿐입니다.
127
+ - `loading-state` — 아직 도착 중인 콘텐츠는 사용처의 것입니다. machine이 실제로 소유하는 것은 콘텐츠의 크기가 바뀔 때 다시 측정하는 일이므로, 스크롤 영역에 콘텐츠 로딩이 끝났다고 알려줄 필요가 없습니다.
128
+ - `error-state` — 컴포넌트가 실패할 수 있는 일이 없습니다. 측정과 그리기를 소유할 뿐이며, 둘 다 사용자가 대응할 수 있는 실패를 갖지 않습니다.
129
+
130
+ ## 접근성
131
+
132
+ ### 접근 가능한 이름
133
+
134
+ > 스크롤할 수 있는 동안 뷰포트는 번역 가능한 'scrollArea.viewport.label'로 이름이 붙은 group입니다. 이름 없는 탭 정지 지점은 아무것도 아닌 것으로 알려지기 때문입니다. region이 아니라 group인 이유는 스크롤 영역이 여럿 있는 페이지가 똑같은 이름의 항목으로 랜드마크 목록을 채우지 않게 하기 위해서입니다. 더 나은 이름이 있는 제품은 aria-labelledby로 자신의 제목을 가리킵니다.
135
+
136
+ ### 포커스
137
+
138
+ > 어느 한 축이라도 넘치는 동안 뷰포트가 tabindex를 받습니다. machine은 두 축이 모두 넘칠 때만 그렇게 해서, 한 방향으로만 스크롤되는 목록에는 도달할 수 없었습니다. 스크롤할 수 없는 스크롤 영역은 탭 정지 지점이 아니므로, 아무 일도 일어나지 않는 상자들로 탭 순서가 채워지지 않습니다.
139
+
140
+ ## 로케일과 컬렉션
141
+
142
+ - 로케일 의존: 예. 세로 스크롤바는 논리적 인라인 끝 가장자리에 놓이고 모서리도 이를 따르므로, 오른쪽에서 왼쪽으로 쓰는 로케일에서는 둘 다 반대쪽으로 옮겨갑니다. 방향은 prop이 아니라 provider에서 옵니다.
143
+ - 컬렉션 윈도잉: 아니요. 항목은 이를 이유 없이 사실로만 기록합니다.
144
+
145
+ ## 기능 용어와 다른 이름
146
+
147
+ - 다루는 기능: `custom-scrollbar`, `overflow-container`, `native-scrolling`.
148
+ - 다른 이름: `scroll area`, `scrollbar`, `custom scrollbar`, `overflow box`, `scroll container`, `스크롤 영역`, `커스텀 스크롤바`, `스크롤 컨테이너`.
149
+ - 어휘 상태: `controlled`.
@@ -0,0 +1,202 @@
1
+ ---
2
+ name: 'select'
3
+ description: 'Select — 선택지 목록을 여는 trigger로, 고른 값 하나 또는 여러 개를 폼과 함께 제출합니다. 렌더링된 요소가 아니라 컬렉션이 동작을 이끕니다. 다른 이름: select, dropdown, picker, combo, option list, listbox, 셀렉트 박스, 드롭다운, 선택 상자, 콤보 박스.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/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/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
+ # Select
26
+
27
+ > 선택지 목록을 여는 trigger로, 고른 값 하나 또는 여러 개를 폼과 함께 제출합니다. 렌더링된 요소가 아니라 컬렉션이 동작을 이끕니다.
28
+
29
+ `@neurocle/synapse-react` 0.3.0에서 생성했습니다. 설치된 버전이 이 버전이 아니면, 이 페이지의 어떤 내용보다 설치된 패키지 안에 함께 배포된 Registry를 우선합니다.
30
+
31
+ - 패키지: `@neurocle/synapse-react`
32
+ - 내보내기: `Select`
33
+ - 분류: `collection-data-entry`
34
+ - 수명 주기: `active`
35
+
36
+ ## 알려진 예외 — 사용 전에 확인
37
+
38
+ 이 컴포넌트는 아래 기준 1개를 **의도적으로 충족하지 않습니다**. 기록된 결정이므로 고치려 들지 말고, 각 항목의 유의점을 지켜서 씁니다.
39
+
40
+ ### WCAG 2.2 SC 1.4.11 비텍스트 대비 (AA)
41
+
42
+ - 대상 part: `item`
43
+ - 충족하지 못하는 것: Select의 강조된 항목은 `secondary.default` 배경만으로 표시되며, overlay 배경 대비 1.16:1(밝은 테마), 1.46:1(어두운 테마)로 3:1에 못 미칩니다. 포인터와 키보드 모두 링을 그리지 않습니다.
44
+ - 의도한 이유: 모든 강조 행에 링을 그리면 시스템의 다른 어떤 hover보다 무겁게 보였습니다. 포커스는 목록에 머물고 강조된 항목은 `aria-activedescendant`로 보조 기술에 전달되며, 선택된 항목은 파란 글자와 체크 표시로 따로 구분됩니다. `contrast-pairs.json`에 `highlight` 용도로 기록되어 있습니다.
45
+ - 사용 시 유의점: 저시력 사용자에게 강조 위치가 잘 보이지 않을 수 있습니다. 접근성 감사 대상 제품이라면 이 예외를 감사 문서에 포함하세요. 항목을 직접 그릴 때는 선택 상태의 글자색과 체크 표시를 지워 강조와 선택을 같은 모양으로 만들지 마세요.
46
+
47
+ ## Do
48
+
49
+ > 사용자가 한 번에 모두 볼 필요는 없는 알려진 집합에서 고를 때, 그리고 모든 선택지를 보여주면 페이지가 복잡해질 만큼 집합이 길 때 쓰세요. 선택지가 데이터일 때, 곧 서버에서 가져오거나 그룹으로 묶이거나 수백 개에 이를 때 알맞은 컨트롤입니다. 컬렉션이 탐색, 타입어헤드, 안내되는 위치를 우연히 렌더링된 것이 아니라 그 데이터로부터 답하기 때문입니다.
50
+
51
+ ## Don't
52
+
53
+ > 페이지에 다 들어가는 몇 개의 상호 배타적인 선택지에는 쓰지 마세요. RadioGroup은 모든 선택지를 한 번에 보여주며, 사용자가 읽는 데 아무 조작도 필요 없습니다. 사용자가 입력해서 집합을 좁히거나 집합에 없는 값을 입력해야 할 때도 쓰지 마세요. 그것은 Combobox이며, Select에 검색 필드를 덧붙이면 접근성 계약 없는 Combobox를 다시 만드는 셈입니다. 명령이나 탐색에도 쓰지 마세요. listbox는 항목을 현재 값이 있는 선택지로 알리는데, 하나를 고르는 순간 다른 곳으로 이동한다면 그 안내는 거짓이 됩니다.
54
+
55
+ ## Anti-patterns
56
+
57
+ > 렌더링된 항목으로부터 위치나 크기를 도출하는 것. aria-setsize는 컬렉션 전체여야 하고 항목의 식별자는 그 값으로부터 도출되므로, 한 번도 DOM에 들어간 적 없는 항목도 안정적인 id와 올바른 안내 위치를 가집니다. 둘 중 하나라도 렌더링 루프에서 계산하면 목록이 윈도잉되는 순간 깨지며, 그것도 조용히 깨집니다.
58
+
59
+ Registry는 이 컴포넌트의 안내를 `reviewed`로 기록합니다(검토일 2026-09-22).
60
+
61
+ ## 관련 컴포넌트
62
+
63
+ - `Combobox` (`combobox`)
64
+ - `Listbox` (`listbox`)
65
+ - `RadioGroup` (`radio-group`)
66
+ - `Menu` (`menu`)
67
+ - `CascadeSelect` (`cascade-select`)
68
+
69
+ ## 가져오기
70
+
71
+ ```tsx
72
+ import { Select } from '@neurocle/synapse-react'
73
+ ```
74
+
75
+ ## Anatomy
76
+
77
+ React 네임스페이스가 노출하는 part 15개를 항목의 `parts.containment`가 기록한 대로 조합했습니다. 한 part가 놓일 수 있는 정당한 자리가 둘 이상이면 스니펫은 첫 번째를 쓰고, 아래 목록이 나머지를 알려 줍니다.
78
+
79
+ ```tsx
80
+ <Select.Root>
81
+ <Select.Label />
82
+ <Select.Positioner>
83
+ <Select.Content>
84
+ <Select.List>
85
+ <Select.ItemGroup>
86
+ <Select.Item>
87
+ <Select.ItemText />
88
+ <Select.ItemIndicator />
89
+ </Select.Item>
90
+ <Select.ItemGroupLabel />
91
+ </Select.ItemGroup>
92
+ </Select.List>
93
+ </Select.Content>
94
+ </Select.Positioner>
95
+ <Select.Control>
96
+ <Select.Trigger>
97
+ <Select.Indicator />
98
+ <Select.ValueText />
99
+ </Select.Trigger>
100
+ <Select.ClearTrigger />
101
+ </Select.Control>
102
+ </Select.Root>
103
+ ```
104
+
105
+ - `Select.Root` — 최상위에 놓입니다
106
+ - `Select.Label` — `Root` 안에 놓입니다
107
+ - `Select.Positioner` — `Root` 안에 놓입니다
108
+ - `Select.Trigger` — `Control` 안에 놓입니다
109
+ - `Select.Indicator` — `Trigger` 안에 놓입니다
110
+ - `Select.ClearTrigger` — `Control` 안에 놓입니다
111
+ - `Select.Item` — `ItemGroup` 안, 또는 `List` 안에 놓입니다
112
+ - `Select.ItemText` — `Item` 안에 놓입니다
113
+ - `Select.ItemIndicator` — `Item` 안에 놓입니다
114
+ - `Select.ItemGroup` — `List` 안에 놓입니다
115
+ - `Select.ItemGroupLabel` — `ItemGroup` 안에 놓입니다
116
+ - `Select.List` — `Content` 안에 놓입니다
117
+ - `Select.Content` — `Positioner` 안에 놓입니다
118
+ - `Select.Control` — `Root` 안에 놓입니다
119
+ - `Select.ValueText` — `Trigger` 안에 놓입니다
120
+
121
+ ### part가 렌더링하고 소유하는 요소
122
+
123
+ - `hiddenSelect`, `Select.Root`가 렌더링합니다 — 폼과 함께 제출되고 초기화되는 네이티브 select입니다. 컬렉션만 제공할 수 있는 option 자식이 필요하므로, Root가 팩토리의 렌더링 탈출구를 통해 렌더링합니다. 일부러 part로 두지 않았습니다. anatomy 키가 없는 part는 이 Registry의 part 검사에 실패하며, 사용처가 폼이 의존하는 요소를 옮기거나 빠뜨릴 수 있게 되기 때문입니다.
124
+
125
+ ## Props
126
+
127
+ 빌드가 방출하는 선언에서 도출한 prop 24개. 선언에는 기본값을 둘 자리가 없으므로 prop 기록에는 기본값이 없습니다. 기본값이 있다면 그 prop의 설명에 적혀 있습니다.
128
+
129
+ ### 필수
130
+
131
+ - `collection` — `SynapseCollection<TItem>`, 필수. `createCollection`으로 만든 전체 컬렉션. 윈도잉은 이것을 바꾸지 않습니다.
132
+
133
+ ### 선택
134
+
135
+ - `value` — `readonly string[]`, 선택. 제어되는 선택.
136
+ - `defaultValue` — `readonly string[]`, 선택. 비제어 모드의 초기 선택. `value`를 주면 무시됩니다.
137
+ - `onValueChange` — `(details: SelectValueChangeDetails) => void`, 선택. 제어 여부와 무관하게 선택이 바뀔 때마다 호출됩니다.
138
+ - `highlightedValue` — `string | null`, 선택. 제어되는 하이라이트 아이템. `aria-activedescendant`가 가리키는 대상입니다.
139
+ - `defaultHighlightedValue` — `string | null`, 선택. 비제어 모드에서 처음 하이라이트되는 아이템.
140
+ - `onHighlightChange` — `(details: SelectHighlightChangeDetails) => void`, 선택. 하이라이트가 옮겨 갈 때 호출됩니다.
141
+ - `open` — `boolean`, 선택. 제어되는 목록의 열림 상태.
142
+ - `defaultOpen` — `boolean`, 선택. 비제어 모드의 초기 열림 상태.
143
+ - `onOpenChange` — `(details: { open: boolean; }) => void`, 선택. 목록이 열리거나 닫힐 때마다 호출됩니다.
144
+ - `multiple` — `boolean`, 선택. 둘 이상을 선택할 수 있게 합니다. 값마다 폼 항목을 하나씩 제출합니다.
145
+ - `deselectable` — `boolean`, 선택. 이미 선택된 아이템을 다시 선택하면 선택이 해제됩니다.
146
+ - `closeOnSelect` — `boolean`, 선택. 선택하면 목록을 닫습니다. 단일 Select에서는 기본값이 true입니다.
147
+ - `loopFocus` — `boolean`, 선택. 키보드 이동이 양 끝을 넘어가면 반대쪽으로 돌아옵니다.
148
+ - `positioning` — `SelectPositioning`, 선택. 목록이 놓이는 위치.
149
+ - `name` — `string`, 선택. 폼 필드 이름. 이 값이 없으면 컨트롤은 아무것도 제출하지 않습니다.
150
+ - `form` — `string`, 선택. 폼 바깥에 렌더된 Select를 id로 그 폼에 연결합니다.
151
+ - `disabled` — `boolean`, 선택. 비활성화된 Select는 제출하지도, 반응하지도 않습니다.
152
+ - `readOnly` — `boolean`, 선택. 읽기 전용 Select는 값을 제출하지만 바꿀 수는 없습니다.
153
+ - `invalid` — `boolean`, 선택. 보조 기술에 `aria-invalid`로 알립니다.
154
+ - `required` — `boolean`, 선택. 제약 검증. 폼이 제출되려면 무언가가 선택돼 있어야 합니다.
155
+ - `translations` — `TranslationOverrides`, 선택. 이 Select에만 적용되는 접근성 문자열로, provider의 값보다 우선합니다.
156
+ - `size` — `Size`, 선택. 하나뿐인 공용 척도를 따릅니다. 모든 컴포넌트와 마찬가지로 기본값은 `md`입니다.
157
+ - `id` — `string`, 선택. 팩토리가 만드는 식별자를 덮어씁니다. 서버와 클라이언트에서 같은 값으로 유지됩니다.
158
+
159
+ ## Variants
160
+
161
+ - `size` — `xs`, `sm`, `md`, `lg`, `xl`. 기본값은 `md`.
162
+
163
+ ## 폼
164
+
165
+ 폼 참여: 예.
166
+
167
+ - `select`로 제출합니다.
168
+ - 제출 값은 `value`에서 옵니다.
169
+ - 항목은 사용처가 아무것도 설정하지 않았을 때 제출되는 값을 기록하지 않습니다.
170
+
171
+ > `multiple`이면 값마다 하나씩 같은 이름으로 항목을 제출합니다. 숨겨진 요소가 단일 텍스트 필드가 아니라 option을 가진 네이티브 select인 이유가 이것입니다. `disabled`이면 제출되지 않습니다.
172
+
173
+ ## 이 컴포넌트에 일부러 없는 것
174
+
175
+ - `empty-state` — Select는 넘겨받은 컬렉션을 보여줄 뿐 스스로 아무것도 좁히지 않으므로, 사용자가 작업하는 동안 비게 되는 일이 없습니다. 사용자가 입력하는 대로 컬렉션이 줄어들어 비어 있음 자체가 새로운 소식이 되는 Combobox와는 다릅니다. trigger가 렌더링되기 전부터 이미 빈 컬렉션은 이 컴포넌트가 존재하기 전에 제품이 아는 사실이며, 이에 대한 올바른 답은 열면 메시지가 나오는 목록이 아니라 다른 컨트롤입니다.
176
+ - `loading-state` — Select는 요청을 보내지 않습니다. 사용처가 컬렉션을 만들어 넘기므로, 진행 중인 데이터 요청은 이 컨트롤이 아니라 주변 화면의 상태입니다. 게다가 클릭해야만 열리는 목록 안의 스피너는 그것이 중요한 시간 내내 보이지 않습니다.
177
+ - `error-state` — 유효하지 않음은 컨트롤의 상태이며, `invalid`로 전달되고 aria-invalid로 알려집니다. 컬렉션을 불러오지 못한 실패는 데이터 요청을 수행한 사용처의 몫입니다. 이를 목록 안에서 알리면, 바로 그 실패 때문에 비어 버린 컨트롤을 열어야만 사용자가 메시지를 보게 됩니다.
178
+
179
+ ## 접근성
180
+
181
+ ### 접근 가능한 이름
182
+
183
+ > aria-labelledby를 통해 Label part에서 옵니다. 지우기 trigger의 이름은 provider의 번역에서 오며 Select마다 덮어쓸 수 있습니다. machine이 제공하는 aria-label은 제품이 바꿀 수 없는 문자열이 되기 때문입니다.
184
+
185
+ ### 포커스
186
+
187
+ > 목록이 열려 있는 동안에도 포커스는 trigger에 머물며, 활성 항목은 aria-activedescendant로 가리킵니다. Select의 어떤 부분도 DOM 포커스를 목록 안으로 옮기지 않으며, 그 덕분에 타입어헤드가 한 요소에서 유지됩니다.
188
+
189
+ ### 알려 주는 위치
190
+
191
+ > aria-posinset과 aria-setsize는 우연히 DOM에 있는 행이 아니라 컬렉션 전체를 기준으로 합니다. 이 값들은 컬렉션 자체에서 답을 얻으므로, 목록이 어떤 방식으로 렌더링되든 안내가 사실대로 유지됩니다.
192
+
193
+ ## 로케일과 컬렉션
194
+
195
+ - 로케일 의존: 예. 목록의 배치는 논리적이므로 `bottom-start`는 텍스트 방향을 따릅니다. 타입어헤드는 제품이 제공하는 항목 레이블과 대조하며, 그 레이블은 해당 로케일의 것입니다.
196
+ - 컬렉션 윈도잉: 아니요. Select는 사용처가 매핑한 항목을 렌더링하며 윈도잉을 제공하지 않습니다. 기반이 되는 컬렉션 인터페이스는 위치, 크기, 타입어헤드를 데이터만으로 답하므로(`packages/react/src/shared/collection.ts`), 나중에 이 컴포넌트의 공개 인터페이스를 바꾸지 않고도 윈도잉을 추가할 수 있습니다.
197
+
198
+ ## 기능 용어와 다른 이름
199
+
200
+ - 다루는 기능: `choose-from-list`, `single-select`, `multi-select`, `grouped-options`, `typeahead`, `form-value`, `floating-layer`, `readonly-display`, `translatable-strings`.
201
+ - 다른 이름: `select`, `dropdown`, `picker`, `combo`, `option list`, `listbox`, `셀렉트 박스`, `드롭다운`, `선택 상자`, `콤보 박스`.
202
+ - 어휘 상태: `controlled`.
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: 'separator'
3
+ description: 'Separator — 인접한 콘텐츠 사이에 가로나 세로로 선을 그어 구획을 나누는 컴포넌트입니다. 기본으로 장식이라 보조 기술에 드러나지 않으며, 선이 문서의 구획을 나눌 때만 `separator` 역할을 줍니다. 다른 이름: separator, divider, horizontal rule, hr, vertical divider, 구분선, 가로선, 세로 구분선.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/separator.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/separator.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
+ # Separator
26
+
27
+ > 인접한 콘텐츠 사이에 가로나 세로로 선을 그어 구획을 나누는 컴포넌트입니다. 기본으로 장식이라 보조 기술에 드러나지 않으며, 선이 문서의 구획을 나눌 때만 `separator` 역할을 줍니다.
28
+
29
+ `@neurocle/synapse-react` 0.3.0에서 생성했습니다. 설치된 버전이 이 버전이 아니면, 이 페이지의 어떤 내용보다 설치된 패키지 안에 함께 배포된 Registry를 우선합니다.
30
+
31
+ - 패키지: `@neurocle/synapse-react`
32
+ - 내보내기: `Separator`
33
+ - 분류: `disclosure-layout-display`
34
+ - 수명 주기: `active`
35
+
36
+ ## Do
37
+
38
+ > 관련된 콘텐츠 무리 사이의 경계를 선으로 보여 줄 때 쓰세요 — 설정 목록의 묶음 사이, 카드 안의 머리와 본문 사이, 툴바 안의 버튼 묶음 사이처럼 말입니다. 선이 시각적 정리일 뿐이면 기본값(장식)으로 두고, 스크린 리더 사용자도 구획이 바뀐다는 사실을 알아야 할 때만 `decorative={false}`로 `separator` 역할을 주세요.
39
+
40
+ ## Don't
41
+
42
+ > 간격을 만들려고 쓰지 마세요 — 요소 사이의 공간은 레이아웃의 `gap`이 정합니다. 사용자가 드래그해 영역 크기를 바꾸는 경계는 Splitter이며, Separator는 포커스도 값도 없습니다. Menu 안에서 항목 묶음을 나누는 선은 Menu 자체의 separator part를 쓰세요. 메뉴의 키보드 이동과 구조는 그 part만 압니다.
43
+
44
+ ## Anti-patterns
45
+
46
+ > 모든 구분선에 `decorative={false}`를 주는 것. 구획마다 separator가 알려지면 스크린 리더 사용자는 의미 없는 경계를 계속 듣게 됩니다 — 구조적인 구분선은 제목이나 랜드마크로 이미 드러나지 않는 경계에만 두세요.
47
+
48
+ Registry는 이 컴포넌트의 안내를 `reviewed`로 기록합니다(검토일 2026-09-26).
49
+
50
+ ## 관련 컴포넌트
51
+
52
+ - `Splitter` (`splitter`)
53
+ - `Menu` (`menu`)
54
+
55
+ ## 가져오기
56
+
57
+ ```tsx
58
+ import { Separator } from '@neurocle/synapse-react'
59
+ ```
60
+
61
+ ## Anatomy
62
+
63
+ React 네임스페이스가 노출하는 part 1개를 항목의 `parts.containment`가 기록한 대로 조합했습니다. 한 part가 놓일 수 있는 정당한 자리가 둘 이상이면 스니펫은 첫 번째를 쓰고, 아래 목록이 나머지를 알려 줍니다.
64
+
65
+ ```tsx
66
+ <Separator.Root />
67
+ ```
68
+
69
+ - `Separator.Root` — 최상위에 놓입니다
70
+
71
+ ## Props
72
+
73
+ 빌드가 방출하는 선언에서 도출한 prop 2개. 선언에는 기본값을 둘 자리가 없으므로 prop 기록에는 기본값이 없습니다. 기본값이 있다면 그 prop의 설명에 적혀 있습니다.
74
+
75
+ 모든 prop이 선택입니다. 아무것도 넘기지 않으면 컴포넌트는 비제어로 동작합니다.
76
+
77
+ ### 선택
78
+
79
+ - `orientation` — `Orientation`, 선택. 선이 놓이는 방향. 기본값은 `horizontal`입니다.
80
+ - `decorative` — `boolean`, 선택. 기본값 `true`에서는 보조기술에 드러나지 않습니다. 선이 내용의 구획을 나눠 스크린 리더 사용자도 알아야 할 때만 `false`로 두어 `separator` 역할을 줍니다.
81
+
82
+ ## 폼
83
+
84
+ 폼 참여: 아니요.
85
+
86
+ > 폼에 제출하는 값이 없습니다. 폼 안에 놓여도 구획을 나누는 레이아웃 요소일 뿐입니다.
87
+
88
+ ## 이 컴포넌트에 일부러 없는 것
89
+
90
+ - `size-axis` — 선은 굵기가 한 가지인 구분선이라 크기 척도가 뜻을 갖지 않습니다. 길이는 놓인 레이아웃이 정하고 굵기는 헤어라인 테두리 토큰 하나가 정하므로, xs부터 xl까지 고를 대상이 없습니다.
91
+ - `empty-state` — 구분선은 콘텐츠를 담지 않는 요소라 비어 있을 수 있는 집합이 없습니다. 나눌 내용이 없으면 구분선 자체를 렌더링하지 않습니다.
92
+ - `loading-state` — 구분선은 아무것도 가져오지 않으므로 불러오는 중인 구간이 없습니다. 주변 콘텐츠가 로딩 중이라는 표시는 그 콘텐츠 쪽의 몫입니다.
93
+ - `error-state` — 구분선에는 값도 입력도 없어 실패할 수 있는 것이 없습니다. 알릴 오류도, 오류를 보여 줄 자리도 없습니다.
94
+
95
+ ## 접근성
96
+
97
+ ### 접근 가능한 이름
98
+
99
+ > 이름이 필요 없습니다. 장식용 구분선은 접근성 트리에 없고, 구조적인 구분선은 역할과 방향만으로 구획의 경계를 알립니다.
100
+
101
+ ### 포커스
102
+
103
+ > 포커스를 받지 않습니다. 구조적인 구분선도 포커스할 수 없는 separator이며 값을 가진 분할 핸들이 아닙니다 — 드래그로 크기를 조절하는 구분선은 Splitter입니다.
104
+
105
+ ## 로케일과 컬렉션
106
+
107
+ - 로케일 의존: 아니요. 항목은 이를 이유 없이 사실로만 기록합니다.
108
+ - 컬렉션 윈도잉: 아니요. 항목은 이를 이유 없이 사실로만 기록합니다.
109
+
110
+ ## 기능 용어와 다른 이름
111
+
112
+ - 다루는 기능: `content-divider`, `axis-orientation`.
113
+ - 다른 이름: `separator`, `divider`, `horizontal rule`, `hr`, `vertical divider`, `구분선`, `가로선`, `세로 구분선`.
114
+ - 어휘 상태: `controlled`.
@@ -0,0 +1,161 @@
1
+ ---
2
+ name: 'signature-pad'
3
+ description: 'SignaturePad — 사람이 포인터, 펜, 손가락으로 서명하는 표면으로, 획을 SVG 경로 데이터로 만들어 내고 요청하면 서명 전체를 래스터 이미지로도 만들어 줍니다. 다른 이름: signature pad, signature, sign here, draw, e-signature, 서명 패드, 전자 서명, 서명 입력, 사인 패드.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/signature-pad.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/signature-pad.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
+ # SignaturePad
26
+
27
+ > 사람이 포인터, 펜, 손가락으로 서명하는 표면으로, 획을 SVG 경로 데이터로 만들어 내고 요청하면 서명 전체를 래스터 이미지로도 만들어 줍니다.
28
+
29
+ `@neurocle/synapse-react` 0.3.0에서 생성했습니다. 설치된 버전이 이 버전이 아니면, 이 페이지의 어떤 내용보다 설치된 패키지 안에 함께 배포된 Registry를 우선합니다.
30
+
31
+ - 패키지: `@neurocle/synapse-react`
32
+ - 내보내기: `SignaturePad`
33
+ - 분류: `range-and-drawing`
34
+ - 수명 주기: `active`
35
+
36
+ ## 알려진 예외 — 사용 전에 확인
37
+
38
+ 이 컴포넌트는 아래 기준 2개를 **의도적으로 충족하지 않습니다**. 기록된 결정이므로 고치려 들지 말고, 각 항목의 유의점을 지켜서 씁니다.
39
+
40
+ ### WCAG 2.2 SC 2.1.1 키보드 (A)
41
+
42
+ - 충족하지 못하는 것: 서명은 포인터 제스처로만 그릴 수 있고 키보드로 대신할 방법이 없습니다.
43
+ - 의도한 이유: 서명을 그리는 행위 자체가 경로 기반 제스처이며, 어떤 machine도 키보드 대안을 제공하지 않습니다.
44
+ - 사용 시 유의점: 서명이 필수인 곳에서는 패드 옆에 이름 입력 같은 입력식 대안을 함께 제공하세요. 그려진 서명만 받는 폼은 키보드만으로 완료할 수 없습니다.
45
+
46
+ ### HTML 폼 제출 — 알려진 결함
47
+
48
+ - 충족하지 못하는 것: `name`도 `required`도 노출하지 않아 폼 제출에 서명이 포함되지 않습니다.
49
+ - 의도한 이유: 서명의 data URL은 비동기인 `getDataUrl()`로만 만들어지므로 렌더링 중에 숨겨진 입력에 넣을 수 없습니다. 업스트림도 사용처가 넘기게 합니다.
50
+ - 사용 시 유의점: `onValueChangeEnd`에서 data URL을 받아 제품의 숨겨진 필드에 넣어 제출하고, 필수 여부도 제품에서 검증하세요.
51
+
52
+ ## Do
53
+
54
+ > 동의를 나타내는 손글씨 표시를 받을 때, 곧 그려진 모양 자체가 기록 대상일 때 쓰세요. 배송 수령 확인, 동의서, 태블릿으로 서명하는 계약서가 그런 예입니다. 텍스트가 아니라 획 자체가 가치인 짧은 자유 곡선 주석에도 쓸 수 있습니다.
55
+
56
+ ## Don't
57
+
58
+ > 입력한 이름으로 충분한 곳에는 SignaturePad를 쓰지 마세요. 입력한 이름은 읽을 수 있고, 검색할 수 있고, 키보드로 조작할 수 있으며, 포인터를 쓸 수 없는 사람도 접근할 수 있지만, 그린 이름은 그중 어느 것도 아닙니다. 범용 그리기 캔버스로도 쓰지 마세요. 색도, 지우개도, 전체 지우기 외의 실행 취소도 없습니다. 받은 서명을 신원 증명으로 취급하지 마세요. 서명은 누군가가 무엇을 그렸는지를 기록할 뿐, 누가 그렸는지는 기록하지 않습니다.
59
+
60
+ ## Anti-patterns
61
+
62
+ > `name`을 선언하고 machine의 숨겨진 입력이 서명을 제출해 주리라 기대하는 것. 그 값은 비동기로 만들어지는 data URL이므로, 필드는 렌더링될 때마다 빈 문자열을 제출합니다. 연결된 것처럼 보이지만 실제로는 연결되지 않은 폼입니다. 대신 onValueChangeEnd에서 data URL을 받아 쓰세요.
63
+
64
+ Registry는 이 컴포넌트의 안내를 `reviewed`로 기록합니다(검토일 2026-09-22).
65
+
66
+ ## 관련 컴포넌트
67
+
68
+ - `FileUpload` (`file-upload`)
69
+ - `Checkbox` (`checkbox`)
70
+ - `Editable` (`editable`)
71
+
72
+ ## 가져오기
73
+
74
+ ```tsx
75
+ import { SignaturePad } from '@neurocle/synapse-react'
76
+ ```
77
+
78
+ ## Anatomy
79
+
80
+ React 네임스페이스가 노출하는 part 7개를 항목의 `parts.containment`가 기록한 대로 조합했습니다. 한 part가 놓일 수 있는 정당한 자리가 둘 이상이면 스니펫은 첫 번째를 쓰고, 아래 목록이 나머지를 알려 줍니다.
81
+
82
+ ```tsx
83
+ <SignaturePad.Root>
84
+ <SignaturePad.Control>
85
+ <SignaturePad.Segment>
86
+ <SignaturePad.SegmentPath />
87
+ </SignaturePad.Segment>
88
+ <SignaturePad.Guide />
89
+ </SignaturePad.Control>
90
+ <SignaturePad.ClearTrigger />
91
+ <SignaturePad.Label />
92
+ </SignaturePad.Root>
93
+ ```
94
+
95
+ - `SignaturePad.Root` — 최상위에 놓입니다
96
+ - `SignaturePad.Control` — `Root` 안에 놓입니다
97
+ - `SignaturePad.Segment` — `Control` 안에 놓입니다
98
+ - `SignaturePad.SegmentPath` — `Segment` 안에 놓입니다
99
+ - `SignaturePad.Guide` — `Control` 안에 놓입니다
100
+ - `SignaturePad.ClearTrigger` — `Root` 안에 놓입니다
101
+ - `SignaturePad.Label` — `Root` 안에 놓입니다
102
+
103
+ ## Props
104
+
105
+ 빌드가 방출하는 선언에서 도출한 prop 10개. 선언에는 기본값을 둘 자리가 없으므로 prop 기록에는 기본값이 없습니다. 기본값이 있다면 그 prop의 설명에 적혀 있습니다.
106
+
107
+ 모든 prop이 선택입니다. 아무것도 넘기지 않으면 컴포넌트는 비제어로 동작합니다.
108
+
109
+ ### 선택
110
+
111
+ - `value` — `readonly string[]`, 선택. 제어되는 획들이며, SVG 패스 데이터로 표현합니다.
112
+ - `defaultValue` — `readonly string[]`, 선택. 비제어 모드의 초기 획들. `value`를 주면 무시됩니다.
113
+ - `onValueChange` — `(details: SignaturePadValueChangeDetails) => void`, 선택. 획이 확정될 때, 그리고 획을 긋는 도중에 호출됩니다.
114
+ - `onValueChangeEnd` — `(details: SignaturePadValueChangeEndDetails) => void`, 선택. 획이 끝났을 때 호출됩니다. 값을 저장할 시점은 이쪽입니다.
115
+ - `stroke` — `SignatureStrokeOptions`, 선택. 획을 그리는 방식.
116
+ - `disabled` — `boolean`, 선택. 비활성화된 SignaturePad에는 그릴 수 없고, 탭 순서에도 들어가지 않습니다.
117
+ - `readOnly` — `boolean`, 선택. 읽기 전용 SignaturePad는 획을 보여주지만 그 위에 그릴 수는 없습니다.
118
+ - `translations` — `TranslationOverrides`, 선택. 이 SignaturePad에만 적용되는 접근성 문자열로, provider의 값보다 우선합니다.
119
+ - `size` — `Size`, 선택. 하나뿐인 공용 척도를 따릅니다. 모든 컴포넌트와 마찬가지로 기본값은 `md`입니다.
120
+ - `id` — `string`, 선택. 팩토리가 만드는 식별자를 덮어씁니다. 서버와 클라이언트에서 같은 값으로 유지됩니다.
121
+
122
+ ## Variants
123
+
124
+ - `size` — `xs`, `sm`, `md`, `lg`, `xl`. 기본값은 `md`.
125
+
126
+ ## 폼
127
+
128
+ 폼 참여: 아니요.
129
+
130
+ > machine의 숨겨진 입력은 서명을 data URL로 받는데, data URL은 SVG를 래스터화하기 때문에 비동기인 getDataUrl()이 만듭니다. 어떤 컴포넌트도 렌더링 중에 이를 제공할 수 없으며, 그래서 업스트림도 사용처가 이를 넘기게 합니다. 따라서 이 getter는 렌더링하지 않는 것으로 선언되고 컴포넌트는 `name`도 `required`도 노출하지 않습니다. 사용처는 onValueChangeEnd에서 data URL을 받아 자신의 필드에 넣는 방식으로 서명을 제출합니다.
131
+
132
+ ## 이 컴포넌트에 일부러 없는 것
133
+
134
+ - `empty-state` — 서명되지 않은 패드는 콘텐츠를 기다리는 빈 컬렉션이 아니라 컨트롤의 시작 상태이며, 가이드 선과 표면이 이미 무엇을 해야 하는지 말해 줍니다. 이름 붙은 빈 상태 part를 두면 서명이 들어갈 자리에 메시지가 놓이게 됩니다.
135
+ - `loading-state` — 저장된 서명이 아직 도착 중인 패드는 비활성화된 패드에 사용처의 스켈레톤을 더한 것입니다. 기존 서명을 래스터화하는 일은 비동기지만, 그 결과는 사용처가 갖는 이미지이지 이 컨트롤의 상태가 아닙니다.
136
+ - `error-state` — machine은 유효하지 않은 상태를 보고하지 않고 컴포넌트도 `invalid` prop을 선언하지 않으므로, 오류 part를 움직일 근거가 없습니다. 서명이 있는지, 충분히 긴지, 상자 안에 있는지 같은 검증은 주변 필드의 몫입니다.
137
+
138
+ ## 접근성
139
+
140
+ ### 접근 가능한 이름
141
+
142
+ > 컨트롤은 aria-labelledby를 통해 Label part가 이름을 붙이며, Label이 렌더링되지 않으면 provider의 signaturePad.control.label로 대체됩니다. machine은 Label의 htmlFor를 이 컴포넌트가 렌더링하지 않는 숨겨진 입력으로 향하게 하므로 그 `for`는 제거됩니다. 역할 설명은 machine의 영어 문자열 "signature pad" 대신 `signaturePad.control.roleDescription`에서 옵니다.
143
+
144
+ ### 포커스
145
+
146
+ > 컨트롤 자체가 포커스를 받으므로, 서명은 포인터 제스처지만 표면에는 키보드로도 도달할 수 있습니다. 지우기 trigger는 패드가 비어 있는 동안 숨겨지고, 획이 생기면 탭 순서에 다시 들어갑니다.
147
+
148
+ ### 알려진 한계
149
+
150
+ > 서명 자체는 포인터 제스처이며, 이 machine에서든 다른 어떤 machine에서든 키보드로 대신할 방법이 없습니다. 그려진 서명만 받는 폼은 키보드만으로 조작할 수 없으므로, 그것이 중요한 곳에서는 패드 옆에 입력식 대안을 함께 제공하세요.
151
+
152
+ ## 로케일과 컬렉션
153
+
154
+ - 로케일 의존: 아니요. 항목은 이를 이유 없이 사실로만 기록합니다.
155
+ - 컬렉션 윈도잉: 아니요. 항목은 이를 이유 없이 사실로만 기록합니다.
156
+
157
+ ## 기능 용어와 다른 이름
158
+
159
+ - 다루는 기능: `freehand-drawing`, `signature-capture`, `vector-output`, `image-export`, `readonly-display`, `translatable-strings`.
160
+ - 다른 이름: `signature pad`, `signature`, `sign here`, `draw`, `e-signature`, `서명 패드`, `전자 서명`, `서명 입력`, `사인 패드`.
161
+ - 어휘 상태: `controlled`.