@assistant-ui/react 0.7.11 → 0.7.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.d.ts +1 -1
  2. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  3. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.js.map +1 -1
  4. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.mjs.map +1 -1
  5. package/dist/primitives/actionBar/ActionBarCopy.d.ts +1 -3
  6. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  7. package/dist/primitives/actionBar/ActionBarEdit.d.ts +1 -3
  8. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
  9. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +1 -3
  10. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
  11. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +1 -3
  12. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -1
  13. package/dist/primitives/actionBar/ActionBarReload.d.ts +1 -3
  14. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  15. package/dist/primitives/actionBar/ActionBarRoot.d.ts +1 -3
  16. package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -1
  17. package/dist/primitives/actionBar/ActionBarSpeak.d.ts +1 -3
  18. package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -1
  19. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +1 -3
  20. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
  21. package/dist/primitives/assistantModal/scope.d.ts +2 -6
  22. package/dist/primitives/assistantModal/scope.d.ts.map +1 -1
  23. package/dist/primitives/attachment/AttachmentRemove.d.ts +1 -3
  24. package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -1
  25. package/dist/primitives/attachment/AttachmentRoot.d.ts +1 -3
  26. package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -1
  27. package/dist/primitives/attachment/AttachmentThumb.d.ts +1 -3
  28. package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -1
  29. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +1 -3
  30. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  31. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +1 -3
  32. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  33. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +1 -3
  34. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -1
  35. package/dist/primitives/composer/ComposerAddAttachment.d.ts +1 -3
  36. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  37. package/dist/primitives/composer/ComposerCancel.d.ts +1 -3
  38. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
  39. package/dist/primitives/composer/ComposerInput.js +2 -2
  40. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  41. package/dist/primitives/composer/ComposerInput.mjs +2 -2
  42. package/dist/primitives/composer/ComposerInput.mjs.map +1 -1
  43. package/dist/primitives/composer/ComposerRoot.d.ts +1 -3
  44. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -1
  45. package/dist/primitives/composer/ComposerSend.d.ts +1 -3
  46. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  47. package/dist/primitives/contentPart/ContentPartImage.d.ts +1 -3
  48. package/dist/primitives/contentPart/ContentPartImage.d.ts.map +1 -1
  49. package/dist/primitives/contentPart/ContentPartText.d.ts +1 -3
  50. package/dist/primitives/contentPart/ContentPartText.d.ts.map +1 -1
  51. package/dist/primitives/message/MessageRoot.d.ts +1 -3
  52. package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
  53. package/dist/primitives/thread/ThreadRoot.d.ts +1 -3
  54. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  55. package/dist/primitives/thread/ThreadScrollToBottom.d.ts +1 -3
  56. package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -1
  57. package/dist/primitives/thread/ThreadSuggestion.d.ts +1 -3
  58. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  59. package/dist/primitives/thread/ThreadViewport.d.ts +1 -3
  60. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
  61. package/dist/primitives/threadList/ThreadListNew.d.ts +1 -3
  62. package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
  63. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +1 -3
  64. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -1
  65. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +1 -3
  66. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -1
  67. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +1 -3
  68. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -1
  69. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +1 -3
  70. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -1
  71. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +1 -3
  72. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -1
  73. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts +2 -0
  74. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts.map +1 -1
  75. package/dist/runtimes/core/BaseThreadRuntimeCore.js +8 -0
  76. package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
  77. package/dist/runtimes/core/BaseThreadRuntimeCore.mjs +8 -0
  78. package/dist/runtimes/core/BaseThreadRuntimeCore.mjs.map +1 -1
  79. package/dist/runtimes/edge/streams/assistantDecoderStream.d.ts.map +1 -1
  80. package/dist/runtimes/edge/streams/assistantDecoderStream.js +16 -9
  81. package/dist/runtimes/edge/streams/assistantDecoderStream.js.map +1 -1
  82. package/dist/runtimes/edge/streams/assistantDecoderStream.mjs +16 -9
  83. package/dist/runtimes/edge/streams/assistantDecoderStream.mjs.map +1 -1
  84. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
  85. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +3 -1
  86. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  87. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs +3 -1
  88. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs.map +1 -1
  89. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +0 -2
  90. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  91. package/dist/runtimes/local/LocalThreadRuntimeCore.js +2 -9
  92. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  93. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +2 -9
  94. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
  95. package/dist/styles/index.css.map +1 -1
  96. package/dist/ui/assistant-action-bar.d.ts +1 -3
  97. package/dist/ui/assistant-action-bar.d.ts.map +1 -1
  98. package/dist/ui/assistant-message.d.ts +1 -3
  99. package/dist/ui/assistant-message.d.ts.map +1 -1
  100. package/dist/ui/attachment-ui.d.ts +1 -3
  101. package/dist/ui/attachment-ui.d.ts.map +1 -1
  102. package/dist/ui/base/button.d.ts +1 -3
  103. package/dist/ui/base/button.d.ts.map +1 -1
  104. package/dist/ui/base/tooltip-icon-button.d.ts +1 -3
  105. package/dist/ui/base/tooltip-icon-button.d.ts.map +1 -1
  106. package/dist/ui/branch-picker.d.ts +1 -3
  107. package/dist/ui/branch-picker.d.ts.map +1 -1
  108. package/dist/ui/composer.d.ts +1 -3
  109. package/dist/ui/composer.d.ts.map +1 -1
  110. package/dist/ui/edit-composer.d.ts +1 -3
  111. package/dist/ui/edit-composer.d.ts.map +1 -1
  112. package/dist/ui/thread-list-item.d.ts +1 -3
  113. package/dist/ui/thread-list-item.d.ts.map +1 -1
  114. package/dist/ui/thread-list.d.ts +1 -3
  115. package/dist/ui/thread-list.d.ts.map +1 -1
  116. package/dist/ui/thread.d.ts +2 -6
  117. package/dist/ui/thread.d.ts.map +1 -1
  118. package/dist/ui/user-action-bar.d.ts +1 -3
  119. package/dist/ui/user-action-bar.d.ts.map +1 -1
  120. package/dist/ui/user-message.d.ts +1 -3
  121. package/dist/ui/user-message.d.ts.map +1 -1
  122. package/dist/utils/createActionButton.d.ts +1 -3
  123. package/dist/utils/createActionButton.d.ts.map +1 -1
  124. package/dist/utils/hooks/useManagedRef.js +1 -1
  125. package/dist/utils/hooks/useManagedRef.js.map +1 -1
  126. package/dist/utils/hooks/useManagedRef.mjs +1 -1
  127. package/dist/utils/hooks/useManagedRef.mjs.map +1 -1
  128. package/package.json +22 -22
  129. package/src/primitive-hooks/thread/useThreadViewportAutoScroll.tsx +1 -1
  130. package/src/primitives/composer/ComposerInput.tsx +2 -2
  131. package/src/runtimes/core/BaseThreadRuntimeCore.tsx +10 -0
  132. package/src/runtimes/edge/streams/assistantDecoderStream.ts +18 -9
  133. package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +4 -1
  134. package/src/runtimes/local/LocalThreadRuntimeCore.tsx +2 -11
  135. package/src/utils/hooks/useManagedRef.ts +1 -1
  136. package/edge/package-lock.json +0 -6
