@assistant-ui/react 0.7.89 → 0.7.90

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.
@@ -14,5 +14,9 @@ ModelContext as AssistantConfig,
14
14
  */
15
15
  ModelContextProvider as AssistantConfigProvider, ModelContext, ModelContextProvider, Tool, } from "./ModelContextTypes";
16
16
  export { tool } from "./tool";
17
- export { makeAssistantReadable } from "./makeAssistantReadable";
17
+ /**
18
+ * @deprecated This function was renamed to `makeAssistantVisible`.
19
+ */
20
+ export { makeAssistantVisible as makeAssistantReadable } from "./makeAssistantVisible";
21
+ export { makeAssistantVisible } from "./makeAssistantVisible";
18
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model-context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,KAAK,eAAe,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,YAAY;AACV;;GAEG;AACH,YAAY,IAAI,eAAe;AAC/B;;GAEG;AACH,oBAAoB,IAAI,uBAAuB,EAC/C,YAAY,EACZ,oBAAoB,EACpB,IAAI,GACL,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model-context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,KAAK,eAAe,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,YAAY;AACV;;GAEG;AACH,YAAY,IAAI,eAAe;AAC/B;;GAEG;AACH,oBAAoB,IAAI,uBAAuB,EAC/C,YAAY,EACZ,oBAAoB,EACpB,IAAI,GACL,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;GAEG;AACH,OAAO,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -20,9 +20,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/model-context/index.ts
21
21
  var model_context_exports = {};
