@bian-womp/spark-workbench 0.3.88 → 0.3.89

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 (169) hide show
  1. package/lib/src/adapters/cli/index.d.ts +22 -0
  2. package/lib/src/adapters/cli/index.d.ts.map +1 -0
  3. package/lib/src/adapters/cli/index.js +50 -0
  4. package/lib/src/adapters/cli/index.js.map +1 -0
  5. package/lib/src/core/AbstractWorkbench.d.ts +40 -0
  6. package/lib/src/core/AbstractWorkbench.d.ts.map +1 -0
  7. package/lib/src/core/AbstractWorkbench.js +15 -0
  8. package/lib/src/core/AbstractWorkbench.js.map +1 -0
  9. package/lib/src/core/InMemoryWorkbench.d.ts +304 -0
  10. package/lib/src/core/InMemoryWorkbench.d.ts.map +1 -0
  11. package/lib/src/core/InMemoryWorkbench.js +1016 -0
  12. package/lib/src/core/InMemoryWorkbench.js.map +1 -0
  13. package/lib/src/core/contracts.d.ts +172 -0
  14. package/lib/src/core/contracts.d.ts.map +1 -0
  15. package/lib/src/core/contracts.js +2 -0
  16. package/lib/src/core/contracts.js.map +1 -0
  17. package/lib/src/core/ui-extensions.d.ts +85 -0
  18. package/lib/src/core/ui-extensions.d.ts.map +1 -0
  19. package/lib/src/core/ui-extensions.js +111 -0
  20. package/lib/src/core/ui-extensions.js.map +1 -0
  21. package/lib/src/examples/cli.d.ts +2 -0
  22. package/lib/src/examples/cli.d.ts.map +1 -0
  23. package/lib/src/examples/cli.js +244 -0
  24. package/lib/src/examples/cli.js.map +1 -0
  25. package/lib/src/examples/reactflow/App.d.ts +2 -0
  26. package/lib/src/examples/reactflow/App.d.ts.map +1 -0
  27. package/lib/src/examples/reactflow/App.js +20 -0
  28. package/lib/src/examples/reactflow/App.js.map +1 -0
  29. package/lib/src/index.d.ts +30 -0
  30. package/lib/src/index.d.ts.map +1 -0
  31. package/lib/src/index.js +30 -0
  32. package/lib/src/index.js.map +1 -0
  33. package/lib/src/misc/DebugEvents.d.ts +7 -0
  34. package/lib/src/misc/DebugEvents.d.ts.map +1 -0
  35. package/lib/src/misc/DebugEvents.js +51 -0
  36. package/lib/src/misc/DebugEvents.js.map +1 -0
  37. package/lib/src/misc/DefaultEdge.d.ts +5 -0
  38. package/lib/src/misc/DefaultEdge.d.ts.map +1 -0
  39. package/lib/src/misc/DefaultEdge.js +15 -0
  40. package/lib/src/misc/DefaultEdge.js.map +1 -0
  41. package/lib/src/misc/DefaultNode.d.ts +5 -0
  42. package/lib/src/misc/DefaultNode.d.ts.map +1 -0
  43. package/lib/src/misc/DefaultNode.js +25 -0
  44. package/lib/src/misc/DefaultNode.js.map +1 -0
  45. package/lib/src/misc/DefaultNodeContent.d.ts +4 -0
  46. package/lib/src/misc/DefaultNodeContent.d.ts.map +1 -0
  47. package/lib/src/misc/DefaultNodeContent.js +58 -0
  48. package/lib/src/misc/DefaultNodeContent.js.map +1 -0
  49. package/lib/src/misc/DefaultNodeHeader.d.ts +13 -0
  50. package/lib/src/misc/DefaultNodeHeader.d.ts.map +1 -0
  51. package/lib/src/misc/DefaultNodeHeader.js +78 -0
  52. package/lib/src/misc/DefaultNodeHeader.js.map +1 -0
  53. package/lib/src/misc/Inspector.d.ts +12 -0
  54. package/lib/src/misc/Inspector.d.ts.map +1 -0
  55. package/lib/src/misc/Inspector.js +253 -0
  56. package/lib/src/misc/Inspector.js.map +1 -0
  57. package/lib/src/misc/IssueBadge.d.ts +7 -0
  58. package/lib/src/misc/IssueBadge.d.ts.map +1 -0
  59. package/lib/src/misc/IssueBadge.js +7 -0
  60. package/lib/src/misc/IssueBadge.js.map +1 -0
  61. package/lib/src/misc/KeyboardShortcutToast.d.ts +16 -0
  62. package/lib/src/misc/KeyboardShortcutToast.d.ts.map +1 -0
  63. package/lib/src/misc/KeyboardShortcutToast.js +40 -0
  64. package/lib/src/misc/KeyboardShortcutToast.js.map +1 -0
  65. package/lib/src/misc/NodeHandles.d.ts +18 -0
  66. package/lib/src/misc/NodeHandles.d.ts.map +1 -0
  67. package/lib/src/misc/NodeHandles.js +67 -0
  68. package/lib/src/misc/NodeHandles.js.map +1 -0
  69. package/lib/src/misc/SelectionActiveSync.d.ts +10 -0
  70. package/lib/src/misc/SelectionActiveSync.d.ts.map +1 -0
  71. package/lib/src/misc/SelectionActiveSync.js +21 -0
  72. package/lib/src/misc/SelectionActiveSync.js.map +1 -0
  73. package/lib/src/misc/WorkbenchCanvas.d.ts +23 -0
  74. package/lib/src/misc/WorkbenchCanvas.d.ts.map +1 -0
  75. package/lib/src/misc/WorkbenchCanvas.js +669 -0
  76. package/lib/src/misc/WorkbenchCanvas.js.map +1 -0
  77. package/lib/src/misc/WorkbenchStudio.d.ts +43 -0
  78. package/lib/src/misc/WorkbenchStudio.d.ts.map +1 -0
  79. package/lib/src/misc/WorkbenchStudio.js +463 -0
  80. package/lib/src/misc/WorkbenchStudio.js.map +1 -0
  81. package/lib/src/misc/constants.d.ts +4 -0
  82. package/lib/src/misc/constants.d.ts.map +1 -0
  83. package/lib/src/misc/constants.js +5 -0
  84. package/lib/src/misc/constants.js.map +1 -0
  85. package/lib/src/misc/context/WorkbenchContext.d.ts +133 -0
  86. package/lib/src/misc/context/WorkbenchContext.d.ts.map +1 -0
  87. package/lib/src/misc/context/WorkbenchContext.js +9 -0
  88. package/lib/src/misc/context/WorkbenchContext.js.map +1 -0
  89. package/lib/src/misc/context/WorkbenchContext.provider.d.ts +12 -0
  90. package/lib/src/misc/context/WorkbenchContext.provider.d.ts.map +1 -0
  91. package/lib/src/misc/context/WorkbenchContext.provider.js +995 -0
  92. package/lib/src/misc/context/WorkbenchContext.provider.js.map +1 -0
  93. package/lib/src/misc/context-menu/ContextMenuButton.d.ts +8 -0
  94. package/lib/src/misc/context-menu/ContextMenuButton.d.ts.map +1 -0
  95. package/lib/src/misc/context-menu/ContextMenuButton.js +10 -0
  96. package/lib/src/misc/context-menu/ContextMenuButton.js.map +1 -0
  97. package/lib/src/misc/context-menu/ContextMenuHandlers.d.ts +85 -0
  98. package/lib/src/misc/context-menu/ContextMenuHandlers.d.ts.map +1 -0
  99. package/lib/src/misc/context-menu/ContextMenuHandlers.js +2 -0
  100. package/lib/src/misc/context-menu/ContextMenuHandlers.js.map +1 -0
  101. package/lib/src/misc/context-menu/ContextMenuHelpers.d.ts +45 -0
  102. package/lib/src/misc/context-menu/ContextMenuHelpers.d.ts.map +1 -0
  103. package/lib/src/misc/context-menu/ContextMenuHelpers.js +182 -0
  104. package/lib/src/misc/context-menu/ContextMenuHelpers.js.map +1 -0
  105. package/lib/src/misc/context-menu/DefaultContextMenu.d.ts +3 -0
  106. package/lib/src/misc/context-menu/DefaultContextMenu.d.ts.map +1 -0
  107. package/lib/src/misc/context-menu/DefaultContextMenu.js +111 -0
  108. package/lib/src/misc/context-menu/DefaultContextMenu.js.map +1 -0
  109. package/lib/src/misc/context-menu/NodeContextMenu.d.ts +3 -0
  110. package/lib/src/misc/context-menu/NodeContextMenu.d.ts.map +1 -0
  111. package/lib/src/misc/context-menu/NodeContextMenu.js +51 -0
  112. package/lib/src/misc/context-menu/NodeContextMenu.js.map +1 -0
  113. package/lib/src/misc/context-menu/SelectionContextMenu.d.ts +3 -0
  114. package/lib/src/misc/context-menu/SelectionContextMenu.d.ts.map +1 -0
  115. package/lib/src/misc/context-menu/SelectionContextMenu.js +47 -0
  116. package/lib/src/misc/context-menu/SelectionContextMenu.js.map +1 -0
  117. package/lib/src/misc/hooks.d.ts +18 -0
  118. package/lib/src/misc/hooks.d.ts.map +1 -0
  119. package/lib/src/misc/hooks.js +275 -0
  120. package/lib/src/misc/hooks.js.map +1 -0
  121. package/lib/src/misc/layout.d.ts +117 -0
  122. package/lib/src/misc/layout.d.ts.map +1 -0
  123. package/lib/src/misc/layout.js +205 -0
  124. package/lib/src/misc/layout.js.map +1 -0
  125. package/lib/src/misc/load.d.ts +5 -0
  126. package/lib/src/misc/load.d.ts.map +1 -0
  127. package/lib/src/misc/load.js +106 -0
  128. package/lib/src/misc/load.js.map +1 -0
  129. package/lib/src/misc/mapping.d.ts +128 -0
  130. package/lib/src/misc/mapping.d.ts.map +1 -0
  131. package/lib/src/misc/mapping.js +270 -0
  132. package/lib/src/misc/mapping.js.map +1 -0
  133. package/lib/src/misc/merge-utils.d.ts +12 -0
  134. package/lib/src/misc/merge-utils.d.ts.map +1 -0
  135. package/lib/src/misc/merge-utils.js +51 -0
  136. package/lib/src/misc/merge-utils.js.map +1 -0
  137. package/lib/src/misc/thumbnail-utils.d.ts +53 -0
  138. package/lib/src/misc/thumbnail-utils.d.ts.map +1 -0
  139. package/lib/src/misc/thumbnail-utils.js +629 -0
  140. package/lib/src/misc/thumbnail-utils.js.map +1 -0
  141. package/lib/src/misc/types.d.ts +18 -0
  142. package/lib/src/misc/types.d.ts.map +1 -0
  143. package/lib/src/misc/types.js +2 -0
  144. package/lib/src/misc/types.js.map +1 -0
  145. package/lib/src/misc/value.d.ts +16 -0
  146. package/lib/src/misc/value.d.ts.map +1 -0
  147. package/lib/src/misc/value.js +114 -0
  148. package/lib/src/misc/value.js.map +1 -0
  149. package/lib/src/misc/viewport-utils.d.ts +6 -0
  150. package/lib/src/misc/viewport-utils.d.ts.map +1 -0
  151. package/lib/src/misc/viewport-utils.js +18 -0
  152. package/lib/src/misc/viewport-utils.js.map +1 -0
  153. package/lib/src/runtime/AbstractGraphRunner.d.ts +61 -0
  154. package/lib/src/runtime/AbstractGraphRunner.d.ts.map +1 -0
  155. package/lib/src/runtime/AbstractGraphRunner.js +63 -0
  156. package/lib/src/runtime/AbstractGraphRunner.js.map +1 -0
  157. package/lib/src/runtime/IGraphRunner.d.ts +100 -0
  158. package/lib/src/runtime/IGraphRunner.d.ts.map +1 -0
  159. package/lib/src/runtime/IGraphRunner.js +2 -0
  160. package/lib/src/runtime/IGraphRunner.js.map +1 -0
  161. package/lib/src/runtime/LocalGraphRunner.d.ts +60 -0
  162. package/lib/src/runtime/LocalGraphRunner.d.ts.map +1 -0
  163. package/lib/src/runtime/LocalGraphRunner.js +294 -0
  164. package/lib/src/runtime/LocalGraphRunner.js.map +1 -0
  165. package/lib/src/runtime/RemoteGraphRunner.d.ts +109 -0
  166. package/lib/src/runtime/RemoteGraphRunner.d.ts.map +1 -0
  167. package/lib/src/runtime/RemoteGraphRunner.js +696 -0
  168. package/lib/src/runtime/RemoteGraphRunner.js.map +1 -0
  169. package/package.json +4 -4
