@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,114 @@
1
+ ---
2
+ name: 'skeleton'
3
+ description: 'Skeleton โ€” ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘์ธ ์ฝ˜ํ…์ธ ์˜ ์ž๋ฆฌ๋ฅผ ๊ทธ ์ฝ˜ํ…์ธ ์˜ ๋ชจ์–‘ ๊ทธ๋Œ€๋กœ ์žก์•„ ๋‘๋Š” ์ž๋ฆฌํ‘œ์‹œ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ์‹ธ ํฌ๊ธฐ์™€ ๋ฐฐ์น˜๋Š” ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ๋‚ด์šฉ๋งŒ ๊ฐ€๋ฆฐ ์ฑ„ ์€์€ํ•˜๊ฒŒ ๋ฐ˜์ง์ด๋ฉฐ, `loading`์ด ๋๋‚˜๋ฉด ๊ฐ์‹ผ ์ฝ˜ํ…์ธ ๋ฅผ ๊ทธ๋Œ€๋กœ ๋“œ๋Ÿฌ๋ƒ…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ด๋ฆ„: skeleton, skeleton loader, placeholder, shimmer, content placeholder, ์Šค์ผˆ๋ ˆํ†ค, ์ž๋ฆฌํ‘œ์‹œ, ๋กœ๋”ฉ ์ž๋ฆฌ.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/skeleton.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/skeleton.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
+ # Skeleton
26
+
27
+ > ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘์ธ ์ฝ˜ํ…์ธ ์˜ ์ž๋ฆฌ๋ฅผ ๊ทธ ์ฝ˜ํ…์ธ ์˜ ๋ชจ์–‘ ๊ทธ๋Œ€๋กœ ์žก์•„ ๋‘๋Š” ์ž๋ฆฌํ‘œ์‹œ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ์‹ธ ํฌ๊ธฐ์™€ ๋ฐฐ์น˜๋Š” ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ๋‚ด์šฉ๋งŒ ๊ฐ€๋ฆฐ ์ฑ„ ์€์€ํ•˜๊ฒŒ ๋ฐ˜์ง์ด๋ฉฐ, `loading`์ด ๋๋‚˜๋ฉด ๊ฐ์‹ผ ์ฝ˜ํ…์ธ ๋ฅผ ๊ทธ๋Œ€๋กœ ๋“œ๋Ÿฌ๋ƒ…๋‹ˆ๋‹ค.
28
+
29
+ `@neurocle/synapse-react` 0.3.0์—์„œ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜๋œ ๋ฒ„์ „์ด ์ด ๋ฒ„์ „์ด ์•„๋‹ˆ๋ฉด, ์ด ํŽ˜์ด์ง€์˜ ์–ด๋–ค ๋‚ด์šฉ๋ณด๋‹ค ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ์•ˆ์— ํ•จ๊ป˜ ๋ฐฐํฌ๋œ Registry๋ฅผ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
30
+
31
+ - ํŒจํ‚ค์ง€: `@neurocle/synapse-react`
32
+ - ๋‚ด๋ณด๋‚ด๊ธฐ: `Skeleton`
33
+ - ๋ถ„๋ฅ˜: `disclosure-layout-display`
34
+ - ์ˆ˜๋ช… ์ฃผ๊ธฐ: `active`
35
+
36
+ ## Do
37
+
38
+ > ๋ถˆ๋Ÿฌ์˜ฌ ์ฝ˜ํ…์ธ ์˜ ๋ชจ์–‘์„ ์ด๋ฏธ ์•Œ ๋•Œ ๊ทธ ์ž๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ์žก์•„ ๋‘๋Š” ๋ฐ ์“ฐ์„ธ์š” โ€” ๋ชฉ๋ก์˜ ํ–‰, ์นด๋“œ์˜ ์ œ๋ชฉ๊ณผ ๋ณธ๋ฌธ, ์•„๋ฐ”ํƒ€์ฒ˜๋Ÿผ ๋ง์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์ฝ˜ํ…์ธ (๋˜๋Š” ๊ฐ™์€ ํฌ๊ธฐ์˜ ์ž๋ฆฌ ์ฑ„์›€ ์ฝ˜ํ…์ธ )๋ฅผ Skeleton.Root๋กœ ๊ฐ์‹ธ๋ฉด ๊ทธ ํฌ๊ธฐ์™€ ๋ฐฐ์น˜๊ฐ€ ๊ทธ๋Œ€๋กœ ์ž๋ฆฌํ‘œ์‹œ๊ฐ€ ๋˜๊ณ , ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๊ฐ€ ๋๋‚˜๋ฉด `loading={false}`๋กœ ๋“œ๋Ÿฌ๋ƒ…๋‹ˆ๋‹ค. ์›ํ˜• ์•„๋ฐ”ํƒ€์ฒ˜๋Ÿผ ๋ชจ์„œ๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ ๋ชจ์–‘์€ ์‚ฌ์šฉ์ฒ˜๊ฐ€ Skeleton์˜ ๋ชจ์„œ๋ฆฌ๋ฅผ ๋งž์ถ”์„ธ์š”.
39
+
40
+ ## Don't
41
+
42
+ > ๋ชจ์–‘์„ ์•Œ ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์งง๊ฒŒ ๋๋‚˜๋Š” ์ž‘์—…์—๋Š” Spinner๋ฅผ ์“ฐ์„ธ์š”. ์ง„ํ–‰๋ฅ ์ด ์žˆ์œผ๋ฉด Progress๋ฅผ ์“ฐ์„ธ์š”. ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๊ฐ€ ๋๋‚ฌ๋Š”๋ฐ ๊ฒฐ๊ณผ๊ฐ€ ์—†์Œ์„ ์•Œ๋ฆฌ๋Š” ๋ฐ ์“ฐ์ง€ ๋งˆ์„ธ์š” โ€” ๊ทธ๊ฒƒ์€ EmptyState์ž…๋‹ˆ๋‹ค.
43
+
44
+ ## Anti-patterns
45
+
46
+ > ์‹ค์ œ ์ฝ˜ํ…์ธ ์™€ ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ ๋นˆ ์ƒ์ž๋ฅผ Skeleton์œผ๋กœ ๊ทธ๋ ค ๋‘๋Š” ๊ฒƒ. ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๊ฐ€ ๋๋‚˜๋Š” ์ˆœ๊ฐ„ ๋ ˆ์ด์•„์›ƒ์ด ๋ฐ€๋ ค ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆ„๋ฅด๋ ค๋˜ ๊ฒƒ์„ ๋†“์นฉ๋‹ˆ๋‹ค โ€” Skeleton์€ ์‹ค์ œ ๋ชจ์–‘์„ ๊ฐ์‹ธ ์“ฐ๋Š” ๊ฒƒ์ด ์›์น™์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด ์ „์ฒด๋ฅผ Skeleton์œผ๋กœ ๋ฎ๊ณ  ์ง„ํ–‰ ์ค‘์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์–ด๋””์—์„œ๋„ ์•Œ๋ฆฌ์ง€ ์•Š๋Š” ๊ฒƒ๋„ ๊ฐ™์€ ๋ถ€๋ฅ˜์ž…๋‹ˆ๋‹ค. ๊ฐ์‹ธ๋Š” ์˜์—ญ์— aria-busy๋ฅผ ์ฃผ๊ฑฐ๋‚˜ Spinner๋กœ ์•Œ๋ฆฌ์„ธ์š”.
47
+
48
+ Registry๋Š” ์ด ์ปดํฌ๋„ŒํŠธ์˜ ์•ˆ๋‚ด๋ฅผ `reviewed`๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค(๊ฒ€ํ† ์ผ 2026-09-26).
49
+
50
+ ## ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ
51
+
52
+ - `Spinner` (`spinner`)
53
+ - `Progress` (`progress`)
54
+ - `Avatar` (`avatar`)
55
+
56
+ ## ๊ฐ€์ ธ์˜ค๊ธฐ
57
+
58
+ ```tsx
59
+ import { Skeleton } from '@neurocle/synapse-react'
60
+ ```
61
+
62
+ ## Anatomy
63
+
64
+ React ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ๋…ธ์ถœํ•˜๋Š” part 1๊ฐœ๋ฅผ ํ•ญ๋ชฉ์˜ `parts.containment`๊ฐ€ ๊ธฐ๋กํ•œ ๋Œ€๋กœ ์กฐํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ part๊ฐ€ ๋†“์ผ ์ˆ˜ ์žˆ๋Š” ์ •๋‹นํ•œ ์ž๋ฆฌ๊ฐ€ ๋‘˜ ์ด์ƒ์ด๋ฉด ์Šค๋‹ˆํŽซ์€ ์ฒซ ๋ฒˆ์งธ๋ฅผ ์“ฐ๊ณ , ์•„๋ž˜ ๋ชฉ๋ก์ด ๋‚˜๋จธ์ง€๋ฅผ ์•Œ๋ ค ์ค๋‹ˆ๋‹ค.
65
+
66
+ ```tsx
67
+ <Skeleton.Root />
68
+ ```
69
+
70
+ - `Skeleton.Root` โ€” ์ตœ์ƒ์œ„์— ๋†“์ž…๋‹ˆ๋‹ค
71
+
72
+ ## Props
73
+
74
+ ๋นŒ๋“œ๊ฐ€ ๋ฐฉ์ถœํ•˜๋Š” ์„ ์–ธ์—์„œ ๋„์ถœํ•œ prop 1๊ฐœ. ์„ ์–ธ์—๋Š” ๊ธฐ๋ณธ๊ฐ’์„ ๋‘˜ ์ž๋ฆฌ๊ฐ€ ์—†์œผ๋ฏ€๋กœ prop ๊ธฐ๋ก์—๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ๊ทธ prop์˜ ์„ค๋ช…์— ์ ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.
75
+
76
+ ๋ชจ๋“  prop์ด ์„ ํƒ์ž…๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ๋„˜๊ธฐ์ง€ ์•Š์œผ๋ฉด ์ปดํฌ๋„ŒํŠธ๋Š” ๋น„์ œ์–ด๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
77
+
78
+ ### ์„ ํƒ
79
+
80
+ - `loading` โ€” `boolean`, ์„ ํƒ. ์‚ฌ์šฉ์ฒ˜๊ฐ€ ์†Œ์œ ํ•œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๊ฐ€ ์ง„ํ–‰ ์ค‘์ธ์ง€. `true`(๊ธฐ๋ณธ๊ฐ’)์ธ ๋™์•ˆ ์ž์‹์€ ์ž๋ฆฌ์™€ ํฌ๊ธฐ๋งŒ ๋‚จ๊ธด ์ฑ„ ๊ฐ€๋ ค์ง€๊ณ  ๋ณด์กฐ๊ธฐ์ˆ ๊ณผ ํฌ์ธํ„ฐ์—์„œ ๋น ์ง€๋ฉฐ, ๊ทธ ์ž๋ฆฌ์— ์ž๋ฆฌํ‘œ์‹œ ๋ชจ์–‘์ด ๊ทธ๋ ค์ง‘๋‹ˆ๋‹ค. `false`๊ฐ€ ๋˜๋ฉด ์ž์‹์ด ๊ทธ๋Œ€๋กœ ๋‚˜ํƒ€๋‚˜๊ณ  Skeleton์€ ๋ ˆ์ด์•„์›ƒ์— ์•„๋ฌด ์ƒ์ž๋„ ๋‚จ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
81
+
82
+ ## ํผ
83
+
84
+ ํผ ์ฐธ์—ฌ: ์•„๋‹ˆ์š”.
85
+
86
+ > ํผ์— ์ œ์ถœํ•˜๋Š” ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋™์•ˆ ๊ฐ์‹ผ ํผ ์ปจํŠธ๋กค์€ inert๋ผ ์กฐ์ž‘๋„ ์ œ์ถœ ์ค€๋น„๋„ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
87
+
88
+ ## ์ด ์ปดํฌ๋„ŒํŠธ์— ์ผ๋ถ€๋Ÿฌ ์—†๋Š” ๊ฒƒ
89
+
90
+ - `size-axis` โ€” ์ž๋ฆฌํ‘œ์‹œ์˜ ํฌ๊ธฐ์™€ ๋ชจ์–‘์€ ๊ฐ์‹ผ ์ฝ˜ํ…์ธ ๊ฐ€ ์ •ํ•ฉ๋‹ˆ๋‹ค. Skeleton์ด ํฌ๊ธฐ ์ฒ™๋„๋ฅผ ๊ฐ€์ง€๋ฉด ์‹ค์ œ ์ฝ˜ํ…์ธ ์™€ ๋‹ค๋ฅธ ํฌ๊ธฐ๋กœ ์ž๋ฆฌ๋ฅผ ์žก์•„, ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๊ฐ€ ๋๋‚˜๋Š” ์ˆœ๊ฐ„ ๋ ˆ์ด์•„์›ƒ์ด ํŠ‘๋‹ˆ๋‹ค.
91
+ - `empty-state` โ€” Skeleton์€ ๊ณง ์ฑ„์›Œ์งˆ ์ž๋ฆฌ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด์ง€ ๋น„์–ด ์žˆ์Œ์„ ์•Œ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถˆ๋Ÿฌ์˜จ ๊ฒฐ๊ณผ๊ฐ€ ๋น„์—ˆ๋‹ค๋ฉด Skeleton์„ ์น˜์šฐ๊ณ  EmptyState๋ฅผ ๋ณด์—ฌ ์ฃผ์„ธ์š”.
92
+ - `loading-state` โ€” Skeleton ์ž์ฒด๊ฐ€ ๋กœ๋”ฉ ์ƒํƒœ์˜ ํ‘œํ˜„์ž…๋‹ˆ๋‹ค. `loading` prop์ด ๊ทธ ์ƒํƒœ๋ฅผ ์ผœ๊ณ  ๋„๋ฏ€๋กœ ๋ณ„๋„์˜ ๋กœ๋”ฉ part๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
93
+ - `error-state` โ€” ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๊ฐ€ ์‹คํŒจํ–ˆ๋Š”์ง€๋Š” ์‚ฌ์šฉ์ฒ˜๋งŒ ์••๋‹ˆ๋‹ค. ์‹คํŒจํ•˜๋ฉด `loading`์„ ๋„๊ณ  ์ฝ˜ํ…์ธ  ๋Œ€์‹  ์‹คํŒจ๋ฅผ ์•Œ๋ฆฌ๋Š” ์š”์†Œ๋ฅผ ๋ Œ๋”๋งํ•˜์„ธ์š”.
94
+
95
+ ## ์ ‘๊ทผ์„ฑ
96
+
97
+ ### ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„
98
+
99
+ > ์ด๋ฆ„์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋™์•ˆ ์ ‘๊ทผ์„ฑ ํŠธ๋ฆฌ์—์„œ ๋น ์ง‘๋‹ˆ๋‹ค.
100
+
101
+ ### ํฌ์ปค์Šค
102
+
103
+ > ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋™์•ˆ ์•ˆ์ชฝ์€ ํฌ์ปค์Šค๋ฅผ ๋ฐ›์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Skeleton์€ ํฌ์ปค์Šค๋ฅผ ์˜ฎ๊ธฐ์ง€ ์•Š์œผ๋ฏ€๋กœ, ๋๋‚ฌ์„ ๋•Œ ํฌ์ปค์Šค๋ฅผ ๋‘˜ ๊ณณ์€ ์‚ฌ์šฉ์ฒ˜๊ฐ€ ์ •ํ•ฉ๋‹ˆ๋‹ค.
104
+
105
+ ## ๋กœ์ผ€์ผ๊ณผ ์ปฌ๋ ‰์…˜
106
+
107
+ - ๋กœ์ผ€์ผ ์˜์กด: ์•„๋‹ˆ์š”. ํ•ญ๋ชฉ์€ ์ด๋ฅผ ์ด์œ  ์—†์ด ์‚ฌ์‹ค๋กœ๋งŒ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
108
+ - ์ปฌ๋ ‰์…˜ ์œˆ๋„์ž‰: ์•„๋‹ˆ์š”. ํ•ญ๋ชฉ์€ ์ด๋ฅผ ์ด์œ  ์—†์ด ์‚ฌ์‹ค๋กœ๋งŒ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
109
+
110
+ ## ๊ธฐ๋Šฅ ์šฉ์–ด์™€ ๋‹ค๋ฅธ ์ด๋ฆ„
111
+
112
+ - ๋‹ค๋ฃจ๋Š” ๊ธฐ๋Šฅ: `skeleton-placeholder`, `indeterminate-progress`.
113
+ - ๋‹ค๋ฅธ ์ด๋ฆ„: `skeleton`, `skeleton loader`, `placeholder`, `shimmer`, `content placeholder`, `์Šค์ผˆ๋ ˆํ†ค`, `์ž๋ฆฌํ‘œ์‹œ`, `๋กœ๋”ฉ ์ž๋ฆฌ`.
114
+ - ์–ดํœ˜ ์ƒํƒœ: `controlled`.
@@ -0,0 +1,178 @@
1
+ ---
2
+ name: 'slider'
3
+ description: 'Slider โ€” ํŠธ๋ž™ ์œ„์˜ ์œ„์น˜๋กœ ๊ณ ๋ฅด๋Š” ๊ฐ’์œผ๋กœ, ์ •ํ™•ํ•œ ์ž๋ฆฟ์ˆ˜๋ณด๋‹ค ๋Œ€๋žต์ ์ธ ํฌ๊ธฐ๊ฐ€ ๋” ์ค‘์š”ํ•œ ์–‘์— ์”๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ธ์„ ๋”ํ•˜๋ฉด ๋‘ ๊ฐ’ ์‚ฌ์ด์˜ ๋ฒ”์œ„๋ฅผ ๊ณ ๋ฆ…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ด๋ฆ„: slider, range, range slider, track, volume control, ์Šฌ๋ผ์ด๋”, ๋ฒ”์œ„ ์Šฌ๋ผ์ด๋”, ๋ ˆ์ธ์ง€ ์Šฌ๋ผ์ด๋”, ์Œ๋Ÿ‰ ์กฐ์ ˆ.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/slider.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/slider.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
+ # Slider
26
+
27
+ > ํŠธ๋ž™ ์œ„์˜ ์œ„์น˜๋กœ ๊ณ ๋ฅด๋Š” ๊ฐ’์œผ๋กœ, ์ •ํ™•ํ•œ ์ž๋ฆฟ์ˆ˜๋ณด๋‹ค ๋Œ€๋žต์ ์ธ ํฌ๊ธฐ๊ฐ€ ๋” ์ค‘์š”ํ•œ ์–‘์— ์”๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ธ์„ ๋”ํ•˜๋ฉด ๋‘ ๊ฐ’ ์‚ฌ์ด์˜ ๋ฒ”์œ„๋ฅผ ๊ณ ๋ฆ…๋‹ˆ๋‹ค.
28
+
29
+ `@neurocle/synapse-react` 0.3.0์—์„œ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜๋œ ๋ฒ„์ „์ด ์ด ๋ฒ„์ „์ด ์•„๋‹ˆ๋ฉด, ์ด ํŽ˜์ด์ง€์˜ ์–ด๋–ค ๋‚ด์šฉ๋ณด๋‹ค ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ์•ˆ์— ํ•จ๊ป˜ ๋ฐฐํฌ๋œ Registry๋ฅผ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
30
+
31
+ - ํŒจํ‚ค์ง€: `@neurocle/synapse-react`
32
+ - ๋‚ด๋ณด๋‚ด๊ธฐ: `Slider`
33
+ - ๋ถ„๋ฅ˜: `range-and-drawing`
34
+ - ์ˆ˜๋ช… ์ฃผ๊ธฐ: `active`
35
+
36
+ ## ์•Œ๋ ค์ง„ ์˜ˆ์™ธ โ€” ์‚ฌ์šฉ ์ „์— ํ™•์ธ
37
+
38
+ ์ด ์ปดํฌ๋„ŒํŠธ๋Š” ์•„๋ž˜ ๊ธฐ์ค€ 1๊ฐœ๋ฅผ **์˜๋„์ ์œผ๋กœ ์ถฉ์กฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค**. ๊ธฐ๋ก๋œ ๊ฒฐ์ •์ด๋ฏ€๋กœ ๊ณ ์น˜๋ ค ๋“ค์ง€ ๋ง๊ณ , ๊ฐ ํ•ญ๋ชฉ์˜ ์œ ์˜์ ์„ ์ง€์ผœ์„œ ์”๋‹ˆ๋‹ค.
39
+
40
+ ### HTML ํผ ์ œ์ถœ โ€” ์•Œ๋ ค์ง„ ๊ฒฐํ•จ
41
+
42
+ - ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ: `name`๋„ `form`๋„ ์—†์–ด ํผ์— ์•„๋ฌด๊ฒƒ๋„ ์ œ์ถœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. machine์€ ๋ Œ๋”๋ง๋˜์ง€ ์•Š๋Š” ์ž…๋ ฅ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” label `htmlFor`๋ฅผ ์—ฌ์ „ํžˆ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
43
+ - ์˜๋„ํ•œ ์ด์œ : ์ธ๋งˆ๋‹ค ์ˆจ๊ฒจ์ง„ ์ž…๋ ฅ์„ ๋ Œ๋”๋งํ•˜๋Š” machine์˜ getter๋ฅผ ๊ธฐ๋ฐ˜ ๊ณ„์ธต์ด ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ์ œ์ถœํ•˜์ง€ ์•Š๋Š” `name`์€ ์—†๋Š” ๊ฒƒ๋ณด๋‹ค ๋‚˜์˜๋ฏ€๋กœ ๋…ธ์ถœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
44
+ - ์‚ฌ์šฉ ์‹œ ์œ ์˜์ : `onValueChange`๋กœ ๊ฐ’์„ ๋ฐ›์•„ ์ œํ’ˆ์˜ ํ•„๋“œ์— ๋„ฃ์–ด ์ œ์ถœํ•˜์„ธ์š”.
45
+
46
+ ## Do
47
+
48
+ > ์‚ฌ์šฉ์ž๊ฐ€ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์ด ๋Œ€๋žต์ ์ธ ํฌ๊ธฐ์ธ ๊ฒฝ๊ณ„ ์žˆ๋Š” ์–‘์— ์“ฐ์„ธ์š”. ์Œ๋Ÿ‰, ๋ถˆํˆฌ๋ช…๋„, ํ™•๋Œ€/์ถ•์†Œ, ์˜ˆ์‚ฐ ์ƒํ•œ์ด ๊ทธ๋Ÿฐ ์˜ˆ์ด๋ฉฐ, ๊ฐ’์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ•œ๊ณ„ ๋Œ€๋น„ ๊ฐ’์˜ ์œ„์น˜๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด ๋” ๊ฐ€์น˜ ์žˆ์„ ๋•Œ์ž…๋‹ˆ๋‹ค. ๊ฐ€๊ฒฉ ํ•„ํ„ฐ๋‚˜ ๋‚ ์งœ ๊ตฌ๊ฐ„์ฒ˜๋Ÿผ ์–‘ ๋์„ ๋ชจ๋‘ ์‚ฌ์šฉ์ž๊ฐ€ ์ •ํ•ด์•ผ ํ•  ๋•Œ๋Š” ๋ฒ”์œ„ ํŒจํ„ด์„ ์“ฐ์„ธ์š”.
49
+
50
+ ## Don't
51
+
52
+ > ์ •ํ™•ํ•œ ์ˆซ์ž๊ฐ€ ์ค‘์š”ํ•˜๊ณ  ๋ฒ”์œ„๊ฐ€ ๋„“์„ ๋•Œ๋Š” Slider๋ฅผ ์“ฐ์ง€ ๋งˆ์„ธ์š”. NumberInput์€ 1,247์„ ์ฐพ์•„ ํ—ค๋งฌ ํ•„์š” ์—†์ด ๋ฐ”๋กœ ์ž…๋ ฅํ•˜๊ฒŒ ํ•ด ์ฃผ์ง€๋งŒ, ๋‹จ์œ„๋‹น 1ํ”ฝ์…€์ธ ์Šฌ๋ผ์ด๋”๋Š” ํฌ์ธํ„ฐ๋กœ ์ •๋ฐ€ํ•˜๊ฒŒ ์กฐ์ž‘ํ•  ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„์ด ๋ถ™์€ ๋ช‡ ๊ฐœ์˜ ์„ ํƒ์ง€ ์ค‘์—์„œ ๊ณ ๋ฅผ ๋•Œ๋„ ์“ฐ์ง€ ๋งˆ์„ธ์š”. ๊ทธ๊ฒƒ์€ RadioGroup์ด๋‚˜ Select์ด๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ๋“œ๋ž˜๊ทธํ•ด์„œ ์„ ํƒ์ง€๋ฅผ ์ฐพ์•„๋‚ด๊ฒŒ ํ•˜์ง€ ์•Š๊ณ  ์„ ํƒ์ง€๋ฅผ ์ง์ ‘ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ์ง„ํ–‰ ํ‘œ์‹œ๋กœ๋„ ์“ฐ์ง€ ๋งˆ์„ธ์š”. Progress๋Š” ์กฐ์ž‘ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.
53
+
54
+ ## Anti-patterns
55
+
56
+ > ๋ฒ”์œ„ ํŒจํ„ด์„ ์œ„ํ•ด ๋‘ ๋ฒˆ์งธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ. machine๋„, anatomy๋„, prop ์ง‘ํ•ฉ๋„ ํ•˜๋‚˜์ด๋ฉฐ, ์ด๋ฅผ ์ชผ๊ฐœ๋ฉด ์‚ฌ์šฉ์ฒ˜๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  API๊ฐ€ ๋‘ ๋ฐฐ๊ฐ€ ๋˜๊ณ  ๊ฐ™์€ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋‘ ๋ฒˆ ์„ธ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ `value`๋ฅผ ๋งจ ์ˆซ์ž๋กœ ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๊ฒƒ๋„ ํ”ผํ•˜์„ธ์š”. ๋‘ ๋ฒˆ์งธ ์ธ์ด ๋‚˜ํƒ€๋‚  ๋•Œ ํƒ€์ž…์ด ๋ฐ”๋€Œ์ง€ ์•Š๋„๋ก, `value`๋Š” ๋‘ ํŒจํ„ด ๋ชจ๋‘์—์„œ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
57
+
58
+ Registry๋Š” ์ด ์ปดํฌ๋„ŒํŠธ์˜ ์•ˆ๋‚ด๋ฅผ `reviewed`๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค(๊ฒ€ํ† ์ผ 2026-09-22).
59
+
60
+ ## ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ
61
+
62
+ - `AngleSlider` (`angle-slider`)
63
+ - `NumberInput` (`number-input`)
64
+ - `Progress` (`progress`)
65
+ - `RatingGroup` (`rating-group`)
66
+
67
+ ## ๊ฐ€์ ธ์˜ค๊ธฐ
68
+
69
+ ```tsx
70
+ import { Slider } from '@neurocle/synapse-react'
71
+ ```
72
+
73
+ ## Anatomy
74
+
75
+ React ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ๋…ธ์ถœํ•˜๋Š” part 10๊ฐœ๋ฅผ ํ•ญ๋ชฉ์˜ `parts.containment`๊ฐ€ ๊ธฐ๋กํ•œ ๋Œ€๋กœ ์กฐํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ part๊ฐ€ ๋†“์ผ ์ˆ˜ ์žˆ๋Š” ์ •๋‹นํ•œ ์ž๋ฆฌ๊ฐ€ ๋‘˜ ์ด์ƒ์ด๋ฉด ์Šค๋‹ˆํŽซ์€ ์ฒซ ๋ฒˆ์งธ๋ฅผ ์“ฐ๊ณ , ์•„๋ž˜ ๋ชฉ๋ก์ด ๋‚˜๋จธ์ง€๋ฅผ ์•Œ๋ ค ์ค๋‹ˆ๋‹ค.
76
+
77
+ ```tsx
78
+ <Slider.Root>
79
+ <Slider.Label />
80
+ <Slider.ValueText />
81
+ <Slider.Control>
82
+ <Slider.Thumb />
83
+ <Slider.Track>
84
+ <Slider.Range />
85
+ </Slider.Track>
86
+ <Slider.DraggingIndicator />
87
+ </Slider.Control>
88
+ <Slider.MarkerGroup>
89
+ <Slider.Marker />
90
+ </Slider.MarkerGroup>
91
+ </Slider.Root>
92
+ ```
93
+
94
+ - `Slider.Root` โ€” ์ตœ์ƒ์œ„์— ๋†“์ž…๋‹ˆ๋‹ค
95
+ - `Slider.Label` โ€” `Root` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
96
+ - `Slider.Thumb` โ€” `Control` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
97
+ - `Slider.ValueText` โ€” `Root` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
98
+ - `Slider.Track` โ€” `Control` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
99
+ - `Slider.Range` โ€” `Track` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
100
+ - `Slider.Control` โ€” `Root` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
101
+ - `Slider.MarkerGroup` โ€” `Root` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
102
+ - `Slider.Marker` โ€” `MarkerGroup` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
103
+ - `Slider.DraggingIndicator` โ€” `Control` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
104
+
105
+ ## Props
106
+
107
+ ๋นŒ๋“œ๊ฐ€ ๋ฐฉ์ถœํ•˜๋Š” ์„ ์–ธ์—์„œ ๋„์ถœํ•œ prop 20๊ฐœ. ์„ ์–ธ์—๋Š” ๊ธฐ๋ณธ๊ฐ’์„ ๋‘˜ ์ž๋ฆฌ๊ฐ€ ์—†์œผ๋ฏ€๋กœ prop ๊ธฐ๋ก์—๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ๊ทธ prop์˜ ์„ค๋ช…์— ์ ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.
108
+
109
+ ๋ชจ๋“  prop์ด ์„ ํƒ์ž…๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ๋„˜๊ธฐ์ง€ ์•Š์œผ๋ฉด ์ปดํฌ๋„ŒํŠธ๋Š” ๋น„์ œ์–ด๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
110
+
111
+ ### ์„ ํƒ
112
+
113
+ - `value` โ€” `readonly number[]`, ์„ ํƒ. ์ œ์–ด๋˜๋Š” ๊ฐ’์ด๋ฉฐ, ์–ธ์ œ๋‚˜ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๋ฒ”์œ„ ํŒจํ„ด์€ ๋ณ„๋„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ™์€ Slider์˜ variant๋ผ์„œ ๊ฐ’์˜ ํ˜•ํƒœ๋„ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํ•ญ๋ชฉ์ด ํ•˜๋‚˜๋ฉด ๋‹จ์ผ ๊ฐ’ ํŒจํ„ด์ด๊ณ , ๋‘˜์ด๋ฉด ๋ฒ”์œ„ ํŒจํ„ด์ด๋ฉฐ, machine์€ ๊ทธ๋ณด๋‹ค ๋งŽ์€ ๊ฒฝ์šฐ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
114
+ - `defaultValue` โ€” `readonly number[]`, ์„ ํƒ. ๋น„์ œ์–ด ๋ชจ๋“œ์˜ ์ดˆ๊ธฐ ๊ฐ’. `value`๋ฅผ ์ฃผ๋ฉด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.
115
+ - `onValueChange` โ€” `(details: SliderValueChangeDetails) => void`, ์„ ํƒ. ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ๋“œ๋ž˜๊ทธ ๋„์ค‘์˜ ๊ฐ ๋‹จ๊ณ„๋„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
116
+ - `onValueChangeEnd` โ€” `(details: SliderValueChangeDetails) => void`, ์„ ํƒ. ๋“œ๋ž˜๊ทธ๋‚˜ ํ‚ค ๋ฐ˜๋ณต์ด ๊ฐ€๋ผ์•‰์€ ๋’ค ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ๊ฐ’์„ ์ €์žฅํ•  ์‹œ์ ์€ ์ด์ชฝ์ž…๋‹ˆ๋‹ค.
117
+ - `onFocusChange` โ€” `(details: SliderFocusChangeDetails) => void`, ์„ ํƒ. ๋ฒ”์œ„ Slider์—์„œ ํ‚ค๋ณด๋“œ๊ฐ€ ์ธ ์‚ฌ์ด๋ฅผ ์˜ค๊ฐˆ ๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
118
+ - `min` โ€” `number`, ์„ ํƒ. ๊ฐ€์žฅ ๋‚ฎ์€ ๊ฐ’. ๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.
119
+ - `max` โ€” `number`, ์„ ํƒ. ๊ฐ€์žฅ ๋†’์€ ๊ฐ’. ๊ธฐ๋ณธ๊ฐ’์€ 100์ž…๋‹ˆ๋‹ค.
120
+ - `step` โ€” `number`, ์„ ํƒ. ํ™”์‚ดํ‘œ ํ‚ค์™€ ๋“œ๋ž˜๊ทธ์˜ ๋‹จ์œ„. ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.
121
+ - `largeStep` โ€” `number`, ์„ ํƒ. PageUp/PageDown๊ณผ Shift+ํ™”์‚ดํ‘œ์˜ ๋‹จ์œ„. ๊ธฐ๋ณธ๊ฐ’์€ ์—ด ์Šคํ…์ž…๋‹ˆ๋‹ค.
122
+ - `minStepsBetweenThumbs` โ€” `number`, ์„ ํƒ. ๋ฒ”์œ„ ํŒจํ„ด์˜ ๋‘ ์ธ์ด ์ง€์ผœ์•ผ ํ•˜๋Š” ๊ฐ„๊ฒฉ์ด๋ฉฐ, ์Šคํ… ์ˆ˜๋กœ ์„ธ์š”. ์ธ์ด ํ•˜๋‚˜๋ฉด ์•„๋ฌด ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
123
+ - `thumbCollisionBehavior` โ€” `SliderThumbCollisionBehavior`, ์„ ํƒ. ๋ฒ”์œ„ ํŒจํ„ด์˜ ๋‘ ์ธ์ด ์„œ๋กœ์—๊ฒŒ ๋Œ๋ ค ๋“ค์–ด๊ฐ”์„ ๋•Œ ๋ณด์ด๋Š” ๋™์ž‘.
124
+ - `origin` โ€” `SliderOrigin`, ์„ ํƒ. ์ฑ„์›Œ์ง„ ๋ฒ”์œ„๊ฐ€ ์‹œ์ž‘๋˜๋Š” ์ง€์ . ๊ธฐ๋ณธ๊ฐ’์€ `start`์ž…๋‹ˆ๋‹ค.
125
+ - `orientation` โ€” `Orientation`, ์„ ํƒ. Slider๊ฐ€ ๋ฐฐ์น˜๋˜๋Š” ์ถ•. ๊ธฐ๋ณธ๊ฐ’์€ `horizontal`์ž…๋‹ˆ๋‹ค.
126
+ - `thumbAlignment` โ€” `SliderThumbAlignment`, ์„ ํƒ. ์ธ์„ ํŠธ๋ž™ ๊ฒฝ๊ณ„ ์•ˆ์— ๋ถ™์žก์•„ ๋‘˜์ง€ ์—ฌ๋ถ€. ๊ธฐ๋ณธ๊ฐ’์€ `center`์ž…๋‹ˆ๋‹ค.
127
+ - `getAriaValueText` โ€” `(details: SliderValueTextDetails) => string`, ์„ ํƒ. ๋ณด์กฐ ๊ธฐ์ˆ ์— ๊ฐ’์˜ ์ด๋ฆ„์„ ์ง€์–ด ์ค๋‹ˆ๋‹ค โ€” `"42"`๊ฐ€ ์•„๋‹ˆ๋ผ `"42 percent"`์ฒ˜๋Ÿผ. machine์€ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ `aria-valuetext`์— ๋„ฃ๊ณ , ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋Š” ์ˆซ์ž ๋Œ€์‹  ๊ทธ๊ฒƒ์„ ์ฝ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ํ†ตํ™”๋‚˜ ํ‰์ ์ด ๋งจ ์ •์ˆ˜๋กœ ์ฝํž™๋‹ˆ๋‹ค.
128
+ - `disabled` โ€” `boolean`, ์„ ํƒ. ๋น„ํ™œ์„ฑํ™”๋œ Slider๋Š” ๋ฐ˜์‘ํ•˜์ง€ ์•Š๊ณ  ํƒญ ์ˆœ์„œ์—๋„ ๋“ค์–ด๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
129
+ - `readOnly` โ€” `boolean`, ์„ ํƒ. ์ฝ๊ธฐ ์ „์šฉ Slider๋Š” ํฌ์ปค์Šคํ•˜๊ณ  ์ฝ์„ ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ๋ฐ”๊ฟ€ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.
130
+ - `invalid` โ€” `boolean`, ์„ ํƒ. ๋ณด์กฐ ๊ธฐ์ˆ ์— `aria-invalid`๋กœ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.
131
+ - `size` โ€” `Size`, ์„ ํƒ. ํ•˜๋‚˜๋ฟ์ธ ๊ณต์šฉ ์ฒ™๋„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ๋ณธ๊ฐ’์€ `md`์ž…๋‹ˆ๋‹ค.
132
+ - `id` โ€” `string`, ์„ ํƒ. ํŒฉํ† ๋ฆฌ๊ฐ€ ๋งŒ๋“œ๋Š” ์‹๋ณ„์ž๋ฅผ ๋ฎ์–ด์”๋‹ˆ๋‹ค. ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
133
+
134
+ ## Variants
135
+
136
+ - `size` โ€” `xs`, `sm`, `md`, `lg`, `xl`. ๊ธฐ๋ณธ๊ฐ’์€ `md`.
137
+
138
+ ## ํผ
139
+
140
+ ํผ ์ฐธ์—ฌ: ์•„๋‹ˆ์š”.
141
+
142
+ > ์Šฌ๋ผ์ด๋”์— ๋Œ€ํ•œ ๊ฒฐ์ •์ด ์•„๋‹ˆ๋ผ ๊ธฐ๋ฐ˜ ๊ณ„์ธต์˜ ๊ฒฐํ•จ ๋•Œ๋ฌธ์— ๋ง‰ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค. machine์˜ `getHiddenInputProps({ index })`๋Š” ์ธ๋งˆ๋‹ค ์ˆจ๊ฒจ์ง„ ์ž…๋ ฅ์„ ํ•˜๋‚˜์”ฉ ๋ Œ๋”๋งํ•˜๋ฉฐ ์ธ์ž๋ฅผ ๊ตฌ์กฐ ๋ถ„ํ•ดํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ๊ธฐ๋ฐ˜ ๊ณ„์ธต์˜ `rootOwnedGetters` ์ด์Œ๋งค๋Š” getter๋ฅผ ์ธ์ž ์—†์ด ํ˜ธ์ถœํ•˜๊ณ  ์š”์†Œ๋ฅผ ์ •ํ™•ํžˆ ํ•˜๋‚˜๋งŒ ๋ Œ๋”๋งํ•˜๋ฏ€๋กœ, ๋‘˜ ์ค‘ ์–ด๋А ์ชฝ๋„ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” tools/vocabulary-check/src/exceptions.ts์— ๊ธฐ๋ก๋˜์–ด ์žˆ์œผ๋ฉฐ ์ค‘์•™์—์„œ ๊ณ ์น  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๊ทธ๋•Œ๊นŒ์ง€ ์ปดํฌ๋„ŒํŠธ๋Š” `name`๋„ `form` prop๋„ ์„ ์–ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํƒ€์ž… ๊ฒ€์‚ฌ๋Š” ํ†ต๊ณผํ•˜์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„ ์ œ์ถœํ•˜์ง€ ์•Š๋Š” name์€ ์—†๋Š” ๊ฒƒ๋ณด๋‹ค ๋‚˜์˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ฒ˜๋Š” `onValueChange`๋ฅผ ์ž์‹ ์˜ ํ•„๋“œ์— ์—ฐ๊ฒฐํ•ด ๊ฐ’์„ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.
143
+
144
+ ## ์ด ์ปดํฌ๋„ŒํŠธ์— ์ผ๋ถ€๋Ÿฌ ์—†๋Š” ๊ฒƒ
145
+
146
+ - `empty-state` โ€” ์ปฌ๋ ‰์…˜์ด ์•„๋‹ˆ๋ผ ์ˆซ์ž ํ•˜๋‚˜ ๋˜๋Š” ๋‘˜์„ ๊ฐ€์ง€๋ฏ€๋กœ ๋น„์–ด ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ์ง‘ํ•ฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ’์ด ์—†๋Š” ์Šฌ๋ผ์ด๋”๋„ min๊ณผ max๊ฐ€ ๋Š˜ ๋ฒ”์œ„๋ฅผ ์ •ํ•˜๋ฏ€๋กœ ์—ฌ์ „ํžˆ ์œ„์น˜๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
147
+ - `loading-state` โ€” ๊ฐ’์ด ์•„์ง ๋„์ฐฉ ์ค‘์ธ ์Šฌ๋ผ์ด๋”๋Š” ๋น„ํ™œ์„ฑํ™”๋œ ์Šฌ๋ผ์ด๋”์— ์‚ฌ์šฉ์ฒ˜์˜ ์Šค์ผˆ๋ ˆํ†ค์„ ๋”ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋กœ๋”ฉ part๋ฅผ ๋‘๋ฉด ๋น„ํ™œ์„ฑํ™” ์ƒํƒœ์™€ ์ค‘๋ณต๋˜์–ด ๊ฐ™์€ ์ •๋ณด๋ฅผ ๋‘ ๋ฒˆ ์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
148
+ - `error-state` โ€” ์œ ํšจํ•˜์ง€ ์•Š์Œ์€ ์ปจํŠธ๋กค์˜ ์ƒํƒœ์ด๋ฉฐ, `invalid`๋กœ ์ „๋‹ฌ๋˜๊ณ  ์ธ์— aria-invalid๋กœ ์•Œ๋ ค์ง‘๋‹ˆ๋‹ค. ์ด๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฉ”์‹œ์ง€๋Š” ์Šฌ๋ผ์ด๋”๊ฐ€ ์•„๋‹ˆ๋ผ ์ฃผ๋ณ€ ํ•„๋“œ์˜ ๋ชซ์ž…๋‹ˆ๋‹ค.
149
+
150
+ ## ์ ‘๊ทผ์„ฑ
151
+
152
+ ### ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„
153
+
154
+ > ๊ฐ ์ธ์˜ aria-labelledby๋ฅผ ํ†ตํ•ด Label part์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. Label์ด ์—†๋Š” ์Šฌ๋ผ์ด๋”๋Š” ์ด๋ฆ„์ด ์—†์œผ๋ฉฐ, ์ด๋Š” ์กฐ์šฉํžˆ ์ฑ„์›Œ์ง€์ง€ ์•Š๊ณ  ๊ฐ์‚ฌ์—์„œ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค.
155
+
156
+ ### ํฌ์ปค์Šค
157
+
158
+ > ๊ฐ ์ธ์ด ์ €๋งˆ๋‹ค ํฌ์ปค์Šค๋ฅผ ๋ฐ›์œผ๋ฏ€๋กœ, ๋ฒ”์œ„ ์Šฌ๋ผ์ด๋”์—๋Š” ํƒญ ์ •์ง€ ์ง€์ ์ด ๋‘˜ ์žˆ๊ณ  ํ‚ค๋ณด๋“œ ์‚ฌ์šฉ์ž๋Š” ์–ด๋А ๋์ด๋“  ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ์ปค์Šค ๋ง์€ ์ธ์— ๊ทธ๋ ค์ง‘๋‹ˆ๋‹ค.
159
+
160
+ ### ๊ฐ’ ํ…์ŠคํŠธ
161
+
162
+ > `getAriaValueText`๋Š” aria-valuetext๋ฅผ ํ†ตํ•ด ์•ˆ๋‚ด๋˜๋Š” ์ˆซ์ž๋ฅผ "42 percent", "14 US dollars" ๊ฐ™์€ ๊ตฌ์ ˆ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ํ†ตํ™”๋‚˜ ํ‰์ ์ด ๋งจ ์ •์ˆ˜๋กœ ์•ˆ๋‚ด๋ฉ๋‹ˆ๋‹ค.
163
+
164
+ ## ๋กœ์ผ€์ผ๊ณผ ์ปฌ๋ ‰์…˜
165
+
166
+ - ๋กœ์ผ€์ผ ์˜์กด: ์•„๋‹ˆ์š”. ํ•ญ๋ชฉ์€ ์ด๋ฅผ ์ด์œ  ์—†์ด ์‚ฌ์‹ค๋กœ๋งŒ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
167
+ - ์ปฌ๋ ‰์…˜ ์œˆ๋„์ž‰: ์•„๋‹ˆ์š”. ํ•ญ๋ชฉ์€ ์ด๋ฅผ ์ด์œ  ์—†์ด ์‚ฌ์‹ค๋กœ๋งŒ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
168
+
169
+ ## ์ด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ด๋ฏธ ๋‹ค๋ฃจ๋Š” ํŒจํ„ด
170
+
171
+ - **single** โ€” ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•: value์— ๊ฐ’์ด ํ•˜๋‚˜๋งŒ ๋“ค์–ด ์žˆ์„ ๋•Œ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ์ธ์ด ํ•˜๋‚˜์ธ ํ‰๋ฒ”ํ•œ ์Šฌ๋ผ์ด๋”์ž…๋‹ˆ๋‹ค. ์Œ๋Ÿ‰, ํ™•๋Œ€ ์ˆ˜์ค€, ๋ฐฑ๋ถ„์œจ์ด ๊ทธ๋Ÿฐ ์˜ˆ์ž…๋‹ˆ๋‹ค.
172
+ - **range** โ€” ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•: value์— ๊ฐ’์ด ๋‘˜ ์ด์ƒ ๋“ค์–ด ์žˆ์„ ๋•Œ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ์ธ ๋‘ ๊ฐœ์™€ ๊ทธ ์‚ฌ์ด๋ฅผ ์ฑ„์šด ๋ ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๊ฐ€๊ฒฉ ๋ฒ”์œ„, ๋‚ ์งœ ๊ตฌ๊ฐ„, ํ—ˆ์šฉ ์˜ค์ฐจ๊ฐ€ ๊ทธ๋Ÿฐ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ด๋ฅผ ๋‘ ๋ฒˆ์งธ ์ปดํฌ๋„ŒํŠธ๋กœ ๋‚ด๋ณด๋‚ด์ง€๋งŒ, Synapse๋Š” `value`์˜ ๊ธธ์ด๋กœ ์„ ํƒ๋˜๋Š” ์ด ์ปดํฌ๋„ŒํŠธ์˜ ํ•œ ํ˜•ํƒœ๋กœ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. machine์ด ํ•˜๋‚˜์ด๋ฏ€๋กœ ๋‘ ๋ฒˆ ์„ธ๋ฉด ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋ถ€ํ’€๋ฆฌ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. `minStepsBetweenThumbs`์™€ `thumbCollisionBehavior`๊ฐ€ ์ด ํ˜•ํƒœ๋ฅผ ์„ค์ •ํ•˜์ง€๋งŒ, ๋‘˜ ์ค‘ ์–ด๋А ๊ฒƒ๋„ ์ด ํ˜•ํƒœ๋ฅผ ์„ ์–ธํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
173
+
174
+ ## ๊ธฐ๋Šฅ ์šฉ์–ด์™€ ๋‹ค๋ฅธ ์ด๋ฆ„
175
+
176
+ - ๋‹ค๋ฃจ๋Š” ๊ธฐ๋Šฅ: `bounded-value`, `two-ended-range`, `stepped-value`, `axis-orientation`, `readonly-display`.
177
+ - ๋‹ค๋ฅธ ์ด๋ฆ„: `slider`, `range`, `range slider`, `track`, `volume control`, `์Šฌ๋ผ์ด๋”`, `๋ฒ”์œ„ ์Šฌ๋ผ์ด๋”`, `๋ ˆ์ธ์ง€ ์Šฌ๋ผ์ด๋”`, `์Œ๋Ÿ‰ ์กฐ์ ˆ`.
178
+ - ์–ดํœ˜ ์ƒํƒœ: `controlled`.
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: 'snackbar'
3
+ description: 'Snackbar โ€” ์‚ฌ์šฉ์ž๊ฐ€ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ฆฌ๋Š” ๋ฐ์€ ์นด๋“œ์ž…๋‹ˆ๋‹ค. ์ƒํƒœ ๋ง‰๋Œ€์™€ ์•„์ด์ฝ˜, ๋ฌธ๊ตฌ, ๋™์ž‘ ํ•˜๋‚˜, ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์„ ๋‹ด๊ณ , ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๊ฒน์ณ ์Œ“์ด๋ฉฐ, ๋‹ซ์„ ๋•Œ๊นŒ์ง€ ๋‚จ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ด๋ฆ„: snackbar, notification, action notification, alert card, ์Šค๋‚ต๋ฐ”, ์Šค๋‚ต๋ฐ” ์•Œ๋ฆผ, ๋™์ž‘ ์•Œ๋ฆผ.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/snackbar.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/snackbar.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
+ # Snackbar
26
+
27
+ > ์‚ฌ์šฉ์ž๊ฐ€ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ฆฌ๋Š” ๋ฐ์€ ์นด๋“œ์ž…๋‹ˆ๋‹ค. ์ƒํƒœ ๋ง‰๋Œ€์™€ ์•„์ด์ฝ˜, ๋ฌธ๊ตฌ, ๋™์ž‘ ํ•˜๋‚˜, ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์„ ๋‹ด๊ณ , ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๊ฒน์ณ ์Œ“์ด๋ฉฐ, ๋‹ซ์„ ๋•Œ๊นŒ์ง€ ๋‚จ์Šต๋‹ˆ๋‹ค.
28
+
29
+ `@neurocle/synapse-react` 0.3.0์—์„œ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜๋œ ๋ฒ„์ „์ด ์ด ๋ฒ„์ „์ด ์•„๋‹ˆ๋ฉด, ์ด ํŽ˜์ด์ง€์˜ ์–ด๋–ค ๋‚ด์šฉ๋ณด๋‹ค ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ์•ˆ์— ํ•จ๊ป˜ ๋ฐฐํฌ๋œ Registry๋ฅผ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
30
+
31
+ - ํŒจํ‚ค์ง€: `@neurocle/synapse-react`
32
+ - ๋‚ด๋ณด๋‚ด๊ธฐ: `Snackbar`
33
+ - ๋ถ„๋ฅ˜: `floating-and-overlay`
34
+ - ์ˆ˜๋ช… ์ฃผ๊ธฐ: `active`
35
+
36
+ ## ์•Œ๋ ค์ง„ ์˜ˆ์™ธ โ€” ์‚ฌ์šฉ ์ „์— ํ™•์ธ
37
+
38
+ ์ด ์ปดํฌ๋„ŒํŠธ๋Š” ์•„๋ž˜ ๊ธฐ์ค€ 3๊ฐœ๋ฅผ **์˜๋„์ ์œผ๋กœ ์ถฉ์กฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค**. ๊ธฐ๋ก๋œ ๊ฒฐ์ •์ด๋ฏ€๋กœ ๊ณ ์น˜๋ ค ๋“ค์ง€ ๋ง๊ณ , ๊ฐ ํ•ญ๋ชฉ์˜ ์œ ์˜์ ์„ ์ง€์ผœ์„œ ์”๋‹ˆ๋‹ค.
39
+
40
+ ### WCAG 2.2 SC 1.4.11 ๋น„ํ…์ŠคํŠธ ๋Œ€๋น„ (AA)
41
+
42
+ - ๋Œ€์ƒ part: `root`
43
+ - ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ: ์ƒํƒœ ๋ง‰๋Œ€์™€ ์ƒํƒœ ์•„์ด์ฝ˜์€ croissant์˜ ์ƒํƒœ ์ƒ‰(`*.onSurface`, ๋ฐ์€ ํ…Œ๋งˆ์˜ 400 ๋‹จ๊ณ„)์œผ๋กœ ๊ทธ๋ ค์ง€๋ฉฐ, ํฐ ์นด๋“œ ์œ„์—์„œ ์„ฑ๊ณต ์ƒ‰์€ ์•ฝ 2.45:1๋กœ 3:1์— ๋ชป ๋ฏธ์นฉ๋‹ˆ๋‹ค.
44
+ - ์˜๋„ํ•œ ์ด์œ : croissant ์Šค๋‚ต๋ฐ”์˜ ๋ชจ์–‘์„ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ƒํƒœ๋Š” ์ƒ‰๋ฟ ์•„๋‹ˆ๋ผ ์•„์ด์ฝ˜ ๋ชจ์–‘(์ฒดํฌ, ์‚ผ๊ฐํ˜•)๊ณผ ๋ฌธ๊ตฌ ์ž์ฒด๋กœ๋„ ์ „๋‹ฌ๋˜๋ฏ€๋กœ ์ƒ‰์€ ์ค‘๋ณต ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค. `contrast-pairs.json`์— `status-mark` ์šฉ๋„๋กœ ๊ธฐ๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
45
+ - ์‚ฌ์šฉ ์‹œ ์œ ์˜์ : ์ƒํƒœ๋ฅผ ์ƒ‰์—๋งŒ ๋งก๊ธฐ์ง€ ๋งˆ์„ธ์š”. ๋ฌธ๊ตฌ๊ฐ€ ์„ฑ๊ณต์ธ์ง€ ์‹คํŒจ์ธ์ง€ ์Šค์Šค๋กœ ๋งํ•˜๊ฒŒ ์“ฐ๊ณ , ํƒ€์ž…(`success`, `error`)์„ ๋ฐ˜๋“œ์‹œ ๋„˜๊ฒจ ์•„์ด์ฝ˜์ด ํ•จ๊ป˜ ๊ทธ๋ ค์ง€๊ฒŒ ํ•˜์„ธ์š”.
46
+
47
+ ### WCAG 2.2 SC 1.4.3 ๋Œ€๋น„(์ตœ์†Œ) (AA)
48
+
49
+ - ๋Œ€์ƒ part: `actionTrigger`
50
+ - ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ: ๋™์ž‘ ๋ฒ„ํŠผ์˜ ๊ธ€์ž๋Š” ์ƒํƒœ ์ƒ‰ ๋ฐ”ํƒ•(`*.subtle`) ์œ„์— ์ƒํƒœ ์ƒ‰(`*.onSurface`)์œผ๋กœ ์“ฐ์ด๋ฉฐ, ์„ฑ๊ณต ํƒ€์ž…์—์„œ ์•ฝ 2.2:1๋กœ 4.5:1์— ํฌ๊ฒŒ ๋ชป ๋ฏธ์นฉ๋‹ˆ๋‹ค.
51
+ - ์˜๋„ํ•œ ์ด์œ : croissant ์Šค๋‚ต๋ฐ”์˜ ๋ฌผ๋“  ๋™์ž‘ ๋ฒ„ํŠผ์„ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. `contrast-pairs.json`์— `tinted-label` ์šฉ๋„๋กœ ๊ธฐ๋ก๋œ ์˜๋„์  ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค.
52
+ - ์‚ฌ์šฉ ์‹œ ์œ ์˜์ : ๋™์ž‘ ๋ ˆ์ด๋ธ”์€ `View`, `Show`, `Retry`์ฒ˜๋Ÿผ ํ•œ ๋‹จ์–ด๋กœ ์งง๊ฒŒ ์“ฐ์„ธ์š”. ๊ฐ™์€ ๋™์ž‘์— ๋‹ฟ๋Š” ๋‹ค๋ฅธ ๊ฒฝ๋กœ(ํ•ด๋‹น ํ™”๋ฉด์˜ ๋งํฌ๋‚˜ ๋ฉ”๋‰ด)๋ฅผ ์ œํ’ˆ์— ๋‘์„ธ์š”.
53
+
54
+ ### Synapse ์Šค๋‚ต๋ฐ” ์Œ“์ž„ โ€” croissant์™€ ๋‹ค๋ฆ„
55
+
56
+ - ๋Œ€์ƒ part: `group`
57
+ - ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ: croissant๋Š” ์Šค๋‚ต๋ฐ”๋ฅผ ๊ฒน์น˜์ง€ ์•Š์€ ๋ชฉ๋ก์œผ๋กœ ๋Š˜์–ด๋†“๊ณ  ๊ฐ€์žฅ ์ตœ๊ทผ ๊ฒƒ์„ ๋งจ ์œ„์— ๋‘์ง€๋งŒ, Synapse๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ์Šค๋‚ต๋ฐ”๋ฅผ ๋งจ ์•ž์— ๋‘๊ณ  ์ด์ „ ๊ฒƒ์„ ๋’ค๋กœ ๊ฒน์ณ ์Œ“์œผ๋ฉฐ, ๊ฐ€๋ฆฌํ‚ค๊ฑฐ๋‚˜ ํฌ์ปค์Šคํ•˜๋ฉด ํŽผ์นฉ๋‹ˆ๋‹ค. ํŽผ์นœ ์ƒํƒœ์—์„œ ๊ฐ€์žฅ ์ตœ๊ทผ ๊ฒƒ์€ ๋งจ ์•„๋ž˜(ํ™”๋ฉด ๊ฐ€์žฅ์ž๋ฆฌ ์ชฝ)์ž…๋‹ˆ๋‹ค.
58
+ - ์˜๋„ํ•œ ์ด์œ : ์—ฌ๋Ÿฌ ์•Œ๋ฆผ์ด ํ™”๋ฉด์„ ๊ฐ€๋ฆฌ์ง€ ์•Š๋„๋ก ๊ฒน์ณ ์Œ“๋Š” ๊ตฌ์กฐ๋ฅผ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํŽผ์นœ ์ˆœ์„œ๋Š” `@zag-js/toast` machine์ด ์ƒˆ ์•Œ๋ฆผ๋ถ€ํ„ฐ ๋†’์ด๋ฅผ ๋ˆ„์ ํ•ด ๊ณ„์‚ฐํ•˜๋ฉฐ, ์ด๋ฅผ ๋’ค์ง‘๋Š” ์„ค์ •์ด machine์— ์—†์Šต๋‹ˆ๋‹ค.
59
+ - ์‚ฌ์šฉ ์‹œ ์œ ์˜์ : ๊ฒน์นœ ์ƒํƒœ์—์„œ๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ์Šค๋‚ต๋ฐ”๋งŒ ์ฝํž™๋‹ˆ๋‹ค. ์ด์ „ ์Šค๋‚ต๋ฐ”์˜ ๋‚ด์šฉ์ด ์ค‘์š”ํ•˜๋ฉด ๊ฐ™์€ ์ •๋ณด๋ฅผ ํ™”๋ฉด์˜ ๋‹ค๋ฅธ ๊ณณ์—๋„ ๋‚จ๊ธฐ์„ธ์š”.
60
+
61
+ ## Do
62
+
63
+ > ์‚ฌ์šฉ์ž๊ฐ€ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ฆด ๋•Œ ์“ฐ์„ธ์š” โ€” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์˜ ์™„๋ฃŒ๋‚˜ ์‹คํŒจ์ฒ˜๋Ÿผ, ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค ๋Œ์•„์™€์„œ๋„ ๋ณผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์— ๋Œ€ํ•ด ๊ณง๋ฐ”๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ฐ€์ง€(๋ณดํ†ต `View`๋‚˜ `Retry`)๊ฐ€ ์žˆ์œผ๋ฉด ๋™์ž‘ ๋ฒ„ํŠผ์œผ๋กœ ์ฃผ์„ธ์š”. croissant ์Šค๋‚ต๋ฐ”๋ฅผ ๋”ฐ๋ผ ์™ผ์ชฝ ๊ฐ€์žฅ์ž๋ฆฌ์˜ ์ƒํƒœ ๋ง‰๋Œ€, ์ƒํƒœ ์•„์ด์ฝ˜, ๊ตต์€ ๋ฌธ๊ตฌ, ๋ฌผ๋“  ๋™์ž‘ ๋ฒ„ํŠผ, ๊ตฌ๋ถ„์„  ๋’ค์˜ ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์„ ๋‹ด์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๊ฒน์ณ ์Œ“์˜€๋‹ค๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ฑฐ๋‚˜ ํฌ์ปค์Šคํ•˜๋ฉด ํŽผ์ณ์ง€๊ณ , ๊ธฐ๋ณธ ์œ„์น˜๋Š” ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์ž…๋‹ˆ๋‹ค.
64
+
65
+ ## Don't
66
+
67
+ > ์‚ฌ์šฉ์ž๊ฐ€ ๋”ฐ๋กœ ํ•  ์ผ์ด ์—†๋Š” ํ•œ ์ค„ ์ƒํƒœ์—๋Š” ์“ฐ์ง€ ๋งˆ์„ธ์š” โ€” ๊ทธ๊ฒƒ์€ ์Šค์Šค๋กœ ์‚ฌ๋ผ์ง€๋Š” Toast์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋Œ€์‘ํ•ด์•ผ ํ•˜๋Š” ๊ฒฐ์ •์—๋„ ์“ฐ์ง€ ๋งˆ์„ธ์š”. ๊ทธ๊ฒƒ์€ Dialog์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์ž‘์—…์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์Œ“์ง€ ๋งˆ์„ธ์š”.
68
+
69
+ ## Anti-patterns
70
+
71
+ > ์•Œ๋ฆผ์„ ๋ณด๋‚ด๋Š” ํŠธ๋ฆฌ ๋ถ€๋ถ„ ์•ˆ์— ์˜์—ญ์„ ๋ Œ๋”๋งํ•˜๋Š” ๊ฒƒ. ์Šค๋‚ต๋ฐ”๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณณ๊ณณ์—์„œ ๋งŒ๋“ค์–ด์ง€๋ฏ€๋กœ, ํ๋Š” `createSnackbar`๋กœ ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด `SnackbarProvider`๋กœ ํŠธ๋ฆฌ์— ์ „๋‹ฌํ•˜๊ณ  `Snackbar.Root`๋Š” ๊ฐ€์žฅ์ž๋ฆฌ์— ํ•œ ๋ฒˆ๋งŒ ๋งˆ์šดํŠธํ•˜์„ธ์š”.
72
+
73
+ Registry๋Š” ์ด ์ปดํฌ๋„ŒํŠธ์˜ ์•ˆ๋‚ด๋ฅผ `reviewed`๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค(๊ฒ€ํ† ์ผ 2026-09-26).
74
+
75
+ ## ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ
76
+
77
+ - `Dialog` (`dialog`)
78
+ - `Drawer` (`drawer`)
79
+ - `Toast` (`toast`)
80
+ - `Tooltip` (`tooltip`)
81
+
82
+ ## ๊ฐ€์ ธ์˜ค๊ธฐ
83
+
84
+ ```tsx
85
+ import { Snackbar } from '@neurocle/synapse-react'
86
+ ```
87
+
88
+ ## Anatomy
89
+
90
+ React ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ๋…ธ์ถœํ•˜๋Š” part 1๊ฐœ๋ฅผ ํ•ญ๋ชฉ์˜ `parts.containment`๊ฐ€ ๊ธฐ๋กํ•œ ๋Œ€๋กœ ์กฐํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ part๊ฐ€ ๋†“์ผ ์ˆ˜ ์žˆ๋Š” ์ •๋‹นํ•œ ์ž๋ฆฌ๊ฐ€ ๋‘˜ ์ด์ƒ์ด๋ฉด ์Šค๋‹ˆํŽซ์€ ์ฒซ ๋ฒˆ์งธ๋ฅผ ์“ฐ๊ณ , ์•„๋ž˜ ๋ชฉ๋ก์ด ๋‚˜๋จธ์ง€๋ฅผ ์•Œ๋ ค ์ค๋‹ˆ๋‹ค.
91
+
92
+ ```tsx
93
+ <Snackbar.Root />
94
+ ```
95
+
96
+ - `Snackbar.Root` โ€” `Group` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
97
+
98
+ ### React ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ๋…ธ์ถœํ•˜์ง€ ์•Š๋Š” anatomy part
99
+
100
+ - `Group`
101
+ - `Title`
102
+ - `Description`
103
+ - `ActionTrigger`
104
+ - `CloseTrigger`
105
+
106
+ ## Props
107
+
108
+ ๋นŒ๋“œ๊ฐ€ ๋ฐฉ์ถœํ•˜๋Š” ์„ ์–ธ์—์„œ ๋„์ถœํ•œ prop 4๊ฐœ. ์„ ์–ธ์—๋Š” ๊ธฐ๋ณธ๊ฐ’์„ ๋‘˜ ์ž๋ฆฌ๊ฐ€ ์—†์œผ๋ฏ€๋กœ prop ๊ธฐ๋ก์—๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ๊ทธ prop์˜ ์„ค๋ช…์— ์ ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.
109
+
110
+ ๋ชจ๋“  prop์ด ์„ ํƒ์ž…๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ๋„˜๊ธฐ์ง€ ์•Š์œผ๋ฉด ์ปดํฌ๋„ŒํŠธ๋Š” ๋น„์ œ์–ด๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
111
+
112
+ ### ์„ ํƒ
113
+
114
+ - `queue` โ€” `SnackbarQueue`, ์„ ํƒ. ์ด ์˜์—ญ์ด ๋ Œ๋”ํ•˜๋Š” ์Šค๋‚ต๋ฐ” ํ์ž…๋‹ˆ๋‹ค. ์„ ํƒ ์‚ฌํ•ญ์ธ ์ด์œ ๋Š” ๋ณดํ†ต `SnackbarProvider`๋กœ ๋“ค์–ด์˜ค๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๋ฅผ ๊ฐ์‹ผ ์ œํ’ˆ์€ ์–ด๋А ํ์ธ์ง€ ์ด๋ฏธ ๋งํ•œ ์…ˆ์ด๊ณ , ์˜์—ญ์—์„œ ๊ทธ๊ฒƒ์„ ๋˜ํ’€์ดํ•˜๋ฉด ๋‘˜์ด ์–ด๊ธ‹๋‚  ์ˆ˜ ์žˆ๋Š” ์ž๋ฆฌ๊ฐ€ ํ•˜๋‚˜ ๋” ์ƒ๊น๋‹ˆ๋‹ค.
115
+ - `translations` โ€” `TranslationOverrides`, ์„ ํƒ. ์ด ์˜์—ญ์—๋งŒ ์ ์šฉ๋˜๋Š” ์ ‘๊ทผ์„ฑ ๋ฌธ์ž์—ด๋กœ, provider์˜ ๊ฐ’๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
116
+ - `size` โ€” `Size`, ์„ ํƒ. ํ•˜๋‚˜๋ฟ์ธ ๊ณต์šฉ ์ฒ™๋„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ๋ณธ๊ฐ’์€ `md`์ž…๋‹ˆ๋‹ค.
117
+ - `id` โ€” `string`, ์„ ํƒ. ํŒฉํ† ๋ฆฌ๊ฐ€ ๋งŒ๋“œ๋Š” ์‹๋ณ„์ž๋ฅผ ๋ฎ์–ด์”๋‹ˆ๋‹ค. ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
118
+
119
+ ## Variants
120
+
121
+ - `size` โ€” `xs`, `sm`, `md`, `lg`, `xl`. ๊ธฐ๋ณธ๊ฐ’์€ `md`. ํฌ๊ธฐ ์ถ•์€ ์•Œ๋ฆผ ํ•˜๋‚˜์˜ ํฌ๊ธฐ โ€” ํŒจ๋”ฉ, ์•ก์…˜ ๋ฒ„ํŠผ, ๋‹ซ๊ธฐ ๋Œ€์ƒ โ€” ๋ฅผ ์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜์—ญ ์ž์ฒด์˜ ๋ฒ”์œ„๋Š” ๋ทฐํฌํŠธ์˜ ๋ฒ”์œ„์ž…๋‹ˆ๋‹ค. ์•Œ๋ฆผ ์Šคํƒ์€ ํŽ˜์ด์ง€ ์•ˆ์— ๋ฐฐ์น˜๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ™”๋ฉด์„ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜๊ฐ€ ์ •ํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
122
+
123
+ ## ํผ
124
+
125
+ ํผ ์ฐธ์—ฌ: ์•„๋‹ˆ์š”.
126
+
127
+ > ํผ์— ์ œ์ถœํ•˜๋Š” ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค.
128
+
129
+ ## ์ด ์ปดํฌ๋„ŒํŠธ์— ์ผ๋ถ€๋Ÿฌ ์—†๋Š” ๊ฒƒ
130
+
131
+ - `empty-state` โ€” ํ๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด ๋นˆ ์˜์—ญ์ด ์•„๋‹ˆ๋ผ ์˜์—ญ ์ž์ฒด๋ฅผ ๋ Œ๋”๋งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ๋‹ด์ง€ ์•Š์€ ์ฑ„ ๋ณด์ด๋Š” ์•Œ๋ฆผ ์˜์—ญ์€ ์ œํ’ˆ ๋ ˆ์ด์•„์›ƒ์— ๋šซ๋ฆฐ ์˜๊ตฌ์ ์ธ ๊ตฌ๋ฉ์ด๊ณ , ๊ทธ ์•ˆ์— ๋“ค์–ด๊ฐˆ ๋ฉ”์‹œ์ง€๋„ ์—†์Šต๋‹ˆ๋‹ค.
132
+ - `loading-state` โ€” ๋ฌด์–ธ๊ฐ€๋ฅผ ๋กœ๋”ฉ ์ค‘์ด๋ผ๋Š” ์•Œ๋ฆผ ์ž์ฒด๊ฐ€ ์Šค๋‚ต๋ฐ”์ด๋ฉฐ, `loading` ํƒ€์ž…์œผ๋กœ ๋งŒ๋“ค๊ณ  ์ž‘์—…์ด ๋๋‚˜๋ฉด ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋กœ๋”ฉ part๋Š” machine์ด ์ด๋ฏธ ๊ฐ€์ง„ ์ƒํƒœ๋ณด๋‹ค ํ•œ ๋‹จ๊ณ„ ์œ„์—์„œ ๊ฐ™์€ ๋ง์„ ํ•˜๋Š” ๋‘ ๋ฒˆ์งธ ๋ฐฉ์‹์ด ๋  ๋ฟ์ž…๋‹ˆ๋‹ค.
133
+ - `error-state` โ€” ์‹คํŒจ๋Š” ์˜์—ญ์˜ ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋ผ `error` ํƒ€์ž…์˜ ์Šค๋‚ต๋ฐ”์ž…๋‹ˆ๋‹ค. ์˜์—ญ์—๋Š” ์‹คํŒจํ•  ์ˆ˜ ์žˆ๋Š” ์ž์ฒด ์ž‘์—…์ด ์—†์Šต๋‹ˆ๋‹ค โ€” ์ €์žฅ์†Œ๊ฐ€ ๊ฐ€์ง„ ๊ฒƒ์„ ๋ Œ๋”๋งํ•  ๋ฟ์ž…๋‹ˆ๋‹ค.
134
+
135
+ ## ์ ‘๊ทผ์„ฑ
136
+
137
+ ### ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„
138
+
139
+ > ์˜์—ญ์€ provider์˜ `snackbar.group.label`์—์„œ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ค๊ณ , ๊ฐ ์Šค๋‚ต๋ฐ”๋Š” ์ œํ’ˆ์ด `create`๋กœ ์ œ๊ณตํ•œ ๋ฌธ๊ตฌ๋กœ ์ด๋ฆ„์ด ๋ถ™์Šต๋‹ˆ๋‹ค.
140
+
141
+ ### ํฌ์ปค์Šค
142
+
143
+ > ์•Œ๋ฆผ์€ ๋‚˜ํƒ€๋‚  ๋•Œ ๊ฒฐ์ฝ” ํฌ์ปค์Šค๋ฅผ ๊ฐ€์ ธ๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค โ€” ์ด๊ฒƒ์ด ์Šค๋‚ต๋ฐ”์™€ ๋Œ€ํ™”์ƒ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ์†์„ฑ์ด๋ฉฐ, ํฌ์ปค์Šค๋ฅผ ๋นผ์•—๋Š”๋‹ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํ•˜๋˜ ์ผ์„ ๋ฐฉํ•ดํ•˜๋ฉด์„œ๊นŒ์ง€ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜์ง€๋„ ์•Š์€ ๊ฒƒ์„ ์•Œ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํฌ์ปค์Šค๋Š” machine์˜ ๋‹จ์ถ•ํ‚ค๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์˜์—ญ์— ๋“ค์–ด๊ฐ€๋ฉฐ, ๊ฐ ์•Œ๋ฆผ ์–‘์ชฝ์˜ ๊ณ ์ŠคํŠธ ์š”์†Œ๊ฐ€ ๋“ค์–ด๊ฐ„ ๋’ค์˜ ์ˆœ์„œ๋ฅผ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
144
+
145
+ ## ๋กœ์ผ€์ผ๊ณผ ์ปฌ๋ ‰์…˜
146
+
147
+ - ๋กœ์ผ€์ผ ์˜์กด: ์˜ˆ. ๋‹ซ๊ธฐ ๋ฒ„ํŠผ๊ณผ ์ƒํƒœ ๋‹จ์–ด๋Š” provider์˜ ๋ฒˆ์—ญ์—์„œ ์˜ค๊ณ , ์˜์—ญ์€ ํ…์ŠคํŠธ ๋ฐฉํ–ฅ์„ provider์—์„œ ๊ฐ€์ ธ์˜ค๋ฏ€๋กœ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ์“ฐ๋Š” ์ œํ’ˆ์€ ๊ทธ์— ๋งž๊ฒŒ ์•Œ๋ฆผ์„ ์Œ“๊ณ  ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
148
+ - ์ปฌ๋ ‰์…˜ ์œˆ๋„์ž‰: ์•„๋‹ˆ์š”. ํ•ญ๋ชฉ์€ ์ด๋ฅผ ์ด์œ  ์—†์ด ์‚ฌ์‹ค๋กœ๋งŒ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
149
+
150
+ ## ๊ธฐ๋Šฅ ์šฉ์–ด์™€ ๋‹ค๋ฅธ ์ด๋ฆ„
151
+
152
+ - ๋‹ค๋ฃจ๋Š” ๊ธฐ๋Šฅ: `notification-queue`, `undo-action`, `translatable-strings`.
153
+ - ๋‹ค๋ฅธ ์ด๋ฆ„: `snackbar`, `notification`, `action notification`, `alert card`, `์Šค๋‚ต๋ฐ”`, `์Šค๋‚ต๋ฐ” ์•Œ๋ฆผ`, `๋™์ž‘ ์•Œ๋ฆผ`.
154
+ - ์–ดํœ˜ ์ƒํƒœ: `controlled`.
@@ -0,0 +1,122 @@
1
+ ---
2
+ name: 'spinner'
3
+ description: 'Spinner โ€” ๋์„ ์•Œ ์ˆ˜ ์—†๋Š” ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ž„์„ ๋„๋Š” ๊ณ ๋ฆฌ๋กœ ๋ณด์—ฌ ์ฃผ๋Š” ์ƒํƒœ ํ‘œ์‹œ์ž…๋‹ˆ๋‹ค. `role="status"`์ด๋ฉฐ, ์‹œ๊ฐ์ ์œผ๋กœ ์ˆจ๊ธด ๋ฒˆ์—ญ๋œ ๋ฌธ๊ตฌ("Loading")๋กœ ๋ณด์กฐ๊ธฐ์ˆ ์— ์ง„ํ–‰ ์ค‘์ž„์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ด๋ฆ„: spinner, loading spinner, loader, activity indicator, throbber, ๋กœ๋”ฉ, ์Šคํ”ผ๋„ˆ, ๋กœ๋”ฉ ํ‘œ์‹œ.'
4
+ metadata:
5
+ package: '@neurocle/synapse-react'
6
+ packageVersion: '0.3.0'
7
+ registryEntry: 'packages/registry/data/components/spinner.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/spinner.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
+ # Spinner
26
+
27
+ > ๋์„ ์•Œ ์ˆ˜ ์—†๋Š” ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ž„์„ ๋„๋Š” ๊ณ ๋ฆฌ๋กœ ๋ณด์—ฌ ์ฃผ๋Š” ์ƒํƒœ ํ‘œ์‹œ์ž…๋‹ˆ๋‹ค. `role="status"`์ด๋ฉฐ, ์‹œ๊ฐ์ ์œผ๋กœ ์ˆจ๊ธด ๋ฒˆ์—ญ๋œ ๋ฌธ๊ตฌ("Loading")๋กœ ๋ณด์กฐ๊ธฐ์ˆ ์— ์ง„ํ–‰ ์ค‘์ž„์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.
28
+
29
+ `@neurocle/synapse-react` 0.3.0์—์„œ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜๋œ ๋ฒ„์ „์ด ์ด ๋ฒ„์ „์ด ์•„๋‹ˆ๋ฉด, ์ด ํŽ˜์ด์ง€์˜ ์–ด๋–ค ๋‚ด์šฉ๋ณด๋‹ค ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ์•ˆ์— ํ•จ๊ป˜ ๋ฐฐํฌ๋œ Registry๋ฅผ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
30
+
31
+ - ํŒจํ‚ค์ง€: `@neurocle/synapse-react`
32
+ - ๋‚ด๋ณด๋‚ด๊ธฐ: `Spinner`
33
+ - ๋ถ„๋ฅ˜: `disclosure-layout-display`
34
+ - ์ˆ˜๋ช… ์ฃผ๊ธฐ: `active`
35
+
36
+ ## Do
37
+
38
+ > ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆด์ง€ ๋ชจ๋ฅด๋Š” ์งง์€ ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ž„์„ ์•Œ๋ฆด ๋•Œ ์“ฐ์„ธ์š” โ€” ์ €์žฅ ์ค‘์ธ ๋ฒ„ํŠผ ์˜†, ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ค๋Š” ํŒจ๋„ ํ•œ๊ฐ€์šด๋ฐ์ฒ˜๋Ÿผ ๋ง์ž…๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ๊ธฐ๋‹ค๋ฆฌ๋Š”์ง€ ๋ฌธ๋งฅ์ด ๋ถ€์กฑํ•˜๋ฉด `Spinner.Label`์— "๋ชจ๋ธ ๋ชฉ๋ก์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘"์ฒ˜๋Ÿผ ์ ์œผ์„ธ์š”.
39
+
40
+ ## Don't
41
+
42
+ > ์ง„ํ–‰๋ฅ ์„ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉด Progress๋ฅผ ์“ฐ์„ธ์š” โ€” ๋น„์œจ์ด ๋ณด์ด๋Š” ํŽธ์ด ๊ธฐ๋‹ค๋ฆผ์„ ๊ฒฌ๋””๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋ถˆ๋Ÿฌ์˜ฌ ์ฝ˜ํ…์ธ ์˜ ๋ชจ์–‘์„ ๋ฏธ๋ฆฌ ์•Œ๋ฉด Skeleton์œผ๋กœ ์ž๋ฆฌ๋ฅผ ์žก์•„ ๋ ˆ์ด์•„์›ƒ์ด ํŠ€์ง€ ์•Š๊ฒŒ ํ•˜์„ธ์š”. ํ•œ ํ™”๋ฉด์— ์—ฌ๋Ÿฌ Spinner๋ฅผ ๋‘์ง€ ๋งˆ์„ธ์š” โ€” ์˜์—ญ๋งˆ๋‹ค ๋Œ๋ฉด ๋ฌด์—‡์ด ๋๋‚ฌ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
43
+
44
+ ## Anti-patterns
45
+
46
+ > Spinner๋ฅผ aria-hidden์œผ๋กœ ๊ฐ์ถ”๊ฑฐ๋‚˜ status ์˜์—ญ ๋ฐ–์— ์ˆจ๊ธด ๋ฌธ๊ตฌ ์—†์ด ๋‘๋Š” ๊ฒƒ. ์‹œ๊ฐ์ ์œผ๋กœ๋งŒ ์ง„ํ–‰์„ ์•Œ๋ฆฌ๋ฉด ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž๋Š” ํ™”๋ฉด์ด ๋ฉˆ์ท„๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—…์ด ๋๋‚ฌ๋Š”๋ฐ Spinner๋ฅผ ๋‚จ๊ฒจ ๋‘๋Š” ๊ฒƒ๋„ ๊ฐ™์€ ๋ถ€๋ฅ˜์ž…๋‹ˆ๋‹ค.
47
+
48
+ Registry๋Š” ์ด ์ปดํฌ๋„ŒํŠธ์˜ ์•ˆ๋‚ด๋ฅผ `reviewed`๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค(๊ฒ€ํ† ์ผ 2026-09-26).
49
+
50
+ ## ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ
51
+
52
+ - `Progress` (`progress`)
53
+ - `Skeleton` (`skeleton`)
54
+ - `Button` (`button`)
55
+
56
+ ## ๊ฐ€์ ธ์˜ค๊ธฐ
57
+
58
+ ```tsx
59
+ import { Spinner } from '@neurocle/synapse-react'
60
+ ```
61
+
62
+ ## Anatomy
63
+
64
+ React ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ๋…ธ์ถœํ•˜๋Š” part 3๊ฐœ๋ฅผ ํ•ญ๋ชฉ์˜ `parts.containment`๊ฐ€ ๊ธฐ๋กํ•œ ๋Œ€๋กœ ์กฐํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ part๊ฐ€ ๋†“์ผ ์ˆ˜ ์žˆ๋Š” ์ •๋‹นํ•œ ์ž๋ฆฌ๊ฐ€ ๋‘˜ ์ด์ƒ์ด๋ฉด ์Šค๋‹ˆํŽซ์€ ์ฒซ ๋ฒˆ์งธ๋ฅผ ์“ฐ๊ณ , ์•„๋ž˜ ๋ชฉ๋ก์ด ๋‚˜๋จธ์ง€๋ฅผ ์•Œ๋ ค ์ค๋‹ˆ๋‹ค.
65
+
66
+ ```tsx
67
+ <Spinner.Root>
68
+ <Spinner.Indicator />
69
+ <Spinner.Label />
70
+ </Spinner.Root>
71
+ ```
72
+
73
+ - `Spinner.Root` โ€” ์ตœ์ƒ์œ„์— ๋†“์ž…๋‹ˆ๋‹ค
74
+ - `Spinner.Indicator` โ€” `Root` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
75
+ - `Spinner.Label` โ€” `Root` ์•ˆ์— ๋†“์ž…๋‹ˆ๋‹ค
76
+
77
+ ## Props
78
+
79
+ ๋นŒ๋“œ๊ฐ€ ๋ฐฉ์ถœํ•˜๋Š” ์„ ์–ธ์—์„œ ๋„์ถœํ•œ prop 1๊ฐœ. ์„ ์–ธ์—๋Š” ๊ธฐ๋ณธ๊ฐ’์„ ๋‘˜ ์ž๋ฆฌ๊ฐ€ ์—†์œผ๋ฏ€๋กœ prop ๊ธฐ๋ก์—๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ๊ทธ prop์˜ ์„ค๋ช…์— ์ ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.
80
+
81
+ ๋ชจ๋“  prop์ด ์„ ํƒ์ž…๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ๋„˜๊ธฐ์ง€ ์•Š์œผ๋ฉด ์ปดํฌ๋„ŒํŠธ๋Š” ๋น„์ œ์–ด๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
82
+
83
+ ### ์„ ํƒ
84
+
85
+ - `size` โ€” `Size`, ์„ ํƒ. ํ•˜๋‚˜๋ฟ์ธ ๊ณต์šฉ ์ฒ™๋„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ๋ณธ๊ฐ’์€ `md`์ž…๋‹ˆ๋‹ค.
86
+
87
+ ## Variants
88
+
89
+ - `size` โ€” `xs`, `sm`, `md`, `lg`, `xl`. ๊ธฐ๋ณธ๊ฐ’์€ `md`.
90
+
91
+ ## ํผ
92
+
93
+ ํผ ์ฐธ์—ฌ: ์•„๋‹ˆ์š”.
94
+
95
+ > ํผ์— ์ œ์ถœํ•˜๋Š” ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค.
96
+
97
+ ## ์ด ์ปดํฌ๋„ŒํŠธ์— ์ผ๋ถ€๋Ÿฌ ์—†๋Š” ๊ฒƒ
98
+
99
+ - `empty-state` โ€” Spinner๋Š” ๋‹ด๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ์—†๋Š” ํ‘œ์‹œ ํ•˜๋‚˜๋ผ ๋น„์–ด ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ์ง‘ํ•ฉ์ด ์—†์Šต๋‹ˆ๋‹ค.
100
+ - `loading-state` โ€” Spinner ์ž์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์˜ ๋กœ๋”ฉ ํ‘œ์‹œ์ž…๋‹ˆ๋‹ค. ์Šค์Šค๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์ด ์—†์–ด ๋ณ„๋„์˜ ๋กœ๋”ฉ part๋ฅผ ๋‘์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
101
+ - `error-state` โ€” ์ง„ํ–‰ ์ค‘์ด๋ผ๋Š” ์‚ฌ์‹ค๋งŒ ์•Œ๋ฆฌ๋ฉฐ ์ž‘์—…์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ์ž‘์—…์ด ์‹คํŒจํ•˜๋ฉด ์‚ฌ์šฉ์ฒ˜๊ฐ€ Spinner๋ฅผ ์น˜์šฐ๊ณ  ๊ทธ ์ž๋ฆฌ์—์„œ ์‹คํŒจ๋ฅผ ์•Œ๋ฆฌ์„ธ์š”.
102
+
103
+ ## ์ ‘๊ทผ์„ฑ
104
+
105
+ ### ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„
106
+
107
+ > ์ƒํƒœ ์˜์—ญ์˜ ๋‚ด์šฉ์ธ ์ˆจ๊ธด ๋ ˆ์ด๋ธ”์ด ์ฝํž™๋‹ˆ๋‹ค. `aria-label`์€ ๋ผ์ด๋ธŒ ์˜์—ญ์˜ ์•Œ๋ฆผ์œผ๋กœ ์ฝํžˆ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ๊ตฌ๋ฅผ ๋ฐ”๊พธ๋ ค๋ฉด `Spinner.Label`์„ ์“ฐ์„ธ์š”.
108
+
109
+ ### ํฌ์ปค์Šค
110
+
111
+ > ํฌ์ปค์Šค๋ฅผ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง„ํ–‰ ์ค‘์ธ ์˜์—ญ์˜ ํฌ์ปค์Šค๋Š” ์‚ฌ์šฉ์ฒ˜๊ฐ€ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
112
+
113
+ ## ๋กœ์ผ€์ผ๊ณผ ์ปฌ๋ ‰์…˜
114
+
115
+ - ๋กœ์ผ€์ผ ์˜์กด: ์˜ˆ. ๋ณด์กฐ๊ธฐ์ˆ ์— ์ฝํžˆ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋ฒˆ์—ญ ํ‚ค `spinner.label.text`์—์„œ ์˜ต๋‹ˆ๋‹ค.
116
+ - ์ปฌ๋ ‰์…˜ ์œˆ๋„์ž‰: ์•„๋‹ˆ์š”. ํ•ญ๋ชฉ์€ ์ด๋ฅผ ์ด์œ  ์—†์ด ์‚ฌ์‹ค๋กœ๋งŒ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
117
+
118
+ ## ๊ธฐ๋Šฅ ์šฉ์–ด์™€ ๋‹ค๋ฅธ ์ด๋ฆ„
119
+
120
+ - ๋‹ค๋ฃจ๋Š” ๊ธฐ๋Šฅ: `indeterminate-progress`, `circular-progress`, `translatable-strings`.
121
+ - ๋‹ค๋ฅธ ์ด๋ฆ„: `spinner`, `loading spinner`, `loader`, `activity indicator`, `throbber`, `๋กœ๋”ฉ`, `์Šคํ”ผ๋„ˆ`, `๋กœ๋”ฉ ํ‘œ์‹œ`.
122
+ - ์–ดํœ˜ ์ƒํƒœ: `controlled`.