@satoshibits/react-json-schema-builder 1.0.1 → 1.0.3

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 (441) hide show
  1. package/dist/index.cjs10.js +1 -1
  2. package/dist/index.cjs10.js.map +1 -1
  3. package/dist/index.cjs100.js +1 -1
  4. package/dist/index.cjs100.js.map +1 -1
  5. package/dist/index.cjs101.js +1 -38
  6. package/dist/index.cjs101.js.map +1 -1
  7. package/dist/index.cjs102.js +1 -1
  8. package/dist/index.cjs102.js.map +1 -1
  9. package/dist/index.cjs103.js +1 -1
  10. package/dist/index.cjs103.js.map +1 -1
  11. package/dist/index.cjs11.js +1 -1
  12. package/dist/index.cjs11.js.map +1 -1
  13. package/dist/index.cjs12.js +1 -1
  14. package/dist/index.cjs12.js.map +1 -1
  15. package/dist/index.cjs13.js +1 -1
  16. package/dist/index.cjs13.js.map +1 -1
  17. package/dist/index.cjs14.js +1 -1
  18. package/dist/index.cjs14.js.map +1 -1
  19. package/dist/index.cjs15.js +1 -1
  20. package/dist/index.cjs15.js.map +1 -1
  21. package/dist/index.cjs16.js +1 -1
  22. package/dist/index.cjs16.js.map +1 -1
  23. package/dist/index.cjs17.js +1 -1
  24. package/dist/index.cjs17.js.map +1 -1
  25. package/dist/index.cjs18.js +1 -1
  26. package/dist/index.cjs18.js.map +1 -1
  27. package/dist/index.cjs19.js +1 -1
  28. package/dist/index.cjs19.js.map +1 -1
  29. package/dist/index.cjs2.js +1 -1
  30. package/dist/index.cjs2.js.map +1 -1
  31. package/dist/index.cjs20.js +1 -1
  32. package/dist/index.cjs20.js.map +1 -1
  33. package/dist/index.cjs21.js +1 -1
  34. package/dist/index.cjs21.js.map +1 -1
  35. package/dist/index.cjs22.js +6 -1
  36. package/dist/index.cjs22.js.map +1 -1
  37. package/dist/index.cjs23.js +2 -2
  38. package/dist/index.cjs23.js.map +1 -1
  39. package/dist/index.cjs24.js +2 -2
  40. package/dist/index.cjs24.js.map +1 -1
  41. package/dist/index.cjs25.js +2 -2
  42. package/dist/index.cjs25.js.map +1 -1
  43. package/dist/index.cjs26.js +2 -2
  44. package/dist/index.cjs26.js.map +1 -1
  45. package/dist/index.cjs27.js +1 -6
  46. package/dist/index.cjs27.js.map +1 -1
  47. package/dist/index.cjs28.js +1 -1
  48. package/dist/index.cjs28.js.map +1 -1
  49. package/dist/index.cjs29.js +6 -1
  50. package/dist/index.cjs29.js.map +1 -1
  51. package/dist/index.cjs3.js +1 -1
  52. package/dist/index.cjs3.js.map +1 -1
  53. package/dist/index.cjs30.js +1 -6
  54. package/dist/index.cjs30.js.map +1 -1
  55. package/dist/index.cjs31.js +1 -1
  56. package/dist/index.cjs31.js.map +1 -1
  57. package/dist/index.cjs32.js +1 -1
  58. package/dist/index.cjs32.js.map +1 -1
  59. package/dist/index.cjs33.js +1 -9
  60. package/dist/index.cjs33.js.map +1 -1
  61. package/dist/index.cjs34.js +1 -22
  62. package/dist/index.cjs34.js.map +1 -1
  63. package/dist/index.cjs35.js +1 -1
  64. package/dist/index.cjs35.js.map +1 -1
  65. package/dist/index.cjs36.js +6 -1
  66. package/dist/index.cjs36.js.map +1 -1
  67. package/dist/index.cjs37.js +6 -1
  68. package/dist/index.cjs37.js.map +1 -1
  69. package/dist/index.cjs38.js +6 -1
  70. package/dist/index.cjs38.js.map +1 -1
  71. package/dist/index.cjs39.js +1 -1
  72. package/dist/index.cjs39.js.map +1 -1
  73. package/dist/index.cjs4.js +1 -1
  74. package/dist/index.cjs4.js.map +1 -1
  75. package/dist/index.cjs40.js +1 -1
  76. package/dist/index.cjs40.js.map +1 -1
  77. package/dist/index.cjs41.js +1 -1
  78. package/dist/index.cjs41.js.map +1 -1
  79. package/dist/index.cjs42.js +1 -6
  80. package/dist/index.cjs42.js.map +1 -1
  81. package/dist/index.cjs43.js +1 -6
  82. package/dist/index.cjs43.js.map +1 -1
  83. package/dist/index.cjs44.js +1 -6
  84. package/dist/index.cjs44.js.map +1 -1
  85. package/dist/index.cjs45.js +1 -1
  86. package/dist/index.cjs45.js.map +1 -1
  87. package/dist/index.cjs46.js +7 -1
  88. package/dist/index.cjs46.js.map +1 -1
  89. package/dist/index.cjs47.js +1 -1
  90. package/dist/index.cjs47.js.map +1 -1
  91. package/dist/index.cjs48.js +1 -1
  92. package/dist/index.cjs48.js.map +1 -1
  93. package/dist/index.cjs49.js +1 -1
  94. package/dist/index.cjs49.js.map +1 -1
  95. package/dist/index.cjs5.js +1 -1
  96. package/dist/index.cjs5.js.map +1 -1
  97. package/dist/index.cjs50.js +6 -1
  98. package/dist/index.cjs50.js.map +1 -1
  99. package/dist/index.cjs51.js +6 -7
  100. package/dist/index.cjs51.js.map +1 -1
  101. package/dist/index.cjs52.js +6 -1
  102. package/dist/index.cjs52.js.map +1 -1
  103. package/dist/index.cjs53.js +6 -1
  104. package/dist/index.cjs53.js.map +1 -1
  105. package/dist/index.cjs54.js +5 -1
  106. package/dist/index.cjs54.js.map +1 -1
  107. package/dist/index.cjs55.js +1 -6
  108. package/dist/index.cjs55.js.map +1 -1
  109. package/dist/index.cjs56.js +1 -6
  110. package/dist/index.cjs56.js.map +1 -1
  111. package/dist/index.cjs57.js +1 -6
  112. package/dist/index.cjs57.js.map +1 -1
  113. package/dist/index.cjs58.js +1 -6
  114. package/dist/index.cjs58.js.map +1 -1
  115. package/dist/index.cjs59.js +1 -1
  116. package/dist/index.cjs59.js.map +1 -1
  117. package/dist/index.cjs6.js +1 -1
  118. package/dist/index.cjs6.js.map +1 -1
  119. package/dist/index.cjs60.js +1 -1
  120. package/dist/index.cjs60.js.map +1 -1
  121. package/dist/index.cjs61.js +1 -5
  122. package/dist/index.cjs61.js.map +1 -1
  123. package/dist/index.cjs62.js +1 -1
  124. package/dist/index.cjs62.js.map +1 -1
  125. package/dist/index.cjs63.js +1 -1
  126. package/dist/index.cjs63.js.map +1 -1
  127. package/dist/index.cjs64.js +1 -1
  128. package/dist/index.cjs64.js.map +1 -1
  129. package/dist/index.cjs65.js +1 -1
  130. package/dist/index.cjs65.js.map +1 -1
  131. package/dist/index.cjs66.js +1 -1
  132. package/dist/index.cjs66.js.map +1 -1
  133. package/dist/index.cjs67.js +1 -1
  134. package/dist/index.cjs67.js.map +1 -1
  135. package/dist/index.cjs68.js +1 -1
  136. package/dist/index.cjs68.js.map +1 -1
  137. package/dist/index.cjs69.js +1 -1
  138. package/dist/index.cjs69.js.map +1 -1
  139. package/dist/index.cjs7.js +1 -1
  140. package/dist/index.cjs7.js.map +1 -1
  141. package/dist/index.cjs70.js +1 -1
  142. package/dist/index.cjs70.js.map +1 -1
  143. package/dist/index.cjs71.js +1 -1
  144. package/dist/index.cjs71.js.map +1 -1
  145. package/dist/index.cjs72.js +1 -1
  146. package/dist/index.cjs72.js.map +1 -1
  147. package/dist/index.cjs73.js +1 -1
  148. package/dist/index.cjs73.js.map +1 -1
  149. package/dist/index.cjs74.js +1 -1
  150. package/dist/index.cjs74.js.map +1 -1
  151. package/dist/index.cjs75.js +1 -1
  152. package/dist/index.cjs75.js.map +1 -1
  153. package/dist/index.cjs76.js +1 -1
  154. package/dist/index.cjs76.js.map +1 -1
  155. package/dist/index.cjs77.js +1 -1
  156. package/dist/index.cjs77.js.map +1 -1
  157. package/dist/index.cjs78.js +1 -1
  158. package/dist/index.cjs78.js.map +1 -1
  159. package/dist/index.cjs79.js +1 -1
  160. package/dist/index.cjs79.js.map +1 -1
  161. package/dist/index.cjs8.js +1 -1
  162. package/dist/index.cjs8.js.map +1 -1
  163. package/dist/index.cjs80.js +1 -1
  164. package/dist/index.cjs80.js.map +1 -1
  165. package/dist/index.cjs81.js +1 -1
  166. package/dist/index.cjs81.js.map +1 -1
  167. package/dist/index.cjs82.js +1 -1
  168. package/dist/index.cjs82.js.map +1 -1
  169. package/dist/index.cjs83.js +1 -1
  170. package/dist/index.cjs83.js.map +1 -1
  171. package/dist/index.cjs84.js +1 -1
  172. package/dist/index.cjs84.js.map +1 -1
  173. package/dist/index.cjs85.js +1 -1
  174. package/dist/index.cjs85.js.map +1 -1
  175. package/dist/index.cjs86.js +1 -1
  176. package/dist/index.cjs86.js.map +1 -1
  177. package/dist/index.cjs87.js +1 -1
  178. package/dist/index.cjs87.js.map +1 -1
  179. package/dist/index.cjs88.js +4 -1
  180. package/dist/index.cjs88.js.map +1 -1
  181. package/dist/index.cjs89.js +1 -1
  182. package/dist/index.cjs89.js.map +1 -1
  183. package/dist/index.cjs9.js +1 -1
  184. package/dist/index.cjs9.js.map +1 -1
  185. package/dist/index.cjs90.js +1 -1
  186. package/dist/index.cjs90.js.map +1 -1
  187. package/dist/index.cjs91.js +1 -1
  188. package/dist/index.cjs91.js.map +1 -1
  189. package/dist/index.cjs92.js +1 -1
  190. package/dist/index.cjs92.js.map +1 -1
  191. package/dist/index.cjs93.js +1 -1
  192. package/dist/index.cjs93.js.map +1 -1
  193. package/dist/index.cjs94.js +38 -1
  194. package/dist/index.cjs94.js.map +1 -1
  195. package/dist/index.cjs95.js +1 -4
  196. package/dist/index.cjs95.js.map +1 -1
  197. package/dist/index.cjs96.js +1 -1
  198. package/dist/index.cjs96.js.map +1 -1
  199. package/dist/index.cjs97.js +1 -1
  200. package/dist/index.cjs97.js.map +1 -1
  201. package/dist/index.cjs98.js +1 -1
  202. package/dist/index.cjs98.js.map +1 -1
  203. package/dist/index.cjs99.js +1 -1
  204. package/dist/index.cjs99.js.map +1 -1
  205. package/dist/index.es10.js +46 -22
  206. package/dist/index.es10.js.map +1 -1
  207. package/dist/index.es100.js +11 -63
  208. package/dist/index.es100.js.map +1 -1
  209. package/dist/index.es101.js +27 -68
  210. package/dist/index.es101.js.map +1 -1
  211. package/dist/index.es102.js +4 -8
  212. package/dist/index.es102.js.map +1 -1
  213. package/dist/index.es103.js +23 -14
  214. package/dist/index.es103.js.map +1 -1
  215. package/dist/index.es11.js +57 -39
  216. package/dist/index.es11.js.map +1 -1
  217. package/dist/index.es12.js +23 -61
  218. package/dist/index.es12.js.map +1 -1
  219. package/dist/index.es13.js +126 -21
  220. package/dist/index.es13.js.map +1 -1
  221. package/dist/index.es14.js +12 -126
  222. package/dist/index.es14.js.map +1 -1
  223. package/dist/index.es15.js +132 -17
  224. package/dist/index.es15.js.map +1 -1
  225. package/dist/index.es16.js +133 -130
  226. package/dist/index.es16.js.map +1 -1
  227. package/dist/index.es17.js +43 -117
  228. package/dist/index.es17.js.map +1 -1
  229. package/dist/index.es18.js +9 -62
  230. package/dist/index.es18.js.map +1 -1
  231. package/dist/index.es19.js +23 -11
  232. package/dist/index.es19.js.map +1 -1
  233. package/dist/index.es2.js +21 -20
  234. package/dist/index.es2.js.map +1 -1
  235. package/dist/index.es20.js +422 -20
  236. package/dist/index.es20.js.map +1 -1
  237. package/dist/index.es21.js +5 -424
  238. package/dist/index.es21.js.map +1 -1
  239. package/dist/index.es22.js +13 -6
  240. package/dist/index.es22.js.map +1 -1
  241. package/dist/index.es23.js +10 -7
  242. package/dist/index.es23.js.map +1 -1
  243. package/dist/index.es24.js +7 -10
  244. package/dist/index.es24.js.map +1 -1
  245. package/dist/index.es25.js +12 -6
  246. package/dist/index.es25.js.map +1 -1
  247. package/dist/index.es26.js +4 -13
  248. package/dist/index.es26.js.map +1 -1
  249. package/dist/index.es27.js +19 -10
  250. package/dist/index.es27.js.map +1 -1
  251. package/dist/index.es28.js +22 -18
  252. package/dist/index.es28.js.map +1 -1
  253. package/dist/index.es29.js +13 -23
  254. package/dist/index.es29.js.map +1 -1
  255. package/dist/index.es3.js +207 -206
  256. package/dist/index.es3.js.map +1 -1
  257. package/dist/index.es30.js +17 -13
  258. package/dist/index.es30.js.map +1 -1
  259. package/dist/index.es31.js +14 -7
  260. package/dist/index.es31.js.map +1 -1
  261. package/dist/index.es32.js +2477 -2
  262. package/dist/index.es32.js.map +1 -1
  263. package/dist/index.es33.js +39 -24
  264. package/dist/index.es33.js.map +1 -1
  265. package/dist/index.es34.js +33 -602
  266. package/dist/index.es34.js.map +1 -1
  267. package/dist/index.es35.js +832 -17
  268. package/dist/index.es35.js.map +1 -1
  269. package/dist/index.es36.js +10 -15
  270. package/dist/index.es36.js.map +1 -1
  271. package/dist/index.es37.js +10 -2477
  272. package/dist/index.es37.js.map +1 -1
  273. package/dist/index.es38.js +10 -41
  274. package/dist/index.es38.js.map +1 -1
  275. package/dist/index.es39.js +115 -32
  276. package/dist/index.es39.js.map +1 -1
  277. package/dist/index.es4.js +5 -5
  278. package/dist/index.es4.js.map +1 -1
  279. package/dist/index.es40.js +106 -108
  280. package/dist/index.es40.js.map +1 -1
  281. package/dist/index.es41.js +48 -824
  282. package/dist/index.es41.js.map +1 -1
  283. package/dist/index.es42.js +24 -10
  284. package/dist/index.es42.js.map +1 -1
  285. package/dist/index.es43.js +45 -10
  286. package/dist/index.es43.js.map +1 -1
  287. package/dist/index.es44.js +86 -10
  288. package/dist/index.es44.js.map +1 -1
  289. package/dist/index.es45.js +56 -110
  290. package/dist/index.es45.js.map +1 -1
  291. package/dist/index.es46.js +122 -55
  292. package/dist/index.es46.js.map +1 -1
  293. package/dist/index.es47.js +62 -23
  294. package/dist/index.es47.js.map +1 -1
  295. package/dist/index.es48.js +7 -44
  296. package/dist/index.es48.js.map +1 -1
  297. package/dist/index.es49.js +4 -85
  298. package/dist/index.es49.js.map +1 -1
  299. package/dist/index.es5.js +62 -62
  300. package/dist/index.es5.js.map +1 -1
  301. package/dist/index.es50.js +19 -58
  302. package/dist/index.es50.js.map +1 -1
  303. package/dist/index.es51.js +9 -123
  304. package/dist/index.es51.js.map +1 -1
  305. package/dist/index.es52.js +38 -63
  306. package/dist/index.es52.js.map +1 -1
  307. package/dist/index.es53.js +18 -2
  308. package/dist/index.es53.js.map +1 -1
  309. package/dist/index.es54.js +255 -2
  310. package/dist/index.es54.js.map +1 -1
  311. package/dist/index.es55.js +21 -20
  312. package/dist/index.es55.js.map +1 -1
  313. package/dist/index.es56.js +4 -9
  314. package/dist/index.es56.js.map +1 -1
  315. package/dist/index.es57.js +7 -38
  316. package/dist/index.es57.js.map +1 -1
  317. package/dist/index.es58.js +46 -18
  318. package/dist/index.es58.js.map +1 -1
  319. package/dist/index.es59.js +26 -7
  320. package/dist/index.es59.js.map +1 -1
  321. package/dist/index.es6.js +37 -37
  322. package/dist/index.es6.js.map +1 -1
  323. package/dist/index.es60.js +65 -4
  324. package/dist/index.es60.js.map +1 -1
  325. package/dist/index.es61.js +7 -254
  326. package/dist/index.es61.js.map +1 -1
  327. package/dist/index.es62.js +123 -20
  328. package/dist/index.es62.js.map +1 -1
  329. package/dist/index.es63.js +13 -25
  330. package/dist/index.es63.js.map +1 -1
  331. package/dist/index.es64.js +132 -5
  332. package/dist/index.es64.js.map +1 -1
  333. package/dist/index.es65.js +10 -65
  334. package/dist/index.es65.js.map +1 -1
  335. package/dist/index.es66.js +212 -26
  336. package/dist/index.es66.js.map +1 -1
  337. package/dist/index.es67.js +13 -6
  338. package/dist/index.es67.js.map +1 -1
  339. package/dist/index.es68.js +32 -24
  340. package/dist/index.es68.js.map +1 -1
  341. package/dist/index.es69.js +7 -32
  342. package/dist/index.es69.js.map +1 -1
  343. package/dist/index.es7.js +33 -33
  344. package/dist/index.es7.js.map +1 -1
  345. package/dist/index.es70.js +29 -3
  346. package/dist/index.es70.js.map +1 -1
  347. package/dist/index.es71.js +4 -46
  348. package/dist/index.es71.js.map +1 -1
  349. package/dist/index.es72.js +5 -7
  350. package/dist/index.es72.js.map +1 -1
  351. package/dist/index.es73.js +26 -123
  352. package/dist/index.es73.js.map +1 -1
  353. package/dist/index.es74.js +50 -15
  354. package/dist/index.es74.js.map +1 -1
  355. package/dist/index.es75.js +8 -133
  356. package/dist/index.es75.js.map +1 -1
  357. package/dist/index.es76.js +24 -10
  358. package/dist/index.es76.js.map +1 -1
  359. package/dist/index.es77.js +65 -213
  360. package/dist/index.es77.js.map +1 -1
  361. package/dist/index.es78.js +12 -13
  362. package/dist/index.es78.js.map +1 -1
  363. package/dist/index.es79.js +204 -7
  364. package/dist/index.es79.js.map +1 -1
  365. package/dist/index.es8.js +87 -87
  366. package/dist/index.es8.js.map +1 -1
  367. package/dist/index.es80.js +22 -4
  368. package/dist/index.es80.js.map +1 -1
  369. package/dist/index.es81.js +391 -26
  370. package/dist/index.es81.js.map +1 -1
  371. package/dist/index.es82.js +24 -49
  372. package/dist/index.es82.js.map +1 -1
  373. package/dist/index.es83.js +28 -8
  374. package/dist/index.es83.js.map +1 -1
  375. package/dist/index.es84.js +5 -68
  376. package/dist/index.es84.js.map +1 -1
  377. package/dist/index.es85.js +5 -12
  378. package/dist/index.es85.js.map +1 -1
  379. package/dist/index.es86.js +3 -205
  380. package/dist/index.es86.js.map +1 -1
  381. package/dist/index.es87.js +23 -21
  382. package/dist/index.es87.js.map +1 -1
  383. package/dist/index.es88.js +105 -388
  384. package/dist/index.es88.js.map +1 -1
  385. package/dist/index.es89.js +14 -23
  386. package/dist/index.es89.js.map +1 -1
  387. package/dist/index.es9.js +23 -3
  388. package/dist/index.es9.js.map +1 -1
  389. package/dist/index.es90.js +521 -27
  390. package/dist/index.es90.js.map +1 -1
  391. package/dist/index.es91.js +127 -5
  392. package/dist/index.es91.js.map +1 -1
  393. package/dist/index.es92.js +129 -5
  394. package/dist/index.es92.js.map +1 -1
  395. package/dist/index.es93.js +65 -3
  396. package/dist/index.es93.js.map +1 -1
  397. package/dist/index.es94.js +69 -24
  398. package/dist/index.es94.js.map +1 -1
  399. package/dist/index.es95.js +9 -110
  400. package/dist/index.es95.js.map +1 -1
  401. package/dist/index.es96.js +14 -16
  402. package/dist/index.es96.js.map +1 -1
  403. package/dist/index.es97.js +60 -521
  404. package/dist/index.es97.js.map +1 -1
  405. package/dist/index.es98.js +3 -126
  406. package/dist/index.es98.js.map +1 -1
  407. package/dist/index.es99.js +22 -128
  408. package/dist/index.es99.js.map +1 -1
  409. package/dist/packages/builder/context.d.ts +1 -0
  410. package/dist/packages/builder/context.d.ts.map +1 -1
  411. package/dist/packages/builder/schema-builder.d.ts.map +1 -1
  412. package/dist/style.css +1 -1
  413. package/package.json +3 -3
  414. package/dist/index.cjs104.js +0 -2
  415. package/dist/index.cjs104.js.map +0 -1
  416. package/dist/index.cjs105.js +0 -2
  417. package/dist/index.cjs105.js.map +0 -1
  418. package/dist/index.cjs106.js +0 -2
  419. package/dist/index.cjs106.js.map +0 -1
  420. package/dist/index.cjs107.js +0 -2
  421. package/dist/index.cjs107.js.map +0 -1
  422. package/dist/index.cjs108.js +0 -2
  423. package/dist/index.cjs108.js.map +0 -1
  424. package/dist/index.cjs109.js +0 -2
  425. package/dist/index.cjs109.js.map +0 -1
  426. package/dist/index.cjs110.js +0 -2
  427. package/dist/index.cjs110.js.map +0 -1
  428. package/dist/index.es104.js +0 -65
  429. package/dist/index.es104.js.map +0 -1
  430. package/dist/index.es105.js +0 -7
  431. package/dist/index.es105.js.map +0 -1
  432. package/dist/index.es106.js +0 -26
  433. package/dist/index.es106.js.map +0 -1
  434. package/dist/index.es107.js +0 -26
  435. package/dist/index.es107.js.map +0 -1
  436. package/dist/index.es108.js +0 -16
  437. package/dist/index.es108.js.map +0 -1
  438. package/dist/index.es109.js +0 -31
  439. package/dist/index.es109.js.map +0 -1
  440. package/dist/index.es110.js +0 -8
  441. package/dist/index.es110.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.es3.js","sources":["../src/packages/builder/schema-builder.tsx"],"sourcesContent":["import { useEffect, useState, Fragment } from \"react\";\nimport { PropertyAddError, PropertyAddSuccess, useSchema } from \"./context\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { Bolt, ChevronRight, Copy, Plus, Trash2 } from \"lucide-react\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { Label } from \"@/components/ui/label\";\nimport type { JSONSchema7 } from \"json-schema\";\nimport { clone } from \"remeda\";\nimport {\n BaseJSONSchemaPlugin,\n useConstraints,\n usePluginSystem,\n} from \"@/packages/constraints/context\";\nimport { EditPropertyDialog } from \"./edit-dialog\";\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@/components/ui/alert-dialog\";\nimport { Alert, AlertDescription, AlertTitle } from \"@/components/ui/alert\";\nimport { validateSchema } from \"./utils\";\nimport Ajv from \"ajv\";\nimport { DebouncedInput } from \"@/components/depounced-input\";\nimport { AddPropertyDialog, type AddPropertyDialogProps } from \"./add-dialog\";\nimport { cn } from \"@/lib/utils\";\n\n// PropertyComponent type definition for custom property components\nexport interface PropertyComponentProps {\n property: {\n key: string;\n schema: JSONSchema7;\n isRequired: boolean;\n };\n onPropertyChange: (key: string, changes: Partial<JSONSchema7>) => void;\n onKeyChange: (oldKey: string, newKey: string) => void;\n onDelete: (key: string) => void;\n onDuplicate?: (key: string) => void;\n onNavigate?: (key: string) => void;\n}\n\n// NavigationProps for custom navigation component\nexport interface NavigationProps {\n currentPath: string[];\n onNavigateUp: () => void;\n onNavigateTo: (newPath: string[]) => void;\n isRootPath: boolean;\n}\n\n// AddPropertyButtonProps for custom add property button\nexport interface AddPropertyButtonProps {\n onClick: () => void;\n}\n\ninterface SchemaBuilderProps {\n /** The schema to edit */\n initialSchema?: JSONSchema7;\n /** Constraint plugins to use */\n plugins?: BaseJSONSchemaPlugin[];\n /** Custom component to render properties */\n propertyComponent?: React.ComponentType<PropertyComponentProps>;\n /** Called when the schema changes */\n onSchemaChange?: (schema: JSONSchema7) => void;\n /** Called when a property is successfully added */\n onPropertyAddSuccess?: (props: PropertyAddSuccess) => void;\n /** Called when there's an error adding a property */\n onPropertyAddError?: (props: PropertyAddError) => void;\n /** Called when there's an error changing a property */\n onPropertyChangeError?: (prop: Error) => void;\n /** Called when a property is successfully changed */\n onPropertyChangeSuccess?: () => void;\n /** Class name for the navigation bar back button */\n backButtonClassName?: string;\n /** Class name for the properties list container */\n propertiesListClassName?: string;\n /** Class name for the add property button */\n addPropertyButtonClassName?: string;\n /** Custom navigation component */\n navigationComponent?: React.ComponentType<NavigationProps>;\n /** Custom add property button component */\n addPropertyButtonComponent?: React.ComponentType<AddPropertyButtonProps>;\n}\n\nexport const SchemaBuilder = (props: SchemaBuilderProps) => {\n // State\n const [showPropertyDialog, setShowPropertyDialog] = useState(false);\n const [showEditDialog, setShowEditDialog] = useState(false);\n const [showDeleteDialog, setShowDeleteDialog] = useState(false);\n const [deleteKey, setDeleteKey] = useState<string | undefined>();\n const [editingKey, setEditingKey] = useState<string | undefined>();\n const [editingProperty, setEditingProperty] = useState<\n JSONSchema7 | undefined\n >();\n const [schemaValidationError, setSchemaValidationError] = useState<\n string | null\n >(null);\n\n // Initialize the plugin system\n usePluginSystem(props.plugins ?? []);\n\n // Get schema context\n const {\n getCurrentSchema,\n setPath,\n path,\n schema,\n handleAddProperty,\n handlePropertyChange,\n handleKeyChange,\n handleDeleteProperty,\n setSchema,\n isPropertyRequired,\n } = useSchema();\n\n // Get constraints context\n const { getConstraintDefinitionsForType } = useConstraints();\n\n // Set schema from props\n useEffect(() => {\n if (props.initialSchema) {\n try {\n // Validate the schema before setting it\n validateSchema(props.initialSchema);\n setSchema(clone(props.initialSchema));\n setSchemaValidationError(null);\n } catch (error) {\n if (error instanceof Error) {\n setSchemaValidationError(error.message);\n } else if (error instanceof Ajv.ValidationError) {\n setSchemaValidationError(`Schema validation error: ${error.message}`);\n } else {\n setSchemaValidationError(\"Unknown schema validation error\");\n }\n }\n }\n }, [props.initialSchema]);\n\n // Notify schema changes\n useEffect(() => {\n if (!schemaValidationError && props.onSchemaChange) {\n props.onSchemaChange(schema);\n }\n }, [schema, schemaValidationError, props.onSchemaChange]);\n\n const currentSchema = getCurrentSchema();\n\n // Navigation handlers\n const handleNavigateToProperty = (name: string) => {\n setPath([...path, name]);\n };\n\n const handleNavigateUp = () => {\n setPath(path.slice(0, -1));\n };\n\n // Property management handlers\n const handleEditProperty = (key: string, property: JSONSchema7) => {\n setEditingKey(key);\n setEditingProperty(property);\n setShowEditDialog(true);\n };\n\n const handleInitiateDelete = (key: string) => {\n setDeleteKey(key);\n setShowDeleteDialog(true);\n };\n\n const handleConfirmDelete = () => {\n if (deleteKey) {\n handleDeleteProperty(deleteKey);\n setDeleteKey(undefined);\n }\n setShowDeleteDialog(false);\n };\n\n const handleCancelDelete = () => {\n setDeleteKey(undefined);\n setShowDeleteDialog(false);\n };\n\n const handleDuplicateProperty = (key: string) => {\n const currentProperties = getCurrentSchema().properties;\n if (!currentProperties || typeof currentProperties[key] === \"boolean\") {\n return;\n }\n\n const propertyToDuplicate = currentProperties[key]!;\n const newKey = `${key}_copy`;\n const newProperty = clone(propertyToDuplicate);\n\n // Add the duplicated property\n const result = handleAddProperty(\n newKey,\n newProperty,\n isPropertyRequired(key),\n );\n\n // Notify if needed\n if (result.status === \"error\") {\n props.onPropertyAddError?.(result);\n } else {\n props.onPropertyAddSuccess?.(result);\n }\n };\n\n const onAddProperty: AddPropertyDialogProps[\"onSubmit\"] = (...vals) => {\n const result = handleAddProperty(...vals);\n\n if (result.status === \"error\") {\n props.onPropertyAddError?.(result);\n } else if (result.status === \"success\") {\n props.onPropertyAddSuccess?.(result);\n }\n setShowPropertyDialog(false);\n };\n\n // Custom property component or default renderer\n const PropertyComponent = props.propertyComponent;\n\n const renderProperty = (key: string, property: JSONSchema7) => {\n if (PropertyComponent) {\n return (\n <PropertyComponent\n key={key}\n property={{\n key,\n schema: property,\n isRequired: isPropertyRequired(key),\n }}\n onPropertyChange={handlePropertyChange}\n onKeyChange={handleKeyChange}\n onDelete={handleInitiateDelete}\n onDuplicate={handleDuplicateProperty}\n onNavigate={\n property.type === \"object\" ||\n (property.type === \"array\" &&\n typeof property.items === \"object\" &&\n (property.items as JSONSchema7).type === \"object\")\n ? handleNavigateToProperty\n : undefined\n }\n />\n );\n }\n\n // Default property renderer\n return (\n <div\n key={key}\n className=\"flex flex-col md:grid grid-cols-(--my-autofit-grid) gap-4 md:items-center border p-2 rounded-md mb-2\"\n >\n <div className=\"\">\n <DebouncedInput\n value={key}\n onDebounce={(newVal) => handleKeyChange(key, newVal)}\n placeholder=\"Property Key\"\n aria-label={`Property key for ${key}`}\n delay={500}\n />\n </div>\n\n <div className=\"flex items-center gap-2\">\n <Switch\n checked={isPropertyRequired(key)}\n onCheckedChange={(checked) =>\n handlePropertyChange(key, { isRequired: checked })\n }\n aria-label=\"Required\"\n />\n <Label htmlFor={`required-${key}`}>Required</Label>\n </div>\n\n <div className=\"\">\n <Select\n value={\n typeof property === \"object\" && !Array.isArray(property.type)\n ? property.type\n : undefined\n }\n onValueChange={(value) =>\n handlePropertyChange(key, {\n type: value as JSONSchema7[\"type\"],\n })\n }\n aria-label=\"Type\"\n >\n <SelectTrigger className=\"w-full\" aria-label=\"Select type\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={\"string\" satisfies JSONSchema7[\"type\"]}>\n string\n </SelectItem>\n <SelectItem value={\"number\" satisfies JSONSchema7[\"type\"]}>\n number\n </SelectItem>\n <SelectItem value={\"integer\" satisfies JSONSchema7[\"type\"]}>\n integer\n </SelectItem>\n <SelectItem value={\"boolean\" satisfies JSONSchema7[\"type\"]}>\n boolean\n </SelectItem>\n <SelectItem value={\"object\" satisfies JSONSchema7[\"type\"]}>\n object\n </SelectItem>\n <SelectItem value={\"array\" satisfies JSONSchema7[\"type\"]}>\n array\n </SelectItem>\n <SelectItem value={\"null\" satisfies JSONSchema7[\"type\"]}>\n null\n </SelectItem>\n <SelectItem value={\"enum\"}>enum</SelectItem>\n </SelectContent>\n </Select>\n </div>\n\n <div className=\"\">\n <DebouncedInput\n value={typeof property === \"object\" ? property.title : undefined}\n onDebounce={(newVal) =>\n handlePropertyChange(key, { title: newVal })\n }\n placeholder=\"Title\"\n />\n </div>\n\n <div className=\"\">\n <DebouncedInput\n value={\n typeof property === \"object\" ? property.description : undefined\n }\n onDebounce={(newVal) =>\n handlePropertyChange(key, { description: newVal })\n }\n placeholder=\"Description\"\n />\n </div>\n\n <div className=\"order-last md:order-none flex gap-2\">\n {/* Delete button */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => handleInitiateDelete(key)}\n aria-label=\"Delete\"\n className=\"block!\"\n >\n <Trash2 size={16} className=\"text-destructive\" />\n </Button>\n\n {/* Duplicate button */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => handleDuplicateProperty(key)}\n aria-label=\"Duplicate\"\n className=\"block!\"\n >\n <Copy size={16} />\n </Button>\n\n {/* Edit button if applicable */}\n {renderEditButton(key, property)}\n\n {/* Navigate button for objects/array items */}\n {renderNavigateButton(key, property)}\n </div>\n\n {/* Render array items configuration if needed */}\n {renderArrayItemsConfig(key, property)}\n </div>\n );\n };\n\n // Helper to render array items configuration\n const renderArrayItemsConfig = (key: string, property: JSONSchema7) => {\n if (typeof property !== \"object\" || property.type !== \"array\") {\n return null;\n }\n\n const items = property.items;\n const itemType =\n !Array.isArray(items) &&\n typeof items === \"object\" &&\n typeof items.type === \"string\"\n ? items?.type\n : \"string\";\n\n return (\n <div className=\"col-span-full flex items-center gap-4 pl-8 mt-2 bg-gray-50 p-2 rounded-md\">\n <Label>Items of type:</Label>\n <Select\n value={itemType as string}\n onValueChange={(value) => {\n const newItems: JSONSchema7 = {\n ...(typeof items === \"object\" ? items : {}),\n type: value as JSONSchema7[\"type\"],\n };\n\n if (value === \"object\") {\n // Initialize empty properties for object type\n newItems.properties = newItems.properties ?? {};\n }\n\n handlePropertyChange(key, { items: newItems });\n }}\n >\n <SelectTrigger\n className=\"w-[200px]\"\n aria-label=\"Select items of type\"\n >\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={\"string\" satisfies JSONSchema7[\"type\"]}>\n string\n </SelectItem>\n <SelectItem value={\"number\" satisfies JSONSchema7[\"type\"]}>\n number\n </SelectItem>\n <SelectItem value={\"integer\" satisfies JSONSchema7[\"type\"]}>\n integer\n </SelectItem>\n <SelectItem value={\"boolean\" satisfies JSONSchema7[\"type\"]}>\n boolean\n </SelectItem>\n <SelectItem value={\"object\" satisfies JSONSchema7[\"type\"]}>\n object\n </SelectItem>\n <SelectItem value={\"array\" satisfies JSONSchema7[\"type\"]}>\n array\n </SelectItem>\n <SelectItem value={\"null\" satisfies JSONSchema7[\"type\"]}>\n null\n </SelectItem>\n </SelectContent>\n </Select>\n\n {/* Configure object button for array items of type object */}\n {renderNavigateButton(key, items)}\n </div>\n );\n };\n\n // Helper to render the edit constraint button when needed\n const renderEditButton = (key: string, property: JSONSchema7) => {\n if (typeof property !== \"object\") return null;\n\n // Check for constraints\n const availableConstraints = getConstraintDefinitionsForType(\n typeof property.type === \"string\" ? property.type : \"\",\n );\n\n // Check for enum\n const hasEnum = Array.isArray(property?.enum);\n\n if (availableConstraints.length || hasEnum) {\n return (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => handleEditProperty(key, property)}\n aria-label=\"Edit constraints\"\n >\n <Bolt size={16} />\n </Button>\n );\n }\n\n return null;\n };\n\n const renderNavigateButton = (key: string, items: JSONSchema7[\"items\"]) => {\n if (\n !Array.isArray(items) &&\n typeof items === \"object\" &&\n items?.type === \"object\"\n ) {\n return (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => handleNavigateToProperty(key)}\n aria-label=\"Navigate\"\n >\n <span className=\"sr-only\">Navigate</span>\n <ChevronRight size={16} />\n </Button>\n );\n }\n\n return null;\n };\n\n // Render navigation component\n const renderNavigation = () => {\n const NavigationComponent = props.navigationComponent;\n\n if (NavigationComponent) {\n return (\n <NavigationComponent\n currentPath={path}\n onNavigateUp={handleNavigateUp}\n onNavigateTo={setPath}\n isRootPath={path.length === 0}\n />\n );\n }\n\n return (\n <div className=\"flex items-center space-x-4\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={handleNavigateUp}\n disabled={path.length === 0}\n className={cn(props.backButtonClassName)}\n >\n Back\n </Button>\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"#\" onClick={() => setPath([])}>\n Root\n </BreadcrumbLink>\n </BreadcrumbItem>\n {path.map((item, index) => (\n <Fragment key={`path-${index}`}>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbLink\n href=\"#\"\n onClick={() => setPath(path.slice(0, index + 1))}\n >\n {item}\n </BreadcrumbLink>\n </BreadcrumbItem>\n </Fragment>\n ))}\n </BreadcrumbList>\n </Breadcrumb>\n </div>\n );\n };\n\n // Render add property button\n const renderAddPropertyButton = () => {\n const AddPropertyButtonComponent = props.addPropertyButtonComponent;\n\n if (AddPropertyButtonComponent) {\n return (\n <AddPropertyButtonComponent\n onClick={() => setShowPropertyDialog(true)}\n />\n );\n }\n\n return (\n <Button\n className={cn(\"self-center\", props.addPropertyButtonClassName)}\n onClick={() => {\n setShowPropertyDialog(true);\n }}\n >\n <Plus className=\"h-4 w-4 mr-2\" />\n Add Property\n </Button>\n );\n };\n\n return (\n <div>\n {/* Schema validation error */}\n {schemaValidationError && (\n <Alert variant=\"destructive\">\n <AlertTitle>Schema Error</AlertTitle>\n <AlertDescription>{schemaValidationError}</AlertDescription>\n </Alert>\n )}\n\n {/* Navigation bar */}\n {renderNavigation()}\n\n {/* Properties list */}\n <div\n className={cn(\"mt-6 overflow-x-hidden\", props.propertiesListClassName)}\n >\n {Object.entries(currentSchema.properties ?? {}).map(\n ([key, property]) => {\n if (typeof property === \"boolean\") {\n // We don't support editing boolean properties\n return null;\n }\n\n return renderProperty(key, property);\n },\n )}\n </div>\n\n {/* Add property button */}\n {renderAddPropertyButton()}\n\n {/* Add property dialog */}\n <AddPropertyDialog\n open={showPropertyDialog}\n onOpenChange={setShowPropertyDialog}\n onSubmit={onAddProperty}\n />\n\n {/* Edit property dialog */}\n {editingKey && editingProperty && (\n <EditPropertyDialog\n propertyKey={editingKey}\n property={editingProperty}\n open={showEditDialog}\n onOpenChange={setShowEditDialog}\n onSubmit={(params) => {\n handlePropertyChange(...params);\n setEditingKey(undefined);\n setEditingProperty(undefined);\n setShowEditDialog(false);\n }}\n />\n )}\n\n {/* Delete confirmation dialog */}\n <AlertDialog open={showDeleteDialog} onOpenChange={setShowDeleteDialog}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Are you sure?</AlertDialogTitle>\n <AlertDialogDescription>\n This action cannot be undone. This will permanently delete the\n property\n {deleteKey ? ` \"${deleteKey}\"` : \"\"} from the schema.\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel onClick={handleCancelDelete}>\n Cancel\n </AlertDialogCancel>\n <AlertDialogAction onClick={handleConfirmDelete}>\n Delete\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </div>\n );\n};\n"],"names":["SchemaBuilder","props","showPropertyDialog","setShowPropertyDialog","useState","showEditDialog","setShowEditDialog","showDeleteDialog","setShowDeleteDialog","deleteKey","setDeleteKey","editingKey","setEditingKey","editingProperty","setEditingProperty","schemaValidationError","setSchemaValidationError","usePluginSystem","getCurrentSchema","setPath","path","schema","handleAddProperty","handlePropertyChange","handleKeyChange","handleDeleteProperty","setSchema","isPropertyRequired","useSchema","getConstraintDefinitionsForType","useConstraints","useEffect","validateSchema","clone","error","Ajv","currentSchema","handleNavigateToProperty","name","handleNavigateUp","handleEditProperty","key","property","handleInitiateDelete","handleConfirmDelete","handleCancelDelete","handleDuplicateProperty","currentProperties","propertyToDuplicate","newKey","newProperty","result","onAddProperty","vals","PropertyComponent","renderProperty","jsx","jsxs","DebouncedInput","newVal","Switch","checked","Label","Select","value","SelectTrigger","SelectValue","SelectContent","SelectItem","Button","Trash2","Copy","renderEditButton","renderNavigateButton","renderArrayItemsConfig","items","itemType","newItems","availableConstraints","hasEnum","Bolt","ChevronRight","renderNavigation","NavigationComponent","cn","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","item","index","Fragment","BreadcrumbSeparator","renderAddPropertyButton","AddPropertyButtonComponent","Plus","Alert","AlertTitle","AlertDescription","AddPropertyDialog","EditPropertyDialog","params","AlertDialog","AlertDialogContent","AlertDialogHeader","AlertDialogTitle","AlertDialogDescription","AlertDialogFooter","AlertDialogCancel","AlertDialogAction"],"mappings":"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"}
