@muibook/components 6.1.0 → 7.0.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.
Files changed (38) hide show
  1. package/dist/esm/agent/prompts/index.js +116 -662
  2. package/dist/esm/components/mui-button/index.js +299 -125
  3. package/dist/esm/components/mui-drawer/index.js +21 -7
  4. package/dist/esm/components/mui-icons/accessibility/index.js +3 -3
  5. package/dist/esm/components/mui-icons/add/index.js +3 -3
  6. package/dist/esm/components/mui-icons/attention/index.js +3 -3
  7. package/dist/esm/components/mui-icons/calendar/index.js +3 -3
  8. package/dist/esm/components/mui-icons/check/index.js +3 -3
  9. package/dist/esm/components/mui-icons/close/index.js +3 -3
  10. package/dist/esm/components/mui-icons/down-arrow-circle/index.js +3 -3
  11. package/dist/esm/components/mui-icons/down-chevron/index.js +3 -3
  12. package/dist/esm/components/mui-icons/ellipsis/index.js +3 -3
  13. package/dist/esm/components/mui-icons/gear/index.js +3 -3
  14. package/dist/esm/components/mui-icons/globe/index.js +3 -3
  15. package/dist/esm/components/mui-icons/grid/index.js +3 -3
  16. package/dist/esm/components/mui-icons/info/index.js +3 -3
  17. package/dist/esm/components/mui-icons/left-arrow/index.js +3 -3
  18. package/dist/esm/components/mui-icons/left-chevron/index.js +3 -3
  19. package/dist/esm/components/mui-icons/left-sidebar/index.js +3 -3
  20. package/dist/esm/components/mui-icons/menu/index.js +3 -3
  21. package/dist/esm/components/mui-icons/message/index.js +3 -3
  22. package/dist/esm/components/mui-icons/moon/index.js +3 -3
  23. package/dist/esm/components/mui-icons/notification/index.js +3 -3
  24. package/dist/esm/components/mui-icons/right-chevron/index.js +3 -3
  25. package/dist/esm/components/mui-icons/stop/index.js +3 -3
  26. package/dist/esm/components/mui-icons/subtract/index.js +3 -3
  27. package/dist/esm/components/mui-icons/sun/index.js +3 -3
  28. package/dist/esm/components/mui-icons/toggle/index.js +14 -14
  29. package/dist/esm/components/mui-icons/translate/index.js +3 -3
  30. package/dist/esm/components/mui-icons/up-arrow/index.js +3 -3
  31. package/dist/esm/components/mui-icons/up-chevron/index.js +3 -3
  32. package/dist/esm/components/mui-icons/warning/index.js +3 -3
  33. package/dist/esm/components/mui-input/index.js +51 -28
  34. package/dist/esm/components/mui-link/index.js +279 -40
  35. package/dist/esm/css/mui-reset.css +3 -3
  36. package/dist/esm/css/mui-tokens.css +31 -9
  37. package/dist/types/agent/prompts/index.d.ts +7 -2
  38. package/package.json +1 -1