@@ -0,0 +1,67 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { Handle, Position } from "@xyflow/react";
4
+ function NodeHandleItem({ kind, id, type, position, y, isConnectable, className, labelClassName, renderLabel, }) {
5
+ return (_jsxs(_Fragment, { children: [_jsx(Handle, { id: id, type: type, position: position, isConnectable: isConnectable, className: className, style: y !== undefined ? { top: y } : undefined }), renderLabel && (_jsx("div", { className: `${labelClassName} ${kind === "input" ? " left-2" : " right-2"}`, style: {
6
+ top: (y ?? 0) - 8,
7
+ ...(kind === "input" ? { right: "50%" } : { left: "50%", textAlign: "right" }),
8
+ whiteSpace: "nowrap",
9
+ overflow: "hidden",
10
+ textOverflow: "ellipsis",
11
+ }, children: renderLabel({ kind, id }) }))] }));
12
+ }
13
+ export function NodeHandles({ data, isConnectable, getClassName, renderLabel, labelClassName = "absolute text-[11px] text-gray-700 dark:text-gray-300 pointer-events-none", }) {
14
+ const layout = data.handleLayout ?? [];
15
+ const byId = React.useMemo(() => {
16
+ const m = new Map();
17
+ for (const h of layout) {
18
+ // Prefer namespaced key to disambiguate inputs/outputs that share id
19
+ m.set(`${h.type}:${h.id}`, {
20
+ position: h.position,
21
+ y: h.y,
22
+ type: h.type,
23
+ missing: h.missing,
24
+ });
25
+ // Back-compat: also store by id-only if not already set
26
+ if (!m.has(h.id))
27
+ m.set(h.id, {
28
+ position: h.position,
29
+ y: h.y,
30
+ type: h.type,
31
+ missing: h.missing,
32
+ });
33
+ }
34
+ return m;
35
+ }, [layout]);
36
+ const inputIds = React.useMemo(() => new Set((data.inputHandles ?? []).map((h) => h.id)), [data.inputHandles]);
37
+ const outputIds = React.useMemo(() => new Set((data.outputHandles ?? []).map((h) => h.id)), [data.outputHandles]);
38
+ const missingInputs = React.useMemo(() => (layout || []).filter((h) => h.type === "target" && (!inputIds.has(h.id) || h.missing)), [layout, inputIds]);
39
+ const missingOutputs = React.useMemo(() => (layout || []).filter((h) => h.type === "source" && (!outputIds.has(h.id) || h.missing)), [layout, outputIds]);
40
+ return (_jsxs(_Fragment, { children: [(data.inputHandles ?? []).map((h) => {
41
+ const placed = byId.get(`target:${h.id}`) ?? byId.get(h.id);
42
+ const position = placed?.position ?? Position.Left;
43
+ const y = placed?.y;
44
+ const cls = getClassName?.({ kind: "input", id: h.id, type: "target" }) ?? "";
45
+ return (_jsx(NodeHandleItem, { kind: "input", id: h.id, type: "target", position: position, y: y, isConnectable: isConnectable, className: cls, labelClassName: labelClassName, renderLabel: renderLabel }, h.id));
46
+ }), missingInputs.map((h) => {
47
+ const key = `missing-input:${h.id}`;
48
+ const position = h.position ?? Position.Left;
49
+ const y = h.y;
50
+ const cls = "!w-3 !h-3 !bg-amber-400 !border-amber-500 wb-nodrag wb-nowheel";
51
+ return (_jsx(NodeHandleItem, { kind: "input", id: h.id, type: "target", position: position, y: y, isConnectable: false, className: `${cls} wb-nodrag wb-nowheel`, labelClassName: labelClassName, renderLabel: renderLabel }, key));
52
+ }), (data.outputHandles ?? []).map((h) => {
53
+ const placed = byId.get(`source:${h.id}`) ?? byId.get(h.id);
54
+ const position = placed?.position ?? Position.Right;
55
+ const y = placed?.y;
56
+ const cls = getClassName?.({ kind: "output", id: h.id, type: "source" }) ?? "";
57
+ return (_jsx(NodeHandleItem, { kind: "output", id: h.id, type: "source", position: position, y: y, isConnectable: isConnectable, className: cls, labelClassName: labelClassName, renderLabel: renderLabel }, h.id));
58
+ }), missingOutputs.map((h) => {
59
+ const key = `missing-output:${h.id}`;
60
+ const position = h.position ?? Position.Right;
61
+ const y = h.y;
62
+ const cls = "!w-3 !h-3 !bg-amber-400 !border-amber-500 !rounded-none wb-nodrag wb-nowheel";
63
+ return (_jsx(NodeHandleItem, { kind: "output", id: h.id, type: "source", position: position, y: y, isConnectable: false, className: cls, labelClassName: labelClassName, renderLabel: renderLabel }, key));
64
+ })] }));
65
+ }
66
+ export default NodeHandles;
67
+ //# sourceMappingURL=NodeHandles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeHandles.js","sourceRoot":"","sources":["../../../src/misc/NodeHandles.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ type SelectionActiveSyncProps = {
3
+ selection: {
4
+ nodes: string[];
5
+ edges: string[];
6
+ };
7
+ };
8
+ declare const SelectionActiveSync: React.FC<SelectionActiveSyncProps>;
9
+ export default SelectionActiveSync;
10
+ //# sourceMappingURL=SelectionActiveSync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionActiveSync.d.ts","sourceRoot":"","sources":["../../../src/misc/SelectionActiveSync.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,KAAK,wBAAwB,GAAG;IAC9B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACjD,CAAC;AAMF,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAgB3D,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { useStore, useStoreApi } from "@xyflow/react";
2
+ import { useEffect } from "react";
3
+ const selectionActiveSelector = (state) => state.nodesSelectionActive;
4
+ const selectionDragActiveSelector = (state) => state.userSelectionActive;
5
+ const SelectionActiveSync = ({ selection }) => {
6
+ const store = useStoreApi();
7
+ const currentActive = useStore(selectionActiveSelector);
8
+ const draggingSelection = useStore(selectionDragActiveSelector);
9
+ const active = selection.nodes.length > 1;
10
+ useEffect(() => {
11
+ if (draggingSelection)
12
+ return;
13
+ if (currentActive !== active) {
14
+ console.log("[SelectionActiveSync] setting active selection to", active);
15
+ store.setState({ nodesSelectionActive: active });
16
+ }
17
+ }, [active, currentActive, draggingSelection, store]);
18
+ return null;
19
+ };
20
+ export default SelectionActiveSync;
21
+ //# sourceMappingURL=SelectionActiveSync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionActiveSync.js","sourceRoot":"","sources":["../../../src/misc/SelectionActiveSync.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtE,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMzC,MAAM,uBAAuB,GAAG,CAAC,KAAqB,EAAE,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC;AAEtF,MAAM,2BAA2B,GAAG,CAAC,KAAqB,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC;AAEzF,MAAM,mBAAmB,GAAuC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;IAChF,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,iBAAiB;YAAE,OAAO;QAE9B,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,mDAAmD,EAAE,MAAM,CAAC,CAAC;YACzE,KAAK,CAAC,QAAQ,CAAC,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;IAEtD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import { ReactFlowInstance, Node, Edge, type ReactFlowProps } from "@xyflow/react";
3
+ import type { Viewport } from "@bian-womp/spark-protocol";
4
+ export type WorkbenchCanvasHandle = {
5
+ fitView: () => void;
6
+ setViewport: (viewport: Viewport) => void;
7
+ };
8
+ export interface WorkbenchCanvasProps {
9
+ showValues?: boolean;
10
+ toString: (typeId?: string, value?: unknown) => string;
11
+ toElement: (typeId?: string, value?: unknown) => JSX.Element;
12
+ getDefaultNodeSize?: (typeId: string) => {
13
+ width: number;
14
+ height: number;
15
+ } | undefined;
16
+ reactFlowProps?: Partial<Omit<ReactFlowProps<Node, Edge>, "nodes" | "edges" | "nodeTypes" | "edgeTypes" | "connectionLineComponent" | "onInit" | "onConnect" | "onEdgesChange" | "onEdgesDelete" | "onNodesDelete" | "onNodesChange" | "onMoveEnd">> & {
17
+ onInit?: (instance: ReactFlowInstance<Node, Edge>) => void;
18
+ };
19
+ children?: React.ReactNode;
20
+ }
21
+ export declare const WorkbenchCanvasComponent: React.ForwardRefExoticComponent<WorkbenchCanvasProps & React.RefAttributes<WorkbenchCanvasHandle>>;
22
+ export declare const WorkbenchCanvas: React.ForwardRefExoticComponent<WorkbenchCanvasProps & React.RefAttributes<WorkbenchCanvasHandle>>;
23
+ //# sourceMappingURL=WorkbenchCanvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkbenchCanvas.d.ts","sourceRoot":"","sources":["../../../src/misc/WorkbenchCanvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiF,MAAM,OAAO,CAAC;AACtG,OAAO,EAOL,iBAAiB,EACjB,IAAI,EACJ,IAAI,EACJ,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAoB1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IACvD,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7D,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACvF,cAAc,CAAC,EAAE,OAAO,CACtB,IAAI,CACF,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EACxB,OAAO,GACP,OAAO,GACP,WAAW,GACX,WAAW,GACX,yBAAyB,GACzB,QAAQ,GACR,WAAW,GACX,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,GACf,WAAW,CACd,CACF,GAAG;QACF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;KAC5D,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,wBAAwB,oGA63BnC,CAAC;AAEH,eAAO,MAAM,eAAe,oGAA2B,CAAC"}