@satoshibits/react-json-schema-builder 1.1.1 → 1.1.2

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 (234) hide show
  1. package/dist/components/ui/button.d.ts.map +1 -1
  2. package/dist/index.cjs10.js +1 -1
  3. package/dist/index.cjs11.js +1 -1
  4. package/dist/index.cjs11.js.map +1 -1
  5. package/dist/index.cjs14.js +1 -1
  6. package/dist/index.cjs16.js +1 -1
  7. package/dist/index.cjs21.js +1 -1
  8. package/dist/index.cjs23.js +1 -1
  9. package/dist/index.cjs24.js +1 -1
  10. package/dist/index.cjs25.js +1 -1
  11. package/dist/index.cjs26.js +1 -1
  12. package/dist/index.cjs27.js +1 -1
  13. package/dist/index.cjs30.js +1 -1
  14. package/dist/index.cjs31.js +1 -1
  15. package/dist/index.cjs34.js +1 -1
  16. package/dist/index.cjs36.js +1 -1
  17. package/dist/index.cjs37.js +1 -1
  18. package/dist/index.cjs37.js.map +1 -1
  19. package/dist/index.cjs38.js +6 -1
  20. package/dist/index.cjs38.js.map +1 -1
  21. package/dist/index.cjs39.js +6 -1
  22. package/dist/index.cjs39.js.map +1 -1
  23. package/dist/index.cjs40.js +6 -1
  24. package/dist/index.cjs40.js.map +1 -1
  25. package/dist/index.cjs41.js +1 -1
  26. package/dist/index.cjs41.js.map +1 -1
  27. package/dist/index.cjs42.js +1 -1
  28. package/dist/index.cjs42.js.map +1 -1
  29. package/dist/index.cjs43.js +1 -1
  30. package/dist/index.cjs43.js.map +1 -1
  31. package/dist/index.cjs44.js +1 -6
  32. package/dist/index.cjs44.js.map +1 -1
  33. package/dist/index.cjs45.js +1 -6
  34. package/dist/index.cjs45.js.map +1 -1
  35. package/dist/index.cjs46.js +1 -6
  36. package/dist/index.cjs46.js.map +1 -1
  37. package/dist/index.cjs47.js +1 -1
  38. package/dist/index.cjs49.js +6 -1
  39. package/dist/index.cjs49.js.map +1 -1
  40. package/dist/index.cjs50.js +6 -1
  41. package/dist/index.cjs50.js.map +1 -1
  42. package/dist/index.cjs51.js +2 -2
  43. package/dist/index.cjs51.js.map +1 -1
  44. package/dist/index.cjs52.js +2 -2
  45. package/dist/index.cjs52.js.map +1 -1
  46. package/dist/index.cjs53.js +1 -6
  47. package/dist/index.cjs53.js.map +1 -1
  48. package/dist/index.cjs54.js +1 -6
  49. package/dist/index.cjs54.js.map +1 -1
  50. package/dist/index.cjs55.js +1 -5
  51. package/dist/index.cjs55.js.map +1 -1
  52. package/dist/index.cjs56.js +1 -1
  53. package/dist/index.cjs56.js.map +1 -1
  54. package/dist/index.cjs57.js +1 -1
  55. package/dist/index.cjs57.js.map +1 -1
  56. package/dist/index.cjs58.js +1 -1
  57. package/dist/index.cjs58.js.map +1 -1
  58. package/dist/index.cjs59.js +1 -1
  59. package/dist/index.cjs59.js.map +1 -1
  60. package/dist/index.cjs60.js +1 -1
  61. package/dist/index.cjs60.js.map +1 -1
  62. package/dist/index.cjs61.js +1 -1
  63. package/dist/index.cjs61.js.map +1 -1
  64. package/dist/index.cjs62.js +1 -1
  65. package/dist/index.cjs62.js.map +1 -1
  66. package/dist/index.cjs63.js +1 -1
  67. package/dist/index.cjs63.js.map +1 -1
  68. package/dist/index.cjs64.js +1 -1
  69. package/dist/index.cjs64.js.map +1 -1
  70. package/dist/index.cjs65.js +1 -1
  71. package/dist/index.cjs65.js.map +1 -1
  72. package/dist/index.cjs66.js +1 -1
  73. package/dist/index.cjs66.js.map +1 -1
  74. package/dist/index.cjs67.js +1 -1
  75. package/dist/index.cjs67.js.map +1 -1
  76. package/dist/index.cjs68.js +1 -1
  77. package/dist/index.cjs68.js.map +1 -1
  78. package/dist/index.cjs69.js +1 -1
  79. package/dist/index.cjs69.js.map +1 -1
  80. package/dist/index.cjs70.js +1 -1
  81. package/dist/index.cjs70.js.map +1 -1
  82. package/dist/index.cjs71.js +1 -1
  83. package/dist/index.cjs71.js.map +1 -1
  84. package/dist/index.cjs72.js +1 -1
  85. package/dist/index.cjs72.js.map +1 -1
  86. package/dist/index.cjs73.js +1 -1
  87. package/dist/index.cjs73.js.map +1 -1
  88. package/dist/index.cjs74.js +1 -1
  89. package/dist/index.cjs74.js.map +1 -1
  90. package/dist/index.cjs75.js +1 -1
  91. package/dist/index.cjs75.js.map +1 -1
  92. package/dist/index.cjs76.js +5 -1
  93. package/dist/index.cjs76.js.map +1 -1
  94. package/dist/index.cjs77.js +1 -1
  95. package/dist/index.cjs77.js.map +1 -1
  96. package/dist/index.cjs78.js +1 -1
  97. package/dist/index.cjs78.js.map +1 -1
  98. package/dist/index.cjs79.js +1 -1
  99. package/dist/index.cjs79.js.map +1 -1
  100. package/dist/index.cjs80.js +1 -1
  101. package/dist/index.cjs80.js.map +1 -1
  102. package/dist/index.cjs81.js +1 -1
  103. package/dist/index.cjs81.js.map +1 -1
  104. package/dist/index.cjs82.js +1 -1
  105. package/dist/index.cjs82.js.map +1 -1
  106. package/dist/index.cjs87.js +1 -1
  107. package/dist/index.cjs89.js +1 -1
  108. package/dist/index.cjs94.js +38 -1
  109. package/dist/index.cjs94.js.map +1 -1
  110. package/dist/index.cjs95.js +1 -38
  111. package/dist/index.cjs95.js.map +1 -1
  112. package/dist/index.cjs96.js +1 -1
  113. package/dist/index.cjs96.js.map +1 -1
  114. package/dist/index.cjs97.js +1 -1
  115. package/dist/index.cjs97.js.map +1 -1
  116. package/dist/index.cjs98.js +1 -1
  117. package/dist/index.cjs98.js.map +1 -1
  118. package/dist/index.es10.js +1 -1
  119. package/dist/index.es11.js +4 -3
  120. package/dist/index.es11.js.map +1 -1
  121. package/dist/index.es14.js +4 -4
  122. package/dist/index.es16.js +5 -5
  123. package/dist/index.es21.js +6 -6
  124. package/dist/index.es23.js +1 -1
  125. package/dist/index.es24.js +1 -1
  126. package/dist/index.es25.js +1 -1
  127. package/dist/index.es26.js +1 -1
  128. package/dist/index.es27.js +1 -1
  129. package/dist/index.es30.js +1 -1
  130. package/dist/index.es31.js +1 -1
  131. package/dist/index.es34.js +1 -1
  132. package/dist/index.es36.js +7 -7
  133. package/dist/index.es37.js +815 -97
  134. package/dist/index.es37.js.map +1 -1
  135. package/dist/index.es38.js +10 -56
  136. package/dist/index.es38.js.map +1 -1
  137. package/dist/index.es39.js +10 -24
  138. package/dist/index.es39.js.map +1 -1
  139. package/dist/index.es40.js +10 -45
  140. package/dist/index.es40.js.map +1 -1
  141. package/dist/index.es41.js +99 -71
  142. package/dist/index.es41.js.map +1 -1
  143. package/dist/index.es42.js +52 -56
  144. package/dist/index.es42.js.map +1 -1
  145. package/dist/index.es43.js +19 -827
  146. package/dist/index.es43.js.map +1 -1
  147. package/dist/index.es44.js +45 -10
  148. package/dist/index.es44.js.map +1 -1
  149. package/dist/index.es45.js +86 -10
  150. package/dist/index.es45.js.map +1 -1
  151. package/dist/index.es46.js +60 -10
  152. package/dist/index.es46.js.map +1 -1
  153. package/dist/index.es47.js +4 -4
  154. package/dist/index.es49.js +21 -8
  155. package/dist/index.es49.js.map +1 -1
  156. package/dist/index.es50.js +9 -5
  157. package/dist/index.es50.js.map +1 -1
  158. package/dist/index.es51.js +32 -15
  159. package/dist/index.es51.js.map +1 -1
  160. package/dist/index.es52.js +12 -3
  161. package/dist/index.es52.js.map +1 -1
  162. package/dist/index.es53.js +8 -38
  163. package/dist/index.es53.js.map +1 -1
  164. package/dist/index.es54.js +5 -18
  165. package/dist/index.es54.js.map +1 -1
  166. package/dist/index.es55.js +30 -252
  167. package/dist/index.es55.js.map +1 -1
  168. package/dist/index.es56.js +6 -21
  169. package/dist/index.es56.js.map +1 -1
  170. package/dist/index.es57.js +25 -5
  171. package/dist/index.es57.js.map +1 -1
  172. package/dist/index.es58.js +62 -23
  173. package/dist/index.es58.js.map +1 -1
  174. package/dist/index.es59.js +27 -63
  175. package/dist/index.es59.js.map +1 -1
  176. package/dist/index.es60.js +5 -29
  177. package/dist/index.es60.js.map +1 -1
  178. package/dist/index.es61.js +24 -5
  179. package/dist/index.es61.js.map +1 -1
  180. package/dist/index.es62.js +3 -24
  181. package/dist/index.es62.js.map +1 -1
  182. package/dist/index.es63.js +45 -32
  183. package/dist/index.es63.js.map +1 -1
  184. package/dist/index.es64.js +7 -3
  185. package/dist/index.es64.js.map +1 -1
  186. package/dist/index.es65.js +123 -44
  187. package/dist/index.es65.js.map +1 -1
  188. package/dist/index.es66.js +14 -7
  189. package/dist/index.es66.js.map +1 -1
  190. package/dist/index.es67.js +125 -116
  191. package/dist/index.es67.js.map +1 -1
  192. package/dist/index.es68.js +10 -14
  193. package/dist/index.es68.js.map +1 -1
  194. package/dist/index.es69.js +209 -127
  195. package/dist/index.es69.js.map +1 -1
  196. package/dist/index.es70.js +12 -10
  197. package/dist/index.es70.js.map +1 -1
  198. package/dist/index.es71.js +7 -215
  199. package/dist/index.es71.js.map +1 -1
  200. package/dist/index.es72.js +4 -13
  201. package/dist/index.es72.js.map +1 -1
  202. package/dist/index.es73.js +27 -7
  203. package/dist/index.es73.js.map +1 -1
  204. package/dist/index.es74.js +49 -3
  205. package/dist/index.es74.js.map +1 -1
  206. package/dist/index.es75.js +9 -28
  207. package/dist/index.es75.js.map +1 -1
  208. package/dist/index.es76.js +253 -48
  209. package/dist/index.es76.js.map +1 -1
  210. package/dist/index.es77.js +21 -8
  211. package/dist/index.es77.js.map +1 -1
  212. package/dist/index.es78.js +11 -67
  213. package/dist/index.es78.js.map +1 -1
  214. package/dist/index.es79.js +203 -10
  215. package/dist/index.es79.js.map +1 -1
  216. package/dist/index.es80.js +20 -203
  217. package/dist/index.es80.js.map +1 -1
  218. package/dist/index.es81.js +392 -21
  219. package/dist/index.es81.js.map +1 -1
  220. package/dist/index.es82.js +61 -386
  221. package/dist/index.es82.js.map +1 -1
  222. package/dist/index.es87.js +1 -1
  223. package/dist/index.es89.js +4 -4
  224. package/dist/index.es94.js +69 -65
  225. package/dist/index.es94.js.map +1 -1
  226. package/dist/index.es95.js +8 -68
  227. package/dist/index.es95.js.map +1 -1
  228. package/dist/index.es96.js +14 -9
  229. package/dist/index.es96.js.map +1 -1
  230. package/dist/index.es97.js +62 -14
  231. package/dist/index.es97.js.map +1 -1
  232. package/dist/index.es98.js +64 -61
  233. package/dist/index.es98.js.map +1 -1
  234. package/package.json +1 -1