22
22
  __export(model_context_exports, {
23
- makeAssistantReadable: () => import_makeAssistantReadable.makeAssistantReadable,
23
+ makeAssistantReadable: () => import_makeAssistantVisible.makeAssistantVisible,
24
24
  makeAssistantTool: () => import_makeAssistantTool.makeAssistantTool,
25
25
  makeAssistantToolUI: () => import_makeAssistantToolUI.makeAssistantToolUI,
26
+ makeAssistantVisible: () => import_makeAssistantVisible2.makeAssistantVisible,
26
27
  tool: () => import_tool.tool,
27
28
  useAssistantInstructions: () => import_useAssistantInstructions.useAssistantInstructions,
28
29
  useAssistantTool: () => import_useAssistantTool.useAssistantTool,
@@ -37,12 +38,14 @@ var import_useAssistantTool = require("./useAssistantTool.js");
37
38
  var import_useAssistantToolUI = require("./useAssistantToolUI.js");
38
39
  var import_useInlineRender = require("./useInlineRender.js");
39
40
  var import_tool = require("./tool.js");
40
- var import_makeAssistantReadable = require("./makeAssistantReadable.js");
41
+ var import_makeAssistantVisible = require("./makeAssistantVisible.js");
42
+ var import_makeAssistantVisible2 = require("./makeAssistantVisible.js");
41
43
  // Annotate the CommonJS export names for ESM import in node:
42
44
  0 && (module.exports = {
43
45
  makeAssistantReadable,
44
46
  makeAssistantTool,
45
47
  makeAssistantToolUI,
48
+ makeAssistantVisible,
46
49
  tool,
47
50
  useAssistantInstructions,
48
51
  useAssistantTool,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model-context/index.ts"],"sourcesContent":["export { makeAssistantTool, type AssistantTool } from \"./makeAssistantTool\";\nexport {\n type AssistantToolUI,\n makeAssistantToolUI,\n} from \"./makeAssistantToolUI\";\nexport { useAssistantInstructions } from \"./useAssistantInstructions\";\nexport { useAssistantTool, type AssistantToolProps } from \"./useAssistantTool\";\nexport {\n useAssistantToolUI,\n type AssistantToolUIProps,\n} from \"./useAssistantToolUI\";\nexport { useInlineRender } from \"./useInlineRender\";\n\nexport type {\n /**\n * @deprecated This type was renamed to `ModelContext`.\n */\n ModelContext as AssistantConfig,\n /**\n * @deprecated This type was renamed to `ModelContextProvider`.\n */\n ModelContextProvider as AssistantConfigProvider,\n ModelContext,\n ModelContextProvider,\n Tool,\n} from \"./ModelContextTypes\";\n\nexport { tool } from \"./tool\";\nexport { makeAssistantReadable } from \"./makeAssistantReadable\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAsD;AACtD,iCAGO;AACP,sCAAyC;AACzC,8BAA0D;AAC1D,gCAGO;AACP,6BAAgC;AAgBhC,kBAAqB;AACrB,mCAAsC;","names":[]}
1
+ {"version":3,"sources":["../../src/model-context/index.ts"],"sourcesContent":["export { makeAssistantTool, type AssistantTool } from \"./makeAssistantTool\";\nexport {\n type AssistantToolUI,\n makeAssistantToolUI,\n} from \"./makeAssistantToolUI\";\nexport { useAssistantInstructions } from \"./useAssistantInstructions\";\nexport { useAssistantTool, type AssistantToolProps } from \"./useAssistantTool\";\nexport {\n useAssistantToolUI,\n type AssistantToolUIProps,\n} from \"./useAssistantToolUI\";\nexport { useInlineRender } from \"./useInlineRender\";\n\nexport type {\n /**\n * @deprecated This type was renamed to `ModelContext`.\n */\n ModelContext as AssistantConfig,\n /**\n * @deprecated This type was renamed to `ModelContextProvider`.\n */\n ModelContextProvider as AssistantConfigProvider,\n ModelContext,\n ModelContextProvider,\n Tool,\n} from \"./ModelContextTypes\";\n\nexport { tool } from \"./tool\";\n\n/**\n * @deprecated This function was renamed to `makeAssistantVisible`.\n */\nexport { makeAssistantVisible as makeAssistantReadable } from \"./makeAssistantVisible\";\nexport { makeAssistantVisible } from \"./makeAssistantVisible\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAsD;AACtD,iCAGO;AACP,sCAAyC;AACzC,8BAA0D;AAC1D,gCAGO;AACP,6BAAgC;AAgBhC,kBAAqB;AAKrB,kCAA8D;AAC9D,IAAAA,+BAAqC;","names":["import_makeAssistantVisible"]}
@@ -10,11 +10,13 @@ import {
10
10
  } from "./useAssistantToolUI.mjs";
11
11
  import { useInlineRender } from "./useInlineRender.mjs";
12
12
  import { tool } from "./tool.mjs";
13
- import { makeAssistantReadable } from "./makeAssistantReadable.mjs";
13
+ import { makeAssistantVisible } from "./makeAssistantVisible.mjs";
14
+ import { makeAssistantVisible as makeAssistantVisible2 } from "./makeAssistantVisible.mjs";
14
15
  export {
15
- makeAssistantReadable,
16
+ makeAssistantVisible as makeAssistantReadable,
16
17
  makeAssistantTool,
17
18
  makeAssistantToolUI,
19
+ makeAssistantVisible2 as makeAssistantVisible,
18
20
  tool,
19
21
  useAssistantInstructions,
20
22
  useAssistantTool,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model-context/index.ts"],"sourcesContent":["export { makeAssistantTool, type AssistantTool } from \"./makeAssistantTool\";\nexport {\n type AssistantToolUI,\n makeAssistantToolUI,\n} from \"./makeAssistantToolUI\";\nexport { useAssistantInstructions } from \"./useAssistantInstructions\";\nexport { useAssistantTool, type AssistantToolProps } from \"./useAssistantTool\";\nexport {\n useAssistantToolUI,\n type AssistantToolUIProps,\n} from \"./useAssistantToolUI\";\nexport { useInlineRender } from \"./useInlineRender\";\n\nexport type {\n /**\n * @deprecated This type was renamed to `ModelContext`.\n */\n ModelContext as AssistantConfig,\n /**\n * @deprecated This type was renamed to `ModelContextProvider`.\n */\n ModelContextProvider as AssistantConfigProvider,\n ModelContext,\n ModelContextProvider,\n Tool,\n} from \"./ModelContextTypes\";\n\nexport { tool } from \"./tool\";\nexport { makeAssistantReadable } from \"./makeAssistantReadable\";\n"],"mappings":";AAAA,SAAS,yBAA6C;AACtD;AAAA,EAEE;AAAA,OACK;AACP,SAAS,gCAAgC;AACzC,SAAS,wBAAiD;AAC1D;AAAA,EACE;AAAA,OAEK;AACP,SAAS,uBAAuB;AAgBhC,SAAS,YAAY;AACrB,SAAS,6BAA6B;","names":[]}
1
+ {"version":3,"sources":["../../src/model-context/index.ts"],"sourcesContent":["export { makeAssistantTool, type AssistantTool } from \"./makeAssistantTool\";\nexport {\n type AssistantToolUI,\n makeAssistantToolUI,\n} from \"./makeAssistantToolUI\";\nexport { useAssistantInstructions } from \"./useAssistantInstructions\";\nexport { useAssistantTool, type AssistantToolProps } from \"./useAssistantTool\";\nexport {\n useAssistantToolUI,\n type AssistantToolUIProps,\n} from \"./useAssistantToolUI\";\nexport { useInlineRender } from \"./useInlineRender\";\n\nexport type {\n /**\n * @deprecated This type was renamed to `ModelContext`.\n */\n ModelContext as AssistantConfig,\n /**\n * @deprecated This type was renamed to `ModelContextProvider`.\n */\n ModelContextProvider as AssistantConfigProvider,\n ModelContext,\n ModelContextProvider,\n Tool,\n} from \"./ModelContextTypes\";\n\nexport { tool } from \"./tool\";\n\n/**\n * @deprecated This function was renamed to `makeAssistantVisible`.\n */\nexport { makeAssistantVisible as makeAssistantReadable } from \"./makeAssistantVisible\";\nexport { makeAssistantVisible } from \"./makeAssistantVisible\";\n"],"mappings":";AAAA,SAAS,yBAA6C;AACtD;AAAA,EAEE;AAAA,OACK;AACP,SAAS,gCAAgC;AACzC,SAAS,wBAAiD;AAC1D;AAAA,EACE;AAAA,OAEK;AACP,SAAS,uBAAuB;AAgBhC,SAAS,YAAY;AAKrB,SAAiC,4BAA6B;AAC9D,SAAS,wBAAAA,6BAA4B;","names":["makeAssistantVisible"]}
@@ -0,0 +1,7 @@
1
+ import { ComponentType } from "react";
2
+ export declare const makeAssistantVisible: <T extends ComponentType<any>>(Component: T, config?: {
3
+ clickable?: boolean | undefined;
4
+ editable?: boolean | undefined;
5
+ }) => T;
6
+ export default makeAssistantVisible;
7
+ //# sourceMappingURL=makeAssistantVisible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeAssistantVisible.d.ts","sourceRoot":"","sources":["../../src/model-context/makeAssistantVisible.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,aAAa,EAMd,MAAM,OAAO,CAAC;AA6Cf,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,aACpD,CAAC,WACH;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,KAuCrC,CACxC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -18,13 +18,13 @@ var __copyProps = (to, from, except, desc) => {
18
18
  };
19
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
20
 
21
- // src/model-context/makeAssistantReadable.tsx
22
- var makeAssistantReadable_exports = {};
23
- __export(makeAssistantReadable_exports, {
24
- default: () => makeAssistantReadable_default,
25
- makeAssistantReadable: () => makeAssistantReadable
21
+ // src/model-context/makeAssistantVisible.tsx
22
+ var makeAssistantVisible_exports = {};
23
+ __export(makeAssistantVisible_exports, {
24
+ default: () => makeAssistantVisible_default,
25
+ makeAssistantVisible: () => makeAssistantVisible
26
26
  });
27
- module.exports = __toCommonJS(makeAssistantReadable_exports);
27
+ module.exports = __toCommonJS(makeAssistantVisible_exports);
28
28
  var import_react = require("react");
29
29
  var import_zod = require("zod");
30
30
  var import_context = require("../context/index.js");
@@ -47,11 +47,28 @@ var click = (0, import_tool.tool)({
47
47
  }
48
48
  }
49
49
  });
50
+ var edit = (0, import_tool.tool)({
51
+ parameters: import_zod.z.object({
52
+ editId: import_zod.z.string(),
53
+ value: import_zod.z.string()
54
+ }),
55
+ execute: async ({ editId, value }) => {
56
+ const escapedEditId = CSS.escape(editId);
57
+ const el = document.querySelector(`[data-edit-id='${escapedEditId}']`);
58
+ if (el instanceof HTMLInputElement) {
59
+ el.value = value;
60
+ await new Promise((resolve) => setTimeout(resolve, 2e3));
61
+ return {};
62
+ } else {
63
+ return "Element not found";
64
+ }
65
+ }
66
+ });
50
67
  var ReadableContext = (0, import_react.createContext)(false);
51
- var makeAssistantReadable = (Component, config) => {
68
+ var makeAssistantVisible = (Component, config) => {
52
69
  const ReadableComponent = (0, import_react.forwardRef)(
53
70
  (props, outerRef) => {
54
- const isInReadable = (0, import_react.useContext)(ReadableContext);
71
+ const isNestedReadable = (0, import_react.useContext)(ReadableContext);
55
72
  const clickId = (0, import_react.useId)();
56
73
  const componentRef = (0, import_react.useRef)(null);
57
74
  const assistant = (0, import_context.useAssistantRuntime)();
@@ -60,17 +77,19 @@ var makeAssistantReadable = (Component, config) => {
60
77
  getModelContext: () => {
61
78
  return {
62
79
  ...config?.clickable ? { tools: { click } } : {},
63
- system: !isInReadable ? componentRef.current?.outerHTML : void 0
80
+ ...config?.editable ? { tools: { edit } } : {},
81
+ system: !isNestedReadable ? componentRef.current?.outerHTML : void 0
64
82
  };
65
83
  }
66
84
  });
67
- }, [config?.clickable, isInReadable]);
85
+ }, [config?.clickable, config?.editable, isNestedReadable]);
68
86
  const ref = (0, import_react_compose_refs.useComposedRefs)(componentRef, outerRef);
69
87
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ReadableContext.Provider, { value: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
70
88
  Component,
71
89
  {
72
90
  ...props,
73
91
  ...config?.clickable ? { "data-click-id": clickId } : {},
92
+ ...config?.editable ? { "data-edit-id": clickId } : {},
74
93
  ref
75
94
  }
76
95
  ) });
