@rslsp1/fa-app-tools 1.3.8 → 1.3.10
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.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +40 -26
- package/dist/index.mjs +40 -26
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -479,6 +479,6 @@ declare function hfLoadMetadata(token: string): Promise<any[]>;
|
|
|
479
479
|
declare function hfUploadImage(base64: string, id: string, token: string, mimeType?: string): Promise<void>;
|
|
480
480
|
declare function hfLoadImageAsBase64(id: string, token: string): Promise<string | null>;
|
|
481
481
|
|
|
482
|
-
declare const LIB_VERSION = "1.3.
|
|
482
|
+
declare const LIB_VERSION = "1.3.10";
|
|
483
483
|
|
|
484
484
|
export { AvatarArchitectApp, type AvatarArchitectAppProps, CollapsibleCard, CompactDropdown, type ExtractedCharacter, FaToolsBadge, type FlowSdk, GLOBAL_STYLES, type Generation, type HFMetadataEntry, HistoryPanel, InspectPanel, LIB_VERSION, LabBlend, LabCompare, type LabFrame, LabImagePicker, type LabItem, LabLoop, LabRemix, type LabServices, LabsTab, ListView, type MediaItem, MediaLibrary, PillButton, type ProjectMeta, type ProjectSettings, ProjectSyncTab, PromptTab, SectionLabel, type SelectedLabImage, type SelectedTag, SetupPanel, type SyncDiff, TagManagerPanel, type TagOption, type WorkspaceTags, autoLabel, buildBlendInstruction, buildCompareInstruction, buildFallbackPrompt, buildGenerationPrompt, buildImageGenerationOptions, buildLoopInstruction, buildPromptTabPayload, buildReferenceImageMediaIds, buildRemixInstruction, buildScanInstruction, cleanAiResponse, createFlowServices, exportProjectToZip, formatTreeToMarkdown, frameToGeneration, getFormattedTimestamp, getHFToken, groupGenerationsToLabItems, hfDeleteProject, hfDownloadProject, hfListProjects, hfLoadImageAsBase64, hfLoadMetadata, hfLoadTags, hfSaveMetadata, hfSaveTags, hfUploadImage, hfUploadProjectForm, importProjectFromZip, injectXMPMetadata, interpretSdkError, parsePromptFile, parsePromptResponse, setHFToken, useKeyboardNavigation, useOnClickOutside };
|
package/dist/index.d.ts
CHANGED
|
@@ -479,6 +479,6 @@ declare function hfLoadMetadata(token: string): Promise<any[]>;
|
|
|
479
479
|
declare function hfUploadImage(base64: string, id: string, token: string, mimeType?: string): Promise<void>;
|
|
480
480
|
declare function hfLoadImageAsBase64(id: string, token: string): Promise<string | null>;
|
|
481
481
|
|
|
482
|
-
declare const LIB_VERSION = "1.3.
|
|
482
|
+
declare const LIB_VERSION = "1.3.10";
|
|
483
483
|
|
|
484
484
|
export { AvatarArchitectApp, type AvatarArchitectAppProps, CollapsibleCard, CompactDropdown, type ExtractedCharacter, FaToolsBadge, type FlowSdk, GLOBAL_STYLES, type Generation, type HFMetadataEntry, HistoryPanel, InspectPanel, LIB_VERSION, LabBlend, LabCompare, type LabFrame, LabImagePicker, type LabItem, LabLoop, LabRemix, type LabServices, LabsTab, ListView, type MediaItem, MediaLibrary, PillButton, type ProjectMeta, type ProjectSettings, ProjectSyncTab, PromptTab, SectionLabel, type SelectedLabImage, type SelectedTag, SetupPanel, type SyncDiff, TagManagerPanel, type TagOption, type WorkspaceTags, autoLabel, buildBlendInstruction, buildCompareInstruction, buildFallbackPrompt, buildGenerationPrompt, buildImageGenerationOptions, buildLoopInstruction, buildPromptTabPayload, buildReferenceImageMediaIds, buildRemixInstruction, buildScanInstruction, cleanAiResponse, createFlowServices, exportProjectToZip, formatTreeToMarkdown, frameToGeneration, getFormattedTimestamp, getHFToken, groupGenerationsToLabItems, hfDeleteProject, hfDownloadProject, hfListProjects, hfLoadImageAsBase64, hfLoadMetadata, hfLoadTags, hfSaveMetadata, hfSaveTags, hfUploadImage, hfUploadProjectForm, importProjectFromZip, injectXMPMetadata, interpretSdkError, parsePromptFile, parsePromptResponse, setHFToken, useKeyboardNavigation, useOnClickOutside };
|
package/dist/index.js
CHANGED
|
@@ -3747,11 +3747,15 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
3747
3747
|
};
|
|
3748
3748
|
hfUploadImage(base64, genId, hfToken).catch(() => {
|
|
3749
3749
|
});
|
|
3750
|
-
|
|
3751
|
-
const
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3750
|
+
hfLoadMetadata(hfToken).then((existing) => {
|
|
3751
|
+
const ids = new Set((existing || []).map((e) => e.id));
|
|
3752
|
+
if (!ids.has(genId)) {
|
|
3753
|
+
const next = [...existing || [], entry];
|
|
3754
|
+
hfSaveMetadata(next, hfToken).catch(() => {
|
|
3755
|
+
});
|
|
3756
|
+
setHfMetadata(next);
|
|
3757
|
+
}
|
|
3758
|
+
}).catch(() => {
|
|
3755
3759
|
});
|
|
3756
3760
|
}
|
|
3757
3761
|
} catch (err) {
|
|
@@ -3972,7 +3976,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
3972
3976
|
done++;
|
|
3973
3977
|
onProgress(done, total);
|
|
3974
3978
|
}
|
|
3975
|
-
const
|
|
3979
|
+
const localEntries = gens.map((g) => ({
|
|
3976
3980
|
id: g.id,
|
|
3977
3981
|
prompt: g.prompt || void 0,
|
|
3978
3982
|
seed: g.seed,
|
|
@@ -3981,8 +3985,12 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
3981
3985
|
timestamp: g.timestamp,
|
|
3982
3986
|
mimeType: g.base64.startsWith("data:image/png") ? "image/png" : "image/jpeg"
|
|
3983
3987
|
}));
|
|
3984
|
-
await
|
|
3985
|
-
|
|
3988
|
+
const existingMeta = await hfLoadMetadata(hfToken);
|
|
3989
|
+
const existingIds = new Set((existingMeta || []).map((e) => e.id));
|
|
3990
|
+
const newEntries = localEntries.filter((e) => !existingIds.has(e.id));
|
|
3991
|
+
const mergedMeta = [...existingMeta || [], ...newEntries];
|
|
3992
|
+
await hfSaveMetadata(mergedMeta, hfToken);
|
|
3993
|
+
setHfMetadata(mergedMeta);
|
|
3986
3994
|
if (workspaceTags) await hfSaveTags(workspaceTags, hfToken);
|
|
3987
3995
|
};
|
|
3988
3996
|
const handleComputeSyncDiff = async () => {
|
|
@@ -4024,13 +4032,15 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
4024
4032
|
(0, import_react21.useEffect)(() => {
|
|
4025
4033
|
if (activeTab === "setup" || activeTab === "sync") fetchServerProjects();
|
|
4026
4034
|
}, [activeTab]);
|
|
4027
|
-
(0, import_react21.
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4035
|
+
const [isHfRefreshing, setIsHfRefreshing] = (0, import_react21.useState)(false);
|
|
4036
|
+
const loadFromHF = (0, import_react21.useCallback)(async (token) => {
|
|
4037
|
+
setIsHfRefreshing(true);
|
|
4038
|
+
try {
|
|
4039
|
+
hfLoadTags(token).then((tags) => {
|
|
4040
|
+
if (tags?.by_category) setWorkspaceTags(tags);
|
|
4041
|
+
}).catch(() => {
|
|
4042
|
+
});
|
|
4043
|
+
const entries = await hfLoadMetadata(token);
|
|
4034
4044
|
if (!Array.isArray(entries) || entries.length === 0) return;
|
|
4035
4045
|
setHfMetadata(entries);
|
|
4036
4046
|
const skeletons = entries.map((e) => ({
|
|
@@ -4047,20 +4057,20 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
4047
4057
|
setHistory(skeletons);
|
|
4048
4058
|
if (skeletons.length > 0) setCurrentResult(skeletons[0]);
|
|
4049
4059
|
for (const entry of entries) {
|
|
4050
|
-
hfLoadImageAsBase64(entry.id,
|
|
4060
|
+
hfLoadImageAsBase64(entry.id, token).then((b64) => {
|
|
4051
4061
|
if (!b64) return;
|
|
4052
4062
|
const prefix = `data:${entry.mimeType || "image/jpeg"};base64,`;
|
|
4053
|
-
setGalleryItems((prev) => prev.map(
|
|
4054
|
-
|
|
4055
|
-
));
|
|
4056
|
-
setHistory((prev) => prev.map(
|
|
4057
|
-
(g) => g.id === entry.id ? { ...g, base64: prefix + b64 } : g
|
|
4058
|
-
));
|
|
4063
|
+
setGalleryItems((prev) => prev.map((g) => g.id === entry.id ? { ...g, base64: prefix + b64 } : g));
|
|
4064
|
+
setHistory((prev) => prev.map((g) => g.id === entry.id ? { ...g, base64: prefix + b64 } : g));
|
|
4059
4065
|
}).catch(() => {
|
|
4060
4066
|
});
|
|
4061
4067
|
}
|
|
4062
|
-
}
|
|
4063
|
-
|
|
4068
|
+
} finally {
|
|
4069
|
+
setIsHfRefreshing(false);
|
|
4070
|
+
}
|
|
4071
|
+
}, []);
|
|
4072
|
+
(0, import_react21.useEffect)(() => {
|
|
4073
|
+
if (hfToken) loadFromHF(hfToken);
|
|
4064
4074
|
}, [hfToken]);
|
|
4065
4075
|
(0, import_react21.useEffect)(() => {
|
|
4066
4076
|
if (!hfToken || !workspaceTags) return;
|
|
@@ -4411,7 +4421,10 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
4411
4421
|
] })
|
|
4412
4422
|
] }),
|
|
4413
4423
|
mobileTab === "browse" && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex flex-col flex-1 min-h-0", children: [
|
|
4414
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.
|
|
4424
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex border-b border-white/5 shrink-0", style: { height: 52 }, children: [
|
|
4425
|
+
["history", "gallery", "inspect"].map((tab) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("button", { onClick: () => setActiveTab(tab), className: `flex-1 flex items-center justify-center gap-1.5 transition-colors text-[11px] font-bold uppercase tracking-wide ${activeTab === tab ? "text-white border-b-2 border-white" : "text-white/30"}`, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "material-symbols-outlined text-[20px]", children: tab === "history" ? "history" : tab === "gallery" ? "photo_library" : "info" }) }, tab)),
|
|
4426
|
+
hfToken && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("button", { onClick: () => loadFromHF(hfToken), disabled: isHfRefreshing, className: "w-12 flex items-center justify-center text-white/20 active:text-white transition-colors disabled:opacity-30", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: `material-symbols-outlined text-[20px]${isHfRefreshing ? " animate-spin" : ""}`, children: "sync" }) })
|
|
4427
|
+
] }),
|
|
4415
4428
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex-1 overflow-hidden relative", children: [
|
|
4416
4429
|
activeTab === "history" && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(HistoryPanel, { history, currentResultId: currentResult?.id || null, onSelect: (g) => {
|
|
4417
4430
|
setCurrentResult(g);
|
|
@@ -4800,6 +4813,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
4800
4813
|
setActiveTab(tab);
|
|
4801
4814
|
setIsRightCollapsed(false);
|
|
4802
4815
|
}, className: `flex-1 flex items-center justify-center relative transition-colors ${activeTab === tab ? "text-white" : "text-white/20"}`, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "material-symbols-outlined text-[20px]", children: tab === "history" ? "history" : tab === "gallery" ? "photo_library" : tab === "inspect" ? "info" : tab === "setup" ? "settings" : tab === "sync" ? "cloud_sync" : "label" }) }, tab)) }),
|
|
4816
|
+
hfToken && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("button", { onClick: () => loadFromHF(hfToken), disabled: isHfRefreshing, className: "w-10 flex items-center justify-center text-white/20 hover:text-white/60 transition-colors disabled:opacity-30", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: `material-symbols-outlined text-[18px]${isHfRefreshing ? " animate-spin" : ""}`, children: "sync" }) }),
|
|
4803
4817
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("button", { onClick: () => setIsRightCollapsed(!isRightCollapsed), className: "w-10 flex items-center justify-center text-white/20 hover:text-white", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "material-symbols-outlined text-[18px]", children: isRightCollapsed ? "chevron_left" : "chevron_right" }) })
|
|
4804
4818
|
] }),
|
|
4805
4819
|
!isRightCollapsed && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex-1 overflow-hidden relative", children: [
|
|
@@ -4865,7 +4879,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
4865
4879
|
|
|
4866
4880
|
// src/index.ts
|
|
4867
4881
|
init_hfStateService();
|
|
4868
|
-
var LIB_VERSION = "1.3.
|
|
4882
|
+
var LIB_VERSION = "1.3.10";
|
|
4869
4883
|
// Annotate the CommonJS export names for ESM import in node:
|
|
4870
4884
|
0 && (module.exports = {
|
|
4871
4885
|
AvatarArchitectApp,
|
package/dist/index.mjs
CHANGED
|
@@ -3190,11 +3190,15 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
3190
3190
|
};
|
|
3191
3191
|
hfUploadImage(base64, genId, hfToken).catch(() => {
|
|
3192
3192
|
});
|
|
3193
|
-
|
|
3194
|
-
const
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3193
|
+
hfLoadMetadata(hfToken).then((existing) => {
|
|
3194
|
+
const ids = new Set((existing || []).map((e) => e.id));
|
|
3195
|
+
if (!ids.has(genId)) {
|
|
3196
|
+
const next = [...existing || [], entry];
|
|
3197
|
+
hfSaveMetadata(next, hfToken).catch(() => {
|
|
3198
|
+
});
|
|
3199
|
+
setHfMetadata(next);
|
|
3200
|
+
}
|
|
3201
|
+
}).catch(() => {
|
|
3198
3202
|
});
|
|
3199
3203
|
}
|
|
3200
3204
|
} catch (err) {
|
|
@@ -3415,7 +3419,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
3415
3419
|
done++;
|
|
3416
3420
|
onProgress(done, total);
|
|
3417
3421
|
}
|
|
3418
|
-
const
|
|
3422
|
+
const localEntries = gens.map((g) => ({
|
|
3419
3423
|
id: g.id,
|
|
3420
3424
|
prompt: g.prompt || void 0,
|
|
3421
3425
|
seed: g.seed,
|
|
@@ -3424,8 +3428,12 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
3424
3428
|
timestamp: g.timestamp,
|
|
3425
3429
|
mimeType: g.base64.startsWith("data:image/png") ? "image/png" : "image/jpeg"
|
|
3426
3430
|
}));
|
|
3427
|
-
await
|
|
3428
|
-
|
|
3431
|
+
const existingMeta = await hfLoadMetadata(hfToken);
|
|
3432
|
+
const existingIds = new Set((existingMeta || []).map((e) => e.id));
|
|
3433
|
+
const newEntries = localEntries.filter((e) => !existingIds.has(e.id));
|
|
3434
|
+
const mergedMeta = [...existingMeta || [], ...newEntries];
|
|
3435
|
+
await hfSaveMetadata(mergedMeta, hfToken);
|
|
3436
|
+
setHfMetadata(mergedMeta);
|
|
3429
3437
|
if (workspaceTags) await hfSaveTags(workspaceTags, hfToken);
|
|
3430
3438
|
};
|
|
3431
3439
|
const handleComputeSyncDiff = async () => {
|
|
@@ -3467,13 +3475,15 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
3467
3475
|
useEffect5(() => {
|
|
3468
3476
|
if (activeTab === "setup" || activeTab === "sync") fetchServerProjects();
|
|
3469
3477
|
}, [activeTab]);
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3478
|
+
const [isHfRefreshing, setIsHfRefreshing] = useState14(false);
|
|
3479
|
+
const loadFromHF = useCallback(async (token) => {
|
|
3480
|
+
setIsHfRefreshing(true);
|
|
3481
|
+
try {
|
|
3482
|
+
hfLoadTags(token).then((tags) => {
|
|
3483
|
+
if (tags?.by_category) setWorkspaceTags(tags);
|
|
3484
|
+
}).catch(() => {
|
|
3485
|
+
});
|
|
3486
|
+
const entries = await hfLoadMetadata(token);
|
|
3477
3487
|
if (!Array.isArray(entries) || entries.length === 0) return;
|
|
3478
3488
|
setHfMetadata(entries);
|
|
3479
3489
|
const skeletons = entries.map((e) => ({
|
|
@@ -3490,20 +3500,20 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
3490
3500
|
setHistory(skeletons);
|
|
3491
3501
|
if (skeletons.length > 0) setCurrentResult(skeletons[0]);
|
|
3492
3502
|
for (const entry of entries) {
|
|
3493
|
-
hfLoadImageAsBase64(entry.id,
|
|
3503
|
+
hfLoadImageAsBase64(entry.id, token).then((b64) => {
|
|
3494
3504
|
if (!b64) return;
|
|
3495
3505
|
const prefix = `data:${entry.mimeType || "image/jpeg"};base64,`;
|
|
3496
|
-
setGalleryItems((prev) => prev.map(
|
|
3497
|
-
|
|
3498
|
-
));
|
|
3499
|
-
setHistory((prev) => prev.map(
|
|
3500
|
-
(g) => g.id === entry.id ? { ...g, base64: prefix + b64 } : g
|
|
3501
|
-
));
|
|
3506
|
+
setGalleryItems((prev) => prev.map((g) => g.id === entry.id ? { ...g, base64: prefix + b64 } : g));
|
|
3507
|
+
setHistory((prev) => prev.map((g) => g.id === entry.id ? { ...g, base64: prefix + b64 } : g));
|
|
3502
3508
|
}).catch(() => {
|
|
3503
3509
|
});
|
|
3504
3510
|
}
|
|
3505
|
-
}
|
|
3506
|
-
|
|
3511
|
+
} finally {
|
|
3512
|
+
setIsHfRefreshing(false);
|
|
3513
|
+
}
|
|
3514
|
+
}, []);
|
|
3515
|
+
useEffect5(() => {
|
|
3516
|
+
if (hfToken) loadFromHF(hfToken);
|
|
3507
3517
|
}, [hfToken]);
|
|
3508
3518
|
useEffect5(() => {
|
|
3509
3519
|
if (!hfToken || !workspaceTags) return;
|
|
@@ -3854,7 +3864,10 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
3854
3864
|
] })
|
|
3855
3865
|
] }),
|
|
3856
3866
|
mobileTab === "browse" && /* @__PURE__ */ jsxs18("div", { className: "flex flex-col flex-1 min-h-0", children: [
|
|
3857
|
-
/* @__PURE__ */
|
|
3867
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex border-b border-white/5 shrink-0", style: { height: 52 }, children: [
|
|
3868
|
+
["history", "gallery", "inspect"].map((tab) => /* @__PURE__ */ jsx20("button", { onClick: () => setActiveTab(tab), className: `flex-1 flex items-center justify-center gap-1.5 transition-colors text-[11px] font-bold uppercase tracking-wide ${activeTab === tab ? "text-white border-b-2 border-white" : "text-white/30"}`, children: /* @__PURE__ */ jsx20("span", { className: "material-symbols-outlined text-[20px]", children: tab === "history" ? "history" : tab === "gallery" ? "photo_library" : "info" }) }, tab)),
|
|
3869
|
+
hfToken && /* @__PURE__ */ jsx20("button", { onClick: () => loadFromHF(hfToken), disabled: isHfRefreshing, className: "w-12 flex items-center justify-center text-white/20 active:text-white transition-colors disabled:opacity-30", children: /* @__PURE__ */ jsx20("span", { className: `material-symbols-outlined text-[20px]${isHfRefreshing ? " animate-spin" : ""}`, children: "sync" }) })
|
|
3870
|
+
] }),
|
|
3858
3871
|
/* @__PURE__ */ jsxs18("div", { className: "flex-1 overflow-hidden relative", children: [
|
|
3859
3872
|
activeTab === "history" && /* @__PURE__ */ jsx20(HistoryPanel, { history, currentResultId: currentResult?.id || null, onSelect: (g) => {
|
|
3860
3873
|
setCurrentResult(g);
|
|
@@ -4243,6 +4256,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
4243
4256
|
setActiveTab(tab);
|
|
4244
4257
|
setIsRightCollapsed(false);
|
|
4245
4258
|
}, className: `flex-1 flex items-center justify-center relative transition-colors ${activeTab === tab ? "text-white" : "text-white/20"}`, children: /* @__PURE__ */ jsx20("span", { className: "material-symbols-outlined text-[20px]", children: tab === "history" ? "history" : tab === "gallery" ? "photo_library" : tab === "inspect" ? "info" : tab === "setup" ? "settings" : tab === "sync" ? "cloud_sync" : "label" }) }, tab)) }),
|
|
4259
|
+
hfToken && /* @__PURE__ */ jsx20("button", { onClick: () => loadFromHF(hfToken), disabled: isHfRefreshing, className: "w-10 flex items-center justify-center text-white/20 hover:text-white/60 transition-colors disabled:opacity-30", children: /* @__PURE__ */ jsx20("span", { className: `material-symbols-outlined text-[18px]${isHfRefreshing ? " animate-spin" : ""}`, children: "sync" }) }),
|
|
4246
4260
|
/* @__PURE__ */ jsx20("button", { onClick: () => setIsRightCollapsed(!isRightCollapsed), className: "w-10 flex items-center justify-center text-white/20 hover:text-white", children: /* @__PURE__ */ jsx20("span", { className: "material-symbols-outlined text-[18px]", children: isRightCollapsed ? "chevron_left" : "chevron_right" }) })
|
|
4247
4261
|
] }),
|
|
4248
4262
|
!isRightCollapsed && /* @__PURE__ */ jsxs18("div", { className: "flex-1 overflow-hidden relative", children: [
|
|
@@ -4307,7 +4321,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
4307
4321
|
}
|
|
4308
4322
|
|
|
4309
4323
|
// src/index.ts
|
|
4310
|
-
var LIB_VERSION = "1.3.
|
|
4324
|
+
var LIB_VERSION = "1.3.10";
|
|
4311
4325
|
export {
|
|
4312
4326
|
AvatarArchitectApp,
|
|
4313
4327
|
CollapsibleCard,
|