@seed-ship/mcp-ui-solid 5.5.0 → 5.6.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 (62) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/dist/components/FormRenderer.cjs +13 -2
  3. package/dist/components/FormRenderer.cjs.map +1 -1
  4. package/dist/components/FormRenderer.d.ts.map +1 -1
  5. package/dist/components/FormRenderer.js +13 -2
  6. package/dist/components/FormRenderer.js.map +1 -1
  7. package/dist/components/GenerativeUIErrorBoundary.cjs +11 -0
  8. package/dist/components/GenerativeUIErrorBoundary.cjs.map +1 -1
  9. package/dist/components/GenerativeUIErrorBoundary.d.ts.map +1 -1
  10. package/dist/components/GenerativeUIErrorBoundary.js +11 -0
  11. package/dist/components/GenerativeUIErrorBoundary.js.map +1 -1
  12. package/dist/components/StreamingUIRenderer.cjs +49 -3
  13. package/dist/components/StreamingUIRenderer.cjs.map +1 -1
  14. package/dist/components/StreamingUIRenderer.d.ts.map +1 -1
  15. package/dist/components/StreamingUIRenderer.js +51 -5
  16. package/dist/components/StreamingUIRenderer.js.map +1 -1
  17. package/dist/components/UIResourceRenderer.cjs +62 -3
  18. package/dist/components/UIResourceRenderer.cjs.map +1 -1
  19. package/dist/components/UIResourceRenderer.d.ts.map +1 -1
  20. package/dist/components/UIResourceRenderer.js +64 -5
  21. package/dist/components/UIResourceRenderer.js.map +1 -1
  22. package/dist/context/MCPUITelemetryContext.cjs +25 -0
  23. package/dist/context/MCPUITelemetryContext.cjs.map +1 -0
  24. package/dist/context/MCPUITelemetryContext.d.ts +36 -0
  25. package/dist/context/MCPUITelemetryContext.d.ts.map +1 -0
  26. package/dist/context/MCPUITelemetryContext.js +25 -0
  27. package/dist/context/MCPUITelemetryContext.js.map +1 -0
  28. package/dist/index.cjs +6 -0
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.cts +4 -0
  31. package/dist/index.d.ts +4 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +6 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/mcp-ui-spec/dist/schemas.cjs +16 -5
  36. package/dist/mcp-ui-spec/dist/schemas.cjs.map +1 -1
  37. package/dist/mcp-ui-spec/dist/schemas.js +16 -5
  38. package/dist/mcp-ui-spec/dist/schemas.js.map +1 -1
  39. package/dist/services/telemetry.cjs +56 -0
  40. package/dist/services/telemetry.cjs.map +1 -0
  41. package/dist/services/telemetry.d.ts +87 -0
  42. package/dist/services/telemetry.d.ts.map +1 -0
  43. package/dist/services/telemetry.js +56 -0
  44. package/dist/services/telemetry.js.map +1 -0
  45. package/dist/services/validation.cjs +28 -26
  46. package/dist/services/validation.cjs.map +1 -1
  47. package/dist/services/validation.d.ts.map +1 -1
  48. package/dist/services/validation.js +29 -27
  49. package/dist/services/validation.js.map +1 -1
  50. package/package.json +2 -2
  51. package/src/components/FormRenderer.tsx +14 -0
  52. package/src/components/GenerativeUIErrorBoundary.tsx +17 -1
  53. package/src/components/StreamingUIRenderer.tsx +55 -3
  54. package/src/components/UIResourceRenderer.tsx +79 -3
  55. package/src/context/MCPUITelemetryContext.test.tsx +119 -0
  56. package/src/context/MCPUITelemetryContext.tsx +71 -0
  57. package/src/index.ts +15 -0
  58. package/src/services/telemetry.test.ts +134 -0
  59. package/src/services/telemetry.ts +149 -0
  60. package/src/services/validation.test.ts +53 -3
  61. package/src/services/validation.ts +54 -44
  62. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const web = require("solid-js/web");
