feat: implement AI bouquet generation flow with Gemini/OpenAI

* feat: scaffold message, generating, and map pages and align header steps

* feat: implement AI bouquet generation flow with Gemini/OpenAI

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Chaewon Lee
2026-06-09 17:07:38 +09:00
committed by GitHub
parent d0ba482451
commit d8f93f4c17
33 changed files with 2008 additions and 54 deletions

View File

@@ -5,15 +5,16 @@
// the chosen image (cover) when filled. Layout (size / grid placement) is
// supplied by the parent via `class` and `style` so the same tile works in
// both the moodboard and the SNS feed.
let { label = null, class: klass = '', style = '' } = $props();
let { label = null, class: klass = '', style = '', file = $bindable(null) } = $props();
let preview = $state(null);
function pick(event) {
const file = event.currentTarget.files?.[0];
if (!file) return;
const picked = event.currentTarget.files?.[0];
if (!picked) return;
if (preview) URL.revokeObjectURL(preview);
preview = URL.createObjectURL(file);
file = picked;
preview = URL.createObjectURL(picked);
}
onDestroy(() => {