@@ -78,9 +97,9 @@ var makeAssistantReadable = (Component, config) => {
78
97
  );
79
98
  return ReadableComponent;
80
99
  };
81
- var makeAssistantReadable_default = makeAssistantReadable;
100
+ var makeAssistantVisible_default = makeAssistantVisible;
82
101
  // Annotate the CommonJS export names for ESM import in node:
83
102
  0 && (module.exports = {
84
- makeAssistantReadable
103
+ makeAssistantVisible
85
104
  });
86
- //# sourceMappingURL=makeAssistantReadable.js.map
105
+ //# sourceMappingURL=makeAssistantVisible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/model-context/makeAssistantVisible.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n useEffect,\n useRef,\n forwardRef,\n ComponentType,\n ForwardedRef,\n PropsWithoutRef,\n useId,\n createContext,\n useContext,\n} from \"react\";\nimport { z } from \"zod\";\nimport { useAssistantRuntime } from \"../context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { tool } from \"./tool\";\n\nconst click = tool({\n parameters: z.object({\n clickId: z.string(),\n }),\n execute: async ({ clickId }) => {\n const escapedClickId = CSS.escape(clickId);\n const el = document.querySelector(`[data-click-id='${escapedClickId}']`);\n if (el instanceof HTMLElement) {\n el.click();\n // todo make adjustable\n await new Promise((resolve) => setTimeout(resolve, 2000));\n return {};\n } else {\n return \"Element not found\";\n }\n },\n});\n\nconst edit = tool({\n parameters: z.object({\n editId: z.string(),\n value: z.string(),\n }),\n execute: async ({ editId, value }) => {\n const escapedEditId = CSS.escape(editId);\n const el = document.querySelector(`[data-edit-id='${escapedEditId}']`);\n if (el instanceof HTMLInputElement) {\n el.value = value;\n // todo make adjustable\n await new Promise((resolve) => setTimeout(resolve, 2000));\n return {};\n } else {\n return \"Element not found\";\n }\n },\n});\n\nconst ReadableContext = createContext<boolean>(false);\n\nexport const makeAssistantVisible = <T extends ComponentType<any>>(\n Component: T,\n config?: { clickable?: boolean | undefined; editable?: boolean | undefined },\n) => {\n const ReadableComponent = forwardRef(\n (props: PropsWithoutRef<T>, outerRef: ForwardedRef<any>) => {\n const isNestedReadable = useContext(ReadableContext);\n\n const clickId = useId();\n const componentRef = useRef<HTMLElement>(null);\n\n const assistant = useAssistantRuntime();\n useEffect(() => {\n return assistant.registerModelContextProvider({\n getModelContext: () => {\n return {\n ...(config?.clickable ? { tools: { click } } : {}),\n ...(config?.editable ? { tools: { edit } } : {}),\n system: !isNestedReadable // only pass content if this readable isn't nested in another readable\n ? componentRef.current?.outerHTML\n : undefined,\n };\n },\n });\n }, [config?.clickable, config?.editable, isNestedReadable]);\n\n const ref = useComposedRefs(componentRef, outerRef);\n\n return (\n <ReadableContext.Provider value={true}>\n <Component\n {...(props as any)}\n {...(config?.clickable ? { \"data-click-id\": clickId } : {})}\n {...(config?.editable ? { \"data-edit-id\": clickId } : {})}\n ref={ref}\n />\n </ReadableContext.Provider>\n );\n },\n );\n\n return ReadableComponent as unknown as T;\n};\n\nexport default makeAssistantVisible;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAUO;AACP,iBAAkB;AAClB,qBAAoC;AACpC,gCAAgC;AAChC,kBAAqB;AAuEX;AArEV,IAAM,YAAQ,kBAAK;AAAA,EACjB,YAAY,aAAE,OAAO;AAAA,IACnB,SAAS,aAAE,OAAO;AAAA,EACpB,CAAC;AAAA,EACD,SAAS,OAAO,EAAE,QAAQ,MAAM;AAC9B,UAAM,iBAAiB,IAAI,OAAO,OAAO;AACzC,UAAM,KAAK,SAAS,cAAc,mBAAmB,cAAc,IAAI;AACvE,QAAI,cAAc,aAAa;AAC7B,SAAG,MAAM;AAET,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAI,CAAC;AACxD,aAAO,CAAC;AAAA,IACV,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAED,IAAM,WAAO,kBAAK;AAAA,EAChB,YAAY,aAAE,OAAO;AAAA,IACnB,QAAQ,aAAE,OAAO;AAAA,IACjB,OAAO,aAAE,OAAO;AAAA,EAClB,CAAC;AAAA,EACD,SAAS,OAAO,EAAE,QAAQ,MAAM,MAAM;AACpC,UAAM,gBAAgB,IAAI,OAAO,MAAM;AACvC,UAAM,KAAK,SAAS,cAAc,kBAAkB,aAAa,IAAI;AACrE,QAAI,cAAc,kBAAkB;AAClC,SAAG,QAAQ;AAEX,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAI,CAAC;AACxD,aAAO,CAAC;AAAA,IACV,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAED,IAAM,sBAAkB,4BAAuB,KAAK;AAE7C,IAAM,uBAAuB,CAClC,WACA,WACG;AACH,QAAM,wBAAoB;AAAA,IACxB,CAAC,OAA2B,aAAgC;AAC1D,YAAM,uBAAmB,yBAAW,eAAe;AAEnD,YAAM,cAAU,oBAAM;AACtB,YAAM,mBAAe,qBAAoB,IAAI;AAE7C,YAAM,gBAAY,oCAAoB;AACtC,kCAAU,MAAM;AACd,eAAO,UAAU,6BAA6B;AAAA,UAC5C,iBAAiB,MAAM;AACrB,mBAAO;AAAA,cACL,GAAI,QAAQ,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC;AAAA,cAChD,GAAI,QAAQ,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,cAC9C,QAAQ,CAAC,mBACL,aAAa,SAAS,YACtB;AAAA,YACN;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH,GAAG,CAAC,QAAQ,WAAW,QAAQ,UAAU,gBAAgB,CAAC;AAE1D,YAAM,UAAM,2CAAgB,cAAc,QAAQ;AAElD,aACE,4CAAC,gBAAgB,UAAhB,EAAyB,OAAO,MAC/B;AAAA,QAAC;AAAA;AAAA,UACE,GAAI;AAAA,UACJ,GAAI,QAAQ,YAAY,EAAE,iBAAiB,QAAQ,IAAI,CAAC;AAAA,UACxD,GAAI,QAAQ,WAAW,EAAE,gBAAgB,QAAQ,IAAI,CAAC;AAAA,UACvD;AAAA;AAAA,MACF,GACF;AAAA,IAEJ;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAO,+BAAQ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- // src/model-context/makeAssistantReadable.tsx
3
+ // src/model-context/makeAssistantVisible.tsx
4
4
  import {
5
5
  useEffect,
6
6
  useRef,
@@ -30,11 +30,28 @@ var click = tool({
30
30
  }
31
31
  }
32
32
  });