4
+ const solidJs = require("solid-js");
5
+ const telemetry = require("../services/telemetry.cjs");
6
+ const MCPUITelemetryContext = solidJs.createContext(null);
7
+ const MCPUITelemetryProvider = (props) => {
8
+ const dispatcher = telemetry.createTelemetryDispatcher(props.sink, props.options);
9
+ solidJs.onCleanup(() => {
10
+ dispatcher.flush();
11
+ });
12
+ return web.createComponent(MCPUITelemetryContext.Provider, {
13
+ value: dispatcher,
14
+ get children() {
15
+ return props.children;
16
+ }
17
+ });
18
+ };
19
+ function useTelemetry() {
20
+ return solidJs.useContext(MCPUITelemetryContext);
21
+ }
22
+ exports.MCPUITelemetryContext = MCPUITelemetryContext;
23
+ exports.MCPUITelemetryProvider = MCPUITelemetryProvider;
24
+ exports.useTelemetry = useTelemetry;
25
+ //# sourceMappingURL=MCPUITelemetryContext.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MCPUITelemetryContext.cjs","sources":["../../src/context/MCPUITelemetryContext.tsx"],"sourcesContent":["/**\n * MCPUITelemetryProvider + useTelemetry hook (B.5 — v5.6.0)\n *\n * SolidJS Context wrapper around `createTelemetryDispatcher`. Optional —\n * when no Provider is present, `useTelemetry()` returns `null` and dispatch\n * sites no-op (zero behavior change for apps that don't opt in).\n *\n * See `services/telemetry.ts` for the dispatcher contract and\n * `MCP-UI-AUDIT-2026-04-26.md` §M.6 for the full specification.\n */\n\nimport {\n createContext,\n useContext,\n onCleanup,\n type Component,\n type JSX,\n} from 'solid-js'\nimport {\n createTelemetryDispatcher,\n type TelemetryDispatcher,\n type TelemetrySink,\n type TelemetryOptions,\n} from '../services/telemetry'\n\nexport const MCPUITelemetryContext = createContext<TelemetryDispatcher | null>(null)\n\nexport interface MCPUITelemetryProviderProps {\n /** Consumer-supplied sink. Receives a batch of events. Fail-open. */\n sink: TelemetrySink\n /** Sampling + buffering knobs (defaults: 100% / 100ms / max 50). */\n options?: TelemetryOptions\n children: JSX.Element\n}\n\nexport const MCPUITelemetryProvider: Component<MCPUITelemetryProviderProps> = (props) => {\n // Dispatcher is created once per Provider mount. `props.sink` and\n // `props.options` are captured at that moment — consumers should treat\n // them as effectively immutable for the Provider's lifetime (re-mount the\n // Provider to swap them).\n const dispatcher = createTelemetryDispatcher(props.sink, props.options)\n\n // Force-flush on unmount so any buffered events from the last bufferMs\n // window aren't lost (e.g. tab close, route change with cleanup).\n onCleanup(() => {\n dispatcher.flush()\n })\n\n return (\n <MCPUITelemetryContext.Provider value={dispatcher}>\n {props.children}\n </MCPUITelemetryContext.Provider>\n )\n}\n\n/**\n * Returns the current telemetry dispatcher, or `null` when no Provider is\n * mounted in the tree above. Dispatch sites should null-check and no-op\n * when null — telemetry is OPT-IN and must not impose a Provider on apps.\n *\n * @example\n * ```tsx\n * const telemetry = useTelemetry()\n * onMount(() => {\n * telemetry?.dispatch({ type: 'component:mounted', id, componentType, ts: Date.now() })\n * })\n * ```\n */\nexport function useTelemetry(): TelemetryDispatcher | null {\n return useContext(MCPUITelemetryContext)\n}\n"],"names":["MCPUITelemetryContext","createContext","MCPUITelemetryProvider","props","dispatcher","createTelemetryDispatcher","sink","options","onCleanup","flush","_$createComponent","Provider","value","children","useTelemetry","useContext"],"mappings":";;;;;AAyBO,MAAMA,wBAAwBC,QAAAA,cAA0C,IAAI;AAU5E,MAAMC,yBAAkEC,CAAAA,UAAU;AAKvF,QAAMC,aAAaC,UAAAA,0BAA0BF,MAAMG,MAAMH,MAAMI,OAAO;AAItEC,UAAAA,UAAU,MAAM;AACdJ,eAAWK,MAAAA;AAAAA,EACb,CAAC;AAED,SAAAC,IAAAA,gBACGV,sBAAsBW,UAAQ;AAAA,IAACC,OAAOR;AAAAA,IAAU,IAAAS,WAAA;AAAA,aAC9CV,MAAMU;AAAAA,IAAQ;AAAA,EAAA,CAAA;AAGrB;AAeO,SAASC,eAA2C;AACzD,SAAOC,QAAAA,WAAWf,qBAAqB;AACzC;;;;"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * MCPUITelemetryProvider + useTelemetry hook (B.5 — v5.6.0)
3
+ *
4
+ * SolidJS Context wrapper around `createTelemetryDispatcher`. Optional —
5
+ * when no Provider is present, `useTelemetry()` returns `null` and dispatch
6
+ * sites no-op (zero behavior change for apps that don't opt in).
7
+ *
8
+ * See `services/telemetry.ts` for the dispatcher contract and
9
+ * `MCP-UI-AUDIT-2026-04-26.md` §M.6 for the full specification.
10
+ */
11
+ import { type Component, type JSX } from 'solid-js';
12
+ import { type TelemetryDispatcher, type TelemetrySink, type TelemetryOptions } from '../services/telemetry';
13
+ export declare const MCPUITelemetryContext: import("solid-js").Context<TelemetryDispatcher | null>;
14
+ export interface MCPUITelemetryProviderProps {
15
+ /** Consumer-supplied sink. Receives a batch of events. Fail-open. */
16
+ sink: TelemetrySink;
17
+ /** Sampling + buffering knobs (defaults: 100% / 100ms / max 50). */
18
+ options?: TelemetryOptions;
19
+ children: JSX.Element;
20
+ }
21
+ export declare const MCPUITelemetryProvider: Component<MCPUITelemetryProviderProps>;
22
+ /**
23
+ * Returns the current telemetry dispatcher, or `null` when no Provider is
24
+ * mounted in the tree above. Dispatch sites should null-check and no-op
25
+ * when null — telemetry is OPT-IN and must not impose a Provider on apps.
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * const telemetry = useTelemetry()
30
+ * onMount(() => {
31
+ * telemetry?.dispatch({ type: 'component:mounted', id, componentType, ts: Date.now() })
32
+ * })
33
+ * ```
34
+ */
35
+ export declare function useTelemetry(): TelemetryDispatcher | null;
36
+ //# sourceMappingURL=MCPUITelemetryContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MCPUITelemetryContext.d.ts","sourceRoot":"","sources":["../../src/context/MCPUITelemetryContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,GAAG,EACT,MAAM,UAAU,CAAA;AACjB,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAA;AAE9B,eAAO,MAAM,qBAAqB,wDAAkD,CAAA;AAEpF,MAAM,WAAW,2BAA2B;IAC1C,qEAAqE;IACrE,IAAI,EAAE,aAAa,CAAA;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,sBAAsB,EAAE,SAAS,CAAC,2BAA2B,CAkBzE,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,IAAI,mBAAmB,GAAG,IAAI,CAEzD"}
@@ -0,0 +1,25 @@
1
+ import { createComponent } from "solid-js/web";
2
+ import { createContext, onCleanup, useContext } from "solid-js";
3
+ import { createTelemetryDispatcher } from "../services/telemetry.js";
4
+ const MCPUITelemetryContext = createContext(null);
5
+ const MCPUITelemetryProvider = (props) => {
6
+ const dispatcher = createTelemetryDispatcher(props.sink, props.options);
7
+ onCleanup(() => {
8
+ dispatcher.flush();
9
+ });
10
+ return createComponent(MCPUITelemetryContext.Provider, {
11
+ value: dispatcher,
12
+ get children() {
13
+ return props.children;
14
+ }
15
+ });
16
+ };
17
+ function useTelemetry() {
18
+ return useContext(MCPUITelemetryContext);
19
+ }
20
+ export {
21
+ MCPUITelemetryContext,
22
+ MCPUITelemetryProvider,
23
+ useTelemetry
24
+ };
25
+ //# sourceMappingURL=MCPUITelemetryContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MCPUITelemetryContext.js","sources":["../../src/context/MCPUITelemetryContext.tsx"],"sourcesContent":["/**\n * MCPUITelemetryProvider + useTelemetry hook (B.5 — v5.6.0)\n *\n * SolidJS Context wrapper around `createTelemetryDispatcher`. Optional —\n * when no Provider is present, `useTelemetry()` returns `null` and dispatch\n * sites no-op (zero behavior change for apps that don't opt in).\n *\n * See `services/telemetry.ts` for the dispatcher contract and\n * `MCP-UI-AUDIT-2026-04-26.md` §M.6 for the full specification.\n */\n\nimport {\n createContext,\n useContext,\n onCleanup,\n type Component,\n type JSX,\n} from 'solid-js'\nimport {\n createTelemetryDispatcher,\n type TelemetryDispatcher,\n type TelemetrySink,\n type TelemetryOptions,\n} from '../services/telemetry'\n\nexport const MCPUITelemetryContext = createContext<TelemetryDispatcher | null>(null)\n\nexport interface MCPUITelemetryProviderProps {\n /** Consumer-supplied sink. Receives a batch of events. Fail-open. */\n sink: TelemetrySink\n /** Sampling + buffering knobs (defaults: 100% / 100ms / max 50). */\n options?: TelemetryOptions\n children: JSX.Element\n}\n\nexport const MCPUITelemetryProvider: Component<MCPUITelemetryProviderProps> = (props) => {\n // Dispatcher is created once per Provider mount. `props.sink` and\n // `props.options` are captured at that moment — consumers should treat\n // them as effectively immutable for the Provider's lifetime (re-mount the\n // Provider to swap them).\n const dispatcher = createTelemetryDispatcher(props.sink, props.options)\n\n // Force-flush on unmount so any buffered events from the last bufferMs\n // window aren't lost (e.g. tab close, route change with cleanup).\n onCleanup(() => {\n dispatcher.flush()\n })\n\n return (\n <MCPUITelemetryContext.Provider value={dispatcher}>\n {props.children}\n </MCPUITelemetryContext.Provider>\n )\n}\n\n/**\n * Returns the current telemetry dispatcher, or `null` when no Provider is\n * mounted in the tree above. Dispatch sites should null-check and no-op\n * when null — telemetry is OPT-IN and must not impose a Provider on apps.\n *\n * @example\n * ```tsx\n * const telemetry = useTelemetry()\n * onMount(() => {\n * telemetry?.dispatch({ type: 'component:mounted', id, componentType, ts: Date.now() })\n * })\n * ```\n */\nexport function useTelemetry(): TelemetryDispatcher | null {\n return useContext(MCPUITelemetryContext)\n}\n"],"names":["MCPUITelemetryContext","createContext","MCPUITelemetryProvider","props","dispatcher","createTelemetryDispatcher","sink","options","onCleanup","flush","_$createComponent","Provider","value","children","useTelemetry","useContext"],"mappings":";;;AAyBO,MAAMA,wBAAwBC,cAA0C,IAAI;AAU5E,MAAMC,yBAAkEC,CAAAA,UAAU;AAKvF,QAAMC,aAAaC,0BAA0BF,MAAMG,MAAMH,MAAMI,OAAO;AAItEC,YAAU,MAAM;AACdJ,eAAWK,MAAAA;AAAAA,EACb,CAAC;AAED,SAAAC,gBACGV,sBAAsBW,UAAQ;AAAA,IAACC,OAAOR;AAAAA,IAAU,IAAAS,WAAA;AAAA,aAC9CV,MAAMU;AAAAA,IAAQ;AAAA,EAAA,CAAA;AAGrB;AAeO,SAASC,eAA2C;AACzD,SAAOC,WAAWf,qBAAqB;AACzC;"}
package/dist/index.cjs CHANGED
@@ -39,6 +39,8 @@ const AutocompleteDropdown = require("./components/AutocompleteDropdown.cjs");
39
39
  const AutocompleteFormField = require("./components/AutocompleteFormField.cjs");
40
40
  const logger = require("./utils/logger.cjs");
41
41
  const perf = require("./utils/perf.cjs");
42
+ const MCPUITelemetryContext = require("./context/MCPUITelemetryContext.cjs");
43
+ const telemetry = require("./services/telemetry.cjs");
42
44
  const useStreamingUI = require("./hooks/useStreamingUI.cjs");
43
45
  const useAction = require("./hooks/useAction.cjs");
44
46
  const useConditionalField = require("./hooks/useConditionalField.cjs");
@@ -100,6 +102,10 @@ exports.setDebugMode = logger.setDebugMode;
100
102
  exports.PERF_PREFIX = perf.PERF_PREFIX;
101
103
  exports.markRenderEnd = perf.markRenderEnd;
102
104
  exports.markRenderStart = perf.markRenderStart;
105
+ exports.MCPUITelemetryContext = MCPUITelemetryContext.MCPUITelemetryContext;
106
+ exports.MCPUITelemetryProvider = MCPUITelemetryContext.MCPUITelemetryProvider;
107
+ exports.useTelemetry = MCPUITelemetryContext.useTelemetry;
108
+ exports.createTelemetryDispatcher = telemetry.createTelemetryDispatcher;
103
109
  exports.useStreamingUI = useStreamingUI.useStreamingUI;
104
110
  exports.useAction = useAction.useAction;
105
111
  exports.useToolAction = useAction.useToolAction;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.cts CHANGED
@@ -56,6 +56,10 @@ export type { UIResourceRendererProps, StreamingUIRendererProps, GenerativeUIErr
56
56
  export type { ValidationErrorMode } from './components/UIResourceRenderer';
57
57
  export { setDebugMode, isDebugEnabled } from './utils/logger';
58
58
  export { markRenderStart, markRenderEnd, PERF_PREFIX } from './utils/perf';
59
+ export { MCPUITelemetryProvider, MCPUITelemetryContext, useTelemetry, } from './context/MCPUITelemetryContext';
60
+ export type { MCPUITelemetryProviderProps } from './context/MCPUITelemetryContext';
61
+ export { createTelemetryDispatcher } from './services/telemetry';
62
+ export type { TelemetryEvent, TelemetrySink, TelemetryOptions, TelemetryDispatcher, } from './services/telemetry';
59
63
  export type { DraggableGridItemProps } from './components/DraggableGridItem';
60
64
  export type { ResizeHandleProps as ResizeHandleComponentProps } from './components/ResizeHandle';
61
65
  export type { EditableUIResourceRendererProps } from './components/EditableUIResourceRenderer';
package/dist/index.d.ts CHANGED
@@ -56,6 +56,10 @@ export type { UIResourceRendererProps, StreamingUIRendererProps, GenerativeUIErr
56
56
  export type { ValidationErrorMode } from './components/UIResourceRenderer';
57
57
  export { setDebugMode, isDebugEnabled } from './utils/logger';
58
58
  export { markRenderStart, markRenderEnd, PERF_PREFIX } from './utils/perf';
59
+ export { MCPUITelemetryProvider, MCPUITelemetryContext, useTelemetry, } from './context/MCPUITelemetryContext';
60
+ export type { MCPUITelemetryProviderProps } from './context/MCPUITelemetryContext';
61
+ export { createTelemetryDispatcher } from './services/telemetry';
62
+ export type { TelemetryEvent, TelemetrySink, TelemetryOptions, TelemetryDispatcher, } from './services/telemetry';
59
63
  export type { DraggableGridItemProps } from './components/DraggableGridItem';
60
64
  export type { ResizeHandleProps as ResizeHandleComponentProps } from './components/ResizeHandle';
61
65
  export type { EditableUIResourceRendererProps } from './components/EditableUIResourceRenderer';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -37,6 +37,8 @@ import { AutocompleteDropdown } from "./components/AutocompleteDropdown.js";
37
37
  import { AutocompleteFormField } from "./components/AutocompleteFormField.js";
38
38
  import { isDebugEnabled, setDebugMode } from "./utils/logger.js";
39
39
  import { PERF_PREFIX, markRenderEnd, markRenderStart } from "./utils/perf.js";
40
+ import { MCPUITelemetryContext, MCPUITelemetryProvider, useTelemetry } from "./context/MCPUITelemetryContext.js";
41
+ import { createTelemetryDispatcher } from "./services/telemetry.js";
40
42
  import { useStreamingUI } from "./hooks/useStreamingUI.js";
41
43
  import { useAction, useToolAction } from "./hooks/useAction.js";
42
44
  import { evaluateCondition, useConditionalField } from "./hooks/useConditionalField.js";
@@ -82,6 +84,8 @@ export {
82
84
  GhostTextInput,
83
85
  MCPActionContext,
84
86
  MCPActionProvider,
87
+ MCPUITelemetryContext,
88
+ MCPUITelemetryProvider,
85
89
  PERF_PREFIX,
86
90
  PromptReplacedError,
87
91
  ResizeHandle,
@@ -106,6 +110,7 @@ export {
106
110
  createScratchpadStore,
107
111
  createServerCapabilitiesStore,
108
112
  createSupabasePlugin,
113
+ createTelemetryDispatcher,
109
114
  dispatchScratchpad,
110
115
  elicitationToPromptConfig,
111
116
  evaluateCondition,
@@ -134,6 +139,7 @@ export {
134
139
  useScratchpadState,
135
140
  useServerCapabilities,
136
141
  useStreamingUI,
142
+ useTelemetry,
137
143
  useToolAction,
138
144
  validateAgainstSource,
139
145
  validateComponent,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -82,7 +82,7 @@ const ShowWhenConditionSchema = types.object({
82
82
  });
83
83
  const PrefillSourceSchema = types.enum(["user", "detected", "inferred", "default"]);
84
84
  const FormFieldSchema = types.object({
85
- name: types.string().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/),
85
+ name: types.string().regex(/^[a-zA-Z][\w.-]*$/),
86
86
  type: FormFieldTypeSchema,
87
87
  label: types.string().optional(),
88
88
  placeholder: types.string().optional(),
@@ -145,7 +145,7 @@ const FormSubmitActionSchema = types.object({
145
145
  toolName: types.string().min(1),
146
146
  params: types.record(types.unknown()).optional()
147
147
  });
148
- types.object({
148
+ const FormComponentParamsSchema = types.object({
149
149
  title: types.string().optional(),
150
150
  fields: types.array(FormFieldSchema).min(1),
151
151
  submitLabel: types.string().optional(),
@@ -239,13 +239,19 @@ const CodeComponentParamsSchema = types.object({
239
239
  maxHeight: types.string().optional(),
240
240
  theme: types.enum(["light", "dark"]).optional()
241
241
  });
242
+ const LatLngObjectSchema = types.object({
243
+ lat: types.number(),
244
+ lng: types.number()
245
+ });
246
+ const LatLngTupleSchema = types.tuple([types.number(), types.number()]);
247
+ const LatLngPointSchema = types.union([LatLngTupleSchema, LatLngObjectSchema]);
242
248
  const MapMarkerSchema = types.object({
243
- position: types.tuple([types.number(), types.number()]),
249
+ position: LatLngPointSchema,
244
250
  tooltip: types.string().optional(),
245
251
  popup: types.string().optional()
246
252
  });
247
- types.object({
248
- center: types.tuple([types.number(), types.number()]).optional(),
253
+ const MapComponentParamsSchema = types.object({
254
+ center: LatLngPointSchema.optional(),
249
255
  zoom: types.number().optional(),
250
256
  markers: types.array(MapMarkerSchema).optional(),
251
257
  height: types.string().optional(),
@@ -460,6 +466,7 @@ exports.ComponentExampleSchema = ComponentExampleSchema;
460
466
  exports.ComponentSchema = ComponentSchema;
461
467
  exports.ComponentSchemaSchema = ComponentSchemaSchema;
462
468
  exports.ComponentTypeSchema = ComponentTypeSchema;
469
+ exports.FormComponentParamsSchema = FormComponentParamsSchema;
463
470
  exports.FormFieldOptionSchema = FormFieldOptionSchema;
464
471
  exports.FormFieldSchema = FormFieldSchema;
465
472
  exports.FormFieldTypeSchema = FormFieldTypeSchema;
@@ -471,7 +478,11 @@ exports.ImageComponentParamsSchema = ImageComponentParamsSchema;
471
478
  exports.ImageGalleryAspectRatioSchema = ImageGalleryAspectRatioSchema;
472
479
  exports.ImageGalleryGapSchema = ImageGalleryGapSchema;
473
480
  exports.ImageGalleryParamsSchema = ImageGalleryParamsSchema;
481
+ exports.LatLngObjectSchema = LatLngObjectSchema;
482
+ exports.LatLngPointSchema = LatLngPointSchema;
483
+ exports.LatLngTupleSchema = LatLngTupleSchema;
474
484
  exports.LinkComponentParamsSchema = LinkComponentParamsSchema;
485
+ exports.MapComponentParamsSchema = MapComponentParamsSchema;
475
486
  exports.MapMarkerSchema = MapMarkerSchema;
476
487
  exports.MetricComponentParamsSchema = MetricComponentParamsSchema;
477
488
  exports.MetricTrendSchema = MetricTrendSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.cjs","sources":["../../../../mcp-ui-spec/dist/schemas.js"],"sourcesContent":["import { z } from \"zod\";\nconst GridPositionSchema = z.object({\n colStart: z.number().int().min(1).max(12),\n colSpan: z.number().int().min(1).max(12),\n rowStart: z.number().int().min(1).optional(),\n rowSpan: z.number().int().min(1).default(1).optional()\n});\nconst ComponentTypeSchema = z.enum([\n \"chart\",\n \"table\",\n \"metric\",\n \"text\",\n \"composite\",\n \"grid\",\n // Phase 5.0: Nested grid layouts\n \"iframe\",\n \"image\",\n \"link\",\n \"action\",\n // Phase 5.0: Tool call actions\n \"footer\",\n // Phase 5.0: Metadata footer\n \"carousel\",\n \"artifact\",\n \"form\",\n // Sprint 1: Form component\n \"modal\",\n // Sprint 3: Modal/dialog component\n \"action-group\",\n // Sprint 3: Action grouping component\n \"image-gallery\",\n // Sprint 5: Image gallery with lightbox\n \"video\",\n // Sprint 5: Video embed (YouTube, Vimeo, direct)\n \"code\",\n // Sprint 6: Syntax highlighted code block\n \"map\"\n // Sprint 6: Interactive map (Leaflet)\n]);\nconst FormFieldOptionSchema = z.object({\n label: z.string().min(1),\n value: z.string(),\n disabled: z.boolean().optional()\n});\nconst FormFieldTypeSchema = z.enum([\n \"text\",\n \"email\",\n \"password\",\n \"number\",\n \"date\",\n \"textarea\",\n \"select\",\n \"checkbox\",\n \"radio\",\n \"autocomplete\",\n \"range\",\n \"tags\",\n \"toggle\",\n \"fieldset\"\n]);\nconst ShowWhenOperatorSchema = z.enum([\n \"equals\",\n \"notEquals\",\n \"in\",\n \"notIn\",\n \"contains\",\n \"startsWith\",\n \"endsWith\",\n \"greaterThan\",\n \"lessThan\",\n \"isEmpty\",\n \"isNotEmpty\",\n \"isTrue\",\n \"isFalse\"\n]);\nconst ShowWhenConditionSchema = z.object({\n field: z.string().min(1),\n operator: ShowWhenOperatorSchema,\n value: z.any().optional()\n});\nconst PrefillSourceSchema = z.enum([\"user\", \"detected\", \"inferred\", \"default\"]);\nconst FormFieldSchema = z.object({\n name: z.string().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/),\n type: FormFieldTypeSchema,\n label: z.string().optional(),\n placeholder: z.string().optional(),\n helpText: z.string().optional(),\n required: z.boolean().optional(),\n disabled: z.boolean().optional(),\n defaultValue: z.any().optional(),\n // Prefill — pre-populated value with source tracking (v4.2.0)\n prefill: z.union([z.string(), z.array(z.string())]).optional(),\n displayHint: z.string().optional(),\n source: PrefillSourceSchema.optional(),\n muted: z.boolean().optional(),\n // Prefill mode for autocomplete fields (v4.3.0)\n prefillMode: z.enum([\"exact\", \"resolve\"]).optional(),\n // Value format validation (v4.3.0)\n valueFormat: z.string().optional(),\n valueFormatHint: z.string().optional(),\n // Text/textarea specific\n minLength: z.number().int().min(0).optional(),\n maxLength: z.number().int().min(1).optional(),\n pattern: z.string().optional(),\n // Number specific\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n // Date specific\n minDate: z.string().optional(),\n maxDate: z.string().optional(),\n // Select/Radio specific\n options: z.array(FormFieldOptionSchema).optional(),\n // Multi-select (v2.6.0)\n multiple: z.boolean().optional(),\n // Autocomplete specific (v2.6.0)\n apiUrl: z.string().url().optional(),\n searchParam: z.string().optional(),\n labelField: z.string().optional(),\n valueField: z.string().optional(),\n extraParams: z.record(z.string()).optional(),\n minChars: z.number().int().min(0).optional(),\n debounceMs: z.number().int().min(0).optional(),\n // Dependent field (v2.7.0)\n dependsOn: z.object({\n field: z.string(),\n apiUrl: z.string(),\n labelField: z.string(),\n valueField: z.string(),\n extraParams: z.record(z.string()).optional()\n }).optional(),\n // Field status — API capability indicator (v2.11.0)\n fieldStatus: z.enum([\"required\", \"optional\", \"unsupported\", \"unknown\"]).optional(),\n statusReason: z.string().optional(),\n // Checkbox specific\n checkboxLabel: z.string().optional(),\n // Textarea specific\n rows: z.number().int().min(1).max(20).optional(),\n // Conditional visibility\n showWhen: ShowWhenConditionSchema.optional()\n});\nconst FormSubmitActionSchema = z.object({\n toolName: z.string().min(1),\n params: z.record(z.unknown()).optional()\n});\nconst FormComponentParamsSchema = z.object({\n title: z.string().optional(),\n fields: z.array(FormFieldSchema).min(1),\n submitLabel: z.string().optional(),\n showReset: z.boolean().optional(),\n submitAction: FormSubmitActionSchema.optional(),\n // Persistence options (Sprint 4)\n persistKey: z.string().optional(),\n excludeFromPersistence: z.array(z.string()).optional(),\n persistExpiresIn: z.number().int().positive().optional(),\n layout: z.enum([\"vertical\", \"horizontal\", \"inline\"]).optional(),\n // Auto-submit countdown in ms when all required fields are prefilled (v4.2.0)\n autoSubmitDelay: z.number().int().min(1e3).max(3e4).optional()\n});\nconst ModalSizeSchema = z.enum([\"sm\", \"md\", \"lg\", \"xl\", \"full\"]);\nconst ModalComponentParamsSchema = z.object({\n title: z.string().optional(),\n size: ModalSizeSchema.optional(),\n showClose: z.boolean().optional(),\n closeOnEscape: z.boolean().optional(),\n closeOnBackdrop: z.boolean().optional(),\n maxHeight: z.string().optional()\n // Note: content and footer are UIComponent references, validated separately\n});\nconst ActionGroupLayoutSchema = z.enum([\n \"horizontal\",\n \"vertical\",\n \"space-between\",\n \"end\",\n \"center\"\n]);\nconst ActionGroupGapSchema = z.enum([\"none\", \"sm\", \"md\", \"lg\"]);\nconst ActionParamsSchema = z.object({\n label: z.string().min(1),\n type: z.enum([\"button\", \"link\"]).optional(),\n action: z.enum([\"tool-call\", \"link\", \"submit\"]).optional(),\n toolName: z.string().optional(),\n params: z.record(z.unknown()).optional(),\n url: z.string().optional(),\n variant: z.enum([\"primary\", \"secondary\", \"outline\", \"ghost\", \"danger\"]).optional(),\n size: z.enum([\"sm\", \"md\", \"lg\"]).optional(),\n icon: z.string().optional(),\n disabled: z.boolean().optional()\n});\nconst ActionGroupParamsSchema = z.object({\n actions: z.array(ActionParamsSchema).min(1),\n layout: ActionGroupLayoutSchema.optional(),\n gap: ActionGroupGapSchema.optional(),\n fullWidth: z.boolean().optional(),\n label: z.string().optional()\n});\nconst GalleryImageSchema = z.object({\n url: z.string().url(),\n thumbnail: z.string().url().optional(),\n alt: z.string().optional(),\n caption: z.string().optional(),\n srcset: z.string().optional(),\n sizes: z.string().optional()\n});\nconst ImageGalleryColumnsSchema = z.enum([\"2\", \"3\", \"4\", \"5\"]).transform(Number);\nconst ImageGalleryGapSchema = z.enum([\"none\", \"sm\", \"md\", \"lg\"]);\nconst ImageGalleryAspectRatioSchema = z.enum([\"1:1\", \"16:9\", \"4:3\", \"auto\"]);\nconst ImageGalleryParamsSchema = z.object({\n title: z.string().optional(),\n images: z.array(GalleryImageSchema).min(1),\n columns: z.union([z.literal(2), z.literal(3), z.literal(4), z.literal(5)]).optional(),\n gap: ImageGalleryGapSchema.optional(),\n aspectRatio: ImageGalleryAspectRatioSchema.optional(),\n lightbox: z.boolean().optional(),\n showCaptions: z.boolean().optional()\n});\nconst VideoAspectRatioSchema = z.enum([\"16:9\", \"4:3\", \"1:1\", \"21:9\"]);\nconst VideoComponentParamsSchema = z.object({\n url: z.string().url(),\n title: z.string().optional(),\n caption: z.string().optional(),\n poster: z.string().url().optional(),\n aspectRatio: VideoAspectRatioSchema.optional(),\n autoplay: z.boolean().optional(),\n controls: z.boolean().optional(),\n loop: z.boolean().optional(),\n muted: z.boolean().optional(),\n startTime: z.number().int().min(0).optional()\n});\nconst CodeComponentParamsSchema = z.object({\n code: z.string(),\n language: z.string().optional(),\n filename: z.string().optional(),\n showLineNumbers: z.boolean().optional(),\n startLine: z.number().optional(),\n highlightLines: z.array(z.number()).optional(),\n maxHeight: z.string().optional(),\n theme: z.enum([\"light\", \"dark\"]).optional()\n});\nconst MapMarkerSchema = z.object({\n position: z.tuple([z.number(), z.number()]),\n tooltip: z.string().optional(),\n popup: z.string().optional()\n});\nconst MapComponentParamsSchema = z.object({\n center: z.tuple([z.number(), z.number()]).optional(),\n zoom: z.number().optional(),\n markers: z.array(MapMarkerSchema).optional(),\n height: z.string().optional(),\n fitBounds: z.boolean().optional(),\n zoomControl: z.boolean().optional(),\n scrollWheelZoom: z.boolean().optional(),\n tileLayer: z.string().optional(),\n attribution: z.string().optional()\n});\nconst ChartTypeSchema = z.enum([\n \"bar\",\n \"line\",\n \"pie\",\n \"doughnut\",\n \"radar\",\n \"scatter\",\n \"bubble\",\n \"polarArea\"\n]);\nconst ChartDatasetSchema = z.object({\n label: z.string(),\n // Either an array of numbers or an array of {x, y} points (Chart.js shapes)\n data: z.union([\n z.array(z.number()),\n z.array(\n z.object({\n x: z.union([z.string(), z.number()]),\n y: z.number()\n })\n )\n ]),\n backgroundColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderWidth: z.number().optional(),\n fill: z.union([z.boolean(), z.string()]).optional(),\n tension: z.number().optional()\n});\nconst ChartTimeAxisSchema = z.object({\n parser: z.string().optional(),\n unit: z.enum([\"day\", \"week\", \"month\", \"quarter\", \"year\"]).optional(),\n tooltipFormat: z.string().optional(),\n min: z.string().optional(),\n max: z.string().optional()\n});\nconst ChartComponentParamsSchema = z.object({\n type: ChartTypeSchema,\n title: z.string().optional(),\n data: z.object({\n labels: z.array(z.string()),\n datasets: z.array(ChartDatasetSchema)\n }),\n options: z.object({\n responsive: z.boolean().optional(),\n maintainAspectRatio: z.boolean().optional(),\n tension: z.number().optional(),\n // `scales` and `plugins` are Chart.js opaque config objects — kept loose\n scales: z.unknown().optional(),\n plugins: z.unknown().optional()\n }).optional(),\n renderer: z.enum([\"native\", \"iframe\", \"auto\"]).optional(),\n exportable: z.boolean().optional(),\n timeAxis: ChartTimeAxisSchema.optional(),\n height: z.string().optional(),\n className: z.string().optional()\n});\nconst TableColumnSchema = z.object({\n key: z.string().min(1),\n label: z.string(),\n sortable: z.boolean().optional(),\n width: z.string().optional()\n});\nconst TablePaginationSchema = z.object({\n currentPage: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n totalRows: z.number().int().min(0)\n});\nconst TableVirtualizeOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n rowHeight: z.number().int().min(1).optional(),\n overscan: z.number().int().min(0).optional(),\n threshold: z.number().int().min(1).optional()\n});\nconst TableExportableSchema = z.union([\n z.boolean(),\n z.object({\n formats: z.array(z.enum([\"csv\", \"tsv\", \"json\"])).optional(),\n filename: z.string().optional()\n })\n]);\nconst TableComponentParamsSchema = z.object({\n title: z.string().optional(),\n columns: z.array(TableColumnSchema).min(1),\n rows: z.array(z.record(z.unknown())),\n pagination: TablePaginationSchema.optional(),\n virtualize: z.union([z.boolean(), TableVirtualizeOptionsSchema]).optional(),\n exportable: TableExportableSchema.optional(),\n className: z.string().optional()\n});\nconst MetricTrendSchema = z.object({\n value: z.number(),\n direction: z.enum([\"up\", \"down\", \"neutral\"])\n});\nconst MetricComponentParamsSchema = z.object({\n title: z.string().min(1),\n value: z.union([z.string(), z.number()]),\n unit: z.string().optional(),\n trend: MetricTrendSchema.optional(),\n subtitle: z.string().optional(),\n icon: z.string().optional(),\n className: z.string().optional()\n});\nconst TextComponentParamsSchema = z.object({\n content: z.string().min(1),\n markdown: z.boolean().optional(),\n className: z.string().optional()\n});\nconst IframeComponentParamsSchema = z.object({\n url: z.string().min(1),\n title: z.string().optional(),\n height: z.string().optional(),\n className: z.string().optional()\n});\nconst ImageComponentParamsSchema = z.object({\n url: z.string().min(1),\n alt: z.string().optional(),\n caption: z.string().optional(),\n className: z.string().optional()\n});\nconst LinkComponentParamsSchema = z.object({\n url: z.string().min(1),\n label: z.string().optional(),\n description: z.string().optional(),\n className: z.string().optional()\n});\nconst CarouselComponentParamsSchema = z.object({\n items: z.array(z.unknown()).min(1),\n height: z.string().optional(),\n className: z.string().optional()\n});\nconst ArtifactComponentParamsSchema = z.object({\n url: z.string().min(1),\n filename: z.string().min(1),\n mimeType: z.string().min(1),\n size: z.number().int().min(0).optional(),\n description: z.string().optional()\n});\nconst SandboxFlagSchema = z.enum([\n \"allow-scripts\",\n \"allow-same-origin\",\n \"allow-forms\",\n \"allow-popups\",\n \"allow-modals\"\n]);\nconst SecurityConstraintsSchema = z.object({\n requiresAuth: z.boolean().default(false).optional(),\n allowedDomains: z.array(z.string()).optional(),\n maxIframeDepth: z.number().int().min(0).max(3).default(1).optional(),\n sandboxFlags: z.array(SandboxFlagSchema).optional()\n});\nconst PerformanceConstraintsSchema = z.object({\n maxRenderTime: z.number().int().min(100).default(5e3).optional(),\n maxDataSize: z.number().int().min(1024).default(102400).optional()\n});\nconst ComponentSchemaSchema = z.object({\n type: z.literal(\"object\"),\n required: z.array(z.string()).optional(),\n properties: z.record(z.unknown()),\n additionalProperties: z.boolean().optional()\n});\nconst ComponentExampleSchema = z.object({\n name: z.string().min(1),\n description: z.string().optional(),\n params: z.record(z.unknown()),\n position: GridPositionSchema.optional()\n});\nconst ComponentSchema = z.object({\n id: z.string().regex(/^[a-z0-9-]+$/),\n type: ComponentTypeSchema,\n name: z.string().min(1),\n description: z.string().optional(),\n schema: ComponentSchemaSchema,\n examples: z.array(ComponentExampleSchema).min(1),\n security: SecurityConstraintsSchema.optional(),\n performance: PerformanceConstraintsSchema.optional(),\n tags: z.array(z.string().regex(/^[a-z0-9-]+$/)).optional(),\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/).optional(),\n deprecated: z.boolean().default(false).optional(),\n deprecationMessage: z.string().optional()\n});\nconst RegistryMetadataSchema = z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n author: z.string().optional(),\n repository: z.string().url().optional()\n});\nconst ComponentRegistrySchema = z.object({\n version: z.literal(\"1.0.0\"),\n metadata: RegistryMetadataSchema.optional(),\n components: z.array(ComponentSchema).min(1)\n});\nexport {\n ActionGroupGapSchema,\n ActionGroupLayoutSchema,\n ActionGroupParamsSchema,\n ActionParamsSchema,\n ArtifactComponentParamsSchema,\n CarouselComponentParamsSchema,\n ChartComponentParamsSchema,\n ChartDatasetSchema,\n ChartTimeAxisSchema,\n ChartTypeSchema,\n CodeComponentParamsSchema,\n ComponentExampleSchema,\n ComponentRegistrySchema,\n ComponentSchema,\n ComponentSchemaSchema,\n ComponentTypeSchema,\n FormComponentParamsSchema,\n FormFieldOptionSchema,\n FormFieldSchema,\n FormFieldTypeSchema,\n FormSubmitActionSchema,\n GalleryImageSchema,\n GridPositionSchema,\n IframeComponentParamsSchema,\n ImageComponentParamsSchema,\n ImageGalleryAspectRatioSchema,\n ImageGalleryColumnsSchema,\n ImageGalleryGapSchema,\n ImageGalleryParamsSchema,\n LinkComponentParamsSchema,\n MapComponentParamsSchema,\n MapMarkerSchema,\n MetricComponentParamsSchema,\n MetricTrendSchema,\n ModalComponentParamsSchema,\n ModalSizeSchema,\n PerformanceConstraintsSchema,\n PrefillSourceSchema,\n RegistryMetadataSchema,\n SandboxFlagSchema,\n SecurityConstraintsSchema,\n ShowWhenConditionSchema,\n ShowWhenOperatorSchema,\n TableColumnSchema,\n TableComponentParamsSchema,\n TableExportableSchema,\n TablePaginationSchema,\n TableVirtualizeOptionsSchema,\n TextComponentParamsSchema,\n VideoAspectRatioSchema,\n VideoComponentParamsSchema\n};\n//# sourceMappingURL=schemas.js.map\n"],"names":["z.object","z.number","z.enum","z.string","z.boolean","z.any","z.union","z.array","z.record","z.unknown","z.literal","z.tuple"],"mappings":"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"}
1
+ {"version":3,"file":"schemas.cjs","sources":["../../../../mcp-ui-spec/dist/schemas.js"],"sourcesContent":["import { z } from \"zod\";\nconst GridPositionSchema = z.object({\n colStart: z.number().int().min(1).max(12),\n colSpan: z.number().int().min(1).max(12),\n rowStart: z.number().int().min(1).optional(),\n rowSpan: z.number().int().min(1).default(1).optional()\n});\nconst ComponentTypeSchema = z.enum([\n \"chart\",\n \"table\",\n \"metric\",\n \"text\",\n \"composite\",\n \"grid\",\n // Phase 5.0: Nested grid layouts\n \"iframe\",\n \"image\",\n \"link\",\n \"action\",\n // Phase 5.0: Tool call actions\n \"footer\",\n // Phase 5.0: Metadata footer\n \"carousel\",\n \"artifact\",\n \"form\",\n // Sprint 1: Form component\n \"modal\",\n // Sprint 3: Modal/dialog component\n \"action-group\",\n // Sprint 3: Action grouping component\n \"image-gallery\",\n // Sprint 5: Image gallery with lightbox\n \"video\",\n // Sprint 5: Video embed (YouTube, Vimeo, direct)\n \"code\",\n // Sprint 6: Syntax highlighted code block\n \"map\"\n // Sprint 6: Interactive map (Leaflet)\n]);\nconst FormFieldOptionSchema = z.object({\n label: z.string().min(1),\n value: z.string(),\n disabled: z.boolean().optional()\n});\nconst FormFieldTypeSchema = z.enum([\n \"text\",\n \"email\",\n \"password\",\n \"number\",\n \"date\",\n \"textarea\",\n \"select\",\n \"checkbox\",\n \"radio\",\n \"autocomplete\",\n \"range\",\n \"tags\",\n \"toggle\",\n \"fieldset\"\n]);\nconst ShowWhenOperatorSchema = z.enum([\n \"equals\",\n \"notEquals\",\n \"in\",\n \"notIn\",\n \"contains\",\n \"startsWith\",\n \"endsWith\",\n \"greaterThan\",\n \"lessThan\",\n \"isEmpty\",\n \"isNotEmpty\",\n \"isTrue\",\n \"isFalse\"\n]);\nconst ShowWhenConditionSchema = z.object({\n field: z.string().min(1),\n operator: ShowWhenOperatorSchema,\n value: z.any().optional()\n});\nconst PrefillSourceSchema = z.enum([\"user\", \"detected\", \"inferred\", \"default\"]);\nconst FormFieldSchema = z.object({\n name: z.string().regex(/^[a-zA-Z][\\w.-]*$/),\n type: FormFieldTypeSchema,\n label: z.string().optional(),\n placeholder: z.string().optional(),\n helpText: z.string().optional(),\n required: z.boolean().optional(),\n disabled: z.boolean().optional(),\n defaultValue: z.any().optional(),\n // Prefill — pre-populated value with source tracking (v4.2.0)\n prefill: z.union([z.string(), z.array(z.string())]).optional(),\n displayHint: z.string().optional(),\n source: PrefillSourceSchema.optional(),\n muted: z.boolean().optional(),\n // Prefill mode for autocomplete fields (v4.3.0)\n prefillMode: z.enum([\"exact\", \"resolve\"]).optional(),\n // Value format validation (v4.3.0)\n valueFormat: z.string().optional(),\n valueFormatHint: z.string().optional(),\n // Text/textarea specific\n minLength: z.number().int().min(0).optional(),\n maxLength: z.number().int().min(1).optional(),\n pattern: z.string().optional(),\n // Number specific\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n // Date specific\n minDate: z.string().optional(),\n maxDate: z.string().optional(),\n // Select/Radio specific\n options: z.array(FormFieldOptionSchema).optional(),\n // Multi-select (v2.6.0)\n multiple: z.boolean().optional(),\n // Autocomplete specific (v2.6.0)\n apiUrl: z.string().url().optional(),\n searchParam: z.string().optional(),\n labelField: z.string().optional(),\n valueField: z.string().optional(),\n extraParams: z.record(z.string()).optional(),\n minChars: z.number().int().min(0).optional(),\n debounceMs: z.number().int().min(0).optional(),\n // Dependent field (v2.7.0)\n dependsOn: z.object({\n field: z.string(),\n apiUrl: z.string(),\n labelField: z.string(),\n valueField: z.string(),\n extraParams: z.record(z.string()).optional()\n }).optional(),\n // Field status — API capability indicator (v2.11.0)\n fieldStatus: z.enum([\"required\", \"optional\", \"unsupported\", \"unknown\"]).optional(),\n statusReason: z.string().optional(),\n // Checkbox specific\n checkboxLabel: z.string().optional(),\n // Textarea specific\n rows: z.number().int().min(1).max(20).optional(),\n // Conditional visibility\n showWhen: ShowWhenConditionSchema.optional()\n});\nconst FormSubmitActionSchema = z.object({\n toolName: z.string().min(1),\n params: z.record(z.unknown()).optional()\n});\nconst FormComponentParamsSchema = z.object({\n title: z.string().optional(),\n fields: z.array(FormFieldSchema).min(1),\n submitLabel: z.string().optional(),\n showReset: z.boolean().optional(),\n submitAction: FormSubmitActionSchema.optional(),\n // Persistence options (Sprint 4)\n persistKey: z.string().optional(),\n excludeFromPersistence: z.array(z.string()).optional(),\n persistExpiresIn: z.number().int().positive().optional(),\n layout: z.enum([\"vertical\", \"horizontal\", \"inline\"]).optional(),\n // Auto-submit countdown in ms when all required fields are prefilled (v4.2.0)\n autoSubmitDelay: z.number().int().min(1e3).max(3e4).optional()\n});\nconst ModalSizeSchema = z.enum([\"sm\", \"md\", \"lg\", \"xl\", \"full\"]);\nconst ModalComponentParamsSchema = z.object({\n title: z.string().optional(),\n size: ModalSizeSchema.optional(),\n showClose: z.boolean().optional(),\n closeOnEscape: z.boolean().optional(),\n closeOnBackdrop: z.boolean().optional(),\n maxHeight: z.string().optional()\n // Note: content and footer are UIComponent references, validated separately\n});\nconst ActionGroupLayoutSchema = z.enum([\n \"horizontal\",\n \"vertical\",\n \"space-between\",\n \"end\",\n \"center\"\n]);\nconst ActionGroupGapSchema = z.enum([\"none\", \"sm\", \"md\", \"lg\"]);\nconst ActionParamsSchema = z.object({\n label: z.string().min(1),\n type: z.enum([\"button\", \"link\"]).optional(),\n action: z.enum([\"tool-call\", \"link\", \"submit\"]).optional(),\n toolName: z.string().optional(),\n params: z.record(z.unknown()).optional(),\n url: z.string().optional(),\n variant: z.enum([\"primary\", \"secondary\", \"outline\", \"ghost\", \"danger\"]).optional(),\n size: z.enum([\"sm\", \"md\", \"lg\"]).optional(),\n icon: z.string().optional(),\n disabled: z.boolean().optional()\n});\nconst ActionGroupParamsSchema = z.object({\n actions: z.array(ActionParamsSchema).min(1),\n layout: ActionGroupLayoutSchema.optional(),\n gap: ActionGroupGapSchema.optional(),\n fullWidth: z.boolean().optional(),\n label: z.string().optional()\n});\nconst GalleryImageSchema = z.object({\n url: z.string().url(),\n thumbnail: z.string().url().optional(),\n alt: z.string().optional(),\n caption: z.string().optional(),\n srcset: z.string().optional(),\n sizes: z.string().optional()\n});\nconst ImageGalleryColumnsSchema = z.enum([\"2\", \"3\", \"4\", \"5\"]).transform(Number);\nconst ImageGalleryGapSchema = z.enum([\"none\", \"sm\", \"md\", \"lg\"]);\nconst ImageGalleryAspectRatioSchema = z.enum([\"1:1\", \"16:9\", \"4:3\", \"auto\"]);\nconst ImageGalleryParamsSchema = z.object({\n title: z.string().optional(),\n images: z.array(GalleryImageSchema).min(1),\n columns: z.union([z.literal(2), z.literal(3), z.literal(4), z.literal(5)]).optional(),\n gap: ImageGalleryGapSchema.optional(),\n aspectRatio: ImageGalleryAspectRatioSchema.optional(),\n lightbox: z.boolean().optional(),\n showCaptions: z.boolean().optional()\n});\nconst VideoAspectRatioSchema = z.enum([\"16:9\", \"4:3\", \"1:1\", \"21:9\"]);\nconst VideoComponentParamsSchema = z.object({\n url: z.string().url(),\n title: z.string().optional(),\n caption: z.string().optional(),\n poster: z.string().url().optional(),\n aspectRatio: VideoAspectRatioSchema.optional(),\n autoplay: z.boolean().optional(),\n controls: z.boolean().optional(),\n loop: z.boolean().optional(),\n muted: z.boolean().optional(),\n startTime: z.number().int().min(0).optional()\n});\nconst CodeComponentParamsSchema = z.object({\n code: z.string(),\n language: z.string().optional(),\n filename: z.string().optional(),\n showLineNumbers: z.boolean().optional(),\n startLine: z.number().optional(),\n highlightLines: z.array(z.number()).optional(),\n maxHeight: z.string().optional(),\n theme: z.enum([\"light\", \"dark\"]).optional()\n});\nconst LatLngObjectSchema = z.object({\n lat: z.number(),\n lng: z.number()\n});\nconst LatLngTupleSchema = z.tuple([z.number(), z.number()]);\nconst LatLngPointSchema = z.union([LatLngTupleSchema, LatLngObjectSchema]);\nconst MapMarkerSchema = z.object({\n position: LatLngPointSchema,\n tooltip: z.string().optional(),\n popup: z.string().optional()\n});\nconst MapComponentParamsSchema = z.object({\n center: LatLngPointSchema.optional(),\n zoom: z.number().optional(),\n markers: z.array(MapMarkerSchema).optional(),\n height: z.string().optional(),\n fitBounds: z.boolean().optional(),\n zoomControl: z.boolean().optional(),\n scrollWheelZoom: z.boolean().optional(),\n tileLayer: z.string().optional(),\n attribution: z.string().optional()\n});\nconst ChartTypeSchema = z.enum([\n \"bar\",\n \"line\",\n \"pie\",\n \"doughnut\",\n \"radar\",\n \"scatter\",\n \"bubble\",\n \"polarArea\"\n]);\nconst ChartDatasetSchema = z.object({\n label: z.string(),\n // Either an array of numbers or an array of {x, y} points (Chart.js shapes)\n data: z.union([\n z.array(z.number()),\n z.array(\n z.object({\n x: z.union([z.string(), z.number()]),\n y: z.number()\n })\n )\n ]),\n backgroundColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderWidth: z.number().optional(),\n fill: z.union([z.boolean(), z.string()]).optional(),\n tension: z.number().optional()\n});\nconst ChartTimeAxisSchema = z.object({\n parser: z.string().optional(),\n unit: z.enum([\"day\", \"week\", \"month\", \"quarter\", \"year\"]).optional(),\n tooltipFormat: z.string().optional(),\n min: z.string().optional(),\n max: z.string().optional()\n});\nconst ChartComponentParamsSchema = z.object({\n type: ChartTypeSchema,\n title: z.string().optional(),\n data: z.object({\n labels: z.array(z.string()),\n datasets: z.array(ChartDatasetSchema)\n }),\n options: z.object({\n responsive: z.boolean().optional(),\n maintainAspectRatio: z.boolean().optional(),\n tension: z.number().optional(),\n // `scales` and `plugins` are Chart.js opaque config objects — kept loose\n scales: z.unknown().optional(),\n plugins: z.unknown().optional()\n }).optional(),\n renderer: z.enum([\"native\", \"iframe\", \"auto\"]).optional(),\n exportable: z.boolean().optional(),\n timeAxis: ChartTimeAxisSchema.optional(),\n height: z.string().optional(),\n className: z.string().optional()\n});\nconst TableColumnSchema = z.object({\n key: z.string().min(1),\n label: z.string(),\n sortable: z.boolean().optional(),\n width: z.string().optional()\n});\nconst TablePaginationSchema = z.object({\n currentPage: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n totalRows: z.number().int().min(0)\n});\nconst TableVirtualizeOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n rowHeight: z.number().int().min(1).optional(),\n overscan: z.number().int().min(0).optional(),\n threshold: z.number().int().min(1).optional()\n});\nconst TableExportableSchema = z.union([\n z.boolean(),\n z.object({\n formats: z.array(z.enum([\"csv\", \"tsv\", \"json\"])).optional(),\n filename: z.string().optional()\n })\n]);\nconst TableComponentParamsSchema = z.object({\n title: z.string().optional(),\n columns: z.array(TableColumnSchema).min(1),\n rows: z.array(z.record(z.unknown())),\n pagination: TablePaginationSchema.optional(),\n virtualize: z.union([z.boolean(), TableVirtualizeOptionsSchema]).optional(),\n exportable: TableExportableSchema.optional(),\n className: z.string().optional()\n});\nconst MetricTrendSchema = z.object({\n value: z.number(),\n direction: z.enum([\"up\", \"down\", \"neutral\"])\n});\nconst MetricComponentParamsSchema = z.object({\n title: z.string().min(1),\n value: z.union([z.string(), z.number()]),\n unit: z.string().optional(),\n trend: MetricTrendSchema.optional(),\n subtitle: z.string().optional(),\n icon: z.string().optional(),\n className: z.string().optional()\n});\nconst TextComponentParamsSchema = z.object({\n content: z.string().min(1),\n markdown: z.boolean().optional(),\n className: z.string().optional()\n});\nconst IframeComponentParamsSchema = z.object({\n url: z.string().min(1),\n title: z.string().optional(),\n height: z.string().optional(),\n className: z.string().optional()\n});\nconst ImageComponentParamsSchema = z.object({\n url: z.string().min(1),\n alt: z.string().optional(),\n caption: z.string().optional(),\n className: z.string().optional()\n});\nconst LinkComponentParamsSchema = z.object({\n url: z.string().min(1),\n label: z.string().optional(),\n description: z.string().optional(),\n className: z.string().optional()\n});\nconst CarouselComponentParamsSchema = z.object({\n items: z.array(z.unknown()).min(1),\n height: z.string().optional(),\n className: z.string().optional()\n});\nconst ArtifactComponentParamsSchema = z.object({\n url: z.string().min(1),\n filename: z.string().min(1),\n mimeType: z.string().min(1),\n size: z.number().int().min(0).optional(),\n description: z.string().optional()\n});\nconst SandboxFlagSchema = z.enum([\n \"allow-scripts\",\n \"allow-same-origin\",\n \"allow-forms\",\n \"allow-popups\",\n \"allow-modals\"\n]);\nconst SecurityConstraintsSchema = z.object({\n requiresAuth: z.boolean().default(false).optional(),\n allowedDomains: z.array(z.string()).optional(),\n maxIframeDepth: z.number().int().min(0).max(3).default(1).optional(),\n sandboxFlags: z.array(SandboxFlagSchema).optional()\n});\nconst PerformanceConstraintsSchema = z.object({\n maxRenderTime: z.number().int().min(100).default(5e3).optional(),\n maxDataSize: z.number().int().min(1024).default(102400).optional()\n});\nconst ComponentSchemaSchema = z.object({\n type: z.literal(\"object\"),\n required: z.array(z.string()).optional(),\n properties: z.record(z.unknown()),\n additionalProperties: z.boolean().optional()\n});\nconst ComponentExampleSchema = z.object({\n name: z.string().min(1),\n description: z.string().optional(),\n params: z.record(z.unknown()),\n position: GridPositionSchema.optional()\n});\nconst ComponentSchema = z.object({\n id: z.string().regex(/^[a-z0-9-]+$/),\n type: ComponentTypeSchema,\n name: z.string().min(1),\n description: z.string().optional(),\n schema: ComponentSchemaSchema,\n examples: z.array(ComponentExampleSchema).min(1),\n security: SecurityConstraintsSchema.optional(),\n performance: PerformanceConstraintsSchema.optional(),\n tags: z.array(z.string().regex(/^[a-z0-9-]+$/)).optional(),\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/).optional(),\n deprecated: z.boolean().default(false).optional(),\n deprecationMessage: z.string().optional()\n});\nconst RegistryMetadataSchema = z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n author: z.string().optional(),\n repository: z.string().url().optional()\n});\nconst ComponentRegistrySchema = z.object({\n version: z.literal(\"1.0.0\"),\n metadata: RegistryMetadataSchema.optional(),\n components: z.array(ComponentSchema).min(1)\n});\nexport {\n ActionGroupGapSchema,\n ActionGroupLayoutSchema,\n ActionGroupParamsSchema,\n ActionParamsSchema,\n ArtifactComponentParamsSchema,\n CarouselComponentParamsSchema,\n ChartComponentParamsSchema,\n ChartDatasetSchema,\n ChartTimeAxisSchema,\n ChartTypeSchema,\n CodeComponentParamsSchema,\n ComponentExampleSchema,\n ComponentRegistrySchema,\n ComponentSchema,\n ComponentSchemaSchema,\n ComponentTypeSchema,\n FormComponentParamsSchema,\n FormFieldOptionSchema,\n FormFieldSchema,\n FormFieldTypeSchema,\n FormSubmitActionSchema,\n GalleryImageSchema,\n GridPositionSchema,\n IframeComponentParamsSchema,\n ImageComponentParamsSchema,\n ImageGalleryAspectRatioSchema,\n ImageGalleryColumnsSchema,\n ImageGalleryGapSchema,\n ImageGalleryParamsSchema,\n LatLngObjectSchema,\n LatLngPointSchema,\n LatLngTupleSchema,\n LinkComponentParamsSchema,\n MapComponentParamsSchema,\n MapMarkerSchema,\n MetricComponentParamsSchema,\n MetricTrendSchema,\n ModalComponentParamsSchema,\n ModalSizeSchema,\n PerformanceConstraintsSchema,\n PrefillSourceSchema,\n RegistryMetadataSchema,\n SandboxFlagSchema,\n SecurityConstraintsSchema,\n ShowWhenConditionSchema,\n ShowWhenOperatorSchema,\n TableColumnSchema,\n TableComponentParamsSchema,\n TableExportableSchema,\n TablePaginationSchema,\n TableVirtualizeOptionsSchema,\n TextComponentParamsSchema,\n VideoAspectRatioSchema,\n VideoComponentParamsSchema\n};\n//# sourceMappingURL=schemas.js.map\n"],"names":["z.object","z.number","z.enum","z.string","z.boolean","z.any","z.union","z.array","z.record","z.unknown","z.literal","z.tuple"],"mappings":"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"}
@@ -80,7 +80,7 @@ const ShowWhenConditionSchema = objectType({
80
80
  });
81
81
  const PrefillSourceSchema = enumType(["user", "detected", "inferred", "default"]);
82
82
  const FormFieldSchema = objectType({
83
- name: stringType().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/),
83
+ name: stringType().regex(/^[a-zA-Z][\w.-]*$/),
84
84
  type: FormFieldTypeSchema,
85
85
  label: stringType().optional(),
86
86
  placeholder: stringType().optional(),
@@ -143,7 +143,7 @@ const FormSubmitActionSchema = objectType({
143
143
  toolName: stringType().min(1),
144
144
  params: recordType(unknownType()).optional()
145
145
  });
146
- objectType({
146
+ const FormComponentParamsSchema = objectType({
147
147
  title: stringType().optional(),
148
148
  fields: arrayType(FormFieldSchema).min(1),
149
149
  submitLabel: stringType().optional(),
@@ -237,13 +237,19 @@ const CodeComponentParamsSchema = objectType({
237
237
  maxHeight: stringType().optional(),
238
238
  theme: enumType(["light", "dark"]).optional()
239
239
  });
240
+ const LatLngObjectSchema = objectType({
241
+ lat: numberType(),
242
+ lng: numberType()
243
+ });
244
+ const LatLngTupleSchema = tupleType([numberType(), numberType()]);
245
+ const LatLngPointSchema = unionType([LatLngTupleSchema, LatLngObjectSchema]);
240
246
  const MapMarkerSchema = objectType({
241
- position: tupleType([numberType(), numberType()]),
247
+ position: LatLngPointSchema,
242
248
  tooltip: stringType().optional(),
243
249
  popup: stringType().optional()
244
250
  });
245
- objectType({
246
- center: tupleType([numberType(), numberType()]).optional(),
251
+ const MapComponentParamsSchema = objectType({
252
+ center: LatLngPointSchema.optional(),
247
253
  zoom: numberType().optional(),
248
254
  markers: arrayType(MapMarkerSchema).optional(),
249
255
  height: stringType().optional(),
@@ -459,6 +465,7 @@ export {
459
465
  ComponentSchema,
460
466
  ComponentSchemaSchema,
461
467
  ComponentTypeSchema,
468
+ FormComponentParamsSchema,
462
469
  FormFieldOptionSchema,
463
470
  FormFieldSchema,
464
471
  FormFieldTypeSchema,
@@ -470,7 +477,11 @@ export {
470
477
  ImageGalleryAspectRatioSchema,
471
478
  ImageGalleryGapSchema,
472
479
  ImageGalleryParamsSchema,
480
+ LatLngObjectSchema,
481
+ LatLngPointSchema,
482
+ LatLngTupleSchema,
473
483
  LinkComponentParamsSchema,
484
+ MapComponentParamsSchema,
474
485
  MapMarkerSchema,
475
486
  MetricComponentParamsSchema,
476
487
  MetricTrendSchema,