@@ -1,7 +1,7 @@
1
1
  // src/utils/hooks/useManagedRef.ts
2
2
  import { useCallback, useRef } from "react";
3
3
  var useManagedRef = (callback) => {
4
- const cleanupRef = useRef();
4
+ const cleanupRef = useRef(void 0);
5
5
  const ref = useCallback(
6
6
  (el) => {
7
7
  if (cleanupRef.current) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/hooks/useManagedRef.ts"],"sourcesContent":["import { useCallback, useRef } from \"react\";\n\nexport const useManagedRef = <TNode>(\n callback: (node: TNode) => (() => void) | void,\n) => {\n const cleanupRef = useRef<(() => void) | void>();\n\n const ref = useCallback(\n (el: TNode | null) => {\n // Call the previous cleanup function\n if (cleanupRef.current) {\n cleanupRef.current();\n }\n\n // Call the new callback and store its cleanup function\n if (el) {\n cleanupRef.current = callback(el);\n }\n },\n [callback],\n );\n\n return ref;\n};\n"],"mappings":";AAAA,SAAS,aAAa,cAAc;AAE7B,IAAM,gBAAgB,CAC3B,aACG;AACH,QAAM,aAAa,OAA4B;AAE/C,QAAM,MAAM;AAAA,IACV,CAAC,OAAqB;AAEpB,UAAI,WAAW,SAAS;AACtB,mBAAW,QAAQ;AAAA,MACrB;AAGA,UAAI,IAAI;AACN,mBAAW,UAAU,SAAS,EAAE;AAAA,MAClC;AAAA,IACF;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/utils/hooks/useManagedRef.ts"],"sourcesContent":["import { useCallback, useRef } from \"react\";\n\nexport const useManagedRef = <TNode>(\n callback: (node: TNode) => (() => void) | void,\n) => {\n const cleanupRef = useRef<(() => void) | void>(undefined);\n\n const ref = useCallback(\n (el: TNode | null) => {\n // Call the previous cleanup function\n if (cleanupRef.current) {\n cleanupRef.current();\n }\n\n // Call the new callback and store its cleanup function\n if (el) {\n cleanupRef.current = callback(el);\n }\n },\n [callback],\n );\n\n return ref;\n};\n"],"mappings":";AAAA,SAAS,aAAa,cAAc;AAE7B,IAAM,gBAAgB,CAC3B,aACG;AACH,QAAM,aAAa,OAA4B,MAAS;AAExD,QAAM,MAAM;AAAA,IACV,CAAC,OAAqB;AAEpB,UAAI,WAAW,SAAS;AACtB,mBAAW,QAAQ;AAAA,MACrB;AAGA,UAAI,IAAI;AACN,mBAAW,UAAU,SAAS,EAAE;AAAA,MAClC;AAAA,IACF;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,SAAO;AACT;","names":[]}
