@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,42 @@
1
+ "use client";
2
+ import { mergeSynapseProps } from "./merge-props.mjs";
3
+ import { SynapseStructuralError } from "./context.mjs";
4
+ import { isReactNode, isRef } from "./react-node.mjs";
5
+ import { composeRefs } from "./refs.mjs";
6
+ import { Children, cloneElement, createElement, isValidElement } from "react";
7
+ //#region src/system/as-child.ts
8
+ function describeChildren(children) {
9
+ const array = Children.toArray(children);
10
+ if (array.length === 0) return "no children";
11
+ if (array.length > 1) return `${array.length} children`;
12
+ return "a child that is not an element";
13
+ }
14
+ function renderPart(options) {
15
+ const { componentName, partName, element, props, ref, children, defaultChildren, trailingChildren, asChild } = options;
16
+ if (!asChild) {
17
+ const elementProps = {
18
+ ...props,
19
+ ref
20
+ };
21
+ const resolved = children === void 0 ? defaultChildren : children;
22
+ return trailingChildren === void 0 ? createElement(element, elementProps, resolved) : createElement(element, elementProps, resolved, trailingChildren);
23
+ }
24
+ const array = Children.toArray(children);
25
+ const only = array.length === 1 ? array[0] : void 0;
26
+ if (only === void 0 || !isValidElement(only)) throw new SynapseStructuralError({
27
+ component: componentName,
28
+ part: partName,
29
+ reason: `with \`asChild\` must be given exactly one element child to render as; it was given ${describeChildren(children)}.`
30
+ });
31
+ const child = only;
32
+ const { children: childChildren, ref: childRef, ...childProps } = child.props;
33
+ const merged = mergeSynapseProps(props, void 0, childProps);
34
+ merged["ref"] = composeRefs(ref, isRef(childRef) ? childRef : void 0);
35
+ const resolvedChildren = childChildren === void 0 || !isReactNode(childChildren) ? defaultChildren : childChildren;
36
+ if (trailingChildren !== void 0) return cloneElement(child, merged, resolvedChildren, trailingChildren);
37
+ return resolvedChildren === void 0 ? cloneElement(child, merged) : cloneElement(child, merged, resolvedChildren);
38
+ }
39
+ //#endregion
40
+ export { renderPart };
41
+
42
+ //# sourceMappingURL=as-child.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"as-child.mjs","names":[],"sources":["../../src/system/as-child.ts"],"sourcesContent":["'use client'\n\nimport {\n Children,\n cloneElement,\n createElement,\n isValidElement,\n type ElementType,\n type ReactNode,\n type Ref,\n} from 'react'\n\nimport { SynapseStructuralError } from '#/system/context.ts'\nimport { mergeSynapseProps, type Props } from '#/system/merge-props.ts'\nimport { isReactNode, isRef } from '#/system/react-node.ts'\nimport { composeRefs } from '#/system/refs.ts'\n\nexport interface RenderPartOptions<TElement> {\n componentName: string\n partName: string\n element: ElementType\n props: Props\n ref?: Ref<TElement> | undefined\n children?: ReactNode\n defaultChildren?: ReactNode\n trailingChildren?: ReactNode\n asChild?: boolean | undefined\n}\n\nfunction describeChildren(children: ReactNode): string {\n const array = Children.toArray(children)\n if (array.length === 0) return 'no children'\n if (array.length > 1) return `${array.length} children`\n return 'a child that is not an element'\n}\n\nexport function renderPart<TElement>(options: RenderPartOptions<TElement>): ReactNode {\n const {\n componentName,\n partName,\n element,\n props,\n ref,\n children,\n defaultChildren,\n trailingChildren,\n asChild,\n } = options\n\n if (!asChild) {\n const elementProps: Record<string, unknown> = { ...props, ref }\n const resolved = children === undefined ? defaultChildren : children\n return trailingChildren === undefined\n ? createElement(element, elementProps, resolved)\n : createElement(element, elementProps, resolved, trailingChildren)\n }\n\n const array = Children.toArray(children)\n const only = array.length === 1 ? array[0] : undefined\n if (only === undefined || !isValidElement<Record<string, unknown>>(only)) {\n throw new SynapseStructuralError({\n component: componentName,\n part: partName,\n reason:\n `with \\`asChild\\` must be given exactly one element child to render as; ` +\n `it was given ${describeChildren(children)}.`,\n })\n }\n\n const child = only\n const { children: childChildren, ref: childRef, ...childProps } = child.props\n\n const merged = mergeSynapseProps(props, undefined, childProps)\n merged['ref'] = composeRefs(ref, isRef<TElement>(childRef) ? childRef : undefined)\n\n const resolvedChildren =\n childChildren === undefined || !isReactNode(childChildren) ? defaultChildren : childChildren\n\n if (trailingChildren !== undefined) {\n return cloneElement(child, merged, resolvedChildren, trailingChildren)\n }\n return resolvedChildren === undefined\n ? cloneElement(child, merged)\n : cloneElement(child, merged, resolvedChildren)\n}\n"],"mappings":";;;;;;;AA6BA,SAAS,iBAAiB,UAA6B;CACrD,MAAM,QAAQ,SAAS,QAAQ,QAAQ;CACvC,IAAI,MAAM,WAAW,GAAG,OAAO;CAC/B,IAAI,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,OAAO;CAC7C,OAAO;AACT;AAEA,SAAgB,WAAqB,SAAiD;CACpF,MAAM,EACJ,eACA,UACA,SACA,OACA,KACA,UACA,iBACA,kBACA,YACE;CAEJ,IAAI,CAAC,SAAS;EACZ,MAAM,eAAwC;GAAE,GAAG;GAAO;EAAI;EAC9D,MAAM,WAAW,aAAa,KAAA,IAAY,kBAAkB;EAC5D,OAAO,qBAAqB,KAAA,IACxB,cAAc,SAAS,cAAc,QAAQ,IAC7C,cAAc,SAAS,cAAc,UAAU,gBAAgB;CACrE;CAEA,MAAM,QAAQ,SAAS,QAAQ,QAAQ;CACvC,MAAM,OAAO,MAAM,WAAW,IAAI,MAAM,KAAK,KAAA;CAC7C,IAAI,SAAS,KAAA,KAAa,CAAC,eAAwC,IAAI,GACrE,MAAM,IAAI,uBAAuB;EAC/B,WAAW;EACX,MAAM;EACN,QACE,uFACgB,iBAAiB,QAAQ,EAAE;CAC/C,CAAC;CAGH,MAAM,QAAQ;CACd,MAAM,EAAE,UAAU,eAAe,KAAK,UAAU,GAAG,eAAe,MAAM;CAExE,MAAM,SAAS,kBAAkB,OAAO,KAAA,GAAW,UAAU;CAC7D,OAAO,SAAS,YAAY,KAAK,MAAgB,QAAQ,IAAI,WAAW,KAAA,CAAS;CAEjF,MAAM,mBACJ,kBAAkB,KAAA,KAAa,CAAC,YAAY,aAAa,IAAI,kBAAkB;CAEjF,IAAI,qBAAqB,KAAA,GACvB,OAAO,aAAa,OAAO,QAAQ,kBAAkB,gBAAgB;CAEvE,OAAO,qBAAqB,KAAA,IACxB,aAAa,OAAO,MAAM,IAC1B,aAAa,OAAO,QAAQ,gBAAgB;AAClD"}
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { createContext, useContext } from "react";
3
+ //#region src/system/context.ts
4
+ var SynapseStructuralError = class extends Error {
5
+ component;
6
+ part;
7
+ requiredRoot;
8
+ constructor(options) {
9
+ super(`[synapse] <${options.component}.${options.part}> ${options.reason}`, { cause: options.cause });
10
+ this.name = "SynapseStructuralError";
11
+ this.component = options.component;
12
+ this.part = options.part;
13
+ this.requiredRoot = options.requiredRoot ?? null;
14
+ }
15
+ };
16
+ var SynapseDefinitionError = class extends Error {
17
+ constructor(message) {
18
+ super(`[synapse] ${message}`);
19
+ this.name = "SynapseDefinitionError";
20
+ }
21
+ };
22
+ function createRootContext(componentName, rootName = "Root") {
23
+ const Context = createContext(null);
24
+ Context.displayName = `${componentName}Context`;
25
+ function usePartContext(partName) {
26
+ const value = useContext(Context);
27
+ if (value === null) throw new SynapseStructuralError({
28
+ component: componentName,
29
+ part: partName,
30
+ requiredRoot: rootName,
31
+ reason: `must be rendered inside <${componentName}.${rootName}>. A part reads its behavior state from the root's context and has none outside it.`
32
+ });
33
+ return value;
34
+ }
35
+ function useRootValue() {
36
+ return useContext(Context);
37
+ }
38
+ return {
39
+ Provider: Context.Provider,
40
+ usePartContext,
41
+ useRootValue
42
+ };
43
+ }
44
+ const contexts = /* @__PURE__ */ new WeakMap();
45
+ function rememberRootContext(component, context) {
46
+ contexts.set(component, { useRootValue: context.useRootValue });
47
+ }
48
+ function rootContextOf(component) {
49
+ return contexts.get(component) ?? null;
50
+ }
51
+ //#endregion
52
+ export { SynapseDefinitionError, SynapseStructuralError, createRootContext, rememberRootContext, rootContextOf };
53
+
54
+ //# sourceMappingURL=context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.mjs","names":[],"sources":["../../src/system/context.ts"],"sourcesContent":["'use client'\n\nimport { createContext, type Provider as ReactProvider, useContext } from 'react'\n\nimport type { Translator } from '#/provider/translations.ts'\nimport type { PresenceController } from '#/system/types.ts'\n\nexport class SynapseStructuralError extends Error {\n readonly component: string\n readonly part: string\n readonly requiredRoot: string | null\n\n constructor(options: {\n component: string\n part: string\n requiredRoot?: string | null\n reason: string\n cause?: unknown\n }) {\n super(`[synapse] <${options.component}.${options.part}> ${options.reason}`, {\n cause: options.cause,\n })\n this.name = 'SynapseStructuralError'\n this.component = options.component\n this.part = options.part\n this.requiredRoot = options.requiredRoot ?? null\n }\n}\n\nexport class SynapseDefinitionError extends Error {\n constructor(message: string) {\n super(`[synapse] ${message}`)\n this.name = 'SynapseDefinitionError'\n }\n}\n\nexport interface FieldPart {\n describes: ReadonlySet<string>\n labelTaken: boolean\n props: Readonly<Record<string, unknown>>\n}\n\nexport interface RootContextValue<TApi> {\n field?: FieldPart\n componentName: string\n rootName: string\n api: TApi\n service: unknown\n slotClasses: Readonly<Record<string, string | undefined>>\n presence: PresenceController\n translate: Translator\n}\n\nexport interface RootContext<TApi> {\n Provider: ReactProvider<RootContextValue<TApi> | null>\n useRootValue: () => RootContextValue<TApi> | null\n usePartContext: (partName: string) => RootContextValue<TApi>\n}\n\nexport function createRootContext<TApi>(\n componentName: string,\n rootName = 'Root',\n): RootContext<TApi> {\n const Context = createContext<RootContextValue<TApi> | null>(null)\n Context.displayName = `${componentName}Context`\n\n function usePartContext(partName: string): RootContextValue<TApi> {\n const value = useContext(Context)\n if (value === null) {\n throw new SynapseStructuralError({\n component: componentName,\n part: partName,\n requiredRoot: rootName,\n reason:\n `must be rendered inside <${componentName}.${rootName}>. ` +\n `A part reads its behavior state from the root's context and has none outside it.`,\n })\n }\n return value\n }\n\n function useRootValue(): RootContextValue<TApi> | null {\n return useContext(Context)\n }\n\n return { Provider: Context.Provider, usePartContext, useRootValue }\n}\n\nexport interface RootContextReader {\n useRootValue: () => RootContextValue<unknown> | null\n}\n\nconst contexts = new WeakMap<object, RootContextReader>()\n\nexport function rememberRootContext<TApi>(component: object, context: RootContext<TApi>): void {\n contexts.set(component, { useRootValue: context.useRootValue })\n}\n\nexport function rootContextOf(component: object): RootContextReader | null {\n return contexts.get(component) ?? null\n}\n"],"mappings":";;;AAOA,IAAa,yBAAb,cAA4C,MAAM;CAChD;CACA;CACA;CAEA,YAAY,SAMT;EACD,MAAM,cAAc,QAAQ,UAAU,GAAG,QAAQ,KAAK,IAAI,QAAQ,UAAU,EAC1E,OAAO,QAAQ,MACjB,CAAC;EACD,KAAK,OAAO;EACZ,KAAK,YAAY,QAAQ;EACzB,KAAK,OAAO,QAAQ;EACpB,KAAK,eAAe,QAAQ,gBAAgB;CAC9C;AACF;AAEA,IAAa,yBAAb,cAA4C,MAAM;CAChD,YAAY,SAAiB;EAC3B,MAAM,aAAa,SAAS;EAC5B,KAAK,OAAO;CACd;AACF;AAyBA,SAAgB,kBACd,eACA,WAAW,QACQ;CACnB,MAAM,UAAU,cAA6C,IAAI;CACjE,QAAQ,cAAc,GAAG,cAAc;CAEvC,SAAS,eAAe,UAA0C;EAChE,MAAM,QAAQ,WAAW,OAAO;EAChC,IAAI,UAAU,MACZ,MAAM,IAAI,uBAAuB;GAC/B,WAAW;GACX,MAAM;GACN,cAAc;GACd,QACE,4BAA4B,cAAc,GAAG,SAAS;EAE1D,CAAC;EAEH,OAAO;CACT;CAEA,SAAS,eAA8C;EACrD,OAAO,WAAW,OAAO;CAC3B;CAEA,OAAO;EAAE,UAAU,QAAQ;EAAU;EAAgB;CAAa;AACpE;AAMA,MAAM,2BAAW,IAAI,QAAmC;AAExD,SAAgB,oBAA0B,WAAmB,SAAkC;CAC7F,SAAS,IAAI,WAAW,EAAE,cAAc,QAAQ,aAAa,CAAC;AAChE;AAEA,SAAgB,cAAc,WAA6C;CACzE,OAAO,SAAS,IAAI,SAAS,KAAK;AACpC"}
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ import { devWarn } from "./dev-warn.mjs";
3
+ import { useCallback, useState } from "react";
4
+ //#region src/system/controlled.ts
5
+ function resolveControlMode(value) {
6
+ return value === void 0 ? "uncontrolled" : "controlled";
7
+ }
8
+ function conflictMessage(names) {
9
+ return `<${names.componentName}> received both \`${names.valueProp}\` and \`${names.defaultProp}\`. \`${names.valueProp}\` takes precedence and \`${names.defaultProp}\` is ignored. Supply one of them.`;
10
+ }
11
+ function modeSwitchMessage(from, to, names) {
12
+ return `<${names.componentName}> switched from ${from} to ${to}. \`${names.valueProp}\` changed between defined and undefined during the component's lifetime, which makes it stop responding. Keep \`${names.valueProp}\` defined for the whole lifetime, or use \`${names.defaultProp}\`.`;
13
+ }
14
+ function createModeTracker(names) {
15
+ let previous = null;
16
+ return {
17
+ observe(mode) {
18
+ if (previous !== null && previous !== mode) devWarn(true, modeSwitchMessage(previous, mode, names));
19
+ previous = mode;
20
+ },
21
+ get initialMode() {
22
+ return previous;
23
+ }
24
+ };
25
+ }
26
+ function useControlled(options) {
27
+ const { value, defaultValue, onChange, fallback, ...names } = options;
28
+ const mode = resolveControlMode(value);
29
+ const [tracker] = useState(() => createModeTracker(names));
30
+ tracker.observe(mode);
31
+ devWarn(value !== void 0 && defaultValue !== void 0, conflictMessage(names));
32
+ const [uncontrolled, setUncontrolled] = useState(() => defaultValue === void 0 ? fallback : defaultValue);
33
+ return {
34
+ value: value === void 0 ? uncontrolled : value,
35
+ setValue: useCallback((next) => {
36
+ if (mode === "uncontrolled") setUncontrolled(next);
37
+ onChange?.(next);
38
+ }, [mode, onChange]),
39
+ mode
40
+ };
41
+ }
42
+ //#endregion
43
+ export { conflictMessage, createModeTracker, modeSwitchMessage, resolveControlMode, useControlled };
44
+
45
+ //# sourceMappingURL=controlled.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controlled.mjs","names":[],"sources":["../../src/system/controlled.ts"],"sourcesContent":["'use client'\n\nimport { useCallback, useState } from 'react'\n\nimport { devWarn } from '#/system/dev-warn.ts'\n\nexport type ControlMode = 'controlled' | 'uncontrolled'\n\nexport function resolveControlMode(value: unknown): ControlMode {\n return value === undefined ? 'uncontrolled' : 'controlled'\n}\n\nexport interface ControlNames {\n componentName: string\n valueProp: string\n defaultProp: string\n}\n\nexport function conflictMessage(names: ControlNames): string {\n return (\n `<${names.componentName}> received both \\`${names.valueProp}\\` and ` +\n `\\`${names.defaultProp}\\`. \\`${names.valueProp}\\` takes precedence and ` +\n `\\`${names.defaultProp}\\` is ignored. Supply one of them.`\n )\n}\n\nexport function modeSwitchMessage(from: ControlMode, to: ControlMode, names: ControlNames): string {\n return (\n `<${names.componentName}> switched from ${from} to ${to}. ` +\n `\\`${names.valueProp}\\` changed between defined and undefined during the component's ` +\n `lifetime, which makes it stop responding. Keep \\`${names.valueProp}\\` defined for the ` +\n `whole lifetime, or use \\`${names.defaultProp}\\`.`\n )\n}\n\nexport interface ModeTracker {\n observe: (mode: ControlMode) => void\n readonly initialMode: ControlMode | null\n}\n\nexport function createModeTracker(names: ControlNames): ModeTracker {\n let previous: ControlMode | null = null\n return {\n observe(mode) {\n if (previous !== null && previous !== mode) {\n devWarn(true, modeSwitchMessage(previous, mode, names))\n }\n previous = mode\n },\n get initialMode() {\n return previous\n },\n }\n}\n\nexport interface ControlledOptions<T> extends ControlNames {\n value?: T | undefined\n defaultValue?: T | undefined\n onChange?: ((value: T) => void) | undefined\n fallback: T\n}\n\nexport interface ControlledResult<T> {\n value: T\n setValue: (next: T) => void\n mode: ControlMode\n}\n\nexport function useControlled<T>(options: ControlledOptions<T>): ControlledResult<T> {\n const { value, defaultValue, onChange, fallback, ...names } = options\n const mode = resolveControlMode(value)\n\n const [tracker] = useState(() => createModeTracker(names))\n tracker.observe(mode)\n\n devWarn(value !== undefined && defaultValue !== undefined, conflictMessage(names))\n\n const [uncontrolled, setUncontrolled] = useState<T>(() =>\n defaultValue === undefined ? fallback : defaultValue,\n )\n\n const resolved = value === undefined ? uncontrolled : value\n\n const setValue = useCallback(\n (next: T) => {\n if (mode === 'uncontrolled') setUncontrolled(next)\n onChange?.(next)\n },\n [mode, onChange],\n )\n\n return { value: resolved, setValue, mode }\n}\n"],"mappings":";;;;AAQA,SAAgB,mBAAmB,OAA6B;CAC9D,OAAO,UAAU,KAAA,IAAY,iBAAiB;AAChD;AAQA,SAAgB,gBAAgB,OAA6B;CAC3D,OACE,IAAI,MAAM,cAAc,oBAAoB,MAAM,UAAU,WACvD,MAAM,YAAY,QAAQ,MAAM,UAAU,4BAC1C,MAAM,YAAY;AAE3B;AAEA,SAAgB,kBAAkB,MAAmB,IAAiB,OAA6B;CACjG,OACE,IAAI,MAAM,cAAc,kBAAkB,KAAK,MAAM,GAAG,MACnD,MAAM,UAAU,mHAC+B,MAAM,UAAU,8CACxC,MAAM,YAAY;AAElD;AAOA,SAAgB,kBAAkB,OAAkC;CAClE,IAAI,WAA+B;CACnC,OAAO;EACL,QAAQ,MAAM;GACZ,IAAI,aAAa,QAAQ,aAAa,MACpC,QAAQ,MAAM,kBAAkB,UAAU,MAAM,KAAK,CAAC;GAExD,WAAW;EACb;EACA,IAAI,cAAc;GAChB,OAAO;EACT;CACF;AACF;AAeA,SAAgB,cAAiB,SAAoD;CACnF,MAAM,EAAE,OAAO,cAAc,UAAU,UAAU,GAAG,UAAU;CAC9D,MAAM,OAAO,mBAAmB,KAAK;CAErC,MAAM,CAAC,WAAW,eAAe,kBAAkB,KAAK,CAAC;CACzD,QAAQ,QAAQ,IAAI;CAEpB,QAAQ,UAAU,KAAA,KAAa,iBAAiB,KAAA,GAAW,gBAAgB,KAAK,CAAC;CAEjF,MAAM,CAAC,cAAc,mBAAmB,eACtC,iBAAiB,KAAA,IAAY,WAAW,YAC1C;CAYA,OAAO;EAAE,OAVQ,UAAU,KAAA,IAAY,eAAe;EAU5B,UART,aACd,SAAY;GACX,IAAI,SAAS,gBAAgB,gBAAgB,IAAI;GACjD,WAAW,IAAI;EACjB,GACA,CAAC,MAAM,QAAQ,CAGgB;EAAG;CAAK;AAC3C"}
@@ -0,0 +1,285 @@
1
+ "use client";
2
+ import { mergeSynapseProps, yieldAmendedName } from "./merge-props.mjs";
3
+ import { devWarn } from "./dev-warn.mjs";
4
+ import { useDirection, useTranslations } from "../provider/locale-context.mjs";
5
+ import { FIELD_STATES, useFieldContext, useLabelability } from "../shared/field-context.mjs";
6
+ import { SynapseDefinitionError, createRootContext, rememberRootContext } from "./context.mjs";
7
+ import { isRef } from "./react-node.mjs";
8
+ import { composeRefs } from "./refs.mjs";
9
+ import { renderPart } from "./as-child.mjs";
10
+ import { apiKeys, hasGetter, readGetter } from "./getters.mjs";
11
+ import { markStyledComponent, rendersStyledChild } from "./styled-component.mjs";
12
+ import { createPart, readElementSignal, renderOwnedElements, withFieldProps } from "./create-part.mjs";
13
+ import { Fragment, createElement, isValidElement, useId } from "react";
14
+ import { normalizeProps, useMachine } from "@zag-js/react";
15
+ //#region src/system/create-component.ts
16
+ const EMPTY_SLOTS = Object.freeze({});
17
+ const EMPTY_MACHINE_PROPS = Object.freeze({});
18
+ const EMPTY_GETTER_ARGS = Object.freeze({});
19
+ const TRANSLATIONS_PROP = "translations";
20
+ function createPresenceController() {
21
+ return { isPresent: () => true };
22
+ }
23
+ function getterNamesFor(entry, anatomyKey) {
24
+ if (entry === void 0) return [getterNameFor(anatomyKey)];
25
+ if (typeof entry === "string") return [entry];
26
+ return entry.candidates;
27
+ }
28
+ const capitalize = (value) => `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
29
+ const getterNameFor = (anatomyKey) => `get${capitalize(anatomyKey)}Props`;
30
+ function isLocalModule(module) {
31
+ return module.machine === null;
32
+ }
33
+ function isMachineProps(value) {
34
+ const { id, ids, getRootNode } = value;
35
+ return (id === void 0 || typeof id === "string") && (ids === void 0 || typeof ids === "object" && ids !== null) && (getRootNode === void 0 || typeof getRootNode === "function");
36
+ }
37
+ function machinePropsFor(value) {
38
+ if (isMachineProps(value)) return value;
39
+ throw new SynapseDefinitionError("machine props carry an `id`, `ids` or `getRootNode` of the wrong type, so the machine cannot be started with them.");
40
+ }
41
+ function connectedApiHook(module) {
42
+ if (isLocalModule(module)) {
43
+ const { connect } = module;
44
+ return (machineProps) => ({
45
+ service: null,
46
+ api: connect(machineProps)
47
+ });
48
+ }
49
+ const { machine, connect } = module;
50
+ return (machineProps) => {
51
+ const service = useMachine(machine, machinePropsFor(machineProps));
52
+ return {
53
+ service,
54
+ api: connect(service, normalizeProps)
55
+ };
56
+ };
57
+ }
58
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
59
+ function isSynapseComponent(value, partNames) {
60
+ const meta = value["meta"];
61
+ return typeof meta === "object" && meta !== null && partNames.every((name) => typeof value[name] === "function");
62
+ }
63
+ function applyField(field, integration, props, machineProps, machinePropNames) {
64
+ for (const state of FIELD_STATES) if (machinePropNames.has(state) && Reflect.get(props, state) === void 0) machineProps[state] = field[state];
65
+ if (integration.id === "control" && Reflect.get(props, "id") === void 0) machineProps["id"] = field.ids.control;
66
+ const suppliedIds = integration.ids?.(field.ids);
67
+ if (suppliedIds !== void 0) {
68
+ if (!machinePropNames.has("ids")) throw new SynapseDefinitionError(`a field integration supplies machine \`ids\`, but this machine accepts no \`ids\` prop.`);
69
+ const own = Reflect.get(props, "ids");
70
+ machineProps["ids"] = {
71
+ ...suppliedIds,
72
+ ...isRecord(own) ? own : {}
73
+ };
74
+ }
75
+ const ownInvalid = Reflect.get(props, "invalid");
76
+ const invalid = typeof ownInvalid === "boolean" ? ownInvalid : field.invalid;
77
+ return {
78
+ describes: /* @__PURE__ */ new Set([...integration.describe, ...integration.describeOwned ?? []]),
79
+ labelTaken: suppliedIds !== void 0 && "label" in suppliedIds,
80
+ props: {
81
+ "aria-describedby": field.describedBy,
82
+ ...invalid ? { "aria-invalid": true } : {}
83
+ }
84
+ };
85
+ }
86
+ function createComponent(definition) {
87
+ const componentName = definition.name;
88
+ const { anatomy, props: modulePropNames } = definition.module;
89
+ const useConnectedApi = connectedApiHook(definition.module);
90
+ const anatomyKeys = anatomy.keys();
91
+ const anatomyKeySet = new Set(anatomyKeys);
92
+ const rootPart = definition.rootPart;
93
+ const rootOwnedGetters = definition.rootOwnedGetters ?? [];
94
+ if (rootPart !== null && !anatomyKeySet.has(rootPart)) throw new SynapseDefinitionError(`${componentName}: rootPart "${rootPart}" is not one of the machine's anatomy parts (${anatomyKeys.join(", ")}). Pass null when the machine has no root part.`);
95
+ for (const owned of rootOwnedGetters) if (anatomyKeySet.has(owned.name)) throw new SynapseDefinitionError(`${componentName}: root-owned getter "${owned.name}" is also an anatomy part. A root-owned getter is by definition the case where no anatomy part exists.`);
96
+ const unrenderedParts = new Set(definition.unrenderedParts ?? []);
97
+ if (rootPart !== null && unrenderedParts.has(rootPart)) throw new SynapseDefinitionError(`${componentName}: rootPart "${rootPart}" is declared in \`unrenderedParts\`. Root has to render its own part or be declared context-only with \`rootPart: null\`.`);
98
+ for (const key of unrenderedParts) if (!anatomyKeySet.has(key)) throw new SynapseDefinitionError(`${componentName}: "${key}" is in \`unrenderedParts\` but is not an anatomy part (${anatomyKeys.join(", ")}).`);
99
+ const amendments = Object.entries(definition.amendBehaviorProps ?? {});
100
+ for (const [key] of amendments) {
101
+ if (!anatomyKeySet.has(key)) throw new SynapseDefinitionError(`${componentName}: "${key}" is in \`amendBehaviorProps\` but is not an anatomy part (${anatomyKeys.join(", ")}).`);
102
+ if (unrenderedParts.has(key)) throw new SynapseDefinitionError(`${componentName}: "${key}" is in \`amendBehaviorProps\` and in \`unrenderedParts\`. A part the machine ships no getter for emits nothing to correct.`);
103
+ }
104
+ const partDefinitions = anatomyKeys.filter((key) => key !== rootPart && !unrenderedParts.has(key)).map((key) => {
105
+ const partName = capitalize(key);
106
+ if (partName === "Root" || partName === "Meta") throw new SynapseDefinitionError(`${componentName}: anatomy part "${key}" collides with the factory's own "${partName}". Declare it as the rootPart instead.`);
107
+ const part = {
108
+ anatomyKey: key,
109
+ partName,
110
+ getterName: definition.getterNames?.[key] ?? getterNameFor(key),
111
+ getterProps: definition.getterProps?.[key] ?? []
112
+ };
113
+ const element = definition.elements?.[key];
114
+ if (element !== void 0) part.element = element;
115
+ const defaultContent = definition.defaultContent?.[key];
116
+ if (defaultContent !== void 0) part.defaultContent = defaultContent;
117
+ const ownedElements = definition.partOwnedGetters?.[key];
118
+ if (ownedElements !== void 0) part.ownedElements = ownedElements;
119
+ const amend = definition.amendBehaviorProps?.[key];
120
+ if (amend !== void 0) part.amend = amend;
121
+ if (definition.unstyledWhenAsChild?.includes(key) === true) part.unstyledWhenAsChild = true;
122
+ return part;
123
+ });
124
+ const context = createRootContext(componentName);
125
+ const machineProps = definition.machineProps ?? modulePropNames;
126
+ if (machineProps === void 0) throw new SynapseDefinitionError(`${componentName}: this package exports no \`props\` list, so the factory cannot tell a machine prop from a DOM attribute. Without one every prop would reach the element and the machine would receive nothing — the component would render correctly and do nothing. Supply \`machineProps\`.`);
127
+ const machinePropNames = new Set(machineProps);
128
+ const variantPropNames = new Set(definition.variantProps ?? []);
129
+ const machineTranslationKeys = Object.entries(definition.machineTranslations ?? {});
130
+ if (machinePropNames.has(TRANSLATIONS_PROP) && definition.machineTranslations === void 0) throw new SynapseDefinitionError(`${componentName}: this machine accepts \`translations\`, so whichever strings it has built in would ship as accessible names no product can override, and every accessible string must stay a product's to change. Map them with \`machineTranslations\`, or declare \`machineTranslations: null\` if none of this machine's strings are user-visible. There is no safe default: both answers are wrong for some machine, so the author who has not decided is the one to stop.`);
131
+ const useDerivedMachineProps = definition.useMachineProps ?? (() => EMPTY_MACHINE_PROPS);
132
+ const declaredGetters = /* @__PURE__ */ new Set([
133
+ ...rootOwnedGetters.map((owned) => owned.getter),
134
+ ...definition.unrenderedGetters ?? [],
135
+ ...anatomyKeys.flatMap((key) => {
136
+ const entry = definition.getterNames?.[key];
137
+ return entry === void 0 ? [] : getterNamesFor(entry, key);
138
+ }),
139
+ ...anatomyKeys.flatMap((key) => (definition.partOwnedGetters?.[key] ?? []).map((element) => element.getter))
140
+ ]);
141
+ let unrenderedCheckPassed = false;
142
+ function assertEveryGetterAccountedFor(api) {
143
+ if (unrenderedCheckPassed) return;
144
+ const unaccounted = apiKeys(api).filter((key) => /^get[A-Z]\w*Props$/.test(key)).filter((key) => !declaredGetters.has(key)).filter((key) => {
145
+ const middle = key.slice(3, -5);
146
+ const anatomyKey = `${middle.charAt(0).toLowerCase()}${middle.slice(1)}`;
147
+ return !anatomyKeySet.has(anatomyKey);
148
+ });
149
+ const wronglyDeclared = [...unrenderedParts].filter((key) => hasGetter(api, getterNameFor(key)));
150
+ if (wronglyDeclared.length > 0) throw new SynapseDefinitionError(`${componentName}: ${wronglyDeclared.join(", ")} ${wronglyDeclared.length === 1 ? "is" : "are"} declared in \`unrenderedParts\`, but the machine does connect ${wronglyDeclared.map((key) => getterNameFor(key)).join(", ")}. Remove the declaration so the part is built.`);
151
+ const missingGetters = [];
152
+ for (const key of anatomyKeys) {
153
+ if (unrenderedParts.has(key)) continue;
154
+ const names = getterNamesFor(definition.getterNames?.[key], key);
155
+ for (const name of names) if (!hasGetter(api, name)) missingGetters.push(`${key} (${name})`);
156
+ }
157
+ if (missingGetters.length > 0) throw new SynapseDefinitionError(`${componentName}: the machine connects no getter for ${missingGetters.join(", ")}. Name the real getter in \`getterNames\` if the api spells it differently, or declare the part in \`unrenderedParts\` if the machine ships none at all.`);
158
+ if (unaccounted.length > 0) throw new SynapseDefinitionError(`${componentName}: the machine exposes ${unaccounted.join(", ")}, which match no anatomy part, so nothing renders them. Declare each in \`rootOwnedGetters\` to render it from Root, or in \`unrenderedGetters\` to state that this component leaves it out on purpose.`);
159
+ unrenderedCheckPassed = true;
160
+ }
161
+ function renderRootOwned(api, field) {
162
+ return renderOwnedElements({
163
+ field,
164
+ componentName,
165
+ ownerName: "Root",
166
+ owned: rootOwnedGetters,
167
+ api,
168
+ ownerArgs: EMPTY_GETTER_ARGS
169
+ });
170
+ }
171
+ function Root(props) {
172
+ const generatedId = useId();
173
+ const direction = useDirection();
174
+ const translate = useTranslations(props.translations);
175
+ const derivedMachineProps = useDerivedMachineProps(props);
176
+ const machinePropsForService = {};
177
+ const elementProps = {};
178
+ for (const key of Object.keys(props)) {
179
+ if (key === TRANSLATIONS_PROP) continue;
180
+ if (variantPropNames.has(key)) continue;
181
+ const value = Reflect.get(props, key);
182
+ if (machinePropNames.has(key)) machinePropsForService[key] = value;
183
+ else elementProps[key] = value;
184
+ }
185
+ if (machinePropsForService["id"] === void 0) machinePropsForService["id"] = generatedId;
186
+ if (machinePropNames.has("dir")) {
187
+ devWarn(Reflect.get(props, "dir") !== void 0, `<${componentName}.Root> was given a \`dir\` prop. Direction comes from SynapseProvider's locale, so a component never takes one of its own; this one is ignored.`);
188
+ machinePropsForService["dir"] = direction;
189
+ }
190
+ if (machineTranslationKeys.length > 0 && machinePropNames.has(TRANSLATIONS_PROP)) {
191
+ const machineTranslations = {};
192
+ for (const [machineKey, entry] of machineTranslationKeys) machineTranslations[machineKey] = typeof entry === "function" ? entry(translate) : translate(entry);
193
+ machinePropsForService[TRANSLATIONS_PROP] = machineTranslations;
194
+ }
195
+ for (const key of Object.keys(derivedMachineProps)) {
196
+ machinePropsForService[key] = derivedMachineProps[key];
197
+ delete elementProps[key];
198
+ }
199
+ const field = useFieldContext();
200
+ const integration = field === null ? void 0 : definition.field;
201
+ useLabelability(integration === void 0 ? null : field, integration?.labelable ?? true);
202
+ const fieldPart = field === null || integration === void 0 ? void 0 : applyField(field, integration, props, machinePropsForService, machinePropNames);
203
+ const { service, api } = useConnectedApi(machinePropsForService);
204
+ assertEveryGetterAccountedFor(api);
205
+ const slotClasses = definition.slots ? definition.slots(props) : EMPTY_SLOTS;
206
+ const contextValue = {
207
+ componentName,
208
+ rootName: "Root",
209
+ api,
210
+ service,
211
+ slotClasses,
212
+ presence: createPresenceController(),
213
+ translate,
214
+ ...fieldPart === void 0 ? {} : { field: fieldPart }
215
+ };
216
+ const { asChild, children, ref, ...rest } = elementProps;
217
+ const rootOwned = rootOwnedGetters.length > 0 ? renderRootOwned(api, fieldPart) : void 0;
218
+ if (rootPart === null) {
219
+ devWarn(asChild === true, `<${componentName}.Root> renders no element, so \`asChild\` has nothing to substitute.`);
220
+ devWarn(rest["className"] !== void 0 || rest["style"] !== void 0 || ref !== void 0, `<${componentName}.Root> renders no element, so \`className\`, \`style\` and \`ref\` have nothing to attach to. Style a part instead.`);
221
+ const provided = createElement(context.Provider, { value: contextValue }, rootOwned === void 0 ? children : createElement(Fragment, null, rootOwned, children));
222
+ return definition.wrapRoot === void 0 ? provided : definition.wrapRoot(api, provided);
223
+ }
224
+ const getter = readGetter(api, getterNameFor(rootPart));
225
+ if (getter === void 0) throw new SynapseDefinitionError(`${componentName}: rootPart "${rootPart}" has no \`${getterNameFor(rootPart)}\` on the connected api.`);
226
+ const slotClass = rendersStyledChild(asChild === true, children) ? void 0 : slotClasses[rootPart];
227
+ const styleProps = slotClass === void 0 ? void 0 : { className: slotClass };
228
+ const rootDefaultContent = definition.defaultContent?.[rootPart];
229
+ const defaultChildren = rootDefaultContent !== void 0 && (children === void 0 || asChild === true) ? rootDefaultContent(api, translate, EMPTY_GETTER_ARGS) : void 0;
230
+ const rootAmend = definition.amendBehaviorProps?.[rootPart];
231
+ const rawRootProps = getter();
232
+ const rootBehaviorProps = rootAmend === void 0 ? rawRootProps : {
233
+ ...rawRootProps,
234
+ ...yieldAmendedName(rawRootProps, rootAmend(rawRootProps, api, EMPTY_GETTER_ARGS, translate, children), [rest, asChild === true && isValidElement(children) ? children.props : void 0])
235
+ };
236
+ const fieldedRootProps = withFieldProps(fieldPart, rootPart, rootBehaviorProps);
237
+ const { element: derivedRoot, signal: rootSignal } = readElementSignal(fieldedRootProps);
238
+ devWarn(definition.rootElement !== void 0 && definition.rootElement !== derivedRoot && (rootSignal === "button-type" || rootSignal === "label-for"), `<${componentName}.Root> is declared as \`${String(definition.rootElement)}\` but its machine emits ${rootSignal === "button-type" ? "`type=\"button\"`" : "`htmlFor`"}, which belongs on a \`${String(derivedRoot)}\`.`);
239
+ const element = renderPart({
240
+ componentName,
241
+ partName: "Root",
242
+ element: definition.rootElement ?? derivedRoot,
243
+ props: mergeSynapseProps(fieldedRootProps, styleProps, rest),
244
+ ref: composeRefs(isRef(fieldedRootProps["ref"]) ? fieldedRootProps["ref"] : void 0, isRef(ref) ? ref : void 0),
245
+ children,
246
+ defaultChildren,
247
+ trailingChildren: rootOwned,
248
+ asChild
249
+ });
250
+ const provided = createElement(context.Provider, { value: contextValue }, element);
251
+ return definition.wrapRoot === void 0 ? provided : definition.wrapRoot(api, provided);
252
+ }
253
+ Root.displayName = `${componentName}.Root`;
254
+ markStyledComponent(Root);
255
+ const parts = {};
256
+ for (const part of partDefinitions) parts[part.partName] = createPart({
257
+ componentName,
258
+ context,
259
+ part
260
+ });
261
+ const meta = {
262
+ componentName,
263
+ anatomyParts: anatomyKeys,
264
+ partNames: ["Root", ...partDefinitions.map((part) => part.partName)],
265
+ rootPart,
266
+ rootOwnedGetters: rootOwnedGetters.map((owned) => owned.name),
267
+ unrenderedParts: [...unrenderedParts],
268
+ amendedParts: [...rootPart !== null && definition.amendBehaviorProps?.[rootPart] !== void 0 ? ["Root"] : [], ...partDefinitions.filter((part) => part.amend !== void 0).map((part) => part.partName)]
269
+ };
270
+ const component = {
271
+ ...parts,
272
+ Root,
273
+ meta
274
+ };
275
+ if (!isSynapseComponent(component, meta.partNames)) throw new SynapseDefinitionError(`${componentName}: a part was not built.`);
276
+ rememberRootContext(component, context);
277
+ return component;
278
+ }
279
+ function defineComponent() {
280
+ return (definition) => createComponent(definition);
281
+ }
282
+ //#endregion
283
+ export { SynapseDefinitionError, createComponent, createPresenceController, defineComponent, getterNameFor };
284
+
285
+ //# sourceMappingURL=create-component.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-component.mjs","names":[],"sources":["../../src/system/create-component.ts"],"sourcesContent":["'use client'\n\nimport type { Machine, MachineSchema, Service } from '@zag-js/core'\nimport { normalizeProps, useMachine } from '@zag-js/react'\nimport { createElement, Fragment, isValidElement, useId, type ReactNode, type Ref } from 'react'\n\nimport { useDirection, useTranslations } from '#/provider/locale-context.ts'\nimport type { TranslationKey, Translator } from '#/provider/translations.ts'\nimport {\n FIELD_STATES,\n useFieldContext,\n useLabelability,\n type FieldContextValue,\n type FieldIds,\n} from '#/shared/field-context.ts'\nimport { renderPart } from '#/system/as-child.ts'\nimport {\n createRootContext,\n rememberRootContext,\n SynapseDefinitionError,\n type FieldPart,\n type RootContextValue,\n} from '#/system/context.ts'\nimport {\n createPart,\n readElementSignal,\n renderOwnedElements,\n withFieldProps,\n type PartDefinition,\n} from '#/system/create-part.ts'\nimport { devWarn } from '#/system/dev-warn.ts'\nimport { apiKeys, hasGetter, readGetter } from '#/system/getters.ts'\nimport { mergeSynapseProps, type Props, yieldAmendedName } from '#/system/merge-props.ts'\nimport { isRef } from '#/system/react-node.ts'\nimport { composeRefs } from '#/system/refs.ts'\nimport { markStyledComponent, rendersStyledChild } from '#/system/styled-component.ts'\nimport type {\n AnatomyContract,\n GetterName,\n BehaviorAmendment,\n BehaviorApi,\n OwnedElement,\n DefaultContent,\n PartComponent,\n PartElement,\n PresenceController,\n SynapseComponent,\n SynapseComponentMeta,\n DomAttributes,\n PartOwnProps,\n RootOwnProps,\n} from '#/system/types.ts'\n\nexport type RootOwnedElement<TApi> = OwnedElement<TApi>\n\nexport interface ZagModule<\n TApi extends BehaviorApi,\n TKey extends string,\n TSchema extends MachineSchema = MachineSchema,\n> {\n machine: Machine<TSchema>\n connect: (service: Service<TSchema>, normalize: typeof normalizeProps) => TApi\n anatomy: AnatomyContract<TKey>\n props?: readonly string[]\n}\n\nexport interface LocalModule<TApi extends BehaviorApi, TKey extends string> {\n machine: null\n connect: (props: Readonly<Record<string, unknown>>) => TApi\n anatomy: AnatomyContract<TKey>\n props: readonly string[]\n}\n\nexport type MachineModule<\n TApi extends BehaviorApi,\n TKey extends string,\n TSchema extends MachineSchema = MachineSchema,\n> = ZagModule<TApi, TKey, TSchema> | LocalModule<TApi, TKey>\n\nexport interface ComponentDefinition<\n TApi extends BehaviorApi,\n TKey extends string,\n TRootPart extends TKey | null,\n TRootProps,\n TUnrendered extends TKey = never,\n TSchema extends MachineSchema = MachineSchema,\n> {\n name: string\n module: MachineModule<TApi, TKey, TSchema>\n rootPart: TRootPart\n rootElement?: PartElement\n elements?: Partial<Record<TKey, PartElement>>\n getterProps?: Partial<Record<TKey, readonly string[]>>\n\n getterNames?: Partial<Record<TKey, GetterName>>\n machineProps?: readonly string[]\n useMachineProps?: (props: TRootProps) => Record<string, unknown>\n\n machineTranslations?: Readonly<Record<string, MachineTranslation>> | null\n\n variantProps?: readonly string[]\n\n defaultContent?: Partial<Record<TKey, DefaultContent<TApi>>>\n\n slots?: (props: TRootProps) => Record<string, string>\n rootOwnedGetters?: readonly OwnedElement<TApi>[]\n\n partOwnedGetters?: Partial<Record<TKey, readonly OwnedElement<TApi>[]>>\n\n amendBehaviorProps?: Partial<Record<TKey, BehaviorAmendment<TApi>>>\n\n /**\n * `asChild`로 다른 요소에 얹힐 때 recipe 슬롯 클래스를 입히지 않는 part.\n * 사용처의 요소가 모양을 소유하고 part는 동작만 더하는 경우(예: Tooltip.Trigger)에 씁니다.\n */\n unstyledWhenAsChild?: readonly TKey[]\n\n unrenderedParts?: readonly TUnrendered[]\n\n unrenderedGetters?: readonly string[]\n\n field?: FieldIntegration<TKey>\n\n wrapRoot?: (api: TApi, node: ReactNode) => ReactNode\n}\n\nexport interface FieldIntegration<TKey extends string> {\n ids?: (field: FieldIds) => Record<string, unknown>\n id?: 'control'\n describe: readonly TKey[]\n describeOwned?: readonly string[]\n labelable?: boolean\n}\n\nexport type MachineTranslation = TranslationKey | ((t: Translator) => unknown)\n\nexport { SynapseDefinitionError }\n\ntype RootRuntimeProps = Record<string, unknown> & {\n asChild?: boolean\n children?: ReactNode\n ref?: Ref<HTMLElement>\n}\n\nconst EMPTY_SLOTS: Readonly<Record<string, string | undefined>> = Object.freeze({})\n\nconst EMPTY_MACHINE_PROPS: Readonly<Record<string, unknown>> = Object.freeze({})\n\nconst EMPTY_GETTER_ARGS: Readonly<Record<string, unknown>> = Object.freeze({})\n\nconst TRANSLATIONS_PROP = 'translations'\n\nexport function createPresenceController(): PresenceController {\n return { isPresent: () => true }\n}\n\nfunction getterNamesFor(entry: GetterName | undefined, anatomyKey: string): readonly string[] {\n if (entry === undefined) return [getterNameFor(anatomyKey)]\n if (typeof entry === 'string') return [entry]\n return entry.candidates\n}\n\nconst capitalize = (value: string): string => `${value.charAt(0).toUpperCase()}${value.slice(1)}`\n\nexport const getterNameFor = (anatomyKey: string): string => `get${capitalize(anatomyKey)}Props`\n\ntype ConnectedApiHook<TApi> = (machineProps: Record<string, unknown>) => {\n service: unknown\n api: TApi\n}\n\nfunction isLocalModule<\n TApi extends BehaviorApi,\n TKey extends string,\n TSchema extends MachineSchema,\n>(module: MachineModule<TApi, TKey, TSchema>): module is LocalModule<TApi, TKey> {\n return module.machine === null\n}\n\nfunction isMachineProps<TSchema extends MachineSchema>(\n value: Record<string, unknown>,\n): value is Record<string, unknown> & Partial<TSchema['props']> {\n const { id, ids, getRootNode } = value\n return (\n (id === undefined || typeof id === 'string') &&\n (ids === undefined || (typeof ids === 'object' && ids !== null)) &&\n (getRootNode === undefined || typeof getRootNode === 'function')\n )\n}\n\nfunction machinePropsFor<TSchema extends MachineSchema>(\n value: Record<string, unknown>,\n): Partial<TSchema['props']> {\n if (isMachineProps<TSchema>(value)) return value\n throw new SynapseDefinitionError(\n 'machine props carry an `id`, `ids` or `getRootNode` of the wrong type, so the machine ' +\n 'cannot be started with them.',\n )\n}\n\nfunction connectedApiHook<\n TApi extends BehaviorApi,\n TKey extends string,\n TSchema extends MachineSchema,\n>(module: MachineModule<TApi, TKey, TSchema>): ConnectedApiHook<TApi> {\n if (isLocalModule(module)) {\n const { connect } = module\n return (machineProps) => ({ service: null, api: connect(machineProps) })\n }\n const { machine, connect } = module\n return (machineProps) => {\n const service = useMachine(machine, machinePropsFor<TSchema>(machineProps))\n return { service, api: connect(service, normalizeProps) }\n }\n}\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nfunction isSynapseComponent<\n TKey extends string,\n TRootPart extends TKey | null,\n TRootProps,\n TUnrendered extends TKey,\n>(\n value: Record<string, unknown>,\n partNames: readonly string[],\n): value is Record<string, unknown> & SynapseComponent<TKey, TRootPart, TRootProps, TUnrendered> {\n const meta = value['meta']\n return (\n typeof meta === 'object' &&\n meta !== null &&\n partNames.every((name) => typeof value[name] === 'function')\n )\n}\n\nfunction applyField<TKey extends string>(\n field: FieldContextValue,\n integration: FieldIntegration<TKey>,\n props: object,\n machineProps: Record<string, unknown>,\n machinePropNames: ReadonlySet<string>,\n): FieldPart {\n for (const state of FIELD_STATES) {\n if (machinePropNames.has(state) && Reflect.get(props, state) === undefined)\n machineProps[state] = field[state]\n }\n\n if (integration.id === 'control' && Reflect.get(props, 'id') === undefined) {\n machineProps['id'] = field.ids.control\n }\n\n const suppliedIds = integration.ids?.(field.ids)\n if (suppliedIds !== undefined) {\n if (!machinePropNames.has('ids')) {\n throw new SynapseDefinitionError(\n `a field integration supplies machine \\`ids\\`, but this machine accepts no \\`ids\\` prop.`,\n )\n }\n const own: unknown = Reflect.get(props, 'ids')\n machineProps['ids'] = { ...suppliedIds, ...(isRecord(own) ? own : {}) }\n }\n\n const ownInvalid: unknown = Reflect.get(props, 'invalid')\n const invalid = typeof ownInvalid === 'boolean' ? ownInvalid : field.invalid\n return {\n describes: new Set<string>([...integration.describe, ...(integration.describeOwned ?? [])]),\n labelTaken: suppliedIds !== undefined && 'label' in suppliedIds,\n props: {\n 'aria-describedby': field.describedBy,\n ...(invalid ? { 'aria-invalid': true } : {}),\n },\n }\n}\n\nexport function createComponent<\n TApi extends BehaviorApi,\n TKey extends string,\n const TRootPart extends TKey | null,\n TRootProps = Record<string, unknown>,\n const TUnrendered extends TKey = never,\n TSchema extends MachineSchema = MachineSchema,\n>(\n definition: ComponentDefinition<TApi, TKey, TRootPart, TRootProps, TUnrendered, TSchema>,\n): SynapseComponent<TKey, TRootPart, TRootProps, TUnrendered> {\n const componentName = definition.name\n const { anatomy, props: modulePropNames } = definition.module\n const useConnectedApi = connectedApiHook(definition.module)\n const anatomyKeys = anatomy.keys()\n const anatomyKeySet: ReadonlySet<string> = new Set<string>(anatomyKeys)\n const rootPart = definition.rootPart\n const rootOwnedGetters = definition.rootOwnedGetters ?? []\n\n if (rootPart !== null && !anatomyKeySet.has(rootPart)) {\n throw new SynapseDefinitionError(\n `${componentName}: rootPart \"${rootPart}\" is not one of the machine's anatomy parts ` +\n `(${anatomyKeys.join(', ')}). Pass null when the machine has no root part.`,\n )\n }\n\n for (const owned of rootOwnedGetters) {\n if (anatomyKeySet.has(owned.name)) {\n throw new SynapseDefinitionError(\n `${componentName}: root-owned getter \"${owned.name}\" is also an anatomy part. A ` +\n `root-owned getter is by definition the case where no anatomy part exists.`,\n )\n }\n }\n\n const unrenderedParts = new Set<string>(definition.unrenderedParts ?? [])\n\n if (rootPart !== null && unrenderedParts.has(rootPart)) {\n throw new SynapseDefinitionError(\n `${componentName}: rootPart \"${rootPart}\" is declared in \\`unrenderedParts\\`. Root has ` +\n `to render its own part or be declared context-only with \\`rootPart: null\\`.`,\n )\n }\n\n for (const key of unrenderedParts) {\n if (!anatomyKeySet.has(key)) {\n throw new SynapseDefinitionError(\n `${componentName}: \"${key}\" is in \\`unrenderedParts\\` but is not an anatomy part ` +\n `(${anatomyKeys.join(', ')}).`,\n )\n }\n }\n\n const amendments = Object.entries(definition.amendBehaviorProps ?? {})\n\n for (const [key] of amendments) {\n if (!anatomyKeySet.has(key)) {\n throw new SynapseDefinitionError(\n `${componentName}: \"${key}\" is in \\`amendBehaviorProps\\` but is not an anatomy part ` +\n `(${anatomyKeys.join(', ')}).`,\n )\n }\n if (unrenderedParts.has(key)) {\n throw new SynapseDefinitionError(\n `${componentName}: \"${key}\" is in \\`amendBehaviorProps\\` and in \\`unrenderedParts\\`. ` +\n `A part the machine ships no getter for emits nothing to correct.`,\n )\n }\n }\n\n const partDefinitions: PartDefinition<TApi>[] = anatomyKeys\n .filter((key) => key !== rootPart && !unrenderedParts.has(key))\n .map((key) => {\n const partName = capitalize(key)\n if (partName === 'Root' || partName === 'Meta') {\n throw new SynapseDefinitionError(\n `${componentName}: anatomy part \"${key}\" collides with the factory's own ` +\n `\"${partName}\". Declare it as the rootPart instead.`,\n )\n }\n const part: PartDefinition<TApi> = {\n anatomyKey: key,\n partName,\n getterName: definition.getterNames?.[key] ?? getterNameFor(key),\n getterProps: definition.getterProps?.[key] ?? [],\n }\n const element = definition.elements?.[key]\n if (element !== undefined) part.element = element\n const defaultContent = definition.defaultContent?.[key]\n if (defaultContent !== undefined) part.defaultContent = defaultContent\n const ownedElements = definition.partOwnedGetters?.[key]\n if (ownedElements !== undefined) part.ownedElements = ownedElements\n const amend = definition.amendBehaviorProps?.[key]\n if (amend !== undefined) part.amend = amend\n if (definition.unstyledWhenAsChild?.includes(key) === true) part.unstyledWhenAsChild = true\n return part\n })\n\n const context = createRootContext<TApi>(componentName)\n const machineProps = definition.machineProps ?? modulePropNames\n if (machineProps === undefined) {\n throw new SynapseDefinitionError(\n `${componentName}: this package exports no \\`props\\` list, so the factory cannot tell a ` +\n `machine prop from a DOM attribute. Without one every prop would reach the element and ` +\n `the machine would receive nothing — the component would render correctly and do ` +\n `nothing. Supply \\`machineProps\\`.`,\n )\n }\n const machinePropNames = new Set<string>(machineProps)\n const variantPropNames = new Set<string>(definition.variantProps ?? [])\n const machineTranslationKeys = Object.entries(definition.machineTranslations ?? {})\n\n if (machinePropNames.has(TRANSLATIONS_PROP) && definition.machineTranslations === undefined) {\n throw new SynapseDefinitionError(\n `${componentName}: this machine accepts \\`translations\\`, so whichever strings it has ` +\n `built in would ship as accessible names no product can override, and every accessible ` +\n `string must stay a product's to change. Map them with \\`machineTranslations\\`, or declare ` +\n `\\`machineTranslations: null\\` if none of this machine's strings are user-visible. ` +\n `There is no safe default: both answers are wrong for some machine, so the author who ` +\n `has not decided is the one to stop.`,\n )\n }\n\n const useDerivedMachineProps: (props: TRootProps) => Record<string, unknown> =\n definition.useMachineProps ?? (() => EMPTY_MACHINE_PROPS)\n\n const declaredGetters = new Set<string>([\n ...rootOwnedGetters.map((owned) => owned.getter),\n ...(definition.unrenderedGetters ?? []),\n ...anatomyKeys.flatMap((key) => {\n const entry = definition.getterNames?.[key]\n return entry === undefined ? [] : getterNamesFor(entry, key)\n }),\n ...anatomyKeys.flatMap((key) =>\n (definition.partOwnedGetters?.[key] ?? []).map((element) => element.getter),\n ),\n ])\n\n let unrenderedCheckPassed = false\n\n function assertEveryGetterAccountedFor(api: TApi): void {\n if (unrenderedCheckPassed) return\n const unaccounted = apiKeys(api)\n .filter((key) => /^get[A-Z]\\w*Props$/.test(key))\n .filter((key) => !declaredGetters.has(key))\n .filter((key) => {\n const middle = key.slice(3, -5)\n const anatomyKey = `${middle.charAt(0).toLowerCase()}${middle.slice(1)}`\n return !anatomyKeySet.has(anatomyKey)\n })\n\n const wronglyDeclared = [...unrenderedParts].filter((key) => hasGetter(api, getterNameFor(key)))\n if (wronglyDeclared.length > 0) {\n throw new SynapseDefinitionError(\n `${componentName}: ${wronglyDeclared.join(', ')} ${\n wronglyDeclared.length === 1 ? 'is' : 'are'\n } declared in \\`unrenderedParts\\`, but the machine does connect ` +\n `${wronglyDeclared.map((key) => getterNameFor(key)).join(', ')}. Remove the ` +\n `declaration so the part is built.`,\n )\n }\n\n const missingGetters: string[] = []\n for (const key of anatomyKeys) {\n if (unrenderedParts.has(key)) continue\n const names = getterNamesFor(definition.getterNames?.[key], key)\n for (const name of names) {\n if (!hasGetter(api, name)) {\n missingGetters.push(`${key} (${name})`)\n }\n }\n }\n if (missingGetters.length > 0) {\n throw new SynapseDefinitionError(\n `${componentName}: the machine connects no getter for ${missingGetters.join(', ')}. ` +\n `Name the real getter in \\`getterNames\\` if the api spells it differently, or ` +\n `declare the part in \\`unrenderedParts\\` if the machine ships none at all.`,\n )\n }\n\n if (unaccounted.length > 0) {\n throw new SynapseDefinitionError(\n `${componentName}: the machine exposes ${unaccounted.join(', ')}, which match no ` +\n `anatomy part, so nothing renders them. Declare each in \\`rootOwnedGetters\\` to ` +\n `render it from Root, or in \\`unrenderedGetters\\` to state that this component ` +\n `leaves it out on purpose.`,\n )\n }\n unrenderedCheckPassed = true\n }\n\n function renderRootOwned(api: TApi, field: FieldPart | undefined): ReactNode[] {\n return renderOwnedElements({\n field,\n componentName,\n ownerName: 'Root',\n owned: rootOwnedGetters,\n api,\n ownerArgs: EMPTY_GETTER_ARGS,\n })\n }\n\n function Root(\n props: TRootProps & RootOwnProps & PartOwnProps<HTMLElement> & DomAttributes,\n ): ReactNode {\n const generatedId = useId()\n\n const direction = useDirection()\n const translate = useTranslations(props.translations)\n const derivedMachineProps = useDerivedMachineProps(props)\n\n const machinePropsForService: Record<string, unknown> = {}\n const elementProps: RootRuntimeProps = {}\n for (const key of Object.keys(props)) {\n if (key === TRANSLATIONS_PROP) continue\n if (variantPropNames.has(key)) continue\n const value: unknown = Reflect.get(props, key)\n if (machinePropNames.has(key)) machinePropsForService[key] = value\n else elementProps[key] = value\n }\n if (machinePropsForService['id'] === undefined) machinePropsForService['id'] = generatedId\n\n if (machinePropNames.has('dir')) {\n devWarn(\n Reflect.get(props, 'dir') !== undefined,\n `<${componentName}.Root> was given a \\`dir\\` prop. Direction comes from ` +\n `SynapseProvider's locale, so a component never takes one of its own; this ` +\n `one is ignored.`,\n )\n machinePropsForService['dir'] = direction\n }\n\n if (machineTranslationKeys.length > 0 && machinePropNames.has(TRANSLATIONS_PROP)) {\n const machineTranslations: Record<string, unknown> = {}\n for (const [machineKey, entry] of machineTranslationKeys) {\n machineTranslations[machineKey] =\n typeof entry === 'function' ? entry(translate) : translate(entry)\n }\n machinePropsForService[TRANSLATIONS_PROP] = machineTranslations\n }\n\n for (const key of Object.keys(derivedMachineProps)) {\n machinePropsForService[key] = derivedMachineProps[key]\n delete elementProps[key]\n }\n\n const field = useFieldContext()\n const integration = field === null ? undefined : definition.field\n useLabelability(integration === undefined ? null : field, integration?.labelable ?? true)\n const fieldPart =\n field === null || integration === undefined\n ? undefined\n : applyField(field, integration, props, machinePropsForService, machinePropNames)\n\n const { service, api } = useConnectedApi(machinePropsForService)\n assertEveryGetterAccountedFor(api)\n\n const slotClasses: Readonly<Record<string, string | undefined>> = definition.slots\n ? definition.slots(props)\n : EMPTY_SLOTS\n\n const contextValue: RootContextValue<TApi> = {\n componentName,\n rootName: 'Root',\n api,\n service,\n slotClasses,\n presence: createPresenceController(),\n translate,\n ...(fieldPart === undefined ? {} : { field: fieldPart }),\n }\n\n const { asChild, children, ref, ...rest } = elementProps\n const rootOwned = rootOwnedGetters.length > 0 ? renderRootOwned(api, fieldPart) : undefined\n\n if (rootPart === null) {\n devWarn(\n asChild === true,\n `<${componentName}.Root> renders no element, so \\`asChild\\` has nothing to substitute.`,\n )\n devWarn(\n rest['className'] !== undefined || rest['style'] !== undefined || ref !== undefined,\n `<${componentName}.Root> renders no element, so \\`className\\`, \\`style\\` and \\`ref\\` ` +\n `have nothing to attach to. Style a part instead.`,\n )\n const provided = createElement(\n context.Provider,\n { value: contextValue },\n rootOwned === undefined ? children : createElement(Fragment, null, rootOwned, children),\n )\n return definition.wrapRoot === undefined ? provided : definition.wrapRoot(api, provided)\n }\n\n const getter = readGetter(api, getterNameFor(rootPart))\n if (getter === undefined) {\n throw new SynapseDefinitionError(\n `${componentName}: rootPart \"${rootPart}\" has no \\`${getterNameFor(rootPart)}\\` on the ` +\n `connected api.`,\n )\n }\n\n const slotClass = rendersStyledChild(asChild === true, children)\n ? undefined\n : slotClasses[rootPart]\n const styleProps: Props | undefined =\n slotClass === undefined ? undefined : { className: slotClass }\n\n const rootDefaultContent = definition.defaultContent?.[rootPart]\n const defaultChildren =\n rootDefaultContent !== undefined && (children === undefined || asChild === true)\n ? rootDefaultContent(api, translate, EMPTY_GETTER_ARGS)\n : undefined\n\n const rootAmend = definition.amendBehaviorProps?.[rootPart]\n const rawRootProps = getter()\n const rootBehaviorProps =\n rootAmend === undefined\n ? rawRootProps\n : {\n ...rawRootProps,\n ...yieldAmendedName(\n rawRootProps,\n rootAmend(rawRootProps, api, EMPTY_GETTER_ARGS, translate, children),\n [\n rest,\n asChild === true && isValidElement<Props>(children) ? children.props : undefined,\n ],\n ),\n }\n const fieldedRootProps = withFieldProps(fieldPart, rootPart, rootBehaviorProps)\n const { element: derivedRoot, signal: rootSignal } = readElementSignal(fieldedRootProps)\n\n devWarn(\n definition.rootElement !== undefined &&\n definition.rootElement !== derivedRoot &&\n (rootSignal === 'button-type' || rootSignal === 'label-for'),\n `<${componentName}.Root> is declared as \\`${String(definition.rootElement)}\\` but its ` +\n `machine emits ${rootSignal === 'button-type' ? '`type=\"button\"`' : '`htmlFor`'}, ` +\n `which belongs on a \\`${String(derivedRoot)}\\`.`,\n )\n\n const element = renderPart({\n componentName,\n partName: 'Root',\n element: definition.rootElement ?? derivedRoot,\n props: mergeSynapseProps(fieldedRootProps, styleProps, rest),\n ref: composeRefs(\n isRef<HTMLElement>(fieldedRootProps['ref']) ? fieldedRootProps['ref'] : undefined,\n isRef<HTMLElement>(ref) ? ref : undefined,\n ),\n children,\n defaultChildren,\n trailingChildren: rootOwned,\n asChild,\n })\n\n const provided = createElement(context.Provider, { value: contextValue }, element)\n return definition.wrapRoot === undefined ? provided : definition.wrapRoot(api, provided)\n }\n\n Root.displayName = `${componentName}.Root`\n markStyledComponent(Root)\n\n const parts: Record<string, PartComponent<HTMLElement, Record<string, unknown>>> = {}\n for (const part of partDefinitions) {\n parts[part.partName] = createPart({ componentName, context, part })\n }\n\n const meta: SynapseComponentMeta = {\n componentName,\n anatomyParts: anatomyKeys,\n partNames: ['Root', ...partDefinitions.map((part) => part.partName)],\n rootPart,\n rootOwnedGetters: rootOwnedGetters.map((owned) => owned.name),\n unrenderedParts: [...unrenderedParts],\n amendedParts: [\n ...(rootPart !== null && definition.amendBehaviorProps?.[rootPart] !== undefined\n ? ['Root']\n : []),\n ...partDefinitions.filter((part) => part.amend !== undefined).map((part) => part.partName),\n ],\n }\n\n const component: Record<string, unknown> = { ...parts, Root, meta }\n if (!isSynapseComponent<TKey, TRootPart, TRootProps, TUnrendered>(component, meta.partNames)) {\n throw new SynapseDefinitionError(`${componentName}: a part was not built.`)\n }\n\n rememberRootContext(component, context)\n\n return component\n}\n\nexport function defineComponent<TRootProps>() {\n return <\n TApi extends BehaviorApi,\n TKey extends string,\n const TRootPart extends TKey | null,\n const TUnrendered extends TKey = never,\n TSchema extends MachineSchema = MachineSchema,\n >(\n definition: ComponentDefinition<TApi, TKey, TRootPart, TRootProps, TUnrendered, TSchema>,\n ): SynapseComponent<TKey, TRootPart, TRootProps, TUnrendered> => createComponent(definition)\n}\n"],"mappings":"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"}