@satoshibits/react-json-schema-builder 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) 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 -1
  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.cjs104.js +2 -0
  12. package/dist/index.cjs104.js.map +1 -0
  13. package/dist/index.cjs11.js +1 -1
  14. package/dist/index.cjs11.js.map +1 -1
  15. package/dist/index.cjs12.js +1 -1
  16. package/dist/index.cjs12.js.map +1 -1
  17. package/dist/index.cjs13.js +1 -1
  18. package/dist/index.cjs13.js.map +1 -1
  19. package/dist/index.cjs14.js +1 -1
  20. package/dist/index.cjs14.js.map +1 -1
  21. package/dist/index.cjs15.js +1 -1
  22. package/dist/index.cjs15.js.map +1 -1
  23. package/dist/index.cjs16.js +1 -1
  24. package/dist/index.cjs16.js.map +1 -1
  25. package/dist/index.cjs17.js +1 -1
  26. package/dist/index.cjs17.js.map +1 -1
  27. package/dist/index.cjs18.js +1 -1
  28. package/dist/index.cjs18.js.map +1 -1
  29. package/dist/index.cjs19.js +1 -1
  30. package/dist/index.cjs19.js.map +1 -1
  31. package/dist/index.cjs2.js +1 -1
  32. package/dist/index.cjs2.js.map +1 -1
  33. package/dist/index.cjs20.js +1 -1
  34. package/dist/index.cjs20.js.map +1 -1
  35. package/dist/index.cjs21.js +1 -1
  36. package/dist/index.cjs21.js.map +1 -1
  37. package/dist/index.cjs22.js +1 -6
  38. package/dist/index.cjs22.js.map +1 -1
  39. package/dist/index.cjs23.js +2 -2
  40. package/dist/index.cjs23.js.map +1 -1
  41. package/dist/index.cjs24.js +2 -2
  42. package/dist/index.cjs24.js.map +1 -1
  43. package/dist/index.cjs25.js +2 -2
  44. package/dist/index.cjs25.js.map +1 -1
  45. package/dist/index.cjs26.js +2 -2
  46. package/dist/index.cjs26.js.map +1 -1
  47. package/dist/index.cjs27.js +6 -1
  48. package/dist/index.cjs27.js.map +1 -1
  49. package/dist/index.cjs28.js +1 -1
  50. package/dist/index.cjs28.js.map +1 -1
  51. package/dist/index.cjs29.js +1 -6
  52. package/dist/index.cjs29.js.map +1 -1
  53. package/dist/index.cjs3.js +1 -1
  54. package/dist/index.cjs3.js.map +1 -1
  55. package/dist/index.cjs30.js +6 -1
  56. package/dist/index.cjs30.js.map +1 -1
  57. package/dist/index.cjs31.js +1 -1
  58. package/dist/index.cjs31.js.map +1 -1
  59. package/dist/index.cjs32.js +1 -1
  60. package/dist/index.cjs32.js.map +1 -1
  61. package/dist/index.cjs33.js +1 -1
  62. package/dist/index.cjs33.js.map +1 -1
  63. package/dist/index.cjs34.js +1 -1
  64. package/dist/index.cjs34.js.map +1 -1
  65. package/dist/index.cjs35.js +1 -1
  66. package/dist/index.cjs35.js.map +1 -1
  67. package/dist/index.cjs36.js +1 -1
  68. package/dist/index.cjs36.js.map +1 -1
  69. package/dist/index.cjs37.js +1 -1
  70. package/dist/index.cjs37.js.map +1 -1
  71. package/dist/index.cjs38.js +6 -1
  72. package/dist/index.cjs38.js.map +1 -1
  73. package/dist/index.cjs39.js +6 -1
  74. package/dist/index.cjs39.js.map +1 -1
  75. package/dist/index.cjs4.js +1 -1
  76. package/dist/index.cjs40.js +6 -1
  77. package/dist/index.cjs40.js.map +1 -1
  78. package/dist/index.cjs41.js +1 -1
  79. package/dist/index.cjs41.js.map +1 -1
  80. package/dist/index.cjs42.js +1 -1
  81. package/dist/index.cjs42.js.map +1 -1
  82. package/dist/index.cjs43.js +1 -6
  83. package/dist/index.cjs43.js.map +1 -1
  84. package/dist/index.cjs44.js +1 -6
  85. package/dist/index.cjs44.js.map +1 -1
  86. package/dist/index.cjs45.js +1 -6
  87. package/dist/index.cjs45.js.map +1 -1
  88. package/dist/index.cjs46.js +1 -7
  89. package/dist/index.cjs46.js.map +1 -1
  90. package/dist/index.cjs47.js +7 -1
  91. package/dist/index.cjs47.js.map +1 -1
  92. package/dist/index.cjs48.js +1 -6
  93. package/dist/index.cjs48.js.map +1 -1
  94. package/dist/index.cjs49.js +1 -6
  95. package/dist/index.cjs49.js.map +1 -1
  96. package/dist/index.cjs5.js +1 -1
  97. package/dist/index.cjs50.js +1 -6
  98. package/dist/index.cjs50.js.map +1 -1
  99. package/dist/index.cjs51.js +2 -2
  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 +6 -5
  106. package/dist/index.cjs54.js.map +1 -1
  107. package/dist/index.cjs55.js +5 -1
  108. package/dist/index.cjs55.js.map +1 -1
  109. package/dist/index.cjs56.js +1 -1
  110. package/dist/index.cjs56.js.map +1 -1
  111. package/dist/index.cjs58.js +1 -1
  112. package/dist/index.cjs58.js.map +1 -1
  113. package/dist/index.cjs59.js +1 -1
  114. package/dist/index.cjs59.js.map +1 -1
  115. package/dist/index.cjs6.js +1 -1
  116. package/dist/index.cjs60.js +1 -1
  117. package/dist/index.cjs60.js.map +1 -1
  118. package/dist/index.cjs61.js +1 -1
  119. package/dist/index.cjs61.js.map +1 -1
  120. package/dist/index.cjs62.js +1 -1
  121. package/dist/index.cjs62.js.map +1 -1
  122. package/dist/index.cjs63.js +1 -1
  123. package/dist/index.cjs63.js.map +1 -1
  124. package/dist/index.cjs64.js +1 -1
  125. package/dist/index.cjs64.js.map +1 -1
  126. package/dist/index.cjs65.js +1 -1
  127. package/dist/index.cjs65.js.map +1 -1
  128. package/dist/index.cjs66.js +1 -1
  129. package/dist/index.cjs66.js.map +1 -1
  130. package/dist/index.cjs67.js +1 -1
  131. package/dist/index.cjs67.js.map +1 -1
  132. package/dist/index.cjs68.js +1 -1
  133. package/dist/index.cjs68.js.map +1 -1
  134. package/dist/index.cjs69.js +1 -1
  135. package/dist/index.cjs69.js.map +1 -1
  136. package/dist/index.cjs7.js +1 -1
  137. package/dist/index.cjs70.js +1 -1
  138. package/dist/index.cjs70.js.map +1 -1
  139. package/dist/index.cjs71.js +1 -1
  140. package/dist/index.cjs71.js.map +1 -1
  141. package/dist/index.cjs72.js +1 -1
  142. package/dist/index.cjs72.js.map +1 -1
  143. package/dist/index.cjs73.js +1 -1
  144. package/dist/index.cjs73.js.map +1 -1
  145. package/dist/index.cjs74.js +1 -1
  146. package/dist/index.cjs74.js.map +1 -1
  147. package/dist/index.cjs75.js +1 -1
  148. package/dist/index.cjs75.js.map +1 -1
  149. package/dist/index.cjs76.js +1 -1
  150. package/dist/index.cjs76.js.map +1 -1
  151. package/dist/index.cjs77.js +1 -1
  152. package/dist/index.cjs77.js.map +1 -1
  153. package/dist/index.cjs78.js +1 -1
  154. package/dist/index.cjs78.js.map +1 -1
  155. package/dist/index.cjs79.js +1 -1
  156. package/dist/index.cjs79.js.map +1 -1
  157. package/dist/index.cjs8.js +1 -1
  158. package/dist/index.cjs80.js +1 -1
  159. package/dist/index.cjs80.js.map +1 -1
  160. package/dist/index.cjs81.js +1 -1
  161. package/dist/index.cjs81.js.map +1 -1
  162. package/dist/index.cjs82.js +1 -1
  163. package/dist/index.cjs82.js.map +1 -1
  164. package/dist/index.cjs83.js +1 -1
  165. package/dist/index.cjs83.js.map +1 -1
  166. package/dist/index.cjs84.js +1 -1
  167. package/dist/index.cjs84.js.map +1 -1
  168. package/dist/index.cjs85.js +1 -1
  169. package/dist/index.cjs85.js.map +1 -1
  170. package/dist/index.cjs86.js +1 -1
  171. package/dist/index.cjs86.js.map +1 -1
  172. package/dist/index.cjs87.js +1 -1
  173. package/dist/index.cjs87.js.map +1 -1
  174. package/dist/index.cjs88.js +1 -4
  175. package/dist/index.cjs88.js.map +1 -1
  176. package/dist/index.cjs89.js +4 -1
  177. package/dist/index.cjs89.js.map +1 -1
  178. package/dist/index.cjs9.js +1 -1
  179. package/dist/index.cjs9.js.map +1 -1
  180. package/dist/index.cjs90.js +1 -1
  181. package/dist/index.cjs90.js.map +1 -1
  182. package/dist/index.cjs91.js +1 -1
  183. package/dist/index.cjs91.js.map +1 -1
  184. package/dist/index.cjs92.js +1 -1
  185. package/dist/index.cjs92.js.map +1 -1
  186. package/dist/index.cjs93.js +1 -1
  187. package/dist/index.cjs93.js.map +1 -1
  188. package/dist/index.cjs94.js +1 -38
  189. package/dist/index.cjs94.js.map +1 -1
  190. package/dist/index.cjs95.js +38 -1
  191. package/dist/index.cjs95.js.map +1 -1
  192. package/dist/index.cjs96.js +1 -1
  193. package/dist/index.cjs96.js.map +1 -1
  194. package/dist/index.cjs97.js +1 -1
  195. package/dist/index.cjs97.js.map +1 -1
  196. package/dist/index.cjs98.js +1 -1
  197. package/dist/index.cjs98.js.map +1 -1
  198. package/dist/index.cjs99.js +1 -1
  199. package/dist/index.cjs99.js.map +1 -1
  200. package/dist/index.es10.js +22 -46
  201. package/dist/index.es10.js.map +1 -1
  202. package/dist/index.es100.js +23 -23
  203. package/dist/index.es100.js.map +1 -1
  204. package/dist/index.es101.js +21 -11
  205. package/dist/index.es101.js.map +1 -1
  206. package/dist/index.es102.js +11 -26
  207. package/dist/index.es102.js.map +1 -1
  208. package/dist/index.es103.js +27 -4
  209. package/dist/index.es103.js.map +1 -1
  210. package/dist/index.es104.js +8 -0
  211. package/dist/index.es104.js.map +1 -0
  212. package/dist/index.es11.js +38 -57
  213. package/dist/index.es11.js.map +1 -1
  214. package/dist/index.es12.js +58 -21
  215. package/dist/index.es12.js.map +1 -1
  216. package/dist/index.es13.js +21 -126
  217. package/dist/index.es13.js.map +1 -1
  218. package/dist/index.es14.js +125 -11
  219. package/dist/index.es14.js.map +1 -1
  220. package/dist/index.es15.js +17 -132
  221. package/dist/index.es15.js.map +1 -1
  222. package/dist/index.es16.js +130 -133
  223. package/dist/index.es16.js.map +1 -1
  224. package/dist/index.es17.js +114 -40
  225. package/dist/index.es17.js.map +1 -1
  226. package/dist/index.es18.js +62 -9
  227. package/dist/index.es18.js.map +1 -1
  228. package/dist/index.es19.js +11 -23
  229. package/dist/index.es19.js.map +1 -1
  230. package/dist/index.es2.js +94 -85
  231. package/dist/index.es2.js.map +1 -1
  232. package/dist/index.es20.js +20 -422
  233. package/dist/index.es20.js.map +1 -1
  234. package/dist/index.es21.js +424 -5
  235. package/dist/index.es21.js.map +1 -1
  236. package/dist/index.es22.js +6 -13
  237. package/dist/index.es22.js.map +1 -1
  238. package/dist/index.es23.js +7 -10
  239. package/dist/index.es23.js.map +1 -1
  240. package/dist/index.es24.js +10 -7
  241. package/dist/index.es24.js.map +1 -1
  242. package/dist/index.es25.js +6 -12
  243. package/dist/index.es25.js.map +1 -1
  244. package/dist/index.es26.js +13 -4
  245. package/dist/index.es26.js.map +1 -1
  246. package/dist/index.es27.js +10 -19
  247. package/dist/index.es27.js.map +1 -1
  248. package/dist/index.es28.js +18 -22
  249. package/dist/index.es28.js.map +1 -1
  250. package/dist/index.es29.js +23 -13
  251. package/dist/index.es29.js.map +1 -1
  252. package/dist/index.es3.js +160 -165
  253. package/dist/index.es3.js.map +1 -1
  254. package/dist/index.es30.js +13 -17
  255. package/dist/index.es30.js.map +1 -1
  256. package/dist/index.es31.js +17 -15
  257. package/dist/index.es31.js.map +1 -1
  258. package/dist/index.es32.js +13 -2475
  259. package/dist/index.es32.js.map +1 -1
  260. package/dist/index.es33.js +2472 -36
  261. package/dist/index.es33.js.map +1 -1
  262. package/dist/index.es34.js +41 -33
  263. package/dist/index.es34.js.map +1 -1
  264. package/dist/index.es35.js +32 -115
  265. package/dist/index.es35.js.map +1 -1
  266. package/dist/index.es36.js +108 -106
  267. package/dist/index.es36.js.map +1 -1
  268. package/dist/index.es37.js +824 -48
  269. package/dist/index.es37.js.map +1 -1
  270. package/dist/index.es38.js +10 -24
  271. package/dist/index.es38.js.map +1 -1
  272. package/dist/index.es39.js +10 -45
  273. package/dist/index.es39.js.map +1 -1
  274. package/dist/index.es4.js +1 -1
  275. package/dist/index.es40.js +10 -86
  276. package/dist/index.es40.js.map +1 -1
  277. package/dist/index.es41.js +110 -56
  278. package/dist/index.es41.js.map +1 -1
  279. package/dist/index.es42.js +48 -824
  280. package/dist/index.es42.js.map +1 -1
  281. package/dist/index.es43.js +24 -10
  282. package/dist/index.es43.js.map +1 -1
  283. package/dist/index.es44.js +45 -10
  284. package/dist/index.es44.js.map +1 -1
  285. package/dist/index.es45.js +86 -10
  286. package/dist/index.es45.js.map +1 -1
  287. package/dist/index.es46.js +57 -120
  288. package/dist/index.es46.js.map +1 -1
  289. package/dist/index.es47.js +122 -62
  290. package/dist/index.es47.js.map +1 -1
  291. package/dist/index.es48.js +63 -21
  292. package/dist/index.es48.js.map +1 -1
  293. package/dist/index.es49.js +8 -9
  294. package/dist/index.es49.js.map +1 -1
  295. package/dist/index.es5.js +7 -7
  296. package/dist/index.es50.js +5 -38
  297. package/dist/index.es50.js.map +1 -1
  298. package/dist/index.es51.js +14 -11
  299. package/dist/index.es51.js.map +1 -1
  300. package/dist/index.es52.js +9 -8
  301. package/dist/index.es52.js.map +1 -1
  302. package/dist/index.es53.js +38 -5
  303. package/dist/index.es53.js.map +1 -1
  304. package/dist/index.es54.js +17 -254
  305. package/dist/index.es54.js.map +1 -1
  306. package/dist/index.es55.js +251 -18
  307. package/dist/index.es55.js.map +1 -1
  308. package/dist/index.es56.js +21 -26
  309. package/dist/index.es56.js.map +1 -1
  310. package/dist/index.es58.js +23 -62
  311. package/dist/index.es58.js.map +1 -1
  312. package/dist/index.es59.js +63 -27
  313. package/dist/index.es59.js.map +1 -1
  314. package/dist/index.es6.js +6 -6
  315. package/dist/index.es60.js +29 -5
  316. package/dist/index.es60.js.map +1 -1
  317. package/dist/index.es61.js +5 -24
  318. package/dist/index.es61.js.map +1 -1
  319. package/dist/index.es62.js +24 -32
  320. package/dist/index.es62.js.map +1 -1
  321. package/dist/index.es63.js +32 -3
  322. package/dist/index.es63.js.map +1 -1
  323. package/dist/index.es64.js +3 -45
  324. package/dist/index.es64.js.map +1 -1
  325. package/dist/index.es65.js +45 -7
  326. package/dist/index.es65.js.map +1 -1
  327. package/dist/index.es66.js +7 -124
  328. package/dist/index.es66.js.map +1 -1
  329. package/dist/index.es67.js +122 -12
  330. package/dist/index.es67.js.map +1 -1
  331. package/dist/index.es68.js +14 -133
  332. package/dist/index.es68.js.map +1 -1
  333. package/dist/index.es69.js +133 -10
  334. package/dist/index.es69.js.map +1 -1
  335. package/dist/index.es7.js +6 -6
  336. package/dist/index.es70.js +10 -215
  337. package/dist/index.es70.js.map +1 -1
  338. package/dist/index.es71.js +215 -12
  339. package/dist/index.es71.js.map +1 -1
  340. package/dist/index.es72.js +13 -8
  341. package/dist/index.es72.js.map +1 -1
  342. package/dist/index.es73.js +7 -3
  343. package/dist/index.es73.js.map +1 -1
  344. package/dist/index.es74.js +3 -27
  345. package/dist/index.es74.js.map +1 -1
  346. package/dist/index.es75.js +28 -50
  347. package/dist/index.es75.js.map +1 -1
  348. package/dist/index.es76.js +50 -9
  349. package/dist/index.es76.js.map +1 -1
  350. package/dist/index.es77.js +9 -68
  351. package/dist/index.es77.js.map +1 -1
  352. package/dist/index.es78.js +67 -11
  353. package/dist/index.es78.js.map +1 -1
  354. package/dist/index.es79.js +10 -203
  355. package/dist/index.es79.js.map +1 -1
  356. package/dist/index.es8.js +7 -7
  357. package/dist/index.es80.js +203 -20
  358. package/dist/index.es80.js.map +1 -1
  359. package/dist/index.es81.js +21 -392
  360. package/dist/index.es81.js.map +1 -1
  361. package/dist/index.es82.js +390 -22
  362. package/dist/index.es82.js.map +1 -1
  363. package/dist/index.es83.js +24 -28
  364. package/dist/index.es83.js.map +1 -1
  365. package/dist/index.es84.js +29 -5
  366. package/dist/index.es84.js.map +1 -1
  367. package/dist/index.es85.js +5 -5
  368. package/dist/index.es85.js.map +1 -1
  369. package/dist/index.es86.js +5 -3
  370. package/dist/index.es86.js.map +1 -1
  371. package/dist/index.es87.js +3 -24
  372. package/dist/index.es87.js.map +1 -1
  373. package/dist/index.es88.js +22 -108
  374. package/dist/index.es88.js.map +1 -1
  375. package/dist/index.es89.js +108 -14
  376. package/dist/index.es89.js.map +1 -1
  377. package/dist/index.es9.js +3 -22
  378. package/dist/index.es9.js.map +1 -1
  379. package/dist/index.es90.js +14 -521
  380. package/dist/index.es90.js.map +1 -1
  381. package/dist/index.es91.js +509 -113
  382. package/dist/index.es91.js.map +1 -1
  383. package/dist/index.es92.js +121 -123
  384. package/dist/index.es92.js.map +1 -1
  385. package/dist/index.es93.js +125 -61
  386. package/dist/index.es93.js.map +1 -1
  387. package/dist/index.es94.js +65 -69
  388. package/dist/index.es94.js.map +1 -1
  389. package/dist/index.es95.js +68 -8
  390. package/dist/index.es95.js.map +1 -1
  391. package/dist/index.es96.js +9 -14
  392. package/dist/index.es96.js.map +1 -1
  393. package/dist/index.es97.js +14 -62
  394. package/dist/index.es97.js.map +1 -1
  395. package/dist/index.es98.js +62 -4
  396. package/dist/index.es98.js.map +1 -1
  397. package/dist/index.es99.js +3 -22
  398. package/dist/index.es99.js.map +1 -1
  399. package/dist/packages/builder/context.d.ts +12 -0
  400. package/dist/packages/builder/context.d.ts.map +1 -1
  401. package/dist/packages/builder/schema-builder.d.ts.map +1 -1
  402. package/dist/style.css +1 -1
  403. package/package.json +1 -1