33
+ var edit = tool({
34
+ parameters: z.object({
35
+ editId: z.string(),
36
+ value: z.string()
37
+ }),
38
+ execute: async ({ editId, value }) => {
39
+ const escapedEditId = CSS.escape(editId);
40
+ const el = document.querySelector(`[data-edit-id='${escapedEditId}']`);
41
+ if (el instanceof HTMLInputElement) {
42
+ el.value = value;
43
+ await new Promise((resolve) => setTimeout(resolve, 2e3));
44
+ return {};
45
+ } else {
46
+ return "Element not found";
47
+ }
48
+ }
49
+ });
33
50
  var ReadableContext = createContext(false);
34
- var makeAssistantReadable = (Component, config) => {
51
+ var makeAssistantVisible = (Component, config) => {
35
52
  const ReadableComponent = forwardRef(
36
53
  (props, outerRef) => {
37
- const isInReadable = useContext(ReadableContext);
54
+ const isNestedReadable = useContext(ReadableContext);
38
55
  const clickId = useId();
39
56
  const componentRef = useRef(null);
40
57
  const assistant = useAssistantRuntime();
@@ -43,17 +60,19 @@ var makeAssistantReadable = (Component, config) => {
43
60
  getModelContext: () => {
44
61
  return {
45
62
  ...config?.clickable ? { tools: { click } } : {},
46
- system: !isInReadable ? componentRef.current?.outerHTML : void 0
63
+ ...config?.editable ? { tools: { edit } } : {},
64
+ system: !isNestedReadable ? componentRef.current?.outerHTML : void 0
47
65
  };
48
66
  }
49
67
  });
50
- }, [config?.clickable, isInReadable]);
68
+ }, [config?.clickable, config?.editable, isNestedReadable]);
51
69
  const ref = useComposedRefs(componentRef, outerRef);
