@treasuryspatial/prompt-ui-kit 0.1.15 → 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.
Files changed (44) hide show
  1. package/dist/FeedbackPanel.d.ts +20 -1
  2. package/dist/FeedbackPanel.d.ts.map +1 -1
  3. package/dist/FeedbackPanel.js +204 -95
  4. package/dist/FullscreenImage.d.ts +12 -1
  5. package/dist/FullscreenImage.d.ts.map +1 -1
  6. package/dist/FullscreenImage.js +319 -41
  7. package/dist/GalleryThumbCard.d.ts +2 -1
  8. package/dist/GalleryThumbCard.d.ts.map +1 -1
  9. package/dist/GalleryThumbCard.js +121 -3
  10. package/dist/ImageReferenceStrip.d.ts +9 -0
  11. package/dist/ImageReferenceStrip.d.ts.map +1 -0
  12. package/dist/ImageReferenceStrip.js +47 -0
  13. package/dist/PromptDebugPanel.d.ts +1 -2
  14. package/dist/PromptDebugPanel.d.ts.map +1 -1
  15. package/dist/PromptDebugPanel.js +74 -2
  16. package/dist/RenderHistoryPanel.d.ts +6 -1
  17. package/dist/RenderHistoryPanel.d.ts.map +1 -1
  18. package/dist/RenderHistoryPanel.js +55 -55
  19. package/dist/RenderImageStage.d.ts +10 -0
  20. package/dist/RenderImageStage.d.ts.map +1 -0
  21. package/dist/RenderImageStage.js +90 -0
  22. package/dist/RenderLightboxModal.d.ts +4 -2
  23. package/dist/RenderLightboxModal.d.ts.map +1 -1
  24. package/dist/RenderLightboxModal.js +54 -18
  25. package/dist/RenderPanel.d.ts +17 -16
  26. package/dist/RenderPanel.d.ts.map +1 -1
  27. package/dist/RenderPanel.js +178 -204
  28. package/dist/createRenderHistoryActions.d.ts +11 -0
  29. package/dist/createRenderHistoryActions.d.ts.map +1 -0
  30. package/dist/createRenderHistoryActions.js +63 -0
  31. package/dist/imageDetailPanels.d.ts +14 -0
  32. package/dist/imageDetailPanels.d.ts.map +1 -0
  33. package/dist/imageDetailPanels.js +128 -0
  34. package/dist/index.d.ts +7 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +4 -0
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/dist/useRenderImageFlow.d.ts +2 -2
  39. package/dist/useRenderImageFlow.d.ts.map +1 -1
  40. package/dist/useRenderImageFlow.js +1 -1
  41. package/dist/useRenderLightbox.d.ts +14 -2
  42. package/dist/useRenderLightbox.d.ts.map +1 -1
  43. package/dist/useRenderLightbox.js +333 -34
  44. package/package.json +3 -3
