@rslsp1/fa-app-tools 1.1.3 → 1.1.4
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 +60 -6
- package/dist/index.mjs +60 -6
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -308,6 +308,6 @@ interface ProjectSyncTabProps {
|
|
|
308
308
|
}
|
|
309
309
|
declare const ProjectSyncTab: React.FC<ProjectSyncTabProps>;
|
|
310
310
|
|
|
311
|
-
declare const LIB_VERSION = "1.1.
|
|
311
|
+
declare const LIB_VERSION = "1.1.4";
|
|
312
312
|
|
|
313
313
|
export { AvatarArchitectApp, type AvatarArchitectAppProps, CollapsibleCard, CompactDropdown, type ExtractedCharacter, FaToolsBadge, type FlowSdk, GLOBAL_STYLES, type Generation, HistoryPanel, InspectPanel, LIB_VERSION, ListView, type MediaItem, MediaLibrary, PillButton, type ProjectMeta, type ProjectSettings, ProjectSyncTab, PromptTab, SectionLabel, type SelectedTag, SetupPanel, type SyncDiff, type TagOption, type WorkspaceTags, buildFallbackPrompt, buildGenerationPrompt, buildImageGenerationOptions, buildPromptTabPayload, cleanAiResponse, createFlowServices, exportProjectToZip, formatTreeToMarkdown, getFormattedTimestamp, importProjectFromZip, injectXMPMetadata, interpretSdkError, parsePromptFile, parsePromptResponse, useKeyboardNavigation, useOnClickOutside };
|
package/dist/index.d.ts
CHANGED
|
@@ -308,6 +308,6 @@ interface ProjectSyncTabProps {
|
|
|
308
308
|
}
|
|
309
309
|
declare const ProjectSyncTab: React.FC<ProjectSyncTabProps>;
|
|
310
310
|
|
|
311
|
-
declare const LIB_VERSION = "1.1.
|
|
311
|
+
declare const LIB_VERSION = "1.1.4";
|
|
312
312
|
|
|
313
313
|
export { AvatarArchitectApp, type AvatarArchitectAppProps, CollapsibleCard, CompactDropdown, type ExtractedCharacter, FaToolsBadge, type FlowSdk, GLOBAL_STYLES, type Generation, HistoryPanel, InspectPanel, LIB_VERSION, ListView, type MediaItem, MediaLibrary, PillButton, type ProjectMeta, type ProjectSettings, ProjectSyncTab, PromptTab, SectionLabel, type SelectedTag, SetupPanel, type SyncDiff, type TagOption, type WorkspaceTags, buildFallbackPrompt, buildGenerationPrompt, buildImageGenerationOptions, buildPromptTabPayload, cleanAiResponse, createFlowServices, exportProjectToZip, formatTreeToMarkdown, getFormattedTimestamp, importProjectFromZip, injectXMPMetadata, interpretSdkError, parsePromptFile, parsePromptResponse, useKeyboardNavigation, useOnClickOutside };
|
package/dist/index.js
CHANGED
|
@@ -1721,6 +1721,20 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
1721
1721
|
const [seedMode, setSeedMode] = (0, import_react14.useState)("random");
|
|
1722
1722
|
const [isLeftCollapsed, setIsLeftCollapsed] = (0, import_react14.useState)(false);
|
|
1723
1723
|
const [isRightCollapsed, setIsRightCollapsed] = (0, import_react14.useState)(false);
|
|
1724
|
+
const [leftPanelWidth, setLeftPanelWidth] = (0, import_react14.useState)(() => {
|
|
1725
|
+
try {
|
|
1726
|
+
return parseInt(localStorage.getItem("aa-left-width") || "260", 10);
|
|
1727
|
+
} catch {
|
|
1728
|
+
return 260;
|
|
1729
|
+
}
|
|
1730
|
+
});
|
|
1731
|
+
const [rightPanelWidth, setRightPanelWidth] = (0, import_react14.useState)(() => {
|
|
1732
|
+
try {
|
|
1733
|
+
return parseInt(localStorage.getItem("aa-right-width") || "320", 10);
|
|
1734
|
+
} catch {
|
|
1735
|
+
return 320;
|
|
1736
|
+
}
|
|
1737
|
+
});
|
|
1724
1738
|
const [isPromptCollapsed, setIsPromptCollapsed] = (0, import_react14.useState)(false);
|
|
1725
1739
|
const [projectActionState, setProjectActionState] = (0, import_react14.useState)("idle");
|
|
1726
1740
|
const syncServerDataRef = (0, import_react14.useRef)(null);
|
|
@@ -1806,6 +1820,44 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
1806
1820
|
setActiveReferenceId(null);
|
|
1807
1821
|
setActiveReferenceThumbnail(null);
|
|
1808
1822
|
};
|
|
1823
|
+
const startLeftResize = (e) => {
|
|
1824
|
+
e.preventDefault();
|
|
1825
|
+
const startX = e.clientX;
|
|
1826
|
+
const startW = leftPanelWidth;
|
|
1827
|
+
const onMove = (ev) => {
|
|
1828
|
+
const w = Math.max(180, Math.min(520, startW + ev.clientX - startX));
|
|
1829
|
+
setLeftPanelWidth(w);
|
|
1830
|
+
try {
|
|
1831
|
+
localStorage.setItem("aa-left-width", String(w));
|
|
1832
|
+
} catch {
|
|
1833
|
+
}
|
|
1834
|
+
};
|
|
1835
|
+
const onUp = () => {
|
|
1836
|
+
document.removeEventListener("mousemove", onMove);
|
|
1837
|
+
document.removeEventListener("mouseup", onUp);
|
|
1838
|
+
};
|
|
1839
|
+
document.addEventListener("mousemove", onMove);
|
|
1840
|
+
document.addEventListener("mouseup", onUp);
|
|
1841
|
+
};
|
|
1842
|
+
const startRightResize = (e) => {
|
|
1843
|
+
e.preventDefault();
|
|
1844
|
+
const startX = e.clientX;
|
|
1845
|
+
const startW = rightPanelWidth;
|
|
1846
|
+
const onMove = (ev) => {
|
|
1847
|
+
const w = Math.max(180, Math.min(520, startW - (ev.clientX - startX)));
|
|
1848
|
+
setRightPanelWidth(w);
|
|
1849
|
+
try {
|
|
1850
|
+
localStorage.setItem("aa-right-width", String(w));
|
|
1851
|
+
} catch {
|
|
1852
|
+
}
|
|
1853
|
+
};
|
|
1854
|
+
const onUp = () => {
|
|
1855
|
+
document.removeEventListener("mousemove", onMove);
|
|
1856
|
+
document.removeEventListener("mouseup", onUp);
|
|
1857
|
+
};
|
|
1858
|
+
document.addEventListener("mousemove", onMove);
|
|
1859
|
+
document.addEventListener("mouseup", onUp);
|
|
1860
|
+
};
|
|
1809
1861
|
const handleScanImage = async (file) => {
|
|
1810
1862
|
setIsScanningImage(true);
|
|
1811
1863
|
try {
|
|
@@ -2382,7 +2434,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2382
2434
|
} })
|
|
2383
2435
|
] })
|
|
2384
2436
|
] }),
|
|
2385
|
-
|
|
2437
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { style: { display: mobileTab === "tools" ? "flex" : "none" }, className: "flex flex-col flex-1 min-h-0", children: [
|
|
2386
2438
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex border-b border-white/5 shrink-0", style: { height: 52 }, children: [
|
|
2387
2439
|
workspaceTags && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("button", { onClick: () => {
|
|
2388
2440
|
setLeftTab("prompt");
|
|
@@ -2439,10 +2491,10 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2439
2491
|
isGeneratingNodeId: (id) => isSynthesizing && focusedNodeId === id
|
|
2440
2492
|
}
|
|
2441
2493
|
) }),
|
|
2442
|
-
leftTab === "prompt" &&
|
|
2494
|
+
workspaceTags && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { style: { display: leftTab === "prompt" && activeTab !== "setup" && activeTab !== "sync" ? "flex" : "none" }, className: "absolute inset-0 flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(PromptTab, { workspaceTags, onGenerate: handlePromptTabGenerate, isGenerating: isPromptTabGenerating, feedback: promptFeedback, promptResult: activePrompt || null, lastPayload: lastPromptPayload, onGenerateImage: (prompt) => {
|
|
2443
2495
|
handleGenerateImage(prompt);
|
|
2444
2496
|
setMobileTab("stage");
|
|
2445
|
-
}, onTagCreate: handleTagCreate, onTagUpdate: handleTagUpdate, onTagDelete: handleTagDelete, onScanImage: handleScanImage, isScanning: isScanningImage }),
|
|
2497
|
+
}, onTagCreate: handleTagCreate, onTagUpdate: handleTagUpdate, onTagDelete: handleTagDelete, onScanImage: handleScanImage, isScanning: isScanningImage }) }),
|
|
2446
2498
|
activeTab === "setup" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SetupPanel, { onWorkspaceImport: handleWorkspaceImport, buildInfo }),
|
|
2447
2499
|
activeTab === "sync" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2448
2500
|
ProjectSyncTab,
|
|
@@ -2578,7 +2630,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2578
2630
|
}
|
|
2579
2631
|
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex h-screen w-screen bg-[#0e0e0e] text-white overflow-hidden", style: hcStyle, children: [
|
|
2580
2632
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "absolute top-2 right-2 z-50", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("button", { onClick: () => setShowStart(true), className: "text-white/10 hover:text-white/30 transition-colors text-[10px]", children: "\u21C4" }) }),
|
|
2581
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex flex-col border-r border-white/5 overflow-hidden relative bg-black/10 shrink-0", style: { width: isLeftCollapsed ? 48 :
|
|
2633
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex flex-col border-r border-white/5 overflow-hidden relative bg-black/10 shrink-0", style: { width: isLeftCollapsed ? 48 : leftPanelWidth, transition: "none" }, children: [
|
|
2582
2634
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "h-14 border-b border-white/5 flex items-center justify-between shrink-0 px-1", children: [
|
|
2583
2635
|
!isLeftCollapsed && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex flex-1 gap-1", children: [
|
|
2584
2636
|
workspaceTags && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("button", { onClick: () => setLeftTab("prompt"), className: `flex-1 flex items-center justify-center gap-1 h-8 rounded-lg text-[8px] font-bold uppercase tracking-wide transition-colors ${leftTab === "prompt" ? "bg-white/10 text-white" : "text-white/30 hover:text-white/60"}`, children: [
|
|
@@ -2621,6 +2673,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2621
2673
|
leftTab === "prompt" && workspaceTags && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(PromptTab, { workspaceTags, onGenerate: handlePromptTabGenerate, isGenerating: isPromptTabGenerating, feedback: promptFeedback, promptResult: activePrompt || null, lastPayload: lastPromptPayload, onGenerateImage: (prompt) => handleGenerateImage(prompt), onTagCreate: handleTagCreate, onTagUpdate: handleTagUpdate, onTagDelete: handleTagDelete, onScanImage: handleScanImage, isScanning: isScanningImage })
|
|
2622
2674
|
] })
|
|
2623
2675
|
] }),
|
|
2676
|
+
!isLeftCollapsed && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { onMouseDown: startLeftResize, className: "w-1 shrink-0 cursor-col-resize hover:bg-white/20 active:bg-white/30 transition-colors", style: { background: "transparent" } }),
|
|
2624
2677
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex-1 flex flex-col bg-[#0b0b0b] overflow-hidden", children: [
|
|
2625
2678
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "h-14 border-b border-white/5 flex items-center px-4 gap-2 justify-between shrink-0 bg-black/20", children: [
|
|
2626
2679
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
@@ -2674,7 +2727,8 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2674
2727
|
] }) })
|
|
2675
2728
|
] })
|
|
2676
2729
|
] }),
|
|
2677
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.
|
|
2730
|
+
!isRightCollapsed && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { onMouseDown: startRightResize, className: "w-1 shrink-0 cursor-col-resize hover:bg-white/20 active:bg-white/30 transition-colors", style: { background: "transparent" } }),
|
|
2731
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex flex-col border-l border-white/5 bg-[#0e0e0e] shrink-0", style: { width: isRightCollapsed ? 60 : rightPanelWidth, transition: "none" }, children: [
|
|
2678
2732
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex border-b border-white/5 h-14 shrink-0 overflow-hidden", children: [
|
|
2679
2733
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "flex flex-1", children: ["history", "gallery", "inspect", "setup", "sync"].map((tab) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("button", { onClick: () => {
|
|
2680
2734
|
setActiveTab(tab);
|
|
@@ -2722,7 +2776,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2722
2776
|
}
|
|
2723
2777
|
|
|
2724
2778
|
// src/index.ts
|
|
2725
|
-
var LIB_VERSION = "1.1.
|
|
2779
|
+
var LIB_VERSION = "1.1.4";
|
|
2726
2780
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2727
2781
|
0 && (module.exports = {
|
|
2728
2782
|
AvatarArchitectApp,
|
package/dist/index.mjs
CHANGED
|
@@ -1655,6 +1655,20 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
1655
1655
|
const [seedMode, setSeedMode] = useState6("random");
|
|
1656
1656
|
const [isLeftCollapsed, setIsLeftCollapsed] = useState6(false);
|
|
1657
1657
|
const [isRightCollapsed, setIsRightCollapsed] = useState6(false);
|
|
1658
|
+
const [leftPanelWidth, setLeftPanelWidth] = useState6(() => {
|
|
1659
|
+
try {
|
|
1660
|
+
return parseInt(localStorage.getItem("aa-left-width") || "260", 10);
|
|
1661
|
+
} catch {
|
|
1662
|
+
return 260;
|
|
1663
|
+
}
|
|
1664
|
+
});
|
|
1665
|
+
const [rightPanelWidth, setRightPanelWidth] = useState6(() => {
|
|
1666
|
+
try {
|
|
1667
|
+
return parseInt(localStorage.getItem("aa-right-width") || "320", 10);
|
|
1668
|
+
} catch {
|
|
1669
|
+
return 320;
|
|
1670
|
+
}
|
|
1671
|
+
});
|
|
1658
1672
|
const [isPromptCollapsed, setIsPromptCollapsed] = useState6(false);
|
|
1659
1673
|
const [projectActionState, setProjectActionState] = useState6("idle");
|
|
1660
1674
|
const syncServerDataRef = useRef6(null);
|
|
@@ -1740,6 +1754,44 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
1740
1754
|
setActiveReferenceId(null);
|
|
1741
1755
|
setActiveReferenceThumbnail(null);
|
|
1742
1756
|
};
|
|
1757
|
+
const startLeftResize = (e) => {
|
|
1758
|
+
e.preventDefault();
|
|
1759
|
+
const startX = e.clientX;
|
|
1760
|
+
const startW = leftPanelWidth;
|
|
1761
|
+
const onMove = (ev) => {
|
|
1762
|
+
const w = Math.max(180, Math.min(520, startW + ev.clientX - startX));
|
|
1763
|
+
setLeftPanelWidth(w);
|
|
1764
|
+
try {
|
|
1765
|
+
localStorage.setItem("aa-left-width", String(w));
|
|
1766
|
+
} catch {
|
|
1767
|
+
}
|
|
1768
|
+
};
|
|
1769
|
+
const onUp = () => {
|
|
1770
|
+
document.removeEventListener("mousemove", onMove);
|
|
1771
|
+
document.removeEventListener("mouseup", onUp);
|
|
1772
|
+
};
|
|
1773
|
+
document.addEventListener("mousemove", onMove);
|
|
1774
|
+
document.addEventListener("mouseup", onUp);
|
|
1775
|
+
};
|
|
1776
|
+
const startRightResize = (e) => {
|
|
1777
|
+
e.preventDefault();
|
|
1778
|
+
const startX = e.clientX;
|
|
1779
|
+
const startW = rightPanelWidth;
|
|
1780
|
+
const onMove = (ev) => {
|
|
1781
|
+
const w = Math.max(180, Math.min(520, startW - (ev.clientX - startX)));
|
|
1782
|
+
setRightPanelWidth(w);
|
|
1783
|
+
try {
|
|
1784
|
+
localStorage.setItem("aa-right-width", String(w));
|
|
1785
|
+
} catch {
|
|
1786
|
+
}
|
|
1787
|
+
};
|
|
1788
|
+
const onUp = () => {
|
|
1789
|
+
document.removeEventListener("mousemove", onMove);
|
|
1790
|
+
document.removeEventListener("mouseup", onUp);
|
|
1791
|
+
};
|
|
1792
|
+
document.addEventListener("mousemove", onMove);
|
|
1793
|
+
document.addEventListener("mouseup", onUp);
|
|
1794
|
+
};
|
|
1743
1795
|
const handleScanImage = async (file) => {
|
|
1744
1796
|
setIsScanningImage(true);
|
|
1745
1797
|
try {
|
|
@@ -2316,7 +2368,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2316
2368
|
} })
|
|
2317
2369
|
] })
|
|
2318
2370
|
] }),
|
|
2319
|
-
|
|
2371
|
+
/* @__PURE__ */ jsxs11("div", { style: { display: mobileTab === "tools" ? "flex" : "none" }, className: "flex flex-col flex-1 min-h-0", children: [
|
|
2320
2372
|
/* @__PURE__ */ jsxs11("div", { className: "flex border-b border-white/5 shrink-0", style: { height: 52 }, children: [
|
|
2321
2373
|
workspaceTags && /* @__PURE__ */ jsxs11("button", { onClick: () => {
|
|
2322
2374
|
setLeftTab("prompt");
|
|
@@ -2373,10 +2425,10 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2373
2425
|
isGeneratingNodeId: (id) => isSynthesizing && focusedNodeId === id
|
|
2374
2426
|
}
|
|
2375
2427
|
) }),
|
|
2376
|
-
leftTab === "prompt" &&
|
|
2428
|
+
workspaceTags && /* @__PURE__ */ jsx13("div", { style: { display: leftTab === "prompt" && activeTab !== "setup" && activeTab !== "sync" ? "flex" : "none" }, className: "absolute inset-0 flex-col", children: /* @__PURE__ */ jsx13(PromptTab, { workspaceTags, onGenerate: handlePromptTabGenerate, isGenerating: isPromptTabGenerating, feedback: promptFeedback, promptResult: activePrompt || null, lastPayload: lastPromptPayload, onGenerateImage: (prompt) => {
|
|
2377
2429
|
handleGenerateImage(prompt);
|
|
2378
2430
|
setMobileTab("stage");
|
|
2379
|
-
}, onTagCreate: handleTagCreate, onTagUpdate: handleTagUpdate, onTagDelete: handleTagDelete, onScanImage: handleScanImage, isScanning: isScanningImage }),
|
|
2431
|
+
}, onTagCreate: handleTagCreate, onTagUpdate: handleTagUpdate, onTagDelete: handleTagDelete, onScanImage: handleScanImage, isScanning: isScanningImage }) }),
|
|
2380
2432
|
activeTab === "setup" && /* @__PURE__ */ jsx13(SetupPanel, { onWorkspaceImport: handleWorkspaceImport, buildInfo }),
|
|
2381
2433
|
activeTab === "sync" && /* @__PURE__ */ jsx13(
|
|
2382
2434
|
ProjectSyncTab,
|
|
@@ -2512,7 +2564,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2512
2564
|
}
|
|
2513
2565
|
return /* @__PURE__ */ jsxs11("div", { className: "flex h-screen w-screen bg-[#0e0e0e] text-white overflow-hidden", style: hcStyle, children: [
|
|
2514
2566
|
/* @__PURE__ */ jsx13("div", { className: "absolute top-2 right-2 z-50", children: /* @__PURE__ */ jsx13("button", { onClick: () => setShowStart(true), className: "text-white/10 hover:text-white/30 transition-colors text-[10px]", children: "\u21C4" }) }),
|
|
2515
|
-
/* @__PURE__ */ jsxs11("div", { className: "flex flex-col border-r border-white/5 overflow-hidden relative bg-black/10 shrink-0", style: { width: isLeftCollapsed ? 48 :
|
|
2567
|
+
/* @__PURE__ */ jsxs11("div", { className: "flex flex-col border-r border-white/5 overflow-hidden relative bg-black/10 shrink-0", style: { width: isLeftCollapsed ? 48 : leftPanelWidth, transition: "none" }, children: [
|
|
2516
2568
|
/* @__PURE__ */ jsxs11("div", { className: "h-14 border-b border-white/5 flex items-center justify-between shrink-0 px-1", children: [
|
|
2517
2569
|
!isLeftCollapsed && /* @__PURE__ */ jsxs11("div", { className: "flex flex-1 gap-1", children: [
|
|
2518
2570
|
workspaceTags && /* @__PURE__ */ jsxs11("button", { onClick: () => setLeftTab("prompt"), className: `flex-1 flex items-center justify-center gap-1 h-8 rounded-lg text-[8px] font-bold uppercase tracking-wide transition-colors ${leftTab === "prompt" ? "bg-white/10 text-white" : "text-white/30 hover:text-white/60"}`, children: [
|
|
@@ -2555,6 +2607,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2555
2607
|
leftTab === "prompt" && workspaceTags && /* @__PURE__ */ jsx13(PromptTab, { workspaceTags, onGenerate: handlePromptTabGenerate, isGenerating: isPromptTabGenerating, feedback: promptFeedback, promptResult: activePrompt || null, lastPayload: lastPromptPayload, onGenerateImage: (prompt) => handleGenerateImage(prompt), onTagCreate: handleTagCreate, onTagUpdate: handleTagUpdate, onTagDelete: handleTagDelete, onScanImage: handleScanImage, isScanning: isScanningImage })
|
|
2556
2608
|
] })
|
|
2557
2609
|
] }),
|
|
2610
|
+
!isLeftCollapsed && /* @__PURE__ */ jsx13("div", { onMouseDown: startLeftResize, className: "w-1 shrink-0 cursor-col-resize hover:bg-white/20 active:bg-white/30 transition-colors", style: { background: "transparent" } }),
|
|
2558
2611
|
/* @__PURE__ */ jsxs11("div", { className: "flex-1 flex flex-col bg-[#0b0b0b] overflow-hidden", children: [
|
|
2559
2612
|
/* @__PURE__ */ jsxs11("div", { className: "h-14 border-b border-white/5 flex items-center px-4 gap-2 justify-between shrink-0 bg-black/20", children: [
|
|
2560
2613
|
/* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-1.5", children: [
|
|
@@ -2608,7 +2661,8 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2608
2661
|
] }) })
|
|
2609
2662
|
] })
|
|
2610
2663
|
] }),
|
|
2611
|
-
/* @__PURE__ */
|
|
2664
|
+
!isRightCollapsed && /* @__PURE__ */ jsx13("div", { onMouseDown: startRightResize, className: "w-1 shrink-0 cursor-col-resize hover:bg-white/20 active:bg-white/30 transition-colors", style: { background: "transparent" } }),
|
|
2665
|
+
/* @__PURE__ */ jsxs11("div", { className: "flex flex-col border-l border-white/5 bg-[#0e0e0e] shrink-0", style: { width: isRightCollapsed ? 60 : rightPanelWidth, transition: "none" }, children: [
|
|
2612
2666
|
/* @__PURE__ */ jsxs11("div", { className: "flex border-b border-white/5 h-14 shrink-0 overflow-hidden", children: [
|
|
2613
2667
|
/* @__PURE__ */ jsx13("div", { className: "flex flex-1", children: ["history", "gallery", "inspect", "setup", "sync"].map((tab) => /* @__PURE__ */ jsx13("button", { onClick: () => {
|
|
2614
2668
|
setActiveTab(tab);
|
|
@@ -2656,7 +2710,7 @@ function AvatarArchitectApp({ onGenerateImage, onGeneratePrompt, onDownload, onS
|
|
|
2656
2710
|
}
|
|
2657
2711
|
|
|
2658
2712
|
// src/index.ts
|
|
2659
|
-
var LIB_VERSION = "1.1.
|
|
2713
|
+
var LIB_VERSION = "1.1.4";
|
|
2660
2714
|
export {
|
|
2661
2715
|
AvatarArchitectApp,
|
|
2662
2716
|
CollapsibleCard,
|