@mcp-native/react-native 0.1.0 → 0.2.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.
package/README.md CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  `@mcp-native/react-native` converts a surface already validated by `@mcp-native/a2ui` into a trusted render plan and mounts it with components supplied by the host application. Servers provide data and declared actions—not JavaScript modules, component implementations, or arbitrary component names.
18
18
 
19
- The renderer is an internal platform layer, not proof of A2UI v1.0 conformance. Its current input is MCP Native's custom `0.1` surface; the planned v1.0 adapter will preserve this host-owned rendering boundary.
19
+ The renderer is an internal platform layer, not proof of complete A2UI v1.0 conformance. The custom `0.1` surface remains supported, and the separate v1.0 adapter now converts a strict static subset into the same host-owned `NativeElement` boundary.
20
20
 
21
21
  ## Install
22
22
 
@@ -81,6 +81,30 @@ type NativeComponentName = "Button" | "Text" | "TextInput" | "View";
81
81
 
82
82
  The application host decides how each name maps to a locally bundled component and how declared button actions reach `McpNativeRuntime`. `onBindingChange` reports a validated binding name and the next text value; this milestone deliberately leaves local state ownership and server synchronization to the host.
83
83
 
84
+ ## A2UI v1 render-plan adapter
85
+
86
+ Use the v1 adapter only with an explicit host policy. It revalidates the snapshot before resolving data-model bindings or creating a trusted plan.
87
+
88
+ ```ts
89
+ import { createA2uiV1BasicCatalogPolicy } from "@mcp-native/a2ui";
90
+ import {
91
+ A2UI_V1_NATIVE_COMPONENT_NAMES,
92
+ createA2uiV1NativeRenderPlan,
93
+ } from "@mcp-native/react-native";
94
+
95
+ const policy = createA2uiV1BasicCatalogPolicy({
96
+ allowedComponentNames: A2UI_V1_NATIVE_COMPONENT_NAMES,
97
+ allowedEventNames: ["save_profile"],
98
+ });
99
+
100
+ const surface = store.get("profile");
101
+ const plan = surface && createA2uiV1NativeRenderPlan(surface, policy);
102
+ ```
103
+
104
+ The adapter maps `Row`, `Column`, static `List`, and `Card` to `View`; `Text` to `Text`; `Button` with a `Text` child to `Button`; and `TextField` to `TextInput`. It resolves absolute JSON Pointer values, preserves supported container alignment, event context, and explicit accessibility fields. Event descriptors remain inert plan data; mounting them and constructing renderer-to-agent envelopes is the next boundary.
105
+
106
+ Dynamic list templates, relative bindings, renderer functions, renderer-side checks, local function actions, and every other basic-catalog component fail closed. Expanded plans are capped at 1,024 nodes so repeated references cannot amplify a small component graph into unbounded work.
107
+
84
108
  ## Public API
85
109
 
86
110
  | Export | Purpose |
@@ -89,6 +113,10 @@ The application host decides how each name maps to a locally bundled component a
89
113
  | `useMcpNativeActionDispatcher` | Adapts asynchronous runtime dispatch into a stable event callback with required error handling. |
90
114
  | `useNativeRenderPlan` | Memoizes a trusted render plan for a validated surface identity. |
91
115
  | `createNativeRenderPlan` | Converts a validated `A2uiSurface` into a `NativeElement` tree. |
116
+ | `createA2uiV1NativeRenderPlan` | Revalidates and adapts the supported v1 subset into a trusted `NativeElement` tree. |
117
+ | `A2UI_V1_NATIVE_COMPONENT_NAMES` | Exact basic-catalog component names implemented by the current native adapter. |
118
+ | `A2UI_V1_NATIVE_MAX_RENDER_NODES` | Bound on expanded v1 render-plan nodes. |
119
+ | `A2uiV1NativeEventDescriptor` | Resolved inert event data retained for later renderer-to-agent dispatch. |
92
120
  | `NativeComponentCatalog` | Contract for locally bundled `View`, `Text`, `Button`, and `TextInput` implementations. |
