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

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 (285) hide show
  1. package/README.md +142 -37
  2. package/dist/index.cjs100.js.map +1 -1
  3. package/dist/index.cjs101.js.map +1 -1
  4. package/dist/index.cjs102.js.map +1 -1
  5. package/dist/index.cjs103.js.map +1 -1
  6. package/dist/index.cjs104.js.map +1 -1
  7. package/dist/index.cjs105.js.map +1 -1
  8. package/dist/index.cjs106.js.map +1 -1
  9. package/dist/index.cjs107.js.map +1 -1
  10. package/dist/index.cjs108.js.map +1 -1
  11. package/dist/index.cjs109.js.map +1 -1
  12. package/dist/index.cjs11.js +1 -1
  13. package/dist/index.cjs12.js +1 -1
  14. package/dist/index.cjs13.js +1 -1
  15. package/dist/index.cjs14.js +1 -1
  16. package/dist/index.cjs15.js +1 -1
  17. package/dist/index.cjs16.js +1 -1
  18. package/dist/index.cjs17.js +1 -1
  19. package/dist/index.cjs18.js +1 -1
  20. package/dist/index.cjs20.js +1 -1
  21. package/dist/index.cjs21.js +1 -1
  22. package/dist/index.cjs22.js +1 -6
  23. package/dist/index.cjs22.js.map +1 -1
  24. package/dist/index.cjs23.js +1 -1
  25. package/dist/index.cjs23.js.map +1 -1
  26. package/dist/index.cjs24.js +1 -1
  27. package/dist/index.cjs24.js.map +1 -1
  28. package/dist/index.cjs25.js +1 -1
  29. package/dist/index.cjs25.js.map +1 -1
  30. package/dist/index.cjs26.js +1 -1
  31. package/dist/index.cjs26.js.map +1 -1
  32. package/dist/index.cjs27.js +6 -1
  33. package/dist/index.cjs27.js.map +1 -1
  34. package/dist/index.cjs28.js +1 -1
  35. package/dist/index.cjs28.js.map +1 -1
  36. package/dist/index.cjs29.js +1 -1
  37. package/dist/index.cjs29.js.map +1 -1
  38. package/dist/index.cjs3.js +1 -1
  39. package/dist/index.cjs3.js.map +1 -1
  40. package/dist/index.cjs30.js.map +1 -1
  41. package/dist/index.cjs31.js +1 -1
  42. package/dist/index.cjs31.js.map +1 -1
  43. package/dist/index.cjs33.js +4 -4
  44. package/dist/index.cjs33.js.map +1 -1
  45. package/dist/index.cjs34.js +12 -13
  46. package/dist/index.cjs34.js.map +1 -1
  47. package/dist/index.cjs35.js +1 -1
  48. package/dist/index.cjs35.js.map +1 -1
  49. package/dist/index.cjs38.js +1 -1
  50. package/dist/index.cjs38.js.map +1 -1
  51. package/dist/index.cjs40.js +1 -1
  52. package/dist/index.cjs40.js.map +1 -1
  53. package/dist/index.cjs41.js +1 -1
  54. package/dist/index.cjs41.js.map +1 -1
  55. package/dist/index.cjs42.js +6 -1
  56. package/dist/index.cjs42.js.map +1 -1
  57. package/dist/index.cjs43.js +6 -1
  58. package/dist/index.cjs43.js.map +1 -1
  59. package/dist/index.cjs44.js +6 -1
  60. package/dist/index.cjs44.js.map +1 -1
  61. package/dist/index.cjs45.js +1 -1
  62. package/dist/index.cjs45.js.map +1 -1
  63. package/dist/index.cjs46.js +1 -1
  64. package/dist/index.cjs46.js.map +1 -1
  65. package/dist/index.cjs47.js +1 -1
  66. package/dist/index.cjs47.js.map +1 -1
  67. package/dist/index.cjs48.js +1 -6
  68. package/dist/index.cjs48.js.map +1 -1
  69. package/dist/index.cjs49.js +1 -6
  70. package/dist/index.cjs49.js.map +1 -1
  71. package/dist/index.cjs5.js +1 -1
  72. package/dist/index.cjs50.js +1 -6
  73. package/dist/index.cjs50.js.map +1 -1
  74. package/dist/index.cjs51.js +1 -1
  75. package/dist/index.cjs51.js.map +1 -1
  76. package/dist/index.cjs52.js.map +1 -1
  77. package/dist/index.cjs55.js.map +1 -1
  78. package/dist/index.cjs56.js.map +1 -1
  79. package/dist/index.cjs57.js.map +1 -1
  80. package/dist/index.cjs58.js.map +1 -1
  81. package/dist/index.cjs6.js +1 -1
  82. package/dist/index.cjs61.js +1 -1
  83. package/dist/index.cjs61.js.map +1 -1
  84. package/dist/index.cjs62.js +1 -1
  85. package/dist/index.cjs62.js.map +1 -1
  86. package/dist/index.cjs63.js +1 -1
  87. package/dist/index.cjs63.js.map +1 -1
  88. package/dist/index.cjs65.js +1 -1
  89. package/dist/index.cjs65.js.map +1 -1
  90. package/dist/index.cjs66.js +1 -1
  91. package/dist/index.cjs66.js.map +1 -1
  92. package/dist/index.cjs67.js +1 -1
  93. package/dist/index.cjs67.js.map +1 -1
  94. package/dist/index.cjs68.js +1 -1
  95. package/dist/index.cjs68.js.map +1 -1
  96. package/dist/index.cjs69.js +1 -1
  97. package/dist/index.cjs69.js.map +1 -1
  98. package/dist/index.cjs7.js +1 -1
  99. package/dist/index.cjs70.js +1 -1
  100. package/dist/index.cjs70.js.map +1 -1
  101. package/dist/index.cjs71.js +1 -1
  102. package/dist/index.cjs71.js.map +1 -1
  103. package/dist/index.cjs72.js +1 -1
  104. package/dist/index.cjs72.js.map +1 -1
  105. package/dist/index.cjs73.js +1 -1
  106. package/dist/index.cjs73.js.map +1 -1
  107. package/dist/index.cjs74.js +1 -1
  108. package/dist/index.cjs74.js.map +1 -1
  109. package/dist/index.cjs75.js +1 -1
  110. package/dist/index.cjs75.js.map +1 -1
  111. package/dist/index.cjs76.js +1 -1
  112. package/dist/index.cjs76.js.map +1 -1
  113. package/dist/index.cjs77.js +1 -1
  114. package/dist/index.cjs77.js.map +1 -1
  115. package/dist/index.cjs78.js +1 -1
  116. package/dist/index.cjs78.js.map +1 -1
  117. package/dist/index.cjs79.js +1 -1
  118. package/dist/index.cjs79.js.map +1 -1
  119. package/dist/index.cjs8.js +1 -1
  120. package/dist/index.cjs80.js +1 -1
  121. package/dist/index.cjs80.js.map +1 -1
  122. package/dist/index.cjs81.js +1 -1
  123. package/dist/index.cjs81.js.map +1 -1
  124. package/dist/index.cjs82.js +1 -1
  125. package/dist/index.cjs82.js.map +1 -1
  126. package/dist/index.cjs83.js +1 -1
  127. package/dist/index.cjs83.js.map +1 -1
  128. package/dist/index.cjs84.js +1 -1
  129. package/dist/index.cjs84.js.map +1 -1
  130. package/dist/index.cjs85.js +1 -1
  131. package/dist/index.cjs85.js.map +1 -1
  132. package/dist/index.cjs86.js.map +1 -1
  133. package/dist/index.cjs87.js +1 -1
  134. package/dist/index.cjs87.js.map +1 -1
  135. package/dist/index.cjs90.js.map +1 -1
  136. package/dist/index.cjs91.js.map +1 -1
  137. package/dist/index.cjs92.js.map +1 -1
  138. package/dist/index.cjs93.js.map +1 -1
  139. package/dist/index.cjs94.js.map +1 -1
  140. package/dist/index.cjs95.js.map +1 -1
  141. package/dist/index.cjs96.js.map +1 -1
  142. package/dist/index.es100.js.map +1 -1
  143. package/dist/index.es101.js.map +1 -1
  144. package/dist/index.es102.js.map +1 -1
  145. package/dist/index.es103.js.map +1 -1
  146. package/dist/index.es104.js.map +1 -1
  147. package/dist/index.es105.js.map +1 -1
  148. package/dist/index.es106.js.map +1 -1
  149. package/dist/index.es107.js.map +1 -1
  150. package/dist/index.es108.js.map +1 -1
  151. package/dist/index.es109.js.map +1 -1
  152. package/dist/index.es11.js +1 -1
  153. package/dist/index.es12.js +2 -2
  154. package/dist/index.es13.js +1 -1
  155. package/dist/index.es14.js +5 -5
  156. package/dist/index.es15.js +1 -1
  157. package/dist/index.es16.js +5 -5
  158. package/dist/index.es17.js +1 -1
  159. package/dist/index.es18.js +1 -1
  160. package/dist/index.es20.js +1 -1
  161. package/dist/index.es21.js +7 -7
  162. package/dist/index.es22.js +6 -13
  163. package/dist/index.es22.js.map +1 -1
  164. package/dist/index.es23.js +6 -9
  165. package/dist/index.es23.js.map +1 -1
  166. package/dist/index.es24.js +9 -6
  167. package/dist/index.es24.js.map +1 -1
  168. package/dist/index.es25.js +6 -12
  169. package/dist/index.es25.js.map +1 -1
  170. package/dist/index.es26.js +13 -4
  171. package/dist/index.es26.js.map +1 -1
  172. package/dist/index.es27.js +10 -19
  173. package/dist/index.es27.js.map +1 -1
  174. package/dist/index.es28.js +17 -21
  175. package/dist/index.es28.js.map +1 -1
  176. package/dist/index.es29.js +22 -5
  177. package/dist/index.es29.js.map +1 -1
  178. package/dist/index.es3.js +212 -185
  179. package/dist/index.es3.js.map +1 -1
  180. package/dist/index.es30.js.map +1 -1
  181. package/dist/index.es31.js +3 -3
  182. package/dist/index.es31.js.map +1 -1
  183. package/dist/index.es33.js +17 -24
  184. package/dist/index.es33.js.map +1 -1
  185. package/dist/index.es34.js +527 -331
  186. package/dist/index.es34.js.map +1 -1
  187. package/dist/index.es35.js +1 -1
  188. package/dist/index.es35.js.map +1 -1
  189. package/dist/index.es38.js +1 -1
  190. package/dist/index.es38.js.map +1 -1
  191. package/dist/index.es40.js +6 -6
  192. package/dist/index.es40.js.map +1 -1
  193. package/dist/index.es41.js +815 -97
  194. package/dist/index.es41.js.map +1 -1
  195. package/dist/index.es42.js +10 -56
  196. package/dist/index.es42.js.map +1 -1
  197. package/dist/index.es43.js +10 -24
  198. package/dist/index.es43.js.map +1 -1
  199. package/dist/index.es44.js +10 -45
  200. package/dist/index.es44.js.map +1 -1
  201. package/dist/index.es45.js +97 -69
  202. package/dist/index.es45.js.map +1 -1
  203. package/dist/index.es46.js +52 -56
  204. package/dist/index.es46.js.map +1 -1
  205. package/dist/index.es47.js +19 -827
  206. package/dist/index.es47.js.map +1 -1
  207. package/dist/index.es48.js +45 -10
  208. package/dist/index.es48.js.map +1 -1
  209. package/dist/index.es49.js +86 -10
  210. package/dist/index.es49.js.map +1 -1
  211. package/dist/index.es5.js +3 -3
  212. package/dist/index.es50.js +60 -10
  213. package/dist/index.es50.js.map +1 -1
  214. package/dist/index.es51.js +2 -2
  215. package/dist/index.es51.js.map +1 -1
  216. package/dist/index.es52.js.map +1 -1
  217. package/dist/index.es55.js.map +1 -1
  218. package/dist/index.es56.js.map +1 -1
  219. package/dist/index.es57.js.map +1 -1
  220. package/dist/index.es58.js.map +1 -1
  221. package/dist/index.es6.js +3 -3
  222. package/dist/index.es61.js +11 -11
  223. package/dist/index.es61.js.map +1 -1
  224. package/dist/index.es62.js +1 -1
  225. package/dist/index.es62.js.map +1 -1
  226. package/dist/index.es63.js +26 -3
  227. package/dist/index.es63.js.map +1 -1
  228. package/dist/index.es65.js +62 -42
  229. package/dist/index.es65.js.map +1 -1
  230. package/dist/index.es66.js +28 -25
  231. package/dist/index.es66.js.map +1 -1
  232. package/dist/index.es67.js +4 -64
  233. package/dist/index.es67.js.map +1 -1
  234. package/dist/index.es68.js +24 -7
  235. package/dist/index.es68.js.map +1 -1
  236. package/dist/index.es69.js +31 -123
  237. package/dist/index.es69.js.map +1 -1
  238. package/dist/index.es7.js +3 -3
  239. package/dist/index.es70.js +3 -14
  240. package/dist/index.es70.js.map +1 -1
  241. package/dist/index.es71.js +41 -129
  242. package/dist/index.es71.js.map +1 -1
  243. package/dist/index.es72.js +7 -10
  244. package/dist/index.es72.js.map +1 -1
  245. package/dist/index.es73.js +112 -203
  246. package/dist/index.es73.js.map +1 -1
  247. package/dist/index.es74.js +15 -13
  248. package/dist/index.es74.js.map +1 -1
  249. package/dist/index.es75.js +132 -31
  250. package/dist/index.es75.js.map +1 -1
  251. package/dist/index.es76.js +10 -7
  252. package/dist/index.es76.js.map +1 -1
  253. package/dist/index.es77.js +212 -26
  254. package/dist/index.es77.js.map +1 -1
  255. package/dist/index.es78.js +13 -4
  256. package/dist/index.es78.js.map +1 -1
  257. package/dist/index.es79.js +7 -5
  258. package/dist/index.es79.js.map +1 -1
  259. package/dist/index.es8.js +3 -3
  260. package/dist/index.es80.js +3 -27
  261. package/dist/index.es80.js.map +1 -1
  262. package/dist/index.es81.js +28 -50
  263. package/dist/index.es81.js.map +1 -1
  264. package/dist/index.es82.js +50 -9
  265. package/dist/index.es82.js.map +1 -1
  266. package/dist/index.es83.js +9 -25
  267. package/dist/index.es83.js.map +1 -1
  268. package/dist/index.es84.js +2 -2
  269. package/dist/index.es84.js.map +1 -1
  270. package/dist/index.es85.js +1 -1
  271. package/dist/index.es85.js.map +1 -1
  272. package/dist/index.es86.js.map +1 -1
  273. package/dist/index.es87.js +1 -1
  274. package/dist/index.es87.js.map +1 -1
  275. package/dist/index.es90.js.map +1 -1
  276. package/dist/index.es91.js.map +1 -1
  277. package/dist/index.es92.js.map +1 -1
  278. package/dist/index.es93.js.map +1 -1
  279. package/dist/index.es94.js.map +1 -1
  280. package/dist/index.es95.js.map +1 -1
  281. package/dist/index.es96.js.map +1 -1
  282. package/dist/packages/builder/schema-builder.d.ts +20 -1
  283. package/dist/packages/builder/schema-builder.d.ts.map +1 -1
  284. package/dist/style.css +0 -3
  285. package/package.json +5 -3