1
+ {"version":3,"file":"index.es3.js","sources":["../src/packages/builder/schema-builder.tsx"],"sourcesContent":["import { useEffect, useState, Fragment } from \"react\";\nimport { PropertyAddError, PropertyAddSuccess, useSchema } from \"./context\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { Bolt, ChevronRight, Copy, Plus, Trash2 } from \"lucide-react\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { Label } from \"@/components/ui/label\";\nimport type { JSONSchema7 } from \"json-schema\";\nimport { clone } from \"remeda\";\nimport {\n BaseJSONSchemaPlugin,\n useConstraints,\n usePluginSystem,\n} from \"@/packages/constraints/context\";\nimport { EditPropertyDialog } from \"./edit-dialog\";\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@/components/ui/alert-dialog\";\nimport { Alert, AlertDescription, AlertTitle } from \"@/components/ui/alert\";\nimport { validateSchema } from \"./utils\";\nimport Ajv from \"ajv\";\nimport { DebouncedInput } from \"@/components/depounced-input\";\nimport { AddPropertyDialog, type AddPropertyDialogProps } from \"./add-dialog\";\nimport { cn } from \"@/lib/utils\";\n\n// PropertyComponent type definition for custom property components\nexport interface PropertyComponentProps {\n property: {\n key: string;\n schema: JSONSchema7;\n isRequired: boolean;\n };\n onPropertyChange: (key: string, changes: Partial<JSONSchema7>) => void;\n onKeyChange: (oldKey: string, newKey: string) => void;\n onDelete: (key: string) => void;\n onDuplicate?: (key: string) => void;\n onNavigate?: (key: string) => void;\n}\n\n// NavigationProps for custom navigation component\nexport interface NavigationProps {\n currentPath: string[];\n onNavigateUp: () => void;\n onNavigateTo: (newPath: string[]) => void;\n isRootPath: boolean;\n}\n\n// AddPropertyButtonProps for custom add property button\nexport interface AddPropertyButtonProps {\n onClick: () => void;\n}\n\ninterface SchemaBuilderProps {\n /** The schema to edit */\n initialSchema?: JSONSchema7;\n /** Constraint plugins to use */\n plugins?: BaseJSONSchemaPlugin[];\n /** Custom component to render properties */\n propertyComponent?: React.ComponentType<PropertyComponentProps>;\n /** Called when the schema changes */\n onSchemaChange?: (schema: JSONSchema7) => void;\n /** Called when a property is successfully added */\n onPropertyAddSuccess?: (props: PropertyAddSuccess) => void;\n /** Called when there's an error adding a property */\n onPropertyAddError?: (props: PropertyAddError) => void;\n /** Called when there's an error changing a property */\n onPropertyChangeError?: (prop: Error) => void;\n /** Called when a property is successfully changed */\n onPropertyChangeSuccess?: () => void;\n /** Class name for the navigation bar back button */\n backButtonClassName?: string;\n /** Class name for the properties list container */\n propertiesListClassName?: string;\n /** Class name for the add property button */\n addPropertyButtonClassName?: string;\n /** Custom navigation component */\n navigationComponent?: React.ComponentType<NavigationProps>;\n /** Custom add property button component */\n addPropertyButtonComponent?: React.ComponentType<AddPropertyButtonProps>;\n}\n\nexport const SchemaBuilder = (props: SchemaBuilderProps) => {\n // State\n const [showPropertyDialog, setShowPropertyDialog] = useState(false);\n const [showEditDialog, setShowEditDialog] = useState(false);\n const [showDeleteDialog, setShowDeleteDialog] = useState(false);\n const [deleteKey, setDeleteKey] = useState<string | undefined>();\n const [editingKey, setEditingKey] = useState<string | undefined>();\n const [editingProperty, setEditingProperty] = useState<\n JSONSchema7 | undefined\n >();\n const [schemaValidationError, setSchemaValidationError] = useState<\n string | null\n >(null);\n\n // Initialize the plugin system\n usePluginSystem(props.plugins ?? []);\n\n // Get schema context\n const {\n getCurrentSchema,\n setPath,\n path,\n schema,\n handleAddProperty,\n handlePropertyChange,\n handleKeyChange,\n handleDeleteProperty,\n setSchema,\n isPropertyRequired,\n } = useSchema();\n\n // Get constraints context\n const { getConstraintDefinitionsForType } = useConstraints();\n\n // Set schema from props\n useEffect(() => {\n if (props.initialSchema) {\n try {\n // Validate the schema before setting it\n validateSchema(props.initialSchema);\n setSchema(clone(props.initialSchema));\n setSchemaValidationError(null);\n } catch (error) {\n if (error instanceof Error) {\n setSchemaValidationError(error.message);\n } else if (error instanceof Ajv.ValidationError) {\n setSchemaValidationError(`Schema validation error: ${error.message}`);\n } else {\n setSchemaValidationError(\"Unknown schema validation error\");\n }\n }\n }\n }, [props.initialSchema]);\n\n // Notify schema changes\n useEffect(() => {\n if (!schemaValidationError && props.onSchemaChange) {\n props.onSchemaChange(schema);\n }\n }, [schema, schemaValidationError, props.onSchemaChange]);\n\n const currentSchema = getCurrentSchema();\n\n // Navigation handlers\n const handleNavigateToProperty = (name: string) => {\n setPath([...path, name]);\n };\n\n const handleNavigateUp = () => {\n setPath(path.slice(0, -1));\n };\n\n // Property management handlers\n const handleEditProperty = (key: string, property: JSONSchema7) => {\n setEditingKey(key);\n setEditingProperty(property);\n setShowEditDialog(true);\n };\n\n const handleInitiateDelete = (key: string) => {\n setDeleteKey(key);\n setShowDeleteDialog(true);\n };\n\n const handleConfirmDelete = () => {\n if (deleteKey) {\n handleDeleteProperty(deleteKey);\n setDeleteKey(undefined);\n }\n setShowDeleteDialog(false);\n };\n\n const handleCancelDelete = () => {\n setDeleteKey(undefined);\n setShowDeleteDialog(false);\n };\n\n const handleDuplicateProperty = (key: string) => {\n const currentProperties = getCurrentSchema().properties;\n if (!currentProperties || typeof currentProperties[key] === \"boolean\") {\n return;\n }\n\n const propertyToDuplicate = currentProperties[key]!;\n const newKey = `${key}_copy`;\n const newProperty = clone(propertyToDuplicate);\n\n // Add the duplicated property\n const result = handleAddProperty(\n newKey,\n newProperty,\n isPropertyRequired(key),\n );\n\n // Notify if needed\n if (result.status === \"error\") {\n props.onPropertyAddError?.(result);\n } else {\n props.onPropertyAddSuccess?.(result);\n }\n };\n\n const onAddProperty: AddPropertyDialogProps[\"onSubmit\"] = (...vals) => {\n const result = handleAddProperty(...vals);\n\n if (result.status === \"error\") {\n props.onPropertyAddError?.(result);\n } else if (result.status === \"success\") {\n props.onPropertyAddSuccess?.(result);\n }\n setShowPropertyDialog(false);\n };\n\n // Custom property component or default renderer\n const PropertyComponent = props.propertyComponent;\n\n const renderProperty = (key: string, property: JSONSchema7) => {\n if (PropertyComponent) {\n return (\n <PropertyComponent\n key={key}\n property={{\n key,\n schema: property,\n isRequired: isPropertyRequired(key),\n }}\n onPropertyChange={handlePropertyChange}\n onKeyChange={handleKeyChange}\n onDelete={handleInitiateDelete}\n onDuplicate={handleDuplicateProperty}\n onNavigate={\n property.type === \"object\" ||\n (property.type === \"array\" &&\n typeof property.items === \"object\" &&\n (property.items as JSONSchema7).type === \"object\")\n ? handleNavigateToProperty\n : undefined\n }\n />\n );\n }\n\n // Default property renderer\n return (\n <div\n key={key}\n className=\"flex flex-col md:grid grid-cols-(--my-autofit-grid) gap-4 md:items-center border p-2 rounded-md mb-2\"\n >\n <div className=\"\">\n <DebouncedInput\n value={key}\n onDebounce={(newVal) => handleKeyChange(key, newVal)}\n placeholder=\"Property Key\"\n aria-label={`Property key for ${key}`}\n delay={500}\n />\n </div>\n\n <div className=\"flex items-center gap-2\">\n <Switch\n checked={isPropertyRequired(key)}\n onCheckedChange={(checked) =>\n handlePropertyChange(key, { isRequired: checked })\n }\n aria-label=\"Required\"\n />\n <Label htmlFor={`required-${key}`}>Required</Label>\n </div>\n\n <div className=\"\">\n <Select\n value={\n typeof property === \"object\" && !Array.isArray(property.type)\n ? property.type\n : undefined\n }\n onValueChange={(value) =>\n handlePropertyChange(key, {\n type: value as JSONSchema7[\"type\"],\n })\n }\n aria-label=\"Type\"\n >\n <SelectTrigger className=\"w-full\" aria-label=\"Select type\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={\"string\" satisfies JSONSchema7[\"type\"]}>\n string\n </SelectItem>\n <SelectItem value={\"number\" satisfies JSONSchema7[\"type\"]}>\n number\n </SelectItem>\n <SelectItem value={\"integer\" satisfies JSONSchema7[\"type\"]}>\n integer\n </SelectItem>\n <SelectItem value={\"boolean\" satisfies JSONSchema7[\"type\"]}>\n boolean\n </SelectItem>\n <SelectItem value={\"object\" satisfies JSONSchema7[\"type\"]}>\n object\n </SelectItem>\n <SelectItem value={\"array\" satisfies JSONSchema7[\"type\"]}>\n array\n </SelectItem>\n <SelectItem value={\"null\" satisfies JSONSchema7[\"type\"]}>\n null\n </SelectItem>\n <SelectItem value={\"enum\"}>enum</SelectItem>\n </SelectContent>\n </Select>\n </div>\n\n <div className=\"\">\n <DebouncedInput\n value={typeof property === \"object\" ? property.title : undefined}\n onDebounce={(newVal) =>\n handlePropertyChange(key, { title: newVal })\n }\n placeholder=\"Title\"\n />\n </div>\n\n <div className=\"\">\n <DebouncedInput\n value={\n typeof property === \"object\" ? property.description : undefined\n }\n onDebounce={(newVal) =>\n handlePropertyChange(key, { description: newVal })\n }\n placeholder=\"Description\"\n />\n </div>\n\n <div className=\"order-last md:order-none flex gap-2\">\n {/* Delete button */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => handleInitiateDelete(key)}\n aria-label=\"Delete\"\n className=\"block!\"\n >\n <Trash2 size={16} className=\"text-destructive\" />\n </Button>\n\n {/* Duplicate button */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => handleDuplicateProperty(key)}\n aria-label=\"Duplicate\"\n className=\"block!\"\n >\n <Copy size={16} />\n </Button>\n\n {/* Edit button if applicable */}\n {renderEditButton(key, property)}\n\n {/* Navigate button for objects/array items */}\n {renderNavigateButton(key, property)}\n </div>\n\n {/* Render array items configuration if needed */}\n {renderArrayItemsConfig(key, property)}\n </div>\n );\n };\n\n // Helper to render array items configuration\n const renderArrayItemsConfig = (key: string, property: JSONSchema7) => {\n if (typeof property !== \"object\" || property.type !== \"array\") {\n return null;\n }\n\n const items = property.items;\n const itemType =\n !Array.isArray(items) &&\n typeof items === \"object\" &&\n typeof items.type === \"string\"\n ? items?.type\n : \"string\";\n\n return (\n <div className=\"col-span-full flex items-center gap-4 pl-8 mt-2 bg-gray-50 p-2 rounded-md\">\n <Label>Items of type:</Label>\n <Select\n value={itemType as string}\n onValueChange={(value) => {\n const newItems: JSONSchema7 = {\n ...(typeof items === \"object\" ? items : {}),\n type: value as JSONSchema7[\"type\"],\n };\n\n if (value === \"object\") {\n // Initialize empty properties for object type\n newItems.properties = newItems.properties ?? {};\n }\n\n handlePropertyChange(key, { items: newItems });\n }}\n >\n <SelectTrigger\n className=\"w-[200px]\"\n aria-label=\"Select items of type\"\n >\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={\"string\" satisfies JSONSchema7[\"type\"]}>\n string\n </SelectItem>\n <SelectItem value={\"number\" satisfies JSONSchema7[\"type\"]}>\n number\n </SelectItem>\n <SelectItem value={\"integer\" satisfies JSONSchema7[\"type\"]}>\n integer\n </SelectItem>\n <SelectItem value={\"boolean\" satisfies JSONSchema7[\"type\"]}>\n boolean\n </SelectItem>\n <SelectItem value={\"object\" satisfies JSONSchema7[\"type\"]}>\n object\n </SelectItem>\n <SelectItem value={\"array\" satisfies JSONSchema7[\"type\"]}>\n array\n </SelectItem>\n <SelectItem value={\"null\" satisfies JSONSchema7[\"type\"]}>\n null\n </SelectItem>\n </SelectContent>\n </Select>\n\n {/* Configure object button for array items of type object */}\n {renderNavigateButton(key, items)}\n </div>\n );\n };\n\n // Helper to render the edit constraint button when needed\n const renderEditButton = (key: string, property: JSONSchema7) => {\n if (typeof property !== \"object\") return null;\n\n // Check for constraints\n const availableConstraints = getConstraintDefinitionsForType(\n typeof property.type === \"string\" ? property.type : \"\",\n );\n\n // Check for enum\n const hasEnum = Array.isArray(property?.enum);\n\n if (availableConstraints.length || hasEnum) {\n return (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => handleEditProperty(key, property)}\n aria-label=\"Edit constraints\"\n >\n <Bolt size={16} />\n </Button>\n );\n }\n\n return null;\n };\n\n const renderNavigateButton = (key: string, items: JSONSchema7[\"items\"]) => {\n if (\n !Array.isArray(items) &&\n typeof items === \"object\" &&\n items?.type === \"object\"\n ) {\n return (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => handleNavigateToProperty(key)}\n aria-label=\"Navigate\"\n >\n <span className=\"sr-only\">Navigate</span>\n <ChevronRight size={16} />\n </Button>\n );\n }\n\n return null;\n };\n\n // Render navigation component\n const renderNavigation = () => {\n const NavigationComponent = props.navigationComponent;\n\n if (NavigationComponent) {\n return (\n <NavigationComponent\n currentPath={path}\n onNavigateUp={handleNavigateUp}\n onNavigateTo={setPath}\n isRootPath={path.length === 0}\n />\n );\n }\n\n return (\n <div className=\"flex items-center space-x-4\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={handleNavigateUp}\n disabled={path.length === 0}\n className={cn(props.backButtonClassName)}\n >\n Back\n </Button>\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"#\" onClick={() => setPath([])}>\n Root\n </BreadcrumbLink>\n </BreadcrumbItem>\n {path.map((item, index) => (\n <Fragment key={`path-${index}`}>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbLink\n href=\"#\"\n onClick={() => setPath(path.slice(0, index + 1))}\n >\n {item}\n </BreadcrumbLink>\n </BreadcrumbItem>\n </Fragment>\n ))}\n </BreadcrumbList>\n </Breadcrumb>\n </div>\n );\n };\n\n // Render add property button\n const renderAddPropertyButton = () => {\n const AddPropertyButtonComponent = props.addPropertyButtonComponent;\n\n if (AddPropertyButtonComponent) {\n return (\n <AddPropertyButtonComponent\n onClick={() => setShowPropertyDialog(true)}\n />\n );\n }\n\n return (\n <Button\n type=\"button\"\n className={cn(\"self-center\", props.addPropertyButtonClassName)}\n onClick={() => {\n setShowPropertyDialog(true);\n }}\n >\n <Plus className=\"h-4 w-4 mr-2\" />\n Add Property\n </Button>\n );\n };\n\n return (\n <div>\n {/* Schema validation error */}\n {schemaValidationError && (\n <Alert variant=\"destructive\">\n <AlertTitle>Schema Error</AlertTitle>\n <AlertDescription>{schemaValidationError}</AlertDescription>\n </Alert>\n )}\n\n {/* Navigation bar */}\n {renderNavigation()}\n\n {/* Properties list */}\n <div\n className={cn(\"mt-6 overflow-x-hidden\", props.propertiesListClassName)}\n >\n {Object.entries(currentSchema.properties ?? {}).map(\n ([key, property]) => {\n if (typeof property === \"boolean\") {\n // We don't support editing boolean properties\n return null;\n }\n\n return renderProperty(key, property);\n },\n )}\n </div>\n\n {/* Add property button */}\n {renderAddPropertyButton()}\n\n {/* Add property dialog */}\n <AddPropertyDialog\n open={showPropertyDialog}\n onOpenChange={setShowPropertyDialog}\n onSubmit={onAddProperty}\n />\n\n {/* Edit property dialog */}\n {editingKey && editingProperty && (\n <EditPropertyDialog\n propertyKey={editingKey}\n property={editingProperty}\n open={showEditDialog}\n onOpenChange={setShowEditDialog}\n onSubmit={(params) => {\n handlePropertyChange(...params);\n setEditingKey(undefined);\n setEditingProperty(undefined);\n setShowEditDialog(false);\n }}\n />\n )}\n\n {/* Delete confirmation dialog */}\n <AlertDialog open={showDeleteDialog} onOpenChange={setShowDeleteDialog}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Are you sure?</AlertDialogTitle>\n <AlertDialogDescription>\n This action cannot be undone. This will permanently delete the\n property\n {deleteKey ? ` \"${deleteKey}\"` : \"\"} from the schema.\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel onClick={handleCancelDelete}>\n Cancel\n </AlertDialogCancel>\n <AlertDialogAction onClick={handleConfirmDelete}>\n Delete\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </div>\n );\n};\n"],"names":["SchemaBuilder","props","showPropertyDialog","setShowPropertyDialog","useState","showEditDialog","setShowEditDialog","showDeleteDialog","setShowDeleteDialog","deleteKey","setDeleteKey","editingKey","setEditingKey","editingProperty","setEditingProperty","schemaValidationError","setSchemaValidationError","usePluginSystem","getCurrentSchema","setPath","path","schema","handleAddProperty","handlePropertyChange","handleKeyChange","handleDeleteProperty","setSchema","isPropertyRequired","useSchema","getConstraintDefinitionsForType","useConstraints","useEffect","validateSchema","clone","error","Ajv","currentSchema","handleNavigateToProperty","name","handleNavigateUp","handleEditProperty","key","property","handleInitiateDelete","handleConfirmDelete","handleCancelDelete","handleDuplicateProperty","currentProperties","propertyToDuplicate","newKey","newProperty","result","onAddProperty","vals","PropertyComponent","renderProperty","jsx","jsxs","DebouncedInput","newVal","Switch","checked","Label","Select","value","SelectTrigger","SelectValue","SelectContent","SelectItem","Button","Trash2","Copy","renderEditButton","renderNavigateButton","renderArrayItemsConfig","items","itemType","newItems","availableConstraints","hasEnum","Bolt","ChevronRight","renderNavigation","NavigationComponent","cn","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","item","index","Fragment","BreadcrumbSeparator","renderAddPropertyButton","AddPropertyButtonComponent","Plus","Alert","AlertTitle","AlertDescription","AddPropertyDialog","EditPropertyDialog","params","AlertDialog","AlertDialogContent","AlertDialogHeader","AlertDialogTitle","AlertDialogDescription","AlertDialogFooter","AlertDialogCancel","AlertDialogAction"],"mappings":"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"}
@@ -1,16 +1,20 @@
1
- import e from "./index.es55.js";
2
- /**
3
- * @license lucide-react v0.477.0 - ISC
4
- *
5
- * This source code is licensed under the ISC license.
6
- * See the LICENSE file in the root directory of this source tree.
7
- */
8
- const o = [
9
- ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
10
- ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
11
- ], c = e("X", o);
1
+ import * as o from "react";
2
+ import { Primitive as i } from "./index.es68.js";
3
+ import { jsx as f } from "react/jsx-runtime";
4
+ var l = "Label", e = o.forwardRef((r, a) => /* @__PURE__ */ f(
5
+ i.label,
6
+ {
7
+ ...r,
8
+ ref: a,
9
+ onMouseDown: (t) => {
10
+ t.target.closest("button, input, select, textarea") || (r.onMouseDown?.(t), !t.defaultPrevented && t.detail > 1 && t.preventDefault());
11
+ }
12
+ }
13
+ ));
14
+ e.displayName = l;
15
+ var n = e;
12
16
  export {
13
- o as __iconNode,
14
- c as default
17
+ e as Label,
18
+ n as Root
15
19
  };
16
20
  //# sourceMappingURL=index.es30.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es30.js","sources":["../../../node_modules/.pnpm/lucide-react@0.477.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/x.js"],"sourcesContent":["/**\n * @license lucide-react v0.477.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"X\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n"],"names":["__iconNode","X","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAACA,IAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAQ,CAAE;AAAA,EAC3C,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAU,CAAA;AAC7C,GACMC,IAAIC,EAAiB,KAAKF,CAAU;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es30.js","sources":["../../../node_modules/.pnpm/@radix-ui+react-label@2.1.2_@types+react-dom@18.3.5_@types+react@18.3.18__@types+react@_39ef6ff1fab5609543b645ba4602f392/node_modules/@radix-ui/react-label/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// packages/react/label/src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["NAME","Label","React","props","forwardedRef","jsx","Primitive","event","Root"],"mappings":";;;AAMA,IAAIA,IAAO,SACPC,IAAQC,EAAM,WAAW,CAACC,GAAOC,MACZ,gBAAAC;AAAA,EACrBC,EAAU;AAAA,EACV;AAAA,IACE,GAAGH;AAAA,IACH,KAAKC;AAAA,IACL,aAAa,CAACG,MAAU;AAEtB,MADeA,EAAM,OACV,QAAQ,iCAAiC,MACpDJ,EAAM,cAAcI,CAAK,GACrB,CAACA,EAAM,oBAAoBA,EAAM,SAAS,KAAGA,EAAM,eAAgB;AAAA,IAC/E;AAAA,EACA;AACG,CACF;AACDN,EAAM,cAAcD;AACjB,IAACQ,IAAOP;","x_google_ignoreList":[0]}
@@ -1,11 +1,18 @@
1
- import { __module as e } from "./index.es32.js";
2
- import { __require as i } from "./index.es33.js";
3
- import { __require as t } from "./index.es34.js";
4
- var r;
5
- function m() {
6
- return r ? e.exports : (r = 1, process.env.NODE_ENV === "production" ? e.exports = i() : e.exports = t(), e.exports);
1
+ function a(r) {
2
+ var n, f, t = "";
3
+ if (typeof r == "string" || typeof r == "number") t += r;
4
+ else if (typeof r == "object") if (Array.isArray(r)) {
5
+ var o = r.length;
6
+ for (n = 0; n < o; n++) r[n] && (f = a(r[n])) && (t && (t += " "), t += f);
7
+ } else for (f in r) r[f] && (t && (t += " "), t += f);
8
+ return t;
9
+ }
10
+ function i() {
11
+ for (var r, n, f = 0, t = "", o = arguments.length; f < o; f++) (r = arguments[f]) && (n = a(r)) && (t && (t += " "), t += n);
12
+ return t;
7
13
  }
8
14
  export {
9
- m as __require
15
+ i as clsx,
16
+ i as default
10
17
  };
11
18
  //# sourceMappingURL=index.es31.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es31.js","sources":["../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n"],"names":["jsxRuntimeModule","require$$0","require$$1"],"mappings":";;;;;iCAEI,QAAQ,IAAI,aAAa,eAC3BA,EAAA,UAAiBC,EAAoD,IAErED,EAAA,UAAiBE,EAAiD;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es31.js","sources":["../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;"],"names":["r","e","t","n","clsx"],"mappings":"AAAA,SAASA,EAAEC,GAAE;AAAC,MAAIC,GAAE,GAAEC,IAAE;AAAG,MAAa,OAAOF,KAAjB,YAA8B,OAAOA,KAAjB,SAAmB,CAAAE,KAAGF;AAAA,WAAoB,OAAOA,KAAjB,SAAmB,KAAG,MAAM,QAAQA,CAAC,GAAE;AAAC,QAAI,IAAEA,EAAE;AAAO,SAAIC,IAAE,GAAEA,IAAE,GAAEA,IAAI,CAAAD,EAAEC,CAAC,MAAI,IAAEF,EAAEC,EAAEC,CAAC,CAAC,OAAKC,MAAIA,KAAG,MAAKA,KAAG;AAAA,EAAE,MAAM,MAAI,KAAKF,EAAE,CAAAA,EAAE,CAAC,MAAIE,MAAIA,KAAG,MAAKA,KAAG;AAAG,SAAOA;AAAC;AAAQ,SAASC,IAAM;AAAC,WAAQH,GAAEC,GAAE,IAAE,GAAEC,IAAE,IAAG,IAAE,UAAU,QAAO,IAAE,GAAE,IAAI,EAACF,IAAE,UAAU,CAAC,OAAKC,IAAEF,EAAEC,CAAC,OAAKE,MAAIA,KAAG,MAAKA,KAAGD;AAAG,SAAOC;AAAC;","x_google_ignoreList":[0]}