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

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 (196) hide show
  1. package/dist/index.cjs.js +1 -1
  2. package/dist/index.cjs10.js +1 -1
  3. package/dist/index.cjs10.js.map +1 -1
  4. package/dist/index.cjs11.js +1 -1
  5. package/dist/index.cjs11.js.map +1 -1
  6. package/dist/index.cjs12.js +1 -1
  7. package/dist/index.cjs12.js.map +1 -1
  8. package/dist/index.cjs13.js +1 -1
  9. package/dist/index.cjs13.js.map +1 -1
  10. package/dist/index.cjs14.js +1 -1
  11. package/dist/index.cjs14.js.map +1 -1
  12. package/dist/index.cjs15.js +6 -1
  13. package/dist/index.cjs15.js.map +1 -1
  14. package/dist/index.cjs16.js +1 -1
  15. package/dist/index.cjs16.js.map +1 -1
  16. package/dist/index.cjs17.js +1 -1
  17. package/dist/index.cjs17.js.map +1 -1
  18. package/dist/index.cjs18.js +1 -1
  19. package/dist/index.cjs18.js.map +1 -1
  20. package/dist/index.cjs19.js +1 -1
  21. package/dist/index.cjs19.js.map +1 -1
  22. package/dist/index.cjs2.js +1 -1
  23. package/dist/index.cjs2.js.map +1 -1
  24. package/dist/index.cjs20.js +1 -1
  25. package/dist/index.cjs20.js.map +1 -1
  26. package/dist/index.cjs21.js +1 -1
  27. package/dist/index.cjs21.js.map +1 -1
  28. package/dist/index.cjs22.js +1 -1
  29. package/dist/index.cjs22.js.map +1 -1
  30. package/dist/index.cjs23.js +1 -6
  31. package/dist/index.cjs23.js.map +1 -1
  32. package/dist/index.cjs24.js +1 -6
  33. package/dist/index.cjs24.js.map +1 -1
  34. package/dist/index.cjs25.js +1 -6
  35. package/dist/index.cjs25.js.map +1 -1
  36. package/dist/index.cjs26.js +1 -1
  37. package/dist/index.cjs26.js.map +1 -1
  38. package/dist/index.cjs27.js +1 -1
  39. package/dist/index.cjs27.js.map +1 -1
  40. package/dist/index.cjs28.js +6 -1
  41. package/dist/index.cjs28.js.map +1 -1
  42. package/dist/index.cjs29.js +6 -1
  43. package/dist/index.cjs29.js.map +1 -1
  44. package/dist/index.cjs3.js +1 -1
  45. package/dist/index.cjs3.js.map +1 -1
  46. package/dist/index.cjs30.js +1 -1
  47. package/dist/index.cjs30.js.map +1 -1
  48. package/dist/index.cjs31.js +1 -1
  49. package/dist/index.cjs34.js +1 -1
  50. package/dist/index.cjs36.js +1 -1
  51. package/dist/index.cjs37.js +1 -1
  52. package/dist/index.cjs38.js +1 -1
  53. package/dist/index.cjs39.js +1 -1
  54. package/dist/index.cjs4.js +1 -1
  55. package/dist/index.cjs4.js.map +1 -1
  56. package/dist/index.cjs41.js +1 -1
  57. package/dist/index.cjs42.js +1 -1
  58. package/dist/index.cjs42.js.map +1 -1
  59. package/dist/index.cjs43.js +1 -1
  60. package/dist/index.cjs47.js +1 -1
  61. package/dist/index.cjs5.js +1 -1
  62. package/dist/index.cjs5.js.map +1 -1
  63. package/dist/index.cjs55.js +1 -5
  64. package/dist/index.cjs55.js.map +1 -1
  65. package/dist/index.cjs56.js +1 -1
  66. package/dist/index.cjs56.js.map +1 -1
  67. package/dist/index.cjs57.js +1 -1
  68. package/dist/index.cjs57.js.map +1 -1
  69. package/dist/index.cjs58.js +1 -1
  70. package/dist/index.cjs58.js.map +1 -1
  71. package/dist/index.cjs59.js +1 -1
  72. package/dist/index.cjs59.js.map +1 -1
  73. package/dist/index.cjs6.js +1 -1
  74. package/dist/index.cjs6.js.map +1 -1
  75. package/dist/index.cjs60.js +1 -1
  76. package/dist/index.cjs60.js.map +1 -1
  77. package/dist/index.cjs61.js +1 -1
  78. package/dist/index.cjs61.js.map +1 -1
  79. package/dist/index.cjs62.js +5 -1
  80. package/dist/index.cjs62.js.map +1 -1
  81. package/dist/index.cjs63.js +1 -1
  82. package/dist/index.cjs63.js.map +1 -1
  83. package/dist/index.cjs65.js +1 -1
  84. package/dist/index.cjs67.js +1 -1
  85. package/dist/index.cjs69.js +1 -1
  86. package/dist/index.cjs7.js +1 -1
  87. package/dist/index.cjs7.js.map +1 -1
  88. package/dist/index.cjs71.js +1 -1
  89. package/dist/index.cjs72.js +1 -1
  90. package/dist/index.cjs75.js +1 -1
  91. package/dist/index.cjs78.js +1 -1
  92. package/dist/index.cjs8.js +1 -1
  93. package/dist/index.cjs8.js.map +1 -1
  94. package/dist/index.cjs81.js +1 -1
  95. package/dist/index.cjs9.js +1 -1
  96. package/dist/index.cjs9.js.map +1 -1
  97. package/dist/index.d.mts +5 -4
  98. package/dist/index.d.mts.map +1 -1
  99. package/dist/index.es.js +18 -28
  100. package/dist/index.es10.js +22 -22
  101. package/dist/index.es10.js.map +1 -1
  102. package/dist/index.es11.js +14 -42
  103. package/dist/index.es11.js.map +1 -1
  104. package/dist/index.es12.js +5 -65
  105. package/dist/index.es12.js.map +1 -1
  106. package/dist/index.es13.js +43 -24
  107. package/dist/index.es13.js.map +1 -1
  108. package/dist/index.es14.js +21 -126
  109. package/dist/index.es14.js.map +1 -1
  110. package/dist/index.es15.js +13 -20
  111. package/dist/index.es15.js.map +1 -1
  112. package/dist/index.es16.js +129 -130
  113. package/dist/index.es16.js.map +1 -1
  114. package/dist/index.es17.js +3 -137
  115. package/dist/index.es17.js.map +1 -1
  116. package/dist/index.es18.js +20 -61
  117. package/dist/index.es18.js.map +1 -1
  118. package/dist/index.es19.js +65 -10
  119. package/dist/index.es19.js.map +1 -1
  120. package/dist/index.es2.js +156 -113
  121. package/dist/index.es2.js.map +1 -1
  122. package/dist/index.es20.js +134 -22
  123. package/dist/index.es20.js.map +1 -1
  124. package/dist/index.es21.js +131 -421
  125. package/dist/index.es21.js.map +1 -1
  126. package/dist/index.es22.js +63 -5
  127. package/dist/index.es22.js.map +1 -1
  128. package/dist/index.es23.js +11 -13
  129. package/dist/index.es23.js.map +1 -1
  130. package/dist/index.es24.js +23 -16
  131. package/dist/index.es24.js.map +1 -1
  132. package/dist/index.es25.js +428 -13
  133. package/dist/index.es25.js.map +1 -1
  134. package/dist/index.es26.js +7 -13
  135. package/dist/index.es26.js.map +1 -1
  136. package/dist/index.es27.js +9 -3
  137. package/dist/index.es27.js.map +1 -1
  138. package/dist/index.es28.js +13 -19
  139. package/dist/index.es28.js.map +1 -1
  140. package/dist/index.es29.js +19 -23
  141. package/dist/index.es29.js.map +1 -1
  142. package/dist/index.es3.js +129 -340
  143. package/dist/index.es3.js.map +1 -1
  144. package/dist/index.es30.js +4 -7
  145. package/dist/index.es30.js.map +1 -1
  146. package/dist/index.es31.js +1 -1
  147. package/dist/index.es34.js +1 -1
  148. package/dist/index.es36.js +7 -7
  149. package/dist/index.es37.js +3 -3
  150. package/dist/index.es38.js +3 -3
  151. package/dist/index.es39.js +2 -2
  152. package/dist/index.es4.js +92 -70
  153. package/dist/index.es4.js.map +1 -1
  154. package/dist/index.es41.js +2 -2
  155. package/dist/index.es42.js +4 -4
  156. package/dist/index.es43.js +6 -6
  157. package/dist/index.es47.js +4 -4
  158. package/dist/index.es5.js +225 -79
  159. package/dist/index.es5.js.map +1 -1
  160. package/dist/index.es55.js +30 -252
  161. package/dist/index.es55.js.map +1 -1
  162. package/dist/index.es56.js +26 -21
  163. package/dist/index.es56.js.map +1 -1
  164. package/dist/index.es57.js +6 -32
  165. package/dist/index.es57.js.map +1 -1
  166. package/dist/index.es58.js +62 -23
  167. package/dist/index.es58.js.map +1 -1
  168. package/dist/index.es59.js +29 -6
  169. package/dist/index.es59.js.map +1 -1
  170. package/dist/index.es6.js +117 -57
  171. package/dist/index.es6.js.map +1 -1
  172. package/dist/index.es60.js +4 -64
  173. package/dist/index.es60.js.map +1 -1
  174. package/dist/index.es61.js +24 -29
  175. package/dist/index.es61.js.map +1 -1
  176. package/dist/index.es62.js +254 -5
  177. package/dist/index.es62.js.map +1 -1
  178. package/dist/index.es63.js +21 -24
  179. package/dist/index.es63.js.map +1 -1
  180. package/dist/index.es65.js +2 -2
  181. package/dist/index.es67.js +3 -3
  182. package/dist/index.es69.js +2 -2
  183. package/dist/index.es7.js +345 -48
  184. package/dist/index.es7.js.map +1 -1
  185. package/dist/index.es71.js +4 -4
  186. package/dist/index.es72.js +1 -1
  187. package/dist/index.es75.js +1 -1
  188. package/dist/index.es78.js +1 -1
  189. package/dist/index.es8.js +73 -163
  190. package/dist/index.es8.js.map +1 -1
  191. package/dist/index.es81.js +1 -1
  192. package/dist/index.es9.js +18 -3
  193. package/dist/index.es9.js.map +1 -1
  194. package/dist/packages/builder/add-dialog.d.ts +5 -5
  195. package/dist/packages/builder/context.d.ts.map +1 -1
  196. package/package.json +1 -1