93
121
  | `NativeActionHandler` | Synchronous handler for a validated declared action. |
94
122
  | `NativeBindingChangeHandler` | Handler receiving a validated binding name and the next text value. |
@@ -109,6 +137,8 @@ The application host decides how each name maps to a locally bundled component a
109
137
  - The server cannot select components outside the catalog.
110
138
  - The server cannot send executable React Native code.
111
139
  - Render plans should only be created from a successfully validated surface.
140
+ - The v1 adapter performs policy validation again at its public boundary.
141
+ - Unsupported v1 components, dynamic templates, and executable functions fail closed.
112
142
  - Declared actions and their complete JSON arguments are validated again immediately before emission.
113
143
  - Rendered component props are selected explicitly; unchecked server props are never spread into host components.
114
144
  - The host must explicitly map components, own state, enforce permissions, and configure the runtime action policy; dispatch is denied when no policy allows it.
package/dist/index.d.ts CHANGED
@@ -62,4 +62,6 @@ export declare function useNativeRenderPlan(surface: A2uiSurface): NativeElement
62
62
  export declare function useMcpNativeActionDispatcher(dispatcher: McpNativeDispatcher, options: McpNativeActionDispatcherOptions): NativeActionHandler;
63
63
  /** Renders a validated surface with the host's locally bundled components. */
64
64
  export declare function McpNativeSurface({ surface, components, onAction, onBindingChange, }: McpNativeSurfaceProps): ReactElement;
65
+ export { A2UI_V1_NATIVE_COMPONENT_NAMES, A2UI_V1_NATIVE_MAX_RENDER_NODES, createA2uiV1NativeRenderPlan, } from "./v1.js";
66
+ export type { A2uiV1NativeEventDescriptor } from "./v1.js";
65
67
  //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -115,4 +115,5 @@ function expectActionProp(element) {
115
115
  throw new TypeError(message, { cause: error });
116
116
  }
117
117
  }
