@satoshibits/react-json-schema-builder 1.1.3 → 1.1.4

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 (118) hide show
  1. package/dist/index.cjs14.js +1 -1
  2. package/dist/index.cjs16.js +1 -1
  3. package/dist/index.cjs2.js +1 -1
  4. package/dist/index.cjs2.js.map +1 -1
  5. package/dist/index.cjs21.js +1 -1
  6. package/dist/index.cjs31.js +1 -1
  7. package/dist/index.cjs36.js +1 -1
  8. package/dist/index.cjs37.js +1 -1
  9. package/dist/index.cjs37.js.map +1 -1
  10. package/dist/index.cjs38.js +6 -1
  11. package/dist/index.cjs38.js.map +1 -1
  12. package/dist/index.cjs39.js +6 -1
  13. package/dist/index.cjs39.js.map +1 -1
  14. package/dist/index.cjs40.js +6 -1
  15. package/dist/index.cjs40.js.map +1 -1
  16. package/dist/index.cjs41.js +1 -1
  17. package/dist/index.cjs41.js.map +1 -1
  18. package/dist/index.cjs42.js +1 -1
  19. package/dist/index.cjs42.js.map +1 -1
  20. package/dist/index.cjs43.js +1 -1
  21. package/dist/index.cjs43.js.map +1 -1
  22. package/dist/index.cjs44.js +1 -6
  23. package/dist/index.cjs44.js.map +1 -1
  24. package/dist/index.cjs45.js +1 -6
  25. package/dist/index.cjs45.js.map +1 -1
  26. package/dist/index.cjs46.js +1 -6
  27. package/dist/index.cjs46.js.map +1 -1
  28. package/dist/index.cjs47.js +1 -1
  29. package/dist/index.cjs55.js +1 -1
  30. package/dist/index.cjs56.js +1 -1
  31. package/dist/index.cjs57.js +1 -1
  32. package/dist/index.cjs57.js.map +1 -1
  33. package/dist/index.cjs59.js +1 -1
  34. package/dist/index.cjs59.js.map +1 -1
  35. package/dist/index.cjs60.js +1 -1
  36. package/dist/index.cjs60.js.map +1 -1
  37. package/dist/index.cjs61.js +1 -1
  38. package/dist/index.cjs61.js.map +1 -1
  39. package/dist/index.cjs62.js +1 -1
  40. package/dist/index.cjs62.js.map +1 -1
  41. package/dist/index.cjs63.js +1 -1
  42. package/dist/index.cjs63.js.map +1 -1
  43. package/dist/index.cjs65.js +1 -1
  44. package/dist/index.cjs67.js +1 -1
  45. package/dist/index.cjs69.js +1 -1
  46. package/dist/index.cjs71.js +1 -1
  47. package/dist/index.cjs72.js +1 -1
  48. package/dist/index.cjs75.js +1 -1
  49. package/dist/index.cjs78.js +1 -1
  50. package/dist/index.cjs78.js.map +1 -1
  51. package/dist/index.cjs79.js +1 -1
  52. package/dist/index.cjs79.js.map +1 -1
  53. package/dist/index.cjs80.js +1 -1
  54. package/dist/index.cjs80.js.map +1 -1
  55. package/dist/index.cjs81.js +1 -1
  56. package/dist/index.cjs81.js.map +1 -1
  57. package/dist/index.cjs82.js +1 -1
  58. package/dist/index.cjs82.js.map +1 -1
  59. package/dist/index.es14.js +4 -4
  60. package/dist/index.es16.js +5 -5
  61. package/dist/index.es2.js +23 -21
  62. package/dist/index.es2.js.map +1 -1
  63. package/dist/index.es21.js +6 -6
  64. package/dist/index.es31.js +1 -1
  65. package/dist/index.es36.js +6 -6
  66. package/dist/index.es37.js +815 -97
  67. package/dist/index.es37.js.map +1 -1
  68. package/dist/index.es38.js +10 -56
  69. package/dist/index.es38.js.map +1 -1
  70. package/dist/index.es39.js +10 -24
  71. package/dist/index.es39.js.map +1 -1
  72. package/dist/index.es40.js +10 -45
  73. package/dist/index.es40.js.map +1 -1
  74. package/dist/index.es41.js +99 -71
  75. package/dist/index.es41.js.map +1 -1
  76. package/dist/index.es42.js +52 -56
  77. package/dist/index.es42.js.map +1 -1
  78. package/dist/index.es43.js +19 -827
  79. package/dist/index.es43.js.map +1 -1
  80. package/dist/index.es44.js +45 -10
  81. package/dist/index.es44.js.map +1 -1
  82. package/dist/index.es45.js +86 -10
  83. package/dist/index.es45.js.map +1 -1
  84. package/dist/index.es46.js +60 -10
  85. package/dist/index.es46.js.map +1 -1
  86. package/dist/index.es47.js +2 -2
  87. package/dist/index.es55.js +5 -5
  88. package/dist/index.es56.js +1 -1
  89. package/dist/index.es57.js +6 -32
  90. package/dist/index.es57.js.map +1 -1
  91. package/dist/index.es59.js +64 -5
  92. package/dist/index.es59.js.map +1 -1
  93. package/dist/index.es60.js +27 -63
  94. package/dist/index.es60.js.map +1 -1
  95. package/dist/index.es61.js +5 -29
  96. package/dist/index.es61.js.map +1 -1
  97. package/dist/index.es62.js +24 -5
  98. package/dist/index.es62.js.map +1 -1
  99. package/dist/index.es63.js +32 -24
  100. package/dist/index.es63.js.map +1 -1
  101. package/dist/index.es65.js +1 -1
  102. package/dist/index.es67.js +3 -3
  103. package/dist/index.es69.js +1 -1
  104. package/dist/index.es71.js +6 -6
  105. package/dist/index.es72.js +1 -1
  106. package/dist/index.es75.js +1 -1
  107. package/dist/index.es78.js +11 -67
  108. package/dist/index.es78.js.map +1 -1
  109. package/dist/index.es79.js +203 -10
  110. package/dist/index.es79.js.map +1 -1
  111. package/dist/index.es80.js +20 -203
  112. package/dist/index.es80.js.map +1 -1
  113. package/dist/index.es81.js +392 -21
  114. package/dist/index.es81.js.map +1 -1
  115. package/dist/index.es82.js +61 -386
  116. package/dist/index.es82.js.map +1 -1
  117. package/dist/packages/builder/context.d.ts.map +1 -1
  118. 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.es55.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;"}