package/dist/index.es8.js CHANGED
@@ -1,170 +1,80 @@
1
- import { jsx as e, jsxs as r } from "react/jsx-runtime";
2
- import { Input as f } from "./index.es28.js";
3
- import { InputErrorWrapper as u } from "./index.es29.js";
4
- import { Label as h } from "./index.es15.js";
5
- import { cn as p } from "./index.es22.js";
6
- import { useConstraints as v } from "./index.es4.js";
7
- import { Button as g } from "./index.es11.js";
8
- import { Select as N, SelectTrigger as x, SelectValue as D, SelectContent as S, SelectItem as R } from "./index.es14.js";
9
- import b from "./index.es30.js";
10
- const C = ({
11
- constraintName: i,
12
- value: a,
13
- onConstraintChange: l,
14
- disabled: s,
15
- error: n,
16
- onRemoveConstraint: o
17
- }) => {
18
- const { getConstraintDefinition: c } = v(), t = c(i);
19
- return t ? /* @__PURE__ */ e(
20
- u,
1
+ import { jsx as C } from "react/jsx-runtime";
2
+ import { createContext as h, useContext as g, useMemo as P, useRef as l } from "react";
3
+ import { ajv as R } from "./index.es23.js";
4
+ const u = h(void 0), x = ({ children: e }) => {
5
+ const r = l(
6
+ /* @__PURE__ */ new Map()
7
+ ), o = l(/* @__PURE__ */ new Map());
8
+ return /* @__PURE__ */ C(
9
+ u.Provider,
21
10
  {
22
- errorCode: n?.code,
23
- errorDescription: n?.message,
24
- showError: !!n,
25
- children: /* @__PURE__ */ r("div", { children: [
26
- /* @__PURE__ */ e(h, { className: "mb-2", htmlFor: t.name, children: t.name }),
27
- /* @__PURE__ */ r("div", { className: "flex items-center gap-2", children: [
28
- /* @__PURE__ */ e(
29
- f,
30
- {
31
- id: t.name,
32
- type: "number",
33
- value: a,
34
- onChange: (m) => l(Number(m.target.value)),
35
- disabled: s,
36
- min: 0,
37
- className: p({ "border-destructive": n })
38
- }
39
- ),
40
- /* @__PURE__ */ e(
41
- g,
42
- {
43
- type: "button",
44
- variant: "ghost",
45
- size: "icon",
46
- onClick: () => o(),
47
- children: /* @__PURE__ */ e(b, { className: "size-4" })
48
- }
49
- )
50
- ] }),
51
- t.description && /* @__PURE__ */ e("div", { className: "mt-2 text-sm text-gray-500", children: t.description })
52
- ] })
11
+ value: {
12
+ constraintDefinitionsMap: r.current,
13
+ constraintRenderersMap: o.current
14
+ },
15
+ children: e
53
16
  }
54
- ) : null;
55
- }, y = ({
56
- constraintName: i,
57
- value: a,
58
- onConstraintChange: l,
59
- disabled: s,
60
- error: n,
61
- onRemoveConstraint: o
62
- }) => {
63
- const { getConstraintDefinition: c } = v(), t = c(i);
64
- return t ? /* @__PURE__ */ e(
65
- u,
66
- {
67
- errorCode: n?.code,
68
- errorDescription: n?.message,
69
- showError: !!n,
70
- children: /* @__PURE__ */ r("div", { children: [
71
- /* @__PURE__ */ e(h, { className: "mb-2", htmlFor: t.name, children: t.name }),
72
- /* @__PURE__ */ r("div", { className: "flex items-center gap-2", children: [
73
- /* @__PURE__ */ e(
74
- f,
75
- {
76
- id: t.name,
77
- type: "text",
78
- value: a,
79
- onChange: (m) => l(m.target.value),
80
- disabled: s,
81
- placeholder: "Regular expression pattern",
82
- className: p({ "border-destructive": n })
83
- }
84
- ),
85
- /* @__PURE__ */ e(
86
- g,
87
- {
88
- type: "button",
89
- variant: "ghost",
90
- size: "icon",
91
- onClick: () => o(),
92
- children: /* @__PURE__ */ e(b, { className: "size-4" })
93
- }
94
- )
95
- ] }),
96
- t.description && /* @__PURE__ */ e("div", { className: "mt-2 text-sm text-gray-500", children: t.description })
97
- ] })
17
+ );
18
+ };
19
+ function E(e) {
20
+ const r = g(u);
21
+ if (!r)
22
+ throw new Error("usePluginSystem must be used within a PluginsProvider");
23
+ const { constraintDefinitionsMap: o, constraintRenderersMap: a } = r;
24
+ return P(() => (e.forEach((t) => {
25
+ if (t.hooks.registerConstraints && t.hooks.registerConstraints().forEach((i) => {
26
+ o.set(i.name, i);
27
+ }), t.hooks.registerRenderers) {
28
+ const s = t.hooks.registerRenderers();
29
+ Object.entries(s).forEach(([i, n]) => {
30
+ a.set(i, n);
31
+ });
98
32
  }
99
- ) : null;
100
- }, I = ({
101
- constraintName: i,
102
- value: a,
103
- onConstraintChange: l,
104
- disabled: s,
105
- error: n,
106
- onRemoveConstraint: o
107
- }) => {
108
- const { getConstraintDefinition: c } = v(), t = c(i), m = [
109
- { value: "email", label: "Email" },
110
- { value: "uri", label: "URI" },
111
- { value: "url", label: "URL" },
112
- { value: "date", label: "Date" },
113
- { value: "date-time", label: "Date-Time" },
114
- { value: "uuid", label: "UUID" },
115
- { value: "hostname", label: "Hostname" },
116
- { value: "ipv4", label: "IPv4" },
117
- { value: "ipv6", label: "IPv6" },
118
- { value: "phone", label: "Phone" }
119
- ];
120
- return t ? /* @__PURE__ */ e(
121
- u,
122
- {
123
- errorCode: n?.code,
124
- errorDescription: n?.message,
125
- showError: !!n,
126
- children: /* @__PURE__ */ r("div", { children: [
127
- /* @__PURE__ */ e(h, { className: "mb-2", htmlFor: t.name, children: t.name }),
128
- /* @__PURE__ */ r("div", { className: "flex items-center gap-2", children: [
129
- /* @__PURE__ */ r(
130
- N,
131
- {
132
- value: a,
133
- onValueChange: (d) => l(d),
134
- disabled: s,
135
- children: [
136
- /* @__PURE__ */ e(
137
- x,
138
- {
139
- id: t.name,
140
- className: p("flex-1", { "border-destructive": n }),
141
- children: /* @__PURE__ */ e(D, { placeholder: "Select format" })
142
- }
143
- ),
144
- /* @__PURE__ */ e(S, { children: m.map((d) => /* @__PURE__ */ e(R, { value: d.value, children: d.label }, d.value)) })
145
- ]
146
- }
147
- ),
148
- /* @__PURE__ */ e(
149
- g,
150
- {
151
- type: "button",
152
- variant: "ghost",
153
- size: "icon",
154
- onClick: () => o(),
155
- children: /* @__PURE__ */ e(b, { className: "size-4" })
156
- }
157
- )
158
- ] }),
159
- t.description && /* @__PURE__ */ e("div", { className: "mt-2 text-sm text-gray-500", children: t.description })
160
- ] })
33
+ }), {
34
+ // Check if a plugin with given ID exists
35
+ hasPlugin(t) {
36
+ return e.some((s) => s.id === t);
37
+ },
38
+ // Get a plugin by ID
39
+ getPlugin(t) {
40
+ return e.find((s) => s.id === t);
161
41
  }
162
- ) : null;
163
- }, M = C, T = C, V = y, B = I;
42
+ }), [e]);
43
+ }
44
+ const k = () => {
45
+ const e = g(u);
46
+ if (!e)
47
+ throw new Error("useConstraints must be used within a ConstraintsProvider");
48
+ const { constraintDefinitionsMap: r, constraintRenderersMap: o } = e, a = () => Array.from(r.values()), d = (n) => a().filter(
49
+ (c) => c.appliesTo.includes(n)
50
+ ), t = (n) => r.get(n);
51
+ return {
52
+ getConstraintDefinitionsForType: d,
53
+ getAllDefinitions: a,
54
+ getRendererForConstraint: (n) => o.get(n),
55
+ getConstraintDefinition: t,
56
+ validateConstraintValue: (n, f) => {
57
+ const c = t(n);
58
+ if (c) {
59
+ const v = c.schema, m = R.compile(v);
60
+ return m(f) ? { status: "success" } : {
61
+ status: "error",
62
+ code: "invalid",
63
+ message: "Invalid value",
64
+ error: m.errors
65
+ };
66
+ }
67
+ return {
68
+ status: "error",
69
+ code: "constraint-def-missing",
70
+ message: "Constraint not found"
71
+ };
72
+ }
73
+ };
74
+ };
164
75
  export {
165
- B as StringFormatRenderer,
166
- T as StringMaxLengthRenderer,
167
- M as StringMinLengthRenderer,
168
- V as StringPatternRenderer
76
+ x as PluginsProvider,
77
+ k as useConstraints,
78
+ E as usePluginSystem
169
79
  };
170
80
  //# sourceMappingURL=index.es8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es8.js","sources":["../src/packages/plugins/string.tsx"],"sourcesContent":["import { Input } from \"@/components/ui/input\";\nimport { InputErrorWrapper } from \"@/components/input-error\";\nimport { Label } from \"@/components/ui/label\";\nimport { cn } from \"@/lib/utils\";\nimport {\n BaseJSONSchemaPlugin,\n ConstraintRendererProps,\n useConstraints,\n} from \"@/packages/constraints/context\";\nimport { Button } from \"@/components/ui/button\";\nimport { X } from \"lucide-react\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\n\n// Generic string constraint renderer for number-based constraints (minLength, maxLength)\nconst StringNumberConstraintRenderer = ({\n constraintName,\n value,\n onConstraintChange,\n disabled,\n error,\n onRemoveConstraint,\n}: ConstraintRendererProps<number> & { disabled?: boolean }) => {\n const { getConstraintDefinition } = useConstraints();\n const constraintDef = getConstraintDefinition(constraintName);\n\n if (!constraintDef) {\n return null;\n }\n\n return (\n <InputErrorWrapper\n errorCode={error?.code}\n errorDescription={error?.message}\n showError={!!error}\n >\n <div>\n <Label className=\"mb-2\" htmlFor={constraintDef.name}>\n {constraintDef.name}\n </Label>\n <div className=\"flex items-center gap-2\">\n <Input\n id={constraintDef.name}\n type=\"number\"\n value={value}\n onChange={(e) => onConstraintChange(Number(e.target.value))}\n disabled={disabled}\n min={0}\n className={cn({ \"border-destructive\": error })}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => onRemoveConstraint()}\n >\n <X className=\"size-4\" />\n </Button>\n </div>\n {constraintDef.description && (\n <div className=\"mt-2 text-sm text-gray-500\">\n {constraintDef.description}\n </div>\n )}\n </div>\n </InputErrorWrapper>\n );\n};\n\n// Pattern constraint renderer for regex input\nconst PatternConstraintRenderer = ({\n constraintName,\n value,\n onConstraintChange,\n disabled,\n error,\n onRemoveConstraint,\n}: ConstraintRendererProps<string> & { disabled?: boolean }) => {\n const { getConstraintDefinition } = useConstraints();\n const constraintDef = getConstraintDefinition(constraintName);\n\n if (!constraintDef) {\n return null;\n }\n\n return (\n <InputErrorWrapper\n errorCode={error?.code}\n errorDescription={error?.message}\n showError={!!error}\n >\n <div>\n <Label className=\"mb-2\" htmlFor={constraintDef.name}>\n {constraintDef.name}\n </Label>\n <div className=\"flex items-center gap-2\">\n <Input\n id={constraintDef.name}\n type=\"text\"\n value={value}\n onChange={(e) => onConstraintChange(e.target.value)}\n disabled={disabled}\n placeholder=\"Regular expression pattern\"\n className={cn({ \"border-destructive\": error })}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => onRemoveConstraint()}\n >\n <X className=\"size-4\" />\n </Button>\n </div>\n {constraintDef.description && (\n <div className=\"mt-2 text-sm text-gray-500\">\n {constraintDef.description}\n </div>\n )}\n </div>\n </InputErrorWrapper>\n );\n};\n\n// Format constraint renderer with predefined format options\nconst FormatConstraintRenderer = ({\n constraintName,\n value,\n onConstraintChange,\n disabled,\n error,\n onRemoveConstraint,\n}: ConstraintRendererProps<string> & { disabled?: boolean }) => {\n const { getConstraintDefinition } = useConstraints();\n const constraintDef = getConstraintDefinition(constraintName);\n\n const formatOptions = [\n { value: \"email\", label: \"Email\" },\n { value: \"uri\", label: \"URI\" },\n { value: \"url\", label: \"URL\" },\n { value: \"date\", label: \"Date\" },\n { value: \"date-time\", label: \"Date-Time\" },\n { value: \"uuid\", label: \"UUID\" },\n { value: \"hostname\", label: \"Hostname\" },\n { value: \"ipv4\", label: \"IPv4\" },\n { value: \"ipv6\", label: \"IPv6\" },\n { value: \"phone\", label: \"Phone\" },\n ];\n\n if (!constraintDef) {\n return null;\n }\n\n return (\n <InputErrorWrapper\n errorCode={error?.code}\n errorDescription={error?.message}\n showError={!!error}\n >\n <div>\n <Label className=\"mb-2\" htmlFor={constraintDef.name}>\n {constraintDef.name}\n </Label>\n <div className=\"flex items-center gap-2\">\n <Select\n value={value}\n onValueChange={(newValue) => onConstraintChange(newValue)}\n disabled={disabled}\n >\n <SelectTrigger\n id={constraintDef.name}\n className={cn(\"flex-1\", { \"border-destructive\": error })}\n >\n <SelectValue placeholder=\"Select format\" />\n </SelectTrigger>\n <SelectContent>\n {formatOptions.map((option) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => onRemoveConstraint()}\n >\n <X className=\"size-4\" />\n </Button>\n </div>\n {constraintDef.description && (\n <div className=\"mt-2 text-sm text-gray-500\">\n {constraintDef.description}\n </div>\n )}\n </div>\n </InputErrorWrapper>\n );\n};\n\n// Export the renderers\nexport const StringMinLengthRenderer = StringNumberConstraintRenderer;\nexport const StringMaxLengthRenderer = StringNumberConstraintRenderer;\nexport const StringPatternRenderer = PatternConstraintRenderer;\nexport const StringFormatRenderer = FormatConstraintRenderer;\n\nconst plugin: BaseJSONSchemaPlugin = {\n id: \"string-constraints\",\n hooks: {\n registerConstraints() {\n return [\n {\n name: \"minLength\",\n label: \"Min Length\",\n appliesTo: [\"string\"],\n schema: {\n type: \"integer\",\n title: \"Minimum Length Constraint\",\n description: \"The minimum length of the string\",\n examples: [1, 5, 10],\n minimum: 0,\n },\n description: \"Constrains a string to a minimum length\",\n defaultValue: 0,\n },\n {\n name: \"maxLength\",\n label: \"Max Length\",\n appliesTo: [\"string\"],\n schema: {\n type: \"integer\",\n title: \"Maximum Length Constraint\",\n description: \"The maximum length of the string\",\n examples: [50, 100, 255],\n minimum: 0,\n },\n description: \"Constrains a string to a maximum length\",\n defaultValue: 100,\n },\n {\n name: \"pattern\",\n label: \"Pattern\",\n appliesTo: [\"string\"],\n schema: {\n type: \"string\",\n title: \"Pattern Constraint\",\n description: \"Regular expression pattern the string must match\",\n examples: [\"^[a-zA-Z0-9]+$\", \"\\\\d{3}-\\\\d{2}-\\\\d{4}\"],\n },\n description: \"Regular expression that the string must match\",\n defaultValue: \"\",\n },\n {\n name: \"format\",\n label: \"Format\",\n appliesTo: [\"string\"],\n schema: {\n type: \"string\",\n title: \"Format Constraint\",\n description: \"Predefined format the string must follow\",\n enum: [\n \"email\",\n \"uri\",\n \"url\",\n \"date\",\n \"date-time\",\n \"uuid\",\n \"hostname\",\n \"ipv4\",\n \"ipv6\",\n \"phone\",\n ],\n },\n description: \"Predefined format validation for the string\",\n defaultValue: \"email\",\n },\n ];\n },\n registerRenderers() {\n return {\n minLength: StringMinLengthRenderer,\n maxLength: StringMaxLengthRenderer,\n pattern: StringPatternRenderer,\n format: StringFormatRenderer,\n };\n },\n },\n};\n\nexport default plugin;\n"],"names":["StringNumberConstraintRenderer","constraintName","value","onConstraintChange","disabled","error","onRemoveConstraint","getConstraintDefinition","useConstraints","constraintDef","jsx","InputErrorWrapper","Label","jsxs","Input","e","cn","Button","X","PatternConstraintRenderer","FormatConstraintRenderer","formatOptions","Select","newValue","SelectTrigger","SelectValue","SelectContent","option","SelectItem","StringMinLengthRenderer","StringMaxLengthRenderer","StringPatternRenderer","StringFormatRenderer"],"mappings":"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"}
1
+ {"version":3,"file":"index.es8.js","sources":["../src/packages/constraints/context.tsx"],"sourcesContent":["import { createContext, useContext, useMemo, useRef } from \"react\";\nimport type { PropsWithChildren, ComponentType } from \"react\";\n\nimport type { JSONSchema7 } from \"json-schema\";\nimport { ajv } from \"@/packages/builder/utils\";\nimport type { OperationError } from \"../builder/shared-types\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ConstraintRendererProps<T = any> {\n value: T;\n onConstraintChange: (newValue: T) => void;\n onRemoveConstraint: () => void;\n constraintName: string;\n // Is this constraint disabled/readonly\n disabled?: boolean;\n error?: OperationError;\n}\n\nexport interface ConstraintDefinition {\n /**\n * The unique identifier for the constraint\n */\n name: keyof JSONSchema7;\n label: string;\n /**\n * Types this constraint applies to.\n */\n appliesTo: string[];\n /**\n * Apply JSON schema principles to the constraint.\n */\n schema: JSONSchema7;\n description?: string;\n defaultValue: unknown;\n}\n\nexport interface Constraint {\n name: ConstraintDefinition[\"name\"];\n value: unknown;\n}\n\nexport interface BaseJSONSchemaPlugin {\n id: string;\n hooks: {\n registerConstraints?: () => ConstraintDefinition[];\n registerRenderers?: () => Record<\n string,\n ComponentType<ConstraintRendererProps>\n >;\n };\n}\n\ninterface ContextState {\n constraintDefinitionsMap: Map<string, ConstraintDefinition>;\n constraintRenderersMap: Map<string, ComponentType<ConstraintRendererProps>>;\n}\n\nconst PluginsContext = createContext<ContextState | undefined>(undefined);\n\nexport const PluginsProvider = ({ children }: PropsWithChildren) => {\n // Store references. If you need to trigger a re-render,\n //use the methods in usePluginSystem hook instead\n const constraintDefinitionsRef = useRef<Map<string, ConstraintDefinition>>(\n new Map(),\n );\n const constraintRenderersRef = useRef<\n Map<string, ComponentType<ConstraintRendererProps>>\n >(new Map());\n\n return (\n <PluginsContext.Provider\n value={{\n constraintDefinitionsMap: constraintDefinitionsRef.current,\n constraintRenderersMap: constraintRenderersRef.current,\n }}\n >\n {children}\n </PluginsContext.Provider>\n );\n};\n\n// The main plugin system hook\nexport function usePluginSystem<TPlugin extends BaseJSONSchemaPlugin>(\n plugins: TPlugin[],\n) {\n const context = useContext(PluginsContext);\n if (!context) {\n throw new Error(\"usePluginSystem must be used within a PluginsProvider\");\n }\n\n const { constraintDefinitionsMap, constraintRenderersMap } = context;\n\n const memoizedPluginValues = useMemo(() => {\n // Register all plugins\n plugins.forEach((plugin) => {\n // Register constraints\n if (plugin.hooks.registerConstraints) {\n const constraints = plugin.hooks.registerConstraints();\n constraints.forEach((constraint) => {\n constraintDefinitionsMap.set(constraint.name, constraint);\n });\n }\n\n // Register renderers\n if (plugin.hooks.registerRenderers) {\n const renderers = plugin.hooks.registerRenderers();\n Object.entries(renderers).forEach(([name, component]) => {\n constraintRenderersMap.set(name, component);\n });\n }\n });\n\n return {\n // Check if a plugin with given ID exists\n hasPlugin(id: string): boolean {\n return plugins.some((plugin) => plugin.id === id);\n },\n\n // Get a plugin by ID\n getPlugin(id: string): BaseJSONSchemaPlugin | undefined {\n return plugins.find((plugin) => plugin.id === id);\n },\n };\n }, [plugins]);\n\n return memoizedPluginValues;\n}\n\nexport const useConstraints = () => {\n const context = useContext(PluginsContext);\n if (!context) {\n throw new Error(\"useConstraints must be used within a ConstraintsProvider\");\n }\n\n const { constraintDefinitionsMap, constraintRenderersMap } = context;\n\n const getAllDefinitions = (): ConstraintDefinition[] => {\n return Array.from(constraintDefinitionsMap.values());\n };\n\n const getConstraintDefinitionsForType = (\n type: string,\n ): ConstraintDefinition[] => {\n const definitions = getAllDefinitions();\n return definitions.filter((definition) =>\n definition.appliesTo.includes(type),\n );\n };\n\n const getConstraintDefinition = (constraintName: string) => {\n return constraintDefinitionsMap.get(constraintName);\n };\n\n const getRendererForConstraint = (constraintName: string) => {\n return constraintRenderersMap.get(constraintName);\n };\n\n const validateConstraintValue = (constraintName: string, value: unknown) => {\n const constraintDefinition = getConstraintDefinition(constraintName);\n\n if (constraintDefinition) {\n const schema = constraintDefinition.schema;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const validate = ajv.compile<any>(schema);\n const valid = validate(value);\n\n if (valid) {\n return { status: \"success\" as const };\n }\n\n const obj = {\n status: \"error\" as const,\n code: \"invalid\" as const,\n message: \"Invalid value\",\n error: validate.errors,\n };\n\n return obj satisfies OperationError;\n }\n\n const obj = {\n status: \"error\" as const,\n code: \"constraint-def-missing\" as const,\n message: \"Constraint not found\",\n };\n\n return obj satisfies OperationError;\n };\n\n return {\n getConstraintDefinitionsForType,\n getAllDefinitions,\n getRendererForConstraint,\n getConstraintDefinition,\n validateConstraintValue,\n };\n};\n"],"names":["PluginsContext","createContext","PluginsProvider","children","constraintDefinitionsRef","useRef","constraintRenderersRef","jsx","usePluginSystem","plugins","context","useContext","constraintDefinitionsMap","constraintRenderersMap","useMemo","plugin","constraint","renderers","name","component","id","useConstraints","getAllDefinitions","getConstraintDefinitionsForType","type","definition","getConstraintDefinition","constraintName","value","constraintDefinition","schema","validate","ajv"],"mappings":";;;AAyDA,MAAMA,IAAiBC,EAAwC,MAAS,GAE3DC,IAAkB,CAAC,EAAE,UAAAC,QAAkC;AAGlE,QAAMC,IAA2BC;AAAA,wBAC3B,IAAI;AAAA,EACV,GACMC,IAAyBD,EAEzB,oBAAA,KAAK;AAGT,SAAA,gBAAAE;AAAA,IAACP,EAAe;AAAA,IAAf;AAAA,MACC,OAAO;AAAA,QACL,0BAA0BI,EAAyB;AAAA,QACnD,wBAAwBE,EAAuB;AAAA,MACjD;AAAA,MAEC,UAAAH;AAAA,IAAA;AAAA,EACH;AAEJ;AAGO,SAASK,EACdC,GACA;AACM,QAAAC,IAAUC,EAAWX,CAAc;AACzC,MAAI,CAACU;AACG,UAAA,IAAI,MAAM,uDAAuD;AAGnE,QAAA,EAAE,0BAAAE,GAA0B,wBAAAC,EAAA,IAA2BH;AAmCtD,SAjCsBI,EAAQ,OAE3BL,EAAA,QAAQ,CAACM,MAAW;AAUtB,QARAA,EAAO,MAAM,uBACKA,EAAO,MAAM,oBAAoB,EACzC,QAAQ,CAACC,MAAe;AACT,MAAAJ,EAAA,IAAII,EAAW,MAAMA,CAAU;AAAA,IAAA,CACzD,GAICD,EAAO,MAAM,mBAAmB;AAC5B,YAAAE,IAAYF,EAAO,MAAM,kBAAkB;AAC1C,aAAA,QAAQE,CAAS,EAAE,QAAQ,CAAC,CAACC,GAAMC,CAAS,MAAM;AAChC,QAAAN,EAAA,IAAIK,GAAMC,CAAS;AAAA,MAAA,CAC3C;AAAA,IAAA;AAAA,EACH,CACD,GAEM;AAAA;AAAA,IAEL,UAAUC,GAAqB;AAC7B,aAAOX,EAAQ,KAAK,CAACM,MAAWA,EAAO,OAAOK,CAAE;AAAA,IAClD;AAAA;AAAA,IAGA,UAAUA,GAA8C;AACtD,aAAOX,EAAQ,KAAK,CAACM,MAAWA,EAAO,OAAOK,CAAE;AAAA,IAAA;AAAA,EAEpD,IACC,CAACX,CAAO,CAAC;AAGd;AAEO,MAAMY,IAAiB,MAAM;AAC5B,QAAAX,IAAUC,EAAWX,CAAc;AACzC,MAAI,CAACU;AACG,UAAA,IAAI,MAAM,0DAA0D;AAGtE,QAAA,EAAE,0BAAAE,GAA0B,wBAAAC,EAAA,IAA2BH,GAEvDY,IAAoB,MACjB,MAAM,KAAKV,EAAyB,OAAA,CAAQ,GAG/CW,IAAkC,CACtCC,MAEoBF,EAAkB,EACnB;AAAA,IAAO,CAACG,MACzBA,EAAW,UAAU,SAASD,CAAI;AAAA,EACpC,GAGIE,IAA0B,CAACC,MACxBf,EAAyB,IAAIe,CAAc;AAuC7C,SAAA;AAAA,IACL,iCAAAJ;AAAA,IACA,mBAAAD;AAAA,IACA,0BAvC+B,CAACK,MACzBd,EAAuB,IAAIc,CAAc;AAAA,IAuChD,yBAAAD;AAAA,IACA,yBArC8B,CAACC,GAAwBC,MAAmB;AACpE,YAAAC,IAAuBH,EAAwBC,CAAc;AAEnE,UAAIE,GAAsB;AACxB,cAAMC,IAASD,EAAqB,QAE9BE,IAAWC,EAAI,QAAaF,CAAM;AAGxC,eAFcC,EAASH,CAAK,IAGnB,EAAE,QAAQ,UAAmB,IAG1B;AAAA,UACV,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,SAAS;AAAA,UACT,OAAOG,EAAS;AAAA,QAClB;AAAA,MAEO;AASF,aANK;AAAA,QACV,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IAGF;AAAA,EAQA;AACF;"}
@@ -1,5 +1,5 @@
1
1
  import * as n from "react";
2
- import { Primitive as p } from "./index.es57.js";
2
+ import { Primitive as p } from "./index.es55.js";
3
3
  import { jsx as o } from "react/jsx-runtime";
4
4
  var v = "Arrow", e = n.forwardRef((r, i) => {
5
5
  const { children: t, width: a = 10, height: s = 5, ...m } = r;
package/dist/index.es9.js CHANGED
@@ -1,7 +1,22 @@
1
- function t(r) {
2
- return r === void 0 ? !0 : typeof r == "string" || Array.isArray(r) ? r.length === 0 : Object.keys(r).length === 0;
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { cn as n } from "./index.es12.js";
3
+ function l({ className: e, type: i, ...r }) {
4
+ return /* @__PURE__ */ t(
5
+ "input",
6
+ {
7
+ type: i,
8
+ "data-slot": "input",
9
+ className: n(
10
+ "border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
11
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
12
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
13
+ e
14
+ ),
15
+ ...r
16
+ }
17
+ );
3
18
  }
4
19
  export {
5
- t as a
20
+ l as Input
6
21
  };
7
22
  //# sourceMappingURL=index.es9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es9.js","sources":["../../../node_modules/.pnpm/remeda@2.20.2/node_modules/remeda/dist/chunk-VCYTMP4D.js"],"sourcesContent":["function n(e){return e===void 0?!0:typeof e==\"string\"||Array.isArray(e)?e.length===0:Object.keys(e).length===0}export{n as a};\n"],"names":["n","e"],"mappings":"AAAA,SAASA,EAAEC,GAAE;AAAC,SAAOA,MAAI,SAAO,KAAG,OAAOA,KAAG,YAAU,MAAM,QAAQA,CAAC,IAAEA,EAAE,WAAS,IAAE,OAAO,KAAKA,CAAC,EAAE,WAAS;AAAC;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es9.js","sources":["../src/components/ui/input.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n"],"names":["Input","className","type","props","jsx","cn"],"mappings":";;AAIA,SAASA,EAAM,EAAE,WAAAC,GAAW,MAAAC,GAAM,GAAGC,KAAwC;AAEzE,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAAF;AAAA,MACA,aAAU;AAAA,MACV,WAAWG;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAJ;AAAA,MACF;AAAA,MACC,GAAGE;AAAA,IAAA;AAAA,EACN;AAEJ;"}
@@ -29,38 +29,38 @@ export declare const AddFormSchema: z.ZodObject<{
29
29
  }, "strip", z.ZodTypeAny, {
30
30
  title: string;
31
31
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
32
- enum?: (string | number | boolean | Record<string, any> | null)[] | undefined;
33
32
  items?: boolean | {
34
33
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
35
34
  } | (boolean | {
36
35
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
37
36
  })[] | undefined;
37
+ enum?: (string | number | boolean | Record<string, any> | null)[] | undefined;
38
38
  description?: string | undefined;
39
39
  }, {
40
40
  title: string;
41
41
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
42
- enum?: (string | number | boolean | Record<string, any> | null)[] | undefined;
43
42
  items?: boolean | {
44
43
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
45
44
  } | (boolean | {
46
45
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
47
46
  })[] | undefined;
47
+ enum?: (string | number | boolean | Record<string, any> | null)[] | undefined;
48
48
  description?: string | undefined;
49
49
  }>;
50
50
  required: z.ZodDefault<z.ZodBoolean>;
51
51
  constraints: z.ZodOptional<z.ZodArray<z.ZodType<Constraint, z.ZodTypeDef, Constraint>, "many">>;
52
52
  }, "strip", z.ZodTypeAny, {
53
- required: boolean;
54
53
  key: string;
54
+ required: boolean;
55
55
  property: {
56
56
  title: string;
57
57
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
58
- enum?: (string | number | boolean | Record<string, any> | null)[] | undefined;
59
58
  items?: boolean | {
60
59
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
61
60
  } | (boolean | {
62
61
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
63
62
  })[] | undefined;
63
+ enum?: (string | number | boolean | Record<string, any> | null)[] | undefined;
64
64
  description?: string | undefined;
65
65
  };
66
66
  constraints?: Constraint[] | undefined;
@@ -69,12 +69,12 @@ export declare const AddFormSchema: z.ZodObject<{
69
69
  property: {
70
70
  title: string;
71
71
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
72
- enum?: (string | number | boolean | Record<string, any> | null)[] | undefined;
73
72
  items?: boolean | {
74
73
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
75
74
  } | (boolean | {
76
75
  type: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[];
77
76
  })[] | undefined;
77
+ enum?: (string | number | boolean | Record<string, any> | null)[] | undefined;
78
78
  description?: string | undefined;
79
79
  };
80
80
  required?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/packages/builder/context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,UAAU,YAAY,CAAC,CAAC,SAAS,WAAW;IAC1C,MAAM,EAAE,CAAC,CAAC;IACV,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CACnD;AAED,eAAO,MAAM,aAAa,gEAEd,CAAC;AAWb,iBAAS,cAAc,CAAC,EACtB,QAAQ,EACR,aAAa,GACd,EAAE,iBAAiB,CAAC;IAAE,aAAa,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC,2CAqBpD;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED,iBAAS,SAAS,CAAC,EACjB,cAAc,GACf,GAAE;IACD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;uCA8DsC,WAAW;;gCA+D9C,MAAM,WACF,OAAO,CAAC,qBAAqB,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,KACjE,qBAAqB,GAAG,SAAS;6BA0E7B,MAAM,iBACI,WAAW,cACd,OAAO;;;;;;;;;;;2BA5GS,MAAM,UAAU,MAAM;+CA1ElC,WAAW,gBACb,MAAM,EAAE;;;;gCA0OW,MAAM;8BAwCR,MAAM;;mCAlBD,MAAM;;;;;;;;;;;;;UAnVtC,MAAM,EAAE;aACL,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;EA4YlD;AAED,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/packages/builder/context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,UAAU,YAAY,CAAC,CAAC,SAAS,WAAW;IAC1C,MAAM,EAAE,CAAC,CAAC;IACV,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CACnD;AAED,eAAO,MAAM,aAAa,gEAEd,CAAC;AAWb,iBAAS,cAAc,CAAC,EACtB,QAAQ,EACR,aAAa,GACd,EAAE,iBAAiB,CAAC;IAAE,aAAa,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC,2CAqBpD;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED,iBAAS,SAAS,CAAC,EACjB,cAAc,GACf,GAAE;IACD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;uCA8DsC,WAAW;;gCA+D9C,MAAM,WACF,OAAO,CAAC,qBAAqB,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,KACjE,qBAAqB,GAAG,SAAS;6BA0E7B,MAAM,iBACI,WAAW,cACd,OAAO;;;;;;;;;;;2BA5GS,MAAM,UAAU,MAAM;+CA1ElC,WAAW,gBACb,MAAM,EAAE;;;;gCAgPW,MAAM;8BAwCR,MAAM;;mCAlBD,MAAM;;;;;;;;;;;;;UAzVtC,MAAM,EAAE;aACL,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;EAkZlD;AAED,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@satoshibits/react-json-schema-builder",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "main": "./dist/index.cjs.js",
5
5
  "types": "./dist/index.d.mts",
6
6
  "exports": {