118
+ export { A2UI_V1_NATIVE_COMPONENT_NAMES, A2UI_V1_NATIVE_MAX_RENDER_NODES, createA2uiV1NativeRenderPlan, } from "./v1.js";
118
119
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/v1.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ import type { A2uiV1SurfaceState, A2uiV1SurfaceValidationPolicy } from "@mcp-native/a2ui";
2
+ import type { JsonObject } from "@mcp-native/core";
3
+ import type { NativeElement } from "./index.js";
4
+ export declare const A2UI_V1_NATIVE_COMPONENT_NAMES: readonly string[];
5
+ /** Maximum expanded native-plan nodes, including repeated component references. */
6
+ export declare const A2UI_V1_NATIVE_MAX_RENDER_NODES = 1024;
7
+ /** Resolved event data retained in a trusted plan until renderer-to-agent dispatch. */
8
+ export interface A2uiV1NativeEventDescriptor {
9
+ readonly name: string;
10
+ readonly surfaceId: string;
11
+ readonly sourceComponentId: string;
12
+ readonly userMessage?: string;
13
+ readonly context: JsonObject;
14
+ }
15
+ /**
16
+ * Converts a policy-validated A2UI v1 surface into the existing host-owned
17
+ * native render plan. Unsupported renderer semantics fail closed.
18
+ */
19
+ export declare function createA2uiV1NativeRenderPlan(surface: A2uiV1SurfaceState, policy: A2uiV1SurfaceValidationPolicy): NativeElement;
20
+ //# sourceMappingURL=v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../src/v1.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,kBAAkB,EAClB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,8BAA8B,EAQrC,SAAS,MAAM,EAAE,CAAC;AAExB,mFAAmF;AACnF,eAAO,MAAM,+BAA+B,OAAyB,CAAC;AAEtE,uFAAuF;AACvF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;CAC9B;AASD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,6BAA6B,GACpC,aAAa,CASf"}
package/dist/v1.js ADDED
@@ -0,0 +1,315 @@
1
+ import { A2UI_V1_MAX_COMPONENTS, A2uiParseError, validateA2uiV1SurfaceState, } from "@mcp-native/a2ui";
2
+ import { parseJsonObject, parseJsonValue } from "@mcp-native/core";
3
+ export const A2UI_V1_NATIVE_COMPONENT_NAMES = Object.freeze([
4
+ "Button",
5
+ "Card",
6
+ "Column",
7
+ "List",
8
+ "Row",
9
+ "Text",
10
+ "TextField",
11
+ ]);
12
+ /** Maximum expanded native-plan nodes, including repeated component references. */
13
+ export const A2UI_V1_NATIVE_MAX_RENDER_NODES = A2UI_V1_MAX_COMPONENTS;
14
+ /**
15
+ * Converts a policy-validated A2UI v1 surface into the existing host-owned
16
+ * native render plan. Unsupported renderer semantics fail closed.
17
+ */
18
+ export function createA2uiV1NativeRenderPlan(surface, policy) {
19
+ const validated = validateA2uiV1SurfaceState(surface, policy);
20
+ const context = {
21
+ surface: validated,
22
+ dataModel: parseJsonObject(validated.dataModel, "surface.dataModel"),
23
+ visiting: new Set(),
24
+ renderNodeCount: 0,
25
+ };
26
+ return adaptComponent("root", "root", context);
27
+ }
28
+ function adaptComponent(id, key, context) {
29
+ context.renderNodeCount += 1;
30
+ if (context.renderNodeCount > A2UI_V1_NATIVE_MAX_RENDER_NODES) {
31
+ throw new A2uiParseError(`Expanded A2UI native plan exceeds maximum of ${A2UI_V1_NATIVE_MAX_RENDER_NODES} nodes`);
32
+ }
33
+ if (context.visiting.has(id)) {
34
+ throw new A2uiParseError(`A2UI native adapter encountered a cycle at ${JSON.stringify(id)}`);
35
+ }
36
+ const component = context.surface.components.get(id);
37
+ if (component === undefined) {
38
+ throw new A2uiParseError(`A2UI native adapter cannot find component ${JSON.stringify(id)}`);
39
+ }
40
+ context.visiting.add(id);
41
+ try {
42
+ switch (component.component) {
43
+ case "Row":
44
+ return adaptContainer(component, key, "row", undefined, context);
45
+ case "Column":
46
+ return adaptContainer(component, key, "column", undefined, context);
47
+ case "List":
48
+ return adaptList(component, key, context);
49
+ case "Card":
50
+ return adaptCard(component, key, context);
51
+ case "Text":
52
+ return adaptText(component, key, context);
53
+ case "Button":
54
+ return adaptButton(component, key, context);
55
+ case "TextField":
56
+ return adaptTextField(component, key, context);
57
+ default:
58
+ throw new A2uiParseError(`A2UI component ${JSON.stringify(id)} uses ${JSON.stringify(component.component)}, which the native adapter does not support`);
59
+ }
60
+ }
61
+ finally {
62
+ context.visiting.delete(id);
63
+ }
64
+ }
65
+ function adaptContainer(component, key, layout, variant, context) {
66
+ if (!Array.isArray(component.children)) {
67
+ throw new A2uiParseError(`A2UI native adapter does not yet support dynamic children at components.${component.id}.children`);
68
+ }
69
+ const props = { layout };
70
+ if (variant !== undefined) {
71
+ props.variant = variant;
72
+ }
73
+ if (component.justify !== undefined) {
74
+ props.justify = expectString(component.justify, `components.${component.id}.justify`);
75
+ }
76
+ if (component.align !== undefined) {
77
+ props.align = expectString(component.align, `components.${component.id}.align`);
78
+ }
79
+ addCommonProps(component, props, context);
80
+ return {
81
+ key,
82
+ component: "View",
83
+ props,
84
+ children: component.children.map((childId, index) => adaptComponent(childId, `${key}/${childId}:${index}`, context)),
85
+ };
86
+ }
87
+ function adaptList(component, key, context) {
88
+ return adaptContainer(component, key, component.direction === "horizontal" ? "row" : "column", "list", context);
89
+ }
90
+ function adaptCard(component, key, context) {
91
+ const childId = expectString(component.child, `components.${component.id}.child`);
92
+ const props = { layout: "column", variant: "card" };
93
+ addCommonProps(component, props, context);
94
+ return {
95
+ key,
96
+ component: "View",
97
+ props,
98
+ children: [adaptComponent(childId, `${key}/${childId}:0`, context)],
99
+ };
100
+ }
101
+ function adaptText(component, key, context) {
102
+ const props = {
103
+ children: resolveDynamicString(component.text, `components.${component.id}.text`, context),
104
+ };
105
+ if (component.variant !== undefined) {
106
+ props.variant = component.variant;
107
+ }
108
+ addCommonProps(component, props, context);
109
+ return { key, component: "Text", props };
110
+ }
111
+ function adaptButton(component, key, context) {
112
+ rejectUnsupportedChecks(component);
113
+ const childId = expectString(component.child, `components.${component.id}.child`);
114
+ const child = context.surface.components.get(childId);
115
+ if (child?.component !== "Text") {
116
+ throw new A2uiParseError(`A2UI native Button ${JSON.stringify(component.id)} requires a Text child`);
117
+ }
118
+ const props = {
119
+ title: resolveDynamicString(child.text, `components.${child.id}.text`, context),
120
+ event: resolveButtonEvent(component, context),
121
+ };
122
+ if (component.variant !== undefined) {
123
+ props.variant = component.variant;
124
+ }
125
+ addCommonProps(component, props, context);
126
+ if (props.accessibilityLabel === undefined) {
127
+ props.accessibilityLabel = props.title;
128
+ }
129
+ return { key, component: "Button", props };
130
+ }
131
+ function adaptTextField(component, key, context) {
132
+ rejectUnsupportedChecks(component);
133
+ const componentPath = `components.${component.id}`;
134
+ const label = resolveDynamicString(component.label, `${componentPath}.label`, context);
135
+ const props = {
136
+ label,
137
+ placeholder: component.placeholder === undefined
138
+ ? label
139
+ : resolveDynamicString(component.placeholder, `${componentPath}.placeholder`, context),
140
+ };
141
+ if (component.value !== undefined) {
142
+ props.value = resolveDynamicString(component.value, `${componentPath}.value`, context);
143
+ if (isBinding(component.value)) {
144
+ props.binding = expectAbsoluteBinding(component.value.path, `${componentPath}.value.path`);
145
+ }
146
+ }
147
+ if (component.variant !== undefined) {
148
+ props.variant = component.variant;
149
+ }
150
+ addCommonProps(component, props, context);
151
+ if (props.accessibilityLabel === undefined) {
152
+ props.accessibilityLabel = label;
153
+ }
154
+ return { key, component: "TextInput", props };
155
+ }
156
+ function rejectUnsupportedChecks(component) {
157
+ if (component.checks !== undefined) {
158
+ throw new A2uiParseError(`A2UI native adapter does not yet support renderer-side checks at components.${component.id}.checks`);
159
+ }
160
+ }
161
+ function resolveButtonEvent(component, context) {
162
+ const action = expectObject(component.action, `components.${component.id}.action`);
163
+ if (!Object.hasOwn(action, "event")) {
164
+ throw new A2uiParseError(`A2UI native Button ${JSON.stringify(component.id)} does not support local function actions`);
165
+ }
166
+ const event = expectObject(action.event, `components.${component.id}.action.event`);
167
+ const eventName = expectString(event.name, `components.${component.id}.action.event.name`);
168
+ const eventContext = expectOptionalObject(event.context, `components.${component.id}.action.event.context`);
169
+ const resolvedContext = {};
170
+ for (const [name, value] of Object.entries(eventContext ?? {})) {
171
+ defineJsonProperty(resolvedContext, name, resolveDynamicValue(value, `components.${component.id}.action.event.context.${name}`, context));
172
+ }
173
+ const userMessage = event.userMessage === undefined
174
+ ? undefined
175
+ : resolveDynamicString(event.userMessage, `components.${component.id}.action.event.userMessage`, context);
176
+ return {
177
+ name: eventName,
178
+ surfaceId: context.surface.surfaceId,
179
+ sourceComponentId: component.id,
180
+ ...(userMessage === undefined ? {} : { userMessage }),
181
+ context: parseJsonObject(resolvedContext, `components.${component.id}.action.event.context`),
182
+ };
183
+ }
184
+ function addCommonProps(component, props, context) {
185
+ if (component.weight !== undefined) {
186
+ props.weight = expectFiniteNumber(component.weight, `components.${component.id}.weight`);
187
+ }
188
+ if (component.accessibility === undefined) {
189
+ return;
190
+ }
191
+ const accessibility = expectObject(component.accessibility, `components.${component.id}.accessibility`);
192
+ if (accessibility.label !== undefined) {
193
+ props.accessibilityLabel = resolveDynamicString(accessibility.label, `components.${component.id}.accessibility.label`, context);
194
+ }
195
+ if (accessibility.description !== undefined) {
196
+ props.accessibilityHint = resolveDynamicString(accessibility.description, `components.${component.id}.accessibility.description`, context);
197
+ }
198
+ if (accessibility.live !== undefined) {
199
+ props.accessibilityLive = accessibility.live;
200
+ }
201
+ if (accessibility.hidden !== undefined) {
202
+ props.accessibilityHidden = resolveDynamicBoolean(accessibility.hidden, `components.${component.id}.accessibility.hidden`, context);
203
+ }
204
+ }
205
+ function resolveDynamicString(value, path, context) {
206
+ const resolved = resolveDynamicValue(value, path, context);
207
+ return expectString(resolved, path);
208
+ }
209
+ function resolveDynamicBoolean(value, path, context) {
210
+ const resolved = resolveDynamicValue(value, path, context);
211
+ if (typeof resolved !== "boolean") {
212
+ throw new A2uiParseError(`Expected a boolean at ${path}`);
213
+ }
214
+ return resolved;
215
+ }
216
+ function resolveDynamicValue(value, path, context) {
217
+ if (value === undefined) {
218
+ throw new A2uiParseError(`Missing dynamic value at ${path}`);
219
+ }
220
+ if (isFunctionCall(value)) {
221
+ throw new A2uiParseError(`A2UI native adapter does not execute function ${JSON.stringify(value.call)} at ${path}`);
222
+ }
223
+ if (isBinding(value)) {
224
+ const pointer = expectAbsoluteBinding(value.path, `${path}.path`);
225
+ return parseJsonValue(resolveJsonPointer(context.dataModel, pointer, path), path);
226
+ }
227
+ return parseJsonValue(value, path);
228
+ }
229
+ function resolveJsonPointer(document, pointer, path) {
230
+ if (pointer === "") {
231
+ return document;
232
+ }
233
+ let cursor = document;
234
+ for (const encodedToken of pointer.slice(1).split("/")) {
235
+ const token = decodePointerToken(encodedToken, pointer);
236
+ if (Array.isArray(cursor)) {
237
+ if (!/^(0|[1-9][0-9]*)$/.test(token)) {
238
+ throw new A2uiParseError(`Invalid array binding index in ${JSON.stringify(pointer)} at ${path}`);
239
+ }
240
+ const index = Number(token);
241
+ if (!Number.isSafeInteger(index) || index >= cursor.length) {
242
+ throw new A2uiParseError(`A2UI binding ${JSON.stringify(pointer)} is missing at ${path}`);
243
+ }
244
+ cursor = cursor[index];
245
+ continue;
246
+ }
247
+ if (cursor === null || typeof cursor !== "object" || !Object.hasOwn(cursor, token)) {
248
+ throw new A2uiParseError(`A2UI binding ${JSON.stringify(pointer)} is missing at ${path}`);
249
+ }
250
+ cursor = cursor[token];
251
+ }
252
+ return cursor;
253
+ }
254
+ function expectAbsoluteBinding(value, path) {
255
+ const pointer = expectString(value, path);
256
+ if (pointer !== "" && !pointer.startsWith("/")) {
257
+ throw new A2uiParseError(`A2UI native adapter requires an absolute binding at ${path}; dynamic templates are not supported`);
258
+ }
259
+ return pointer;
260
+ }
261
+ function decodePointerToken(token, pointer) {
262
+ for (let index = 0; index < token.length; index += 1) {
263
+ if (token[index] !== "~") {
264
+ continue;
265
+ }
266
+ const escaped = token[index + 1];
267
+ if (escaped !== "0" && escaped !== "1") {
268
+ throw new A2uiParseError(`Invalid JSON Pointer escape in ${JSON.stringify(pointer)}`);
269
+ }
270
+ index += 1;
271
+ }
272
+ return token.replaceAll("~1", "/").replaceAll("~0", "~");
273
+ }
274
+ function isBinding(value) {
275
+ return (value !== null &&
276
+ !Array.isArray(value) &&
277
+ typeof value === "object" &&
278
+ Object.hasOwn(value, "path"));
279
+ }
280
+ function isFunctionCall(value) {
281
+ return (value !== null &&
282
+ !Array.isArray(value) &&
283
+ typeof value === "object" &&
284
+ Object.hasOwn(value, "call"));
285
+ }
286
+ function expectObject(value, path) {
287
+ if (value === null || value === undefined || typeof value !== "object" || Array.isArray(value)) {
288
+ throw new A2uiParseError(`Expected an object at ${path}`);
289
+ }
290
+ return value;
291
+ }
292
+ function expectOptionalObject(value, path) {
293
+ return value === undefined ? undefined : expectObject(value, path);
294
+ }
295
+ function expectString(value, path) {
296
+ if (typeof value !== "string") {
297
+ throw new A2uiParseError(`Expected a string at ${path}`);
298
+ }
299
+ return value;
300
+ }
301
+ function expectFiniteNumber(value, path) {
302
+ if (typeof value !== "number" || !Number.isFinite(value)) {
303
+ throw new A2uiParseError(`Expected a finite number at ${path}`);
304
+ }
305
+ return value;
306
+ }
307
+ function defineJsonProperty(object, key, value) {
308
+ Object.defineProperty(object, key, {
309
+ configurable: true,
310
+ enumerable: true,
311
+ value,
312
+ writable: true,
313
+ });
314
+ }
315
+ //# sourceMappingURL=v1.js.map
package/dist/v1.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1.js","sourceRoot":"","sources":["../src/v1.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKnE,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1D,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,MAAM;IACN,WAAW;CACZ,CAAsB,CAAC;AAExB,mFAAmF;AACnF,MAAM,CAAC,MAAM,+BAA+B,GAAG,sBAAsB,CAAC;AAkBtE;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAA2B,EAC3B,MAAqC;IAErC,MAAM,SAAS,GAAG,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAmB;QAC9B,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC;QACpE,QAAQ,EAAE,IAAI,GAAG,EAAU;QAC3B,eAAe,EAAE,CAAC;KACnB,CAAC;IACF,OAAO,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,EAAU,EAAE,GAAW,EAAE,OAAuB;IACtE,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC;IAC7B,IAAI,OAAO,CAAC,eAAe,GAAG,+BAA+B,EAAE,CAAC;QAC9D,MAAM,IAAI,cAAc,CACtB,gDAAgD,+BAA+B,QAAQ,CACxF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CAAC,8CAA8C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,cAAc,CAAC,6CAA6C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzB,IAAI,CAAC;QACH,QAAQ,SAAS,CAAC,SAAS,EAAE,CAAC;YAC5B,KAAK,KAAK;gBACR,OAAO,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACnE,KAAK,QAAQ;gBACX,OAAO,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACtE,KAAK,MAAM;gBACT,OAAO,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC5C,KAAK,MAAM;gBACT,OAAO,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC5C,KAAK,MAAM;gBACT,OAAO,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC5C,KAAK,QAAQ;gBACX,OAAO,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC9C,KAAK,WAAW;gBACd,OAAO,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACjD;gBACE,MAAM,IAAI,cAAc,CACtB,kBAAkB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,6CAA6C,CAC9H,CAAC;QACN,CAAC;IACH,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,SAA0B,EAC1B,GAAW,EACX,MAAwB,EACxB,OAA2B,EAC3B,OAAuB;IAEvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,cAAc,CACtB,2EAA2E,SAAS,CAAC,EAAE,WAAW,CACnG,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAA4B,EAAE,MAAM,EAAE,CAAC;IAClD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC1B,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpC,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;IACD,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO;QACL,GAAG;QACH,SAAS,EAAE,MAAM;QACjB,KAAK;QACL,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAClD,cAAc,CAAC,OAAiB,EAAE,GAAG,GAAG,IAAI,OAAiB,IAAI,KAAK,EAAE,EAAE,OAAO,CAAC,CACnF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,SAA0B,EAC1B,GAAW,EACX,OAAuB;IAEvB,OAAO,cAAc,CACnB,SAAS,EACT,GAAG,EACH,SAAS,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EACvD,MAAM,EACN,OAAO,CACR,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,SAA0B,EAC1B,GAAW,EACX,OAAuB;IAEvB,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClF,MAAM,KAAK,GAA4B,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7E,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO;QACL,GAAG;QACH,SAAS,EAAE,MAAM;QACjB,KAAK;QACL,QAAQ,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,OAAO,IAAI,EAAE,OAAO,CAAC,CAAC;KACpE,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,SAA0B,EAC1B,GAAW,EACX,OAAuB;IAEvB,MAAM,KAAK,GAA4B;QACrC,QAAQ,EAAE,oBAAoB,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;KAC3F,CAAC;IACF,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IACpC,CAAC;IACD,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,WAAW,CAClB,SAA0B,EAC1B,GAAW,EACX,OAAuB;IAEvB,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,KAAK,EAAE,SAAS,KAAK,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,cAAc,CACtB,sBAAsB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,wBAAwB,CAC3E,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAA4B;QACrC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QAC/E,KAAK,EAAE,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;KAC9C,CAAC;IACF,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IACpC,CAAC;IACD,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC3C,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc,CACrB,SAA0B,EAC1B,GAAW,EACX,OAAuB;IAEvB,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,aAAa,GAAG,cAAc,SAAS,CAAC,EAAE,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,aAAa,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvF,MAAM,KAAK,GAA4B;QACrC,KAAK;QACL,WAAW,EACT,SAAS,CAAC,WAAW,KAAK,SAAS;YACjC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,aAAa,cAAc,EAAE,OAAO,CAAC;KAC3F,CAAC;IACF,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,KAAK,CAAC,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,aAAa,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvF,IAAI,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,OAAO,GAAG,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,aAAa,aAAa,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IACpC,CAAC;IACD,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC3C,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,uBAAuB,CAAC,SAA0B;IACzD,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,cAAc,CACtB,+EAA+E,SAAS,CAAC,EAAE,SAAS,CACrG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,SAA0B,EAC1B,OAAuB;IAEvB,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,cAAc,CACtB,sBAAsB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,0CAA0C,CAC7F,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,SAAS,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAC3F,MAAM,YAAY,GAAG,oBAAoB,CACvC,KAAK,CAAC,OAAO,EACb,cAAc,SAAS,CAAC,EAAE,uBAAuB,CAClD,CAAC;IACF,MAAM,eAAe,GAA8B,EAAE,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,kBAAkB,CAChB,eAAe,EACf,IAAI,EACJ,mBAAmB,CACjB,KAAK,EACL,cAAc,SAAS,CAAC,EAAE,yBAAyB,IAAI,EAAE,EACzD,OAAO,CACR,CACF,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GACf,KAAK,CAAC,WAAW,KAAK,SAAS;QAC7B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,oBAAoB,CAClB,KAAK,CAAC,WAAW,EACjB,cAAc,SAAS,CAAC,EAAE,2BAA2B,EACrD,OAAO,CACR,CAAC;IACR,OAAO;QACL,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS;QACpC,iBAAiB,EAAE,SAAS,CAAC,EAAE;QAC/B,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACrD,OAAO,EAAE,eAAe,CAAC,eAAe,EAAE,cAAc,SAAS,CAAC,EAAE,uBAAuB,CAAC;KAC7F,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,SAA0B,EAC1B,KAA8B,EAC9B,OAAuB;IAEvB,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnC,KAAK,CAAC,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,SAAS,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,MAAM,aAAa,GAAG,YAAY,CAChC,SAAS,CAAC,aAAa,EACvB,cAAc,SAAS,CAAC,EAAE,gBAAgB,CAC3C,CAAC;IACF,IAAI,aAAa,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACtC,KAAK,CAAC,kBAAkB,GAAG,oBAAoB,CAC7C,aAAa,CAAC,KAAK,EACnB,cAAc,SAAS,CAAC,EAAE,sBAAsB,EAChD,OAAO,CACR,CAAC;IACJ,CAAC;IACD,IAAI,aAAa,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5C,KAAK,CAAC,iBAAiB,GAAG,oBAAoB,CAC5C,aAAa,CAAC,WAAW,EACzB,cAAc,SAAS,CAAC,EAAE,4BAA4B,EACtD,OAAO,CACR,CAAC;IACJ,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACrC,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC;IAC/C,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,KAAK,CAAC,mBAAmB,GAAG,qBAAqB,CAC/C,aAAa,CAAC,MAAM,EACpB,cAAc,SAAS,CAAC,EAAE,uBAAuB,EACjD,OAAO,CACR,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA4B,EAC5B,IAAY,EACZ,OAAuB;IAEvB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,OAAO,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAA4B,EAC5B,IAAY,EACZ,OAAuB;IAEvB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,cAAc,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAA4B,EAC5B,IAAY,EACZ,OAAuB;IAEvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,cAAc,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,cAAc,CACtB,iDAAiD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CACzF,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;QAClE,OAAO,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAoB,EAAE,OAAe,EAAE,IAAY;IAC7E,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,MAAM,GAAc,QAAQ,CAAC;IACjC,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,cAAc,CACtB,kCAAkC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CACvE,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC3D,MAAM,IAAI,cAAc,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;YACxB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,cAAc,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,GAAI,MAAoC,CAAC,KAAK,CAAE,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAgB,EAAE,IAAY;IAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,cAAc,CACtB,uDAAuD,IAAI,uCAAuC,CACnG,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,OAAe;IACxD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACvC,MAAM,IAAI,cAAc,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,SAAS,CAAC,KAAgB;IACjC,OAAO,CACL,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAgB;IACtC,OAAO,CACL,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAA4B,EAAE,IAAY;IAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,cAAc,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAmB,CAAC;AAC7B,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA4B,EAAE,IAAY;IACtE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,YAAY,CAAC,KAA4B,EAAE,IAAY;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,cAAc,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAgB,EAAE,IAAY;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,cAAc,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAiC,EACjC,GAAW,EACX,KAAgB;IAEhB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;QACjC,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,KAAK;QACL,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-native/react-native",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "React Native renderer primitives for MCP Native.",
5
5
  "keywords": [
6
6
  "a2ui",
@@ -37,8 +37,8 @@
37
37
  "access": "public"
38
38
  },
39
39
  "dependencies": {
40
- "@mcp-native/a2ui": "^0.1.0",
41
- "@mcp-native/core": "^0.1.0"
40
+ "@mcp-native/a2ui": "^0.2.0",
41
+ "@mcp-native/core": "^0.2.0"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/react": "19.1.17",