@@ -1,89 +1,117 @@
1
- import { jsx as m } from "react/jsx-runtime";
2
- import * as s from "react";
3
- import { Slot as f } from "./index.es34.js";
4
- import { FormProvider as u, Controller as F, useFormContext as x, useFormState as I } from "react-hook-form";
5
- import { cn as a } from "./index.es22.js";
6
- import { Label as g } from "./index.es15.js";
7
- const S = u, c = s.createContext(
8
- {}
9
- ), $ = ({
10
- ...e
11
- }) => /* @__PURE__ */ m(c.Provider, { value: { name: e.name }, children: /* @__PURE__ */ m(F, { ...e }) }), d = () => {
12
- const e = s.useContext(c), r = s.useContext(l), { getFieldState: t } = x(), o = I({ name: e.name }), n = t(e.name, o);
13
- if (!e)
14
- throw new Error("useFormField should be used within <FormField>");
15
- const { id: i } = r;
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 M({ className: e, ...r }) {
28
- const t = s.useId();
29
- return /* @__PURE__ */ m(l.Provider, { value: { id: t }, children: /* @__PURE__ */ m(
30
- "div",
1
+ import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
+ import { Root as l, Content as i, Close as r, Title as d, Description as c, Portal as g, Overlay as f } from "./index.es76.js";
3
+ import { cn as o } from "./index.es22.js";
4
+ import u from "./index.es30.js";
5
+ function D({
6
+ ...t
7
+ }) {
8
+ return /* @__PURE__ */ e(l, { "data-slot": "dialog", ...t });
9
+ }
10
+ function m({
11
+ ...t
12
+ }) {
13
+ return /* @__PURE__ */ e(g, { "data-slot": "dialog-portal", ...t });
14
+ }
15
+ function p({
16
+ className: t,
17
+ ...a
18
+ }) {
19
+ return /* @__PURE__ */ e(
20
+ f,
31
21
  {
32
- "data-slot": "form-item",
33
- className: a("grid gap-2", e),
34
- ...r
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
+ ...a
35
28
  }
36
- ) });
29
+ );
37
30
  }
38
- function w({
39
- className: e,
40
- ...r
31
+ function y({
32
+ className: t,
33
+ children: a,
34
+ ...s
41
35
  }) {
42
- const { error: t, formItemId: o } = d();
43
- return /* @__PURE__ */ m(
44
- g,
36
+ return /* @__PURE__ */ n(m, { "data-slot": "dialog-portal", children: [
37
+ /* @__PURE__ */ e(p, {}),
38
+ /* @__PURE__ */ n(
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
+ a,
49
+ /* @__PURE__ */ n(r, { 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__ */ e(u, {}),
51
+ /* @__PURE__ */ e("span", { className: "sr-only", children: "Close" })
52
+ ] })
53
+ ]
54
+ }
55
+ )
56
+ ] });
57
+ }
58
+ function N({ className: t, ...a }) {
59
+ return /* @__PURE__ */ e(
60
+ "div",
45
61
  {
46
- "data-slot": "form-label",
47
- "data-error": !!t,
48
- className: a("data-[error=true]:text-destructive-foreground", e),
49
- htmlFor: o,
50
- ...r
62
+ "data-slot": "dialog-header",
63
+ className: o("flex flex-col gap-2 text-center sm:text-left", t),
64
+ ...a
51
65
  }
52
66
  );
53
67
  }
54
- function N({ ...e }) {
55
- const { error: r, formItemId: t, formDescriptionId: o, formMessageId: n } = d();
56
- return /* @__PURE__ */ m(
57
- f,
68
+ function z({ className: t, ...a }) {
69
+ return /* @__PURE__ */ e(
70
+ "div",
71
+ {
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
+ ...a
78
+ }
79
+ );
80
+ }
81
+ function w({
82
+ className: t,
83
+ ...a
84
+ }) {
85
+ return /* @__PURE__ */ e(
86
+ d,
58
87
  {
59
- "data-slot": "form-control",
60
- id: t,
61
- "aria-describedby": r ? `${o} ${n}` : `${o}`,
62
- "aria-invalid": !!r,
63
- ...e
88
+ "data-slot": "dialog-title",
89
+ className: o("text-lg leading-none font-semibold", t),
90
+ ...a
64
91
  }
65
92
  );
66
93
  }
67
- function P({ className: e, ...r }) {
68
- const { error: t, formMessageId: o } = d(), n = t ? String(t?.message ?? "") : r.children;
69
- return n ? /* @__PURE__ */ m(
70
- "p",
94
+ function k({
95
+ className: t,
96
+ ...a
97
+ }) {
98
+ return /* @__PURE__ */ e(
99
+ c,
71
100
  {
72
- "data-slot": "form-message",
73
- id: o,
74
- className: a("text-destructive-foreground text-sm", e),
75
- ...r,
76
- children: n
101
+ "data-slot": "dialog-description",
102
+ className: o("text-muted-foreground text-sm", t),
103
+ ...a
77
104
  }
78
- ) : null;
105
+ );
79
106
  }
80
107
  export {
81
- S as Form,
82
- N as FormControl,
83
- $ as FormField,
84
- M as FormItem,
85
- w as FormLabel,
86
- P as FormMessage,
87
- d as useFormField
108
+ D as Dialog,
109
+ y as DialogContent,
110
+ k as DialogDescription,
111
+ z as DialogFooter,
112
+ N as DialogHeader,
113
+ p as DialogOverlay,
114
+ m as DialogPortal,
115
+ w as DialogTitle
88
116
  };
89
117
  //# sourceMappingURL=index.es41.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es41.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,MAEK,gBAAAC,EAAAJ,EAAiB,UAAjB,EAA0B,OAAO,EAAE,MAAMG,EAAM,KAAA,GAC9C,UAAA,gBAAAC,EAACC,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,2BACGQ,EAAgB,UAAhB,EAAyB,OAAO,EAAE,IAAAM,KACjC,UAAA,gBAAAX;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,SAAA,gBAAAF;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,SAAA,gBAAAF;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,IAKH,gBAAAxB;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.es41.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,2BAAQC,GAAA,EAAqB,aAAU,UAAU,GAAGD,GAAO;AAC7D;AAQA,SAASE,EAAa;AAAA,EACpB,GAAGF;AACL,GAAwD;AACtD,2BAAQG,GAAA,EAAuB,aAAU,iBAAiB,GAAGH,GAAO;AACtE;AAQA,SAASI,EAAc;AAAA,EACrB,WAAAC;AAAA,EACA,GAAGL;AACL,GAAyD;AAErD,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,EAAc;AAAA,EACrB,WAAAJ;AAAA,EACA,UAAAK;AAAA,EACA,GAAGV;AACL,GAAyD;AAErD,SAAA,gBAAAW,EAACT,GAAa,EAAA,aAAU,iBACtB,UAAA;AAAA,IAAA,gBAAAI,EAACF,GAAc,EAAA;AAAA,IACf,gBAAAO;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,UACA,gBAAAC,EAAAE,GAAA,EAAsB,WAAU,qWAC/B,UAAA;AAAA,YAAA,gBAAAP,EAACQ,GAAM,EAAA;AAAA,YACN,gBAAAR,EAAA,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,SAAA,gBAAAM;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,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,SAASiB,EAAY;AAAA,EACnB,WAAAZ;AAAA,EACA,GAAGL;AACL,GAAuD;AAEnD,SAAA,gBAAAM;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,SAAA,gBAAAM;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 { jsxs as m, jsx as e } from "react/jsx-runtime";
2
- import { Label as h } from "./index.es15.js";
3
- import { Input as x } from "./index.es28.js";
4
- import { InputErrorWrapper as y } from "./index.es29.js";
5
- import { useState as p } from "react";
6
- import E from "./index.es30.js";
7
- const w = ({
8
- values: t,
9
- onAddValue: s,
10
- renderValues: o,
11
- maxValues: n,
12
- onRemoveValue: c,
13
- ...u
1
+ import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
+ import { useState as u } from "react";
3
+ import { Select as f, SelectTrigger as h, SelectValue as p, SelectContent as S, SelectItem as C } from "./index.es14.js";
4
+ import { Button as v } from "./index.es11.js";
5
+ import g from "./index.es23.js";
6
+ const V = ({
7
+ availableDefinitions: i,
8
+ addedConstraints: a,
9
+ onAdd: c
14
10
  }) => {
15
- const [i, d] = p(), [l, f] = p();
16
- return /* @__PURE__ */ m(
17
- y,
18
- {
19
- errorCode: i,
20
- errorDescription: l,
21
- showError: !!i,
22
- className: "space-y-2",
23
- children: [
24
- /* @__PURE__ */ e(h, { children: "Add Input" }),
25
- /* @__PURE__ */ e(
26
- x,
27
- {
28
- ...u,
29
- onKeyDown: (r) => {
30
- r.key === "Enter" && (r.preventDefault(), r.stopPropagation());
31
- },
32
- onKeyUp: (r) => {
33
- if (r.key === "Enter") {
34
- if (n && t.length >= n) {
35
- d("Maximum reached"), f(
36
- "You have reached the maximum number of values"
37
- );
38
- return;
39
- }
40
- s?.(r.currentTarget.value), r.currentTarget.value = "";
41
- }
42
- }
43
- }
44
- ),
45
- o ? o() : /* @__PURE__ */ e("div", { className: "space-x-2 flex", children: t.map((r, a) => /* @__PURE__ */ m(
46
- "div",
47
- {
48
- className: "flex items-center text-xs border rounded p-1 w-max mt-2",
49
- children: [
50
- /* @__PURE__ */ e("span", { children: r }),
51
- /* @__PURE__ */ e("button", { onClick: () => c(a), children: /* @__PURE__ */ e(E, { size: 16 }) })
52
- ]
11
+ const [n, r] = u(), d = () => {
12
+ if (!n) return;
13
+ const e = i.find(
14
+ (m) => m.name === n
15
+ );
16
+ if (!e) return;
17
+ const l = {
18
+ name: n,
19
+ value: e.defaultValue
20
+ };
21
+ c([...a, l]), r(void 0);
22
+ }, o = i.filter(
23
+ (e) => !a.some((l) => l.name === e.name)
24
+ );
25
+ return (
26
+ //Don't render the component if there are no constraints to add
27
+ o.length > 0 && /* @__PURE__ */ s("div", { className: "flex items-end gap-2", children: [
28
+ /* @__PURE__ */ t("div", { className: "flex-1", children: /* @__PURE__ */ s(
29
+ f,
30
+ {
31
+ value: n,
32
+ onValueChange: (e) => {
33
+ r(e);
53
34
  },
54
- `${a}-${r}`
55
- )) })
56
- ]
57
- }
35
+ children: [
36
+ /* @__PURE__ */ t(h, { className: "w-full", "aria-label": "Select constraint", children: /* @__PURE__ */ t(p, { placeholder: "Select a constraint" }) }),
37
+ /* @__PURE__ */ t(S, { children: o.map((e) => /* @__PURE__ */ t(C, { value: e.name, children: e.label }, e.name)) })
38
+ ]
39
+ }
40
+ ) }),
41
+ /* @__PURE__ */ t(
42
+ v,
43
+ {
44
+ type: "button",
45
+ variant: "outline",
46
+ size: "icon",
47
+ onClick: d,
48
+ disabled: !n,
49
+ "aria-label": "Add constraint",
50
+ children: /* @__PURE__ */ t(g, { className: "h-4 w-4" })
51
+ }
52
+ )
53
+ ] })
58
54
  );
59
55
  };
60
56
  export {
61
- w as default
57
+ V as default
62
58
  };
63
59
  //# sourceMappingURL=index.es42.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es42.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","i","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,SAAA,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWN;AAAA,MACX,kBAAAG;AAAA,MACA,WAAW,CAAC,CAACH;AAAA,MACb,WAAU;AAAA,MAEV,UAAA;AAAA,QAAA,gBAAAO,EAACC,KAAM,UAAS,YAAA,CAAA;AAAA,QAChB,gBAAAD;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,IAEZ,gBAAAW,EAAA,OAAA,EAAI,WAAU,kBACZ,UAAOb,EAAA,IAAI,CAACiB,GAAOC,MAClB,gBAAAP;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAU;AAAA,YAEV,UAAA;AAAA,cAAA,gBAAAE,EAAC,UAAM,UAAMI,EAAA,CAAA;AAAA,cACb,gBAAAJ,EAAC,UAAO,EAAA,SAAS,MAAMT,EAAcc,CAAC,GACpC,UAAC,gBAAAL,EAAAM,GAAA,EAAE,MAAM,GAAI,CAAA,EACf,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UANK,GAAGD,CAAC,IAAID,CAAK;AAAA,QAAA,CAQrB,EACH,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ;"}
1
+ {"version":3,"file":"index.es42.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,KAClC,gBAAAG,EAAA,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,MAAC,gBAAAC,EAAA,OAAA,EAAI,WAAU,UACb,UAAA,gBAAAD;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,OAAOZ;AAAA,UACP,eAAe,CAACa,MAAW;AACzB,YAAAZ,EAAgCY,CAA4B;AAAA,UAC9D;AAAA,UAEA,UAAA;AAAA,YAAC,gBAAAF,EAAAG,GAAA,EAAc,WAAU,UAAS,cAAW,qBAC3C,UAAC,gBAAAH,EAAAI,GAAA,EAAY,aAAY,sBAAA,CAAsB,EACjD,CAAA;AAAA,8BACCC,GACE,EAAA,UAAAT,EAA4B,IAAI,CAACC,MAC/B,gBAAAG,EAAAM,GAAA,EAAiC,OAAOT,EAAW,MACjD,UAAWA,EAAA,SADGA,EAAW,IAE5B,CACD,EACH,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,GAEJ;AAAA,MACA,gBAAAG;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,UAAA,gBAAAW,EAACQ,GAAK,EAAA,WAAU,UAAU,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC5B,EACF,CAAA;AAAA;AAGN;"}