52
70
  return /* @__PURE__ */ jsx(ReadableContext.Provider, { value: true, children: /* @__PURE__ */ jsx(
53
71
  Component,
54
72
  {
55
73
  ...props,
56
74
  ...config?.clickable ? { "data-click-id": clickId } : {},
75
+ ...config?.editable ? { "data-edit-id": clickId } : {},
57
76
  ref
58
77
  }
59
78
  ) });
@@ -61,9 +80,9 @@ var makeAssistantReadable = (Component, config) => {
61
80
  );
62
81
  return ReadableComponent;
63
82
  };
64
- var makeAssistantReadable_default = makeAssistantReadable;
83
+ var makeAssistantVisible_default = makeAssistantVisible;
65
84
  export {
66
- makeAssistantReadable_default as default,
67
- makeAssistantReadable
85
+ makeAssistantVisible_default as default,
86
+ makeAssistantVisible
68
87
  };
69
- //# sourceMappingURL=makeAssistantReadable.mjs.map
88
+ //# sourceMappingURL=makeAssistantVisible.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/model-context/makeAssistantVisible.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n useEffect,\n useRef,\n forwardRef,\n ComponentType,\n ForwardedRef,\n PropsWithoutRef,\n useId,\n createContext,\n useContext,\n} from \"react\";\nimport { z } from \"zod\";\nimport { useAssistantRuntime } from \"../context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { tool } from \"./tool\";\n\nconst click = tool({\n parameters: z.object({\n clickId: z.string(),\n }),\n execute: async ({ clickId }) => {\n const escapedClickId = CSS.escape(clickId);\n const el = document.querySelector(`[data-click-id='${escapedClickId}']`);\n if (el instanceof HTMLElement) {\n el.click();\n // todo make adjustable\n await new Promise((resolve) => setTimeout(resolve, 2000));\n return {};\n } else {\n return \"Element not found\";\n }\n },\n});\n\nconst edit = tool({\n parameters: z.object({\n editId: z.string(),\n value: z.string(),\n }),\n execute: async ({ editId, value }) => {\n const escapedEditId = CSS.escape(editId);\n const el = document.querySelector(`[data-edit-id='${escapedEditId}']`);\n if (el instanceof HTMLInputElement) {\n el.value = value;\n // todo make adjustable\n await new Promise((resolve) => setTimeout(resolve, 2000));\n return {};\n } else {\n return \"Element not found\";\n }\n },\n});\n\nconst ReadableContext = createContext<boolean>(false);\n\nexport const makeAssistantVisible = <T extends ComponentType<any>>(\n Component: T,\n config?: { clickable?: boolean | undefined; editable?: boolean | undefined },\n) => {\n const ReadableComponent = forwardRef(\n (props: PropsWithoutRef<T>, outerRef: ForwardedRef<any>) => {\n const isNestedReadable = useContext(ReadableContext);\n\n const clickId = useId();\n const componentRef = useRef<HTMLElement>(null);\n\n const assistant = useAssistantRuntime();\n useEffect(() => {\n return assistant.registerModelContextProvider({\n getModelContext: () => {\n return {\n ...(config?.clickable ? { tools: { click } } : {}),\n ...(config?.editable ? { tools: { edit } } : {}),\n system: !isNestedReadable // only pass content if this readable isn't nested in another readable\n ? componentRef.current?.outerHTML\n : undefined,\n };\n },\n });\n }, [config?.clickable, config?.editable, isNestedReadable]);\n\n const ref = useComposedRefs(componentRef, outerRef);\n\n return (\n <ReadableContext.Provider value={true}>\n <Component\n {...(props as any)}\n {...(config?.clickable ? { \"data-click-id\": clickId } : {})}\n {...(config?.editable ? { \"data-edit-id\": clickId } : {})}\n ref={ref}\n />\n </ReadableContext.Provider>\n );\n },\n );\n\n return ReadableComponent as unknown as T;\n};\n\nexport default makeAssistantVisible;\n"],"mappings":";;;AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,SAAS;AAClB,SAAS,2BAA2B;AACpC,SAAS,uBAAuB;AAChC,SAAS,YAAY;AAuEX;AArEV,IAAM,QAAQ,KAAK;AAAA,EACjB,YAAY,EAAE,OAAO;AAAA,IACnB,SAAS,EAAE,OAAO;AAAA,EACpB,CAAC;AAAA,EACD,SAAS,OAAO,EAAE,QAAQ,MAAM;AAC9B,UAAM,iBAAiB,IAAI,OAAO,OAAO;AACzC,UAAM,KAAK,SAAS,cAAc,mBAAmB,cAAc,IAAI;AACvE,QAAI,cAAc,aAAa;AAC7B,SAAG,MAAM;AAET,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAI,CAAC;AACxD,aAAO,CAAC;AAAA,IACV,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAED,IAAM,OAAO,KAAK;AAAA,EAChB,YAAY,EAAE,OAAO;AAAA,IACnB,QAAQ,EAAE,OAAO;AAAA,IACjB,OAAO,EAAE,OAAO;AAAA,EAClB,CAAC;AAAA,EACD,SAAS,OAAO,EAAE,QAAQ,MAAM,MAAM;AACpC,UAAM,gBAAgB,IAAI,OAAO,MAAM;AACvC,UAAM,KAAK,SAAS,cAAc,kBAAkB,aAAa,IAAI;AACrE,QAAI,cAAc,kBAAkB;AAClC,SAAG,QAAQ;AAEX,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAI,CAAC;AACxD,aAAO,CAAC;AAAA,IACV,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAED,IAAM,kBAAkB,cAAuB,KAAK;AAE7C,IAAM,uBAAuB,CAClC,WACA,WACG;AACH,QAAM,oBAAoB;AAAA,IACxB,CAAC,OAA2B,aAAgC;AAC1D,YAAM,mBAAmB,WAAW,eAAe;AAEnD,YAAM,UAAU,MAAM;AACtB,YAAM,eAAe,OAAoB,IAAI;AAE7C,YAAM,YAAY,oBAAoB;AACtC,gBAAU,MAAM;AACd,eAAO,UAAU,6BAA6B;AAAA,UAC5C,iBAAiB,MAAM;AACrB,mBAAO;AAAA,cACL,GAAI,QAAQ,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC;AAAA,cAChD,GAAI,QAAQ,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,cAC9C,QAAQ,CAAC,mBACL,aAAa,SAAS,YACtB;AAAA,YACN;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH,GAAG,CAAC,QAAQ,WAAW,QAAQ,UAAU,gBAAgB,CAAC;AAE1D,YAAM,MAAM,gBAAgB,cAAc,QAAQ;AAElD,aACE,oBAAC,gBAAgB,UAAhB,EAAyB,OAAO,MAC/B;AAAA,QAAC;AAAA;AAAA,UACE,GAAI;AAAA,UACJ,GAAI,QAAQ,YAAY,EAAE,iBAAiB,QAAQ,IAAI,CAAC;AAAA,UACxD,GAAI,QAAQ,WAAW,EAAE,gBAAgB,QAAQ,IAAI,CAAC;AAAA,UACvD;AAAA;AAAA,MACF,GACF;AAAA,IAEJ;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAO,+BAAQ;","names":[]}
package/package.json CHANGED
@@ -29,7 +29,7 @@
29
29
  "conversational-ui",