package/package.json CHANGED
@@ -29,7 +29,7 @@
29
29
  "conversational-ui",
30
30
  "conversational-ai"
31
31
  ],
32
- "version": "0.7.11",
32
+ "version": "0.7.14",
33
33
  "license": "MIT",
34
34
  "exports": {
35
35
  ".": {
@@ -65,28 +65,28 @@
65
65
  ],
66
66
  "sideEffects": false,
67
67
  "dependencies": {
68
- "@ai-sdk/provider": "^1.0.1",
69
- "@radix-ui/primitive": "^1.1.0",
70
- "@radix-ui/react-avatar": "^1.1.1",
71
- "@radix-ui/react-compose-refs": "^1.1.0",
68
+ "@ai-sdk/provider": "^1.0.2",
69
+ "@radix-ui/primitive": "^1.1.1",
70
+ "@radix-ui/react-avatar": "^1.1.2",
71
+ "@radix-ui/react-compose-refs": "^1.1.1",
72
72
  "@radix-ui/react-context": "^1.1.1",
73
- "@radix-ui/react-dialog": "^1.1.2",
74
- "@radix-ui/react-popover": "^1.1.2",
75
- "@radix-ui/react-primitive": "^2.0.0",
76
- "@radix-ui/react-slot": "^1.1.0",
77
- "@radix-ui/react-tooltip": "^1.1.4",
73
+ "@radix-ui/react-dialog": "^1.1.3",
74
+ "@radix-ui/react-popover": "^1.1.3",
75
+ "@radix-ui/react-primitive": "^2.0.1",
76
+ "@radix-ui/react-slot": "^1.1.1",
77
+ "@radix-ui/react-tooltip": "^1.1.5",
78
78
  "@radix-ui/react-use-callback-ref": "^1.1.0",
79
79
  "@radix-ui/react-use-escape-keydown": "^1.1.0",
80
- "class-variance-authority": "^0.7.0",
80
+ "class-variance-authority": "^0.7.1",
81
81
  "classnames": "^2.5.1",
82
82
  "json-schema": "^0.4.0",
83
- "lucide-react": "^0.460.0",
84
- "nanoid": "^5.0.8",
85
- "react-textarea-autosize": "^8.5.5",
83
+ "lucide-react": "^0.468.0",
84
+ "nanoid": "^5.0.9",
85
+ "react-textarea-autosize": "^8.5.6",
86
86
  "secure-json-parse": "^3.0.1",
87
- "zod": "^3.23.8",
88
- "zod-to-json-schema": "^3.23.5",
89
- "zustand": "^5.0.1"
87
+ "zod": "^3.24.1",
88
+ "zod-to-json-schema": "^3.24.1",
89
+ "zustand": "^5.0.2"
90
90
  },
91
91
  "peerDependencies": {
92
92
  "@types/react": "*",
@@ -108,20 +108,20 @@
108
108
  },
109
109
  "devDependencies": {
110
110
  "@types/json-schema": "^7.0.15",
111
- "@types/node": "^22.9.3",
111
+ "@types/node": "^22.10.2",
112
112
  "autoprefixer": "^10.4.20",
113
- "esbuild-plugin-file-path-extensions": "^2.1.3",
113
+ "esbuild-plugin-file-path-extensions": "^2.1.4",
114
114
  "eslint": "^9",
115
- "eslint-config-next": "15.0.3",
115
+ "eslint-config-next": "15.1.0",
116
116
  "postcss": "^8.4.49",
117
117
  "postcss-js": "^4.0.1",
118
118
  "postcss-nested": "^7.0.2",
119
- "tailwindcss": "^3.4.15",
119
+ "tailwindcss": "^3.4.16",
120
120
  "tailwindcss-animate": "^1.0.7",
121
121
  "tsup": "8.3.5",
122
122
  "tsx": "^4.19.2",
123
- "@assistant-ui/tailwindcss-transformer": "0.1.0",
124
123
  "@assistant-ui/tsbuildutils": "^0.0.0",
124
+ "@assistant-ui/tailwindcss-transformer": "0.1.0",
125
125
  "@assistant-ui/tsconfig": "0.0.0"
126
126
  },
127
127
  "publishConfig": {
@@ -18,7 +18,7 @@ export type UseThreadViewportAutoScrollProps = {
18
18
  export const useThreadViewportAutoScroll = <TElement extends HTMLElement>({
19
19
  autoScroll = true,
20
20
  unstable_scrollToBottomOnRunStart = true,
21
- }: UseThreadViewportAutoScrollProps) => {
21
+ }: UseThreadViewportAutoScrollProps): React.RefCallback<TElement> => {
22
22
  const divRef = useRef<TElement>(null);
23
23
 
24
24
  const threadViewportStore = useThreadViewportStore();
@@ -102,8 +102,8 @@ export const ComposerPrimitiveInput = forwardRef<
102
102
 
103
103
  textarea.focus({ preventScroll: true });
104
104
  textarea.setSelectionRange(
105
- textareaRef.current.value.length,
106
- textareaRef.current.value.length,
105
+ textarea.value.length,
106
+ textarea.value.length,
107
107
  );
108
108
  }, [autoFocusEnabled]);
109
109
 
@@ -32,6 +32,7 @@ type BaseThreadAdapters = {
32
32
 
33
33
  export abstract class BaseThreadRuntimeCore implements ThreadRuntimeCore {
34
34
  private _subscriptions = new Set<() => void>();
35
+ private _isInitialized = false;
35
36
 
36
37
  protected readonly repository = new MessageRepository();
37
38
  public abstract get adapters(): BaseThreadAdapters | undefined;
@@ -161,11 +162,20 @@ export abstract class BaseThreadRuntimeCore implements ThreadRuntimeCore {
161
162
  this._notifySubscribers();
162
163
  }
163
164
 
165
+ protected ensureInitialized() {
166
+ if (!this._isInitialized) {
167
+ this._isInitialized = true;
168
+ this._notifyEventSubscribers("initialize");
169
+ }
170
+ }
171
+
164
172
  public export() {
165
173
  return this.repository.export();
166
174
  }
167
175
 
168
176
  public import(data: ExportedMessageRepository) {
177
+ this.ensureInitialized();
178
+
169
179
  this.repository.import(data);
170
180
  this._notifySubscribers();
171
181
  }
@@ -11,24 +11,30 @@ export function assistantDecoderStream() {
11
11
  | { id: string; name: string; argsText: string }
12
12
  | undefined;
13
13
 
14
+ const endCurrentToolCall = (
15
+ controller: TransformStreamDefaultController<ToolResultStreamPart>,
16
+ ) => {
17
+ if (!currentToolCall) return;
18
+ controller.enqueue({
19
+ type: "tool-call",
20
+ toolCallType: "function",
21
+ toolCallId: currentToolCall.id,
22
+ toolName: currentToolCall.name,
23
+ args: currentToolCall.argsText,
24
+ });
25
+ currentToolCall = undefined;
26
+ };
27
+
14
28
  return new TransformStream<
15
29
  StreamPart<AssistantStreamChunk>,
16
30
  ToolResultStreamPart
17
31
  >({
18
32
  transform({ type, value }, controller) {
19
33
  if (
20
- currentToolCall &&
21
34
  type !== AssistantStreamChunkType.ToolCallDelta &&
22
35
  type !== AssistantStreamChunkType.Error
23
36
  ) {
24
- controller.enqueue({
25
- type: "tool-call",
26
- toolCallType: "function",
27
- toolCallId: currentToolCall.id,
28
- toolName: currentToolCall.name,
29
- args: currentToolCall.argsText,
30
- });
31
- currentToolCall = undefined;
37
+ endCurrentToolCall(controller);
32
38
  }
33
39
 
34
40
  switch (type) {
@@ -135,5 +141,8 @@ export function assistantDecoderStream() {
135
141
  }
136
142
  }
137
143
  },
144
+ flush(controller) {
145
+ endCurrentToolCall(controller);
146
+ },
138
147
  });
139
148
  }
@@ -133,8 +133,9 @@ export class ExternalStoreThreadRuntimeCore
133
133
  )
134
134
  return cache;
135
135
 
136
+ const messageLike = store.convertMessage(m, idx);
136
137
  const newMessage = fromThreadMessageLike(
137
- store.convertMessage(m, idx),
138
+ messageLike,
138
139
  idx.toString(),
139
140
  autoStatus,
140
141
  );
@@ -142,6 +143,8 @@ export class ExternalStoreThreadRuntimeCore
142
143
  return newMessage;
143
144
  });
