@gui-chat-plugin/moodboard 0.1.1 → 0.1.2

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.
@@ -0,0 +1,413 @@
1
+ //#region src/core/definition.ts
2
+ var e = "createMoodBoard", t = {
3
+ type: "function",
4
+ name: e,
5
+ description: "Create or update a visual mood board to capture inspiration, themes, and aesthetics. Use colors, emojis, and text to represent moods, concepts, and ideas visually.",
6
+ parameters: {
7
+ type: "object",
8
+ properties: {
9
+ action: {
10
+ type: "string",
11
+ enum: [
12
+ "create",
13
+ "add_item",
14
+ "update_theme",
15
+ "rearrange"
16
+ ],
17
+ description: "Action to perform: create (new mood board), add_item (add element), update_theme (change style), rearrange (reorganize)"
18
+ },
19
+ title: {
20
+ type: "string",
21
+ description: "Title of the mood board (required for create action)"
22
+ },
23
+ theme: {
24
+ type: "string",
25
+ description: "Overall theme (e.g., 'minimal', 'vibrant', 'vintage', 'modern')"
26
+ },
27
+ concepts: {
28
+ type: "array",
29
+ items: { type: "string" },
30
+ description: "Concepts, keywords, or moods to visualize on the board"
31
+ },
32
+ existingBoard: {
33
+ type: "object",
34
+ description: "Current mood board state for updates"
35
+ },
36
+ itemType: {
37
+ type: "string",
38
+ enum: [
39
+ "color",
40
+ "text",
41
+ "emoji"
42
+ ],
43
+ description: "Type of item to add"
44
+ },
45
+ itemContent: {
46
+ type: "string",
47
+ description: "Content for the item (hex color, text, or emoji)"
48
+ },
49
+ itemLabel: {
50
+ type: "string",
51
+ description: "Optional label describing the item"
52
+ },
53
+ itemMood: {
54
+ type: "string",
55
+ description: "Mood or feeling associated with the item"
56
+ }
57
+ },
58
+ required: ["action"]
59
+ }
60
+ }, n = `Use ${e} to create visual mood boards when:
61
+ - The user wants to capture an aesthetic or vibe
62
+ - Exploring color palettes and themes
63
+ - Visualizing brand identity or style direction
64
+ - Collecting inspiration for a project
65
+ - Expressing emotions or moods visually
66
+
67
+ When creating a mood board:
68
+ - Start with colors that represent the core mood
69
+ - Add emojis for quick visual communication
70
+ - Include text for key concepts and words
71
+ - Consider balance and visual harmony
72
+
73
+ Color meanings:
74
+ - Warm colors (red, orange, yellow): energy, passion, warmth
75
+ - Cool colors (blue, green, purple): calm, nature, creativity
76
+ - Neutral colors (black, white, gray): sophistication, balance`, r = {
77
+ vibrant: [
78
+ "#FF6B6B",
79
+ "#4ECDC4",
80
+ "#45B7D1",
81
+ "#FFA07A",
82
+ "#98D8C8",
83
+ "#F7DC6F"
84
+ ],
85
+ minimal: [
86
+ "#2C3E50",
87
+ "#ECF0F1",
88
+ "#95A5A6",
89
+ "#BDC3C7",
90
+ "#34495E",
91
+ "#FFFFFF"
92
+ ],
93
+ vintage: [
94
+ "#D4A373",
95
+ "#CCD5AE",
96
+ "#E9EDC9",
97
+ "#FEFAE0",
98
+ "#FAEDCD",
99
+ "#A8DADC"
100
+ ],
101
+ modern: [
102
+ "#6366F1",
103
+ "#8B5CF6",
104
+ "#EC4899",
105
+ "#14B8A6",
106
+ "#F59E0B",
107
+ "#10B981"
108
+ ],
109
+ nature: [
110
+ "#2D5016",
111
+ "#52734D",
112
+ "#91C788",
113
+ "#FEFFDE",
114
+ "#DDFFBC",
115
+ "#BFEDC1"
116
+ ],
117
+ ocean: [
118
+ "#0077B6",
119
+ "#00B4D8",
120
+ "#90E0EF",
121
+ "#CAF0F8",
122
+ "#03045E",
123
+ "#48CAE4"
124
+ ]
125
+ }, i = {
126
+ happy: [
127
+ "😊",
128
+ "🌟",
129
+ "✨",
130
+ "🎉",
131
+ "💫",
132
+ "🌈"
133
+ ],
134
+ calm: [
135
+ "🌿",
136
+ "🍃",
137
+ "☁️",
138
+ "🌙",
139
+ "💭",
140
+ "🕊️"
141
+ ],
142
+ creative: [
143
+ "🎨",
144
+ "💡",
145
+ "🎭",
146
+ "🖌️",
147
+ "📐",
148
+ "🎬"
149
+ ],
150
+ energy: [
151
+ "⚡",
152
+ "🔥",
153
+ "💪",
154
+ "🚀",
155
+ "⭐",
156
+ "💥"
157
+ ],
158
+ love: [
159
+ "❤️",
160
+ "💕",
161
+ "💖",
162
+ "🌹",
163
+ "💝",
164
+ "🥰"
165
+ ],
166
+ nature: [
167
+ "🌸",
168
+ "🌺",
169
+ "🌻",
170
+ "🍀",
171
+ "🌴",
172
+ "🌊"
173
+ ]
174
+ };
175
+ function a() {
176
+ return `item_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
177
+ }
178
+ function o(e) {
179
+ return r[e] || r.modern;
180
+ }
181
+ function s(e) {
182
+ let t = e.toLowerCase();
183
+ for (let [e, n] of Object.entries(i)) if (t.includes(e)) return n;
184
+ return i.creative;
185
+ }
186
+ function c(e, t, n, r) {
187
+ let i = Math.ceil(Math.sqrt(t)), a = Math.floor(e / i), o = e % i, s = n / i, c = r / Math.ceil(t / i), l = (Math.random() - .5) * 20, u = (Math.random() - .5) * 20;
188
+ return {
189
+ x: o * s + s / 2 + l,
190
+ y: a * c + c / 2 + u
191
+ };
192
+ }
193
+ function l(e, t, n) {
194
+ let r = o(t), i = [];
195
+ return r.slice(0, 4).forEach((e, t) => {
196
+ let r = c(t, n.length + 8, 800, 600);
197
+ i.push({
198
+ id: a(),
199
+ type: "color",
200
+ content: e,
201
+ x: r.x,
202
+ y: r.y,
203
+ width: 80,
204
+ height: 80,
205
+ rotation: (Math.random() - .5) * 10
206
+ });
207
+ }), n.forEach((e, t) => {
208
+ let r = c(t + 4, n.length + 8, 800, 600);
209
+ i.push({
210
+ id: a(),
211
+ type: "text",
212
+ content: e,
213
+ label: e,
214
+ x: r.x,
215
+ y: r.y,
216
+ width: 120,
217
+ height: 40,
218
+ rotation: (Math.random() - .5) * 8
219
+ });
220
+ }), s(t).slice(0, 4).forEach((e, t) => {
221
+ let r = c(n.length + 4 + t, n.length + 8, 800, 600);
222
+ i.push({
223
+ id: a(),
224
+ type: "emoji",
225
+ content: e,
226
+ x: r.x,
227
+ y: r.y,
228
+ width: 60,
229
+ height: 60,
230
+ rotation: (Math.random() - .5) * 15
231
+ });
232
+ }), {
233
+ title: e,
234
+ theme: t,
235
+ items: i,
236
+ backgroundColor: r[r.length - 1] + "20"
237
+ };
238
+ }
239
+ function u(e, t, n, r, i) {
240
+ let o = {
241
+ id: a(),
242
+ type: t,
243
+ content: n,
244
+ label: r,
245
+ mood: i,
246
+ x: 400 + (Math.random() - .5) * 200,
247
+ y: 300 + (Math.random() - .5) * 200,
248
+ width: t === "color" ? 80 : t === "emoji" ? 60 : 120,
249
+ height: t === "color" ? 80 : t === "emoji" ? 60 : 40,
250
+ rotation: (Math.random() - .5) * 10
251
+ };
252
+ return {
253
+ ...e,
254
+ items: [...e.items, o]
255
+ };
256
+ }
257
+ function d(e, t) {
258
+ let n = o(t), r = 0, i = e.items.map((e) => {
259
+ if (e.type === "color") {
260
+ let t = n[r % n.length];
261
+ return r++, {
262
+ ...e,
263
+ content: t
264
+ };
265
+ }
266
+ return e;
267
+ });
268
+ return {
269
+ ...e,
270
+ theme: t,
271
+ items: i,
272
+ backgroundColor: n[n.length - 1] + "20"
273
+ };
274
+ }
275
+ var f = async (t, n) => {
276
+ let { action: r } = n, i, a, o;
277
+ switch (r) {
278
+ case "create":
279
+ if (!n.title) return {
280
+ toolName: e,
281
+ message: "Title is required for creating a mood board",
282
+ instructions: "Ask the user for a title and theme."
283
+ };
284
+ i = l(n.title, n.theme || "modern", n.concepts || []), a = `Created mood board "${n.title}" with ${i.items.length} elements`, o = "Tell the user the mood board has been created. Ask if they want to add more elements or change the theme.";
285
+ break;
286
+ case "add_item":
287
+ if (!n.existingBoard || !n.itemType || !n.itemContent) return {
288
+ toolName: e,
289
+ message: "Existing board, item type, and content are required",
290
+ instructions: "Ask the user what type of item to add."
291
+ };
292
+ i = u(n.existingBoard, n.itemType, n.itemContent, n.itemLabel, n.itemMood), a = `Added ${n.itemType} to the mood board`, o = "Confirm the item was added. Ask if they want to add more or adjust the layout.";
293
+ break;
294
+ case "update_theme":
295
+ if (!n.existingBoard || !n.theme) return {
296
+ toolName: e,
297
+ message: "Existing board and new theme are required",
298
+ instructions: "Ask the user which theme they prefer."
299
+ };
300
+ i = d(n.existingBoard, n.theme), a = `Updated mood board theme to "${n.theme}"`, o = "Confirm the theme was changed. Ask if they like the new look.";
301
+ break;
302
+ case "rearrange":
303
+ if (!n.existingBoard) return {
304
+ toolName: e,
305
+ message: "Existing board is required for rearranging",
306
+ instructions: "The mood board data is missing."
307
+ };
308
+ i = n.existingBoard, a = "Mood board rearranged", o = "The mood board has been refreshed.";
309
+ break;
310
+ default: return {
311
+ toolName: e,
312
+ message: `Unknown action: ${r}`,
313
+ instructions: "Invalid action specified."
314
+ };
315
+ }
316
+ let s = {
317
+ itemCount: i.items.length,
318
+ theme: i.theme,
319
+ items: i.items.map((e) => ({
320
+ id: e.id,
321
+ type: e.type,
322
+ label: e.label
323
+ }))
324
+ };
325
+ return {
326
+ toolName: e,
327
+ message: a,
328
+ title: i.title,
329
+ data: i,
330
+ jsonData: s,
331
+ instructions: o,
332
+ updating: r !== "create"
333
+ };
334
+ }, p = {
335
+ toolDefinition: t,
336
+ execute: f,
337
+ generatingMessage: "Creating mood board...",
338
+ isEnabled: () => !0,
339
+ systemPrompt: n
340
+ }, m = [
341
+ {
342
+ name: "Vibrant Energy",
343
+ args: {
344
+ action: "create",
345
+ title: "Vibrant Energy",
346
+ theme: "vibrant",
347
+ concepts: [
348
+ "Bold",
349
+ "Dynamic",
350
+ "Exciting",
351
+ "Fresh"
352
+ ]
353
+ }
354
+ },
355
+ {
356
+ name: "Minimal Zen",
357
+ args: {
358
+ action: "create",
359
+ title: "Minimal Zen",
360
+ theme: "minimal",
361
+ concepts: [
362
+ "Simple",
363
+ "Clean",
364
+ "Peaceful",
365
+ "Balanced"
366
+ ]
367
+ }
368
+ },
369
+ {
370
+ name: "Vintage Charm",
371
+ args: {
372
+ action: "create",
373
+ title: "Vintage Charm",
374
+ theme: "vintage",
375
+ concepts: [
376
+ "Nostalgic",
377
+ "Warm",
378
+ "Classic",
379
+ "Timeless"
380
+ ]
381
+ }
382
+ },
383
+ {
384
+ name: "Ocean Dreams",
385
+ args: {
386
+ action: "create",
387
+ title: "Ocean Dreams",
388
+ theme: "ocean",
389
+ concepts: [
390
+ "Calm",
391
+ "Flowing",
392
+ "Deep",
393
+ "Refreshing"
394
+ ]
395
+ }
396
+ },
397
+ {
398
+ name: "Nature Escape",
399
+ args: {
400
+ action: "create",
401
+ title: "Nature Escape",
402
+ theme: "nature",
403
+ concepts: [
404
+ "Organic",
405
+ "Growth",
406
+ "Harmony",
407
+ "Life"
408
+ ]
409
+ }
410
+ }
411
+ ];
412
+ //#endregion
413
+ export { t as a, n as i, f as n, e as o, p as r, m as t };
@@ -0,0 +1,17 @@
1
+ var e=`createMoodBoard`,t={type:`function`,name:e,description:`Create or update a visual mood board to capture inspiration, themes, and aesthetics. Use colors, emojis, and text to represent moods, concepts, and ideas visually.`,parameters:{type:`object`,properties:{action:{type:`string`,enum:[`create`,`add_item`,`update_theme`,`rearrange`],description:`Action to perform: create (new mood board), add_item (add element), update_theme (change style), rearrange (reorganize)`},title:{type:`string`,description:`Title of the mood board (required for create action)`},theme:{type:`string`,description:`Overall theme (e.g., 'minimal', 'vibrant', 'vintage', 'modern')`},concepts:{type:`array`,items:{type:`string`},description:`Concepts, keywords, or moods to visualize on the board`},existingBoard:{type:`object`,description:`Current mood board state for updates`},itemType:{type:`string`,enum:[`color`,`text`,`emoji`],description:`Type of item to add`},itemContent:{type:`string`,description:`Content for the item (hex color, text, or emoji)`},itemLabel:{type:`string`,description:`Optional label describing the item`},itemMood:{type:`string`,description:`Mood or feeling associated with the item`}},required:[`action`]}},n=`Use ${e} to create visual mood boards when:
2
+ - The user wants to capture an aesthetic or vibe
3
+ - Exploring color palettes and themes
4
+ - Visualizing brand identity or style direction
5
+ - Collecting inspiration for a project
6
+ - Expressing emotions or moods visually
7
+
8
+ When creating a mood board:
9
+ - Start with colors that represent the core mood
10
+ - Add emojis for quick visual communication
11
+ - Include text for key concepts and words
12
+ - Consider balance and visual harmony
13
+
14
+ Color meanings:
15
+ - Warm colors (red, orange, yellow): energy, passion, warmth
16
+ - Cool colors (blue, green, purple): calm, nature, creativity
17
+ - Neutral colors (black, white, gray): sophistication, balance`,r={vibrant:[`#FF6B6B`,`#4ECDC4`,`#45B7D1`,`#FFA07A`,`#98D8C8`,`#F7DC6F`],minimal:[`#2C3E50`,`#ECF0F1`,`#95A5A6`,`#BDC3C7`,`#34495E`,`#FFFFFF`],vintage:[`#D4A373`,`#CCD5AE`,`#E9EDC9`,`#FEFAE0`,`#FAEDCD`,`#A8DADC`],modern:[`#6366F1`,`#8B5CF6`,`#EC4899`,`#14B8A6`,`#F59E0B`,`#10B981`],nature:[`#2D5016`,`#52734D`,`#91C788`,`#FEFFDE`,`#DDFFBC`,`#BFEDC1`],ocean:[`#0077B6`,`#00B4D8`,`#90E0EF`,`#CAF0F8`,`#03045E`,`#48CAE4`]},i={happy:[`😊`,`🌟`,`✨`,`🎉`,`💫`,`🌈`],calm:[`🌿`,`🍃`,`☁️`,`🌙`,`💭`,`🕊️`],creative:[`🎨`,`💡`,`🎭`,`🖌️`,`📐`,`🎬`],energy:[`⚡`,`🔥`,`💪`,`🚀`,`⭐`,`💥`],love:[`❤️`,`💕`,`💖`,`🌹`,`💝`,`🥰`],nature:[`🌸`,`🌺`,`🌻`,`🍀`,`🌴`,`🌊`]};function a(){return`item_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function o(e){return r[e]||r.modern}function s(e){let t=e.toLowerCase();for(let[e,n]of Object.entries(i))if(t.includes(e))return n;return i.creative}function c(e,t,n,r){let i=Math.ceil(Math.sqrt(t)),a=Math.floor(e/i),o=e%i,s=n/i,c=r/Math.ceil(t/i),l=(Math.random()-.5)*20,u=(Math.random()-.5)*20;return{x:o*s+s/2+l,y:a*c+c/2+u}}function l(e,t,n){let r=o(t),i=[];return r.slice(0,4).forEach((e,t)=>{let r=c(t,n.length+8,800,600);i.push({id:a(),type:`color`,content:e,x:r.x,y:r.y,width:80,height:80,rotation:(Math.random()-.5)*10})}),n.forEach((e,t)=>{let r=c(t+4,n.length+8,800,600);i.push({id:a(),type:`text`,content:e,label:e,x:r.x,y:r.y,width:120,height:40,rotation:(Math.random()-.5)*8})}),s(t).slice(0,4).forEach((e,t)=>{let r=c(n.length+4+t,n.length+8,800,600);i.push({id:a(),type:`emoji`,content:e,x:r.x,y:r.y,width:60,height:60,rotation:(Math.random()-.5)*15})}),{title:e,theme:t,items:i,backgroundColor:r[r.length-1]+`20`}}function u(e,t,n,r,i){let o={id:a(),type:t,content:n,label:r,mood:i,x:400+(Math.random()-.5)*200,y:300+(Math.random()-.5)*200,width:t===`color`?80:t===`emoji`?60:120,height:t===`color`?80:t===`emoji`?60:40,rotation:(Math.random()-.5)*10};return{...e,items:[...e.items,o]}}function d(e,t){let n=o(t),r=0,i=e.items.map(e=>{if(e.type===`color`){let t=n[r%n.length];return r++,{...e,content:t}}return e});return{...e,theme:t,items:i,backgroundColor:n[n.length-1]+`20`}}var f=async(t,n)=>{let{action:r}=n,i,a,o;switch(r){case`create`:if(!n.title)return{toolName:e,message:`Title is required for creating a mood board`,instructions:`Ask the user for a title and theme.`};i=l(n.title,n.theme||`modern`,n.concepts||[]),a=`Created mood board "${n.title}" with ${i.items.length} elements`,o=`Tell the user the mood board has been created. Ask if they want to add more elements or change the theme.`;break;case`add_item`:if(!n.existingBoard||!n.itemType||!n.itemContent)return{toolName:e,message:`Existing board, item type, and content are required`,instructions:`Ask the user what type of item to add.`};i=u(n.existingBoard,n.itemType,n.itemContent,n.itemLabel,n.itemMood),a=`Added ${n.itemType} to the mood board`,o=`Confirm the item was added. Ask if they want to add more or adjust the layout.`;break;case`update_theme`:if(!n.existingBoard||!n.theme)return{toolName:e,message:`Existing board and new theme are required`,instructions:`Ask the user which theme they prefer.`};i=d(n.existingBoard,n.theme),a=`Updated mood board theme to "${n.theme}"`,o=`Confirm the theme was changed. Ask if they like the new look.`;break;case`rearrange`:if(!n.existingBoard)return{toolName:e,message:`Existing board is required for rearranging`,instructions:`The mood board data is missing.`};i=n.existingBoard,a=`Mood board rearranged`,o=`The mood board has been refreshed.`;break;default:return{toolName:e,message:`Unknown action: ${r}`,instructions:`Invalid action specified.`}}let s={itemCount:i.items.length,theme:i.theme,items:i.items.map(e=>({id:e.id,type:e.type,label:e.label}))};return{toolName:e,message:a,title:i.title,data:i,jsonData:s,instructions:o,updating:r!==`create`}},p={toolDefinition:t,execute:f,generatingMessage:`Creating mood board...`,isEnabled:()=>!0,systemPrompt:n},m=[{name:`Vibrant Energy`,args:{action:`create`,title:`Vibrant Energy`,theme:`vibrant`,concepts:[`Bold`,`Dynamic`,`Exciting`,`Fresh`]}},{name:`Minimal Zen`,args:{action:`create`,title:`Minimal Zen`,theme:`minimal`,concepts:[`Simple`,`Clean`,`Peaceful`,`Balanced`]}},{name:`Vintage Charm`,args:{action:`create`,title:`Vintage Charm`,theme:`vintage`,concepts:[`Nostalgic`,`Warm`,`Classic`,`Timeless`]}},{name:`Ocean Dreams`,args:{action:`create`,title:`Ocean Dreams`,theme:`ocean`,concepts:[`Calm`,`Flowing`,`Deep`,`Refreshing`]}},{name:`Nature Escape`,args:{action:`create`,title:`Nature Escape`,theme:`nature`,concepts:[`Organic`,`Growth`,`Harmony`,`Life`]}}];Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return m}});
package/dist/style.css CHANGED
@@ -1 +1,3 @@
1
- /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-700:oklch(50.5% .213 27.518);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-600:oklch(66.6% .179 58.318);--color-green-600:oklch(62.7% .194 149.214);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-700:oklch(49.6% .265 301.924);--color-pink-50:oklch(97.1% .014 343.198);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-md:.375rem;--radius-lg:.5rem;--drop-shadow-md:0 3px 3px #0000001f;--drop-shadow-lg:0 4px 4px #00000026;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.top-4{top:calc(var(--spacing)*4)}.right-4{right:calc(var(--spacing)*4)}.bottom-4{bottom:calc(var(--spacing)*4)}.left-4{left:calc(var(--spacing)*4)}.z-10{z-index:10}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.size-full{width:100%;height:100%}.h-4{height:calc(var(--spacing)*4)}.h-\[600px\]{height:600px}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing)*4)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[85\%\]{max-width:85%}.max-w-\[200px\]{max-width:200px}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-red-100{background-color:var(--color-red-100)}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.bg-white\/60{background-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\/80{background-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-purple-50{--tw-gradient-from:var(--color-purple-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-pink-50{--tw-gradient-to:var(--color-pink-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-600{color:var(--color-amber-600)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-600{color:var(--color-green-600)}.text-indigo-600{color:var(--color-indigo-600)}.text-indigo-700{color:var(--color-indigo-700)}.text-purple-700{color:var(--color-purple-700)}.text-red-700{color:var(--color-red-700)}.text-white{color:var(--color-white)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.drop-shadow-lg{--tw-drop-shadow-size:drop-shadow(0 4px 4px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-lg));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-indigo-200:hover{background-color:var(--color-indigo-200)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}.disabled\:bg-gray-400:disabled{background-color:var(--color-gray-400)}@media(min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}body{margin:calc(var(--spacing)*0);background-color:var(--color-gray-100);padding:calc(var(--spacing)*5);font-family:var(--font-sans)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes pulse{50%{opacity:.5}}
1
+ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-700:oklch(50.5% .213 27.518);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-600:oklch(66.6% .179 58.318);--color-green-600:oklch(62.7% .194 149.214);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-700:oklch(49.6% .265 301.924);--color-pink-50:oklch(97.1% .014 343.198);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-md:.375rem;--radius-lg:.5rem;--drop-shadow-md:0 3px 3px #0000001f;--drop-shadow-lg:0 4px 4px #00000026;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.top-4{top:calc(var(--spacing) * 4)}.right-4{right:calc(var(--spacing) * 4)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.size-full{width:100%;height:100%}.h-4{height:calc(var(--spacing) * 4)}.h-\[600px\]{height:600px}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[85\%\]{max-width:85%}.max-w-\[200px\]{max-width:200px}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-red-100{background-color:var(--color-red-100)}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-purple-50{--tw-gradient-from:var(--color-purple-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-pink-50{--tw-gradient-to:var(--color-pink-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-8{padding:calc(var(--spacing) * 8)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-600{color:var(--color-amber-600)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-600{color:var(--color-green-600)}.text-indigo-600{color:var(--color-indigo-600)}.text-indigo-700{color:var(--color-indigo-700)}.text-purple-700{color:var(--color-purple-700)}.text-red-700{color:var(--color-red-700)}.text-white{color:var(--color-white)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.drop-shadow-lg{--tw-drop-shadow-size:drop-shadow(0 4px 4px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-lg));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-indigo-200:hover{background-color:var(--color-indigo-200)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}.disabled\:bg-gray-400:disabled{background-color:var(--color-gray-400)}@media (width>=64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}body{margin:calc(var(--spacing) * 0);background-color:var(--color-gray-100);padding:calc(var(--spacing) * 5);font-family:var(--font-sans)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes pulse{50%{opacity:.5}}
3
+ /*$vite$:1*/
@@ -3,5 +3,6 @@ import type { MoodBoardData } from "../core/types";
3
3
  type __VLS_Props = {
4
4
  result: ToolResult<MoodBoardData>;
5
5
  };
6
- declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
7
8
  export default _default;
@@ -4,5 +4,8 @@ type __VLS_Props = {
4
4
  selectedResult: ToolResult<MoodBoardData>;
5
5
  sendTextMessage?: (text?: string) => void;
6
6
  };
7
- declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
8
+ svgRef: import("vue").Ref<SVGSVGElement | null, SVGSVGElement | null>;
9
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
8
11
  export default _default;
package/dist/vue.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});;/* empty css */const l=require("./core.cjs"),e=require("vue"),g={key:0,class:"size-full relative"},x={class:"absolute top-4 left-4 z-10"},_={class:"text-xl font-bold text-gray-800 bg-white/80 px-3 py-1 rounded-lg shadow"},f={key:0,class:"text-xs text-gray-500 bg-white/60 px-2 py-0.5 rounded mt-1 inline-block"},k=["viewBox"],v={class:"items"},y=["transform","onClick"],B=["x","y","width","height","fill"],E=["x","y","width","height"],w={"text-anchor":"middle","dominant-baseline":"middle",fill:"#374151",class:"text-sm font-medium select-none pointer-events-none"},N={key:1,class:"size-full flex items-center justify-center"},b=800,M=600,u=e.defineComponent({__name:"View",props:{selectedResult:{},sendTextMessage:{type:Function}},setup(i){const r=i,a=e.ref(null),n=e.ref(null);e.watch(()=>r.selectedResult,t=>{(t==null?void 0:t.toolName)===l.TOOL_NAME&&t.data&&(n.value=t.data)},{immediate:!0});function d(t,c){return t.length<=c?t:t.slice(0,c-3)+"..."}function s(t){r.sendTextMessage&&(t.type==="color"?r.sendTextMessage(`Add more elements that complement the color ${t.content}`):t.type==="text"?r.sendTextMessage(`Expand on the concept "${t.content}" - add related moods and colors`):t.type==="emoji"&&r.sendTextMessage(`Add more elements that match the mood of ${t.content}`))}return(t,c)=>{var p;return e.openBlock(),e.createElementBlock("div",{class:"size-full overflow-hidden",style:e.normalizeStyle({backgroundColor:((p=n.value)==null?void 0:p.backgroundColor)||"#F9FAFB"})},[n.value?(e.openBlock(),e.createElementBlock("div",g,[e.createElementVNode("div",x,[e.createElementVNode("h2",_,e.toDisplayString(n.value.title),1),n.value.theme?(e.openBlock(),e.createElementBlock("span",f,e.toDisplayString(n.value.theme),1)):e.createCommentVNode("",!0)]),(e.openBlock(),e.createElementBlock("svg",{ref_key:"svgRef",ref:a,class:"size-full",viewBox:`0 0 ${b} ${M}`,preserveAspectRatio:"xMidYMid meet"},[e.createElementVNode("g",v,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value.items,o=>(e.openBlock(),e.createElementBlock("g",{key:o.id,transform:`translate(${o.x}, ${o.y}) rotate(${o.rotation||0})`,class:"cursor-pointer transition-transform duration-200 hover:scale-110",onClick:V=>s(o)},[o.type==="color"?(e.openBlock(),e.createElementBlock("rect",{key:0,x:-o.width/2,y:-o.height/2,width:o.width,height:o.height,fill:o.content,rx:"8",class:"drop-shadow-lg",stroke:"white","stroke-width":"3"},null,8,B)):o.type==="emoji"?(e.openBlock(),e.createElementBlock("text",{key:1,"text-anchor":"middle","dominant-baseline":"middle",class:"select-none pointer-events-none",style:e.normalizeStyle({fontSize:`${o.width}px`})},e.toDisplayString(o.content),5)):o.type==="text"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("rect",{x:-o.width/2,y:-o.height/2,width:o.width,height:o.height,fill:"white",rx:"4",class:"drop-shadow-md"},null,8,E),e.createElementVNode("text",w,e.toDisplayString(d(o.content,15)),1)],64)):e.createCommentVNode("",!0)],8,y))),128))])],8,k)),c[0]||(c[0]=e.createElementVNode("div",{class:"absolute bottom-4 left-4 right-4 text-center"},[e.createElementVNode("p",{class:"text-sm text-gray-500 bg-white/80 px-3 py-2 rounded-lg inline-block"}," Click an item to explore related concepts ")],-1))])):(e.openBlock(),e.createElementBlock("div",N,[...c[1]||(c[1]=[e.createElementVNode("p",{class:"text-gray-400"},"No mood board data",-1)])]))],4)}}}),T={class:"p-3 bg-gradient-to-br from-purple-50 to-pink-50 rounded-lg text-center"},C={class:"text-purple-700 font-medium text-sm truncate"},O={class:"text-xs text-gray-500 mt-1"},m=e.defineComponent({__name:"Preview",props:{result:{}},setup(i){const r=i,a=e.computed(()=>r.result.data),n=e.computed(()=>{var s;return((s=a.value)==null?void 0:s.title)||"Mood Board"}),d=e.computed(()=>{var s,t;return((t=(s=a.value)==null?void 0:s.items)==null?void 0:t.length)||0});return(s,t)=>(e.openBlock(),e.createElementBlock("div",T,[t[0]||(t[0]=e.createElementVNode("div",{class:"text-2xl mb-1"},"🎨",-1)),e.createElementVNode("div",C,e.toDisplayString(n.value),1),e.createElementVNode("div",O,e.toDisplayString(d.value)+" elements ",1)]))}}),h={...l.pluginCore,viewComponent:u,previewComponent:m,samples:l.samples},S={plugin:h};exports.SYSTEM_PROMPT=l.SYSTEM_PROMPT;exports.TOOL_DEFINITION=l.TOOL_DEFINITION;exports.TOOL_NAME=l.TOOL_NAME;exports.executeMoodBoard=l.executeMoodBoard;exports.pluginCore=l.pluginCore;exports.samples=l.samples;exports.Preview=m;exports.View=u;exports.default=S;exports.plugin=h;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`./samples-CQDcSeUn.cjs`);;/* empty css */let t=require(`vue`);var n={key:0,class:`size-full relative`},r={class:`absolute top-4 left-4 z-10`},i={class:`text-xl font-bold text-gray-800 bg-white/80 px-3 py-1 rounded-lg shadow`},a={key:0,class:`text-xs text-gray-500 bg-white/60 px-2 py-0.5 rounded mt-1 inline-block`},o=[`viewBox`],s={class:`items`},c=[`transform`,`onClick`],l=[`x`,`y`,`width`,`height`,`fill`],u=[`x`,`y`,`width`,`height`],d={"text-anchor":`middle`,"dominant-baseline":`middle`,fill:`#374151`,class:`text-sm font-medium select-none pointer-events-none`},f={key:1,class:`size-full flex items-center justify-center`},p=800,m=600,h=(0,t.defineComponent)({__name:`View`,props:{selectedResult:{},sendTextMessage:{type:Function}},setup(e,{expose:h}){let g=e,_=(0,t.ref)(null);h({svgRef:_});let v=(0,t.ref)(null);(0,t.watch)(()=>g.selectedResult,e=>{e?.toolName===`createMoodBoard`&&e.data&&(v.value=e.data)},{immediate:!0});function y(e,t){return e.length<=t?e:e.slice(0,t-3)+`...`}function b(e){g.sendTextMessage&&(e.type===`color`?g.sendTextMessage(`Add more elements that complement the color ${e.content}`):e.type===`text`?g.sendTextMessage(`Expand on the concept "${e.content}" - add related moods and colors`):e.type===`emoji`&&g.sendTextMessage(`Add more elements that match the mood of ${e.content}`))}return(e,h)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`size-full overflow-hidden`,style:(0,t.normalizeStyle)({backgroundColor:v.value?.backgroundColor||`#F9FAFB`})},[v.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,n,[(0,t.createElementVNode)(`div`,r,[(0,t.createElementVNode)(`h2`,i,(0,t.toDisplayString)(v.value.title),1),v.value.theme?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,a,(0,t.toDisplayString)(v.value.theme),1)):(0,t.createCommentVNode)(``,!0)]),((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{ref_key:`svgRef`,ref:_,class:`size-full`,viewBox:`0 0 ${p} ${m}`,preserveAspectRatio:`xMidYMid meet`},[(0,t.createElementVNode)(`g`,s,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(v.value.items,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`g`,{key:e.id,transform:`translate(${e.x}, ${e.y}) rotate(${e.rotation||0})`,class:`cursor-pointer transition-transform duration-200 hover:scale-110`,onClick:t=>b(e)},[e.type===`color`?((0,t.openBlock)(),(0,t.createElementBlock)(`rect`,{key:0,x:-e.width/2,y:-e.height/2,width:e.width,height:e.height,fill:e.content,rx:`8`,class:`drop-shadow-lg`,stroke:`white`,"stroke-width":`3`},null,8,l)):e.type===`emoji`?((0,t.openBlock)(),(0,t.createElementBlock)(`text`,{key:1,"text-anchor":`middle`,"dominant-baseline":`middle`,class:`select-none pointer-events-none`,style:(0,t.normalizeStyle)({fontSize:`${e.width}px`})},(0,t.toDisplayString)(e.content),5)):e.type===`text`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createElementVNode)(`rect`,{x:-e.width/2,y:-e.height/2,width:e.width,height:e.height,fill:`white`,rx:`4`,class:`drop-shadow-md`},null,8,u),(0,t.createElementVNode)(`text`,d,(0,t.toDisplayString)(y(e.content,15)),1)],64)):(0,t.createCommentVNode)(``,!0)],8,c))),128))])],8,o)),h[0]||=(0,t.createElementVNode)(`div`,{class:`absolute bottom-4 left-4 right-4 text-center`},[(0,t.createElementVNode)(`p`,{class:`text-sm text-gray-500 bg-white/80 px-3 py-2 rounded-lg inline-block`},` Click an item to explore related concepts `)],-1)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,f,[...h[1]||=[(0,t.createElementVNode)(`p`,{class:`text-gray-400`},`No mood board data`,-1)]]))],4))}}),g={class:`p-3 bg-gradient-to-br from-purple-50 to-pink-50 rounded-lg text-center`},_={class:`text-purple-700 font-medium text-sm truncate`},v={class:`text-xs text-gray-500 mt-1`},y=(0,t.defineComponent)({__name:`Preview`,props:{result:{}},setup(e){let n=e,r=(0,t.computed)(()=>n.result.data),i=(0,t.computed)(()=>r.value?.title||`Mood Board`),a=(0,t.computed)(()=>r.value?.items?.length||0);return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,g,[n[0]||=(0,t.createElementVNode)(`div`,{class:`text-2xl mb-1`},`🎨`,-1),(0,t.createElementVNode)(`div`,_,(0,t.toDisplayString)(i.value),1),(0,t.createElementVNode)(`div`,v,(0,t.toDisplayString)(a.value)+` elements `,1)]))}}),b={...e.r,viewComponent:h,previewComponent:y,samples:e.t},x={plugin:b};exports.Preview=y,exports.SYSTEM_PROMPT=e.i,exports.TOOL_DEFINITION=e.a,exports.TOOL_NAME=e.o,exports.View=h,exports.default=x,exports.executeMoodBoard=e.n,exports.plugin=b,exports.pluginCore=e.r,exports.samples=e.t;