@tmorrow/cre8-wc 2.0.3 → 2.0.5

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 (223) hide show
  1. package/a2ui/build-knowledge-graph.py +297 -0
  2. package/a2ui/catalog +240 -0
  3. package/a2ui/catalog-kg.json +6704 -0
  4. package/a2ui/catalog.json +6114 -0
  5. package/a2ui/catalog.svg +3295 -0
  6. package/a2ui/demo.html +243 -0
  7. package/a2ui/examples/card-gallery.json +786 -0
  8. package/a2ui/examples/dating-grid.json +456 -0
  9. package/a2ui/examples/llm-observability.json +1719 -0
  10. package/a2ui/examples/portfolio.json +341 -0
  11. package/a2ui/generate-catalog.mjs +246 -0
  12. package/a2ui/index.d.ts +4 -0
  13. package/a2ui/index.js +2 -0
  14. package/a2ui/index.ts +12 -0
  15. package/a2ui/registry.d.ts +3 -0
  16. package/a2ui/registry.js +166 -0
  17. package/a2ui/registry.ts +182 -0
  18. package/a2ui/renderer.d.ts +7 -0
  19. package/a2ui/renderer.js +108 -0
  20. package/a2ui/renderer.ts +156 -0
  21. package/a2ui/smoke-test.mjs +238 -0
  22. package/a2ui/types.d.ts +75 -0
  23. package/a2ui/types.js +1 -0
  24. package/a2ui/types.ts +80 -0
  25. package/cdn/cre8-wc.esm.js +3057 -2438
  26. package/cdn/cre8-wc.esm.js.map +1 -1
  27. package/cdn/cre8-wc.min.js +1801 -1204
  28. package/cdn/cre8-wc.min.js.map +1 -1
  29. package/lib/a2ui/index.d.ts +5 -0
  30. package/lib/a2ui/index.d.ts.map +1 -0
  31. package/lib/a2ui/index.js +3 -0
  32. package/lib/a2ui/index.js.map +1 -0
  33. package/lib/a2ui/registry.d.ts +4 -0
  34. package/lib/a2ui/registry.d.ts.map +1 -0
  35. package/lib/a2ui/registry.js +167 -0
  36. package/lib/a2ui/registry.js.map +1 -0
  37. package/lib/a2ui/renderer.d.ts +8 -0
  38. package/lib/a2ui/renderer.d.ts.map +1 -0
  39. package/lib/a2ui/renderer.js +109 -0
  40. package/lib/a2ui/renderer.js.map +1 -0
  41. package/lib/a2ui/types.d.ts +76 -0
  42. package/lib/a2ui/types.d.ts.map +1 -0
  43. package/lib/a2ui/types.js +2 -0
  44. package/lib/a2ui/types.js.map +1 -0
  45. package/lib/components/accordion/accordion.d.ts +1 -0
  46. package/lib/components/accordion/accordion.d.ts.map +1 -1
  47. package/lib/components/accordion/accordion.js +1 -0
  48. package/lib/components/accordion/accordion.js.map +1 -1
  49. package/lib/components/accordion-item/accordion-item.d.ts +1 -0
  50. package/lib/components/accordion-item/accordion-item.d.ts.map +1 -1
  51. package/lib/components/accordion-item/accordion-item.js +1 -0
  52. package/lib/components/accordion-item/accordion-item.js.map +1 -1
  53. package/lib/components/alert/alert.d.ts +6 -0
  54. package/lib/components/alert/alert.d.ts.map +1 -1
  55. package/lib/components/alert/alert.js +6 -0
  56. package/lib/components/alert/alert.js.map +1 -1
  57. package/lib/components/button/button.d.ts +2 -0
  58. package/lib/components/button/button.d.ts.map +1 -1
  59. package/lib/components/button/button.js +2 -0
  60. package/lib/components/button/button.js.map +1 -1
  61. package/lib/components/button/button.styles.d.ts.map +1 -1
  62. package/lib/components/button/button.styles.js +1120 -557
  63. package/lib/components/button/button.styles.js.map +1 -1
  64. package/lib/components/button-group/button-group.d.ts +9 -0
  65. package/lib/components/button-group/button-group.d.ts.map +1 -1
  66. package/lib/components/button-group/button-group.js +8 -0
  67. package/lib/components/button-group/button-group.js.map +1 -1
  68. package/lib/components/button-group/button-group.styles.d.ts.map +1 -1
  69. package/lib/components/button-group/button-group.styles.js +12 -0
  70. package/lib/components/button-group/button-group.styles.js.map +1 -1
  71. package/lib/components/card/card.d.ts +1 -1
  72. package/lib/components/card/card.d.ts.map +1 -1
  73. package/lib/components/card/card.js +1 -0
  74. package/lib/components/card/card.js.map +1 -1
  75. package/lib/components/card/card.styles.d.ts.map +1 -1
  76. package/lib/components/card/card.styles.js +8 -0
  77. package/lib/components/card/card.styles.js.map +1 -1
  78. package/lib/components/checkbox-field-item/checkbox-field-item.d.ts +6 -0
  79. package/lib/components/checkbox-field-item/checkbox-field-item.d.ts.map +1 -1
  80. package/lib/components/checkbox-field-item/checkbox-field-item.js +6 -0
  81. package/lib/components/checkbox-field-item/checkbox-field-item.js.map +1 -1
  82. package/lib/components/checkbox-field-item/checkbox-field-item.styles.js +1 -1
  83. package/lib/components/checkbox-field-item/checkbox-field-item.styles.js.map +1 -1
  84. package/lib/components/date-picker/date-picker.d.ts +5 -0
  85. package/lib/components/date-picker/date-picker.d.ts.map +1 -1
  86. package/lib/components/date-picker/date-picker.js +12 -10
  87. package/lib/components/date-picker/date-picker.js.map +1 -1
  88. package/lib/components/dropdown/dropdown.d.ts +2 -0
  89. package/lib/components/dropdown/dropdown.d.ts.map +1 -1
  90. package/lib/components/dropdown/dropdown.js +2 -0
  91. package/lib/components/dropdown/dropdown.js.map +1 -1
  92. package/lib/components/dropdown-item/dropdown-item.d.ts +8 -0
  93. package/lib/components/dropdown-item/dropdown-item.d.ts.map +1 -1
  94. package/lib/components/dropdown-item/dropdown-item.js +15 -2
  95. package/lib/components/dropdown-item/dropdown-item.js.map +1 -1
  96. package/lib/components/feature/feature.d.ts +4 -0
  97. package/lib/components/feature/feature.d.ts.map +1 -1
  98. package/lib/components/feature/feature.js +4 -1
  99. package/lib/components/feature/feature.js.map +1 -1
  100. package/lib/components/field/field.d.ts +2 -0
  101. package/lib/components/field/field.d.ts.map +1 -1
  102. package/lib/components/field/field.js +3 -0
  103. package/lib/components/field/field.js.map +1 -1
  104. package/lib/components/global-nav-item/global-nav-item.d.ts +2 -0
  105. package/lib/components/global-nav-item/global-nav-item.d.ts.map +1 -1
  106. package/lib/components/global-nav-item/global-nav-item.js +2 -0
  107. package/lib/components/global-nav-item/global-nav-item.js.map +1 -1
  108. package/lib/components/header/header.d.ts +2 -0
  109. package/lib/components/header/header.d.ts.map +1 -1
  110. package/lib/components/header/header.js +2 -0
  111. package/lib/components/header/header.js.map +1 -1
  112. package/lib/components/hero/hero.d.ts +4 -0
  113. package/lib/components/hero/hero.d.ts.map +1 -1
  114. package/lib/components/hero/hero.js +4 -0
  115. package/lib/components/hero/hero.js.map +1 -1
  116. package/lib/components/hero/hero.styles.d.ts.map +1 -1
  117. package/lib/components/hero/hero.styles.js +13 -0
  118. package/lib/components/hero/hero.styles.js.map +1 -1
  119. package/lib/components/icon/icon.d.ts +3 -0
  120. package/lib/components/icon/icon.d.ts.map +1 -1
  121. package/lib/components/icon/icon.js +7 -5
  122. package/lib/components/icon/icon.js.map +1 -1
  123. package/lib/components/link/link.d.ts +2 -0
  124. package/lib/components/link/link.d.ts.map +1 -1
  125. package/lib/components/link/link.js +2 -0
  126. package/lib/components/link/link.js.map +1 -1
  127. package/lib/components/link-list-item/link-list-item.d.ts +2 -0
  128. package/lib/components/link-list-item/link-list-item.d.ts.map +1 -1
  129. package/lib/components/link-list-item/link-list-item.js +2 -0
  130. package/lib/components/link-list-item/link-list-item.js.map +1 -1
  131. package/lib/components/modal/modal.d.ts +4 -0
  132. package/lib/components/modal/modal.d.ts.map +1 -1
  133. package/lib/components/modal/modal.js +4 -0
  134. package/lib/components/modal/modal.js.map +1 -1
  135. package/lib/components/multi-select/multi-select.d.ts +4 -0
  136. package/lib/components/multi-select/multi-select.d.ts.map +1 -1
  137. package/lib/components/multi-select/multi-select.js +5 -2
  138. package/lib/components/multi-select/multi-select.js.map +1 -1
  139. package/lib/components/page-header/page-header.d.ts +1 -0
  140. package/lib/components/page-header/page-header.d.ts.map +1 -1
  141. package/lib/components/page-header/page-header.js +3 -2
  142. package/lib/components/page-header/page-header.js.map +1 -1
  143. package/lib/components/pagination/pagination.d.ts +7 -0
  144. package/lib/components/pagination/pagination.d.ts.map +1 -1
  145. package/lib/components/pagination/pagination.js +7 -0
  146. package/lib/components/pagination/pagination.js.map +1 -1
  147. package/lib/components/percent-bar/percent-bar.d.ts.map +1 -1
  148. package/lib/components/percent-bar/percent-bar.js +1 -0
  149. package/lib/components/percent-bar/percent-bar.js.map +1 -1
  150. package/lib/components/popover/popover.d.ts +6 -0
  151. package/lib/components/popover/popover.d.ts.map +1 -1
  152. package/lib/components/popover/popover.js +7 -1
  153. package/lib/components/popover/popover.js.map +1 -1
  154. package/lib/components/primary-nav-item/primary-nav-item.d.ts +2 -0
  155. package/lib/components/primary-nav-item/primary-nav-item.d.ts.map +1 -1
  156. package/lib/components/primary-nav-item/primary-nav-item.js +2 -0
  157. package/lib/components/primary-nav-item/primary-nav-item.js.map +1 -1
  158. package/lib/components/remove-tag/remove-tag.d.ts +2 -0
  159. package/lib/components/remove-tag/remove-tag.d.ts.map +1 -1
  160. package/lib/components/remove-tag/remove-tag.js +3 -1
  161. package/lib/components/remove-tag/remove-tag.js.map +1 -1
  162. package/lib/components/section/section.d.ts +1 -0
  163. package/lib/components/section/section.d.ts.map +1 -1
  164. package/lib/components/section/section.js +1 -0
  165. package/lib/components/section/section.js.map +1 -1
  166. package/lib/components/select/select.d.ts +2 -0
  167. package/lib/components/select/select.d.ts.map +1 -1
  168. package/lib/components/select/select.js +5 -1
  169. package/lib/components/select/select.js.map +1 -1
  170. package/lib/components/split-button/split-button.d.ts +3 -0
  171. package/lib/components/split-button/split-button.d.ts.map +1 -1
  172. package/lib/components/split-button/split-button.js.map +1 -1
  173. package/lib/components/tab/tab.d.ts +2 -0
  174. package/lib/components/tab/tab.d.ts.map +1 -1
  175. package/lib/components/tab/tab.js +2 -0
  176. package/lib/components/tab/tab.js.map +1 -1
  177. package/lib/components/table-object/table-object.d.ts +2 -0
  178. package/lib/components/table-object/table-object.d.ts.map +1 -1
  179. package/lib/components/table-object/table-object.js +2 -0
  180. package/lib/components/table-object/table-object.js.map +1 -1
  181. package/lib/components/table-row/table-row.d.ts +1 -0
  182. package/lib/components/table-row/table-row.d.ts.map +1 -1
  183. package/lib/components/table-row/table-row.js +1 -0
  184. package/lib/components/table-row/table-row.js.map +1 -1
  185. package/lib/components/tag/tag.d.ts +5 -0
  186. package/lib/components/tag/tag.d.ts.map +1 -1
  187. package/lib/components/tag/tag.js +2 -0
  188. package/lib/components/tag/tag.js.map +1 -1
  189. package/lib/components/tag-list/tag-list.d.ts +2 -0
  190. package/lib/components/tag-list/tag-list.d.ts.map +1 -1
  191. package/lib/components/tag-list/tag-list.js +2 -0
  192. package/lib/components/tag-list/tag-list.js.map +1 -1
  193. package/lib/components/text-link/text-link.d.ts +1 -0
  194. package/lib/components/text-link/text-link.d.ts.map +1 -1
  195. package/lib/components/text-link/text-link.js +1 -0
  196. package/lib/components/text-link/text-link.js.map +1 -1
  197. package/lib/components/tooltip/tooltip.d.ts +6 -0
  198. package/lib/components/tooltip/tooltip.d.ts.map +1 -1
  199. package/lib/components/tooltip/tooltip.js +3 -0
  200. package/lib/components/tooltip/tooltip.js.map +1 -1
  201. package/lib/design-tokens/brands/claude-terracotta/css/tokens_brand.css +85 -0
  202. package/lib/design-tokens/brands/claude-terracotta/css/tokens_claude-terracotta.css +1 -0
  203. package/lib/design-tokens/brands/claude-terracotta/css/tokens_claude-terracotta.module.d.ts +3 -0
  204. package/lib/design-tokens/brands/claude-terracotta/css/tokens_claude-terracotta.module.d.ts.map +1 -0
  205. package/lib/design-tokens/brands/claude-terracotta/css/tokens_claude-terracotta.module.js +90 -0
  206. package/lib/design-tokens/brands/claude-terracotta/css/tokens_claude-terracotta.module.js.map +1 -0
  207. package/lib/design-tokens/brands/cre8-a2ui/css/tokens_brand.css +1 -0
  208. package/lib/design-tokens/brands/cre8-teal/css/tokens_brand.css +87 -0
  209. package/lib/design-tokens/brands/cre8-teal/css/tokens_cre8-teal.css +1 -0
  210. package/lib/design-tokens/brands/cre8-teal/css/tokens_cre8-teal.module.d.ts +3 -0
  211. package/lib/design-tokens/brands/cre8-teal/css/tokens_cre8-teal.module.d.ts.map +1 -0
  212. package/lib/design-tokens/brands/cre8-teal/css/tokens_cre8-teal.module.js +90 -0
  213. package/lib/design-tokens/brands/cre8-teal/css/tokens_cre8-teal.module.js.map +1 -0
  214. package/lib/scripts/generate-react-manifest.d.ts +20 -0
  215. package/lib/scripts/generate-react-manifest.d.ts.map +1 -0
  216. package/lib/scripts/generate-react-manifest.js +154 -0
  217. package/lib/scripts/generate-react-manifest.js.map +1 -0
  218. package/mcp-manifest.json +203 -38
  219. package/package.json +24 -4
  220. package/react-manifest.json +3594 -0
  221. package/dist/leaf.png +0 -0
  222. package/dist/leafDS.png +0 -0
  223. package/dist/leafLogo.svg +0 -1
