schema-components 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/README.md +98 -1
  2. package/dist/SchemaComponent-B__6-5-E.d.mts +277 -0
  3. package/dist/SchemaComponent-BxzzsHsK.mjs +668 -0
  4. package/dist/adapter-ktQaheWB.d.mts +213 -0
  5. package/dist/constructorTypes-BdCiMS6e.d.mts +30 -0
  6. package/dist/core/adapter.d.mts +3 -213
  7. package/dist/core/constraintHint.d.mts +1 -1
  8. package/dist/core/constraints.d.mts +2 -2
  9. package/dist/core/contexts.d.mts +71 -0
  10. package/dist/core/contexts.mjs +1 -0
  11. package/dist/core/diagnostics.d.mts +1 -1
  12. package/dist/core/errors.d.mts +1 -1
  13. package/dist/core/fieldOrder.d.mts +1 -1
  14. package/dist/{react → core}/fieldPath.d.mts +2 -2
  15. package/dist/{react → core}/fieldPath.mjs +3 -3
  16. package/dist/core/formats.d.mts +1 -1
  17. package/dist/core/inferValue.d.mts +1 -1
  18. package/dist/core/limits.d.mts +1 -1
  19. package/dist/core/merge.d.mts +1 -1
  20. package/dist/core/normalise.d.mts +2 -2
  21. package/dist/core/ref.d.mts +1 -1
  22. package/dist/core/renderField.d.mts +147 -0
  23. package/dist/core/renderField.mjs +81 -0
  24. package/dist/core/renderer.d.mts +2 -199
  25. package/dist/core/swagger2.d.mts +1 -1
  26. package/dist/core/typeInference.d.mts +1 -982
  27. package/dist/core/types.d.mts +1 -1
  28. package/dist/core/unionMatch.d.mts +1 -1
  29. package/dist/core/version.d.mts +1 -1
  30. package/dist/core/walkBuilders.d.mts +3 -3
  31. package/dist/core/walker.d.mts +1 -1
  32. package/dist/{errors-Dki7tji4.d.mts → errors-DbaI04x2.d.mts} +1 -1
  33. package/dist/html/a11y.d.mts +2 -2
  34. package/dist/html/renderToHtml.d.mts +5 -5
  35. package/dist/html/renderToHtml.mjs +33 -18
  36. package/dist/html/renderToHtmlStream.d.mts +5 -5
  37. package/dist/html/renderers.d.mts +1 -1
  38. package/dist/html/streamRenderers.d.mts +3 -3
  39. package/dist/{inferValue-Ce-PviSD.d.mts → inferValue-eAnh50EM.d.mts} +3 -3
  40. package/dist/lit/SchemaComponent.d.mts +125 -0
  41. package/dist/lit/SchemaComponent.mjs +2 -0
  42. package/dist/lit/SchemaField.d.mts +65 -0
  43. package/dist/lit/SchemaField.mjs +2 -0
  44. package/dist/lit/SchemaView.d.mts +14 -0
  45. package/dist/lit/SchemaView.mjs +2 -0
  46. package/dist/lit/constructorTypes.d.mts +2 -0
  47. package/dist/lit/constructorTypes.mjs +1 -0
  48. package/dist/lit/contexts.d.mts +78 -0
  49. package/dist/lit/contexts.mjs +238 -0
  50. package/dist/lit/defaultResolver.d.mts +33 -0
  51. package/dist/lit/defaultResolver.mjs +2 -0
  52. package/dist/lit/registry.d.mts +66 -0
  53. package/dist/lit/registry.mjs +2 -0
  54. package/dist/lit/renderers/baseElement.d.mts +131 -0
  55. package/dist/lit/renderers/baseElement.mjs +109 -0
  56. package/dist/lit/renderers/recordHelpers.d.mts +25 -0
  57. package/dist/lit/renderers/recordHelpers.mjs +55 -0
  58. package/dist/lit/renderers/scArray.d.mts +14 -0
  59. package/dist/lit/renderers/scArray.mjs +86 -0
  60. package/dist/lit/renderers/scBoolean.d.mts +15 -0
  61. package/dist/lit/renderers/scBoolean.mjs +47 -0
  62. package/dist/lit/renderers/scConditional.d.mts +23 -0
  63. package/dist/lit/renderers/scConditional.mjs +65 -0
  64. package/dist/lit/renderers/scDiscriminated.d.mts +23 -0
  65. package/dist/lit/renderers/scDiscriminated.mjs +138 -0
  66. package/dist/lit/renderers/scEnum.d.mts +16 -0
  67. package/dist/lit/renderers/scEnum.mjs +66 -0
  68. package/dist/lit/renderers/scFile.d.mts +15 -0
  69. package/dist/lit/renderers/scFile.mjs +53 -0
  70. package/dist/lit/renderers/scLiteralNullNever.d.mts +30 -0
  71. package/dist/lit/renderers/scLiteralNullNever.mjs +57 -0
  72. package/dist/lit/renderers/scNumber.d.mts +15 -0
  73. package/dist/lit/renderers/scNumber.mjs +64 -0
  74. package/dist/lit/renderers/scObject.d.mts +14 -0
  75. package/dist/lit/renderers/scObject.mjs +57 -0
  76. package/dist/lit/renderers/scRecord.d.mts +14 -0
  77. package/dist/lit/renderers/scRecord.mjs +112 -0
  78. package/dist/lit/renderers/scString.d.mts +19 -0
  79. package/dist/lit/renderers/scString.mjs +165 -0
  80. package/dist/lit/renderers/scTuple.d.mts +14 -0
  81. package/dist/lit/renderers/scTuple.mjs +58 -0
  82. package/dist/lit/renderers/scUnion.d.mts +14 -0
  83. package/dist/lit/renderers/scUnion.mjs +44 -0
  84. package/dist/lit/renderers/scUnknown.d.mts +15 -0
  85. package/dist/lit/renderers/scUnknown.mjs +45 -0
  86. package/dist/lit/ssr.d.mts +37 -0
  87. package/dist/lit/ssr.mjs +9565 -0
  88. package/dist/lit/types.d.mts +2 -0
  89. package/dist/lit/types.mjs +1 -0
  90. package/dist/lit/widget.d.mts +71 -0
  91. package/dist/lit/widget.mjs +87 -0
  92. package/dist/openapi/ApiCallbacks.d.mts +1 -1
  93. package/dist/openapi/ApiLinks.d.mts +1 -1
  94. package/dist/openapi/ApiResponseHeaders.d.mts +1 -1
  95. package/dist/openapi/ApiSecurity.d.mts +1 -1
  96. package/dist/openapi/components.d.mts +4 -4
  97. package/dist/openapi/parser.d.mts +2 -2
  98. package/dist/openapi/resolve.d.mts +1 -1
  99. package/dist/preact/SchemaComponent.d.mts +3 -0
  100. package/dist/preact/SchemaComponent.mjs +26 -0
  101. package/dist/preact/SchemaErrorBoundary.d.mts +2 -0
  102. package/dist/preact/SchemaErrorBoundary.mjs +20 -0
  103. package/dist/preact/SchemaView.d.mts +2 -0
  104. package/dist/preact/SchemaView.mjs +22 -0
  105. package/dist/preact/headless.d.mts +2 -0
  106. package/dist/preact/headless.mjs +18 -0
  107. package/dist/react/SchemaComponent.d.mts +3 -270
  108. package/dist/react/SchemaComponent.mjs +41 -32
  109. package/dist/react/SchemaView.d.mts +6 -6
  110. package/dist/react/SchemaView.mjs +32 -29
  111. package/dist/react/a11y.d.mts +2 -2
  112. package/dist/react/fieldShell.d.mts +1 -1
  113. package/dist/react/headless.d.mts +1 -1
  114. package/dist/react/headlessRenderers.d.mts +2 -2
  115. package/dist/{ref-DdsbekXX.d.mts → ref-DWrQG1Er.d.mts} +1 -1
  116. package/dist/renderer-ab9E52Bp.d.mts +245 -0
  117. package/dist/solid/SchemaComponent.d.mts +136 -0
  118. package/dist/solid/SchemaComponent.mjs +391 -0
  119. package/dist/solid/SchemaErrorBoundary.d.mts +38 -0
  120. package/dist/solid/SchemaErrorBoundary.mjs +57 -0
  121. package/dist/solid/SchemaField.d.mts +40 -0
  122. package/dist/solid/SchemaField.mjs +113 -0
  123. package/dist/solid/SchemaView.d.mts +54 -0
  124. package/dist/solid/SchemaView.mjs +168 -0
  125. package/dist/solid/a11y.d.mts +70 -0
  126. package/dist/solid/a11y.mjs +71 -0
  127. package/dist/solid/contexts.d.mts +37 -0
  128. package/dist/solid/contexts.mjs +66 -0
  129. package/dist/solid/headless.d.mts +10 -0
  130. package/dist/solid/headless.mjs +27 -0
  131. package/dist/solid/renderers.d.mts +79 -0
  132. package/dist/solid/renderers.mjs +840 -0
  133. package/dist/solid/types.d.mts +90 -0
  134. package/dist/solid/types.mjs +1 -0
  135. package/dist/solid/widget.d.mts +29 -0
  136. package/dist/solid/widget.mjs +35 -0
  137. package/dist/themes/mantine.d.mts +1 -1
  138. package/dist/themes/mui.d.mts +1 -1
  139. package/dist/themes/radix.d.mts +1 -1
  140. package/dist/themes/shadcn.d.mts +1 -1
  141. package/dist/typeInference-Y8tNEQJk.d.mts +983 -0
  142. package/dist/types-BCy7K3nk.d.mts +125 -0
  143. package/package.json +71 -1
  144. package/src/svelte/SchemaComponent.svelte +427 -0
  145. package/src/svelte/SchemaErrorBoundary.svelte +66 -0
  146. package/src/svelte/SchemaField.svelte +216 -0
  147. package/src/svelte/SchemaProvider.svelte +46 -0
  148. package/src/svelte/SchemaView.svelte +244 -0
  149. package/src/svelte/a11y.ts +112 -0
  150. package/src/svelte/contexts.ts +79 -0
  151. package/src/svelte/dispatch.ts +267 -0
  152. package/src/svelte/headless.ts +73 -0
  153. package/src/svelte/headlessFns.ts +124 -0
  154. package/src/svelte/renderers/Array.svelte +98 -0
  155. package/src/svelte/renderers/Boolean.svelte +43 -0
  156. package/src/svelte/renderers/Conditional.svelte +67 -0
  157. package/src/svelte/renderers/DiscriminatedUnion.svelte +197 -0
  158. package/src/svelte/renderers/Enum.svelte +53 -0
  159. package/src/svelte/renderers/Fallback.svelte +24 -0
  160. package/src/svelte/renderers/File.svelte +46 -0
  161. package/src/svelte/renderers/Literal.svelte +29 -0
  162. package/src/svelte/renderers/Mount.svelte +24 -0
  163. package/src/svelte/renderers/Negation.svelte +35 -0
  164. package/src/svelte/renderers/Never.svelte +24 -0
  165. package/src/svelte/renderers/Null.svelte +19 -0
  166. package/src/svelte/renderers/Number.svelte +68 -0
  167. package/src/svelte/renderers/Object.svelte +74 -0
  168. package/src/svelte/renderers/Record.svelte +134 -0
  169. package/src/svelte/renderers/RecursionSentinel.svelte +27 -0
  170. package/src/svelte/renderers/String.svelte +152 -0
  171. package/src/svelte/renderers/Tuple.svelte +84 -0
  172. package/src/svelte/renderers/Union.svelte +49 -0
  173. package/src/svelte/renderers/Unknown.svelte +42 -0
  174. package/src/svelte/svelte-modules.d.ts +25 -0
  175. package/src/svelte/types.ts +238 -0
  176. package/src/svelte/widget.ts +62 -0
  177. /package/dist/{diagnostics-BTrm3O6J.d.mts → diagnostics-mftUZI7c.d.mts} +0 -0
  178. /package/dist/{limits-x4OiyJxh.d.mts → limits-Vv9hUbI_.d.mts} +0 -0
  179. /package/dist/{types-BrYbjC7_.d.mts → types-BBQaEPfE.d.mts} +0 -0
  180. /package/dist/{version-DL8U5RuA.d.mts → version-BEBx10ND.d.mts} +0 -0