144
145
 
146
+ if (messages.length > 0) this.ensureInitialized();
147
+
145
148
  for (let i = 0; i < messages.length; i++) {
146
149
  const message = messages[i]!;
147
150
  const parent = messages[i - 1];
@@ -19,8 +19,6 @@ export class LocalThreadRuntimeCore
19
19
  extends BaseThreadRuntimeCore
20
20
  implements ThreadRuntimeCore
21
21
  {
22
- private _isInitialized = false;
23
-
24
22
  public readonly capabilities = {
25
23
  switchToBranch: true,
26
24
  edit: true,
@@ -83,15 +81,8 @@ export class LocalThreadRuntimeCore
83
81
  if (hasUpdates) this._notifySubscribers();
84
82
  }
85
83
 
86
- private _ensureInitialized() {
87
- if (!this._isInitialized) {
88
- this._isInitialized = true;
89
- this._notifyEventSubscribers("initialize");
90
- }
91
- }
92
-
93
84
  public async append(message: AppendMessage): Promise<void> {
94
- this._ensureInitialized();
85
+ this.ensureInitialized();
95
86
 
96
87
  const newMessage = fromCoreMessage(message, {
97
88
  attachments: message.attachments,
@@ -108,7 +99,7 @@ export class LocalThreadRuntimeCore
108
99
  }
109
100
 
110
101
  public async startRun(parentId: string | null): Promise<void> {
111
- this._ensureInitialized();
102
+ this.ensureInitialized();
112
103
 
113
104
  this.repository.resetHead(parentId);
114
105
 
@@ -3,7 +3,7 @@ import { useCallback, useRef } from "react";
3
3
  export const useManagedRef = <TNode>(
4
4
  callback: (node: TNode) => (() => void) | void,
5
5
  ) => {
6
- const cleanupRef = useRef<(() => void) | void>();
6
+ const cleanupRef = useRef<(() => void) | void>(undefined);
7
7
 
8
8
  const ref = useCallback(
9
9
  (el: TNode | null) => {
@@ -1,6 +0,0 @@
1
- {
2
- "name": "edge",
3
- "lockfileVersion": 3,
4
- "requires": true,
5
- "packages": {}
6
- }