@treasuryspatial/prompt-ui-kit 0.1.14 → 0.1.21
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/FeedbackPanel.d.ts +20 -1
- package/dist/FeedbackPanel.d.ts.map +1 -1
- package/dist/FeedbackPanel.js +251 -25
- package/dist/FullscreenImage.d.ts +12 -1
- package/dist/FullscreenImage.d.ts.map +1 -1
- package/dist/FullscreenImage.js +319 -41
- package/dist/GalleryThumbCard.d.ts +2 -1
- package/dist/GalleryThumbCard.d.ts.map +1 -1
- package/dist/GalleryThumbCard.js +121 -3
- package/dist/ImageReferenceStrip.d.ts +9 -0
- package/dist/ImageReferenceStrip.d.ts.map +1 -0
- package/dist/ImageReferenceStrip.js +47 -0
- package/dist/PromptDebugPanel.d.ts +1 -2
- package/dist/PromptDebugPanel.d.ts.map +1 -1
- package/dist/PromptDebugPanel.js +74 -2
- package/dist/RenderHistoryPanel.d.ts +6 -1
- package/dist/RenderHistoryPanel.d.ts.map +1 -1
- package/dist/RenderHistoryPanel.js +108 -17
- package/dist/RenderImageStage.d.ts +10 -0
- package/dist/RenderImageStage.d.ts.map +1 -0
- package/dist/RenderImageStage.js +90 -0
- package/dist/RenderLightboxModal.d.ts +4 -2
- package/dist/RenderLightboxModal.d.ts.map +1 -1
- package/dist/RenderLightboxModal.js +54 -18
- package/dist/RenderPanel.d.ts +17 -16
- package/dist/RenderPanel.d.ts.map +1 -1
- package/dist/RenderPanel.js +178 -204
- package/dist/createRenderHistoryActions.d.ts +11 -0
- package/dist/createRenderHistoryActions.d.ts.map +1 -0
- package/dist/createRenderHistoryActions.js +63 -0
- package/dist/imageDetailPanels.d.ts +14 -0
- package/dist/imageDetailPanels.d.ts.map +1 -0
- package/dist/imageDetailPanels.js +128 -0
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/useRenderImageFlow.d.ts +2 -2
- package/dist/useRenderImageFlow.d.ts.map +1 -1
- package/dist/useRenderImageFlow.js +1 -1
- package/dist/useRenderLightbox.d.ts +14 -2
- package/dist/useRenderLightbox.d.ts.map +1 -1
- package/dist/useRenderLightbox.js +333 -34
- package/package.json +7 -5
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { RenderHistoryAction } from './RenderHistoryPanel.js';
|
|
2
|
+
import type { RenderLightboxState } from './useRenderLightbox.js';
|
|
3
|
+
type LightboxActionBridge = Pick<RenderLightboxState, 'open' | 'copyPrompt' | 'shareImage' | 'copyPublicLink' | 'copyImageLink' | 'downloadImage' | 'restartFromSnapshot' | 'submitToGallery'>;
|
|
4
|
+
export type CreateRenderHistoryActionsOptions = {
|
|
5
|
+
lightbox: LightboxActionBridge;
|
|
6
|
+
galleryActionLabel?: string;
|
|
7
|
+
includeGalleryAction?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare const createRenderHistoryActions: ({ lightbox, galleryActionLabel, includeGalleryAction, }: CreateRenderHistoryActionsOptions) => RenderHistoryAction[];
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=createRenderHistoryActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRenderHistoryActions.d.ts","sourceRoot":"","sources":["../src/createRenderHistoryActions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAsB,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,KAAK,oBAAoB,GAAG,IAAI,CAC9B,mBAAmB,EACjB,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,qBAAqB,GACrB,iBAAiB,CACpB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,yDAIxC,iCAAiC,KAAG,mBAAmB,EAgEzD,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
export const createRenderHistoryActions = ({ lightbox, galleryActionLabel = 'propose to gallery', includeGalleryAction = true, }) => {
|
|
3
|
+
const actions = [
|
|
4
|
+
{
|
|
5
|
+
id: 'copy-public-link',
|
|
6
|
+
label: 'copy image page link',
|
|
7
|
+
onSelect: (entry) => {
|
|
8
|
+
void lightbox.copyPublicLink(entry, entry.outputImage);
|
|
9
|
+
},
|
|
10
|
+
disabled: (entry) => !(entry.storage?.key || entry.outputImage),
|
|
11
|
+
variant: 'secondary',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: 'copy-image-link',
|
|
15
|
+
label: 'copy direct image url',
|
|
16
|
+
onSelect: (entry) => {
|
|
17
|
+
void lightbox.copyImageLink(entry, entry.outputImage);
|
|
18
|
+
},
|
|
19
|
+
disabled: (entry) => !(entry.storage?.key || entry.storage?.url || entry.outputImage),
|
|
20
|
+
variant: 'secondary',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: 'download-image',
|
|
24
|
+
label: 'download image',
|
|
25
|
+
onSelect: (entry) => {
|
|
26
|
+
lightbox.downloadImage(entry, entry.outputImage);
|
|
27
|
+
},
|
|
28
|
+
disabled: (entry) => !(entry.storage?.key || entry.storage?.url || entry.outputImage),
|
|
29
|
+
variant: 'secondary',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'copy-prompt',
|
|
33
|
+
label: 'copy prompt',
|
|
34
|
+
onSelect: (entry) => {
|
|
35
|
+
void lightbox.copyPrompt(entry);
|
|
36
|
+
},
|
|
37
|
+
disabled: (entry) => !(entry.fullPrompt || entry.prompt),
|
|
38
|
+
variant: 'secondary',
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
actions.push({
|
|
42
|
+
id: 'restart-from-snapshot',
|
|
43
|
+
label: 'restart from snapshot',
|
|
44
|
+
onSelect: (entry) => {
|
|
45
|
+
void lightbox.restartFromSnapshot(entry);
|
|
46
|
+
},
|
|
47
|
+
disabled: (entry) => !(entry.snapshot || entry.snapshotId),
|
|
48
|
+
variant: 'secondary',
|
|
49
|
+
});
|
|
50
|
+
if (includeGalleryAction) {
|
|
51
|
+
actions.push({
|
|
52
|
+
id: 'submit-gallery',
|
|
53
|
+
label: galleryActionLabel,
|
|
54
|
+
onSelect: (entry) => {
|
|
55
|
+
lightbox.open(entry, entry.outputImage, entry.title || 'render output');
|
|
56
|
+
void lightbox.submitToGallery(entry, entry.outputImage);
|
|
57
|
+
},
|
|
58
|
+
disabled: (entry) => !(entry.storage?.bucket && entry.storage?.key),
|
|
59
|
+
variant: 'primary',
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return actions;
|
|
63
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ComposerGallerySnapshot } from '@treasuryspatial/render-kit';
|
|
2
|
+
import type { FullscreenDetailPanelConfig } from './FullscreenImage.js';
|
|
3
|
+
type ImageDetailSource = {
|
|
4
|
+
title?: string | null;
|
|
5
|
+
modeLabel?: string | null;
|
|
6
|
+
createdAt?: string | null;
|
|
7
|
+
prompt?: string | null;
|
|
8
|
+
promptManifest?: Record<string, unknown> | null;
|
|
9
|
+
snapshot?: ComposerGallerySnapshot | null;
|
|
10
|
+
detailWarnings?: string[] | null;
|
|
11
|
+
};
|
|
12
|
+
export declare const buildImageDetailPanels: ({ title, modeLabel, createdAt, prompt, promptManifest, snapshot, detailWarnings, }: ImageDetailSource) => FullscreenDetailPanelConfig[];
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=imageDetailPanels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageDetailPanels.d.ts","sourceRoot":"","sources":["../src/imageDetailPanels.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAClC,CAAC;AAqJF,eAAO,MAAM,sBAAsB,GAAI,oFAQpC,iBAAiB,KAAG,2BAA2B,EAkBjD,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import styled from 'styled-components';
|
|
4
|
+
import { buildImageDetailModel, } from '@treasuryspatial/render-kit';
|
|
5
|
+
const SectionStack = styled.div `
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
gap: 12px;
|
|
9
|
+
`;
|
|
10
|
+
const FieldsGrid = styled.div `
|
|
11
|
+
display: grid;
|
|
12
|
+
gap: 8px;
|
|
13
|
+
|
|
14
|
+
@media (min-width: 640px) {
|
|
15
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
16
|
+
}
|
|
17
|
+
`;
|
|
18
|
+
const FieldCard = styled.div `
|
|
19
|
+
border-radius: 12px;
|
|
20
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
21
|
+
background: rgba(255, 255, 255, 0.04);
|
|
22
|
+
padding: 10px 12px;
|
|
23
|
+
`;
|
|
24
|
+
const FieldLabel = styled.div `
|
|
25
|
+
font-size: 10px;
|
|
26
|
+
letter-spacing: 0.18em;
|
|
27
|
+
text-transform: uppercase;
|
|
28
|
+
color: rgba(255, 255, 255, 0.45);
|
|
29
|
+
`;
|
|
30
|
+
const FieldValue = styled.div `
|
|
31
|
+
margin-top: 4px;
|
|
32
|
+
white-space: pre-wrap;
|
|
33
|
+
font-size: 12px;
|
|
34
|
+
line-height: 1.6;
|
|
35
|
+
color: rgba(255, 255, 255, 0.82);
|
|
36
|
+
`;
|
|
37
|
+
const WarningsStack = styled.div `
|
|
38
|
+
display: flex;
|
|
39
|
+
flex-direction: column;
|
|
40
|
+
gap: 8px;
|
|
41
|
+
`;
|
|
42
|
+
const WarningCard = styled.div `
|
|
43
|
+
border-radius: 12px;
|
|
44
|
+
border: 1px solid rgba(252, 211, 77, 0.25);
|
|
45
|
+
background: rgba(252, 211, 77, 0.1);
|
|
46
|
+
padding: 10px 12px;
|
|
47
|
+
font-size: 11px;
|
|
48
|
+
line-height: 1.6;
|
|
49
|
+
color: #fef3c7;
|
|
50
|
+
`;
|
|
51
|
+
const RawDetails = styled.details `
|
|
52
|
+
border-radius: 12px;
|
|
53
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
54
|
+
background: rgba(0, 0, 0, 0.35);
|
|
55
|
+
padding: 12px;
|
|
56
|
+
`;
|
|
57
|
+
const RawSummary = styled.summary `
|
|
58
|
+
cursor: pointer;
|
|
59
|
+
font-size: 10px;
|
|
60
|
+
letter-spacing: 0.18em;
|
|
61
|
+
text-transform: uppercase;
|
|
62
|
+
color: rgba(255, 255, 255, 0.45);
|
|
63
|
+
`;
|
|
64
|
+
const RawPre = styled.pre `
|
|
65
|
+
margin-top: 12px;
|
|
66
|
+
max-height: 18rem;
|
|
67
|
+
overflow: auto;
|
|
68
|
+
white-space: pre-wrap;
|
|
69
|
+
border-radius: 8px;
|
|
70
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
71
|
+
background: rgba(0, 0, 0, 0.45);
|
|
72
|
+
padding: 12px;
|
|
73
|
+
font-size: 10px;
|
|
74
|
+
line-height: 1.6;
|
|
75
|
+
color: rgba(255, 255, 255, 0.65);
|
|
76
|
+
`;
|
|
77
|
+
const TextBlock = styled.pre `
|
|
78
|
+
white-space: pre-wrap;
|
|
79
|
+
border-radius: 12px;
|
|
80
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
81
|
+
background: rgba(255, 255, 255, 0.04);
|
|
82
|
+
padding: 12px;
|
|
83
|
+
font-size: 11px;
|
|
84
|
+
line-height: 1.6;
|
|
85
|
+
color: rgba(255, 255, 255, 0.8);
|
|
86
|
+
`;
|
|
87
|
+
const jsonBlock = (value) => {
|
|
88
|
+
try {
|
|
89
|
+
return JSON.stringify(value, null, 2);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return '';
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
const renderFields = (fields) => {
|
|
96
|
+
if (!fields?.length)
|
|
97
|
+
return null;
|
|
98
|
+
return (_jsx(FieldsGrid, { children: fields.map((item) => (_jsxs(FieldCard, { children: [_jsx(FieldLabel, { children: item.label }), _jsx(FieldValue, { children: item.value })] }, `${item.label}-${item.value}`))) }));
|
|
99
|
+
};
|
|
100
|
+
const renderWarnings = (warnings) => {
|
|
101
|
+
if (!warnings?.length)
|
|
102
|
+
return null;
|
|
103
|
+
return (_jsx(WarningsStack, { children: warnings.map((warning) => (_jsx(WarningCard, { children: warning }, warning))) }));
|
|
104
|
+
};
|
|
105
|
+
const renderRaw = (section) => {
|
|
106
|
+
if (section.raw === undefined || section.raw === null)
|
|
107
|
+
return null;
|
|
108
|
+
return (_jsxs(RawDetails, { children: [_jsx(RawSummary, { children: section.rawLabel || 'raw payload' }), _jsx(RawPre, { children: jsonBlock(section.raw) })] }));
|
|
109
|
+
};
|
|
110
|
+
const renderSection = (section) => (_jsxs(SectionStack, { children: [renderWarnings(section.warnings), section.text ? (_jsx(TextBlock, { children: section.text })) : null, renderFields(section.fields), renderRaw(section)] }));
|
|
111
|
+
export const buildImageDetailPanels = ({ title, modeLabel, createdAt, prompt, promptManifest, snapshot, detailWarnings, }) => {
|
|
112
|
+
const model = buildImageDetailModel({
|
|
113
|
+
title,
|
|
114
|
+
modeLabel,
|
|
115
|
+
createdAt,
|
|
116
|
+
prompt,
|
|
117
|
+
promptManifest,
|
|
118
|
+
snapshot,
|
|
119
|
+
detailWarnings,
|
|
120
|
+
});
|
|
121
|
+
return model.sections.map((section) => ({
|
|
122
|
+
id: section.id,
|
|
123
|
+
label: section.label,
|
|
124
|
+
description: section.description,
|
|
125
|
+
defaultOpen: section.defaultOpen,
|
|
126
|
+
content: renderSection(section),
|
|
127
|
+
}));
|
|
128
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
export { default as RenderPanel } from './RenderPanel.js';
|
|
2
2
|
export { default as FeedbackPanel } from './FeedbackPanel.js';
|
|
3
3
|
export { default as FullscreenImage } from './FullscreenImage.js';
|
|
4
|
+
export type { FullscreenDetailPanelConfig } from './FullscreenImage.js';
|
|
4
5
|
export { default as RenderLightboxModal } from './RenderLightboxModal.js';
|
|
5
6
|
export { default as GalleryThumbCard } from './GalleryThumbCard.js';
|
|
6
7
|
export { default as RenderHistoryPanel } from './RenderHistoryPanel.js';
|
|
7
|
-
export
|
|
8
|
+
export { default as RenderImageStage } from './RenderImageStage.js';
|
|
9
|
+
export { default as ImageReferenceStrip } from './ImageReferenceStrip.js';
|
|
10
|
+
export type { RenderHistoryAction, RenderHistoryEntry } from './RenderHistoryPanel.js';
|
|
11
|
+
export { createRenderHistoryActions } from './createRenderHistoryActions.js';
|
|
12
|
+
export type { CreateRenderHistoryActionsOptions } from './createRenderHistoryActions.js';
|
|
8
13
|
export { useRenderLightbox } from './useRenderLightbox.js';
|
|
9
14
|
export { useRenderImageFlow } from './useRenderImageFlow.js';
|
|
10
15
|
export type { RenderLightboxStatus, RenderLightboxState, UseRenderLightboxOptions } from './useRenderLightbox.js';
|
|
11
16
|
export type { RenderImageFlowEntry, RenderImageFlowState, UseRenderImageFlowOptions } from './useRenderImageFlow.js';
|
|
12
17
|
export { default as PromptDebugPanel } from './PromptDebugPanel.js';
|
|
13
18
|
export type { PromptDebugEntry } from './PromptDebugPanel.js';
|
|
19
|
+
export { buildImageDetailPanels } from './imageDetailPanels.js';
|
|
14
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,YAAY,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EAAE,iCAAiC,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClH,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACrH,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,10 @@ export { default as FullscreenImage } from './FullscreenImage.js';
|
|
|
4
4
|
export { default as RenderLightboxModal } from './RenderLightboxModal.js';
|
|
5
5
|
export { default as GalleryThumbCard } from './GalleryThumbCard.js';
|
|
6
6
|
export { default as RenderHistoryPanel } from './RenderHistoryPanel.js';
|
|
7
|
+
export { default as RenderImageStage } from './RenderImageStage.js';
|
|
8
|
+
export { default as ImageReferenceStrip } from './ImageReferenceStrip.js';
|
|
9
|
+
export { createRenderHistoryActions } from './createRenderHistoryActions.js';
|
|
7
10
|
export { useRenderLightbox } from './useRenderLightbox.js';
|
|
8
11
|
export { useRenderImageFlow } from './useRenderImageFlow.js';
|
|
9
12
|
export { default as PromptDebugPanel } from './PromptDebugPanel.js';
|
|
13
|
+
export { buildImageDetailPanels } from './imageDetailPanels.js';
|