@@ -1,89 +1,117 @@
1
- import { j as m } from "./index.es9.js";
2
- import * as s from "react";
3
- import { Slot as f } from "./index.es38.js";
4
- import { FormProvider as u, Controller as x, useFormContext as F, useFormState as I } from "react-hook-form";
5
- import { cn as a } from "./index.es29.js";
6
- import { Label as g } from "./index.es15.js";
7
- const b = u, c = s.createContext(
8
- {}
9
- ), S = ({
1
+ import { j as a } from "./index.es9.js";
2
+ import { Root as n, Content as i, Close as l, Title as r, Description as d, Portal as c, Overlay as g } from "./index.es61.js";
3
+ import { cn as o } from "./index.es22.js";
4
+ import f from "./index.es30.js";
5
+ function b({
6
+ ...t
7
+ }) {
8
+ return /* @__PURE__ */ a.jsx(n, { "data-slot": "dialog", ...t });
9
+ }
10
+ function u({
11
+ ...t
12
+ }) {
13
+ return /* @__PURE__ */ a.jsx(c, { "data-slot": "dialog-portal", ...t });
14
+ }
15
+ function m({
16
+ className: t,
10
17
  ...e
11
- }) => /* @__PURE__ */ m.jsx(c.Provider, { value: { name: e.name }, children: /* @__PURE__ */ m.jsx(x, { ...e }) }), d = () => {
12
- const e = s.useContext(c), t = s.useContext(l), { getFieldState: r } = F(), o = I({ name: e.name }), n = r(e.name, o);
13
- if (!e)
14
- throw new Error("useFormField should be used within <FormField>");
15
- const { id: i } = t;
16
- return {
17
- id: i,
18
- name: e.name,
19
- formItemId: `${i}-form-item`,
20
- formDescriptionId: `${i}-form-item-description`,
21
- formMessageId: `${i}-form-item-message`,
22
- ...n
23
- };
24
- }, l = s.createContext(
25
- {}
26
- );
27
- function $({ className: e, ...t }) {
28
- const r = s.useId();
29
- return /* @__PURE__ */ m.jsx(l.Provider, { value: { id: r }, children: /* @__PURE__ */ m.jsx(
30
- "div",
18
+ }) {
19
+ return /* @__PURE__ */ a.jsx(
20
+ g,
31
21
  {
32
- "data-slot": "form-item",
33
- className: a("grid gap-2", e),
34
- ...t
22
+ "data-slot": "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
+ ...e
35
28
  }
36
- ) });
29
+ );
37
30
  }
38
- function M({
39
- className: e,
40
- ...t
31
+ function h({
32
+ className: t,
33
+ children: e,
34
+ ...s
41
35
  }) {
42
- const { error: r, formItemId: o } = d();
43
- return /* @__PURE__ */ m.jsx(
44
- g,
36
+ return /* @__PURE__ */ a.jsxs(u, { "data-slot": "dialog-portal", children: [
37
+ /* @__PURE__ */ a.jsx(m, {}),
38
+ /* @__PURE__ */ a.jsxs(
39
+ i,
40
+ {
41
+ "data-slot": "dialog-content",
42
+ className: o(
43
+ "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",
44
+ t
45
+ ),
46
+ ...s,
47
+ children: [
48
+ e,
49
+ /* @__PURE__ */ a.jsxs(l, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", children: [
50
+ /* @__PURE__ */ a.jsx(f, {}),
51
+ /* @__PURE__ */ a.jsx("span", { className: "sr-only", children: "Close" })
52
+ ] })
53
+ ]
54
+ }
55
+ )
56
+ ] });
57
+ }
58
+ function D({ className: t, ...e }) {
59
+ return /* @__PURE__ */ a.jsx(
60
+ "div",
61
+ {
62
+ "data-slot": "dialog-header",
63
+ className: o("flex flex-col gap-2 text-center sm:text-left", t),
64
+ ...e
65
+ }
66
+ );
67
+ }
68
+ function y({ className: t, ...e }) {
69
+ return /* @__PURE__ */ a.jsx(
70
+ "div",
45
71
  {
46
- "data-slot": "form-label",
47
- "data-error": !!r,
48
- className: a("data-[error=true]:text-destructive-foreground", e),
49
- htmlFor: o,
50
- ...t
72
+ "data-slot": "dialog-footer",
73
+ className: o(
74
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
75
+ t
76
+ ),
77
+ ...e
51
78
  }
52
79
  );
53
80
  }
54
- function w({ ...e }) {
55
- const { error: t, formItemId: r, formDescriptionId: o, formMessageId: n } = d();
56
- return /* @__PURE__ */ m.jsx(
57
- f,
81
+ function N({
82
+ className: t,
83
+ ...e
84
+ }) {
85
+ return /* @__PURE__ */ a.jsx(
86
+ r,
58
87
  {
59
- "data-slot": "form-control",
60
- id: r,
61
- "aria-describedby": t ? `${o} ${n}` : `${o}`,
62
- "aria-invalid": !!t,
88
+ "data-slot": "dialog-title",
89
+ className: o("text-lg leading-none font-semibold", t),
63
90
  ...e
64
91
  }
65
92
  );
66
93
  }
67
- function N({ className: e, ...t }) {
68
- const { error: r, formMessageId: o } = d(), n = r ? String(r?.message ?? "") : t.children;
69
- return n ? /* @__PURE__ */ m.jsx(
70
- "p",
94
+ function z({
95
+ className: t,
96
+ ...e
97
+ }) {
98
+ return /* @__PURE__ */ a.jsx(
99
+ d,
71
100
  {
72
- "data-slot": "form-message",
73
- id: o,
74
- className: a("text-destructive-foreground text-sm", e),
75
- ...t,
76
- children: n
101
+ "data-slot": "dialog-description",
102
+ className: o("text-muted-foreground text-sm", t),
103
+ ...e
77
104
  }
78
- ) : null;
105
+ );
79
106
  }
80
107
  export {
81
- b as Form,
82
- w as FormControl,
83
- S as FormField,
84
- $ as FormItem,
85
- M as FormLabel,
86
- N as FormMessage,
87
- d as useFormField
108
+ b as Dialog,
109
+ h as DialogContent,
110
+ z as DialogDescription,
111
+ y as DialogFooter,
112
+ D as DialogHeader,
113
+ m as DialogOverlay,
114
+ u as DialogPortal,
115
+ N as DialogTitle
88
116
  };
89
117
  //# sourceMappingURL=index.es45.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es45.js","sources":["../src/components/ui/form.tsx"],"sourcesContent":["import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Label } from \"@/components/ui/label\";\n\nconst Form = FormProvider;\n\ninterface FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> {\n name: TName;\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ninterface FormItemContextValue {\n id: string;\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n className={cn(\"grid gap-2\", className)}\n {...props}\n />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(\"data-[error=true]:text-destructive-foreground\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<\"p\">) {\n const { error, formMessageId } = useFormField();\n\n const body = error ? String(error?.message ?? \"\") : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn(\"text-destructive-foreground text-sm\", className)}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n"],"names":["Form","FormProvider","FormFieldContext","React","FormField","props","jsx","Controller","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","useFormContext","formState","useFormState","fieldState","id","FormItem","className","cn","FormLabel","error","formItemId","Label","FormControl","formDescriptionId","formMessageId","Slot","FormMessage","body"],"mappings":";;;;;;AAgBA,MAAMA,IAAOC,GASPC,IAAmBC,EAAM;AAAA,EAC7B,CAAA;AACF,GAEMC,IAAY,CAGhB;AAAA,EACA,GAAGC;AACL,MAEKC,gBAAAA,EAAAA,IAAAJ,EAAiB,UAAjB,EAA0B,OAAO,EAAE,MAAMG,EAAM,KAAA,GAC9C,UAAAC,gBAAAA,EAAAA,IAACC,GAAY,EAAA,GAAGF,EAAO,CAAA,GACzB,GAIEG,IAAe,MAAM;AACnB,QAAAC,IAAeN,EAAM,WAAWD,CAAgB,GAChDQ,IAAcP,EAAM,WAAWQ,CAAe,GAC9C,EAAE,eAAAC,EAAc,IAAIC,EAAe,GACnCC,IAAYC,EAAa,EAAE,MAAMN,EAAa,MAAM,GACpDO,IAAaJ,EAAcH,EAAa,MAAMK,CAAS;AAE7D,MAAI,CAACL;AACG,UAAA,IAAI,MAAM,gDAAgD;AAG5D,QAAA,EAAE,IAAAQ,MAAOP;AAER,SAAA;AAAA,IACL,IAAAO;AAAA,IACA,MAAMR,EAAa;AAAA,IACnB,YAAY,GAAGQ,CAAE;AAAA,IACjB,mBAAmB,GAAGA,CAAE;AAAA,IACxB,eAAe,GAAGA,CAAE;AAAA,IACpB,GAAGD;AAAA,EACL;AACF,GAMML,IAAkBR,EAAM;AAAA,EAC5B,CAAA;AACF;AAEA,SAASe,EAAS,EAAE,WAAAC,GAAW,GAAGd,KAAsC;AAChE,QAAAY,IAAKd,EAAM,MAAM;AAEvB,+BACGQ,EAAgB,UAAhB,EAAyB,OAAO,EAAE,IAAAM,KACjC,UAAAX,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWc,EAAG,cAAcD,CAAS;AAAA,MACpC,GAAGd;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;AAEA,SAASgB,EAAU;AAAA,EACjB,WAAAF;AAAA,EACA,GAAGd;AACL,GAAqD;AACnD,QAAM,EAAE,OAAAiB,GAAO,YAAAC,EAAW,IAAIf,EAAa;AAGzC,SAAAF,gBAAAA,EAAA;AAAA,IAACkB;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,cAAY,CAAC,CAACF;AAAA,MACd,WAAWF,EAAG,iDAAiDD,CAAS;AAAA,MACxE,SAASI;AAAA,MACR,GAAGlB;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAASoB,EAAY,EAAE,GAAGpB,KAA4C;AACpE,QAAM,EAAE,OAAAiB,GAAO,YAAAC,GAAY,mBAAAG,GAAmB,eAAAC,EAAA,IAC5CnB,EAAa;AAGb,SAAAF,gBAAAA,EAAA;AAAA,IAACsB;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,IAAIL;AAAA,MACJ,oBACGD,IAEG,GAAGI,CAAiB,IAAIC,CAAa,KADrC,GAAGD,CAAiB;AAAA,MAG1B,gBAAc,CAAC,CAACJ;AAAA,MACf,GAAGjB;AAAA,IAAA;AAAA,EACN;AAEJ;AAeA,SAASwB,EAAY,EAAE,WAAAV,GAAW,GAAGd,KAAoC;AACvE,QAAM,EAAE,OAAAiB,GAAO,eAAAK,EAAc,IAAInB,EAAa,GAExCsB,IAAOR,IAAQ,OAAOA,GAAO,WAAW,EAAE,IAAIjB,EAAM;AAE1D,SAAKyB,IAKHxB,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,IAAIqB;AAAA,MACJ,WAAWP,EAAG,uCAAuCD,CAAS;AAAA,MAC7D,GAAGd;AAAA,MAEH,UAAAyB;AAAA,IAAA;AAAA,EACH,IAXO;AAaX;"}
1
+ {"version":3,"file":"index.es45.js","sources":["../src/components/ui/dialog.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"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 DialogContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content>) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"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 {children}\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\">\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"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 DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n"],"names":["Dialog","props","DialogPrimitive.Root","DialogPortal","DialogPrimitive.Portal","DialogOverlay","className","jsx","DialogPrimitive.Overlay","cn","DialogContent","children","jsxs","DialogPrimitive.Content","DialogPrimitive.Close","XIcon","DialogHeader","DialogFooter","DialogTitle","DialogPrimitive.Title","DialogDescription","DialogPrimitive.Description"],"mappings":";;;;AAMA,SAASA,EAAO;AAAA,EACd,GAAGC;AACL,GAAsD;AACpD,+BAAQC,GAAA,EAAqB,aAAU,UAAU,GAAGD,GAAO;AAC7D;AAQA,SAASE,EAAa;AAAA,EACpB,GAAGF;AACL,GAAwD;AACtD,+BAAQG,GAAA,EAAuB,aAAU,iBAAiB,GAAGH,GAAO;AACtE;AAQA,SAASI,EAAc;AAAA,EACrB,WAAAC;AAAA,EACA,GAAGL;AACL,GAAyD;AAErD,SAAAM,gBAAAA,EAAA;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,EAAc;AAAA,EACrB,WAAAJ;AAAA,EACA,UAAAK;AAAA,EACA,GAAGV;AACL,GAAyD;AAErD,SAAAW,gBAAAA,EAAA,KAACT,GAAa,EAAA,aAAU,iBACtB,UAAA;AAAA,IAAAI,gBAAAA,EAAA,IAACF,GAAc,EAAA;AAAA,IACfO,gBAAAA,EAAA;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,aAAU;AAAA,QACV,WAAWJ;AAAA,UACT;AAAA,UACAH;AAAA,QACF;AAAA,QACC,GAAGL;AAAA,QAEH,UAAA;AAAA,UAAAU;AAAA,UACAC,gBAAAA,EAAAA,KAAAE,GAAA,EAAsB,WAAU,qWAC/B,UAAA;AAAA,YAAAP,gBAAAA,EAAA,IAACQ,GAAM,EAAA;AAAA,YACNR,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAU,WAAU,UAAK,QAAA,CAAA;AAAA,UAAA,EACjC,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;AAEA,SAASS,EAAa,EAAE,WAAAV,GAAW,GAAGL,KAAsC;AAExE,SAAAM,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWE,EAAG,gDAAgDH,CAAS;AAAA,MACtE,GAAGL;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAASgB,EAAa,EAAE,WAAAX,GAAW,GAAGL,KAAsC;AAExE,SAAAM,gBAAAA,EAAA;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,SAASiB,EAAY;AAAA,EACnB,WAAAZ;AAAA,EACA,GAAGL;AACL,GAAuD;AAEnD,SAAAM,gBAAAA,EAAA;AAAA,IAACY;AAAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWV,EAAG,sCAAsCH,CAAS;AAAA,MAC5D,GAAGL;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAASmB,EAAkB;AAAA,EACzB,WAAAd;AAAA,EACA,GAAGL;AACL,GAA6D;AAEzD,SAAAM,gBAAAA,EAAA;AAAA,IAACc;AAAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWZ,EAAG,iCAAiCH,CAAS;AAAA,MACvD,GAAGL;AAAA,IAAA;AAAA,EACN;AAEJ;"}
@@ -1,63 +1,59 @@
1
- import { j as e } from "./index.es9.js";
2
- import { Label as l } from "./index.es15.js";
3
- import { Input as f } from "./index.es27.js";
4
- import { InputErrorWrapper as h } from "./index.es28.js";
5
- import { useState as a } from "react";
6
- import j from "./index.es30.js";
7
- const I = ({
8
- values: t,
9
- onAddValue: m,
10
- renderValues: o,
11
- maxValues: s,
12
- onRemoveValue: p,
13
- ...c
1
+ import { j as t } from "./index.es9.js";
2
+ import { useState as m } from "react";
3
+ import { Select as u, SelectTrigger as f, SelectValue as x, SelectContent as h, SelectItem as j } from "./index.es14.js";
4
+ import { Button as p } from "./index.es11.js";
5
+ import S from "./index.es23.js";
6
+ const w = ({
7
+ availableDefinitions: i,
8
+ addedConstraints: s,
9
+ onAdd: o
14
10
  }) => {
15
- const [n, u] = a(), [x, d] = a();
16
- return /* @__PURE__ */ e.jsxs(
17
- h,
18
- {
19
- errorCode: n,
20
- errorDescription: x,
21
- showError: !!n,
22
- className: "space-y-2",
23
- children: [
24
- /* @__PURE__ */ e.jsx(l, { children: "Add Input" }),
25
- /* @__PURE__ */ e.jsx(
26
- f,
27
- {
28
- ...c,
29
- onKeyDown: (r) => {
30
- r.key === "Enter" && (r.preventDefault(), r.stopPropagation());
31
- },
32
- onKeyUp: (r) => {
33
- if (r.key === "Enter") {
34
- if (s && t.length >= s) {
35
- u("Maximum reached"), d(
36
- "You have reached the maximum number of values"
37
- );
38
- return;
39
- }
40
- m?.(r.currentTarget.value), r.currentTarget.value = "";
41
- }
42
- }
43
- }
44
- ),
45
- o ? o() : /* @__PURE__ */ e.jsx("div", { className: "space-x-2 flex", children: t.map((r, i) => /* @__PURE__ */ e.jsxs(
46
- "div",
47
- {
48
- className: "flex items-center text-xs border rounded p-1 w-max mt-2",
49
- children: [
50
- /* @__PURE__ */ e.jsx("span", { children: r }),
51
- /* @__PURE__ */ e.jsx("button", { onClick: () => p(i), children: /* @__PURE__ */ e.jsx(j, { size: 16 }) })
52
- ]
11
+ const [n, a] = m(), c = () => {
12
+ if (!n) return;
13
+ const e = i.find(
14
+ (d) => d.name === n
15
+ );
16
+ if (!e) return;
17
+ const l = {
18
+ name: n,
19
+ value: e.defaultValue
20
+ };
21
+ o([...s, l]), a(void 0);
22
+ }, r = i.filter(
23
+ (e) => !s.some((l) => l.name === e.name)
24
+ );
25
+ return (
26
+ //Don't render the component if there are no constraints to add
27
+ r.length > 0 && /* @__PURE__ */ t.jsxs("div", { className: "flex items-end gap-2", children: [
28
+ /* @__PURE__ */ t.jsx("div", { className: "flex-1", children: /* @__PURE__ */ t.jsxs(
29
+ u,
30
+ {
31
+ value: n,
32
+ onValueChange: (e) => {
33
+ a(e);
53
34
  },
54
- `${i}-${r}`
55
- )) })
56
- ]
57
- }
35
+ children: [
36
+ /* @__PURE__ */ t.jsx(f, { className: "w-full", "aria-label": "Select constraint", children: /* @__PURE__ */ t.jsx(x, { placeholder: "Select a constraint" }) }),
37
+ /* @__PURE__ */ t.jsx(h, { children: r.map((e) => /* @__PURE__ */ t.jsx(j, { value: e.name, children: e.label }, e.name)) })
38
+ ]
39
+ }
40
+ ) }),
41
+ /* @__PURE__ */ t.jsx(
42
+ p,
43
+ {
44
+ type: "button",
45
+ variant: "outline",
46
+ size: "icon",
47
+ onClick: c,
48
+ disabled: !n,
49
+ "aria-label": "Add constraint",
50
+ children: /* @__PURE__ */ t.jsx(S, { className: "h-4 w-4" })
51
+ }
52
+ )
53
+ ] })
58
54
  );
59
55
  };
60
56
  export {
61
- I as default
57
+ w as default
62
58
  };
63
59
  //# sourceMappingURL=index.es46.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es46.js","sources":["../src/components/multi-input.tsx"],"sourcesContent":["import { Label } from \"@/components/ui/label\";\nimport { Input } from \"@/components/ui/input\";\nimport { X } from \"lucide-react\";\nimport { InputErrorWrapper } from \"@/components/input-error\";\nimport { useState } from \"react\";\n\ninterface MultiInputProps {\n renderValues?: () => React.ReactNode;\n values: string[];\n onAddValue: (newVal: string) => void;\n onRemoveValue: (index: number) => void;\n maxValues?: number;\n}\n\nconst MultiInput = ({\n values,\n onAddValue,\n renderValues,\n maxValues,\n onRemoveValue,\n ...props\n}: MultiInputProps &\n Omit<React.ComponentProps<\"input\">, \"value\" | \"onChange\">) => {\n const [primaryError, setPrimaryError] = useState<string>();\n const [errorDescription, setErrorDescription] = useState<string>();\n\n return (\n <InputErrorWrapper\n errorCode={primaryError}\n errorDescription={errorDescription}\n showError={!!primaryError}\n className=\"space-y-2\"\n >\n <Label>Add Input</Label>\n <Input\n {...props}\n onKeyDown={(e) => {\n // Prevent form submission on Enter key press\n if (e.key === \"Enter\") {\n e.preventDefault();\n //prevent bubbling up\n e.stopPropagation();\n }\n }}\n onKeyUp={(e) => {\n // Add value on Enter key press\n if (e.key === \"Enter\") {\n if (maxValues && values.length >= maxValues) {\n setPrimaryError(\"Maximum reached\");\n setErrorDescription(\n \"You have reached the maximum number of values\",\n );\n return;\n }\n onAddValue?.(e.currentTarget.value);\n e.currentTarget.value = \"\";\n }\n }}\n />\n {renderValues ? (\n renderValues()\n ) : (\n <div className=\"space-x-2 flex\">\n {values.map((value, i) => (\n <div\n key={`${i}-${value}`}\n className=\"flex items-center text-xs border rounded p-1 w-max mt-2\"\n >\n <span>{value}</span>\n <button onClick={() => onRemoveValue(i)}>\n <X size={16} />\n </button>\n </div>\n ))}\n </div>\n )}\n </InputErrorWrapper>\n );\n};\n\nexport default MultiInput;\n"],"names":["MultiInput","values","onAddValue","renderValues","maxValues","onRemoveValue","props","primaryError","setPrimaryError","useState","errorDescription","setErrorDescription","jsxs","InputErrorWrapper","jsx","Label","Input","e","value","X"],"mappings":";;;;;;AAcA,MAAMA,IAAa,CAAC;AAAA,EAClB,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,GAAGC;AACL,MACgE;AAC9D,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAAiB,GACnD,CAACC,GAAkBC,CAAmB,IAAIF,EAAiB;AAG/D,SAAAG,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWN;AAAA,MACX,kBAAAG;AAAA,MACA,WAAW,CAAC,CAACH;AAAA,MACb,WAAU;AAAA,MAEV,UAAA;AAAA,QAAAO,gBAAAA,EAAAA,IAACC,KAAM,UAAS,YAAA,CAAA;AAAA,QAChBD,gBAAAA,EAAA;AAAA,UAACE;AAAA,UAAA;AAAA,YACE,GAAGV;AAAA,YACJ,WAAW,CAACW,MAAM;AAEZ,cAAAA,EAAE,QAAQ,YACZA,EAAE,eAAe,GAEjBA,EAAE,gBAAgB;AAAA,YAEtB;AAAA,YACA,SAAS,CAACA,MAAM;AAEV,kBAAAA,EAAE,QAAQ,SAAS;AACjB,oBAAAb,KAAaH,EAAO,UAAUG,GAAW;AAC3C,kBAAAI,EAAgB,iBAAiB,GACjCG;AAAA,oBACE;AAAA,kBACF;AACA;AAAA,gBAAA;AAEW,gBAAAT,IAAAe,EAAE,cAAc,KAAK,GAClCA,EAAE,cAAc,QAAQ;AAAA,cAAA;AAAA,YAC1B;AAAA,UACF;AAAA,QACF;AAAA,QACCd,IACCA,EAAa,IAEZW,gBAAAA,MAAA,OAAA,EAAI,WAAU,kBACZ,UAAOb,EAAA,IAAI,CAACiB,GAAO,MAClBN,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAU;AAAA,YAEV,UAAA;AAAA,cAAAE,gBAAAA,EAAAA,IAAC,UAAM,UAAMI,EAAA,CAAA;AAAA,cACbJ,gBAAAA,EAAAA,IAAC,UAAO,EAAA,SAAS,MAAMT,EAAc,CAAC,GACpC,UAACS,gBAAAA,EAAA,IAAAK,GAAA,EAAE,MAAM,GAAI,CAAA,EACf,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UANK,GAAG,CAAC,IAAID,CAAK;AAAA,QAAA,CAQrB,EACH,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ;"}
1
+ {"version":3,"file":"index.es46.js","sources":["../src/packages/constraints/constraint-add.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { Button } from \"@/components/ui/button\";\nimport { Plus } from \"lucide-react\";\nimport { Constraint, ConstraintDefinition } from \"./context\";\n\ninterface ConstraintsSectionProps {\n /** The available constraints for a specific schema type */\n availableDefinitions: ConstraintDefinition[];\n addedConstraints: Constraint[];\n onAdd: (constraints: Constraint[]) => void;\n}\n\nconst ConstraintsAdd = ({\n availableDefinitions,\n addedConstraints,\n onAdd,\n}: ConstraintsSectionProps) => {\n const [selectedConstraintDefinition, setSelectedConstraintDefinition] =\n useState<Constraint[\"name\"]>();\n\n const handleAddConstraint = () => {\n if (!selectedConstraintDefinition) return;\n\n const definition = availableDefinitions.find(\n (c) => c.name === selectedConstraintDefinition,\n );\n if (!definition) return;\n\n const newConstraint: Constraint = {\n name: selectedConstraintDefinition,\n value: definition.defaultValue,\n };\n\n onAdd([...addedConstraints, newConstraint]);\n setSelectedConstraintDefinition(undefined);\n };\n\n const unusedConstraintDefinitions = availableDefinitions.filter(\n (constraint) => !addedConstraints.some((v) => v.name === constraint.name),\n );\n\n return (\n //Don't render the component if there are no constraints to add\n unusedConstraintDefinitions.length > 0 && (\n <div className=\"flex items-end gap-2\">\n <div className=\"flex-1\">\n <Select\n value={selectedConstraintDefinition}\n onValueChange={(newVal) => {\n setSelectedConstraintDefinition(newVal as Constraint[\"name\"]);\n }}\n >\n <SelectTrigger className=\"w-full\" aria-label=\"Select constraint\">\n <SelectValue placeholder=\"Select a constraint\" />\n </SelectTrigger>\n <SelectContent>\n {unusedConstraintDefinitions.map((constraint) => (\n <SelectItem key={constraint.name} value={constraint.name}>\n {constraint.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon\"\n onClick={handleAddConstraint}\n disabled={!selectedConstraintDefinition}\n aria-label=\"Add constraint\"\n >\n <Plus className=\"h-4 w-4\" />\n </Button>\n </div>\n )\n );\n};\n\nexport default ConstraintsAdd;\n"],"names":["ConstraintsAdd","availableDefinitions","addedConstraints","onAdd","selectedConstraintDefinition","setSelectedConstraintDefinition","useState","handleAddConstraint","definition","c","newConstraint","unusedConstraintDefinitions","constraint","v","jsxs","jsx","Select","newVal","SelectTrigger","SelectValue","SelectContent","SelectItem","Button","Plus"],"mappings":";;;;;AAmBA,MAAMA,IAAiB,CAAC;AAAA,EACtB,sBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,OAAAC;AACF,MAA+B;AAC7B,QAAM,CAACC,GAA8BC,CAA+B,IAClEC,EAA6B,GAEzBC,IAAsB,MAAM;AAChC,QAAI,CAACH,EAA8B;AAEnC,UAAMI,IAAaP,EAAqB;AAAA,MACtC,CAACQ,MAAMA,EAAE,SAASL;AAAA,IACpB;AACA,QAAI,CAACI,EAAY;AAEjB,UAAME,IAA4B;AAAA,MAChC,MAAMN;AAAA,MACN,OAAOI,EAAW;AAAA,IACpB;AAEA,IAAAL,EAAM,CAAC,GAAGD,GAAkBQ,CAAa,CAAC,GAC1CL,EAAgC,MAAS;AAAA,EAC3C,GAEMM,IAA8BV,EAAqB;AAAA,IACvD,CAACW,MAAe,CAACV,EAAiB,KAAK,CAACW,MAAMA,EAAE,SAASD,EAAW,IAAI;AAAA,EAC1E;AAEA;AAAA;AAAA,IAEED,EAA4B,SAAS,KAClCG,gBAAAA,EAAA,KAAA,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,MAACC,gBAAAA,EAAAA,IAAA,OAAA,EAAI,WAAU,UACb,UAAAD,gBAAAA,EAAA;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,OAAOZ;AAAA,UACP,eAAe,CAACa,MAAW;AACzB,YAAAZ,EAAgCY,CAA4B;AAAA,UAC9D;AAAA,UAEA,UAAA;AAAA,YAACF,gBAAAA,EAAAA,IAAAG,GAAA,EAAc,WAAU,UAAS,cAAW,qBAC3C,UAACH,gBAAAA,EAAAA,IAAAI,GAAA,EAAY,aAAY,sBAAA,CAAsB,EACjD,CAAA;AAAA,kCACCC,GACE,EAAA,UAAAT,EAA4B,IAAI,CAACC,MAC/BG,gBAAAA,EAAAA,IAAAM,GAAA,EAAiC,OAAOT,EAAW,MACjD,UAAWA,EAAA,SADGA,EAAW,IAE5B,CACD,EACH,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,GAEJ;AAAA,MACAG,gBAAAA,EAAA;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,SAASf;AAAA,UACT,UAAU,CAACH;AAAA,UACX,cAAW;AAAA,UAEX,UAAAW,gBAAAA,EAAAA,IAACQ,GAAK,EAAA,WAAU,UAAU,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC5B,EACF,CAAA;AAAA;AAGN;"}