@unityevolv/ofiskit-ui-builder 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/background/BackgroundStep.d.ts +25 -0
- package/dist/background/BackgroundStep.d.ts.map +1 -1
- package/dist/background/BackgroundStep.js +50 -29
- package/dist/background/BackgroundStep.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/prompt/PromptStep.d.ts +6 -0
- package/dist/prompt/PromptStep.d.ts.map +1 -1
- package/dist/prompt/PromptStep.js +31 -14
- package/dist/prompt/PromptStep.js.map +1 -1
- package/package.json +1 -1
|
@@ -45,6 +45,31 @@ export interface BackgroundStepProps {
|
|
|
45
45
|
*/
|
|
46
46
|
onOffice?(office: OfficeFromPicture | null): void;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* The bounds a raster background is held to, per canvas shape: the exact
|
|
50
|
+
* ratio, because every room is placed in normalised coordinates against the
|
|
51
|
+
* picture and nothing is cropped for the author, and a resolution between a
|
|
52
|
+
* sharp tablet and a 4K wall. A host that stores pictures (the office
|
|
53
|
+
* service) holds them to the same bounds, so a picture accepted here is
|
|
54
|
+
* never refused later. An SVG scales: its ratio may be off by `RATIO_TOLERANCE`
|
|
55
|
+
* and it has no resolution.
|
|
56
|
+
*/
|
|
57
|
+
export declare const BACKGROUND_BOUNDS: Readonly<Record<CanvasShape, {
|
|
58
|
+
ratio: readonly [number, number];
|
|
59
|
+
min: readonly [number, number];
|
|
60
|
+
max: readonly [number, number];
|
|
61
|
+
}>>;
|
|
62
|
+
/** How far an SVG's ratio may be from the canvas's: the office-svg spec's ratioTolerance. */
|
|
63
|
+
export declare const RATIO_TOLERANCE = 0.03;
|
|
64
|
+
/**
|
|
65
|
+
* Why a picture of width x height cannot be the background of a canvas, in
|
|
66
|
+
* the author's words, or null when it can. The recommended resolution comes
|
|
67
|
+
* from the prompt document, which is what the author was told to generate.
|
|
68
|
+
*/
|
|
69
|
+
export declare function backgroundProblem(shape: CanvasShape, canvas: {
|
|
70
|
+
ratio: string;
|
|
71
|
+
resolution: string;
|
|
72
|
+
}, width: number, height: number, svg: boolean): string | null;
|
|
48
73
|
/** The name a background should have beside template.json, keeping its type. */
|
|
49
74
|
export declare function backgroundFileName(file: File, slot: 'light' | 'dark'): string;
|
|
50
75
|
export declare function BackgroundStep(props: BackgroundStepProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackgroundStep.d.ts","sourceRoot":"","sources":["../../src/background/BackgroundStep.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,kDAAkD;AAClD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAA;AAE3E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,CAAA;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,sCAAsC;IACtC,MAAM,EAAE,gBAAgB,CAAA;IACxB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACpE;;;OAGG;IACH,QAAQ,CAAC,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAA;CAClD;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAG7E;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,+
|
|
1
|
+
{"version":3,"file":"BackgroundStep.d.ts","sourceRoot":"","sources":["../../src/background/BackgroundStep.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,kDAAkD;AAClD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAA;AAE3E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,CAAA;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,sCAAsC;IACtC,MAAM,EAAE,gBAAgB,CAAA;IACxB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACpE;;;OAGG;IACH,QAAQ,CAAC,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAA;CAClD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CACtC,MAAM,CACJ,WAAW,EACX;IACE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B,CACF,CAKF,CAAA;AAED,6FAA6F;AAC7F,eAAO,MAAM,eAAe,OAAO,CAAA;AAInC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC7C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,GACX,MAAM,GAAG,IAAI,CAoBf;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAG7E;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,+BAsOxD"}
|
|
@@ -3,6 +3,49 @@ import { Alert, Button, Field } from '@unityevolv/unitykit';
|
|
|
3
3
|
import { useEffect, useState } from 'react';
|
|
4
4
|
import { darkVersion } from './darkVersion.js';
|
|
5
5
|
import { describeFound, firstMovedRoom, importOfficeFile, } from './officeImport.js';
|
|
6
|
+
/**
|
|
7
|
+
* The bounds a raster background is held to, per canvas shape: the exact
|
|
8
|
+
* ratio, because every room is placed in normalised coordinates against the
|
|
9
|
+
* picture and nothing is cropped for the author, and a resolution between a
|
|
10
|
+
* sharp tablet and a 4K wall. A host that stores pictures (the office
|
|
11
|
+
* service) holds them to the same bounds, so a picture accepted here is
|
|
12
|
+
* never refused later. An SVG scales: its ratio may be off by `RATIO_TOLERANCE`
|
|
13
|
+
* and it has no resolution.
|
|
14
|
+
*/
|
|
15
|
+
export const BACKGROUND_BOUNDS = {
|
|
16
|
+
landscape: { ratio: [16, 9], min: [1920, 1080], max: [3840, 2160] },
|
|
17
|
+
square: { ratio: [1, 1], min: [1080, 1080], max: [2160, 2160] },
|
|
18
|
+
portrait: { ratio: [3, 4], min: [1080, 1440], max: [2160, 2880] },
|
|
19
|
+
};
|
|
20
|
+
/** How far an SVG's ratio may be from the canvas's: the office-svg spec's ratioTolerance. */
|
|
21
|
+
export const RATIO_TOLERANCE = 0.03;
|
|
22
|
+
const size = ([width, height]) => `${width}x${height}`;
|
|
23
|
+
/**
|
|
24
|
+
* Why a picture of width x height cannot be the background of a canvas, in
|
|
25
|
+
* the author's words, or null when it can. The recommended resolution comes
|
|
26
|
+
* from the prompt document, which is what the author was told to generate.
|
|
27
|
+
*/
|
|
28
|
+
export function backgroundProblem(shape, canvas, width, height, svg) {
|
|
29
|
+
const bounds = BACKGROUND_BOUNDS[shape];
|
|
30
|
+
const [ratioWidth, ratioHeight] = bounds.ratio;
|
|
31
|
+
if (svg) {
|
|
32
|
+
const target = ratioWidth / ratioHeight;
|
|
33
|
+
if (Math.abs(width / height - target) / target > RATIO_TOLERANCE) {
|
|
34
|
+
return `That picture is ${width}x${height}, which is not ${canvas.ratio}. Rooms would sit wrong against it; draw it to ${canvas.ratio}.`;
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
if (width * ratioHeight !== height * ratioWidth) {
|
|
39
|
+
return `That image is ${width}x${height}, which is not exactly ${canvas.ratio}. Rooms would sit wrong against it. Generate it at ${canvas.resolution}, or crop it to ${canvas.ratio}.`;
|
|
40
|
+
}
|
|
41
|
+
if (width < bounds.min[0] || height < bounds.min[1]) {
|
|
42
|
+
return `That image is ${width}x${height}, smaller than ${size(bounds.min)}. It would look soft on a large screen. Generate it at ${canvas.resolution}.`;
|
|
43
|
+
}
|
|
44
|
+
if (width > bounds.max[0] || height > bounds.max[1]) {
|
|
45
|
+
return `That image is ${width}x${height}, larger than ${size(bounds.max)}. Scale it down to ${canvas.resolution}.`;
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
6
49
|
/** The name a background should have beside template.json, keeping its type. */
|
|
7
50
|
export function backgroundFileName(file, slot) {
|
|
8
51
|
const extension = isSvg(file) ? 'svg' : (/\.([a-z0-9]+)$/i.exec(file.name)?.[1] ?? 'png');
|
|
@@ -22,8 +65,6 @@ export function BackgroundStep(props) {
|
|
|
22
65
|
/** A dark version made here, which the author needs as a file; they never had one. */
|
|
23
66
|
const [generated, setGenerated] = useState(null);
|
|
24
67
|
const [generating, setGenerating] = useState(false);
|
|
25
|
-
/** What a file dropped on "Check a file" would do, said without doing it. */
|
|
26
|
-
const [checked, setChecked] = useState(null);
|
|
27
68
|
// The download link's URL is this step's own; the one handed to the host is not.
|
|
28
69
|
useEffect(() => () => {
|
|
29
70
|
if (generated)
|
|
@@ -66,18 +107,13 @@ export function BackgroundStep(props) {
|
|
|
66
107
|
URL.revokeObjectURL(url);
|
|
67
108
|
return false;
|
|
68
109
|
}
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (Math.abs(actual - target) > 0.03) {
|
|
73
|
-
setProblem(`That image is ${image.width}x${image.height}, which is not ${canvas.ratio}. ` +
|
|
74
|
-
`Rooms would sit slightly wrong against it. Generate it at ${canvas.resolution}.`);
|
|
110
|
+
const refused = backgroundProblem(shape, canvas, image.width, image.height, isSvg(file));
|
|
111
|
+
if (refused) {
|
|
112
|
+
setProblem(refused);
|
|
75
113
|
URL.revokeObjectURL(url);
|
|
76
114
|
return false;
|
|
77
115
|
}
|
|
78
|
-
setProblem(
|
|
79
|
-
? `That image is only ${image.width} pixels wide. It will look soft on a large screen.`
|
|
80
|
-
: null);
|
|
116
|
+
setProblem(null);
|
|
81
117
|
if (slot === 'light') {
|
|
82
118
|
// A new light picture makes any dark version made from the old one stale.
|
|
83
119
|
setLightSvg(isSvg(file) ? file : null);
|
|
@@ -117,31 +153,16 @@ export function BackgroundStep(props) {
|
|
|
117
153
|
setGenerating(false);
|
|
118
154
|
}
|
|
119
155
|
}
|
|
120
|
-
|
|
121
|
-
async function check(file) {
|
|
122
|
-
if (!isSvg(file)) {
|
|
123
|
-
setChecked({ name: file.name, result: { kind: 'picture' } });
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
setChecked({
|
|
127
|
-
name: file.name,
|
|
128
|
-
result: importOfficeFile(await file.text(), backgroundFileName(file, 'light')),
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
return (_jsxs("div", { className: "mx-auto grid max-w-5xl gap-6 p-4 lg:grid-cols-2", children: [_jsxs("section", { className: "space-y-3", "aria-labelledby": "background-light", children: [_jsx("h2", { id: "background-light", className: "text-lg font-semibold", children: "Background image" }), _jsxs("p", { className: "text-sm text-base-content/75", children: ["Required. The office is drawn on this. It should be ", canvas.ratio, ", ideally", ' ', canvas.resolution, ". An SVG drawn to the office convention brings its rooms with it."] }), _jsx(Field, { label: "Light image", help: "PNG, JPEG, WebP, AVIF or SVG.", children: (control) => (_jsx("input", { ...control, type: "file", accept: "image/*", className: "file-input file-input-bordered file-input-sm w-full", onChange: (event) => {
|
|
156
|
+
return (_jsxs("div", { className: "mx-auto grid max-w-5xl gap-6 p-4 lg:grid-cols-2", children: [_jsxs("section", { className: "space-y-3", "aria-labelledby": "background-light", children: [_jsx("h2", { id: "background-light", className: "text-lg font-semibold", children: "Background image" }), _jsxs("p", { className: "text-sm text-base-content/75", children: ["Required. The office is drawn on this. A picture is exactly ", canvas.ratio, ", between", ' ', size(BACKGROUND_BOUNDS[shape].min), " and ", size(BACKGROUND_BOUNDS[shape].max), "; generate it at ", canvas.resolution, ". An SVG drawn to the office convention brings its rooms with it."] }), _jsx(Field, { label: "Light image", help: "PNG, JPEG, WebP or SVG.", children: (control) => (_jsx("input", { ...control, type: "file", accept: "image/png,image/jpeg,image/webp,image/svg+xml", className: "file-input file-input-bordered file-input-sm w-full", onChange: (event) => {
|
|
132
157
|
const file = event.target.files?.[0];
|
|
133
158
|
if (file)
|
|
134
159
|
void accept(file, 'light');
|
|
135
160
|
} })) }), _jsx(Preview, { url: props.images.light, label: "The light image" }), lightOffice && (_jsxs("div", { role: "status", className: "text-xs", children: [_jsx("p", { className: "font-medium text-success", children: describeFound(lightOffice.found) }), _jsxs("p", { className: "text-base-content/75", children: ["They are placed for you on the next step", lightOffice.issues.length > 0 &&
|
|
136
|
-
`, with ${lightOffice.issues.length} thing${lightOffice.issues.length === 1 ? '' : 's'} to fix shown there`, "."] }), _jsx(Report, { issues: lightOffice.issues, warnings: lightOffice.warnings })] }))] }), _jsxs("section", { className: "space-y-3", "aria-labelledby": "background-dark", children: [_jsx("h2", { id: "background-dark", className: "text-lg font-semibold", children: "Dark version" }), _jsx("p", { className: "text-sm text-base-content/75", children: "Optional, for the dark theme. The same scene recoloured, never a different layout." }), _jsx(Field, { label: "Dark image", help: "Upload one, or generate it from an SVG.", children: (control) => (_jsx("input", { ...control, type: "file", accept: "image
|
|
161
|
+
`, with ${lightOffice.issues.length} thing${lightOffice.issues.length === 1 ? '' : 's'} to fix shown there`, "."] }), _jsx(Report, { issues: lightOffice.issues, warnings: lightOffice.warnings })] }))] }), _jsxs("section", { className: "space-y-3", "aria-labelledby": "background-dark", children: [_jsx("h2", { id: "background-dark", className: "text-lg font-semibold", children: "Dark version" }), _jsx("p", { className: "text-sm text-base-content/75", children: "Optional, for the dark theme. The same scene recoloured, never a different layout." }), _jsx(Field, { label: "Dark image", help: "Upload one, or generate it from an SVG.", children: (control) => (_jsx("input", { ...control, type: "file", accept: "image/png,image/jpeg,image/webp,image/svg+xml", className: "file-input file-input-bordered file-input-sm w-full", onChange: (event) => {
|
|
137
162
|
const file = event.target.files?.[0];
|
|
138
163
|
if (file)
|
|
139
164
|
void accept(file, 'dark');
|
|
140
|
-
} })) }), lightSvg && (_jsxs("div", { className: "space-y-1", children: [_jsx(Button, { size: "sm", variant: "secondary", disabled: generating, onClick: () => void generateDark(), children: "Generate dark version" }), _jsx("p", { className: "text-xs text-base-content/70", children: "Made from your SVG: walls and floors darken, lamps stay lit. Nothing is uploaded." })] })), _jsx("p", { role: "status", className: "text-xs", children: generated && (_jsxs(_Fragment, { children: ["Dark version ready.", ' ', _jsxs("a", { href: generated.url, download: generated.name, className: "link", children: ["Download ", generated.name] }), ' ', "and put it beside template.json."] })) }), _jsx(Preview, { url: props.images.dark, label: "The dark image" })] }), problem && (_jsx(Alert, { variant: "warn", className: "lg:col-span-2", children: problem }))
|
|
141
|
-
const file = event.target.files?.[0];
|
|
142
|
-
if (file)
|
|
143
|
-
void check(file);
|
|
144
|
-
} })) }), checked && (_jsxs("div", { role: "status", className: "rounded-lg bg-base-200 p-3 text-xs", children: [_jsx("p", { className: "font-medium", children: checked.name }), checked.result.kind === 'picture' && (_jsx("p", { children: "A plain picture: no room groups. The rooms would be drawn by hand." })), checked.result.kind === 'refused' && (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-error", children: "This file cannot be used as a background." }), _jsx(Report, { issues: checked.result.issues, warnings: [] })] })), checked.result.kind === 'office' && (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-success", children: describeFound(checked.result.found) }), checked.result.issues.length === 0 && checked.result.warnings.length === 0 && (_jsx("p", { children: "Nothing to fix." })), _jsx(Report, { issues: checked.result.issues, warnings: checked.result.warnings })] }))] }))] })] }));
|
|
165
|
+
} })) }), lightSvg && (_jsxs("div", { className: "space-y-1", children: [_jsx(Button, { size: "sm", variant: "secondary", disabled: generating, onClick: () => void generateDark(), children: "Generate dark version" }), _jsx("p", { className: "text-xs text-base-content/70", children: "Made from your SVG: walls and floors darken, lamps stay lit. Nothing is uploaded." })] })), _jsx("p", { role: "status", className: "text-xs", children: generated && (_jsxs(_Fragment, { children: ["Dark version ready.", ' ', _jsxs("a", { href: generated.url, download: generated.name, className: "link", children: ["Download ", generated.name] }), ' ', "and put it beside template.json."] })) }), _jsx(Preview, { url: props.images.dark, label: "The dark image" })] }), problem && (_jsx(Alert, { variant: "warn", className: "lg:col-span-2", children: problem }))] }));
|
|
145
166
|
}
|
|
146
167
|
/** Every message, each on its own line, so the list copies cleanly. */
|
|
147
168
|
function Report({ issues, warnings, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackgroundStep.js","sourceRoot":"","sources":["../../src/background/BackgroundStep.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,GAEjB,MAAM,mBAAmB,CAAA;AAgD1B,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,IAAU,EAAE,IAAsB;IACnE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAA;IACzF,OAAO,UAAU,IAAI,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAA;AACpD,CAAC;AAED,SAAS,KAAK,CAAC,IAAU;IACvB,OAAO,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAErC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAC3D,yFAAyF;IACzF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAc,IAAI,CAAC,CAAA;IAC3D,wEAAwE;IACxE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAA2B,IAAI,CAAC,CAAA;IAC9E,sFAAsF;IACtF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAuC,IAAI,CAAC,CAAA;IACtF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"BackgroundStep.js","sourceRoot":"","sources":["../../src/background/BackgroundStep.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export { BuilderCanvas, type BuilderCanvasProps } from './canvas/BuilderCanvas.j
|
|
|
14
14
|
export type { ChangeOptions, OnChange, Selection, Tool } from './canvas/types.js';
|
|
15
15
|
export { BuilderSteps, type BuilderStepsProps } from './BuilderSteps.js';
|
|
16
16
|
export { PromptStep, type PromptStepProps } from './prompt/PromptStep.js';
|
|
17
|
-
export { BackgroundStep, backgroundFileName, type BackgroundImages, type BackgroundStepProps, type OfficeFromPicture, } from './background/BackgroundStep.js';
|
|
17
|
+
export { BACKGROUND_BOUNDS, BackgroundStep, backgroundFileName, backgroundProblem, RATIO_TOLERANCE, type BackgroundImages, type BackgroundStepProps, type OfficeFromPicture, } from './background/BackgroundStep.js';
|
|
18
18
|
export { darkVersion } from './background/darkVersion.js';
|
|
19
19
|
export { describeFound, edgeWarnings, fillAreas, firstMovedRoom, importOfficeFile, type ImportedOffice, } from './background/officeImport.js';
|
|
20
20
|
export { useHistory, type History } from './history.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAClF,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACjF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,KAAK,cAAc,GACpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAClF,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACjF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,KAAK,cAAc,GACpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ export { OfficeBuilder } from './OfficeBuilder.js';
|
|
|
13
13
|
export { BuilderCanvas } from './canvas/BuilderCanvas.js';
|
|
14
14
|
export { BuilderSteps } from './BuilderSteps.js';
|
|
15
15
|
export { PromptStep } from './prompt/PromptStep.js';
|
|
16
|
-
export { BackgroundStep, backgroundFileName, } from './background/BackgroundStep.js';
|
|
16
|
+
export { BACKGROUND_BOUNDS, BackgroundStep, backgroundFileName, backgroundProblem, RATIO_TOLERANCE, } from './background/BackgroundStep.js';
|
|
17
17
|
export { darkVersion } from './background/darkVersion.js';
|
|
18
18
|
export { describeFound, edgeWarnings, fillAreas, firstMovedRoom, importOfficeFile, } from './background/officeImport.js';
|
|
19
19
|
export { useHistory } from './history.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAA2B,MAAM,2BAA2B,CAAA;AAElF,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,UAAU,EAAwB,MAAM,wBAAwB,CAAA;AACzE,OAAO,EACL,cAAc,EACd,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAA2B,MAAM,2BAA2B,CAAA;AAElF,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,UAAU,EAAwB,MAAM,wBAAwB,CAAA;AACzE,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAIhB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,SAAS,EACT,cAAc,EACd,gBAAgB,GAEjB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,UAAU,EAAgB,MAAM,cAAc,CAAA;AACvD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GAMb,MAAM,oBAAoB,CAAA"}
|
|
@@ -11,6 +11,12 @@ import { type OfficePrompt, type PromptDocument } from './prompt.js';
|
|
|
11
11
|
* The canvas shape is chosen here because it cannot change afterwards: every
|
|
12
12
|
* room is placed relative to it. The step says so rather than letting somebody
|
|
13
13
|
* find out after an hour of drawing.
|
|
14
|
+
*
|
|
15
|
+
* The step fits one screen. There are two ways to a picture, a painting the
|
|
16
|
+
* rooms are drawn onto or an SVG that carries them, and each is a tab, so
|
|
17
|
+
* neither sits under the other; the fields that tune the picture prompt and
|
|
18
|
+
* the advice about it fold away until wanted, since most authors copy the
|
|
19
|
+
* prompt as a preset filled it.
|
|
14
20
|
*/
|
|
15
21
|
export interface PromptStepProps {
|
|
16
22
|
document: PromptDocument;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptStep.d.ts","sourceRoot":"","sources":["../../src/prompt/PromptStep.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAG9E,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAA;AAEpB
|
|
1
|
+
{"version":3,"file":"PromptStep.d.ts","sourceRoot":"","sources":["../../src/prompt/PromptStep.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAG9E,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAA;AAEpB;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,CAAA;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IACvC,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;CACxC;AAUD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,+BA0MhD"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Alert, Button, Icon, Input, Textarea } from '@unityevolv/unitykit';
|
|
2
|
+
import { Accordion, Alert, Button, Icon, Input, Tabs, Textarea } from '@unityevolv/unitykit';
|
|
3
3
|
import { CANVAS_SHAPES } from '@unityevolv/ofiskit-template';
|
|
4
4
|
import { useMemo, useState } from 'react';
|
|
5
5
|
import { applyPreset, defaultSlots, renderPrompt, } from './prompt.js';
|
|
6
|
+
/** The look of a choice among a few, pressed or not: shapes, themes and views. */
|
|
7
|
+
const choice = (pressed) => [
|
|
8
|
+
'rounded-lg border px-3 py-2 text-sm',
|
|
9
|
+
'focus-visible:outline-2 focus-visible:outline-primary',
|
|
10
|
+
pressed ? 'border-primary bg-primary/10 font-medium' : 'border-base-300 hover:bg-base-200',
|
|
11
|
+
].join(' ');
|
|
6
12
|
export function PromptStep(props) {
|
|
7
13
|
const { document: prompt, shape } = props;
|
|
8
14
|
const [values, setValues] = useState(() => defaultSlots(prompt));
|
|
@@ -16,18 +22,29 @@ export function PromptStep(props) {
|
|
|
16
22
|
setTimeout(() => setCopied(null), 2000);
|
|
17
23
|
});
|
|
18
24
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
const picture = (_jsxs("div", { className: "grid gap-4 pt-3 lg:grid-cols-[1fr_18rem]", children: [_jsxs("div", { children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h2", { className: "text-base font-semibold", children: "The prompt" }), _jsxs(Button, { size: "sm", variant: "ghost", onClick: () => copy('picture', text), children: [_jsx(Icon, { name: copied === 'picture' ? 'check' : 'copy', size: "sm" }), copied === 'picture' ? 'Copied' : 'Copy'] })] }), _jsx("p", { className: "mt-1 text-sm text-base-content/75", children: "Paste it into an image model, or hand it to an illustrator, and upload the picture on the next step." }), _jsx(Textarea, { readOnly: true, value: text, rows: 9, className: "mt-2 font-mono text-xs", "aria-label": "The prompt" })] }), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-sm font-semibold", children: "Start from a theme" }), _jsx("div", { className: "mt-2 flex flex-wrap gap-1", children: Object.entries(prompt.presets).map(([id, preset]) => (_jsx("button", { type: "button", onClick: () => setValues(applyPreset(preset)), className: "rounded-full bg-base-200 px-2 py-1 text-xs hover:bg-base-300 focus-visible:outline-2 focus-visible:outline-primary", children: preset.label }, id))) })] }), _jsx(Accordion, { type: "multiple", variant: "plus", headingLevel: 3, items: [
|
|
26
|
+
{
|
|
27
|
+
value: 'fields',
|
|
28
|
+
title: 'Adjust the prompt',
|
|
29
|
+
content: (_jsx("div", { className: "space-y-2", children: Object.entries(prompt.slots).map(([key, slot]) => (_jsx(Input, { label: slot.label, help: slot.help, value: values[key] ?? '', onChange: (event) => setValues({ ...values, [key]: event.target.value }) }, key))) })),
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
value: 'guidance',
|
|
33
|
+
title: 'Worth knowing',
|
|
34
|
+
content: (_jsx("ul", { className: "list-disc space-y-1 pl-4 text-xs text-base-content/75", children: prompt.guidance.map((line) => (_jsx("li", { children: line }, line))) })),
|
|
35
|
+
},
|
|
36
|
+
] })] })] }));
|
|
37
|
+
/*
|
|
38
|
+
* The same job done the other way round: instead of a painting the rooms
|
|
39
|
+
* are drawn onto by hand, an SVG that carries its rooms, drawn by the
|
|
40
|
+
* author's own assistant from a theme's symbols. The prompt is generated
|
|
41
|
+
* from the spec and the symbols and only copied here, so what the
|
|
42
|
+
* assistant is told and what the importer accepts cannot drift apart.
|
|
43
|
+
*/
|
|
44
|
+
const drawn = props.officePrompts && props.officePrompts.length > 0 && office ? (_jsxs("div", { className: "pt-3", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h2", { className: "text-base font-semibold", children: "Or have your AI draw the office" }), _jsxs(Button, { size: "sm", variant: "ghost", onClick: () => copy('office', office.text), children: [_jsx(Icon, { name: copied === 'office' ? 'check' : 'copy', size: "sm" }), copied === 'office' ? 'Copied' : 'Copy', " office prompt"] })] }), _jsx("p", { className: "mt-1 text-sm text-base-content/75", children: "Paste this into ChatGPT, Claude, Gemini or whichever assistant you use, answer its questions, and upload the SVG it returns on the next step. Its rooms come with it, so the rooms step opens already laid out." }), _jsx("div", { className: "mt-3 flex flex-wrap gap-2", role: "group", "aria-label": "Theme and view", children: props.officePrompts.map((candidate) => (_jsx("button", { type: "button", onClick: () => setOfficeId(candidate.id), "aria-pressed": candidate.id === office.id, className: choice(candidate.id === office.id), children: candidate.label }, candidate.id))) }), _jsx(Textarea, { readOnly: true, value: office.text, rows: 9, className: "mt-2 font-mono text-xs", "aria-label": "The office prompt" })] })) : null;
|
|
45
|
+
return (_jsxs("div", { className: "mx-auto max-w-5xl space-y-4 p-4", children: [_jsxs("div", { children: [_jsxs("div", { className: "flex flex-wrap items-center gap-x-4 gap-y-2", children: [_jsx("h2", { className: "text-base font-semibold", children: "Shape of the office" }), _jsx("div", { className: "flex flex-wrap gap-2", children: CANVAS_SHAPES.map((candidate) => (_jsxs("button", { type: "button", onClick: () => props.onShapeChange(candidate), "aria-pressed": shape === candidate, className: choice(shape === candidate), children: [prompt.canvases[candidate].label, _jsx("span", { className: "ms-2 text-xs text-base-content", children: prompt.canvases[candidate].resolution })] }, candidate))) })] }), _jsx("p", { className: "mt-1 text-sm text-base-content/75", children: "This cannot change once rooms are placed, because every room is positioned against it." }), props.shapeChangeWarning && (_jsx(Alert, { variant: "warn", className: "mt-3", children: props.shapeChangeWarning }))] }), drawn ? (_jsx(Tabs, { label: "How to get the picture", variant: "border", items: [
|
|
46
|
+
{ value: 'picture', label: 'Picture prompt', content: picture },
|
|
47
|
+
{ value: 'office', label: 'Office prompt: your AI draws the rooms', content: drawn },
|
|
48
|
+
] })) : (picture)] }));
|
|
32
49
|
}
|
|
33
50
|
//# sourceMappingURL=PromptStep.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptStep.js","sourceRoot":"","sources":["../../src/prompt/PromptStep.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"PromptStep.js","sourceRoot":"","sources":["../../src/prompt/PromptStep.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unityevolv/ofiskit-ui-builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "The office builder: draw rooms and user areas on a background image and emit a template. Takes a layout, emits a layout; the host decides what to do with it.",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"type": "module",
|