@@ -0,0 +1,786 @@
1
+ {
2
+ "component": "cre8-layout-section",
3
+ "children": [
4
+ {
5
+ "component": "cre8-band",
6
+ "props": {
7
+ "variant": "branded"
8
+ },
9
+ "children": [
10
+ {
11
+ "component": "cre8-hero",
12
+ "props": {
13
+ "align": "center",
14
+ "imgSrc": "https://images.unsplash.com/photo-1555529669-e69e7aa0ba9a?w=1600",
15
+ "imgAlt": "Curated product collection",
16
+ "hasOverlay": true
17
+ },
18
+ "children": [
19
+ {
20
+ "component": "cre8-heading",
21
+ "props": {
22
+ "type": "headline-large",
23
+ "tagVariant": "h1"
24
+ },
25
+ "children": [
26
+ "Explore Our Collection"
27
+ ]
28
+ },
29
+ {
30
+ "component": "cre8-text-passage",
31
+ "props": {
32
+ "size": "large"
33
+ },
34
+ "children": [
35
+ "Handpicked items across every category — find exactly what you're looking for."
36
+ ]
37
+ }
38
+ ]
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ "component": "cre8-layout-section",
44
+ "children": [
45
+ {
46
+ "component": "cre8-grid",
47
+ "props": {
48
+ "variant": "3up",
49
+ "gap": "lg"
50
+ },
51
+ "children": [
52
+ {
53
+ "component": "cre8-grid-item",
54
+ "children": [
55
+ {
56
+ "component": "cre8-card",
57
+ "slots": {
58
+ "header": [
59
+ {
60
+ "component": "cre8-feature",
61
+ "props": {
62
+ "imgSrc": "https://images.unsplash.com/photo-1523275335684-37898b6baf30?w=400",
63
+ "imgAlt": "Minimalist Watch",
64
+ "aspectRatio": "4/3"
65
+ }
66
+ }
67
+ ],
68
+ "default": [
69
+ {
70
+ "component": "cre8-badge",
71
+ "props": {
72
+ "text": "Accessories",
73
+ "status": "info"
74
+ }
75
+ },
76
+ {
77
+ "component": "cre8-heading",
78
+ "props": {
79
+ "type": "title-default",
80
+ "tagVariant": "h3"
81
+ },
82
+ "children": [
83
+ "Minimalist Watch"
84
+ ]
85
+ },
86
+ {
87
+ "component": "cre8-text-passage",
88
+ "props": {
89
+ "size": "small"
90
+ },
91
+ "children": [
92
+ "Clean design, Swiss movement, leather strap. Timeless in every sense."
93
+ ]
94
+ }
95
+ ],
96
+ "footer": [
97
+ {
98
+ "component": "cre8-button-group",
99
+ "children": [
100
+ {
101
+ "component": "cre8-button",
102
+ "props": {
103
+ "text": "$249",
104
+ "variant": "secondary",
105
+ "size": "sm"
106
+ }
107
+ },
108
+ {
109
+ "component": "cre8-button",
110
+ "props": {
111
+ "text": "Add",
112
+ "variant": "primary",
113
+ "size": "sm"
114
+ },
115
+ "events": {
116
+ "click": "add-to-cart:minimalist-watch"
117
+ }
118
+ }
119
+ ],
120
+ "props": {
121
+ "fullWidth": true,
122
+ "gap": "sm"
123
+ }
124
+ }
125
+ ]
126
+ },
127
+ "props": {
128
+ "variant": "compact"
129
+ }
130
+ }
131
+ ]
132
+ },
133
+ {
134
+ "component": "cre8-grid-item",
135
+ "children": [
136
+ {
137
+ "component": "cre8-card",
138
+ "slots": {
139
+ "header": [
140
+ {
141
+ "component": "cre8-feature",
142
+ "props": {
143
+ "imgSrc": "https://images.unsplash.com/photo-1585386959984-a4155224a1ad?w=400",
144
+ "imgAlt": "Wireless Earbuds",
145
+ "aspectRatio": "4/3"
146
+ }
147
+ }
148
+ ],
149
+ "default": [
150
+ {
151
+ "component": "cre8-badge",
152
+ "props": {
153
+ "text": "Audio",
154
+ "status": "info"
155
+ }
156
+ },
157
+ {
158
+ "component": "cre8-heading",
159
+ "props": {
160
+ "type": "title-default",
161
+ "tagVariant": "h3"
162
+ },
163
+ "children": [
164
+ "Wireless Earbuds"
165
+ ]
166
+ },
167
+ {
168
+ "component": "cre8-text-passage",
169
+ "props": {
170
+ "size": "small"
171
+ },
172
+ "children": [
173
+ "Active noise cancellation, 30-hour battery, IPX5 water resistant."
174
+ ]
175
+ }
176
+ ],
177
+ "footer": [
178
+ {
179
+ "component": "cre8-button-group",
180
+ "children": [
181
+ {
182
+ "component": "cre8-button",
183
+ "props": {
184
+ "text": "$129",
185
+ "variant": "secondary",
186
+ "size": "sm"
187
+ }
188
+ },
189
+ {
190
+ "component": "cre8-button",
191
+ "props": {
192
+ "text": "Add",
193
+ "variant": "primary",
194
+ "size": "sm"
195
+ },
196
+ "events": {
197
+ "click": "add-to-cart:wireless-earbuds"
198
+ }
199
+ }
200
+ ],
201
+ "props": {
202
+ "fullWidth": true,
203
+ "gap": "sm"
204
+ }
205
+ }
206
+ ]
207
+ },
208
+ "props": {
209
+ "variant": "compact"
210
+ }
211
+ }
212
+ ]
213
+ },
214
+ {
215
+ "component": "cre8-grid-item",
216
+ "children": [
217
+ {
218
+ "component": "cre8-card",
219
+ "slots": {
220
+ "header": [
221
+ {
222
+ "component": "cre8-feature",
223
+ "props": {
224
+ "imgSrc": "https://images.unsplash.com/photo-1491553895911-0055eca6402d?w=400",
225
+ "imgAlt": "Running Shoes",
226
+ "aspectRatio": "4/3"
227
+ }
228
+ }
229
+ ],
230
+ "default": [
231
+ {
232
+ "component": "cre8-badge",
233
+ "props": {
234
+ "text": "Footwear",
235
+ "status": "success"
236
+ }
237
+ },
238
+ {
239
+ "component": "cre8-heading",
240
+ "props": {
241
+ "type": "title-default",
242
+ "tagVariant": "h3"
243
+ },
244
+ "children": [
245
+ "Trail Runner Pro"
246
+ ]
247
+ },
248
+ {
249
+ "component": "cre8-text-passage",
250
+ "props": {
251
+ "size": "small"
252
+ },
253
+ "children": [
254
+ "Lightweight, responsive, built for any terrain. Available in 6 colorways."
255
+ ]
256
+ }
257
+ ],
258
+ "footer": [
259
+ {
260
+ "component": "cre8-button-group",
261
+ "children": [
262
+ {
263
+ "component": "cre8-button",
264
+ "props": {
265
+ "text": "$165",
266
+ "variant": "secondary",
267
+ "size": "sm"
268
+ }
269
+ },
270
+ {
271
+ "component": "cre8-button",
272
+ "props": {
273
+ "text": "Add",
274
+ "variant": "primary",
275
+ "size": "sm"
276
+ },
277
+ "events": {
278
+ "click": "add-to-cart:trail-runner-pro"
279
+ }
280
+ }
281
+ ],
282
+ "props": {
283
+ "fullWidth": true,
284
+ "gap": "sm"
285
+ }
286
+ }
287
+ ]
288
+ },
289
+ "props": {
290
+ "variant": "compact"
291
+ }
292
+ }
293
+ ]
294
+ },
295
+ {
296
+ "component": "cre8-grid-item",
297
+ "children": [
298
+ {
299
+ "component": "cre8-card",
300
+ "slots": {
301
+ "header": [
302
+ {
303
+ "component": "cre8-feature",
304
+ "props": {
305
+ "imgSrc": "https://images.unsplash.com/photo-1547949003-9792a18a2601?w=400",
306
+ "imgAlt": "Ceramic Mug Set",
307
+ "aspectRatio": "4/3"
308
+ }
309
+ }
310
+ ],
311
+ "default": [
312
+ {
313
+ "component": "cre8-badge",
314
+ "props": {
315
+ "text": "Kitchen",
316
+ "status": "info"
317
+ }
318
+ },
319
+ {
320
+ "component": "cre8-heading",
321
+ "props": {
322
+ "type": "title-default",
323
+ "tagVariant": "h3"
324
+ },
325
+ "children": [
326
+ "Ceramic Mug Set"
327
+ ]
328
+ },
329
+ {
330
+ "component": "cre8-text-passage",
331
+ "props": {
332
+ "size": "small"
333
+ },
334
+ "children": [
335
+ "Hand-thrown stoneware, set of 4. Dishwasher and microwave safe."
336
+ ]
337
+ }
338
+ ],
339
+ "footer": [
340
+ {
341
+ "component": "cre8-button-group",
342
+ "children": [
343
+ {
344
+ "component": "cre8-button",
345
+ "props": {
346
+ "text": "$68",
347
+ "variant": "secondary",
348
+ "size": "sm"
349
+ }
350
+ },
351
+ {
352
+ "component": "cre8-button",
353
+ "props": {
354
+ "text": "Add",
355
+ "variant": "primary",
356
+ "size": "sm"
357
+ },
358
+ "events": {
359
+ "click": "add-to-cart:ceramic-mug-set"
360
+ }
361
+ }
362
+ ],
363
+ "props": {
364
+ "fullWidth": true,
365
+ "gap": "sm"
366
+ }
367
+ }
368
+ ]
369
+ },
370
+ "props": {
371
+ "variant": "compact"
372
+ }
373
+ }
374
+ ]
375
+ },
376
+ {
377
+ "component": "cre8-grid-item",
378
+ "children": [
379
+ {
380
+ "component": "cre8-card",
381
+ "slots": {
382
+ "header": [
383
+ {
384
+ "component": "cre8-feature",
385
+ "props": {
386
+ "imgSrc": "https://images.unsplash.com/photo-1491553895911-0055eca6402d?w=400",
387
+ "imgAlt": "Canvas Backpack",
388
+ "aspectRatio": "4/3"
389
+ }
390
+ }
391
+ ],
392
+ "default": [
393
+ {
394
+ "component": "cre8-badge",
395
+ "props": {
396
+ "text": "Bags",
397
+ "status": "info"
398
+ }
399
+ },
400
+ {
401
+ "component": "cre8-heading",
402
+ "props": {
403
+ "type": "title-default",
404
+ "tagVariant": "h3"
405
+ },
406
+ "children": [
407
+ "Canvas Backpack"
408
+ ]
409
+ },
410
+ {
411
+ "component": "cre8-text-passage",
412
+ "props": {
413
+ "size": "small"
414
+ },
415
+ "children": [
416
+ "Waxed canvas, 28L capacity, fits 16\" laptop. Built to last decades."
417
+ ]
418
+ }
419
+ ],
420
+ "footer": [
421
+ {
422
+ "component": "cre8-button-group",
423
+ "children": [
424
+ {
425
+ "component": "cre8-button",
426
+ "props": {
427
+ "text": "$195",
428
+ "variant": "secondary",
429
+ "size": "sm"
430
+ }
431
+ },
432
+ {
433
+ "component": "cre8-button",
434
+ "props": {
435
+ "text": "Add",
436
+ "variant": "primary",
437
+ "size": "sm"
438
+ },
439
+ "events": {
440
+ "click": "add-to-cart:canvas-backpack"
441
+ }
442
+ }
443
+ ],
444
+ "props": {
445
+ "fullWidth": true,
446
+ "gap": "sm"
447
+ }
448
+ }
449
+ ]
450
+ },
451
+ "props": {
452
+ "variant": "compact"
453
+ }
454
+ }
455
+ ]
456
+ },
457
+ {
458
+ "component": "cre8-grid-item",
459
+ "children": [
460
+ {
461
+ "component": "cre8-card",
462
+ "slots": {
463
+ "header": [
464
+ {
465
+ "component": "cre8-feature",
466
+ "props": {
467
+ "imgSrc": "https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=400",
468
+ "imgAlt": "Bluetooth Speaker",
469
+ "aspectRatio": "4/3"
470
+ }
471
+ }
472
+ ],
473
+ "default": [
474
+ {
475
+ "component": "cre8-badge",
476
+ "props": {
477
+ "text": "Audio",
478
+ "status": "info"
479
+ }
480
+ },
481
+ {
482
+ "component": "cre8-heading",
483
+ "props": {
484
+ "type": "title-default",
485
+ "tagVariant": "h3"
486
+ },
487
+ "children": [
488
+ "Portable Speaker"
489
+ ]
490
+ },
491
+ {
492
+ "component": "cre8-text-passage",
493
+ "props": {
494
+ "size": "small"
495
+ },
496
+ "children": [
497
+ "360° sound, 20-hour battery, floats in water. The only speaker you need outdoors."
498
+ ]
499
+ }
500
+ ],
501
+ "footer": [
502
+ {
503
+ "component": "cre8-button-group",
504
+ "children": [
505
+ {
506
+ "component": "cre8-button",
507
+ "props": {
508
+ "text": "$99",
509
+ "variant": "secondary",
510
+ "size": "sm"
511
+ }
512
+ },
513
+ {
514
+ "component": "cre8-button",
515
+ "props": {
516
+ "text": "Add",
517
+ "variant": "primary",
518
+ "size": "sm"
519
+ },
520
+ "events": {
521
+ "click": "add-to-cart:portable-speaker"
522
+ }
523
+ }
524
+ ],
525
+ "props": {
526
+ "fullWidth": true,
527
+ "gap": "sm"
528
+ }
529
+ }
530
+ ]
531
+ },
532
+ "props": {
533
+ "variant": "compact"
534
+ }
535
+ }
536
+ ]
537
+ },
538
+ {
539
+ "component": "cre8-grid-item",
540
+ "children": [
541
+ {
542
+ "component": "cre8-card",
543
+ "slots": {
544
+ "header": [
545
+ {
546
+ "component": "cre8-feature",
547
+ "props": {
548
+ "imgSrc": "https://images.unsplash.com/photo-1526170375885-4d8ecf77b99f?w=400",
549
+ "imgAlt": "Instant Camera",
550
+ "aspectRatio": "4/3"
551
+ }
552
+ }
553
+ ],
554
+ "default": [
555
+ {
556
+ "component": "cre8-badge",
557
+ "props": {
558
+ "text": "Photography",
559
+ "status": "attention"
560
+ }
561
+ },
562
+ {
563
+ "component": "cre8-heading",
564
+ "props": {
565
+ "type": "title-default",
566
+ "tagVariant": "h3"
567
+ },
568
+ "children": [
569
+ "Instant Camera"
570
+ ]
571
+ },
572
+ {
573
+ "component": "cre8-text-passage",
574
+ "props": {
575
+ "size": "small"
576
+ },
577
+ "children": [
578
+ "Prints in 60 seconds. Built-in flash, selfie mirror, double exposure mode."
579
+ ]
580
+ }
581
+ ],
582
+ "footer": [
583
+ {
584
+ "component": "cre8-button-group",
585
+ "children": [
586
+ {
587
+ "component": "cre8-button",
588
+ "props": {
589
+ "text": "$89",
590
+ "variant": "secondary",
591
+ "size": "sm"
592
+ }
593
+ },
594
+ {
595
+ "component": "cre8-button",
596
+ "props": {
597
+ "text": "Add",
598
+ "variant": "primary",
599
+ "size": "sm"
600
+ },
601
+ "events": {
602
+ "click": "add-to-cart:instant-camera"
603
+ }
604
+ }
605
+ ],
606
+ "props": {
607
+ "fullWidth": true,
608
+ "gap": "sm"
609
+ }
610
+ }
611
+ ]
612
+ },
613
+ "props": {
614
+ "variant": "compact"
615
+ }
616
+ }
617
+ ]
618
+ },
619
+ {
620
+ "component": "cre8-grid-item",
621
+ "children": [
622
+ {
623
+ "component": "cre8-card",
624
+ "slots": {
625
+ "header": [
626
+ {
627
+ "component": "cre8-feature",
628
+ "props": {
629
+ "imgSrc": "https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=400",
630
+ "imgAlt": "Over-ear Headphones",
631
+ "aspectRatio": "4/3"
632
+ }
633
+ }
634
+ ],
635
+ "default": [
636
+ {
637
+ "component": "cre8-badge",
638
+ "props": {
639
+ "text": "Audio",
640
+ "status": "info"
641
+ }
642
+ },
643
+ {
644
+ "component": "cre8-heading",
645
+ "props": {
646
+ "type": "title-default",
647
+ "tagVariant": "h3"
648
+ },
649
+ "children": [
650
+ "Studio Headphones"
651
+ ]
652
+ },
653
+ {
654
+ "component": "cre8-text-passage",
655
+ "props": {
656
+ "size": "small"
657
+ },
658
+ "children": [
659
+ "40mm drivers, foldable, USB-C charging. Reference-grade sound for anywhere."
660
+ ]
661
+ }
662
+ ],
663
+ "footer": [
664
+ {
665
+ "component": "cre8-button-group",
666
+ "children": [
667
+ {
668
+ "component": "cre8-button",
669
+ "props": {
670
+ "text": "$179",
671
+ "variant": "secondary",
672
+ "size": "sm"
673
+ }
674
+ },
675
+ {
676
+ "component": "cre8-button",
677
+ "props": {
678
+ "text": "Add",
679
+ "variant": "primary",
680
+ "size": "sm"
681
+ },
682
+ "events": {
683
+ "click": "add-to-cart:studio-headphones"
684
+ }
685
+ }
686
+ ],
687
+ "props": {
688
+ "fullWidth": true,
689
+ "gap": "sm"
690
+ }
691
+ }
692
+ ]
693
+ },
694
+ "props": {
695
+ "variant": "compact"
696
+ }
697
+ }
698
+ ]
699
+ },
700
+ {
701
+ "component": "cre8-grid-item",
702
+ "children": [
703
+ {
704
+ "component": "cre8-card",
705
+ "slots": {
706
+ "header": [
707
+ {
708
+ "component": "cre8-feature",
709
+ "props": {
710
+ "imgSrc": "https://images.unsplash.com/photo-1464983953574-0892a716854b?w=400",
711
+ "imgAlt": "Leather Wallet",
712
+ "aspectRatio": "4/3"
713
+ }
714
+ }
715
+ ],
716
+ "default": [
717
+ {
718
+ "component": "cre8-badge",
719
+ "props": {
720
+ "text": "Accessories",
721
+ "status": "success"
722
+ }
723
+ },
724
+ {
725
+ "component": "cre8-heading",
726
+ "props": {
727
+ "type": "title-default",
728
+ "tagVariant": "h3"
729
+ },
730
+ "children": [
731
+ "Slim Leather Wallet"
732
+ ]
733
+ },
734
+ {
735
+ "component": "cre8-text-passage",
736
+ "props": {
737
+ "size": "small"
738
+ },
739
+ "children": [
740
+ "Full-grain leather, RFID blocking, holds 8 cards. Gets better with age."
741
+ ]
742
+ }
743
+ ],
744
+ "footer": [
745
+ {
746
+ "component": "cre8-button-group",
747
+ "children": [
748
+ {
749
+ "component": "cre8-button",
750
+ "props": {
751
+ "text": "$55",
752
+ "variant": "secondary",
753
+ "size": "sm"
754
+ }
755
+ },
756
+ {
757
+ "component": "cre8-button",
758
+ "props": {
759
+ "text": "Add",
760
+ "variant": "primary",
761
+ "size": "sm"
762
+ },
763
+ "events": {
764
+ "click": "add-to-cart:slim-leather-wallet"
765
+ }
766
+ }
767
+ ],
768
+ "props": {
769
+ "fullWidth": true,
770
+ "gap": "sm"
771
+ }
772
+ }
773
+ ]
774
+ },
775
+ "props": {
776
+ "variant": "compact"
777
+ }
778
+ }
779
+ ]
780
+ }
781
+ ]
782
+ }
783
+ ]
784
+ }
785
+ ]
786
+ }