@athenaintel/react 0.3.0 → 0.4.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/dist/index.cjs +413 -89
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +84 -1
- package/dist/index.js +414 -90
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -16435,16 +16435,37 @@ function useParentAuth() {
|
|
|
16435
16435
|
const [authToken, setAuthToken] = React.useState(null);
|
|
16436
16436
|
const readySignalSent = React.useRef(false);
|
|
16437
16437
|
React.useEffect(() => {
|
|
16438
|
+
const isInIframe = window.parent !== window;
|
|
16439
|
+
console.log("[AthenaAuth] useParentAuth mounted", {
|
|
16440
|
+
isInIframe,
|
|
16441
|
+
currentOrigin: window.location.origin,
|
|
16442
|
+
currentUrl: window.location.href
|
|
16443
|
+
});
|
|
16438
16444
|
const handler = (event) => {
|
|
16439
|
-
|
|
16445
|
+
var _a2, _b, _c;
|
|
16446
|
+
console.log("[AthenaAuth] Received PostMessage", {
|
|
16447
|
+
type: (_a2 = event.data) == null ? void 0 : _a2.type,
|
|
16448
|
+
origin: event.origin,
|
|
16449
|
+
isTrusted: isTrustedOrigin(event.origin),
|
|
16450
|
+
hasToken: !!((_b = event.data) == null ? void 0 : _b.token),
|
|
16451
|
+
tokenPrefix: typeof ((_c = event.data) == null ? void 0 : _c.token) === "string" ? event.data.token.substring(0, 20) + "..." : void 0
|
|
16452
|
+
});
|
|
16453
|
+
if (!isTrustedOrigin(event.origin)) {
|
|
16454
|
+
console.warn("[AthenaAuth] Rejected PostMessage — untrusted origin:", event.origin);
|
|
16455
|
+
return;
|
|
16456
|
+
}
|
|
16440
16457
|
if (event.data && typeof event.data === "object" && event.data.type === "athena-auth" && typeof event.data.token === "string") {
|
|
16458
|
+
console.log("[AthenaAuth] PropelAuth token received via PostMessage, length:", event.data.token.length);
|
|
16441
16459
|
setAuthToken(event.data.token);
|
|
16442
16460
|
}
|
|
16443
16461
|
};
|
|
16444
16462
|
window.addEventListener("message", handler);
|
|
16445
|
-
if (!readySignalSent.current &&
|
|
16463
|
+
if (!readySignalSent.current && isInIframe) {
|
|
16464
|
+
console.log("[AthenaAuth] Sending athena-auth-ready signal to parent");
|
|
16446
16465
|
window.parent.postMessage({ type: "athena-auth-ready" }, "*");
|
|
16447
16466
|
readySignalSent.current = true;
|
|
16467
|
+
} else if (!isInIframe) {
|
|
16468
|
+
console.log("[AthenaAuth] Not in iframe — skipping parent auth (standalone mode)");
|
|
16448
16469
|
}
|
|
16449
16470
|
return () => window.removeEventListener("message", handler);
|
|
16450
16471
|
}, []);
|
|
@@ -20768,12 +20789,22 @@ const useAthenaRuntime = (config2) => {
|
|
|
20768
20789
|
initialState: { messages: [] },
|
|
20769
20790
|
converter,
|
|
20770
20791
|
api: apiUrl,
|
|
20771
|
-
headers: async () =>
|
|
20772
|
-
|
|
20773
|
-
|
|
20774
|
-
|
|
20775
|
-
|
|
20776
|
-
|
|
20792
|
+
headers: async () => {
|
|
20793
|
+
const authHeaders = tokenRef.current ? { Authorization: `Bearer ${tokenRef.current}` } : apiKeyRef.current ? { "X-API-KEY": apiKeyRef.current } : {};
|
|
20794
|
+
console.log("[AthenaAuth] Request headers", {
|
|
20795
|
+
authMethod: tokenRef.current ? "Bearer token" : apiKeyRef.current ? "X-API-KEY" : "NONE",
|
|
20796
|
+
hasToken: !!tokenRef.current,
|
|
20797
|
+
tokenPrefix: tokenRef.current ? tokenRef.current.substring(0, 20) + "..." : void 0,
|
|
20798
|
+
apiKeyPrefix: apiKeyRef.current ? apiKeyRef.current.substring(0, 10) + "..." : void 0,
|
|
20799
|
+
apiUrl
|
|
20800
|
+
});
|
|
20801
|
+
return {
|
|
20802
|
+
// Prefer parent-injected PropelAuth token over hardcoded API key
|
|
20803
|
+
...authHeaders,
|
|
20804
|
+
"Accept-Encoding": "identity",
|
|
20805
|
+
Accept: "text/event-stream"
|
|
20806
|
+
};
|
|
20807
|
+
},
|
|
20777
20808
|
onResponse: () => {
|
|
20778
20809
|
if (process.env.NODE_ENV !== "production") {
|
|
20779
20810
|
console.log("[AthenaSDK] Stream connected");
|
|
@@ -24106,49 +24137,200 @@ function useAthenaConfig() {
|
|
|
24106
24137
|
}
|
|
24107
24138
|
return ctx;
|
|
24108
24139
|
}
|
|
24109
|
-
|
|
24140
|
+
const ThreadListContext = React.createContext(null);
|
|
24141
|
+
function useThreadListStore() {
|
|
24142
|
+
const store = React.useContext(ThreadListContext);
|
|
24143
|
+
if (!store) {
|
|
24144
|
+
throw new Error(
|
|
24145
|
+
"[AthenaSDK] useThreadList must be used within an <AthenaProvider> that has thread management enabled."
|
|
24146
|
+
);
|
|
24147
|
+
}
|
|
24148
|
+
return store;
|
|
24149
|
+
}
|
|
24150
|
+
function getAuthHeaders(auth) {
|
|
24151
|
+
if (auth.token) {
|
|
24152
|
+
return { Authorization: `Bearer ${auth.token}` };
|
|
24153
|
+
}
|
|
24154
|
+
if (auth.apiKey) {
|
|
24155
|
+
return { "X-API-KEY": auth.apiKey };
|
|
24156
|
+
}
|
|
24157
|
+
return {};
|
|
24158
|
+
}
|
|
24159
|
+
function getAgoraBaseUrl(backendUrl) {
|
|
24160
|
+
return backendUrl.replace(/\/api\/assistant-ui\/?$/, "");
|
|
24161
|
+
}
|
|
24162
|
+
async function listThreads(backendUrl, auth, opts = {}) {
|
|
24163
|
+
const base2 = getAgoraBaseUrl(backendUrl);
|
|
24164
|
+
const res = await fetch(`${base2}/api/conversation/threads/list`, {
|
|
24165
|
+
method: "POST",
|
|
24166
|
+
headers: { "Content-Type": "application/json", ...getAuthHeaders(auth) },
|
|
24167
|
+
body: JSON.stringify({ limit: opts.limit ?? 50, offset: opts.offset ?? 0 })
|
|
24168
|
+
});
|
|
24169
|
+
if (!res.ok) {
|
|
24170
|
+
throw new Error(`[AthenaSDK] Failed to list threads: ${res.status}`);
|
|
24171
|
+
}
|
|
24172
|
+
return res.json();
|
|
24173
|
+
}
|
|
24174
|
+
async function archiveThread(backendUrl, auth, threadId) {
|
|
24175
|
+
const base2 = getAgoraBaseUrl(backendUrl);
|
|
24176
|
+
const res = await fetch(`${base2}/api/conversation/threads/archive`, {
|
|
24177
|
+
method: "POST",
|
|
24178
|
+
headers: { "Content-Type": "application/json", ...getAuthHeaders(auth) },
|
|
24179
|
+
body: JSON.stringify({ thread_id: threadId })
|
|
24180
|
+
});
|
|
24181
|
+
if (!res.ok) {
|
|
24182
|
+
throw new Error(`[AthenaSDK] Failed to archive thread: ${res.status}`);
|
|
24183
|
+
}
|
|
24184
|
+
}
|
|
24185
|
+
function createThreadListStore(config2) {
|
|
24186
|
+
const auth = { apiKey: config2.apiKey, token: config2.token };
|
|
24187
|
+
return create((set2, get2) => ({
|
|
24188
|
+
threads: [],
|
|
24189
|
+
activeThreadId: null,
|
|
24190
|
+
isLoading: false,
|
|
24191
|
+
error: null,
|
|
24192
|
+
fetchThreads: async () => {
|
|
24193
|
+
set2({ isLoading: true, error: null });
|
|
24194
|
+
try {
|
|
24195
|
+
const { threads } = await listThreads(config2.backendUrl, auth);
|
|
24196
|
+
const sorted = [...threads].sort(
|
|
24197
|
+
(a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime()
|
|
24198
|
+
);
|
|
24199
|
+
set2({ threads: sorted, isLoading: false });
|
|
24200
|
+
} catch (e) {
|
|
24201
|
+
set2({ error: e.message, isLoading: false });
|
|
24202
|
+
}
|
|
24203
|
+
},
|
|
24204
|
+
switchThread: (threadId) => {
|
|
24205
|
+
set2({ activeThreadId: threadId });
|
|
24206
|
+
},
|
|
24207
|
+
newThread: async () => {
|
|
24208
|
+
const localThreadId = `thread_${crypto.randomUUID()}`;
|
|
24209
|
+
set2({ activeThreadId: localThreadId });
|
|
24210
|
+
return localThreadId;
|
|
24211
|
+
},
|
|
24212
|
+
archiveThread: async (threadId) => {
|
|
24213
|
+
var _a2;
|
|
24214
|
+
try {
|
|
24215
|
+
await archiveThread(config2.backendUrl, auth, threadId);
|
|
24216
|
+
const { threads, activeThreadId } = get2();
|
|
24217
|
+
const remaining = threads.filter((t) => t.thread_id !== threadId);
|
|
24218
|
+
set2({
|
|
24219
|
+
threads: remaining,
|
|
24220
|
+
activeThreadId: activeThreadId === threadId ? ((_a2 = remaining[0]) == null ? void 0 : _a2.thread_id) ?? null : activeThreadId
|
|
24221
|
+
});
|
|
24222
|
+
} catch (e) {
|
|
24223
|
+
set2({ error: e.message });
|
|
24224
|
+
}
|
|
24225
|
+
}
|
|
24226
|
+
}));
|
|
24227
|
+
}
|
|
24228
|
+
function AthenaRuntimeInner({
|
|
24110
24229
|
children,
|
|
24111
|
-
apiKey,
|
|
24112
|
-
token: tokenProp,
|
|
24113
|
-
agent: agent2,
|
|
24114
|
-
model,
|
|
24115
|
-
tools = [],
|
|
24116
|
-
frontendTools = {},
|
|
24117
24230
|
apiUrl,
|
|
24118
24231
|
backendUrl,
|
|
24232
|
+
apiKey,
|
|
24233
|
+
token,
|
|
24234
|
+
model,
|
|
24235
|
+
agent: agent2,
|
|
24236
|
+
tools,
|
|
24237
|
+
frontendToolIds,
|
|
24238
|
+
frontendTools,
|
|
24119
24239
|
workbench,
|
|
24120
24240
|
knowledgeBase,
|
|
24121
24241
|
systemPrompt,
|
|
24122
24242
|
threadId
|
|
24123
24243
|
}) {
|
|
24124
|
-
const frontendToolNames = React.useMemo(() => Object.keys(frontendTools), [frontendTools]);
|
|
24125
24244
|
const auiTools = React.useMemo(() => Tools({ toolkit: frontendTools }), [frontendTools]);
|
|
24126
|
-
const aui = useAui({
|
|
24127
|
-
tools: auiTools
|
|
24128
|
-
});
|
|
24129
|
-
const parentAuthToken = useParentAuth();
|
|
24130
|
-
const effectiveToken = tokenProp ?? parentAuthToken;
|
|
24131
|
-
const effectiveBackendUrl = backendUrl ?? DEFAULT_BACKEND_URL;
|
|
24245
|
+
const aui = useAui({ tools: auiTools });
|
|
24132
24246
|
const runtime = useAthenaRuntime({
|
|
24133
24247
|
apiUrl,
|
|
24134
|
-
backendUrl
|
|
24248
|
+
backendUrl,
|
|
24135
24249
|
apiKey,
|
|
24136
|
-
token
|
|
24250
|
+
token,
|
|
24137
24251
|
model,
|
|
24138
24252
|
agent: agent2,
|
|
24139
24253
|
tools,
|
|
24140
|
-
frontendToolIds
|
|
24254
|
+
frontendToolIds,
|
|
24141
24255
|
workbench,
|
|
24142
24256
|
knowledgeBase,
|
|
24143
24257
|
systemPrompt,
|
|
24144
24258
|
threadId
|
|
24145
24259
|
});
|
|
24146
24260
|
const athenaConfig = React.useMemo(
|
|
24147
|
-
() => ({ backendUrl
|
|
24148
|
-
[
|
|
24261
|
+
() => ({ backendUrl, apiKey, token }),
|
|
24262
|
+
[backendUrl, apiKey, token]
|
|
24149
24263
|
);
|
|
24150
24264
|
return /* @__PURE__ */ jsxRuntime.jsx(AssistantRuntimeProvider, { aui, runtime, children: /* @__PURE__ */ jsxRuntime.jsx(AthenaContext.Provider, { value: athenaConfig, children: /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { children }) }) });
|
|
24151
24265
|
}
|
|
24266
|
+
function useActiveThreadFromStore(store) {
|
|
24267
|
+
return React.useSyncExternalStore(
|
|
24268
|
+
(cb) => {
|
|
24269
|
+
if (!store) return () => {
|
|
24270
|
+
};
|
|
24271
|
+
return store.subscribe(cb);
|
|
24272
|
+
},
|
|
24273
|
+
() => (store == null ? void 0 : store.getState().activeThreadId) ?? null,
|
|
24274
|
+
() => null
|
|
24275
|
+
);
|
|
24276
|
+
}
|
|
24277
|
+
function AthenaProvider({
|
|
24278
|
+
children,
|
|
24279
|
+
apiKey,
|
|
24280
|
+
token: tokenProp,
|
|
24281
|
+
agent: agent2,
|
|
24282
|
+
model,
|
|
24283
|
+
tools = [],
|
|
24284
|
+
frontendTools = {},
|
|
24285
|
+
apiUrl,
|
|
24286
|
+
backendUrl,
|
|
24287
|
+
workbench,
|
|
24288
|
+
knowledgeBase,
|
|
24289
|
+
systemPrompt,
|
|
24290
|
+
threadId: threadIdProp,
|
|
24291
|
+
enableThreadList = false
|
|
24292
|
+
}) {
|
|
24293
|
+
const frontendToolNames = React.useMemo(() => Object.keys(frontendTools), [frontendTools]);
|
|
24294
|
+
const parentAuthToken = useParentAuth();
|
|
24295
|
+
const effectiveToken = tokenProp ?? parentAuthToken;
|
|
24296
|
+
const effectiveBackendUrl = backendUrl ?? DEFAULT_BACKEND_URL;
|
|
24297
|
+
const threadListStoreRef = React.useRef(null);
|
|
24298
|
+
if (enableThreadList && !threadListStoreRef.current) {
|
|
24299
|
+
threadListStoreRef.current = createThreadListStore({
|
|
24300
|
+
backendUrl: effectiveBackendUrl,
|
|
24301
|
+
apiKey,
|
|
24302
|
+
token: effectiveToken
|
|
24303
|
+
});
|
|
24304
|
+
}
|
|
24305
|
+
const activeThreadId = useActiveThreadFromStore(
|
|
24306
|
+
enableThreadList ? threadListStoreRef.current : null
|
|
24307
|
+
);
|
|
24308
|
+
const resolvedThreadId = threadIdProp ?? activeThreadId ?? void 0;
|
|
24309
|
+
const inner = /* @__PURE__ */ jsxRuntime.jsx(
|
|
24310
|
+
AthenaRuntimeInner,
|
|
24311
|
+
{
|
|
24312
|
+
apiUrl,
|
|
24313
|
+
backendUrl: effectiveBackendUrl,
|
|
24314
|
+
apiKey,
|
|
24315
|
+
token: effectiveToken,
|
|
24316
|
+
model,
|
|
24317
|
+
agent: agent2,
|
|
24318
|
+
tools,
|
|
24319
|
+
frontendToolIds: frontendToolNames,
|
|
24320
|
+
frontendTools,
|
|
24321
|
+
workbench,
|
|
24322
|
+
knowledgeBase,
|
|
24323
|
+
systemPrompt,
|
|
24324
|
+
threadId: resolvedThreadId,
|
|
24325
|
+
children
|
|
24326
|
+
},
|
|
24327
|
+
resolvedThreadId ?? "__new__"
|
|
24328
|
+
);
|
|
24329
|
+
if (enableThreadList && threadListStoreRef.current) {
|
|
24330
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ThreadListContext.Provider, { value: threadListStoreRef.current, children: inner });
|
|
24331
|
+
}
|
|
24332
|
+
return inner;
|
|
24333
|
+
}
|
|
24152
24334
|
function OrderedMap(content) {
|
|
24153
24335
|
this.content = content;
|
|
24154
24336
|
}
|
|
@@ -60080,29 +60262,41 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
60080
60262
|
* This source code is licensed under the ISC license.
|
|
60081
60263
|
* See the LICENSE file in the root directory of this source tree.
|
|
60082
60264
|
*/
|
|
60083
|
-
const __iconNode$
|
|
60265
|
+
const __iconNode$E = [
|
|
60266
|
+
["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
|
|
60267
|
+
["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
|
|
60268
|
+
["path", { d: "M10 12h4", key: "a56b0p" }]
|
|
60269
|
+
];
|
|
60270
|
+
const Archive = createLucideIcon("archive", __iconNode$E);
|
|
60271
|
+
/**
|
|
60272
|
+
* @license lucide-react v0.575.0 - ISC
|
|
60273
|
+
*
|
|
60274
|
+
* This source code is licensed under the ISC license.
|
|
60275
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
60276
|
+
*/
|
|
60277
|
+
const __iconNode$D = [
|
|
60084
60278
|
["path", { d: "M12 5v14", key: "s699le" }],
|
|
60085
60279
|
["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
|
|
60086
60280
|
];
|
|
60087
|
-
const ArrowDown = createLucideIcon("arrow-down", __iconNode$
|
|
60281
|
+
const ArrowDown = createLucideIcon("arrow-down", __iconNode$D);
|
|
60088
60282
|
/**
|
|
60089
60283
|
* @license lucide-react v0.575.0 - ISC
|
|
60090
60284
|
*
|
|
60091
60285
|
* This source code is licensed under the ISC license.
|
|
60092
60286
|
* See the LICENSE file in the root directory of this source tree.
|
|
60093
60287
|
*/
|
|
60094
|
-
const __iconNode$
|
|
60288
|
+
const __iconNode$C = [
|
|
60095
60289
|
["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
|
|
60096
60290
|
["path", { d: "M12 19V5", key: "x0mq9r" }]
|
|
60097
60291
|
];
|
|
60098
|
-
const ArrowUp = createLucideIcon("arrow-up", __iconNode$
|
|
60292
|
+
const ArrowUp = createLucideIcon("arrow-up", __iconNode$C);
|
|
60099
60293
|
/**
|
|
60100
60294
|
* @license lucide-react v0.575.0 - ISC
|
|
60101
60295
|
*
|
|
60102
60296
|
* This source code is licensed under the ISC license.
|
|
60103
60297
|
* See the LICENSE file in the root directory of this source tree.
|
|
60104
60298
|
*/
|
|
60105
|
-
const __iconNode$
|
|
60299
|
+
const __iconNode$B = [
|
|
60106
60300
|
["path", { d: "M12 7v14", key: "1akyts" }],
|
|
60107
60301
|
[
|
|
60108
60302
|
"path",
|
|
@@ -60112,14 +60306,14 @@ const __iconNode$z = [
|
|
|
60112
60306
|
}
|
|
60113
60307
|
]
|
|
60114
60308
|
];
|
|
60115
|
-
const BookOpen = createLucideIcon("book-open", __iconNode$
|
|
60309
|
+
const BookOpen = createLucideIcon("book-open", __iconNode$B);
|
|
60116
60310
|
/**
|
|
60117
60311
|
* @license lucide-react v0.575.0 - ISC
|
|
60118
60312
|
*
|
|
60119
60313
|
* This source code is licensed under the ISC license.
|
|
60120
60314
|
* See the LICENSE file in the root directory of this source tree.
|
|
60121
60315
|
*/
|
|
60122
|
-
const __iconNode$
|
|
60316
|
+
const __iconNode$A = [
|
|
60123
60317
|
["path", { d: "M12 18V5", key: "adv99a" }],
|
|
60124
60318
|
["path", { d: "M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4", key: "1e3is1" }],
|
|
60125
60319
|
["path", { d: "M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5", key: "1gqd8o" }],
|
|
@@ -60129,148 +60323,148 @@ const __iconNode$y = [
|
|
|
60129
60323
|
["path", { d: "M6 18a4 4 0 0 1-2-7.464", key: "k1g0md" }],
|
|
60130
60324
|
["path", { d: "M6.003 5.125a4 4 0 0 0-2.526 5.77", key: "q97ue3" }]
|
|
60131
60325
|
];
|
|
60132
|
-
const Brain = createLucideIcon("brain", __iconNode$
|
|
60326
|
+
const Brain = createLucideIcon("brain", __iconNode$A);
|
|
60133
60327
|
/**
|
|
60134
60328
|
* @license lucide-react v0.575.0 - ISC
|
|
60135
60329
|
*
|
|
60136
60330
|
* This source code is licensed under the ISC license.
|
|
60137
60331
|
* See the LICENSE file in the root directory of this source tree.
|
|
60138
60332
|
*/
|
|
60139
|
-
const __iconNode$
|
|
60333
|
+
const __iconNode$z = [
|
|
60140
60334
|
["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
|
|
60141
60335
|
["path", { d: "M18 17V9", key: "2bz60n" }],
|
|
60142
60336
|
["path", { d: "M13 17V5", key: "1frdt8" }],
|
|
60143
60337
|
["path", { d: "M8 17v-3", key: "17ska0" }]
|
|
60144
60338
|
];
|
|
60145
|
-
const ChartColumn = createLucideIcon("chart-column", __iconNode$
|
|
60339
|
+
const ChartColumn = createLucideIcon("chart-column", __iconNode$z);
|
|
60146
60340
|
/**
|
|
60147
60341
|
* @license lucide-react v0.575.0 - ISC
|
|
60148
60342
|
*
|
|
60149
60343
|
* This source code is licensed under the ISC license.
|
|
60150
60344
|
* See the LICENSE file in the root directory of this source tree.
|
|
60151
60345
|
*/
|
|
60152
|
-
const __iconNode$
|
|
60153
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
60346
|
+
const __iconNode$y = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
60347
|
+
const Check = createLucideIcon("check", __iconNode$y);
|
|
60154
60348
|
/**
|
|
60155
60349
|
* @license lucide-react v0.575.0 - ISC
|
|
60156
60350
|
*
|
|
60157
60351
|
* This source code is licensed under the ISC license.
|
|
60158
60352
|
* See the LICENSE file in the root directory of this source tree.
|
|
60159
60353
|
*/
|
|
60160
|
-
const __iconNode$
|
|
60161
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
60354
|
+
const __iconNode$x = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
60355
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$x);
|
|
60162
60356
|
/**
|
|
60163
60357
|
* @license lucide-react v0.575.0 - ISC
|
|
60164
60358
|
*
|
|
60165
60359
|
* This source code is licensed under the ISC license.
|
|
60166
60360
|
* See the LICENSE file in the root directory of this source tree.
|
|
60167
60361
|
*/
|
|
60168
|
-
const __iconNode$
|
|
60362
|
+
const __iconNode$w = [
|
|
60169
60363
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
60170
60364
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
60171
60365
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
60172
60366
|
];
|
|
60173
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
60367
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$w);
|
|
60174
60368
|
/**
|
|
60175
60369
|
* @license lucide-react v0.575.0 - ISC
|
|
60176
60370
|
*
|
|
60177
60371
|
* This source code is licensed under the ISC license.
|
|
60178
60372
|
* See the LICENSE file in the root directory of this source tree.
|
|
60179
60373
|
*/
|
|
60180
|
-
const __iconNode$
|
|
60374
|
+
const __iconNode$v = [
|
|
60181
60375
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
60182
60376
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
60183
60377
|
];
|
|
60184
|
-
const CircleCheck = createLucideIcon("circle-check", __iconNode$
|
|
60378
|
+
const CircleCheck = createLucideIcon("circle-check", __iconNode$v);
|
|
60185
60379
|
/**
|
|
60186
60380
|
* @license lucide-react v0.575.0 - ISC
|
|
60187
60381
|
*
|
|
60188
60382
|
* This source code is licensed under the ISC license.
|
|
60189
60383
|
* See the LICENSE file in the root directory of this source tree.
|
|
60190
60384
|
*/
|
|
60191
|
-
const __iconNode$
|
|
60385
|
+
const __iconNode$u = [
|
|
60192
60386
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
60193
60387
|
["path", { d: "m15 9-6 6", key: "1uzhvr" }],
|
|
60194
60388
|
["path", { d: "m9 9 6 6", key: "z0biqf" }]
|
|
60195
60389
|
];
|
|
60196
|
-
const CircleX = createLucideIcon("circle-x", __iconNode$
|
|
60390
|
+
const CircleX = createLucideIcon("circle-x", __iconNode$u);
|
|
60197
60391
|
/**
|
|
60198
60392
|
* @license lucide-react v0.575.0 - ISC
|
|
60199
60393
|
*
|
|
60200
60394
|
* This source code is licensed under the ISC license.
|
|
60201
60395
|
* See the LICENSE file in the root directory of this source tree.
|
|
60202
60396
|
*/
|
|
60203
|
-
const __iconNode$
|
|
60397
|
+
const __iconNode$t = [
|
|
60204
60398
|
["path", { d: "m16 18 6-6-6-6", key: "eg8j8" }],
|
|
60205
60399
|
["path", { d: "m8 6-6 6 6 6", key: "ppft3o" }]
|
|
60206
60400
|
];
|
|
60207
|
-
const Code = createLucideIcon("code", __iconNode$
|
|
60401
|
+
const Code = createLucideIcon("code", __iconNode$t);
|
|
60208
60402
|
/**
|
|
60209
60403
|
* @license lucide-react v0.575.0 - ISC
|
|
60210
60404
|
*
|
|
60211
60405
|
* This source code is licensed under the ISC license.
|
|
60212
60406
|
* See the LICENSE file in the root directory of this source tree.
|
|
60213
60407
|
*/
|
|
60214
|
-
const __iconNode$
|
|
60408
|
+
const __iconNode$s = [
|
|
60215
60409
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
60216
60410
|
["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
|
|
60217
60411
|
];
|
|
60218
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
60412
|
+
const Copy = createLucideIcon("copy", __iconNode$s);
|
|
60219
60413
|
/**
|
|
60220
60414
|
* @license lucide-react v0.575.0 - ISC
|
|
60221
60415
|
*
|
|
60222
60416
|
* This source code is licensed under the ISC license.
|
|
60223
60417
|
* See the LICENSE file in the root directory of this source tree.
|
|
60224
60418
|
*/
|
|
60225
|
-
const __iconNode$
|
|
60419
|
+
const __iconNode$r = [
|
|
60226
60420
|
["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
|
|
60227
60421
|
["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
|
|
60228
60422
|
["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
|
|
60229
60423
|
];
|
|
60230
|
-
const Database = createLucideIcon("database", __iconNode$
|
|
60424
|
+
const Database = createLucideIcon("database", __iconNode$r);
|
|
60231
60425
|
/**
|
|
60232
60426
|
* @license lucide-react v0.575.0 - ISC
|
|
60233
60427
|
*
|
|
60234
60428
|
* This source code is licensed under the ISC license.
|
|
60235
60429
|
* See the LICENSE file in the root directory of this source tree.
|
|
60236
60430
|
*/
|
|
60237
|
-
const __iconNode$
|
|
60431
|
+
const __iconNode$q = [
|
|
60238
60432
|
["path", { d: "M12 15V3", key: "m9g1x1" }],
|
|
60239
60433
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
|
|
60240
60434
|
["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
|
|
60241
60435
|
];
|
|
60242
|
-
const Download = createLucideIcon("download", __iconNode$
|
|
60436
|
+
const Download = createLucideIcon("download", __iconNode$q);
|
|
60243
60437
|
/**
|
|
60244
60438
|
* @license lucide-react v0.575.0 - ISC
|
|
60245
60439
|
*
|
|
60246
60440
|
* This source code is licensed under the ISC license.
|
|
60247
60441
|
* See the LICENSE file in the root directory of this source tree.
|
|
60248
60442
|
*/
|
|
60249
|
-
const __iconNode$
|
|
60443
|
+
const __iconNode$p = [
|
|
60250
60444
|
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
60251
60445
|
["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
|
|
60252
60446
|
["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
|
|
60253
60447
|
];
|
|
60254
|
-
const Ellipsis = createLucideIcon("ellipsis", __iconNode$
|
|
60448
|
+
const Ellipsis = createLucideIcon("ellipsis", __iconNode$p);
|
|
60255
60449
|
/**
|
|
60256
60450
|
* @license lucide-react v0.575.0 - ISC
|
|
60257
60451
|
*
|
|
60258
60452
|
* This source code is licensed under the ISC license.
|
|
60259
60453
|
* See the LICENSE file in the root directory of this source tree.
|
|
60260
60454
|
*/
|
|
60261
|
-
const __iconNode$
|
|
60455
|
+
const __iconNode$o = [
|
|
60262
60456
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
60263
60457
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
60264
60458
|
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
60265
60459
|
];
|
|
60266
|
-
const ExternalLink = createLucideIcon("external-link", __iconNode$
|
|
60460
|
+
const ExternalLink = createLucideIcon("external-link", __iconNode$o);
|
|
60267
60461
|
/**
|
|
60268
60462
|
* @license lucide-react v0.575.0 - ISC
|
|
60269
60463
|
*
|
|
60270
60464
|
* This source code is licensed under the ISC license.
|
|
60271
60465
|
* See the LICENSE file in the root directory of this source tree.
|
|
60272
60466
|
*/
|
|
60273
|
-
const __iconNode$
|
|
60467
|
+
const __iconNode$n = [
|
|
60274
60468
|
[
|
|
60275
60469
|
"path",
|
|
60276
60470
|
{
|
|
@@ -60282,14 +60476,14 @@ const __iconNode$l = [
|
|
|
60282
60476
|
["path", { d: "M9 15h6", key: "cctwl0" }],
|
|
60283
60477
|
["path", { d: "M12 18v-6", key: "17g6i2" }]
|
|
60284
60478
|
];
|
|
60285
|
-
const FilePlus = createLucideIcon("file-plus", __iconNode$
|
|
60479
|
+
const FilePlus = createLucideIcon("file-plus", __iconNode$n);
|
|
60286
60480
|
/**
|
|
60287
60481
|
* @license lucide-react v0.575.0 - ISC
|
|
60288
60482
|
*
|
|
60289
60483
|
* This source code is licensed under the ISC license.
|
|
60290
60484
|
* See the LICENSE file in the root directory of this source tree.
|
|
60291
60485
|
*/
|
|
60292
|
-
const __iconNode$
|
|
60486
|
+
const __iconNode$m = [
|
|
60293
60487
|
[
|
|
60294
60488
|
"path",
|
|
60295
60489
|
{
|
|
@@ -60303,14 +60497,14 @@ const __iconNode$k = [
|
|
|
60303
60497
|
["path", { d: "M8 17h2", key: "2yhykz" }],
|
|
60304
60498
|
["path", { d: "M14 17h2", key: "10kma7" }]
|
|
60305
60499
|
];
|
|
60306
|
-
const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$
|
|
60500
|
+
const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$m);
|
|
60307
60501
|
/**
|
|
60308
60502
|
* @license lucide-react v0.575.0 - ISC
|
|
60309
60503
|
*
|
|
60310
60504
|
* This source code is licensed under the ISC license.
|
|
60311
60505
|
* See the LICENSE file in the root directory of this source tree.
|
|
60312
60506
|
*/
|
|
60313
|
-
const __iconNode$
|
|
60507
|
+
const __iconNode$l = [
|
|
60314
60508
|
[
|
|
60315
60509
|
"path",
|
|
60316
60510
|
{
|
|
@@ -60323,14 +60517,14 @@ const __iconNode$j = [
|
|
|
60323
60517
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
60324
60518
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
60325
60519
|
];
|
|
60326
|
-
const FileText = createLucideIcon("file-text", __iconNode$
|
|
60520
|
+
const FileText = createLucideIcon("file-text", __iconNode$l);
|
|
60327
60521
|
/**
|
|
60328
60522
|
* @license lucide-react v0.575.0 - ISC
|
|
60329
60523
|
*
|
|
60330
60524
|
* This source code is licensed under the ISC license.
|
|
60331
60525
|
* See the LICENSE file in the root directory of this source tree.
|
|
60332
60526
|
*/
|
|
60333
|
-
const __iconNode$
|
|
60527
|
+
const __iconNode$k = [
|
|
60334
60528
|
[
|
|
60335
60529
|
"path",
|
|
60336
60530
|
{
|
|
@@ -60340,26 +60534,26 @@ const __iconNode$i = [
|
|
|
60340
60534
|
],
|
|
60341
60535
|
["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }]
|
|
60342
60536
|
];
|
|
60343
|
-
const File$1 = createLucideIcon("file", __iconNode$
|
|
60537
|
+
const File$1 = createLucideIcon("file", __iconNode$k);
|
|
60344
60538
|
/**
|
|
60345
60539
|
* @license lucide-react v0.575.0 - ISC
|
|
60346
60540
|
*
|
|
60347
60541
|
* This source code is licensed under the ISC license.
|
|
60348
60542
|
* See the LICENSE file in the root directory of this source tree.
|
|
60349
60543
|
*/
|
|
60350
|
-
const __iconNode$
|
|
60544
|
+
const __iconNode$j = [
|
|
60351
60545
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
60352
60546
|
["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
|
|
60353
60547
|
["path", { d: "M2 12h20", key: "9i4pu4" }]
|
|
60354
60548
|
];
|
|
60355
|
-
const Globe = createLucideIcon("globe", __iconNode$
|
|
60549
|
+
const Globe = createLucideIcon("globe", __iconNode$j);
|
|
60356
60550
|
/**
|
|
60357
60551
|
* @license lucide-react v0.575.0 - ISC
|
|
60358
60552
|
*
|
|
60359
60553
|
* This source code is licensed under the ISC license.
|
|
60360
60554
|
* See the LICENSE file in the root directory of this source tree.
|
|
60361
60555
|
*/
|
|
60362
|
-
const __iconNode$
|
|
60556
|
+
const __iconNode$i = [
|
|
60363
60557
|
[
|
|
60364
60558
|
"path",
|
|
60365
60559
|
{
|
|
@@ -60382,35 +60576,35 @@ const __iconNode$g = [
|
|
|
60382
60576
|
}
|
|
60383
60577
|
]
|
|
60384
60578
|
];
|
|
60385
|
-
const Layers = createLucideIcon("layers", __iconNode$
|
|
60579
|
+
const Layers = createLucideIcon("layers", __iconNode$i);
|
|
60386
60580
|
/**
|
|
60387
60581
|
* @license lucide-react v0.575.0 - ISC
|
|
60388
60582
|
*
|
|
60389
60583
|
* This source code is licensed under the ISC license.
|
|
60390
60584
|
* See the LICENSE file in the root directory of this source tree.
|
|
60391
60585
|
*/
|
|
60392
|
-
const __iconNode$
|
|
60586
|
+
const __iconNode$h = [
|
|
60393
60587
|
["rect", { width: "7", height: "7", x: "3", y: "3", rx: "1", key: "1g98yp" }],
|
|
60394
60588
|
["rect", { width: "7", height: "7", x: "14", y: "3", rx: "1", key: "6d4xhi" }],
|
|
60395
60589
|
["rect", { width: "7", height: "7", x: "14", y: "14", rx: "1", key: "nxv5o0" }],
|
|
60396
60590
|
["rect", { width: "7", height: "7", x: "3", y: "14", rx: "1", key: "1bb6yr" }]
|
|
60397
60591
|
];
|
|
60398
|
-
const LayoutGrid = createLucideIcon("layout-grid", __iconNode$
|
|
60592
|
+
const LayoutGrid = createLucideIcon("layout-grid", __iconNode$h);
|
|
60399
60593
|
/**
|
|
60400
60594
|
* @license lucide-react v0.575.0 - ISC
|
|
60401
60595
|
*
|
|
60402
60596
|
* This source code is licensed under the ISC license.
|
|
60403
60597
|
* See the LICENSE file in the root directory of this source tree.
|
|
60404
60598
|
*/
|
|
60405
|
-
const __iconNode$
|
|
60406
|
-
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$
|
|
60599
|
+
const __iconNode$g = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
|
|
60600
|
+
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$g);
|
|
60407
60601
|
/**
|
|
60408
60602
|
* @license lucide-react v0.575.0 - ISC
|
|
60409
60603
|
*
|
|
60410
60604
|
* This source code is licensed under the ISC license.
|
|
60411
60605
|
* See the LICENSE file in the root directory of this source tree.
|
|
60412
60606
|
*/
|
|
60413
|
-
const __iconNode$
|
|
60607
|
+
const __iconNode$f = [
|
|
60414
60608
|
["path", { d: "M12 2v4", key: "3427ic" }],
|
|
60415
60609
|
["path", { d: "m16.2 7.8 2.9-2.9", key: "r700ao" }],
|
|
60416
60610
|
["path", { d: "M18 12h4", key: "wj9ykh" }],
|
|
@@ -60420,63 +60614,79 @@ const __iconNode$d = [
|
|
|
60420
60614
|
["path", { d: "M2 12h4", key: "j09sii" }],
|
|
60421
60615
|
["path", { d: "m4.9 4.9 2.9 2.9", key: "giyufr" }]
|
|
60422
60616
|
];
|
|
60423
|
-
const Loader = createLucideIcon("loader", __iconNode$
|
|
60617
|
+
const Loader = createLucideIcon("loader", __iconNode$f);
|
|
60424
60618
|
/**
|
|
60425
60619
|
* @license lucide-react v0.575.0 - ISC
|
|
60426
60620
|
*
|
|
60427
60621
|
* This source code is licensed under the ISC license.
|
|
60428
60622
|
* See the LICENSE file in the root directory of this source tree.
|
|
60429
60623
|
*/
|
|
60430
|
-
const __iconNode$
|
|
60624
|
+
const __iconNode$e = [
|
|
60431
60625
|
["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
|
|
60432
60626
|
["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
|
|
60433
60627
|
];
|
|
60434
|
-
const Mail = createLucideIcon("mail", __iconNode$
|
|
60628
|
+
const Mail = createLucideIcon("mail", __iconNode$e);
|
|
60435
60629
|
/**
|
|
60436
60630
|
* @license lucide-react v0.575.0 - ISC
|
|
60437
60631
|
*
|
|
60438
60632
|
* This source code is licensed under the ISC license.
|
|
60439
60633
|
* See the LICENSE file in the root directory of this source tree.
|
|
60440
60634
|
*/
|
|
60441
|
-
const __iconNode$
|
|
60635
|
+
const __iconNode$d = [
|
|
60442
60636
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
60443
60637
|
["path", { d: "m21 3-7 7", key: "1l2asr" }],
|
|
60444
60638
|
["path", { d: "m3 21 7-7", key: "tjx5ai" }],
|
|
60445
60639
|
["path", { d: "M9 21H3v-6", key: "wtvkvv" }]
|
|
60446
60640
|
];
|
|
60447
|
-
const Maximize2 = createLucideIcon("maximize-2", __iconNode$
|
|
60641
|
+
const Maximize2 = createLucideIcon("maximize-2", __iconNode$d);
|
|
60448
60642
|
/**
|
|
60449
60643
|
* @license lucide-react v0.575.0 - ISC
|
|
60450
60644
|
*
|
|
60451
60645
|
* This source code is licensed under the ISC license.
|
|
60452
60646
|
* See the LICENSE file in the root directory of this source tree.
|
|
60453
60647
|
*/
|
|
60454
|
-
const __iconNode$
|
|
60648
|
+
const __iconNode$c = [
|
|
60649
|
+
[
|
|
60650
|
+
"path",
|
|
60651
|
+
{
|
|
60652
|
+
d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
|
|
60653
|
+
key: "18887p"
|
|
60654
|
+
}
|
|
60655
|
+
]
|
|
60656
|
+
];
|
|
60657
|
+
const MessageSquare = createLucideIcon("message-square", __iconNode$c);
|
|
60658
|
+
/**
|
|
60659
|
+
* @license lucide-react v0.575.0 - ISC
|
|
60660
|
+
*
|
|
60661
|
+
* This source code is licensed under the ISC license.
|
|
60662
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
60663
|
+
*/
|
|
60664
|
+
const __iconNode$b = [
|
|
60455
60665
|
["path", { d: "m14 10 7-7", key: "oa77jy" }],
|
|
60456
60666
|
["path", { d: "M20 10h-6V4", key: "mjg0md" }],
|
|
60457
60667
|
["path", { d: "m3 21 7-7", key: "tjx5ai" }],
|
|
60458
60668
|
["path", { d: "M4 14h6v6", key: "rmj7iw" }]
|
|
60459
60669
|
];
|
|
60460
|
-
const Minimize2 = createLucideIcon("minimize-2", __iconNode$
|
|
60670
|
+
const Minimize2 = createLucideIcon("minimize-2", __iconNode$b);
|
|
60461
60671
|
/**
|
|
60462
60672
|
* @license lucide-react v0.575.0 - ISC
|
|
60463
60673
|
*
|
|
60464
60674
|
* This source code is licensed under the ISC license.
|
|
60465
60675
|
* See the LICENSE file in the root directory of this source tree.
|
|
60466
60676
|
*/
|
|
60467
|
-
const __iconNode$
|
|
60677
|
+
const __iconNode$a = [
|
|
60468
60678
|
["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
|
|
60469
60679
|
["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
|
|
60470
60680
|
["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
|
|
60471
60681
|
];
|
|
60472
|
-
const Monitor = createLucideIcon("monitor", __iconNode$
|
|
60682
|
+
const Monitor = createLucideIcon("monitor", __iconNode$a);
|
|
60473
60683
|
/**
|
|
60474
60684
|
* @license lucide-react v0.575.0 - ISC
|
|
60475
60685
|
*
|
|
60476
60686
|
* This source code is licensed under the ISC license.
|
|
60477
60687
|
* See the LICENSE file in the root directory of this source tree.
|
|
60478
60688
|
*/
|
|
60479
|
-
const __iconNode$
|
|
60689
|
+
const __iconNode$9 = [
|
|
60480
60690
|
["path", { d: "M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4", key: "re6nr2" }],
|
|
60481
60691
|
["path", { d: "M2 6h4", key: "aawbzj" }],
|
|
60482
60692
|
["path", { d: "M2 10h4", key: "l0bgd4" }],
|
|
@@ -60490,14 +60700,14 @@ const __iconNode$8 = [
|
|
|
60490
60700
|
}
|
|
60491
60701
|
]
|
|
60492
60702
|
];
|
|
60493
|
-
const NotebookPen = createLucideIcon("notebook-pen", __iconNode$
|
|
60703
|
+
const NotebookPen = createLucideIcon("notebook-pen", __iconNode$9);
|
|
60494
60704
|
/**
|
|
60495
60705
|
* @license lucide-react v0.575.0 - ISC
|
|
60496
60706
|
*
|
|
60497
60707
|
* This source code is licensed under the ISC license.
|
|
60498
60708
|
* See the LICENSE file in the root directory of this source tree.
|
|
60499
60709
|
*/
|
|
60500
|
-
const __iconNode$
|
|
60710
|
+
const __iconNode$8 = [
|
|
60501
60711
|
["path", { d: "M13 21h8", key: "1jsn5i" }],
|
|
60502
60712
|
[
|
|
60503
60713
|
"path",
|
|
@@ -60507,7 +60717,18 @@ const __iconNode$7 = [
|
|
|
60507
60717
|
}
|
|
60508
60718
|
]
|
|
60509
60719
|
];
|
|
60510
|
-
const PenLine = createLucideIcon("pen-line", __iconNode$
|
|
60720
|
+
const PenLine = createLucideIcon("pen-line", __iconNode$8);
|
|
60721
|
+
/**
|
|
60722
|
+
* @license lucide-react v0.575.0 - ISC
|
|
60723
|
+
*
|
|
60724
|
+
* This source code is licensed under the ISC license.
|
|
60725
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
60726
|
+
*/
|
|
60727
|
+
const __iconNode$7 = [
|
|
60728
|
+
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
60729
|
+
["path", { d: "M12 5v14", key: "s699le" }]
|
|
60730
|
+
];
|
|
60731
|
+
const Plus = createLucideIcon("plus", __iconNode$7);
|
|
60511
60732
|
/**
|
|
60512
60733
|
* @license lucide-react v0.575.0 - ISC
|
|
60513
60734
|
*
|
|
@@ -62456,6 +62677,103 @@ const AthenaLayout = ({
|
|
|
62456
62677
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full flex-1 flex-col overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(AssetPanel, {}) })
|
|
62457
62678
|
] });
|
|
62458
62679
|
};
|
|
62680
|
+
function useThreadList() {
|
|
62681
|
+
const store = useThreadListStore();
|
|
62682
|
+
return useStore$1(store);
|
|
62683
|
+
}
|
|
62684
|
+
function useActiveThreadId() {
|
|
62685
|
+
const store = useThreadListStore();
|
|
62686
|
+
return useStore$1(store, (s) => s.activeThreadId);
|
|
62687
|
+
}
|
|
62688
|
+
function ThreadList({ className }) {
|
|
62689
|
+
const {
|
|
62690
|
+
threads,
|
|
62691
|
+
activeThreadId,
|
|
62692
|
+
isLoading,
|
|
62693
|
+
fetchThreads,
|
|
62694
|
+
switchThread,
|
|
62695
|
+
newThread,
|
|
62696
|
+
archiveThread: archiveThread2
|
|
62697
|
+
} = useThreadList();
|
|
62698
|
+
React.useEffect(() => {
|
|
62699
|
+
fetchThreads();
|
|
62700
|
+
}, [fetchThreads]);
|
|
62701
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-1", className), children: [
|
|
62702
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
62703
|
+
"button",
|
|
62704
|
+
{
|
|
62705
|
+
onClick: () => newThread(),
|
|
62706
|
+
className: "flex items-center gap-2 rounded-lg border border-border/60 px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
62707
|
+
children: [
|
|
62708
|
+
/* @__PURE__ */ jsxRuntime.jsx(Plus, { className: "size-4" }),
|
|
62709
|
+
"New Chat"
|
|
62710
|
+
]
|
|
62711
|
+
}
|
|
62712
|
+
),
|
|
62713
|
+
isLoading && threads.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center py-4 text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(LoaderCircle, { className: "size-4 animate-spin" }) }) : threads.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-2 py-4 text-center text-xs text-muted-foreground/60", children: "No conversations yet" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-0.5", children: threads.map((thread) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
62714
|
+
"div",
|
|
62715
|
+
{
|
|
62716
|
+
className: cn(
|
|
62717
|
+
"group flex items-center gap-2 rounded-lg px-3 py-2 text-sm transition-colors cursor-pointer",
|
|
62718
|
+
activeThreadId === thread.thread_id ? "bg-muted/50 text-foreground" : "text-muted-foreground hover:bg-muted/30 hover:text-foreground"
|
|
62719
|
+
),
|
|
62720
|
+
onClick: () => switchThread(thread.thread_id),
|
|
62721
|
+
children: [
|
|
62722
|
+
/* @__PURE__ */ jsxRuntime.jsx(MessageSquare, { className: "size-3.5 shrink-0" }),
|
|
62723
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate", children: thread.title || "Untitled" }),
|
|
62724
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
62725
|
+
"button",
|
|
62726
|
+
{
|
|
62727
|
+
onClick: (e) => {
|
|
62728
|
+
e.stopPropagation();
|
|
62729
|
+
archiveThread2(thread.thread_id);
|
|
62730
|
+
},
|
|
62731
|
+
className: "hidden size-5 items-center justify-center rounded text-muted-foreground/60 transition-colors hover:bg-muted hover:text-foreground group-hover:flex",
|
|
62732
|
+
title: "Archive",
|
|
62733
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Archive, { className: "size-3" })
|
|
62734
|
+
}
|
|
62735
|
+
)
|
|
62736
|
+
]
|
|
62737
|
+
},
|
|
62738
|
+
thread.thread_id
|
|
62739
|
+
)) })
|
|
62740
|
+
] });
|
|
62741
|
+
}
|
|
62742
|
+
function useAppendToComposer() {
|
|
62743
|
+
const aui = useAui();
|
|
62744
|
+
return React.useCallback(
|
|
62745
|
+
(text2, opts) => {
|
|
62746
|
+
const composer = aui.composer();
|
|
62747
|
+
if (opts == null ? void 0 : opts.replace) {
|
|
62748
|
+
composer.setText(text2);
|
|
62749
|
+
} else {
|
|
62750
|
+
const current = composer.getState().text;
|
|
62751
|
+
composer.setText(current ? `${current}
|
|
62752
|
+
${text2}` : text2);
|
|
62753
|
+
}
|
|
62754
|
+
},
|
|
62755
|
+
[aui]
|
|
62756
|
+
);
|
|
62757
|
+
}
|
|
62758
|
+
function useComposerAttachment() {
|
|
62759
|
+
const aui = useAui();
|
|
62760
|
+
const addFile = React.useCallback(
|
|
62761
|
+
(file) => {
|
|
62762
|
+
aui.composer().addAttachment(file);
|
|
62763
|
+
},
|
|
62764
|
+
[aui]
|
|
62765
|
+
);
|
|
62766
|
+
const addContent = React.useCallback(
|
|
62767
|
+
(name, content) => {
|
|
62768
|
+
aui.composer().addAttachment({ name, content });
|
|
62769
|
+
},
|
|
62770
|
+
[aui]
|
|
62771
|
+
);
|
|
62772
|
+
const clear = React.useCallback(() => {
|
|
62773
|
+
aui.composer().clearAttachments();
|
|
62774
|
+
}, [aui]);
|
|
62775
|
+
return { addFile, addContent, clear };
|
|
62776
|
+
}
|
|
62459
62777
|
exports.AppendDocumentToolUI = AppendDocumentToolUI;
|
|
62460
62778
|
exports.AssetPanel = AssetPanel;
|
|
62461
62779
|
exports.AthenaChat = AthenaChat;
|
|
@@ -62474,6 +62792,7 @@ exports.DEFAULT_BACKEND_URL = DEFAULT_BACKEND_URL;
|
|
|
62474
62792
|
exports.EmailSearchToolUI = EmailSearchToolUI;
|
|
62475
62793
|
exports.ReadAssetToolUI = ReadAssetToolUI;
|
|
62476
62794
|
exports.TOOL_UI_REGISTRY = TOOL_UI_REGISTRY;
|
|
62795
|
+
exports.ThreadList = ThreadList;
|
|
62477
62796
|
exports.TiptapComposer = TiptapComposer;
|
|
62478
62797
|
exports.TiptapText = TiptapText;
|
|
62479
62798
|
exports.ToolFallback = ToolFallback;
|
|
@@ -62492,13 +62811,18 @@ exports.WebSearchToolUI = WebSearchToolUI;
|
|
|
62492
62811
|
exports.buttonVariants = buttonVariants;
|
|
62493
62812
|
exports.clearAutoOpenedAssets = clearAutoOpenedAssets;
|
|
62494
62813
|
exports.cn = cn;
|
|
62814
|
+
exports.createThreadListStore = createThreadListStore;
|
|
62495
62815
|
exports.getAssetInfo = getAssetInfo;
|
|
62496
62816
|
exports.resetAssetAutoOpen = resetAssetAutoOpen;
|
|
62497
62817
|
exports.tryParseJson = tryParseJson$1;
|
|
62818
|
+
exports.useActiveThreadId = useActiveThreadId;
|
|
62819
|
+
exports.useAppendToComposer = useAppendToComposer;
|
|
62498
62820
|
exports.useAssetEmbed = useAssetEmbed;
|
|
62499
62821
|
exports.useAssetPanelStore = useAssetPanelStore;
|
|
62500
62822
|
exports.useAthenaConfig = useAthenaConfig;
|
|
62501
62823
|
exports.useAthenaRuntime = useAthenaRuntime;
|
|
62824
|
+
exports.useComposerAttachment = useComposerAttachment;
|
|
62502
62825
|
exports.useMentionSuggestions = useMentionSuggestions;
|
|
62503
62826
|
exports.useParentAuth = useParentAuth;
|
|
62827
|
+
exports.useThreadList = useThreadList;
|
|
62504
62828
|
//# sourceMappingURL=index.cjs.map
|