@@ -0,0 +1,90 @@
1
+ import { j as WalkedField } from "../types-BBQaEPfE.mjs";
2
+ import { l as RenderFunction, n as BaseFieldProps, t as AllConstraints } from "../renderer-ab9E52Bp.mjs";
3
+ import { JSX } from "solid-js";
4
+
5
+ //#region src/solid/types.d.ts
6
+ /**
7
+ * Per-field props handed to a Solid render function.
8
+ *
9
+ * Mirrors React's `RenderProps` shape (the contract is identical at the
10
+ * data layer) but the `renderChild` return type is Solid's `JSX.Element`
11
+ * rather than React's `ReactNode`. The walker, path threading,
12
+ * constraint extraction, and union heuristics are all shared with the
13
+ * React adapter.
14
+ */
15
+ interface SolidRenderProps extends BaseFieldProps {
16
+ /** Callback to update the field value. */
17
+ onChange: (value: unknown) => void;
18
+ /**
19
+ * Render a child field. Theme adapters call this to recursively
20
+ * render nested structures (object fields, array elements, union
21
+ * options). The Solid resolver and rendering context are already
22
+ * wired in.
23
+ *
24
+ * @param tree - The walked field tree for the child.
25
+ * @param value - The child's current value.
26
+ * @param onChange - Callback receiving the child's next value.
27
+ * @param pathSuffix - Path segment from the parent (e.g. `"city"`,
28
+ * `"[0]"`). Joined to the parent's path with a dot, or
29
+ * substituted when the parent acts as a transparent wrapper
30
+ * (union options). Required for every container — without it
31
+ * children inherit no path and `fieldDomId()` returns the bare
32
+ * prefix.
33
+ */
34
+ renderChild: (tree: WalkedField, value: unknown, onChange: (v: unknown) => void, pathSuffix?: string) => JSX.Element;
35
+ }
36
+ /**
37
+ * Signature for a Solid render function attached to a
38
+ * {@link SolidComponentResolver}. Specialises the generic
39
+ * {@link RenderFunction} from `core/renderer.ts` with Solid's `JSX.Element`
40
+ * output and the Solid-flavoured {@link SolidRenderProps} props.
41
+ *
42
+ * The compile-time relationship
43
+ *
44
+ * ```ts
45
+ * type Check = SolidRenderFunction extends RenderFunction<JSX.Element, SolidRenderProps>
46
+ * ? true
47
+ * : false; // → true
48
+ * ```
49
+ *
50
+ * holds by construction — the Solid renderer plugs into the generic
51
+ * core contract without any per-framework escape hatch.
52
+ */
53
+ type SolidRenderFunction = RenderFunction<JSX.Element, SolidRenderProps>;
54
+ /**
55
+ * Theme adapter — maps every schema field type to its Solid renderer.
56
+ * Unset keys fall back to the headless resolver (see
57
+ * `solid/headless.ts`). Pass to `<SchemaProvider resolver={...}>` to
58
+ * drive every schema-driven render with a specific theme.
59
+ *
60
+ * Structurally mirrors React's `ComponentResolver` from
61
+ * `core/renderer.ts` — Solid and React share the renderer key matrix
62
+ * because both consume the same `WalkedField` discriminated union.
63
+ */
64
+ interface SolidComponentResolver {
65
+ string?: SolidRenderFunction;
66
+ number?: SolidRenderFunction;
67
+ boolean?: SolidRenderFunction;
68
+ null?: SolidRenderFunction;
69
+ enum?: SolidRenderFunction;
70
+ object?: SolidRenderFunction;
71
+ array?: SolidRenderFunction;
72
+ tuple?: SolidRenderFunction;
73
+ record?: SolidRenderFunction;
74
+ union?: SolidRenderFunction;
75
+ discriminatedUnion?: SolidRenderFunction;
76
+ conditional?: SolidRenderFunction;
77
+ negation?: SolidRenderFunction;
78
+ literal?: SolidRenderFunction;
79
+ file?: SolidRenderFunction;
80
+ never?: SolidRenderFunction;
81
+ unknown?: SolidRenderFunction;
82
+ }
83
+ /**
84
+ * Widget map for Solid — maps `.meta({ component: <name> })` hints to
85
+ * per-instance render functions. Identical contract to the React widget
86
+ * map; only the per-frame element type differs.
87
+ */
88
+ type SolidWidgetMap = ReadonlyMap<string, SolidRenderFunction>;
89
+ //#endregion
90
+ export { type AllConstraints, SolidComponentResolver, SolidRenderFunction, SolidRenderProps, SolidWidgetMap };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ import { SolidRenderFunction } from "./types.mjs";
2
+
3
+ //#region src/solid/widget.d.ts
4
+ /**
5
+ * Register a Solid widget globally. The widget is resolved when a schema
6
+ * field has `.meta({ component: <name> })`.
7
+ *
8
+ * For scoped registration prefer the `widgets` prop on
9
+ * `<SchemaComponent>` (instance-level) or `<SchemaProvider>`
10
+ * (context-level).
11
+ */
12
+ declare function registerSolidWidget(name: string, render: SolidRenderFunction): void;
13
+ /**
14
+ * Look up a globally registered Solid widget by name. Returns
15
+ * `undefined` when nothing is registered for the supplied name.
16
+ */
17
+ declare function lookupGlobalSolidWidget(name: string): SolidRenderFunction | undefined;
18
+ /**
19
+ * Clear every globally registered Solid widget. Intended for test
20
+ * isolation — `registerSolidWidget` writes to module-level state and
21
+ * that state otherwise leaks across test cases, making the test suite
22
+ * order-dependent. Tests should call this from a `beforeEach` or
23
+ * `afterEach` hook.
24
+ *
25
+ * @internal
26
+ */
27
+ declare function __clearGlobalSolidWidgets(): void;
28
+ //#endregion
29
+ export { __clearGlobalSolidWidgets, lookupGlobalSolidWidget, registerSolidWidget };
@@ -0,0 +1,35 @@
1
+ //#region src/solid/widget.ts
2
+ /** Global widget registry — app-wide Solid widget defaults. */
3
+ const globalSolidWidgets = /* @__PURE__ */ new Map();
4
+ /**
5
+ * Register a Solid widget globally. The widget is resolved when a schema
6
+ * field has `.meta({ component: <name> })`.
7
+ *
8
+ * For scoped registration prefer the `widgets` prop on
9
+ * `<SchemaComponent>` (instance-level) or `<SchemaProvider>`
10
+ * (context-level).
11
+ */
12
+ function registerSolidWidget(name, render) {
13
+ globalSolidWidgets.set(name, render);
14
+ }
15
+ /**
16
+ * Look up a globally registered Solid widget by name. Returns
17
+ * `undefined` when nothing is registered for the supplied name.
18
+ */
19
+ function lookupGlobalSolidWidget(name) {
20
+ return globalSolidWidgets.get(name);
21
+ }
22
+ /**
23
+ * Clear every globally registered Solid widget. Intended for test
24
+ * isolation — `registerSolidWidget` writes to module-level state and
25
+ * that state otherwise leaks across test cases, making the test suite
26
+ * order-dependent. Tests should call this from a `beforeEach` or
27
+ * `afterEach` hook.
28
+ *
29
+ * @internal
30
+ */
31
+ function __clearGlobalSolidWidgets() {
32
+ globalSolidWidgets.clear();
33
+ }
34
+ //#endregion
35
+ export { __clearGlobalSolidWidgets, lookupGlobalSolidWidget, registerSolidWidget };
@@ -1,4 +1,4 @@
1
- import { ComponentResolver } from "../core/renderer.mjs";
1
+ import { i as ComponentResolver } from "../renderer-ab9E52Bp.mjs";
2
2
  import { ElementType } from "react";
3
3
 
4
4
  //#region src/themes/mantine.d.ts
@@ -1,4 +1,4 @@
1
- import { ComponentResolver } from "../core/renderer.mjs";
1
+ import { i as ComponentResolver } from "../renderer-ab9E52Bp.mjs";
2
2
  import { ElementType } from "react";
3
3
 
4
4
  //#region src/themes/mui.d.ts
@@ -1,4 +1,4 @@
1
- import { ComponentResolver } from "../core/renderer.mjs";
1
+ import { i as ComponentResolver } from "../renderer-ab9E52Bp.mjs";
2
2
  import { ElementType } from "react";
3
3
 
4
4
  //#region src/themes/radix.d.ts
@@ -1,4 +1,4 @@
1
- import { ComponentResolver } from "../core/renderer.mjs";
1
+ import { i as ComponentResolver } from "../renderer-ab9E52Bp.mjs";
2
2
 
3
3
  //#region src/themes/shadcn.d.ts
4
4
  /**