@@ -1,5 +1,77 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- export default function PromptDebugPanel({ open, entries, onToggle, onOpenEditor }) {
4
- return (_jsxs("details", { className: "mt-6 rounded-2xl border viewer-ui-kit-border viewer-ui-kit-surface", open: open, onToggle: (event) => onToggle(event.target.open), children: [_jsx("summary", { className: "cursor-pointer list-none px-4 py-3 text-[11px] uppercase tracking-[0.22em] viewer-ui-kit-text-muted", children: "prompt debug" }), _jsxs("div", { className: "space-y-4 px-4 pb-4", children: [entries.length === 0 && _jsx("div", { className: "text-[11px] viewer-ui-kit-text-muted", children: "no prompt history yet." }), entries.map((entry) => (_jsxs("div", { className: "rounded-2xl border viewer-ui-kit-border-subtle viewer-ui-kit-surface p-3", children: [_jsxs("div", { className: "flex items-center justify-between text-[10px] uppercase tracking-[0.2em] viewer-ui-kit-text-subtle", children: [_jsx("span", { children: entry.kind }), _jsx("span", { children: entry.ts })] }), _jsx("pre", { className: "mt-3 max-h-56 overflow-auto whitespace-pre-wrap text-[11px] viewer-ui-kit-text", children: entry.prompt }), entry.manifest && (_jsxs("details", { className: "mt-3", children: [_jsx("summary", { className: "cursor-pointer text-[10px] uppercase tracking-[0.2em] viewer-ui-kit-text-muted", children: "manifest snapshot" }), _jsx("pre", { className: "mt-2 max-h-40 overflow-auto whitespace-pre-wrap rounded border viewer-ui-kit-border viewer-ui-kit-surface p-2 text-[10px] viewer-ui-kit-text", children: JSON.stringify(entry.manifest, null, 2) })] })), onOpenEditor && (_jsx("div", { className: "mt-3 flex gap-2", children: _jsx("button", { type: "button", onClick: () => onOpenEditor(entry), className: "viewer-ui-kit-button viewer-ui-kit-button-primary px-3 py-1 text-[10px] font-black lowercase tracking-[0.08em]", children: "open in prompt editor" }) }))] }, entry.id)))] })] }));
3
+ import styled from 'styled-components';
4
+ const DebugRoot = styled.details `
5
+ margin-top: 24px;
6
+ border-radius: 18px;
7
+ border: 1px solid var(--viewer-ui-color-panel-border);
8
+ background: var(--viewer-ui-color-surface);
9
+ `;
10
+ const DebugSummary = styled.summary `
11
+ cursor: pointer;
12
+ list-style: none;
13
+ padding: 12px 16px;
14
+ font-size: 11px;
15
+ letter-spacing: 0.22em;
16
+ text-transform: uppercase;
17
+ color: var(--viewer-ui-color-text-muted);
18
+ `;
19
+ const DebugContent = styled.div `
20
+ display: flex;
21
+ flex-direction: column;
22
+ gap: 16px;
23
+ padding: 0 16px 16px;
24
+ `;
25
+ const EmptyState = styled.div `
26
+ font-size: 11px;
27
+ color: var(--viewer-ui-color-text-muted);
28
+ `;
29
+ const EntryCard = styled.div `
30
+ border-radius: 18px;
31
+ border: 1px solid var(--viewer-ui-color-panel-border-subtle);
32
+ background: var(--viewer-ui-color-surface);
33
+ padding: 12px;
34
+ `;
35
+ const EntryHeader = styled.div `
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: space-between;
39
+ gap: 12px;
40
+ font-size: 10px;
41
+ letter-spacing: 0.2em;
42
+ text-transform: uppercase;
43
+ color: var(--viewer-ui-color-text-subtle);
44
+ `;
45
+ const PromptBlock = styled.pre `
46
+ margin-top: 12px;
47
+ max-height: 14rem;
48
+ overflow: auto;
49
+ white-space: pre-wrap;
50
+ font-size: 11px;
51
+ color: var(--viewer-ui-color-text);
52
+ `;
53
+ const ManifestDetails = styled.details `
54
+ margin-top: 12px;
55
+ `;
56
+ const ManifestSummary = styled.summary `
57
+ cursor: pointer;
58
+ font-size: 10px;
59
+ letter-spacing: 0.2em;
60
+ text-transform: uppercase;
61
+ color: var(--viewer-ui-color-text-muted);
62
+ `;
63
+ const ManifestBlock = styled.pre `
64
+ margin-top: 8px;
65
+ max-height: 10rem;
66
+ overflow: auto;
67
+ white-space: pre-wrap;
68
+ border-radius: 6px;
69
+ border: 1px solid var(--viewer-ui-color-panel-border);
70
+ background: var(--viewer-ui-color-surface);
71
+ padding: 8px;
72
+ font-size: 10px;
73
+ color: var(--viewer-ui-color-text);
74
+ `;
75
+ export default function PromptDebugPanel({ open, entries, onToggle }) {
76
+ return (_jsxs(DebugRoot, { open: open, onToggle: (event) => onToggle(event.target.open), children: [_jsx(DebugSummary, { children: "prompt debug" }), _jsxs(DebugContent, { children: [entries.length === 0 && _jsx(EmptyState, { children: "no prompt history yet." }), entries.map((entry) => (_jsxs(EntryCard, { children: [_jsxs(EntryHeader, { children: [_jsx("span", { children: entry.kind }), _jsx("span", { children: entry.ts })] }), _jsx(PromptBlock, { children: entry.prompt }), entry.manifest && (_jsxs(ManifestDetails, { children: [_jsx(ManifestSummary, { children: "manifest snapshot" }), _jsx(ManifestBlock, { children: JSON.stringify(entry.manifest, null, 2) })] }))] }, entry.id)))] })] }));
5
77
  }
@@ -1,4 +1,5 @@
1
- export type RenderHistoryEntry = {
1
+ import type { ComposerGalleryReferenceImage, ComposerGallerySnapshot, ComposerGallerySnapshotSummary } from '@treasuryspatial/render-kit';
2
+ export type RenderHistoryEntry = ComposerGallerySnapshotSummary & {
2
3
  id: string;
3
4
  kind: 'capture' | 'adapt';
4
5
  outputImage: string;
@@ -11,6 +12,10 @@ export type RenderHistoryEntry = {
11
12
  setId?: string;
12
13
  setIndex?: number;
13
14
  setTotal?: number;
15
+ shortId?: string | null;
16
+ snapshot?: ComposerGallerySnapshot | null;
17
+ referenceImages?: ComposerGalleryReferenceImage[] | null;
18
+ baseImage?: ComposerGalleryReferenceImage | null;
14
19
  storage?: {
15
20
  bucket: string;
16
21
  key: string;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderHistoryPanel.d.ts","sourceRoot":"","sources":["../src/RenderHistoryPanel.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC;IAClD,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;CACnC,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC,CAAC;AA8GF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,KAAK,kDA0J3G"}
1
+ {"version":3,"file":"RenderHistoryPanel.d.ts","sourceRoot":"","sources":["../src/RenderHistoryPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,6BAA6B,EAC7B,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,6BAA6B,CAAC;AAIrC,MAAM,MAAM,kBAAkB,GAAG,8BAA8B,GAAG;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC1C,eAAe,CAAC,EAAE,6BAA6B,EAAE,GAAG,IAAI,CAAC;IACzD,SAAS,CAAC,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC;IAClD,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;CACnC,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC,CAAC;AA0GF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,KAAK,kDA2M3G"}
@@ -2,24 +2,10 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useMemo } from 'react';
4
4
  import styled from 'styled-components';
5
+ import { resolveComposerEffectivePrompt } from '@treasuryspatial/render-kit';
6
+ import ImageReferenceStrip from './ImageReferenceStrip.js';
5
7
  const fallbackFormatTitle = (value) => value;
6
- const Root = styled.div `
7
- display: flex;
8
- flex-direction: column;
9
- gap: 14px;
10
- `;
11
- const Header = styled.div `
12
- display: flex;
13
- align-items: center;
14
- justify-content: space-between;
15
- gap: 12px;
16
- `;
17
- const Eyebrow = styled.div `
18
- font-size: 10px;
19
- text-transform: uppercase;
20
- letter-spacing: 0.14em;
21
- color: var(--brand-text-secondary);
22
- `;
8
+ const Root = styled.div.attrs({ className: 'viewer-ui-panel-sections' }) ``;
23
9
  const ClearButton = styled.button `
24
10
  border: 0;
25
11
  background: transparent;
@@ -27,28 +13,22 @@ const ClearButton = styled.button `
27
13
  cursor: pointer;
28
14
  font-size: 11px;
29
15
  letter-spacing: 0.08em;
30
- text-transform: uppercase;
31
- `;
32
- const Card = styled.div `
33
- border-radius: 24px;
34
- border: 1px solid var(--brand-panel-border);
35
- background: var(--brand-background);
36
- padding: 14px;
37
- display: flex;
38
- flex-direction: column;
39
- gap: 12px;
16
+ text-transform: var(--viewer-ui-action-text-case, lowercase);
40
17
  `;
41
- const CardLabel = styled.div `
42
- font-size: 10px;
43
- text-transform: uppercase;
44
- letter-spacing: 0.14em;
45
- color: var(--brand-text-secondary);
18
+ const Section = styled.section.attrs({ className: 'panel-section' }) ``;
19
+ const SectionHeader = styled.div.attrs({ className: 'panel-section-header' }) ``;
20
+ const SectionHeaderCopy = styled.div `
21
+ min-width: 0;
46
22
  `;
47
- const CardTitle = styled.div `
48
- font-size: 13px;
49
- line-height: 1.5;
50
- color: var(--brand-text-primary);
23
+ const SectionFields = styled.div.attrs({ className: 'panel-section-fields' }) ``;
24
+ const SectionGroup = styled.div.attrs({ className: 'panel-section-group' }) ``;
25
+ const SectionGroupHeader = styled.div.attrs({ className: 'panel-section-group-header' }) ``;
26
+ const SectionGroupCopy = styled.div.attrs({ className: 'panel-section-group-copy' }) ``;
27
+ const SectionGroupTitle = styled.h4 `
28
+ margin: 0;
51
29
  `;
30
+ const ItemTitle = styled.p ``;
31
+ const ItemMeta = styled.div.attrs({ className: 'panel-section-row-label' }) ``;
52
32
  const ImageGrid = styled.div `
53
33
  display: grid;
54
34
  grid-template-columns: repeat(${(props) => props.$columns ?? 2}, minmax(0, 1fr));
@@ -57,7 +37,7 @@ const ImageGrid = styled.div `
57
37
  const ImagePane = styled.div `
58
38
  display: flex;
59
39
  flex-direction: column;
60
- gap: 8px;
40
+ gap: 6px;
61
41
  `;
62
42
  const ImageButton = styled.button `
63
43
  border: 0;
@@ -65,7 +45,7 @@ const ImageButton = styled.button `
65
45
  padding: 0;
66
46
  cursor: zoom-in;
67
47
  overflow: hidden;
68
- border-radius: 18px;
48
+ border-radius: 8px;
69
49
  `;
70
50
  const Image = styled.img `
71
51
  width: 100%;
@@ -74,22 +54,32 @@ const Image = styled.img `
74
54
  display: block;
75
55
  `;
76
56
  const ActionRow = styled.div `
57
+ grid-column: 1 / -1;
77
58
  display: flex;
78
59
  flex-wrap: wrap;
79
60
  gap: 8px;
80
61
  `;
81
62
  const ActionButton = styled.button `
82
- min-height: 38px;
83
- padding: 0 16px;
84
63
  border-radius: 999px;
64
+ min-height: 34px;
65
+ padding: 0 14px;
85
66
  border: 1px solid
86
- ${(props) => (props.$variant === 'primary' ? 'var(--brand-text-primary)' : 'var(--brand-panel-border)')};
87
- background: ${(props) => (props.$variant === 'primary' ? 'var(--brand-text-primary)' : 'var(--brand-background)')};
88
- color: ${(props) => (props.$variant === 'primary' ? 'var(--brand-background)' : 'var(--brand-text-primary)')};
67
+ ${(props) => props.$variant === 'primary'
68
+ ? 'var(--viewer-ui-shell-pill-active-border, var(--brand-primary))'
69
+ : 'var(--brand-panel-border)'};
70
+ background: ${(props) => props.$variant === 'primary'
71
+ ? 'var(--viewer-ui-shell-pill-active-bg, color-mix(in srgb, var(--brand-primary) 14%, var(--viewer-ui-color-bg-base, #f6f3eb) 86%))'
72
+ : 'var(--brand-background)'};
73
+ color: ${(props) => props.$variant === 'primary'
74
+ ? 'var(--viewer-ui-shell-pill-active-fg, var(--brand-primary))'
75
+ : 'var(--brand-text-primary)'};
89
76
  cursor: pointer;
90
- font-size: 12px;
77
+ font-size: 11px;
91
78
  font-weight: 600;
92
- letter-spacing: 0.01em;
79
+ letter-spacing: 0.08em;
80
+ text-transform: var(--viewer-ui-action-text-case, lowercase);
81
+ white-space: nowrap;
82
+ transition: background-color 0.16s ease, color 0.16s ease, border-color 0.16s ease;
93
83
 
94
84
  &:disabled {
95
85
  opacity: 0.5;
@@ -118,7 +108,11 @@ export default function RenderHistoryPanel({ history, onClear, onOpenLightbox, f
118
108
  id: 'copy-prompt',
119
109
  label: 'copy prompt',
120
110
  onSelect: () => {
121
- void copyText(entry.fullPrompt || entry.prompt);
111
+ void copyText(resolveComposerEffectivePrompt({
112
+ promptCompilation: entry.promptCompilation ?? entry.snapshot?.promptCompilation ?? null,
113
+ fullPrompt: entry.fullPrompt ?? entry.snapshot?.fullPrompt ?? null,
114
+ prompt: entry.prompt ?? entry.snapshot?.prompt ?? null,
115
+ }));
122
116
  },
123
117
  variant: 'secondary',
124
118
  },
@@ -126,7 +120,7 @@ export default function RenderHistoryPanel({ history, onClear, onOpenLightbox, f
126
120
  : []),
127
121
  {
128
122
  id: 'copy-image-link',
129
- label: 'copy image link',
123
+ label: 'copy direct image url',
130
124
  onSelect: () => {
131
125
  void copyText(entry.storage?.url || entry.outputImage);
132
126
  },
@@ -140,6 +134,12 @@ export default function RenderHistoryPanel({ history, onClear, onOpenLightbox, f
140
134
  return (_jsx(ActionButton, { type: "button", onClick: () => action.onSelect(entry), disabled: disabled, "$variant": action.variant ?? 'secondary', children: action.label }, action.id));
141
135
  }) }));
142
136
  };
137
+ const renderReferences = (entry) => {
138
+ const references = entry.referenceImages ?? entry.snapshot?.referenceImages ?? null;
139
+ if (!references?.length)
140
+ return null;
141
+ return (_jsx(ImageReferenceStrip, { references: references, labelPrefix: "render reference", onOpen: (reference) => onOpenLightbox?.(entry, reference.url, reference.name) }));
142
+ };
143
143
  const grouped = useMemo(() => {
144
144
  const seenSets = new Set();
145
145
  const items = [];
@@ -161,13 +161,13 @@ export default function RenderHistoryPanel({ history, onClear, onOpenLightbox, f
161
161
  }, [history]);
162
162
  if (history.length === 0)
163
163
  return null;
164
- return (_jsxs(Root, { children: [_jsxs(Header, { children: [_jsx(Eyebrow, { children: "image flow" }), _jsx(ClearButton, { type: "button", onClick: onClear, children: "clear images" })] }), grouped.map((item) => item.type === 'set' ? (_jsxs(Card, { children: [_jsx(CardLabel, { children: "image set" }), _jsx(CardTitle, { children: titleFormatter(item.entries[0]?.title || '') }), _jsx(ImageGrid, { "$columns": 2, children: item.entries.slice(0, 4).map((entry) => (_jsx(ImageButton, { type: "button", onClick: () => onOpenLightbox?.(entry, entry.outputImage, 'render output'), children: _jsx(Image, { src: entry.outputImage, alt: "render output" }) }, entry.id))) })] }, item.entries[0]?.setId ?? 'set')) : item.entry.kind === 'capture' ? (_jsxs(Card, { children: [_jsxs(ImageGrid, { "$columns": 2, children: [_jsxs(ImagePane, { children: [_jsx(CardLabel, { children: "original capture" }), _jsx(ImageButton, { type: "button", onClick: () => {
165
- if (!item.entry.originalImage)
166
- return;
167
- onOpenLightbox?.(item.entry, item.entry.originalImage, 'render input');
168
- }, children: _jsx(Image, { src: item.entry.originalImage, alt: "render input" }) })] }), _jsxs(ImagePane, { children: [_jsx(CardLabel, { children: "output" }), _jsx(ImageButton, { type: "button", onClick: () => {
164
+ return (_jsxs(Root, { children: [_jsx(Section, { "data-panel-id": "render-history-feed", children: _jsxs(SectionHeader, { children: [_jsx(SectionHeaderCopy, { children: _jsx("h3", { children: "recent feed" }) }), _jsx(ClearButton, { type: "button", onClick: onClear, children: "clear feed" })] }) }), grouped.map((item) => item.type === 'set' ? (_jsxs(Section, { "data-panel-id": "render-history-set", children: [_jsx(SectionHeader, { children: _jsxs(SectionHeaderCopy, { children: [_jsx("h3", { children: "image set" }), item.entries[0]?.title ? _jsx(ItemTitle, { children: titleFormatter(item.entries[0].title) }) : null] }) }), _jsxs(SectionFields, { children: [renderReferences(item.entries[0]), _jsx(ImageGrid, { "$columns": 2, children: item.entries.slice(0, 4).map((entry) => (_jsx(ImageButton, { type: "button", onClick: () => onOpenLightbox?.(entry, entry.outputImage, 'render output'), children: _jsx(Image, { src: entry.outputImage, alt: "render output" }) }, entry.id))) })] })] }, item.entries[0]?.setId ?? 'set')) : item.entry.kind === 'capture' ? (_jsxs(Section, { "data-panel-id": "render-history-capture", children: [_jsx(SectionHeader, { children: _jsxs(SectionHeaderCopy, { children: [_jsx("h3", { children: "capture" }), item.entry.title ? _jsx(ItemTitle, { children: titleFormatter(item.entry.title || '') }) : null] }) }), _jsxs(SectionFields, { children: [_jsxs(ImageGrid, { "$columns": 2, children: [_jsxs(ImagePane, { children: [_jsx(ItemMeta, { children: "original capture" }), _jsx(ImageButton, { type: "button", onClick: () => {
165
+ if (!item.entry.originalImage)
166
+ return;
167
+ onOpenLightbox?.(item.entry, item.entry.originalImage, 'render input');
168
+ }, children: _jsx(Image, { src: item.entry.originalImage, alt: "render input" }) })] }), _jsxs(ImagePane, { children: [_jsx(ItemMeta, { children: "output" }), _jsx(ImageButton, { type: "button", onClick: () => {
169
+ onOpenLightbox?.(item.entry, item.entry.outputImage, 'render output');
170
+ }, children: _jsx(Image, { src: item.entry.outputImage, alt: "render output" }) })] })] }), renderReferences(item.entry), renderActions(item.entry)] })] }, item.entry.id)) : (_jsxs(Section, { "data-panel-id": "render-history-adapt", children: [_jsx(SectionHeader, { children: _jsxs(SectionHeaderCopy, { children: [_jsx("h3", { children: "adapted output" }), item.entry.title ? _jsx(ItemTitle, { children: titleFormatter(item.entry.title || '') }) : null] }) }), _jsxs(SectionFields, { children: [_jsxs(SectionGroup, { children: [_jsx(SectionGroupHeader, { children: _jsx(SectionGroupCopy, { children: _jsx(SectionGroupTitle, { children: "output" }) }) }), _jsx(ImageButton, { type: "button", onClick: () => {
169
171
  onOpenLightbox?.(item.entry, item.entry.outputImage, 'render output');
170
- }, children: _jsx(Image, { src: item.entry.outputImage, alt: "render output" }) })] })] }), item.entry.title ? _jsx(CardTitle, { children: titleFormatter(item.entry.title || '') }) : null, renderActions(item.entry)] }, item.entry.id)) : (_jsxs(Card, { children: [_jsx(CardLabel, { children: "adapted output" }), _jsx(ImageButton, { type: "button", onClick: () => {
171
- onOpenLightbox?.(item.entry, item.entry.outputImage, 'render output');
172
- }, children: _jsx(Image, { src: item.entry.outputImage, alt: "render output" }) }), item.entry.title ? _jsx(CardTitle, { children: titleFormatter(item.entry.title || '') }) : null, renderActions(item.entry)] }, item.entry.id)))] }));
172
+ }, children: _jsx(Image, { src: item.entry.outputImage, alt: "render output" }) })] }), renderReferences(item.entry), renderActions(item.entry)] })] }, item.entry.id)))] }));
173
173
  }
@@ -0,0 +1,10 @@
1
+ import type { RenderHistoryEntry } from './RenderHistoryPanel.js';
2
+ export type RenderImageStageProps = {
3
+ entry?: RenderHistoryEntry | null;
4
+ modeLabel?: string;
5
+ blankTitle?: string;
6
+ blankDescription?: string;
7
+ onOpen?: (entry: RenderHistoryEntry, src: string, alt: string) => void;
8
+ };
9
+ export default function RenderImageStage({ entry, modeLabel, blankTitle: _blankTitle, blankDescription: _blankDescription, onOpen, }: RenderImageStageProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=RenderImageStage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderImageStage.d.ts","sourceRoot":"","sources":["../src/RenderImageStage.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AA4FlE,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACxE,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,KAAK,EACL,SAAqB,EACrB,UAAU,EAAE,WAA2B,EACvC,gBAAgB,EAAE,iBAAsB,EACxC,MAAM,GACP,EAAE,qBAAqB,2CAgCvB"}
@@ -0,0 +1,90 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import styled from 'styled-components';
4
+ const Stage = styled.div `
5
+ position: absolute;
6
+ inset: 0;
7
+ background: #050505;
8
+ display: flex;
9
+ align-items: center;
10
+ justify-content: center;
11
+ cursor: ${(props) => (props.$interactive ? 'zoom-in' : 'default')};
12
+ `;
13
+ const BlankState = styled.div `
14
+ width: min(100%, 680px);
15
+ min-height: min(56vh, 520px);
16
+ border-radius: 28px;
17
+ border: 1px solid rgba(15, 23, 42, 0.08);
18
+ background: #ffffff;
19
+ display: block;
20
+ `;
21
+ const Figure = styled.figure `
22
+ width: 100%;
23
+ height: 100%;
24
+ display: block;
25
+ margin: 0;
26
+ `;
27
+ const ImageFrame = styled.div `
28
+ width: 100%;
29
+ height: 100%;
30
+ overflow: hidden;
31
+ background: #050505;
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: center;
35
+ `;
36
+ const Image = styled.img `
37
+ width: 100%;
38
+ height: 100%;
39
+ object-fit: contain;
40
+ display: block;
41
+ `;
42
+ const Caption = styled.figcaption `
43
+ position: absolute;
44
+ left: clamp(18px, 3vw, 44px);
45
+ bottom: clamp(18px, 3vw, 44px);
46
+ right: clamp(18px, 3vw, 44px);
47
+ display: flex;
48
+ align-items: flex-end;
49
+ justify-content: space-between;
50
+ gap: 16px;
51
+ color: white;
52
+ pointer-events: none;
53
+ `;
54
+ const CaptionText = styled.div `
55
+ min-width: 0;
56
+ display: flex;
57
+ flex-direction: column;
58
+ gap: 6px;
59
+ `;
60
+ const CaptionEyebrow = styled.div `
61
+ font-size: 10px;
62
+ letter-spacing: 0.2em;
63
+ text-transform: uppercase;
64
+ color: rgba(255, 255, 255, 0.62);
65
+ `;
66
+ const CaptionTitle = styled.div `
67
+ font-family: var(--viewer-ui-font-display);
68
+ font-size: clamp(18px, 1.8vw, 28px);
69
+ line-height: 1.1;
70
+ text-transform: lowercase;
71
+ `;
72
+ const CaptionMeta = styled.div `
73
+ font-size: 12px;
74
+ color: rgba(255, 255, 255, 0.68);
75
+ `;
76
+ const ActionHint = styled.div `
77
+ flex: 0 0 auto;
78
+ font-size: 10px;
79
+ letter-spacing: 0.18em;
80
+ text-transform: uppercase;
81
+ color: rgba(255, 255, 255, 0.62);
82
+ `;
83
+ export default function RenderImageStage({ entry, modeLabel = 'imagine', blankTitle: _blankTitle = 'blank stage', blankDescription: _blankDescription = '', onOpen, }) {
84
+ const interactive = Boolean(entry?.outputImage && onOpen);
85
+ return (_jsx(Stage, { "$interactive": interactive, onClick: () => {
86
+ if (!entry?.outputImage)
87
+ return;
88
+ onOpen?.(entry, entry.outputImage, entry.title || 'render output');
89
+ }, children: entry?.outputImage ? (_jsxs(Figure, { children: [_jsx(ImageFrame, { children: _jsx(Image, { src: entry.outputImage, alt: entry.title || 'render output' }) }), _jsxs(Caption, { children: [_jsxs(CaptionText, { children: [_jsx(CaptionEyebrow, { children: modeLabel }), _jsx(CaptionTitle, { children: entry.title || 'latest image' }), _jsx(CaptionMeta, { children: entry.kind === 'adapt' ? 'adapted image' : 'render output' })] }), _jsx(ActionHint, { children: "click to open fullscreen" })] })] })) : (_jsx(BlankState, { "aria-label": `${modeLabel} blank stage` })) }));
90
+ }
@@ -1,11 +1,13 @@
1
- import type { RenderLightboxState } from './useRenderLightbox';
1
+ import type { FullscreenDetailPanelConfig } from './FullscreenImage.js';
2
+ import type { RenderLightboxState } from './useRenderLightbox.js';
2
3
  type RenderLightboxModalProps = {
3
4
  lightbox: RenderLightboxState;
4
5
  titleFallback?: string;
5
6
  subtitle?: string;
6
7
  modeLabel?: string;
7
8
  primaryActionLabel?: string;
9
+ detailPanels?: FullscreenDetailPanelConfig[];
8
10
  };
9
- export default function RenderLightboxModal({ lightbox, titleFallback, subtitle, modeLabel, primaryActionLabel, }: RenderLightboxModalProps): import("react/jsx-runtime").JSX.Element;
11
+ export default function RenderLightboxModal({ lightbox, titleFallback, subtitle, modeLabel, primaryActionLabel, detailPanels, }: RenderLightboxModalProps): import("react/jsx-runtime").JSX.Element;
10
12
  export {};
11
13
  //# sourceMappingURL=RenderLightboxModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderLightboxModal.d.ts","sourceRoot":"","sources":["../src/RenderLightboxModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,QAAQ,EACR,aAA8B,EAC9B,QAAQ,EACR,SAAS,EACT,kBAAwC,GACzC,EAAE,wBAAwB,2CAsC1B"}
1
+ {"version":3,"file":"RenderLightboxModal.d.ts","sourceRoot":"","sources":["../src/RenderLightboxModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAGxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,2BAA2B,EAAE,CAAC;CAC9C,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,QAAQ,EACR,aAA8B,EAC9B,QAAQ,EACR,SAAS,EACT,kBAAyC,EACzC,YAAY,GACb,EAAE,wBAAwB,2CAyE1B"}
@@ -1,24 +1,60 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import FullscreenImage from './FullscreenImage';
4
- export default function RenderLightboxModal({ lightbox, titleFallback = 'render image', subtitle, modeLabel, primaryActionLabel = 'submit to gallery', }) {
3
+ import { buildImageDetailPanels } from './imageDetailPanels.js';
4
+ import { isRestartableGallerySnapshot } from '@treasuryspatial/render-kit';
5
+ import FullscreenImage from './FullscreenImage.js';
6
+ export default function RenderLightboxModal({ lightbox, titleFallback = 'render image', subtitle, modeLabel, primaryActionLabel = 'propose to gallery', detailPanels, }) {
5
7
  const hasPrompt = Boolean(lightbox.entry?.fullPrompt || lightbox.entry?.prompt);
6
- return (_jsx(FullscreenImage, { open: Boolean(lightbox.src), src: lightbox.src, alt: lightbox.alt, title: lightbox.entry?.title || titleFallback, subtitle: subtitle, modeLabel: modeLabel, prompt: lightbox.entry?.fullPrompt ?? lightbox.entry?.prompt, promptManifest: lightbox.entry?.manifest ?? null, publicUrl: lightbox.publicUrl, copyUrl: lightbox.entry?.storage?.url ?? lightbox.publicUrl, onClose: lightbox.close, primaryAction: {
7
- label: primaryActionLabel,
8
- onClick: () => void lightbox.submitToGallery(),
9
- disabled: !lightbox.entry?.storage?.key,
10
- status: lightbox.status,
11
- variant: 'primary',
12
- }, secondaryAction: hasPrompt
8
+ const snapshotDetailPanels = buildImageDetailPanels({
9
+ title: lightbox.entry?.title ?? null,
10
+ modeLabel,
11
+ createdAt: lightbox.entry?.snapshot?.createdAt ?? null,
12
+ prompt: lightbox.entry?.fullPrompt ?? lightbox.entry?.prompt ?? null,
13
+ promptManifest: lightbox.entry?.manifest ?? null,
14
+ snapshot: lightbox.entry?.snapshot ?? null,
15
+ });
16
+ const canRestart = isRestartableGallerySnapshot(lightbox.entry?.snapshot) || Boolean(lightbox.entry?.storage?.metaKey);
17
+ const galleryAction = {
18
+ label: primaryActionLabel,
19
+ onClick: () => void lightbox.submitToGallery(),
20
+ disabled: !lightbox.entry?.storage?.key,
21
+ status: lightbox.status,
22
+ variant: canRestart ? 'secondary' : 'primary',
23
+ };
24
+ return (_jsx(FullscreenImage, { open: Boolean(lightbox.src), src: lightbox.src, alt: lightbox.alt, title: lightbox.entry?.title || titleFallback, subtitle: subtitle, modeLabel: modeLabel, publicUrl: lightbox.publicUrl, onClose: lightbox.close, primaryAction: canRestart
13
25
  ? {
14
- label: 'copy prompt',
15
- onClick: () => {
16
- const text = lightbox.entry?.fullPrompt ?? lightbox.entry?.prompt ?? '';
17
- if (!text || typeof navigator === 'undefined')
18
- return;
19
- navigator.clipboard?.writeText(text).catch(() => { });
20
- },
21
- variant: 'secondary',
26
+ label: 'restart from snapshot',
27
+ onClick: () => void lightbox.restartFromSnapshot(),
28
+ disabled: !canRestart,
29
+ variant: 'primary',
22
30
  }
23
- : null }));
31
+ : galleryAction, secondaryAction: {
32
+ label: 'download image',
33
+ onClick: () => lightbox.downloadImage(),
34
+ disabled: !(lightbox.entry?.storage?.url || lightbox.publicUrl || lightbox.src),
35
+ variant: 'secondary',
36
+ }, statusText: lightbox.statusText, detailPanels: [...snapshotDetailPanels, ...(detailPanels ?? [])], extraActions: [
37
+ ...(canRestart ? [galleryAction] : []),
38
+ {
39
+ label: 'copy image page link',
40
+ onClick: () => void lightbox.copyPublicLink(),
41
+ disabled: !lightbox.publicUrl,
42
+ variant: 'secondary',
43
+ },
44
+ {
45
+ label: 'copy direct image url',
46
+ onClick: () => void lightbox.copyImageLink(),
47
+ disabled: !(lightbox.entry?.storage?.url || lightbox.src),
48
+ variant: 'secondary',
49
+ },
50
+ ...(hasPrompt
51
+ ? [
52
+ {
53
+ label: 'copy prompt',
54
+ onClick: () => void lightbox.copyPrompt(),
55
+ variant: 'secondary',
56
+ },
57
+ ]
58
+ : []),
59
+ ] }));
24
60
  }
@@ -1,4 +1,4 @@
1
- import type { PromptPack, PromptField, PromptPanelSpec, PromptPackUi, RenderLocation, RenderTimeOfDay } from '@treasuryspatial/render-kit';
1
+ import type { PromptPack, PromptField, PromptPanelSpec, PromptPackUi, RenderLocation, RenderProviderId, RenderTimeOfDay } from '@treasuryspatial/render-kit';
2
2
  type RenderLocationValue = RenderLocation | string;
3
3
  type RenderTimeOfDayValue = RenderTimeOfDay | string;
4
4
  type RenderToggleKey = string;
@@ -55,7 +55,7 @@ type Props = {
55
55
  onStyleChange: (value: string) => void;
56
56
  renderPrompt: string;
57
57
  onRenderPromptChange: (value: string) => void;
58
- hasPromptScaffold: boolean;
58
+ hasPromptBlocks: boolean;
59
59
  renderToggles: RenderToggleState;
60
60
  eraToggleRules: Record<RenderToggleKey, boolean>;
61
61
  toggleLabels: ToggleLabels;
@@ -63,6 +63,10 @@ type Props = {
63
63
  renderBusy: boolean;
64
64
  renderHasGenerated: boolean;
65
65
  renderOutputImage?: string | null;
66
+ renderProvider?: RenderProviderId;
67
+ renderProviderToggleEnabled?: boolean;
68
+ onRenderProviderChange?: (value: RenderProviderId) => void;
69
+ hasRenderInteractionContext?: boolean;
66
70
  onCaptureRender: () => void;
67
71
  renderButtonLabel?: string;
68
72
  adaptPrompt: string;
@@ -70,8 +74,8 @@ type Props = {
70
74
  onAdaptRender: () => void;
71
75
  renderFeatureEnabled: boolean;
72
76
  onRenderFeatureEnabledChange: (value: boolean) => void;
73
- renderReferenceMode: 'style' | 'scaffold';
74
- onRenderReferenceModeChange: (value: 'style' | 'scaffold') => void;
77
+ renderReferenceMode: 'style' | 'structure';
78
+ onRenderReferenceModeChange: (value: 'style' | 'structure') => void;
75
79
  renderReferenceImages: Array<{
76
80
  id: string;
77
81
  name: string;
@@ -79,8 +83,8 @@ type Props = {
79
83
  }>;
80
84
  adaptFeatureEnabled: boolean;
81
85
  onAdaptFeatureEnabledChange: (value: boolean) => void;
82
- adaptReferenceMode: 'style' | 'scaffold';
83
- onAdaptReferenceModeChange: (value: 'style' | 'scaffold') => void;
86
+ adaptReferenceMode: 'style' | 'structure';
87
+ onAdaptReferenceModeChange: (value: 'style' | 'structure') => void;
84
88
  adaptReferenceImages: Array<{
85
89
  id: string;
86
90
  name: string;
@@ -135,22 +139,19 @@ type Props = {
135
139
  onFeatureFacadeBaysChange: (value: boolean) => void;
136
140
  featurePublicRealmStreet: string[];
137
141
  onFeaturePublicRealmStreetChange: (value: string[]) => void;
138
- viewpointPreset: string;
139
- onViewpointPresetChange: (value: string) => void;
140
- viewVariationMode: 'variation' | 'deterministic';
141
- onViewVariationModeChange: (value: 'variation' | 'deterministic') => void;
142
- viewComposition: string;
143
- onViewCompositionChange: (value: string) => void;
142
+ cameraProfile: string;
143
+ onCameraProfileChange: (value: string) => void;
144
+ cameraVariation: 'variation' | 'deterministic';
145
+ onCameraVariationChange: (value: 'variation' | 'deterministic') => void;
146
+ imageFormat: string;
147
+ onImageFormatChange: (value: string) => void;
144
148
  canCreateImageSet: boolean;
145
149
  onCreateImageSet: () => void;
146
150
  imageSetBusy: boolean;
147
151
  renderLimitRemaining: number;
148
152
  adaptOpen: boolean;
149
153
  onAdaptOpenChange: (value: boolean) => void;
150
- showTaskBlockToggle?: boolean;
151
- taskBlockEnabled?: boolean;
152
- onTaskBlockEnabledChange?: (value: boolean) => void;
153
154
  };
154
- export default function RenderPanel({ isImagineMode, activeTab, promptPack, promptFieldBindings, locationOptions, timeOptions, imageStyleOptions: _imageStyleOptions, styleOptions: _styleOptions, renderLocation, onLocationChange, renderTimeOfDay, onTimeOfDayChange, renderImageStyle, onImageStyleChange, renderStyle, onStyleChange, renderPrompt, onRenderPromptChange, hasPromptScaffold, renderToggles, eraToggleRules, toggleLabels: _toggleLabels, onToggleChange, renderBusy, renderHasGenerated, renderOutputImage, onCaptureRender, renderButtonLabel, adaptPrompt, onAdaptPromptChange, onAdaptRender, renderFeatureEnabled, onRenderFeatureEnabledChange, renderReferenceMode, onRenderReferenceModeChange, renderReferenceImages, adaptFeatureEnabled, onAdaptFeatureEnabledChange, adaptReferenceMode, onAdaptReferenceModeChange, adaptReferenceImages, styleReferenceLimit, onRenderReferenceImagesAdd, onRenderReferenceImageRemove, onAdaptReferenceImagesAdd, onAdaptReferenceImageRemove, renderError, renderStatus, renderPromptHistory, adaptPromptHistory, fullPromptHistory, blockedDesigners, featureRoofType, onFeatureRoofTypeChange, featureRoofscape, onFeatureRoofscapeChange, featureRoofMaterials, onFeatureRoofMaterialsChange, featureMassingHeight, onFeatureMassingHeightChange, featureMassingPerimeter, onFeatureMassingPerimeterChange, featureMassingForm, onFeatureMassingFormChange, featureMassingDiversity, onFeatureMassingDiversityChange, featureMassingDimensions, onFeatureMassingDimensionsChange, featureBuildingProgram, onFeatureBuildingProgramChange, featureCourtyardProgram, onFeatureCourtyardProgramChange, featureMaterialsPrimary, onFeatureMaterialsPrimaryChange, featureMaterialsGround, onFeatureMaterialsGroundChange, featureMaterialsUpper, onFeatureMaterialsUpperChange, featureFacadeVariation, onFeatureFacadeVariationChange, featureFacadeBays, onFeatureFacadeBaysChange, featurePublicRealmStreet, onFeaturePublicRealmStreetChange, viewpointPreset, onViewpointPresetChange, viewVariationMode, onViewVariationModeChange, viewComposition, onViewCompositionChange, canCreateImageSet, onCreateImageSet, imageSetBusy, renderLimitRemaining, adaptOpen, onAdaptOpenChange, showTaskBlockToggle, taskBlockEnabled, onTaskBlockEnabledChange, }: Props): import("react/jsx-runtime").JSX.Element;
155
+ export default function RenderPanel({ isImagineMode, activeTab, promptPack, promptFieldBindings, locationOptions, timeOptions, imageStyleOptions: _imageStyleOptions, styleOptions: _styleOptions, renderLocation, onLocationChange, renderTimeOfDay, onTimeOfDayChange, renderImageStyle, onImageStyleChange, renderStyle, onStyleChange, renderPrompt, onRenderPromptChange, hasPromptBlocks, renderToggles, eraToggleRules, toggleLabels: _toggleLabels, onToggleChange, renderBusy, renderHasGenerated, renderOutputImage, renderProvider, renderProviderToggleEnabled, onRenderProviderChange, hasRenderInteractionContext, onCaptureRender, renderButtonLabel, adaptPrompt, onAdaptPromptChange, onAdaptRender, renderFeatureEnabled, onRenderFeatureEnabledChange, renderReferenceMode, onRenderReferenceModeChange, renderReferenceImages, adaptFeatureEnabled, onAdaptFeatureEnabledChange, adaptReferenceMode, onAdaptReferenceModeChange, adaptReferenceImages, styleReferenceLimit, onRenderReferenceImagesAdd, onRenderReferenceImageRemove, onAdaptReferenceImagesAdd, onAdaptReferenceImageRemove, renderError, renderStatus, renderPromptHistory, adaptPromptHistory, fullPromptHistory, blockedDesigners, featureRoofType, onFeatureRoofTypeChange, featureRoofscape, onFeatureRoofscapeChange, featureRoofMaterials, onFeatureRoofMaterialsChange, featureMassingHeight, onFeatureMassingHeightChange, featureMassingPerimeter, onFeatureMassingPerimeterChange, featureMassingForm, onFeatureMassingFormChange, featureMassingDiversity, onFeatureMassingDiversityChange, featureMassingDimensions, onFeatureMassingDimensionsChange, featureBuildingProgram, onFeatureBuildingProgramChange, featureCourtyardProgram, onFeatureCourtyardProgramChange, featureMaterialsPrimary, onFeatureMaterialsPrimaryChange, featureMaterialsGround, onFeatureMaterialsGroundChange, featureMaterialsUpper, onFeatureMaterialsUpperChange, featureFacadeVariation, onFeatureFacadeVariationChange, featureFacadeBays, onFeatureFacadeBaysChange, featurePublicRealmStreet, onFeaturePublicRealmStreetChange, cameraProfile, onCameraProfileChange, cameraVariation, onCameraVariationChange, imageFormat, onImageFormatChange, canCreateImageSet, onCreateImageSet, imageSetBusy, renderLimitRemaining, adaptOpen, onAdaptOpenChange, }: Props): import("react/jsx-runtime").JSX.Element;
155
156
  export {};
156
157
  //# sourceMappingURL=RenderPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderPanel.d.ts","sourceRoot":"","sources":["../src/RenderPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderPanel.d.ts","sourceRoot":"","sources":["../src/RenderPanel.tsx"],"names":[],"mappings":"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"}