@@ -1,138 +1,23 @@
1
- import { jsx as s, jsxs as u } from "react/jsx-runtime";
2
- import { useMemo as R, useEffect as V } from "react";
3
- import { Button as A } from "./index.es10.js";
4
- import { Dialog as $, DialogContent as N, DialogHeader as j, DialogTitle as w, DialogDescription as E, DialogFooter as I } from "./index.es36.js";
5
- import { Label as L } from "./index.es14.js";
6
- import { a as d } from "./index.es9.js";
7
- import { useConstraints as _ } from "./index.es4.js";
8
- import k from "./index.es37.js";
9
- import { Separator as z } from "./index.es38.js";
10
- import { AddFormSchema as B } from "./index.es20.js";
11
- import { useForm as H } from "react-hook-form";
12
- import { zodResolver as M } from "./index.es39.js";
13
- import { Form as O } from "./index.es40.js";
14
- const P = B.pick({
15
- constraints: !0,
16
- property: !0
17
- });
18
- function et({
19
- open: p,
20
- onOpenChange: f,
21
- onSubmit: h,
22
- property: i,
23
- propertyKey: g
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { Root as a } from "./index.es31.js";
3
+ import { cn as r } from "./index.es22.js";
4
+ function l({
5
+ className: e,
6
+ ...t
24
7
  }) {
25
- const e = H({
26
- resolver: M(P),
27
- defaultValues: {
28
- property: i
8
+ return /* @__PURE__ */ o(
9
+ a,
10
+ {
11
+ "data-slot": "label",
12
+ className: r(
13
+ "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
14
+ e
15
+ ),
16
+ ...t
29
17
  }
30
- }), m = e.watch("constraints"), {
31
- getConstraintDefinitionsForType: C,
32
- getRendererForConstraint: y,
33
- validateConstraintValue: v
34
- } = _(), D = (t) => {
35
- const { constraints: r } = t, a = {
36
- ...r?.reduce((n, o) => ({
37
- ...n,
38
- [o.name]: o.value
39
- }), {})
40
- };
41
- h([g, a]), e.reset();
42
- }, S = (t, r) => {
43
- const a = d(m), n = a?.[t];
44
- if (!n) {
45
- e.setError(`constraints.${t}`, {
46
- message: "The constraint was not found",
47
- type: "constraint_not_found"
48
- });
49
- return;
50
- }
51
- const o = v(
52
- n.name,
53
- r
54
- );
55
- if (o.status === "error") {
56
- let c = o.message;
57
- o.code === "invalid" && (c = `${c}: ${o.error?.map((b) => b.message).join(", ")}`), e.setError(`constraints.${t}`, {
58
- type: o.code,
59
- message: c
60
- });
61
- return;
62
- }
63
- n.value = r, e.setValue("constraints", a), e.clearErrors(`constraints.${t}`);
64
- }, F = (t) => {
65
- if (!m) return;
66
- const a = d(m).filter((n) => n.name !== t);
67
- e.setValue("constraints", a);
68
- }, l = R(() => C(
69
- typeof i?.type == "string" ? i.type : ""
70
- ), [i.type]);
71
- return V(() => {
72
- const t = [];
73
- for (const r of l)
74
- r.name in i && t.push({
75
- name: r.name,
76
- value: i[r.name]
77
- });
78
- e.setValue("constraints", t);
79
- }, [l]), /* @__PURE__ */ s($, { open: p, onOpenChange: f, children: /* @__PURE__ */ u(N, { children: [
80
- /* @__PURE__ */ u(j, { children: [
81
- /* @__PURE__ */ s(w, { children: "Edit" }),
82
- /* @__PURE__ */ s(E, { children: "Constraints and other properties" })
83
- ] }),
84
- /* @__PURE__ */ s(O, { ...e, children: /* @__PURE__ */ u(
85
- "form",
86
- {
87
- onSubmit: e.handleSubmit(D),
88
- className: "space-y-4",
89
- "data-testid": "edit-property-form",
90
- children: [
91
- l.length ? /* @__PURE__ */ u("div", { className: "space-y-2", children: [
92
- /* @__PURE__ */ s(L, { children: "Constraints" }),
93
- /* @__PURE__ */ s(
94
- k,
95
- {
96
- addedConstraints: m ?? [],
97
- availableDefinitions: l,
98
- onAdd: (t) => {
99
- e.setValue("constraints", t);
100
- }
101
- }
102
- ),
103
- /* @__PURE__ */ s(z, {}),
104
- m?.map((t, r) => {
105
- const a = y(t.name);
106
- if (!a) return null;
107
- const n = e.formState.errors.constraints?.[r];
108
- let o;
109
- return n && (o = {
110
- code: n?.type ?? "INVALID",
111
- message: n.message ?? "An error occurred"
112
- }), /* @__PURE__ */ s(
113
- a,
114
- {
115
- constraintName: t.name,
116
- value: t.value,
117
- onConstraintChange: (c) => {
118
- S(r, c);
119
- },
120
- onRemoveConstraint: () => {
121
- F(t.name);
122
- },
123
- error: o
124
- },
125
- t.name
126
- );
127
- })
128
- ] }) : null,
129
- /* @__PURE__ */ s(I, { children: /* @__PURE__ */ s(A, { type: "submit", children: "Save" }) })
130
- ]
131
- }
132
- ) })
133
- ] }) });
18
+ );
134
19
  }
135
20
  export {
136
- et as EditPropertyDialog
21
+ l as Label
137
22
  };
138
23
  //# sourceMappingURL=index.es15.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es15.js","sources":["../src/packages/builder/edit-dialog.tsx"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n DialogDescription,\n} from \"@/components/ui/dialog\";\nimport { Label } from \"@/components/ui/label\";\n\nimport type { JSONSchema7 } from \"json-schema\";\nimport { clone } from \"remeda\";\nimport { Constraint, useConstraints } from \"@/packages/constraints/context\";\nimport ConstraintsAdd from \"@/packages/constraints/constraint-add\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { z } from \"zod\";\nimport { AddFormSchema } from \"./add-dialog\";\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { OperationError } from \"./shared-types\";\nimport { Form } from \"@/components/ui/form\";\nimport { useSchema } from \"./context\";\n\nexport interface EditPropertyDialogProps {\n property: JSONSchema7;\n propertyKey: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onSubmit: (\n params: Parameters<ReturnType<typeof useSchema>[\"handlePropertyChange\"]>,\n ) => void;\n}\n\nconst EditFormSchema = AddFormSchema.pick({\n constraints: true,\n property: true,\n});\n\n/**\n * Handles editing a constraints and other properties of a JSON schema property\n * that aren't shown in the main UI.\n */\nexport function EditPropertyDialog({\n open,\n onOpenChange,\n onSubmit,\n property: propertyToEdit,\n propertyKey,\n}: EditPropertyDialogProps) {\n const form = useForm<z.infer<typeof EditFormSchema>>({\n resolver: zodResolver(EditFormSchema),\n defaultValues: {\n property: propertyToEdit,\n },\n });\n\n const currentConstraints = form.watch(\"constraints\");\n\n const {\n getConstraintDefinitionsForType,\n getRendererForConstraint,\n validateConstraintValue,\n } = useConstraints();\n\n const handleSubmit = (data: z.infer<typeof EditFormSchema>) => {\n const { constraints } = data;\n const propertyUpdatesOnly: JSONSchema7 = {\n ...constraints?.reduce((acc, constraint) => {\n return {\n ...acc,\n [constraint.name]: constraint.value,\n } satisfies JSONSchema7;\n }, {}),\n };\n onSubmit([propertyKey, propertyUpdatesOnly]);\n form.reset();\n };\n\n const handleConstraintChange = (\n index: number,\n newVal: Constraint[\"value\"],\n ) => {\n const constraintsCopy = clone(currentConstraints);\n\n const constraintToChange = constraintsCopy?.[index];\n\n if (!constraintToChange) {\n form.setError(`constraints.${index}`, {\n message: \"The constraint was not found\",\n type: \"constraint_not_found\",\n });\n return;\n }\n\n const validationResult = validateConstraintValue(\n constraintToChange.name,\n newVal,\n );\n\n if (validationResult.status === \"error\") {\n let message = validationResult.message;\n if (validationResult.code === \"invalid\") {\n message = `${message}: ${validationResult.error?.map((i) => i.message).join(\", \")}`;\n }\n form.setError(`constraints.${index}`, {\n type: validationResult.code,\n message,\n });\n return;\n }\n\n //edit reference\n constraintToChange.value = newVal;\n form.setValue(\"constraints\", constraintsCopy);\n form.clearErrors(`constraints.${index}`);\n };\n\n const handleRemoveConstraint = (constraintName: Constraint[\"name\"]) => {\n if (!currentConstraints) return;\n const copy = clone(currentConstraints);\n const newConstraints = copy.filter((c) => c.name !== constraintName);\n form.setValue(\"constraints\", newConstraints);\n };\n\n const availableDefinitions = useMemo(() => {\n return getConstraintDefinitionsForType(\n typeof propertyToEdit?.type === \"string\" ? propertyToEdit.type : \"\",\n );\n }, [propertyToEdit.type]);\n\n useEffect(() => {\n //get the current constraints from the property based on the available definitions\n const newConstraints: Constraint[] = [];\n for (const constraintDef of availableDefinitions) {\n if (constraintDef.name in propertyToEdit) {\n newConstraints.push({\n name: constraintDef.name,\n value: propertyToEdit[constraintDef.name],\n });\n }\n }\n form.setValue(\"constraints\", newConstraints);\n }, [availableDefinitions]);\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Edit</DialogTitle>\n <DialogDescription>\n Constraints and other properties\n </DialogDescription>\n </DialogHeader>\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(handleSubmit)}\n className=\"space-y-4\"\n data-testid=\"edit-property-form\"\n >\n {availableDefinitions.length ? (\n <div className=\"space-y-2\">\n <Label>Constraints</Label>\n <ConstraintsAdd\n addedConstraints={currentConstraints ?? []}\n availableDefinitions={availableDefinitions}\n onAdd={(newConstraints) => {\n form.setValue(\"constraints\", newConstraints);\n }}\n />\n <Separator />\n {currentConstraints?.map((constraint, i) => {\n const Renderer = getRendererForConstraint(constraint.name);\n if (!Renderer) return null;\n\n const error = form.formState.errors.constraints?.[i];\n let mappedError: OperationError | undefined;\n\n if (error) {\n mappedError = {\n code: error?.type ?? \"INVALID\",\n message: error.message ?? \"An error occurred\",\n };\n }\n\n return (\n <Renderer\n key={constraint.name}\n constraintName={constraint.name}\n value={constraint.value}\n onConstraintChange={(newVal) => {\n handleConstraintChange(i, newVal);\n }}\n onRemoveConstraint={() => {\n handleRemoveConstraint(constraint.name);\n }}\n error={mappedError}\n />\n );\n })}\n </div>\n ) : null}\n\n <DialogFooter>\n <Button type=\"submit\">Save</Button>\n </DialogFooter>\n </form>\n </Form>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":["EditFormSchema","AddFormSchema","EditPropertyDialog","open","onOpenChange","onSubmit","propertyToEdit","propertyKey","form","useForm","zodResolver","currentConstraints","getConstraintDefinitionsForType","getRendererForConstraint","validateConstraintValue","useConstraints","handleSubmit","data","constraints","propertyUpdatesOnly","acc","constraint","handleConstraintChange","index","newVal","constraintsCopy","clone","constraintToChange","validationResult","message","i","handleRemoveConstraint","constraintName","newConstraints","c","availableDefinitions","useMemo","useEffect","constraintDef","jsx","Dialog","DialogContent","jsxs","DialogHeader","DialogTitle","DialogDescription","Form","Label","ConstraintsAdd","Separator","Renderer","error","mappedError","DialogFooter","Button"],"mappings":"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"}
1
+ {"version":3,"file":"index.es15.js","sources":["../src/components/ui/label.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"],"names":["Label","className","props","jsx","LabelPrimitive.Root","cn"],"mappings":";;;AAOA,SAASA,EAAM;AAAA,EACb,WAAAC;AAAA,EACA,GAAGC;AACL,GAAqD;AAEjD,SAAA,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EACN;AAEJ;"}
@@ -1,141 +1,138 @@
1
- import { jsx as e, jsxs as r } from "react/jsx-runtime";
2
- import { Root as n, Content as i, Title as s, Description as d, Cancel as c, Action as u, Portal as f, Overlay as m } from "./index.es46.js";
3
- import { cn as o } from "./index.es21.js";
4
- import { buttonVariants as l } from "./index.es10.js";
5
- function N({
6
- ...t
1
+ import { jsx as s, jsxs as u } from "react/jsx-runtime";
2
+ import { useMemo as R, useEffect as V } from "react";
3
+ import { Button as A } from "./index.es11.js";
4
+ import { Dialog as $, DialogContent as N, DialogHeader as j, DialogTitle as w, DialogDescription as E, DialogFooter as I } from "./index.es41.js";
5
+ import { Label as L } from "./index.es15.js";
6
+ import { a as d } from "./index.es10.js";
7
+ import { useConstraints as _ } from "./index.es4.js";
8
+ import k from "./index.es42.js";
9
+ import { Separator as z } from "./index.es43.js";
10
+ import { AddFormSchema as B } from "./index.es21.js";
11
+ import { useForm as H } from "react-hook-form";
12
+ import { zodResolver as M } from "./index.es44.js";
13
+ import { Form as O } from "./index.es45.js";
14
+ const P = B.pick({
15
+ constraints: !0,
16
+ property: !0
17
+ });
18
+ function et({
19
+ open: p,
20
+ onOpenChange: f,
21
+ onSubmit: h,
22
+ property: i,
23
+ propertyKey: g
7
24
  }) {
8
- return /* @__PURE__ */ e(n, { "data-slot": "alert-dialog", ...t });
9
- }
10
- function g({
11
- ...t
12
- }) {
13
- return /* @__PURE__ */ e(f, { "data-slot": "alert-dialog-portal", ...t });
14
- }
15
- function p({
16
- className: t,
17
- ...a
18
- }) {
19
- return /* @__PURE__ */ e(
20
- m,
21
- {
22
- "data-slot": "alert-dialog-overlay",
23
- className: o(
24
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",
25
- t
26
- ),
27
- ...a
28
- }
29
- );
30
- }
31
- function b({
32
- className: t,
33
- ...a
34
- }) {
35
- return /* @__PURE__ */ r(g, { children: [
36
- /* @__PURE__ */ e(p, {}),
37
- /* @__PURE__ */ e(
38
- i,
39
- {
40
- "data-slot": "alert-dialog-content",
41
- className: o(
42
- "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
43
- t
44
- ),
45
- ...a
46
- }
47
- )
48
- ] });
49
- }
50
- function y({
51
- className: t,
52
- ...a
53
- }) {
54
- return /* @__PURE__ */ e(
55
- "div",
56
- {
57
- "data-slot": "alert-dialog-header",
58
- className: o("flex flex-col gap-2 text-center sm:text-left", t),
59
- ...a
60
- }
61
- );
62
- }
63
- function w({
64
- className: t,
65
- ...a
66
- }) {
67
- return /* @__PURE__ */ e(
68
- "div",
69
- {
70
- "data-slot": "alert-dialog-footer",
71
- className: o(
72
- "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
73
- t
74
- ),
75
- ...a
25
+ const e = H({
26
+ resolver: M(P),
27
+ defaultValues: {
28
+ property: i
76
29
  }
77
- );
78
- }
79
- function C({
80
- className: t,
81
- ...a
82
- }) {
83
- return /* @__PURE__ */ e(
84
- s,
85
- {
86
- "data-slot": "alert-dialog-title",
87
- className: o("text-lg font-semibold", t),
88
- ...a
30
+ }), m = e.watch("constraints"), {
31
+ getConstraintDefinitionsForType: C,
32
+ getRendererForConstraint: y,
33
+ validateConstraintValue: v
34
+ } = _(), D = (t) => {
35
+ const { constraints: r } = t, a = {
36
+ ...r?.reduce((n, o) => ({
37
+ ...n,
38
+ [o.name]: o.value
39
+ }), {})
40
+ };
41
+ h([g, a]), e.reset();
42
+ }, S = (t, r) => {
43
+ const a = d(m), n = a?.[t];
44
+ if (!n) {
45
+ e.setError(`constraints.${t}`, {
46
+ message: "The constraint was not found",
47
+ type: "constraint_not_found"
48
+ });
49
+ return;
89
50
  }
90
- );
91
- }
92
- function z({
93
- className: t,
94
- ...a
95
- }) {
96
- return /* @__PURE__ */ e(
97
- d,
98
- {
99
- "data-slot": "alert-dialog-description",
100
- className: o("text-muted-foreground text-sm", t),
101
- ...a
51
+ const o = v(
52
+ n.name,
53
+ r
54
+ );
55
+ if (o.status === "error") {
56
+ let c = o.message;
57
+ o.code === "invalid" && (c = `${c}: ${o.error?.map((b) => b.message).join(", ")}`), e.setError(`constraints.${t}`, {
58
+ type: o.code,
59
+ message: c
60
+ });
61
+ return;
102
62
  }
103
- );
104
- }
105
- function h({
106
- className: t,
107
- ...a
108
- }) {
109
- return /* @__PURE__ */ e(
110
- u,
111
- {
112
- className: o(l(), t),
113
- ...a
114
- }
115
- );
116
- }
117
- function j({
118
- className: t,
119
- ...a
120
- }) {
121
- return /* @__PURE__ */ e(
122
- c,
123
- {
124
- className: o(l({ variant: "outline" }), t),
125
- ...a
126
- }
127
- );
63
+ n.value = r, e.setValue("constraints", a), e.clearErrors(`constraints.${t}`);
64
+ }, F = (t) => {
65
+ if (!m) return;
66
+ const a = d(m).filter((n) => n.name !== t);
67
+ e.setValue("constraints", a);
68
+ }, l = R(() => C(
69
+ typeof i?.type == "string" ? i.type : ""
70
+ ), [i.type]);
71
+ return V(() => {
72
+ const t = [];
73
+ for (const r of l)
74
+ r.name in i && t.push({
75
+ name: r.name,
76
+ value: i[r.name]
77
+ });
78
+ e.setValue("constraints", t);
79
+ }, [l]), /* @__PURE__ */ s($, { open: p, onOpenChange: f, children: /* @__PURE__ */ u(N, { children: [
80
+ /* @__PURE__ */ u(j, { children: [
81
+ /* @__PURE__ */ s(w, { children: "Edit" }),
82
+ /* @__PURE__ */ s(E, { children: "Constraints and other properties" })
83
+ ] }),
84
+ /* @__PURE__ */ s(O, { ...e, children: /* @__PURE__ */ u(
85
+ "form",
86
+ {
87
+ onSubmit: e.handleSubmit(D),
88
+ className: "space-y-4",
89
+ "data-testid": "edit-property-form",
90
+ children: [
91
+ l.length ? /* @__PURE__ */ u("div", { className: "space-y-2", children: [
92
+ /* @__PURE__ */ s(L, { children: "Constraints" }),
93
+ /* @__PURE__ */ s(
94
+ k,
95
+ {
96
+ addedConstraints: m ?? [],
97
+ availableDefinitions: l,
98
+ onAdd: (t) => {
99
+ e.setValue("constraints", t);
100
+ }
101
+ }
102
+ ),
103
+ /* @__PURE__ */ s(z, {}),
104
+ m?.map((t, r) => {
105
+ const a = y(t.name);
106
+ if (!a) return null;
107
+ const n = e.formState.errors.constraints?.[r];
108
+ let o;
109
+ return n && (o = {
110
+ code: n?.type ?? "INVALID",
111
+ message: n.message ?? "An error occurred"
112
+ }), /* @__PURE__ */ s(
113
+ a,
114
+ {
115
+ constraintName: t.name,
116
+ value: t.value,
117
+ onConstraintChange: (c) => {
118
+ S(r, c);
119
+ },
120
+ onRemoveConstraint: () => {
121
+ F(t.name);
122
+ },
123
+ error: o
124
+ },
125
+ t.name
126
+ );
127
+ })
128
+ ] }) : null,
129
+ /* @__PURE__ */ s(I, { children: /* @__PURE__ */ s(A, { type: "submit", children: "Save" }) })
130
+ ]
131
+ }
132
+ ) })
133
+ ] }) });
128
134
  }
129
135
  export {
130
- N as AlertDialog,
131
- h as AlertDialogAction,
132
- j as AlertDialogCancel,
133
- b as AlertDialogContent,
134
- z as AlertDialogDescription,
135
- w as AlertDialogFooter,
136
- y as AlertDialogHeader,
137
- p as AlertDialogOverlay,
138
- g as AlertDialogPortal,
139
- C as AlertDialogTitle
136
+ et as EditPropertyDialog
140
137
  };
141
138
  //# sourceMappingURL=index.es16.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es16.js","sources":["../src/components/ui/alert-dialog.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\nfunction AlertDialog({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n )\n}\n\nfunction AlertDialogPortal({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n )\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogContent({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants(), className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogCancel({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant: \"outline\" }), className)}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n"],"names":["AlertDialog","props","AlertDialogPrimitive.Root","AlertDialogPortal","AlertDialogPrimitive.Portal","AlertDialogOverlay","className","jsx","AlertDialogPrimitive.Overlay","cn","AlertDialogContent","AlertDialogPrimitive.Content","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogPrimitive.Title","AlertDialogDescription","AlertDialogPrimitive.Description","AlertDialogAction","AlertDialogPrimitive.Action","buttonVariants","AlertDialogCancel","AlertDialogPrimitive.Cancel"],"mappings":";;;;AAMA,SAASA,EAAY;AAAA,EACnB,GAAGC;AACL,GAA2D;AACzD,2BAAQC,GAAA,EAA0B,aAAU,gBAAgB,GAAGD,GAAO;AACxE;AAUA,SAASE,EAAkB;AAAA,EACzB,GAAGF;AACL,GAA6D;AAC3D,2BACGG,GAAA,EAA4B,aAAU,uBAAuB,GAAGH,GAAO;AAE5E;AAEA,SAASI,EAAmB;AAAA,EAC1B,WAAAC;AAAA,EACA,GAAGL;AACL,GAA8D;AAE1D,SAAA,gBAAAM;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MACF;AAAA,MACC,GAAGL;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAASS,EAAmB;AAAA,EAC1B,WAAAJ;AAAA,EACA,GAAGL;AACL,GAA8D;AAC5D,2BACGE,GACC,EAAA,UAAA;AAAA,IAAA,gBAAAI,EAACF,GAAmB,EAAA;AAAA,IACpB,gBAAAE;AAAA,MAACI;AAAAA,MAAA;AAAA,QACC,aAAU;AAAA,QACV,WAAWF;AAAA,UACT;AAAA,UACAH;AAAA,QACF;AAAA,QACC,GAAGL;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,GACF;AAEJ;AAEA,SAASW,EAAkB;AAAA,EACzB,WAAAN;AAAA,EACA,GAAGL;AACL,GAAgC;AAE5B,SAAA,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWE,EAAG,gDAAgDH,CAAS;AAAA,MACtE,GAAGL;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAASY,EAAkB;AAAA,EACzB,WAAAP;AAAA,EACA,GAAGL;AACL,GAAgC;AAE5B,SAAA,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWE;AAAA,QACT;AAAA,QACAH;AAAA,MACF;AAAA,MACC,GAAGL;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAASa,EAAiB;AAAA,EACxB,WAAAR;AAAA,EACA,GAAGL;AACL,GAA4D;AAExD,SAAA,gBAAAM;AAAA,IAACQ;AAAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWN,EAAG,yBAAyBH,CAAS;AAAA,MAC/C,GAAGL;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAASe,EAAuB;AAAA,EAC9B,WAAAV;AAAA,EACA,GAAGL;AACL,GAAkE;AAE9D,SAAA,gBAAAM;AAAA,IAACU;AAAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWR,EAAG,iCAAiCH,CAAS;AAAA,MACvD,GAAGL;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAASiB,EAAkB;AAAA,EACzB,WAAAZ;AAAA,EACA,GAAGL;AACL,GAA6D;AAEzD,SAAA,gBAAAM;AAAA,IAACY;AAAAA,IAAA;AAAA,MACC,WAAWV,EAAGW,EAAe,GAAGd,CAAS;AAAA,MACxC,GAAGL;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAASoB,EAAkB;AAAA,EACzB,WAAAf;AAAA,EACA,GAAGL;AACL,GAA6D;AAEzD,SAAA,gBAAAM;AAAA,IAACe;AAAAA,IAAA;AAAA,MACC,WAAWb,EAAGW,EAAe,EAAE,SAAS,UAAU,CAAC,GAAGd,CAAS;AAAA,MAC9D,GAAGL;AAAA,IAAA;AAAA,EACN;AAEJ;"}
1
+ {"version":3,"file":"index.es16.js","sources":["../src/packages/builder/edit-dialog.tsx"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n DialogDescription,\n} from \"@/components/ui/dialog\";\nimport { Label } from \"@/components/ui/label\";\n\nimport type { JSONSchema7 } from \"json-schema\";\nimport { clone } from \"remeda\";\nimport { Constraint, useConstraints } from \"@/packages/constraints/context\";\nimport ConstraintsAdd from \"@/packages/constraints/constraint-add\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { z } from \"zod\";\nimport { AddFormSchema } from \"./add-dialog\";\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { OperationError } from \"./shared-types\";\nimport { Form } from \"@/components/ui/form\";\nimport { useSchema } from \"./context\";\n\nexport interface EditPropertyDialogProps {\n property: JSONSchema7;\n propertyKey: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onSubmit: (\n params: Parameters<ReturnType<typeof useSchema>[\"handlePropertyChange\"]>,\n ) => void;\n}\n\nconst EditFormSchema = AddFormSchema.pick({\n constraints: true,\n property: true,\n});\n\n/**\n * Handles editing a constraints and other properties of a JSON schema property\n * that aren't shown in the main UI.\n */\nexport function EditPropertyDialog({\n open,\n onOpenChange,\n onSubmit,\n property: propertyToEdit,\n propertyKey,\n}: EditPropertyDialogProps) {\n const form = useForm<z.infer<typeof EditFormSchema>>({\n resolver: zodResolver(EditFormSchema),\n defaultValues: {\n property: propertyToEdit,\n },\n });\n\n const currentConstraints = form.watch(\"constraints\");\n\n const {\n getConstraintDefinitionsForType,\n getRendererForConstraint,\n validateConstraintValue,\n } = useConstraints();\n\n const handleSubmit = (data: z.infer<typeof EditFormSchema>) => {\n const { constraints } = data;\n const propertyUpdatesOnly: JSONSchema7 = {\n ...constraints?.reduce((acc, constraint) => {\n return {\n ...acc,\n [constraint.name]: constraint.value,\n } satisfies JSONSchema7;\n }, {}),\n };\n onSubmit([propertyKey, propertyUpdatesOnly]);\n form.reset();\n };\n\n const handleConstraintChange = (\n index: number,\n newVal: Constraint[\"value\"],\n ) => {\n const constraintsCopy = clone(currentConstraints);\n\n const constraintToChange = constraintsCopy?.[index];\n\n if (!constraintToChange) {\n form.setError(`constraints.${index}`, {\n message: \"The constraint was not found\",\n type: \"constraint_not_found\",\n });\n return;\n }\n\n const validationResult = validateConstraintValue(\n constraintToChange.name,\n newVal,\n );\n\n if (validationResult.status === \"error\") {\n let message = validationResult.message;\n if (validationResult.code === \"invalid\") {\n message = `${message}: ${validationResult.error?.map((i) => i.message).join(\", \")}`;\n }\n form.setError(`constraints.${index}`, {\n type: validationResult.code,\n message,\n });\n return;\n }\n\n //edit reference\n constraintToChange.value = newVal;\n form.setValue(\"constraints\", constraintsCopy);\n form.clearErrors(`constraints.${index}`);\n };\n\n const handleRemoveConstraint = (constraintName: Constraint[\"name\"]) => {\n if (!currentConstraints) return;\n const copy = clone(currentConstraints);\n const newConstraints = copy.filter((c) => c.name !== constraintName);\n form.setValue(\"constraints\", newConstraints);\n };\n\n const availableDefinitions = useMemo(() => {\n return getConstraintDefinitionsForType(\n typeof propertyToEdit?.type === \"string\" ? propertyToEdit.type : \"\",\n );\n }, [propertyToEdit.type]);\n\n useEffect(() => {\n //get the current constraints from the property based on the available definitions\n const newConstraints: Constraint[] = [];\n for (const constraintDef of availableDefinitions) {\n if (constraintDef.name in propertyToEdit) {\n newConstraints.push({\n name: constraintDef.name,\n value: propertyToEdit[constraintDef.name],\n });\n }\n }\n form.setValue(\"constraints\", newConstraints);\n }, [availableDefinitions]);\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Edit</DialogTitle>\n <DialogDescription>\n Constraints and other properties\n </DialogDescription>\n </DialogHeader>\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(handleSubmit)}\n className=\"space-y-4\"\n data-testid=\"edit-property-form\"\n >\n {availableDefinitions.length ? (\n <div className=\"space-y-2\">\n <Label>Constraints</Label>\n <ConstraintsAdd\n addedConstraints={currentConstraints ?? []}\n availableDefinitions={availableDefinitions}\n onAdd={(newConstraints) => {\n form.setValue(\"constraints\", newConstraints);\n }}\n />\n <Separator />\n {currentConstraints?.map((constraint, i) => {\n const Renderer = getRendererForConstraint(constraint.name);\n if (!Renderer) return null;\n\n const error = form.formState.errors.constraints?.[i];\n let mappedError: OperationError | undefined;\n\n if (error) {\n mappedError = {\n code: error?.type ?? \"INVALID\",\n message: error.message ?? \"An error occurred\",\n };\n }\n\n return (\n <Renderer\n key={constraint.name}\n constraintName={constraint.name}\n value={constraint.value}\n onConstraintChange={(newVal) => {\n handleConstraintChange(i, newVal);\n }}\n onRemoveConstraint={() => {\n handleRemoveConstraint(constraint.name);\n }}\n error={mappedError}\n />\n );\n })}\n </div>\n ) : null}\n\n <DialogFooter>\n <Button type=\"submit\">Save</Button>\n </DialogFooter>\n </form>\n </Form>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":["EditFormSchema","AddFormSchema","EditPropertyDialog","open","onOpenChange","onSubmit","propertyToEdit","propertyKey","form","useForm","zodResolver","currentConstraints","getConstraintDefinitionsForType","getRendererForConstraint","validateConstraintValue","useConstraints","handleSubmit","data","constraints","propertyUpdatesOnly","acc","constraint","handleConstraintChange","index","newVal","constraintsCopy","clone","constraintToChange","validationResult","message","i","handleRemoveConstraint","constraintName","newConstraints","c","availableDefinitions","useMemo","useEffect","constraintDef","jsx","Dialog","DialogContent","jsxs","DialogHeader","DialogTitle","DialogDescription","Form","Label","ConstraintsAdd","Separator","Renderer","error","mappedError","DialogFooter","Button"],"mappings":"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"}