30
30
  "conversational-ai"
31
31
  ],
32
- "version": "0.7.89",
32
+ "version": "0.7.90",
33
33
  "license": "MIT",
34
34
  "exports": {
35
35
  ".": {
@@ -113,9 +113,9 @@
113
113
  "tailwindcss": "^3.4.17",
114
114
  "tailwindcss-animate": "^1.0.7",
115
115
  "tsx": "^4.19.2",
116
+ "@assistant-ui/tailwindcss-transformer": "0.1.0",
116
117
  "@assistant-ui/tsbuildutils": "^0.0.1",
117
- "@assistant-ui/tsconfig": "0.0.0",
118
- "@assistant-ui/tailwindcss-transformer": "0.1.0"
118
+ "@assistant-ui/tsconfig": "0.0.0"
119
119
  },
120
120
  "publishConfig": {
121
121
  "access": "public",
@@ -26,4 +26,9 @@ export type {
26
26
  } from "./ModelContextTypes";
27
27
 
28
28
  export { tool } from "./tool";
29
- export { makeAssistantReadable } from "./makeAssistantReadable";
29
+
30
+ /**
31
+ * @deprecated This function was renamed to `makeAssistantVisible`.
32
+ */
33
+ export { makeAssistantVisible as makeAssistantReadable } from "./makeAssistantVisible";
34
+ export { makeAssistantVisible } from "./makeAssistantVisible";
@@ -34,15 +34,34 @@ const click = tool({
34
34
  },
35
35
  });
36
36
 
37
+ const edit = tool({
38
+ parameters: z.object({
39
+ editId: z.string(),
40
+ value: z.string(),
41
+ }),
42
+ execute: async ({ editId, value }) => {
43
+ const escapedEditId = CSS.escape(editId);
44
+ const el = document.querySelector(`[data-edit-id='${escapedEditId}']`);
45
+ if (el instanceof HTMLInputElement) {
46
+ el.value = value;
47
+ // todo make adjustable
48
+ await new Promise((resolve) => setTimeout(resolve, 2000));
49
+ return {};
50
+ } else {
51
+ return "Element not found";
52
+ }
53
+ },
54
+ });
55
+
37
56
  const ReadableContext = createContext<boolean>(false);
38
57
 
39
- export const makeAssistantReadable = <T extends ComponentType<any>>(
58
+ export const makeAssistantVisible = <T extends ComponentType<any>>(
40
59
  Component: T,
41
- config?: { clickable?: boolean | undefined },
60
+ config?: { clickable?: boolean | undefined; editable?: boolean | undefined },
42
61
  ) => {
43
62
  const ReadableComponent = forwardRef(
44
63
  (props: PropsWithoutRef<T>, outerRef: ForwardedRef<any>) => {
45
- const isInReadable = useContext(ReadableContext);
64
+ const isNestedReadable = useContext(ReadableContext);
46
65
 
47
66
  const clickId = useId();
48
67
  const componentRef = useRef<HTMLElement>(null);
@@ -53,13 +72,14 @@ export const makeAssistantReadable = <T extends ComponentType<any>>(
53
72
  getModelContext: () => {
54
73
  return {
55
74
  ...(config?.clickable ? { tools: { click } } : {}),
56
- system: !isInReadable // only pass content if this readable isn't nested in another readable
75
+ ...(config?.editable ? { tools: { edit } } : {}),
76
+ system: !isNestedReadable // only pass content if this readable isn't nested in another readable
57
77
  ? componentRef.current?.outerHTML
58
78
  : undefined,
59
79
  };
60
80
  },
61
81
  });
62
- }, [config?.clickable, isInReadable]);
82
+ }, [config?.clickable, config?.editable, isNestedReadable]);
63
83
 