@@ -2,668 +2,122 @@ const i = [
2
2
  {
3
3
  role: "system",
4
4
  content: `
5
- You are an assistant that converts UI prompts into MUI-style web components using custom tags.
6
-
7
- Each user message may include tags like [button], [card], etc. Use these to help determine intent.
8
-
9
- Here is the full list of supported components:
10
- <mui-field>, <mui-file-upload>, <mui-addon>, <mui-input>, <mui-select>, <mui-switch>,
11
- <mui-table>, <mui-table-cell>, <mui-table-row>, <mui-table-row-group>,
12
- <mui-slat>, <mui-slat-accessory>,
13
- <mui-accordion-group>, <mui-accordion-inline>, <mui-accordion-block>,
14
- <mui-heading>, <mui-body>, <mui-quote>, <mui-code>, <mui-image>,
15
- <mui-smart-card>,
16
- <mui-list>, <mui-list-item>,
17
- <mui-icon-accessibility>, <mui-icon-add>, <mui-icon-attention>, <mui-icon-check>,
18
- <mui-icon-close>, <mui-icon-down-chevron>, <mui-icon-globe>, <mui-icon-grid>,
19
- <mui-icon-info>, <mui-icon-left-arrow>, <mui-icon-left-sidebar>, <mui-icon-left-chevron>,
20
- <mui-icon-menu>, <mui-icon-message>, <mui-icon-moon>, <mui-icon-notification>,
21
- <mui-icon-right-chevron>, <mui-icon-stop>, <mui-icon-subtract>, <mui-icon-sun>,
22
- <mui-icon-toggle>, <mui-icon-up-arrow>, <mui-icon-up-chevron>, <mui-icon-warning>,
23
- <mui-icon-down-arrow-circle>, <mui-icon-ellipsis>,
24
- <mui-h-stack>, <mui-v-stack>, <mui-grid>, <mui-responsive>, <mui-container>, <mui-rule>,
25
- <mui-card>, <mui-card-header>, <mui-card-body>, <mui-card-footer>,
26
- <mui-alert>, <mui-message>, <mui-badge>,
27
- <mui-button>, <mui-button-group>, <mui-link>,
28
- <mui-tabs-controller>, <mui-tabs-item>, <mui-tabs-panel>, <mui-tabs-tab-bar>,
29
- <mui-carousel-controller>, <mui-carousel-panel>
30
-
31
- Use only these components when constructing UIs. When helpful, you may suggest new components, but clearly mark them with a comment like:
32
- <!-- 🚧 Not yet in system, consider adding -->
33
-
34
- Structure layouts using primitives like <mui-v-stack>, <mui-h-stack>, <mui-grid> or <mui-card-body> when composing forms or groups of fields.
35
- `
36
- },
37
- // FIELD
38
- {
39
- role: "user",
40
- content: "[input] Add a field to enter an email address"
41
- },
42
- {
43
- role: "assistant",
44
- content: `<mui-field label="Email">
45
- <mui-input type="email" placeholder="you@example.com"></mui-input>
46
- </mui-field>`
47
- },
48
- // SLAT
49
- {
50
- role: "user",
51
- content: "[slat] Create a default slat with heading and body"
52
- },
53
- {
54
- role: "assistant",
55
- content: `
56
- <mui-slat>
57
- <mui-heading slot="start" size="5">...</mui-heading>
58
- <mui-h-stack slot="end">
59
- <mui-body>...</mui-body>
60
- </mui-h-stack>
61
- </mui-slat>
62
- `
63
- },
64
- {
65
- role: "user",
66
- content: "[slat] Create a header slat"
67
- },
68
- {
69
- role: "assistant",
70
- content: `
71
- <mui-slat variant="header">
72
- <mui-heading slot="start" size="6">Heading</mui-heading>
73
- <mui-h-stack slot="end" alignX="end">
74
- <mui-body size="small">End slot</mui-body>
75
- </mui-h-stack>
76
- </mui-slat>`
77
- },
78
- {
79
- role: "user",
80
- content: "[slat] Create a row slat with vertical stacks"
81
- },
82
- {
83
- role: "assistant",
84
- content: `
85
- <mui-slat variant="row">
86
- <mui-v-stack slot="start">
87
- <mui-body size="medium" weight="bold">...</mui-body>
88
- <mui-body size="small">...</mui-body>
89
- </mui-v-stack>
90
- <mui-v-stack slot="end" alignX="end">
91
- <mui-body size="small">...</mui-body>
92
- <mui-body size="small">...</mui-body>
93
- </mui-v-stack>
94
- </mui-slat>`
95
- },
96
- {
97
- role: "user",
98
- content: "[slat] Create a row slat with an icon accessory"
99
- },
100
- {
101
- role: "assistant",
102
- content: `
103
- <mui-slat variant="row">
104
- <mui-slat-accessory slot="accessory">
105
- <mui-icon-left-sidebar size="small"></mui-icon-left-sidebar>
106
- </mui-slat-accessory>
107
- <mui-v-stack slot="start" space="0">
108
- <mui-body size="medium" weight="bold">Espresso & Muffin Bar</mui-body>
109
- <mui-body size="small">Food & Drink • Richmond, VIC</mui-body>
110
- </mui-v-stack>
111
- <mui-v-stack slot="end" space="0" alignX="end">
112
- <mui-body size="x-small">Pending</mui-body>
113
- <mui-body size="small" weight="bold">-$8.12</mui-body>
114
- </mui-v-stack>
115
- </mui-slat>`
116
- },
117
- {
118
- role: "user",
119
- content: "[card] Create a card with a slat header and action rows"
120
- },
121
- {
122
- role: "assistant",
123
- content: `
124
- <mui-card>
125
- <mui-card-body>
126
- <mui-slat variant="header">
127
- <mui-heading slot="start" size="6">Today</mui-heading>
128
- <mui-h-stack slot="end" alignX="end">
129
- <mui-body size="small">22 July 2025</mui-body>
130
- </mui-h-stack>
131
- </mui-slat>
132
- <mui-rule></mui-rule>
133
- <mui-v-stack space="var(--space-000)" style="margin-top: var(--space-200)">
134
- <mui-slat variant="action">
135
- <mui-slat-accessory slot="accessory">
136
- <mui-icon-left-sidebar size="small"></mui-icon-left-sidebar>
137
- </mui-slat-accessory>
138
- <mui-v-stack slot="start" space="0">
139
- <mui-body size="medium" weight="bold">Espresso & Muffin Bar</mui-body>
140
- <mui-body size="small">Food & Drink • Richmond, VIC</mui-body>
141
- </mui-v-stack>
142
- <mui-v-stack slot="end" space="0">
143
- <mui-body size="x-small">Pending</mui-body>
144
- <mui-body size="small" weight="bold">-$8.12</mui-body>
145
- </mui-v-stack>
146
- </mui-slat>
147
- </mui-v-stack>
148
- </mui-card-body>
149
- </mui-card>`
150
- },
151
- // TABLE
152
- {
153
- role: "user",
154
- content: "[table] Add a table"
155
- },
156
- {
157
- role: "assistant",
158
- content: `
159
- <mui-table>
160
- <mui-row-group heading>
161
- <mui-row columns="1fr 1fr">
162
- <mui-cell>Heading 1</mui-cell>
163
- <mui-cell>Heading 2</mui-cell>
164
- </mui-row>
165
- </mui-row-group>
166
- <mui-row-group>
167
- <mui-row columns="1fr 1fr">
168
- <mui-cell>Row 1</mui-cell>
169
- <mui-cell>Row 1</mui-cell>
170
- </mui-row>
171
- </mui-row-group>
172
- </mui-table>`
173
- },
174
- // ACCORDION
175
- {
176
- role: "user",
177
- content: "[accordion] Add a block accordion with two sections"
178
- },
179
- {
180
- role: "assistant",
181
- content: `
182
- <mui-accordion-group>
183
- <mui-accordion-block heading="Section A">
184
- <div slot="detail">Details A</div>
185
- </mui-accordion-block>
186
- <mui-accordion-block heading="Section B">
187
- <div slot="detail">Details B</div>
188
- </mui-accordion-block>
189
- </mui-accordion-group>`
190
- },
191
- // ICONS
192
- { role: "user", content: "[icon] Add an icon" },
193
- { role: "assistant", content: "<mui-icon-{name}></mui-icon-{name}]>" },
194
- // IMAGE
195
- {
196
- role: "user",
197
- content: "[image] Show an image with a caption"
198
- },
199
- {
200
- role: "assistant",
201
- content: `
202
- <mui-image>
203
- <img slot="image" src="..." alt="Descriptive alt text" />
204
- <figcaption slot="caption">This is a caption</figcaption>
205
- </mui-image>`
206
- },
207
- // STACK
208
- {
209
- role: "user",
210
- content: "[stack] Create a horizontal stack with two cards and spacing"
211
- },
212
- {
213
- role: "assistant",
214
- content: `<mui-h-stack space="var(--space-500)">
215
- <mui-card>...</mui-card>
216
- <mui-card>...</mui-card>
217
- </mui-h-stack>`
218
- },
219
- {
220
- role: "user",
221
- content: "[stack] Create a vertical stack with two cards and spacing"
222
- },
223
- {
224
- role: "assistant",
225
- content: `<mui-v-stack space="var(--space-500)">
226
- <mui-card>...</mui-card>
227
- <mui-card>...</mui-card>
228
- </mui-v-stack>`
229
- },
230
- // GRID
231
- {
232
- role: "user",
233
- content: "[layout] Create a grid with 2 columns and card content"
234
- },
235
- {
236
- role: "assistant",
237
- content: `<mui-grid col="1fr 1fr" space="var(--space-200)">
238
- <mui-card>...</mui-card>
239
- <mui-card>...</mui-card>
240
- </mui-grid>`
241
- },
242
- // RESPONSIVE
243
- {
244
- role: "user",
245
- content: "[responsive] Show a div above 600px and a different one below"
246
- },
247
- {
248
- role: "assistant",
249
- content: `<mui-responsive breakpoint="600">
250
- <div slot="showAbove">...</div>
251
- <div slot="showBelow">...</div>
252
- </mui-responsive>`
253
- },
254
- // CONTAINER
255
- { role: "user", content: "[layout] Create a small container" },
256
- { role: "assistant", content: "<mui-container small>...</mui-container>" },
257
- { role: "user", content: "[layout] Create a medium container" },
258
- { role: "assistant", content: "<mui-container medium>...</mui-container>" },
259
- { role: "user", content: "[layout] Create a large container" },
260
- { role: "assistant", content: "<mui-container large>...</mui-container>" },
261
- { role: "user", content: "[layout] Create a fluid container" },
262
- { role: "assistant", content: "<mui-container fluid>...</mui-container>" },
263
- { role: "user", content: "[layout] Create a small container and centered" },
264
- { role: "assistant", content: "<mui-container small center>...</mui-container>" },
265
- { role: "user", content: "[button] Create a primary button" },
266
- { role: "assistant", content: "<mui-button variant='primary'>...</mui-button>" },
267
- // RULE
268
- {
269
- role: "user",
270
- content: "[rule] Insert a horizontal divider"
271
- },
272
- {
273
- role: "assistant",
274
- content: '<mui-rule direction="horizontal" length="100%"></mui-rule>'
275
- },
276
- {
277
- role: "user",
278
- content: "[rule] Insert a vertical rule of 100px"
279
- },
280
- {
281
- role: "assistant",
282
- content: '<mui-rule direction="vertical" length="100px"></mui-rule>'
283
- },
284
- // CARD
285
- { role: "user", content: "[card] Create a vertical stack with two cards" },
286
- {
287
- role: "assistant",
288
- content: `<mui-v-stack space="var(--space-400)">
289
- <mui-card>...</mui-card>
290
- <mui-card>...</mui-card>
291
- </mui-v-stack>`
292
- },
293
- {
294
- role: "user",
295
- content: "[card] Create a card with heading and footer actions"
296
- },
297
- {
298
- role: "assistant",
299
- content: `
300
- <mui-card>
301
- <mui-card-header>
302
- <mui-heading size="3">...</mui-heading>
303
- </mui-card-header>
304
- <mui-card-body>...</mui-card-body>
305
- <mui-card-footer>
306
- <mui-button-group right>
307
- <mui-button variant="secondary">Cancel</mui-button>
308
- <mui-button variant="primary">Submit</mui-button>
309
- </mui-button-group>
310
- </mui-card-footer>
311
- </mui-card>`
312
- },
313
- {
314
- role: "user",
315
- content: "[table] Show a table with heading row and add buttons"
316
- },
317
- {
318
- role: "assistant",
319
- content: `
320
- <mui-card>
321
- <mui-card-header>
322
- <mui-heading size="3">Title</mui-heading>
323
- </mui-card-header>
324
- <mui-rule></mui-rule>
325
- <mui-card-body>
326
- <mui-table>
327
- <mui-row-group heading>
328
- <mui-row columns="1fr 1fr 1fr auto">
329
- <mui-cell heading>Office</mui-cell>
330
- <mui-cell heading>Revenue</mui-cell>
331
- <mui-cell heading>Cost</mui-cell>
332
- <mui-cell heading action></mui-cell>
333
- </mui-row>
334
- </mui-row-group>
335
- <mui-row-group>
336
- <mui-row columns="1fr 1fr 1fr auto">
337
- <mui-cell>Whalen</mui-cell>
338
- <mui-cell>$4,400.00</mui-cell>
339
- <mui-cell>$1,100.00</mui-cell>
340
- <mui-cell action>
341
- <mui-button variant="tertiary">
342
- <mui-icon-add size="small"></mui-icon-add>
343
- </mui-button>
344
- </mui-cell>
345
- </mui-row>
346
- </mui-row-group>
347
- </mui-table>
348
- </mui-card-body>
349
- </mui-card>`
350
- },
351
- {
352
- role: "system",
353
- content: "You are an assistant that converts UI prompts into MUI-style web components using custom tags like <mui-button>, <mui-alert>, <mui-message>, <mui-badge>, <mui-tab-controller>, and <mui-carousel-controller>. Each user message may include tags like [button], [alert], [tab], etc. Use these to help determine intent."
354
- },
355
- // ALERTS
356
- { role: "user", content: "[alert] Show a success alert" },
357
- { role: "assistant", content: '<mui-alert variant="success">...</mui-alert>' },
358
- { role: "user", content: "[alert] Show an error alert" },
359
- { role: "assistant", content: '<mui-alert variant="error">...</mui-alert>' },
360
- // MESSAGES
361
- { role: "user", content: "[message] Create an info message with heading and body" },
362
- {
363
- role: "assistant",
364
- content: `
365
- <mui-message heading="Message heading" variant="info">
366
- <mui-body>...</mui-body>
367
- </mui-message>`
368
- },
369
- { role: "user", content: "[message] Create a positive message with link" },
370
- {
371
- role: "assistant",
372
- content: `
373
- <mui-message heading="Message heading" variant="positive">
374
- <mui-body>The report has been...</mui-body>
375
- <mui-link>Download Your Report</mui-link>
376
- </mui-message>`
377
- },
378
- { role: "user", content: "[message] Create a message with a list" },
379
- {
380
- role: "assistant",
381
- content: `
382
- <mui-message heading="Message heading">
383
- <mui-list as="ul">
384
- <mui-list-item size="small">Item 1</mui-list-item>
385
- <mui-list-item size="small">Item 2</mui-list-item>
386
- </mui-list>
387
- </mui-message>`
388
- },
389
- // BADGES
390
- { role: "user", content: "[badge] Show a warning badge" },
391
- { role: "assistant", content: '<mui-badge variant="warning">...</mui-badge>' },
392
- // BUTTON
393
- { role: "user", content: "[button] Create a primary button" },
394
- { role: "assistant", content: '<mui-button variant="primary">...</mui-button>' },
395
- { role: "user", content: "[button-group] Create a right-aligned button group with cancel and submit" },
396
- {
397
- role: "assistant",
398
- content: `
399
- <mui-button-group right>
400
- <mui-button variant="secondary">Cancel</mui-button>
401
- <mui-button variant="primary">Submit</mui-button>
402
- </mui-button-group>`
403
- },
404
- { role: "user", content: "[button] Create a tertiary button with add icon" },
405
- {
406
- role: "assistant",
407
- content: `
408
- <mui-button variant="tertiary">
409
- <mui-icon-add></mui-icon-add>
410
- </mui-button>`
411
- },
412
- // LINK
413
- { role: "user", content: "[link] Create a primary link" },
414
- { role: "assistant", content: '<mui-link variant="primary" href="links.html">...</mui-link>' },
415
- { role: "user", content: "[link] Create a small sized link" },
416
- { role: "assistant", content: '<mui-link size="small">Link text</mui-link>' },
417
- // TABS
418
- { role: "user", content: "[tab] Create a tab controller with three tabs" },
419
- {
420
- role: "assistant",
421
- content: `
422
- <mui-tab-controller>
423
- <mui-tab-bar>
424
- <mui-tab-item active id="item1">Item 1</mui-tab-item>
425
- <mui-tab-item id="item2">Item 2</mui-tab-item>
426
- <mui-tab-item id="item3">Item 3</mui-tab-item>
427
- </mui-tab-bar>
428
- <mui-tab-panel item="item1">Content 1</mui-tab-panel>
429
- <mui-tab-panel item="item2">Content 2</mui-tab-panel>
430
- <mui-tab-panel item="item3">Content 3</mui-tab-panel>
431
- </mui-tab-controller>`
432
- },
433
- // CAROUSEL
434
- { role: "user", content: "[carousel] Create a carousel controller with tabs and panels" },
435
- {
436
- role: "assistant",
437
- content: `
438
- <mui-carousel-controller>
439
- <mui-tab-bar slot="controls">
440
- <mui-tab-item active id="one">1</mui-tab-item>
441
- <!-- Add other tabs -->
442
- </mui-tab-bar>
443
- <mui-carousel-panel slot="item" item="one">
444
- <mui-grid col="1fr" style="padding-bottom: var(--carousel-tab-offset);">
445
- <mui-v-stack style="padding: var(--space-500) var(--space-600);">
446
- <mui-heading level="3" size="2">Item 1</mui-heading>
447
- <mui-body>Content...</mui-body>
448
- </mui-v-stack>
449
- </mui-grid>
450
- </mui-carousel-panel>
451
- <!-- Add other panels -->
452
- </mui-carousel-controller>`
453
- },
454
- // SMART CARD
455
- { role: "user", content: "[smart-card] Basic plain card with number and logo" },
456
- {
457
- role: "assistant",
458
- content: `
459
- <mui-smart-card
460
- number="1234"
461
- type="Debit"
462
- logo="https://muibook.com/images/image-220.png"
463
- partner="https://muibook.com/images/visa-black.svg"
464
- variant="plain"
465
- />`
466
- },
467
- { role: "user", content: "[smart-card] Plain card with inverted style" },
468
- {
469
- role: "assistant",
470
- content: `
471
- <mui-smart-card
472
- inverted
473
- number="1234"
474
- type="Debit"
475
- logo="https://muibook.com/images/image-220.png"
476
- partner="https://muibook.com/images/visa-white.svg"
477
- variant="plain"
478
- />`
479
- },
480
- { role: "user", content: "[smart-card] Animated card with background image" },
481
- {
482
- role: "assistant",
483
- content: `
484
- <mui-smart-card
485
- number="1234"
486
- type="Debit"
487
- bg-image="https://muibook.com/images/buttercup.png"
488
- logo="https://muibook.com/images/image-220.png"
489
- partner="https://muibook.com/images/visa-black.svg"
490
- variant="animated"
491
- />`
492
- },
493
- { role: "user", content: "[smart-card] Card with custom logo size" },
494
- {
495
- role: "assistant",
496
- content: `
497
- <mui-smart-card
498
- logo="https://muibook.com/images/guides.svg"
499
- logo-height="80"
500
- />`
501
- },
502
- { role: "user", content: "[smart-card] Frozen card state" },
503
- {
504
- role: "assistant",
505
- content: `
506
- <mui-smart-card
507
- state="frozen"
508
- number="1234"
509
- type="Debit"
510
- logo="https://muibook.com/images/image-220.png"
511
- partner="https://muibook.com/images/visa-black.svg"
512
- variant="plain"
513
- />`
514
- },
515
- { role: "user", content: "[smart-card] Card with background color" },
516
- {
517
- role: "assistant",
518
- content: `
519
- <mui-smart-card
520
- variant="plain"
521
- bg-color="#a4fc67"
522
- number="1234"
523
- type="Debit"
524
- logo="https://muibook.com/images/image-220.png"
525
- partner="https://muibook.com/images/visa-black.svg"
526
- />`
527
- },
528
- { role: "user", content: "[smart-card] Card with background image (non-animated)" },
529
- {
530
- role: "assistant",
531
- content: `
532
- <mui-smart-card
533
- variant="plain"
534
- bg-image="https://muibook.com/images/image-395.png"
535
- number="1234"
536
- type="Debit"
537
- logo="https://muibook.com/images/image-220.png"
538
- partner="https://muibook.com/images/visa-black.svg"
539
- />`
540
- },
541
- { role: "user", content: "[smart-card] Premier reward card" },
542
- {
543
- role: "assistant",
544
- content: `
545
- <mui-smart-card
546
- type="Premier"
547
- partner="https://muibook.com/images/emerald.svg"
548
- bg-image="https://muibook.com/images/premier.png"
549
- />`
550
- },
551
- { role: "user", content: "[smart-card] Diamond reward card (inverted)" },
552
- {
553
- role: "assistant",
554
- content: `
555
- <mui-smart-card
556
- inverted
557
- type="Diamond"
558
- partner="https://muibook.com/images/emerald.svg"
559
- bg-image="https://muibook.com/images/diamond.png"
560
- />`
561
- },
562
- // COMPOSITION: WALLET
563
- {
564
- role: "user",
565
- content: "[wallet] Create a wallet layout with a smart card and tabbed transactions"
566
- },
567
- {
568
- role: "assistant",
569
- content: `
570
- <mui-v-stack alignX="stretch" slot="body" style="max-width: 365px; margin: 0 auto; padding-top: var(--space-700); padding-bottom: var(--space-700)">
571
- <mui-smart-card
572
- variant="animated"
573
- partner="https://muibook.com/images/visa-black.svg"
574
- type="Debit"
575
- number="1234"
576
- logo="https://muibook.com/images/guides.svg"
577
- logo-height="80"
578
- bg-image="https://muibook.com/images/buttercup.png"
579
- ></mui-smart-card>
580
-
581
- <mui-tab-controller>
582
- <mui-v-stack alignX="stretch" style="max-width: 100%;" space="var(--space-300)">
583
- <mui-tab-bar>
584
- <mui-tab-item active id="item1">Transactions</mui-tab-item>
585
- <mui-tab-item id="item2">Statements</mui-tab-item>
586
- </mui-tab-bar>
587
-
588
- <mui-tab-panel item="item1">
589
- <mui-v-stack alignX="stretch" space="var(--space-000)">
590
- <mui-slat variant="header">
591
- <mui-heading slot="start" size="6">Today</mui-heading>
592
- <mui-h-stack slot="end" alignX="end">
593
- <mui-body size="small">22 July 2025</mui-body>
594
- </mui-h-stack>
595
- </mui-slat>
596
-
597
- <mui-v-stack space="var(--space-025)">
598
- <mui-slat variant="row">
599
- <mui-v-stack slot="start" space="0">
600
- <mui-body size="medium" weight="bold">Espresso Bar</mui-body>
601
- <mui-body size="small">Food & Drink</mui-body>
602
- </mui-v-stack>
603
- <mui-v-stack space="0" slot="end" alignX="end">
604
- <mui-body size="small">Pending</mui-body>
605
- <mui-body size="small">-$8.12</mui-body>
606
- </mui-v-stack>
607
- </mui-slat>
608
- </mui-v-stack>
609
-
610
- </mui-v-stack>
611
- </mui-tab-panel>
612
-
613
- <mui-tab-panel item="item2">
614
- <mui-v-stack alignX="stretch" space="var(--space-000)">
615
- <mui-slat variant="header">
616
- <mui-heading size="6" slot="start">Recents</mui-heading>
617
- </mui-slat>
618
- <mui-v-stack space="var(--space-025)">
619
- <mui-slat variant="action">
620
- <mui-v-stack space="0" slot="start">
621
- <mui-body size="medium" weight="bold">Get a Transactions Report</mui-body>
622
- <mui-body size="small">Generate a PDF of your recent transactions</mui-body>
623
- </mui-v-stack>
624
- </mui-slat>
625
- </mui-v-stack>
626
- </mui-tab-panel>
627
- </mui-v-stack>
628
- </mui-tab-controller>
629
- </mui-v-stack>`
630
- },
631
- // COMPOSITION: SIGN UP
632
- {
633
- role: "user",
634
- content: "[composition] Create a sign-up form with fields for first name, last name, email, password, confirm password, a checkbox to agree to terms, and a submit button."
635
- },
636
- {
637
- role: "assistant",
638
- content: `
639
- <mui-container small center>
640
- <mui-card>
641
- <mui-card-header>
642
- <mui-heading size="3">Sign up for our product!</mui-heading>
643
- </mui-card-header>
644
- <mui-card-body>
645
- <form>
646
- <mui-v-stack space="var(--space-400)">
647
- <mui-field id="emailField" label="Email">
648
- <mui-input type="email" placeholder="john@example.com" />
649
- </mui-field>
650
- <mui-field id="passwordField" label="Password">
651
- <mui-input type="password" />
652
- </mui-field>
653
- <mui-field id="confirmPasswordField" label="Confirm Password">
654
- <mui-input type="password" />
655
- </mui-field>
656
- <mui-field id="termsField">
657
- <mui-checkbox id="agreeTerms">I agree to the <mui-link href="/terms">terms and conditions</mui-link></mui-checkbox>
658
- </mui-field>
659
- <mui-button-group right>
660
- <mui-button variant="primary">Sign up</mui-button>
661
- </mui-button-group>
662
- </mui-v-stack>
663
- </form>
664
- </mui-card-body>
665
- </mui-card>
666
- </mui-container>`
5
+ You convert UI prompts into MUI-style custom elements.
6
+ Supported components:
7
+ - Inputs: <mui-addon>, <mui-checkbox>, <mui-field>, <mui-file-upload>, <mui-input>, <mui-progress>, <mui-select>, <mui-switch>
8
+ - Content: <mui-accordion>, <mui-heading>, <mui-body>, <mui-code>, <mui-dialog>, <mui-drawer>, <mui-quote>, <mui-slat>, <mui-smart-card>, <mui-table>, <mui-image>, <figcaption>, <img>, <mui-list>, <mui-list-item>, <mui-icon-*>
9
+ - Layout: <mui-card>, <mui-container>, <mui-responsive>, <mui-rule>, <mui-v-stack>, <mui-h-stack>, <mui-grid>
10
+ - Feedback: <mui-alert>, <mui-badge>, <mui-message>, <mui-loader>
11
+ - Actions: <mui-button>, <mui-button-group>, <mui-chip>, <mui-dropdown>, <mui-link>
12
+ - Navigation: <mui-carousel-controller>, <mui-stepper>, <mui-step>, <mui-tab-controller>, <mui-tab-bar>, <mui-tab-item>
13
+ Rules:
14
+ - If 'mui-scan' is detected, convert the mui-scan code to web components. Refer to this prompt file for context on how to use the components.
15
+ - For mui-scan, preserve the hierarchy and nesting of elements as in the original design.
16
+ - When translating mui-scan code, if you encounter <mui-v-stack>, <mui-h-stack>, or <mui-grid>, append the inline styles like this: <mui-v-stack style="...">.
17
+ - All mui-* components should carry over their props, appended like this: <mui-v-stack space="..." alignx="..." aligny="...">.
18
+ - Maintain proper closing of all custom elements to avoid HTML parsing issues.
19
+ - When responding to a text prompt, strictly follow the user’s directions. Do not include text, content, or components unrelated to the request.
20
+ `
21
+ },
22
+ {
23
+ role: "assistant",
24
+ name: "examples",
25
+ content: JSON.stringify({
26
+ // Inputs
27
+ field: {
28
+ placeholder: '<mui-field label="Email"><mui-input type="email" placeholder="you@example.com" value="..."></mui-input></mui-field>',
29
+ message: `<mui-field label="Name" message="This field doesn't accept special characters"><mui-input></mui-input></mui-field>`,
30
+ select: `<mui-field label="Brand"><mui-select options='[{ "value": "jpy", "label": "JPY" },{ "value": "usd", "label": "USD" }]'></mui-select></mui-field>`,
31
+ inputAndSelect: `<mui-field label="Amount to transfer" slot="body"><mui-input type="number"><mui-select slot="after" label="Currency" hide-label style="width: 100px;" options='[{ "value": "jpy", "label": "JPY" },{ "value": "usd", "label": "USD" }]'></mui-select></mui-input></mui-field>`
32
+ },
33
+ addon: "<mui-addon>...</mui-addon>",
34
+ checkbox: "<mui-checkbox>...</mui-checkbox>",
35
+ fileUpload: "<mui-file-upload>...</mui-file-upload>",
36
+ input: "<mui-input>...</mui-input>",
37
+ progress: "<mui-progress>...</mui-progress>",
38
+ select: "<mui-select>...</mui-select>",
39
+ switch: "<mui-switch>...</mui-switch>",
40
+ // Content
41
+ slat: {
42
+ default: '<mui-slat><mui-heading slot="start" size="5">...</mui-heading><mui-h-stack slot="end"><mui-body>...</mui-body></mui-h-stack></mui-slat>',
43
+ header: '<mui-slat variant="header"><mui-heading slot="start" size="6">Heading</mui-heading><mui-h-stack slot="end" alignX="end"><mui-body size="small">End slot</mui-body></mui-h-stack></mui-slat>',
44
+ row: '<mui-slat variant="row"><mui-v-stack slot="start"><mui-body size="medium" weight="bold">...</mui-body><mui-body size="small">...</mui-body></mui-v-stack><mui-v-stack slot="end" alignX="end"><mui-body size="small">...</mui-body><mui-body size="small">...</mui-body></mui-v-stack></mui-slat>',
45
+ action: '<mui-slat variant="action"><mui-v-stack slot="start"><mui-body size="medium" weight="bold">...</mui-body><mui-body size="small">...</mui-body></mui-v-stack></mui-slat>'
46
+ },
47
+ table: {
48
+ basic: '<mui-table><mui-row-group heading><mui-row columns="1fr 1fr"><mui-cell>Heading 1</mui-cell><mui-cell>Heading 2</mui-cell></mui-row></mui-row-group><mui-row-group><mui-row columns="1fr 1fr"><mui-cell>Row 1</mui-cell><mui-cell>Row 1</mui-cell></mui-row></mui-row-group></mui-table>'
49
+ },
50
+ accordion: {
51
+ block: '<mui-accordion-group><mui-accordion-block heading="Section A"><div slot="detail">...</div></mui-accordion-block><mui-accordion-block heading="Section B"><div slot="detail">...</div></mui-accordion-block></mui-accordion-group>',
52
+ inline: '<mui-accordion-inline heading="..."><mui-list as="ul" slot="detail">...</mui-list></mui-accordion-inline>',
53
+ exclusiveGroup: '<mui-accordion-group exclusive><mui-accordion-block heading="..."><div slot="detail">...</div></mui-accordion-block><mui-accordion-block heading="..."><div slot="detail">...</div></mui-accordion-block></mui-accordion-group>',
54
+ withLinks: '<mui-accordion-block heading="..." detail-space="none" style="width:26rem;"><mui-v-stack slot="detail" space="var(--space-000)" style="padding:var(--space-100)"><mui-link variant="tertiary" class="nav-link">...</mui-link><mui-link variant="tertiary" class="nav-link">...</mui-link><mui-link variant="tertiary" class="nav-link">...</mui-link></mui-v-stack></mui-accordion-block>',
55
+ slat: '<mui-accordion-group exclusive><mui-accordion-block heading="..."><mui-v-stack slot="detail"><mui-body>...</mui-body><mui-slat-group><mui-slat variant="header"><mui-heading slot="start" size="6">...</mui-heading><mui-h-stack slot="end" alignX="end"><mui-body size="small">...</mui-body></mui-h-stack></mui-slat><mui-slat variant="action"><mui-v-stack slot="start" space="0"><mui-body size="small" weight="bold">...</mui-body><mui-body size="x-small">...</mui-body></mui-v-stack><mui-v-stack space="0" slot="end" alignX="end"><mui-body size="x-small">...</mui-body></mui-v-stack></mui-slat><mui-slat variant="action"><mui-v-stack slot="start" space="0"><mui-body size="small" weight="bold">...</mui-body><mui-body size="x-small">...</mui-body></mui-v-stack><mui-v-stack space="0" slot="end" alignX="end"><mui-body size="x-small">...</mui-body></mui-v-stack></mui-slat><mui-rule></mui-rule></mui-slat-group></mui-v-stack></mui-accordion-block><mui-accordion-block heading="..."><mui-v-stack slot="detail" space="var(--space-200)" style="max-width:400px;margin:var(--space-200) auto 0;">...</mui-v-stack></mui-accordion-block></mui-accordion-group>'
56
+ },
57
+ image: {
58
+ default: '<mui-image><img slot="image" src="https://muibook.com/images/buttercup.png" alt="..."/></mui-image>',
59
+ caption: '<mui-image><img slot="image" src="https://muibook.com/images/buttercup.png" alt="..."/><figcaption slot="caption">This is a caption</figcaption></mui-image>'
60
+ },
61
+ heading: "<mui-heading>...</mui-heading>",
62
+ body: "<mui-body>...</mui-body>",
63
+ code: "<mui-code>...</mui-code>",
64
+ dialog: "<mui-dialog>...</mui-dialog>",
65
+ drawer: "<mui-drawer>...</mui-drawer>",
66
+ quote: "<mui-quote>...</mui-quote>",
67
+ list: "<mui-list>...</mui-list>",
68
+ listItem: "<mui-list-item>...</mui-list-item>",
69
+ icon: "<mui-icon-...></mui-icon-...>",
70
+ smartCard: {
71
+ plain: '<mui-smart-card number="1234" type="Debit" logo="https://muibook.com/images/image-220.png" partner="https://muibook.com/images/visa-black.svg" variant="plain"/>'
72
+ },
73
+ // Layout
74
+ card: "<mui-card>...</mui-card>",
75
+ container: "<mui-container>...</mui-container>",
76
+ responsive: "<mui-responsive>...</mui-responsive>",
77
+ rule: "<mui-rule />",
78
+ vStack: "<mui-v-stack>...</mui-v-stack>",
79
+ hStack: "<mui-h-stack>...</mui-h-stack>",
80
+ grid: "<mui-grid>...</mui-grid>",
81
+ // Feedback
82
+ alert: {
83
+ success: '<mui-alert variant="success">...</mui-alert>',
84
+ info: '<mui-alert variant="info">...</mui-alert>',
85
+ warning: '<mui-alert variant="warning">...</mui-alert>',
86
+ attention: '<mui-alert variant="attention">...</mui-alert>',
87
+ errorWithButton: '<mui-alert variant="error"><mui-button slot="action"><mui-icon-close></mui-icon-close></mui-button></mui-alert>',
88
+ successWithButton: '<mui-alert variant="success"><mui-button slot="action">Undo</mui-button></mui-alert>',
89
+ warningWithLink: '<mui-alert variant="warning"><mui-link slot="action">Upgrade</mui-link></mui-alert>'
90
+ },
91
+ badge: "<mui-badge>...</mui-badge>",
92
+ loader: "<mui-loader>...</mui-loader>",
93
+ // Actions
94
+ button: {
95
+ primary: '<mui-button variant="primary">...</mui-button>',
96
+ secondary: '<mui-button variant="secondary">...</mui-button>',
97
+ tertiary: '<mui-button variant="tertiary">...</mui-button>',
98
+ attention: '<mui-button variant="attention">...</mui-button>',
99
+ before: '<mui-button variant="primary">Add New<mui-icon-add slot="before" size="x-small"></mui-icon-add></mui-button>',
100
+ after: '<mui-button variant="primary">More<mui-icon-down-chevron slot="after" size="x-small"></mui-icon-down-chevron></mui-button>',
101
+ iconOnly: '<mui-button variant="primary"><mui-icon-add></mui-icon-add></mui-button>',
102
+ disabled: "<mui-button disabled>...</mui-button>",
103
+ toggle: '<mui-button id="btn" variant="primary"><mui-icon-toggle><mui-icon-add slot="start"></mui-icon-add><mui-icon-subtract slot="end"></mui-icon-subtract></mui-icon-toggle></mui-button>',
104
+ toggleRotate: '<mui-button id="btn" variant="primary"><mui-icon-toggle rotate><mui-icon-add slot="start"></mui-icon-add><mui-icon-subtract slot="end"></mui-icon-subtract></mui-icon-toggle></mui-button>'
105
+ },
106
+ buttonGroup: {
107
+ default: "<mui-button-group>...</mui-button-group>",
108
+ alignedRight: "<mui-button-group right>...</mui-button-group>"
109
+ },
110
+ chip: "<mui-chip>...</mui-chip>",
111
+ dropdown: "<mui-dropdown>...</mui-dropdown>",
112
+ link: "<mui-link>...</mui-link>",
113
+ // Navigation
114
+ carouselController: "<mui-carousel-controller>...</mui-carousel-controller>",
115
+ stepper: "<mui-stepper>...</mui-stepper>",
116
+ step: "<mui-step>...</mui-step>",
117
+ tabController: "<mui-tab-controller>...</mui-tab-controller>",
118
+ tabBar: "<mui-tab-bar>...</mui-tab-bar>",
119
+ tabItem: "<mui-tab-item>...</mui-tab-item>"
120
+ })
667
121
  }
668
122
  ];
669
123
  export {