64
84
  const ref = useComposedRefs(componentRef, outerRef);
65
85
 
@@ -68,6 +88,7 @@ export const makeAssistantReadable = <T extends ComponentType<any>>(
68
88
  <Component
69
89
  {...(props as any)}
70
90
  {...(config?.clickable ? { "data-click-id": clickId } : {})}
91
+ {...(config?.editable ? { "data-edit-id": clickId } : {})}
71
92
  ref={ref}
72
93
  />
73
94
  </ReadableContext.Provider>
@@ -78,4 +99,4 @@ export const makeAssistantReadable = <T extends ComponentType<any>>(
78
99
  return ReadableComponent as unknown as T;
79
100
  };
80
101
 
81
- export default makeAssistantReadable;
102
+ export default makeAssistantVisible;
@@ -1,6 +0,0 @@
1
- import { ComponentType } from "react";
2
- export declare const makeAssistantReadable: <T extends ComponentType<any>>(Component: T, config?: {
3
- clickable?: boolean | undefined;
4
- }) => T;
5
- export default makeAssistantReadable;
6
- //# sourceMappingURL=makeAssistantReadable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"makeAssistantReadable.d.ts","sourceRoot":"","sources":["../../src/model-context/makeAssistantReadable.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,aAAa,EAMd,MAAM,OAAO,CAAC;AA0Bf,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,aACrD,CAAC,WACH;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,KAqCL,CACxC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/model-context/makeAssistantReadable.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n useEffect,\n useRef,\n forwardRef,\n ComponentType,\n ForwardedRef,\n PropsWithoutRef,\n useId,\n createContext,\n useContext,\n} from \"react\";\nimport { z } from \"zod\";\nimport { useAssistantRuntime } from \"../context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { tool } from \"./tool\";\n\nconst click = tool({\n parameters: z.object({\n clickId: z.string(),\n }),\n execute: async ({ clickId }) => {\n const escapedClickId = CSS.escape(clickId);\n const el = document.querySelector(`[data-click-id='${escapedClickId}']`);\n if (el instanceof HTMLElement) {\n el.click();\n // todo make adjustable\n await new Promise((resolve) => setTimeout(resolve, 2000));\n return {};\n } else {\n return \"Element not found\";\n }\n },\n});\n\nconst ReadableContext = createContext<boolean>(false);\n\nexport const makeAssistantReadable = <T extends ComponentType<any>>(\n Component: T,\n config?: { clickable?: boolean | undefined },\n) => {\n const ReadableComponent = forwardRef(\n (props: PropsWithoutRef<T>, outerRef: ForwardedRef<any>) => {\n const isInReadable = useContext(ReadableContext);\n\n const clickId = useId();\n const componentRef = useRef<HTMLElement>(null);\n\n const assistant = useAssistantRuntime();\n useEffect(() => {\n return assistant.registerModelContextProvider({\n getModelContext: () => {\n return {\n ...(config?.clickable ? { tools: { click } } : {}),\n system: !isInReadable // only pass content if this readable isn't nested in another readable\n ? componentRef.current?.outerHTML\n : undefined,\n };\n },\n });\n }, [config?.clickable, isInReadable]);\n\n const ref = useComposedRefs(componentRef, outerRef);\n\n return (\n <ReadableContext.Provider value={true}>\n <Component\n {...(props as any)}\n {...(config?.clickable ? { \"data-click-id\": clickId } : {})}\n ref={ref}\n />\n </ReadableContext.Provider>\n );\n },\n );\n\n return ReadableComponent as unknown as T;\n};\n\nexport default makeAssistantReadable;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAUO;AACP,iBAAkB;AAClB,qBAAoC;AACpC,gCAAgC;AAChC,kBAAqB;AAmDX;AAjDV,IAAM,YAAQ,kBAAK;AAAA,EACjB,YAAY,aAAE,OAAO;AAAA,IACnB,SAAS,aAAE,OAAO;AAAA,EACpB,CAAC;AAAA,EACD,SAAS,OAAO,EAAE,QAAQ,MAAM;AAC9B,UAAM,iBAAiB,IAAI,OAAO,OAAO;AACzC,UAAM,KAAK,SAAS,cAAc,mBAAmB,cAAc,IAAI;AACvE,QAAI,cAAc,aAAa;AAC7B,SAAG,MAAM;AAET,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAI,CAAC;AACxD,aAAO,CAAC;AAAA,IACV,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAED,IAAM,sBAAkB,4BAAuB,KAAK;AAE7C,IAAM,wBAAwB,CACnC,WACA,WACG;AACH,QAAM,wBAAoB;AAAA,IACxB,CAAC,OAA2B,aAAgC;AAC1D,YAAM,mBAAe,yBAAW,eAAe;AAE/C,YAAM,cAAU,oBAAM;AACtB,YAAM,mBAAe,qBAAoB,IAAI;AAE7C,YAAM,gBAAY,oCAAoB;AACtC,kCAAU,MAAM;AACd,eAAO,UAAU,6BAA6B;AAAA,UAC5C,iBAAiB,MAAM;AACrB,mBAAO;AAAA,cACL,GAAI,QAAQ,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC;AAAA,cAChD,QAAQ,CAAC,eACL,aAAa,SAAS,YACtB;AAAA,YACN;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH,GAAG,CAAC,QAAQ,WAAW,YAAY,CAAC;AAEpC,YAAM,UAAM,2CAAgB,cAAc,QAAQ;AAElD,aACE,4CAAC,gBAAgB,UAAhB,EAAyB,OAAO,MAC/B;AAAA,QAAC;AAAA;AAAA,UACE,GAAI;AAAA,UACJ,GAAI,QAAQ,YAAY,EAAE,iBAAiB,QAAQ,IAAI,CAAC;AAAA,UACzD;AAAA;AAAA,MACF,GACF;AAAA,IAEJ;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAO,gCAAQ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/model-context/makeAssistantReadable.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n useEffect,\n useRef,\n forwardRef,\n ComponentType,\n ForwardedRef,\n PropsWithoutRef,\n useId,\n createContext,\n useContext,\n} from \"react\";\nimport { z } from \"zod\";\nimport { useAssistantRuntime } from \"../context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { tool } from \"./tool\";\n\nconst click = tool({\n parameters: z.object({\n clickId: z.string(),\n }),\n execute: async ({ clickId }) => {\n const escapedClickId = CSS.escape(clickId);\n const el = document.querySelector(`[data-click-id='${escapedClickId}']`);\n if (el instanceof HTMLElement) {\n el.click();\n // todo make adjustable\n await new Promise((resolve) => setTimeout(resolve, 2000));\n return {};\n } else {\n return \"Element not found\";\n }\n },\n});\n\nconst ReadableContext = createContext<boolean>(false);\n\nexport const makeAssistantReadable = <T extends ComponentType<any>>(\n Component: T,\n config?: { clickable?: boolean | undefined },\n) => {\n const ReadableComponent = forwardRef(\n (props: PropsWithoutRef<T>, outerRef: ForwardedRef<any>) => {\n const isInReadable = useContext(ReadableContext);\n\n const clickId = useId();\n const componentRef = useRef<HTMLElement>(null);\n\n const assistant = useAssistantRuntime();\n useEffect(() => {\n return assistant.registerModelContextProvider({\n getModelContext: () => {\n return {\n ...(config?.clickable ? { tools: { click } } : {}),\n system: !isInReadable // only pass content if this readable isn't nested in another readable\n ? componentRef.current?.outerHTML\n : undefined,\n };\n },\n });\n }, [config?.clickable, isInReadable]);\n\n const ref = useComposedRefs(componentRef, outerRef);\n\n return (\n <ReadableContext.Provider value={true}>\n <Component\n {...(props as any)}\n {...(config?.clickable ? { \"data-click-id\": clickId } : {})}\n ref={ref}\n />\n </ReadableContext.Provider>\n );\n },\n );\n\n return ReadableComponent as unknown as T;\n};\n\nexport default makeAssistantReadable;\n"],"mappings":";;;AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,SAAS;AAClB,SAAS,2BAA2B;AACpC,SAAS,uBAAuB;AAChC,SAAS,YAAY;AAmDX;AAjDV,IAAM,QAAQ,KAAK;AAAA,EACjB,YAAY,EAAE,OAAO;AAAA,IACnB,SAAS,EAAE,OAAO;AAAA,EACpB,CAAC;AAAA,EACD,SAAS,OAAO,EAAE,QAAQ,MAAM;AAC9B,UAAM,iBAAiB,IAAI,OAAO,OAAO;AACzC,UAAM,KAAK,SAAS,cAAc,mBAAmB,cAAc,IAAI;AACvE,QAAI,cAAc,aAAa;AAC7B,SAAG,MAAM;AAET,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAI,CAAC;AACxD,aAAO,CAAC;AAAA,IACV,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAED,IAAM,kBAAkB,cAAuB,KAAK;AAE7C,IAAM,wBAAwB,CACnC,WACA,WACG;AACH,QAAM,oBAAoB;AAAA,IACxB,CAAC,OAA2B,aAAgC;AAC1D,YAAM,eAAe,WAAW,eAAe;AAE/C,YAAM,UAAU,MAAM;AACtB,YAAM,eAAe,OAAoB,IAAI;AAE7C,YAAM,YAAY,oBAAoB;AACtC,gBAAU,MAAM;AACd,eAAO,UAAU,6BAA6B;AAAA,UAC5C,iBAAiB,MAAM;AACrB,mBAAO;AAAA,cACL,GAAI,QAAQ,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC;AAAA,cAChD,QAAQ,CAAC,eACL,aAAa,SAAS,YACtB;AAAA,YACN;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH,GAAG,CAAC,QAAQ,WAAW,YAAY,CAAC;AAEpC,YAAM,MAAM,gBAAgB,cAAc,QAAQ;AAElD,aACE,oBAAC,gBAAgB,UAAhB,EAAyB,OAAO,MAC/B;AAAA,QAAC;AAAA;AAAA,UACE,GAAI;AAAA,UACJ,GAAI,QAAQ,YAAY,EAAE,iBAAiB,QAAQ,IAAI,CAAC;AAAA,UACzD;AAAA;AAAA,MACF,GACF;AAAA,IAEJ;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAO,gCAAQ;","names":[]}