@upstart.gg/sdk 0.0.137 → 0.0.138
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shared/ai/schemas.js +2 -2
- package/dist/shared/ai/schemas.js.map +1 -1
- package/dist/shared/ai/types.d.ts +2 -2
- package/dist/shared/ai/types.d.ts.map +1 -1
- package/dist/shared/ajv.js +26 -25
- package/dist/shared/ajv.js.map +1 -1
- package/dist/shared/attributes.d.ts +8 -0
- package/dist/shared/attributes.d.ts.map +1 -1
- package/dist/shared/attributes.js +15 -14
- package/dist/shared/brick-manifest.js +2 -2
- package/dist/shared/bricks/manifests/accordion.manifest.js +8 -7
- package/dist/shared/bricks/manifests/all-manifests.js +38 -37
- package/dist/shared/bricks/manifests/all-props.d.ts +32 -22
- package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/all-props.js +40 -39
- package/dist/shared/bricks/manifests/all-props.js.map +1 -1
- package/dist/shared/bricks/manifests/box.manifest.js +11 -10
- package/dist/shared/bricks/manifests/button.manifest.js +10 -9
- package/dist/shared/bricks/manifests/card.manifest.d.ts +2 -0
- package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/card.manifest.js +13 -12
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts +1 -0
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/carousel.manifest.js +11 -10
- package/dist/shared/bricks/manifests/footer.manifest.d.ts +2 -0
- package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/footer.manifest.js +9 -8
- package/dist/shared/bricks/manifests/form.manifest.js +9 -8
- package/dist/shared/bricks/manifests/hero.manifest.d.ts +2 -4
- package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.js +10 -9
- package/dist/shared/bricks/manifests/html.manifest.d.ts +1 -0
- package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/html.manifest.js +6 -5
- package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.js +9 -8
- package/dist/shared/bricks/manifests/image.manifest.d.ts +1 -0
- package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/image.manifest.js +12 -11
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +2 -0
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.js +11 -10
- package/dist/shared/bricks/manifests/map.manifest.d.ts +1 -0
- package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/map.manifest.js +9 -8
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts +2 -0
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/navbar.manifest.js +11 -10
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.js +11 -10
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/social-links.manifest.js +10 -9
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.js +6 -5
- package/dist/shared/bricks/manifests/table.manifest.d.ts +1 -0
- package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/table.manifest.js +10 -9
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/tabs.manifest.js +11 -10
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +3 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.js +13 -12
- package/dist/shared/bricks/manifests/text.manifest.d.ts +2 -5
- package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/text.manifest.js +10 -9
- package/dist/shared/bricks/manifests/timeline.manifest.js +11 -10
- package/dist/shared/bricks/manifests/video.manifest.js +9 -8
- package/dist/shared/bricks/props/background.d.ts.map +1 -1
- package/dist/shared/bricks/props/background.js +1 -1
- package/dist/shared/bricks/props/border.js +2 -2
- package/dist/shared/bricks/props/color.d.ts.map +1 -1
- package/dist/shared/bricks/props/color.js +1 -1
- package/dist/shared/bricks/props/common.d.ts.map +1 -1
- package/dist/shared/bricks/props/common.js +2 -1
- package/dist/shared/bricks/props/grow.d.ts +3 -0
- package/dist/shared/bricks/props/grow.d.ts.map +1 -0
- package/dist/shared/bricks/props/grow.js +10 -0
- package/dist/shared/bricks/props/grow.js.map +1 -0
- package/dist/shared/bricks/props/helpers.js +3 -2
- package/dist/shared/bricks/props/image.d.ts +1 -0
- package/dist/shared/bricks/props/image.d.ts.map +1 -1
- package/dist/shared/bricks/props/image.js +1 -1
- package/dist/shared/bricks/props/string.d.ts.map +1 -1
- package/dist/shared/bricks/props/string.js +1 -1
- package/dist/shared/bricks.d.ts +18 -17
- package/dist/shared/bricks.d.ts.map +1 -1
- package/dist/shared/bricks.js +39 -38
- package/dist/shared/chunk-2EOCK66Z.js +19 -0
- package/dist/shared/chunk-2EOCK66Z.js.map +1 -0
- package/dist/shared/{chunk-XXPSM6UA.js → chunk-2UEPTT5J.js} +5 -9
- package/dist/shared/chunk-2UEPTT5J.js.map +1 -0
- package/dist/shared/{chunk-DRQKKPTX.js → chunk-2Z5WOCFS.js} +41 -1
- package/dist/shared/chunk-2Z5WOCFS.js.map +1 -0
- package/dist/shared/{chunk-7U5WPHXB.js → chunk-34IUWNRX.js} +7 -7
- package/dist/shared/chunk-57NRTXRA.js +309 -0
- package/dist/shared/chunk-57NRTXRA.js.map +1 -0
- package/dist/shared/{chunk-T6C3NG2L.js → chunk-5HJT5NJ3.js} +8 -8
- package/dist/shared/{chunk-BZTWZC77.js → chunk-5J4Y43RM.js} +37 -179
- package/dist/shared/chunk-5J4Y43RM.js.map +1 -0
- package/dist/shared/{chunk-KKWT3OXF.js → chunk-5OVOXUFX.js} +3 -2
- package/dist/shared/{chunk-KKWT3OXF.js.map → chunk-5OVOXUFX.js.map} +1 -1
- package/dist/shared/{chunk-XK2CERPB.js → chunk-5SNSUC6Q.js} +7 -7
- package/dist/shared/{chunk-JLDAS3VE.js → chunk-B5T2LFV2.js} +10 -14
- package/dist/shared/chunk-B5T2LFV2.js.map +1 -0
- package/dist/shared/{chunk-PF75LW33.js → chunk-E3ZW57HF.js} +18 -9
- package/dist/shared/chunk-E3ZW57HF.js.map +1 -0
- package/dist/shared/{chunk-JSDKK5QN.js → chunk-EUFVTHAG.js} +5 -3
- package/dist/shared/chunk-EUFVTHAG.js.map +1 -0
- package/dist/shared/{chunk-U4KZUX37.js → chunk-FC52EHCC.js} +8 -8
- package/dist/shared/chunk-FC52EHCC.js.map +1 -0
- package/dist/shared/{chunk-JW7MQAU4.js → chunk-FVV27R73.js} +9 -94
- package/dist/shared/chunk-FVV27R73.js.map +1 -0
- package/dist/shared/{chunk-SQXZNGQF.js → chunk-FYGFB5U5.js} +3 -1
- package/dist/shared/chunk-FYGFB5U5.js.map +1 -0
- package/dist/shared/{chunk-J45LSQT6.js → chunk-GNTJT7MR.js} +2 -2
- package/dist/shared/chunk-HHUFGV7J.js +259 -0
- package/dist/shared/chunk-HHUFGV7J.js.map +1 -0
- package/dist/shared/{chunk-W2RFDII5.js → chunk-IMDOF55E.js} +12 -4
- package/dist/shared/chunk-IMDOF55E.js.map +1 -0
- package/dist/shared/{chunk-KQH6V22E.js → chunk-IPWYNE6Y.js} +25 -25
- package/dist/shared/{chunk-H6TMBELF.js → chunk-J6R3GSKS.js} +46 -34
- package/dist/shared/chunk-J6R3GSKS.js.map +1 -0
- package/dist/shared/{chunk-TBT2PTGB.js → chunk-KRODRZNS.js} +9 -9
- package/dist/shared/chunk-KTA7XES3.js +168 -0
- package/dist/shared/chunk-KTA7XES3.js.map +1 -0
- package/dist/shared/{chunk-SK2O7GFC.js → chunk-L4W4B2RQ.js} +15 -70
- package/dist/shared/chunk-L4W4B2RQ.js.map +1 -0
- package/dist/shared/{chunk-MYOLWTB2.js → chunk-NTP6BKRU.js} +9 -9
- package/dist/shared/chunk-NTP6BKRU.js.map +1 -0
- package/dist/shared/{chunk-JF52BBFD.js → chunk-O53V22BK.js} +18 -10
- package/dist/shared/chunk-O53V22BK.js.map +1 -0
- package/dist/shared/{chunk-ZVJNRKT4.js → chunk-ORIUCOED.js} +7 -7
- package/dist/shared/{chunk-LGDDJJHK.js → chunk-PFZMRSHJ.js} +11 -11
- package/dist/shared/{chunk-6AE7UD73.js → chunk-QHKOAIOK.js} +31 -60
- package/dist/shared/chunk-QHKOAIOK.js.map +1 -0
- package/dist/shared/{chunk-LPAQ47C6.js → chunk-RDOCVLCF.js} +11 -11
- package/dist/shared/{chunk-VSLRTXLF.js → chunk-RFH7PEVS.js} +5 -4
- package/dist/shared/chunk-RFH7PEVS.js.map +1 -0
- package/dist/shared/{chunk-XNRSL6FL.js → chunk-T3UPW5OW.js} +5 -4
- package/dist/shared/{chunk-XNRSL6FL.js.map → chunk-T3UPW5OW.js.map} +1 -1
- package/dist/shared/{chunk-FUUSAMN3.js → chunk-TGKNA2JS.js} +8 -8
- package/dist/shared/{chunk-HY7JOP3J.js → chunk-TZ6X7ZM5.js} +19 -11
- package/dist/shared/chunk-TZ6X7ZM5.js.map +1 -0
- package/dist/shared/{chunk-VTCHJT4O.js → chunk-UC75KRLX.js} +2 -2
- package/dist/shared/{chunk-4KY7OZWD.js → chunk-VMIJ6MG5.js} +13 -13
- package/dist/shared/{chunk-SRYBJ6NQ.js → chunk-VYA2FCTY.js} +2 -2
- package/dist/shared/{chunk-LGGPCCCY.js → chunk-XYWSIMZ6.js} +3 -3
- package/dist/shared/chunk-XYWSIMZ6.js.map +1 -0
- package/dist/shared/{chunk-FHA4DFIM.js → chunk-ZYQZUWF7.js} +10 -10
- package/dist/shared/{chunk-2O5HVPID.js → chunk-ZZVYD4BG.js} +3 -3
- package/dist/shared/context.d.ts +4 -0
- package/dist/shared/context.d.ts.map +1 -1
- package/dist/shared/context.js +43 -42
- package/dist/shared/context.js.map +1 -1
- package/dist/shared/page.d.ts +2 -0
- package/dist/shared/page.d.ts.map +1 -1
- package/dist/shared/page.js +41 -40
- package/dist/shared/site.d.ts +7 -0
- package/dist/shared/site.d.ts.map +1 -1
- package/dist/shared/site.js +43 -42
- package/dist/shared/sitemap.js +42 -41
- package/dist/shared/utils/schema.d.ts +0 -5
- package/dist/shared/utils/schema.d.ts.map +1 -1
- package/dist/shared/utils/schema.js +1 -3
- package/package.json +2 -2
- package/src/shared/ai/schemas.ts +1 -1
- package/src/shared/ai/types.ts +2 -2
- package/src/shared/bricks/manifests/card.manifest.ts +25 -168
- package/src/shared/bricks/manifests/hero.manifest.ts +44 -249
- package/src/shared/bricks/manifests/html.manifest.ts +6 -0
- package/src/shared/bricks/manifests/icon.manifest.ts +1 -89
- package/src/shared/bricks/manifests/image.manifest.ts +0 -4
- package/src/shared/bricks/manifests/images-gallery.manifest.ts +8 -0
- package/src/shared/bricks/manifests/map.manifest.ts +9 -65
- package/src/shared/bricks/manifests/sidebar.manifest.ts +0 -1
- package/src/shared/bricks/manifests/social-links.manifest.ts +0 -1
- package/src/shared/bricks/manifests/spacer.manifest.ts +0 -1
- package/src/shared/bricks/manifests/table.manifest.ts +6 -0
- package/src/shared/bricks/manifests/tabs.manifest.ts +12 -429
- package/src/shared/bricks/manifests/testimonials.manifest.ts +28 -226
- package/src/shared/bricks/manifests/text.manifest.ts +16 -44
- package/src/shared/bricks/props/background.ts +2 -1
- package/src/shared/bricks/props/color.ts +5 -2
- package/src/shared/bricks/props/common.ts +2 -8
- package/src/shared/bricks/props/grow.ts +11 -0
- package/src/shared/bricks/props/image.ts +40 -0
- package/src/shared/bricks/props/string.ts +2 -0
- package/src/shared/bricks.ts +33 -23
- package/src/shared/page.ts +1 -0
- package/src/shared/site.ts +1 -0
- package/src/shared/utils/schema.ts +28 -18
- package/src/shared/utils/tests/schema.test.ts +211 -4
- package/dist/shared/chunk-6AE7UD73.js.map +0 -1
- package/dist/shared/chunk-BZTWZC77.js.map +0 -1
- package/dist/shared/chunk-DRQKKPTX.js.map +0 -1
- package/dist/shared/chunk-H6TMBELF.js.map +0 -1
- package/dist/shared/chunk-HUWMIXNN.js +0 -570
- package/dist/shared/chunk-HUWMIXNN.js.map +0 -1
- package/dist/shared/chunk-HY7JOP3J.js.map +0 -1
- package/dist/shared/chunk-JF52BBFD.js.map +0 -1
- package/dist/shared/chunk-JLDAS3VE.js.map +0 -1
- package/dist/shared/chunk-JSDKK5QN.js.map +0 -1
- package/dist/shared/chunk-JW7MQAU4.js.map +0 -1
- package/dist/shared/chunk-LGGPCCCY.js.map +0 -1
- package/dist/shared/chunk-MYOLWTB2.js.map +0 -1
- package/dist/shared/chunk-O24RDXZS.js +0 -505
- package/dist/shared/chunk-O24RDXZS.js.map +0 -1
- package/dist/shared/chunk-PF75LW33.js.map +0 -1
- package/dist/shared/chunk-QEJGPYTB.js +0 -462
- package/dist/shared/chunk-QEJGPYTB.js.map +0 -1
- package/dist/shared/chunk-SK2O7GFC.js.map +0 -1
- package/dist/shared/chunk-SQXZNGQF.js.map +0 -1
- package/dist/shared/chunk-U4KZUX37.js.map +0 -1
- package/dist/shared/chunk-VSLRTXLF.js.map +0 -1
- package/dist/shared/chunk-W2RFDII5.js.map +0 -1
- package/dist/shared/chunk-XXPSM6UA.js.map +0 -1
- /package/dist/shared/{chunk-7U5WPHXB.js.map → chunk-34IUWNRX.js.map} +0 -0
- /package/dist/shared/{chunk-T6C3NG2L.js.map → chunk-5HJT5NJ3.js.map} +0 -0
- /package/dist/shared/{chunk-XK2CERPB.js.map → chunk-5SNSUC6Q.js.map} +0 -0
- /package/dist/shared/{chunk-J45LSQT6.js.map → chunk-GNTJT7MR.js.map} +0 -0
- /package/dist/shared/{chunk-KQH6V22E.js.map → chunk-IPWYNE6Y.js.map} +0 -0
- /package/dist/shared/{chunk-TBT2PTGB.js.map → chunk-KRODRZNS.js.map} +0 -0
- /package/dist/shared/{chunk-ZVJNRKT4.js.map → chunk-ORIUCOED.js.map} +0 -0
- /package/dist/shared/{chunk-LGDDJJHK.js.map → chunk-PFZMRSHJ.js.map} +0 -0
- /package/dist/shared/{chunk-LPAQ47C6.js.map → chunk-RDOCVLCF.js.map} +0 -0
- /package/dist/shared/{chunk-FUUSAMN3.js.map → chunk-TGKNA2JS.js.map} +0 -0
- /package/dist/shared/{chunk-VTCHJT4O.js.map → chunk-UC75KRLX.js.map} +0 -0
- /package/dist/shared/{chunk-4KY7OZWD.js.map → chunk-VMIJ6MG5.js.map} +0 -0
- /package/dist/shared/{chunk-SRYBJ6NQ.js.map → chunk-VYA2FCTY.js.map} +0 -0
- /package/dist/shared/{chunk-FHA4DFIM.js.map → chunk-ZYQZUWF7.js.map} +0 -0
- /package/dist/shared/{chunk-2O5HVPID.js.map → chunk-ZZVYD4BG.js.map} +0 -0
|
@@ -3,31 +3,34 @@
|
|
|
3
3
|
import {
|
|
4
4
|
border,
|
|
5
5
|
rounding
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VYA2FCTY.js";
|
|
7
7
|
import {
|
|
8
8
|
defineProps
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import {
|
|
11
|
-
textContent
|
|
12
|
-
} from "./chunk-2U5U3CCJ.js";
|
|
9
|
+
} from "./chunk-UC75KRLX.js";
|
|
13
10
|
import {
|
|
14
11
|
image
|
|
15
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2Z5WOCFS.js";
|
|
16
13
|
import {
|
|
17
|
-
|
|
18
|
-
} from "./chunk-
|
|
14
|
+
shadow
|
|
15
|
+
} from "./chunk-5RCC2STG.js";
|
|
19
16
|
import {
|
|
20
17
|
loop
|
|
21
18
|
} from "./chunk-XFZQGRRL.js";
|
|
22
19
|
import {
|
|
23
|
-
|
|
24
|
-
} from "./chunk-
|
|
20
|
+
urlOrPageId
|
|
21
|
+
} from "./chunk-FYGFB5U5.js";
|
|
22
|
+
import {
|
|
23
|
+
textContent
|
|
24
|
+
} from "./chunk-2U5U3CCJ.js";
|
|
25
25
|
import {
|
|
26
26
|
colorPreset
|
|
27
27
|
} from "./chunk-IEMCCHM4.js";
|
|
28
|
+
import {
|
|
29
|
+
grow
|
|
30
|
+
} from "./chunk-2EOCK66Z.js";
|
|
28
31
|
import {
|
|
29
32
|
defineBrickManifest
|
|
30
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-GNTJT7MR.js";
|
|
31
34
|
import {
|
|
32
35
|
StringEnum
|
|
33
36
|
} from "./chunk-GDYCCB3B.js";
|
|
@@ -38,23 +41,17 @@ import { Type } from "@sinclair/typebox";
|
|
|
38
41
|
var manifest = defineBrickManifest({
|
|
39
42
|
type: "card",
|
|
40
43
|
name: "Card",
|
|
41
|
-
description: "A card that can have a title, image, and
|
|
42
|
-
aiInstructions: `Use this brick to create visually distinct content blocks (product, feature,
|
|
44
|
+
description: "A card that can have a title, image, content, and button.",
|
|
45
|
+
aiInstructions: `Use this brick to create visually distinct content blocks (product, feature, event, article, blog post, etc.).
|
|
43
46
|
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
- Always provide a short action label (1-3 words) and pick a color matching semantic weight (primary/accent for primary actions, neutral/secondary for low emphasis).
|
|
47
|
-
- Image is OPTIONAL. If present you may set imagePosition to top | middle | bottom. Default is top.
|
|
48
|
-
- Pick middle for vertically centered feature highlights, bottom for caption-first layouts.
|
|
47
|
+
Guidelines:
|
|
48
|
+
- Always provide a short button label (1-3 words) and pick a color matching semantic weight (primary/accent for primary actions, neutral/secondary for low emphasis).
|
|
49
49
|
- Set noTitle: true when the card is intentionally title-less (e.g. a quote card or pure media focus).
|
|
50
|
-
- Do NOT include an empty title string alongside noTitle.
|
|
51
50
|
- Use dynamic tokens (e.g. {{products.price}}) instead of duplicating literal values.
|
|
52
|
-
- Prefer gradient presets for more visual emphasis (e.g. primary-gradient-400 with gradientDirection).
|
|
53
51
|
- border + rounding + shadow should be cohesive: stronger borders pair well with larger rounding + moderate shadow; minimal / flat cards may use border-0 + no shadow.
|
|
54
|
-
- For internal navigation
|
|
55
|
-
- Keep HTML inside text minimal (<strong>, <em>, <br>) \u2014 for richer structure consider multiple bricks instead.
|
|
56
|
-
- Avoid mixing noTitle with large heading text embedded inside the text field \u2014 in that case keep a proper title
|
|
57
|
-
- Return ONLY valid properties defined in the schema; do not invent new ones.`,
|
|
52
|
+
- For internal navigation, always supply a page ID (e.g. 'about') instead of a full URL. Use placeholders like {{page.$slug}} for dynamic page links.
|
|
53
|
+
- Keep HTML inside text minimal (<strong>, <em>, <br>, <p>) \u2014 for richer structure consider multiple bricks instead.
|
|
54
|
+
- Avoid mixing noTitle with large heading text embedded inside the text field \u2014 in that case keep a proper title.`,
|
|
58
55
|
icon: BsCardText,
|
|
59
56
|
defaultWidth: { desktop: "400px", mobile: "100%" },
|
|
60
57
|
minWidth: { desktop: 300 },
|
|
@@ -142,6 +139,11 @@ var manifest = defineBrickManifest({
|
|
|
142
139
|
)
|
|
143
140
|
},
|
|
144
141
|
{ title: "Button", description: "Button displayed at the bottom of the card" }
|
|
142
|
+
),
|
|
143
|
+
grow: Type.Optional(
|
|
144
|
+
grow({
|
|
145
|
+
default: true
|
|
146
|
+
})
|
|
145
147
|
)
|
|
146
148
|
})
|
|
147
149
|
});
|
|
@@ -206,7 +208,7 @@ var examples = [
|
|
|
206
208
|
},
|
|
207
209
|
// INTERNAL PAGE ID LINK VARIANT
|
|
208
210
|
{
|
|
209
|
-
description: "Internal navigation card using a page ID
|
|
211
|
+
description: "Internal navigation card using a page ID for the button URL (page id = 'about')",
|
|
210
212
|
type: "card",
|
|
211
213
|
props: {
|
|
212
214
|
title: "About Our Mission",
|
|
@@ -218,7 +220,7 @@ var examples = [
|
|
|
218
220
|
},
|
|
219
221
|
// GRADIENT & STRONG BORDER VARIANT
|
|
220
222
|
{
|
|
221
|
-
description: "High-emphasis promotional card using gradient background and thick border",
|
|
223
|
+
description: "High-emphasis promotional card using gradient background and thick border, linking to the page with id 'pricing-page'",
|
|
222
224
|
type: "card",
|
|
223
225
|
props: {
|
|
224
226
|
title: "Limited Time Offer",
|
|
@@ -227,37 +229,23 @@ var examples = [
|
|
|
227
229
|
border: { width: "border-4", color: "border-primary-400" },
|
|
228
230
|
rounding: "rounded-xl",
|
|
229
231
|
shadow: "shadow-lg",
|
|
230
|
-
button: { label: "Upgrade", url: "
|
|
232
|
+
button: { label: "Upgrade", url: "pricing-page", color: "btn-accent" }
|
|
231
233
|
}
|
|
232
234
|
},
|
|
233
235
|
// MINIMAL / FLAT VARIANT (no border, no shadow, subtle preset)
|
|
234
236
|
{
|
|
235
|
-
description: "Minimal flat information card (border-0, no shadow)",
|
|
237
|
+
description: "Minimal flat information card (border-0, no shadow) linking to the page with id 'status-page'",
|
|
236
238
|
type: "card",
|
|
237
239
|
props: {
|
|
238
240
|
title: "Maintenance Window",
|
|
239
241
|
text: "Scheduled maintenance on Saturday 02:00\u201303:00 UTC. API responses may be delayed.",
|
|
240
242
|
colorPreset: { color: "neutral-50" },
|
|
241
243
|
border: { width: "border-0", color: "border-neutral-200" },
|
|
242
|
-
button: { label: "Status Page", url: "
|
|
244
|
+
button: { label: "Status Page", url: "status-page", color: "btn-neutral" }
|
|
243
245
|
}
|
|
244
246
|
},
|
|
245
|
-
// DARK / INVERTED VARIANT
|
|
246
247
|
{
|
|
247
|
-
description: "
|
|
248
|
-
type: "card",
|
|
249
|
-
props: {
|
|
250
|
-
title: "Night Mode Preview",
|
|
251
|
-
text: "Experience the new adaptive dark theme optimized for low ambient light environments.",
|
|
252
|
-
colorPreset: { color: "primary-800" },
|
|
253
|
-
border: { width: "border", color: "border-primary-600" },
|
|
254
|
-
rounding: "rounded-lg",
|
|
255
|
-
shadow: "shadow-md",
|
|
256
|
-
button: { label: "Preview", url: "/themes/dark", color: "btn-primary" }
|
|
257
|
-
}
|
|
258
|
-
},
|
|
259
|
-
{
|
|
260
|
-
description: "Feature card with large padding and background",
|
|
248
|
+
description: "Feature card with large padding and background, linking to a dynamic product page",
|
|
261
249
|
type: "card",
|
|
262
250
|
props: {
|
|
263
251
|
title: "Key Feature",
|
|
@@ -268,13 +256,13 @@ var examples = [
|
|
|
268
256
|
shadow: "shadow-sm",
|
|
269
257
|
button: {
|
|
270
258
|
label: "Discover More",
|
|
271
|
-
url: "/
|
|
259
|
+
url: "/product/{{ product.$slug }}",
|
|
272
260
|
color: "btn-primary"
|
|
273
261
|
}
|
|
274
262
|
}
|
|
275
263
|
},
|
|
276
264
|
{
|
|
277
|
-
description: "Blog post card with image at the bottom",
|
|
265
|
+
description: "Blog post card with image at the bottom, linking to a dynamic blog post",
|
|
278
266
|
type: "card",
|
|
279
267
|
props: {
|
|
280
268
|
title: "Future of Tech",
|
|
@@ -287,66 +275,9 @@ var examples = [
|
|
|
287
275
|
label: "Read More",
|
|
288
276
|
url: "/blog/{{ blogPosts.$slug }}",
|
|
289
277
|
color: "btn-primary"
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
},
|
|
293
|
-
{
|
|
294
|
-
description: "Minimal centered card without image",
|
|
295
|
-
type: "card",
|
|
296
|
-
props: {
|
|
297
|
-
title: "Simple Announcement",
|
|
298
|
-
text: "Important updates will be posted here regularly.",
|
|
299
|
-
button: {
|
|
300
|
-
label: "View Updates",
|
|
301
|
-
url: "/updates",
|
|
302
|
-
color: "btn-neutral"
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
},
|
|
306
|
-
{
|
|
307
|
-
description: "Event card with multiple variants",
|
|
308
|
-
type: "card",
|
|
309
|
-
props: {
|
|
310
|
-
cardImage: {
|
|
311
|
-
src: "https://via.placeholder.com/400x250",
|
|
312
|
-
alt: "Event venue"
|
|
313
|
-
},
|
|
314
|
-
title: "Annual Conference 2025",
|
|
315
|
-
text: "Join us for three days of inspiring talks, networking opportunities, and hands-on workshops.",
|
|
316
|
-
button: {
|
|
317
|
-
label: "Register Now",
|
|
318
|
-
url: "/events/conference-2025",
|
|
319
|
-
color: "btn-primary"
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
},
|
|
323
|
-
{
|
|
324
|
-
description: "News article card with compact layout",
|
|
325
|
-
type: "card",
|
|
326
|
-
props: {
|
|
327
|
-
cardImage: {
|
|
328
|
-
src: "https://via.placeholder.com/120x120",
|
|
329
|
-
alt: "News thumbnail"
|
|
330
278
|
},
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
button: {
|
|
334
|
-
label: "Read Full Article",
|
|
335
|
-
url: "/news/breaking-update",
|
|
336
|
-
color: "btn-secondary"
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
description: "Call-to-action card with prominent styling",
|
|
342
|
-
type: "card",
|
|
343
|
-
props: {
|
|
344
|
-
title: "Get Started Today",
|
|
345
|
-
text: "Transform your workflow with our powerful tools. Sign up now and get 30 days free!",
|
|
346
|
-
button: {
|
|
347
|
-
label: "Sign Up Now",
|
|
348
|
-
url: "/signup",
|
|
349
|
-
color: "btn-primary"
|
|
279
|
+
loop: {
|
|
280
|
+
over: "blogPosts"
|
|
350
281
|
}
|
|
351
282
|
}
|
|
352
283
|
},
|
|
@@ -447,79 +378,6 @@ var examples = [
|
|
|
447
378
|
over: "upcomingEvents"
|
|
448
379
|
}
|
|
449
380
|
}
|
|
450
|
-
},
|
|
451
|
-
{
|
|
452
|
-
description: "Testimonial card using customerReviews query with ratings",
|
|
453
|
-
type: "card",
|
|
454
|
-
props: {
|
|
455
|
-
cardImage: {
|
|
456
|
-
src: "{{customerReviews.customerPhoto}}",
|
|
457
|
-
alt: "{{customerReviews.customerName}}"
|
|
458
|
-
},
|
|
459
|
-
imagePosition: "top",
|
|
460
|
-
title: "{{customerReviews.customerName}}",
|
|
461
|
-
text: '"{{customerReviews.review}}"<br><br><strong>Rating: {{customerReviews.rating}}/5 stars</strong><br>{{customerReviews.company}} \u2022 {{customerReviews.position}}',
|
|
462
|
-
colorPreset: { color: "neutral-50" },
|
|
463
|
-
rounding: "rounded-xl",
|
|
464
|
-
shadow: "shadow-lg",
|
|
465
|
-
button: {
|
|
466
|
-
label: "See All Reviews",
|
|
467
|
-
url: "/reviews",
|
|
468
|
-
color: "btn-neutral"
|
|
469
|
-
},
|
|
470
|
-
loop: {
|
|
471
|
-
over: "customerReviews"
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
},
|
|
475
|
-
{
|
|
476
|
-
description: "Service offering card using companyServices query with pricing tiers",
|
|
477
|
-
type: "card",
|
|
478
|
-
props: {
|
|
479
|
-
cardImage: {
|
|
480
|
-
src: "{{companyServices.icon}}",
|
|
481
|
-
alt: "{{companyServices.serviceName}}"
|
|
482
|
-
},
|
|
483
|
-
imagePosition: "top",
|
|
484
|
-
title: "{{companyServices.serviceName}}",
|
|
485
|
-
text: "{{companyServices.description}}<br><br><strong>Starting at ${{companyServices.startingPrice}}</strong><br>Duration: {{companyServices.duration}}<br>Includes: {{companyServices.features}}",
|
|
486
|
-
colorPreset: { color: "primary-100" },
|
|
487
|
-
border: { width: "border", color: "border-primary-300" },
|
|
488
|
-
rounding: "rounded-lg",
|
|
489
|
-
shadow: "shadow-md",
|
|
490
|
-
button: {
|
|
491
|
-
label: "Learn More",
|
|
492
|
-
url: "{{companyServices.detailsUrl}}",
|
|
493
|
-
color: "btn-primary"
|
|
494
|
-
},
|
|
495
|
-
loop: {
|
|
496
|
-
over: "companyServices"
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
},
|
|
500
|
-
{
|
|
501
|
-
description: "Portfolio project card using portfolioWork query with project details",
|
|
502
|
-
type: "card",
|
|
503
|
-
props: {
|
|
504
|
-
cardImage: {
|
|
505
|
-
src: "{{portfolioWork.thumbnail}}",
|
|
506
|
-
alt: "{{portfolioWork.projectName}}"
|
|
507
|
-
},
|
|
508
|
-
imagePosition: "top",
|
|
509
|
-
title: "{{portfolioWork.projectName}}",
|
|
510
|
-
text: "<strong>Client:</strong> {{portfolioWork.clientName}}<br><strong>Year:</strong> {{portfolioWork.year}}<br><strong>Category:</strong> {{portfolioWork.category}}<br><br>{{portfolioWork.description}}",
|
|
511
|
-
colorPreset: { color: "secondary-100" },
|
|
512
|
-
rounding: "rounded-md",
|
|
513
|
-
shadow: "shadow-sm",
|
|
514
|
-
button: {
|
|
515
|
-
label: "View Project",
|
|
516
|
-
url: "{{portfolioWork.projectUrl}}",
|
|
517
|
-
color: "btn-secondary"
|
|
518
|
-
},
|
|
519
|
-
loop: {
|
|
520
|
-
over: "portfolioWork"
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
381
|
}
|
|
524
382
|
];
|
|
525
383
|
|
|
@@ -527,4 +385,4 @@ export {
|
|
|
527
385
|
manifest,
|
|
528
386
|
examples
|
|
529
387
|
};
|
|
530
|
-
//# sourceMappingURL=chunk-
|
|
388
|
+
//# sourceMappingURL=chunk-5J4Y43RM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/manifests/card.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { textContent } from \"../props/text\";\nimport { BsCardText } from \"react-icons/bs\";\nimport { image } from \"../props/image\";\nimport { type Static, Type } from \"@sinclair/typebox\";\nimport type { BrickProps } from \"../props/types\";\nimport { shadow } from \"../props/effects\";\nimport { border, rounding } from \"../props/border\";\nimport { colorPreset } from \"../props/color-preset\";\nimport { loop } from \"../props/dynamic\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { urlOrPageId } from \"../props/string\";\nimport type { BrickExample } from \"./_types\";\nimport { grow } from \"../props/grow\";\n\nexport const manifest = defineBrickManifest({\n type: \"card\",\n name: \"Card\",\n description: \"A card that can have a title, image, content, and button.\",\n aiInstructions: `Use this brick to create visually distinct content blocks (product, feature, event, article, blog post, etc.).\n\nGuidelines:\n- Always provide a short button label (1-3 words) and pick a color matching semantic weight (primary/accent for primary actions, neutral/secondary for low emphasis).\n- Set noTitle: true when the card is intentionally title-less (e.g. a quote card or pure media focus).\n- Use dynamic tokens (e.g. {{products.price}}) instead of duplicating literal values.\n- border + rounding + shadow should be cohesive: stronger borders pair well with larger rounding + moderate shadow; minimal / flat cards may use border-0 + no shadow.\n- For internal navigation, always supply a page ID (e.g. 'about') instead of a full URL. Use placeholders like {{page.$slug}} for dynamic page links.\n- Keep HTML inside text minimal (<strong>, <em>, <br>, <p>) — for richer structure consider multiple bricks instead.\n- Avoid mixing noTitle with large heading text embedded inside the text field — in that case keep a proper title.`,\n icon: BsCardText,\n defaultWidth: { desktop: \"400px\", mobile: \"100%\" },\n minWidth: { desktop: 300 },\n minHeight: { mobile: 200, desktop: 200 },\n maxWidth: { desktop: 650 },\n props: defineProps({\n colorPreset: Type.Optional(\n colorPreset({\n title: \"Color preset\",\n default: { color: \"base-100\" },\n }),\n ),\n cardImage: Type.Optional(\n image({\n \"ui:responsive\": \"desktop\",\n metadata: {\n category: \"content\",\n },\n }),\n ),\n imagePosition: Type.Optional(\n StringEnum([\"top\", \"middle\", \"bottom\"], {\n enumNames: [\"Top\", \"Middle\", \"Bottom\"],\n title: \"Image Position\",\n description: \"Where the image should be placed in the card\",\n default: \"top\",\n \"ui:responsive\": \"desktop\",\n metadata: {\n category: \"content\",\n filter: (manifestProps: Manifest[\"props\"], formData: Static<Manifest[\"props\"]>) => {\n return !!formData.cardImage?.src;\n },\n },\n }),\n ),\n noTitle: Type.Optional(\n Type.Boolean({\n title: \"No Title\",\n description: \"Whether to hide the card title\",\n default: false,\n \"ui:responsive\": \"desktop\",\n }),\n ),\n title: Type.Optional(textContent({ title: \"Title\" })),\n text: Type.Optional(textContent({ title: \"Text\" })),\n rounding: Type.Optional(\n rounding({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(\n border({\n // default: { width: \"border\", color: \"border-base-300\" },\n }),\n ),\n shadow: Type.Optional(\n shadow({\n default: \"shadow-sm\",\n }),\n ),\n loop: Type.Optional(loop()),\n button: Type.Object(\n {\n label: Type.String({\n title: \"Button label\",\n default: \"Click me\",\n examples: [\"Learn more\", \"Buy now\", \"Sign up\"],\n metadata: {\n category: \"content\",\n },\n }),\n url: urlOrPageId({\n title: \"Button URL\",\n description: \"The URL the button should link to.\",\n metadata: {\n category: \"content\",\n },\n }),\n color: Type.Optional(\n StringEnum([\"btn-neutral\", \"btn-primary\", \"btn-secondary\", \"btn-accent\"], {\n enumNames: [\"Neutral\", \"Primary\", \"Secondary\", \"Accent\"],\n title: \"Color\",\n default: \"btn-primary\",\n }),\n ),\n },\n { title: \"Button\", description: \"Button displayed at the bottom of the card\" },\n ),\n grow: Type.Optional(\n grow({\n default: true,\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"A simple card with a title and content\",\n type: \"card\",\n props: {\n title: \"Card Title\",\n text: \"This is the body of the card.\",\n button: {\n label: \"Learn more\",\n url: \"/learn-more\",\n color: \"btn-primary\",\n },\n },\n },\n // IMAGE POSITION MIDDLE VARIANT\n {\n description: \"Feature highlight card with centered image (imagePosition=middle)\",\n type: \"card\",\n props: {\n cardImage: { src: \"https://via.placeholder.com/420x240\", alt: \"Feature visual\" },\n imagePosition: \"middle\",\n title: \"Blazing Performance\",\n text: \"Our new engine reduces processing time by 45% while maintaining reliability.\",\n colorPreset: { color: \"primary-100\" },\n border: { width: \"border\", color: \"border-primary-200\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-sm\",\n button: { label: \"Learn More\", url: \"/features/performance\", color: \"btn-primary\" },\n },\n },\n // IMAGE POSITION BOTTOM VARIANT\n {\n description: \"Case study card with image at the bottom (imagePosition=bottom)\",\n type: \"card\",\n props: {\n title: \"Case Study: ScaleOps\",\n text: \"How ScaleOps handled 10x growth with zero downtime using our platform.\",\n cardImage: { src: \"https://via.placeholder.com/600x260\", alt: \"Scale graph\" },\n imagePosition: \"bottom\",\n colorPreset: { color: \"secondary-50\" },\n rounding: \"rounded-md\",\n shadow: \"shadow-sm\",\n button: { label: \"Read Study\", url: \"/cases/scaleops\", color: \"btn-secondary\" },\n },\n },\n // NO TITLE VARIANT\n {\n description: \"Quote / testimonial style card without a title (uses noTitle=true)\",\n type: \"card\",\n props: {\n noTitle: true,\n text: '\"This toolkit accelerated our launch by weeks — the component quality is outstanding.\"<br><em>— CTO, FinEdge</em>',\n colorPreset: { color: \"neutral-100\" },\n border: { width: \"border\", color: \"border-neutral-300\" },\n rounding: \"rounded-xl\",\n shadow: \"shadow-sm\",\n button: { label: \"See More\", url: \"/testimonials\", color: \"btn-neutral\" },\n },\n },\n // INTERNAL PAGE ID LINK VARIANT\n {\n description: \"Internal navigation card using a page ID for the button URL (page id = 'about')\",\n type: \"card\",\n props: {\n title: \"About Our Mission\",\n text: \"Learn how we're building an open, extensible site generation platform for modern teams.\",\n colorPreset: { color: \"base-100\" },\n rounding: \"rounded-md\",\n button: { label: \"About Us\", url: \"about\", color: \"btn-primary\" },\n },\n },\n // GRADIENT & STRONG BORDER VARIANT\n {\n description:\n \"High-emphasis promotional card using gradient background and thick border, linking to the page with id 'pricing-page'\",\n type: \"card\",\n props: {\n title: \"Limited Time Offer\",\n text: \"Upgrade now and receive a complimentary strategy session plus extended analytics access.\",\n colorPreset: { color: \"primary-gradient-400\", gradientDirection: \"bg-gradient-to-tr\" },\n border: { width: \"border-4\", color: \"border-primary-400\" },\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n button: { label: \"Upgrade\", url: \"pricing-page\", color: \"btn-accent\" },\n },\n },\n // MINIMAL / FLAT VARIANT (no border, no shadow, subtle preset)\n {\n description:\n \"Minimal flat information card (border-0, no shadow) linking to the page with id 'status-page'\",\n type: \"card\",\n props: {\n title: \"Maintenance Window\",\n text: \"Scheduled maintenance on Saturday 02:00–03:00 UTC. API responses may be delayed.\",\n colorPreset: { color: \"neutral-50\" },\n border: { width: \"border-0\", color: \"border-neutral-200\" },\n button: { label: \"Status Page\", url: \"status-page\", color: \"btn-neutral\" },\n },\n },\n {\n description: \"Feature card with large padding and background, linking to a dynamic product page\",\n type: \"card\",\n props: {\n title: \"Key Feature\",\n text: \"This feature provides exceptional value and enhances user experience significantly.\",\n colorPreset: { color: \"primary-50\" },\n border: { width: \"border\", color: \"border-primary-200\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-sm\",\n button: {\n label: \"Discover More\",\n url: \"/product/{{ product.$slug }}\",\n color: \"btn-primary\",\n },\n },\n },\n {\n description: \"Blog post card with image at the bottom, linking to a dynamic blog post\",\n type: \"card\",\n props: {\n title: \"Future of Tech\",\n text: \"Exploring emerging trends and innovations that will shape our digital landscape in the coming decade.\",\n cardImage: {\n src: \"https://via.placeholder.com/400x200\",\n alt: \"Technology concept\",\n },\n button: {\n label: \"Read More\",\n url: \"/blog/{{ blogPosts.$slug }}\",\n color: \"btn-primary\",\n },\n loop: {\n over: \"blogPosts\",\n },\n },\n },\n {\n description: \"Dynamic product card using products query with pricing and details\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{products.image}}\",\n alt: \"{{products.name}}\",\n },\n title: \"{{products.name}}\",\n text: \"{{products.description}}<br><strong>Price: ${{products.price}}</strong><br>Category: {{products.category}}\",\n colorPreset: { color: \"primary-50\" },\n border: { width: \"border\", color: \"border-primary-200\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n button: {\n label: \"Buy Now\",\n url: \"{{products.purchaseUrl}}\",\n color: \"btn-primary\",\n },\n loop: {\n over: \"products\",\n },\n },\n },\n {\n description: \"Employee profile card using teamMembers query with contact information\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{teamMembers.photo}}\",\n alt: \"Photo of {{teamMembers.fullName}}\",\n },\n imagePosition: \"top\",\n title: \"{{teamMembers.fullName}}\",\n text: \"<strong>{{teamMembers.position}}</strong><br>{{teamMembers.department}}<br>Email: {{teamMembers.email}}<br>Phone: {{teamMembers.phone}}\",\n colorPreset: { color: \"neutral-100\" },\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n button: {\n label: \"Contact\",\n url: \"mailto:{{teamMembers.email}}\",\n color: \"btn-neutral\",\n },\n loop: {\n over: \"teamMembers\",\n },\n },\n },\n {\n description: \"Blog post card using blogPosts query with author and date\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{blogPosts.featuredImage}}\",\n alt: \"{{blogPosts.title}}\",\n },\n imagePosition: \"top\",\n title: \"{{blogPosts.title}}\",\n text: \"{{blogPosts.excerpt}}<br><br><em>By {{blogPosts.author}} • {{blogPosts.publishDate}}</em><br>Tags: {{blogPosts.tags}}\",\n colorPreset: { color: \"secondary-50\" },\n border: { width: \"border\", color: \"border-secondary-300\" },\n rounding: \"rounded-md\",\n shadow: \"shadow-sm\",\n button: {\n label: \"Read More\",\n url: \"{{blogPosts.url}}\",\n color: \"btn-secondary\",\n },\n loop: {\n over: \"blogPosts\",\n },\n },\n },\n {\n description: \"Event listing card using upcomingEvents query with venue details\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{upcomingEvents.banner}}\",\n alt: \"{{upcomingEvents.title}}\",\n },\n imagePosition: \"top\",\n title: \"{{upcomingEvents.title}}\",\n text: \"<strong>{{upcomingEvents.date}} at {{upcomingEvents.time}}</strong><br>{{upcomingEvents.venue}}, {{upcomingEvents.city}}<br><br>{{upcomingEvents.description}}<br><br>Tickets: ${{upcomingEvents.price}}\",\n colorPreset: { color: \"accent-100\" },\n border: { width: \"border-2\", color: \"border-accent-400\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n button: {\n label: \"Book Tickets\",\n url: \"{{upcomingEvents.ticketUrl}}\",\n color: \"btn-accent\",\n },\n loop: {\n over: \"upcomingEvents\",\n },\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -43,7 +43,8 @@ function backgroundColor(options = {}) {
|
|
|
43
43
|
return Type.String({
|
|
44
44
|
title: "Background color",
|
|
45
45
|
// $id: "styles:backgroundColor",
|
|
46
|
-
"ai:instructions": "
|
|
46
|
+
"ai:instructions": "Must be formated like `bg-<variant>-<shade>`, variants being primary, secondary, accent and neutral, or base and shades between 100 and 900, except the base with takes shades betwen 100 and 300 only.",
|
|
47
|
+
pattern: "^bg-(primary|secondary|accent|neutral|base)-?(50|100|200|300|400|500|600|700|800|900)?$",
|
|
47
48
|
"ui:field": "color",
|
|
48
49
|
"ui:color-type": "background",
|
|
49
50
|
// "ui:advanced": true,
|
|
@@ -57,4 +58,4 @@ export {
|
|
|
57
58
|
background,
|
|
58
59
|
backgroundColor
|
|
59
60
|
};
|
|
60
|
-
//# sourceMappingURL=chunk-
|
|
61
|
+
//# sourceMappingURL=chunk-5OVOXUFX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/props/background.ts"],"sourcesContent":["import { type SchemaOptions, Type, type Static } from \"@sinclair/typebox\";\nimport type { ElementColorType } from \"~/shared/themes/color-system\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\n\ntype BackgroundOptions = {\n title?: string;\n default?: {\n image?: string;\n size?: string;\n repeat?: string;\n };\n colorType?: ElementColorType;\n};\n\nexport function background(opts: BackgroundOptions = {}) {\n return Type.Object(\n {\n image: Type.String({\n title: \"Image\",\n description: \"The background image. Can be a URL or a data URI\",\n format: \"image\",\n examples: [\"https://example.com/image.png\"],\n }),\n size: Type.Optional(\n StringEnum([\"auto\", \"cover\", \"contain\"], {\n enumNames: [\"Auto\", \"Cover\", \"Contain\"],\n \"ai:instructions\": \"Only use this when the image is set.\",\n }),\n ),\n repeat: Type.Optional(\n StringEnum([\"no-repeat\", \"repeat\", \"repeat-x\", \"repeat-y\", \"space\", \"round\"], {\n enumNames: [\"No repeat\", \"Repeat\", \"Repeat horizontally\", \"Repeat vertically\", \"Space\", \"Round\"],\n \"ai:instructions\": \"Only use this when the image is set.\",\n }),\n ),\n },\n {\n // $id: \"styles:background\",\n \"ui:styleId\": \"styles:background\",\n \"ui:field\": \"background\",\n title: \"Background image\",\n // disable for now\n // \"ui:show-img-search\": true,\n ...opts,\n },\n );\n}\n\nexport type BackgroundSettings = Static<ReturnType<typeof background>>;\n\nexport function backgroundColor(options: SchemaOptions = {}) {\n return Type.String({\n title: \"Background color\",\n // $id: \"styles:backgroundColor\",\n \"ai:instructions\":\n \"
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/props/background.ts"],"sourcesContent":["import { type SchemaOptions, Type, type Static } from \"@sinclair/typebox\";\nimport type { ElementColorType } from \"~/shared/themes/color-system\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\n\ntype BackgroundOptions = {\n title?: string;\n default?: {\n image?: string;\n size?: string;\n repeat?: string;\n };\n colorType?: ElementColorType;\n};\n\nexport function background(opts: BackgroundOptions = {}) {\n return Type.Object(\n {\n image: Type.String({\n title: \"Image\",\n description: \"The background image. Can be a URL or a data URI\",\n format: \"image\",\n examples: [\"https://example.com/image.png\"],\n }),\n size: Type.Optional(\n StringEnum([\"auto\", \"cover\", \"contain\"], {\n enumNames: [\"Auto\", \"Cover\", \"Contain\"],\n \"ai:instructions\": \"Only use this when the image is set.\",\n }),\n ),\n repeat: Type.Optional(\n StringEnum([\"no-repeat\", \"repeat\", \"repeat-x\", \"repeat-y\", \"space\", \"round\"], {\n enumNames: [\"No repeat\", \"Repeat\", \"Repeat horizontally\", \"Repeat vertically\", \"Space\", \"Round\"],\n \"ai:instructions\": \"Only use this when the image is set.\",\n }),\n ),\n },\n {\n // $id: \"styles:background\",\n \"ui:styleId\": \"styles:background\",\n \"ui:field\": \"background\",\n title: \"Background image\",\n // disable for now\n // \"ui:show-img-search\": true,\n ...opts,\n },\n );\n}\n\nexport type BackgroundSettings = Static<ReturnType<typeof background>>;\n\nexport function backgroundColor(options: SchemaOptions = {}) {\n return Type.String({\n title: \"Background color\",\n // $id: \"styles:backgroundColor\",\n \"ai:instructions\":\n \"Must be formated like `bg-<variant>-<shade>`, variants being primary, secondary, accent and neutral, or base and shades between 100 and 900, except the base with takes shades betwen 100 and 300 only.\",\n pattern: \"^bg-(primary|secondary|accent|neutral|base)-?(50|100|200|300|400|500|600|700|800|900)?$\",\n \"ui:field\": \"color\",\n \"ui:color-type\": \"background\",\n // \"ui:advanced\": true,\n \"ui:styleId\": \"styles:backgroundColor\",\n \"ui:responsive\": \"desktop\",\n ...options,\n });\n}\n\nexport type BackgroundColorSettings = Static<ReturnType<typeof backgroundColor>>;\n"],"mappings":";;;;;;;AAAA,SAA6B,YAAyB;AAc/C,SAAS,WAAW,OAA0B,CAAC,GAAG;AACvD,SAAO,KAAK;AAAA,IACV;AAAA,MACE,OAAO,KAAK,OAAO;AAAA,QACjB,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,UAAU,CAAC,+BAA+B;AAAA,MAC5C,CAAC;AAAA,MACD,MAAM,KAAK;AAAA,QACT,WAAW,CAAC,QAAQ,SAAS,SAAS,GAAG;AAAA,UACvC,WAAW,CAAC,QAAQ,SAAS,SAAS;AAAA,UACtC,mBAAmB;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,MACA,QAAQ,KAAK;AAAA,QACX,WAAW,CAAC,aAAa,UAAU,YAAY,YAAY,SAAS,OAAO,GAAG;AAAA,UAC5E,WAAW,CAAC,aAAa,UAAU,uBAAuB,qBAAqB,SAAS,OAAO;AAAA,UAC/F,mBAAmB;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA;AAAA;AAAA,MAEE,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,OAAO;AAAA;AAAA;AAAA,MAGP,GAAG;AAAA,IACL;AAAA,EACF;AACF;AAIO,SAAS,gBAAgB,UAAyB,CAAC,GAAG;AAC3D,SAAO,KAAK,OAAO;AAAA,IACjB,OAAO;AAAA;AAAA,IAEP,mBACE;AAAA,IACF,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,iBAAiB;AAAA;AAAA,IAEjB,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
|
|
@@ -9,23 +9,23 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
border,
|
|
11
11
|
rounding
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VYA2FCTY.js";
|
|
13
13
|
import {
|
|
14
14
|
defineProps,
|
|
15
15
|
group
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-UC75KRLX.js";
|
|
17
17
|
import {
|
|
18
18
|
fontSize
|
|
19
19
|
} from "./chunk-2U5U3CCJ.js";
|
|
20
|
-
import {
|
|
21
|
-
cssLength
|
|
22
|
-
} from "./chunk-OJ6KL7FU.js";
|
|
23
20
|
import {
|
|
24
21
|
colorPreset
|
|
25
22
|
} from "./chunk-IEMCCHM4.js";
|
|
23
|
+
import {
|
|
24
|
+
cssLength
|
|
25
|
+
} from "./chunk-OJ6KL7FU.js";
|
|
26
26
|
import {
|
|
27
27
|
defineBrickManifest
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-GNTJT7MR.js";
|
|
29
29
|
import {
|
|
30
30
|
StringEnum
|
|
31
31
|
} from "./chunk-GDYCCB3B.js";
|
|
@@ -361,4 +361,4 @@ export {
|
|
|
361
361
|
manifest,
|
|
362
362
|
examples
|
|
363
363
|
};
|
|
364
|
-
//# sourceMappingURL=chunk-
|
|
364
|
+
//# sourceMappingURL=chunk-5SNSUC6Q.js.map
|
|
@@ -3,28 +3,28 @@
|
|
|
3
3
|
import {
|
|
4
4
|
border,
|
|
5
5
|
rounding
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VYA2FCTY.js";
|
|
7
7
|
import {
|
|
8
8
|
defineProps
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-UC75KRLX.js";
|
|
10
10
|
import {
|
|
11
11
|
image
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2Z5WOCFS.js";
|
|
13
13
|
import {
|
|
14
|
-
|
|
15
|
-
} from "./chunk-
|
|
14
|
+
shadow
|
|
15
|
+
} from "./chunk-5RCC2STG.js";
|
|
16
16
|
import {
|
|
17
17
|
loop
|
|
18
18
|
} from "./chunk-XFZQGRRL.js";
|
|
19
|
-
import {
|
|
20
|
-
shadow
|
|
21
|
-
} from "./chunk-5RCC2STG.js";
|
|
22
19
|
import {
|
|
23
20
|
colorPreset
|
|
24
21
|
} from "./chunk-IEMCCHM4.js";
|
|
22
|
+
import {
|
|
23
|
+
cssLength
|
|
24
|
+
} from "./chunk-OJ6KL7FU.js";
|
|
25
25
|
import {
|
|
26
26
|
defineBrickManifest
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-GNTJT7MR.js";
|
|
28
28
|
|
|
29
29
|
// src/shared/bricks/manifests/image.manifest.ts
|
|
30
30
|
import { RxImage } from "react-icons/rx";
|
|
@@ -40,10 +40,6 @@ Display a single image with optional framing (padding, rounding, border, shadow,
|
|
|
40
40
|
REQUIRED
|
|
41
41
|
\u2022 'image.src' and 'image.alt' (alt must be meaningful, not empty; may interpolate page queries fields).
|
|
42
42
|
|
|
43
|
-
COLOR & BACKGROUND
|
|
44
|
-
\u2022 colorPreset is optional \u2013 use when you need a frame or tone behind the image (neutral / accent / primary / secondary / base or gradient variants). Omit to keep a transparent/inherited background.
|
|
45
|
-
\u2022 Only use gradientDirection when the preset is a gradient token (e.g. primary-gradient-400).
|
|
46
|
-
|
|
47
43
|
STYLING
|
|
48
44
|
\u2022 padding should be a single css length value (like '1rem' or '0.75rem').
|
|
49
45
|
\u2022 rounding defaults to a modest radius; override for circular avatars (rounded-full) or strong accent (rounded-xl).
|
|
@@ -495,4 +491,4 @@ export {
|
|
|
495
491
|
manifest,
|
|
496
492
|
examples
|
|
497
493
|
};
|
|
498
|
-
//# sourceMappingURL=chunk-
|
|
494
|
+
//# sourceMappingURL=chunk-B5T2LFV2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/manifests/image.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { image } from \"../props/image\";\nimport { shadow } from \"../props/effects\";\nimport { RxImage } from \"react-icons/rx\";\nimport { Type } from \"@sinclair/typebox\";\nimport type { BrickProps } from \"../props/types\";\nimport { border, rounding } from \"../props/border\";\nimport { loop } from \"../props/dynamic\";\nimport { cssLength } from \"../props/css-length\";\nimport { colorPreset } from \"../props/color-preset\";\n\nexport const manifest = defineBrickManifest({\n type: \"image\",\n name: \"Image\",\n category: \"media\",\n description: \"An image brick\",\n aiInstructions: `PURPOSE\nDisplay a single image with optional framing (padding, rounding, border, shadow, colorPreset) and attribution (author/provider). Can also loop over a dataset showing one image per item.\n\nREQUIRED\n• 'image.src' and 'image.alt' (alt must be meaningful, not empty; may interpolate page queries fields).\n\nSTYLING\n• padding should be a single css length value (like '1rem' or '0.75rem').\n• rounding defaults to a modest radius; override for circular avatars (rounded-full) or strong accent (rounded-xl).\n• border optional: keep subtle (border / border-2) unless emphasis required.\n• Use shadow sparingly (shadow-sm / shadow-md); large (shadow-xl) for hero or banner impact.\n\nATTRIBUTION\n• If using external photography include author { name, url } and provider (e.g. 'unsplash'). Omit provider if internal asset.\n\nDYNAMIC DATA\n• Interpolate dataset fields with {{dataset.field}} in src and alt.\n• For lists: use loop.over = \"datasetName\". Provide exactly one example object (this component itself) when looping (do not replicate multiple objects).\n\nRESPONSIVE\n• mobileProps may reduce padding or alter rounding only if it materially improves mobile layout. Always repeat required fields (image.src, image.alt) if providing mobileProps.\n\nDON'TS\n✗ Don't add unrelated props.\n✗ Don't fabricate color tokens (no success-, warning-, danger- etc.).\n✗ Don't use HTML markup inside alt.\n\nDO\n✓ Provide descriptive alt text (<125 chars) describing content or function.\n✓ Use semantic color presets consistently.\n✓ Add author/provider when you have them.\n`,\n defaultWidth: { desktop: \"auto\", mobile: \"100%\" },\n icon: RxImage,\n props: defineProps({\n image: image({\n metadata: {\n category: \"content\",\n },\n }),\n colorPreset: Type.Optional(colorPreset()),\n padding: Type.Optional(\n cssLength({\n description: \"Padding inside the image.\",\n title: \"Padding\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n rounding({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(border()),\n shadow: Type.Optional(shadow()),\n blurHash: Type.Optional(\n Type.String({\n title: \"Blur hash\",\n \"ui:field\": \"hidden\",\n description: \"A placeholder for the image while it is loading. Use a blur hash string.\",\n }),\n ),\n author: Type.Optional(\n Type.Object(\n {\n name: Type.String({\n title: \"Image Author\",\n description: \"Image author. Use this to give credit to the author\",\n }),\n url: Type.String({\n title: \"Image Author URL\",\n format: \"uri\",\n description: \"Image author URL. Use this to give credit to the author\",\n }),\n },\n {\n \"ui:field\": \"hidden\",\n },\n ),\n ),\n provider: Type.Optional(\n Type.String({\n title: \"Image Provider\",\n \"ui:field\": \"hidden\",\n \"ai:instructions\": \"The provider of the image, e.g. 'unsplash', 'pexels', etc.\",\n }),\n ),\n loop: Type.Optional(loop()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n mobileProps?: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Hero landscape image with large shadow\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/800x400.png?text=Hero+Landscape\",\n alt: \"Beautiful landscape view for hero section\",\n },\n shadow: \"shadow-lg\",\n },\n },\n {\n description: \"Framed image with accent gradient background and padding\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/640x360.png?text=Showcase\",\n alt: \"Showcase screenshot inside accent gradient frame\",\n },\n colorPreset: { color: \"accent-gradient-400\", gradientDirection: \"bg-gradient-to-br\" },\n padding: \"1rem\",\n rounding: \"rounded-xl\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Team member profile photo, full rounded\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Profile+Photo\",\n alt: \"Team member profile photo\",\n },\n shadow: \"shadow-md\",\n rounding: \"rounded-full\",\n },\n },\n {\n description: \"Product showcase image\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/400x400.png?text=Product+Image\",\n alt: \"Premium product showcase\",\n },\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Blog article featured image with medium shadow and full author info\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/600x300.png?text=Article+Featured\",\n alt: \"Featured image for blog article\",\n },\n author: {\n name: \"John Photographer\",\n url: \"https://example.com/john\",\n },\n provider: \"unsplash\",\n shadow: \"shadow-md\",\n },\n },\n\n {\n description: \"Logo image with padding and small shadow\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/200x80.png?text=Company+Logo\",\n alt: \"Company logo\",\n },\n padding: \"p-8\",\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Dark framed image with neutral-800 background and subtle border\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/500x300.png?text=Dark+Mode\",\n alt: \"Interface preview in dark mode\",\n },\n colorPreset: { color: \"neutral-800\" },\n padding: \"1rem\",\n border: { width: \"border\", color: \"border-neutral-700\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Testimonial customer photo with large shadow and small padding\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/120x120.png?text=Customer\",\n alt: \"Happy customer testimonial photo\",\n },\n shadow: \"shadow-lg\",\n padding: \"p-2\",\n },\n },\n {\n description: \"Event banner image with neutral-500 background\",\n type: \"image\",\n props: {\n colorPreset: { color: \"neutral-500\" },\n image: {\n src: \"https://via.placeholder.com/800x200.png?text=Event+Banner\",\n alt: \"Annual conference event banner\",\n },\n shadow: \"shadow-xl\",\n author: {\n name: \"Event Photographer\",\n url: \"https://example.com/photographer\",\n },\n provider: \"pexels\",\n },\n },\n {\n description: \"Illustration with background and padding\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/150x150.png?text=Blabla+Feature\",\n alt: \"Feature illustration\",\n },\n padding: \"p-8\",\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Image with blurHash\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/300x200.png?text=Card+Image\",\n alt: \"My image\",\n },\n shadow: \"shadow-md\",\n blurHash: \"L6PZfSi_.AyE_3t7t7R**0o#DgR4\",\n },\n },\n {\n description: \"Responsive image with reduced mobile padding\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/640x360.png?text=Responsive\",\n alt: \"Responsive framed screenshot\",\n },\n padding: \"2rem\",\n colorPreset: { color: \"primary-50\" },\n rounding: \"rounded-xl\",\n shadow: \"shadow-sm\",\n },\n mobileProps: {\n image: {\n src: \"https://via.placeholder.com/640x360.png?text=Responsive\",\n alt: \"Responsive framed screenshot\",\n },\n padding: \"1rem\",\n colorPreset: { color: \"primary-50\" },\n rounding: \"rounded-lg\",\n },\n },\n {\n description: \"Dynamic employee photo using employee query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{employee.photo}}\",\n alt: \"Photo of {{employee.fullName}}\",\n },\n rounding: \"rounded-full\",\n shadow: \"shadow-lg\",\n padding: \"1rem\",\n },\n },\n {\n description: \"Dynamic product image using product query with author attribution\",\n type: \"image\",\n props: {\n image: {\n src: \"{{product.featuredImage}}\",\n alt: \"{{product.name}} - {{product.category}}\",\n },\n author: {\n name: \"{{product.photographer}}\",\n url: \"{{product.photographerUrl}}\",\n },\n provider: \"company-assets\",\n shadow: \"shadow-md\",\n rounding: \"rounded-lg\",\n },\n },\n {\n description: \"Dynamic company logo using company query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{company.logo}}\",\n alt: \"{{company.name}} logo\",\n },\n padding: \"2rem\",\n shadow: \"shadow-sm\",\n colorPreset: { color: \"neutral-100\" },\n },\n },\n {\n description: \"Dynamic event banner using event query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{event.bannerImage}}\",\n alt: \"{{event.title}} event banner\",\n },\n shadow: \"shadow-xl\",\n rounding: \"rounded-xl\",\n author: {\n name: \"{{event.photographer}}\",\n url: \"{{event.photographerProfile}}\",\n },\n provider: \"event-photography\",\n },\n },\n {\n description: \"Loop template: product gallery (one definition, repeated by loop.over)\",\n type: \"image\",\n props: {\n image: {\n src: \"{{products.mainImage}}\",\n alt: \"{{products.name}} – {{products.category}}\",\n },\n rounding: \"rounded-md\",\n padding: \"0.5rem\",\n shadow: \"shadow-sm\",\n loop: { over: \"products\" },\n },\n },\n {\n description: \"Dynamic article featured image using article query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{article.featuredImage}}\",\n alt: \"Featured image for {{article.title}}\",\n },\n author: {\n name: \"{{article.imageCredit}}\",\n url: \"{{article.imageCreditUrl}}\",\n },\n provider: \"{{article.imageProvider}}\",\n shadow: \"shadow-md\",\n rounding: \"rounded-lg\",\n },\n },\n {\n description: \"Dynamic property photo using property query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{property.mainPhoto}}\",\n alt: \"{{property.address}} - {{property.propertyType}}\",\n },\n shadow: \"shadow-lg\",\n rounding: \"rounded-xl\",\n colorPreset: { color: \"primary-50\" },\n padding: \"1rem\",\n },\n },\n {\n description: \"Dynamic portfolio piece using portfolio query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{portfolio.imageUrl}}\",\n alt: \"{{portfolio.projectName}} for {{portfolio.clientName}}\",\n },\n author: {\n name: \"{{portfolio.photographer}}\",\n url: \"{{portfolio.photographerWebsite}}\",\n },\n provider: \"portfolio-assets\",\n shadow: \"shadow-md\",\n rounding: \"rounded-lg\",\n padding: \"0.5rem\",\n },\n },\n {\n description: \"Dynamic service illustration using service query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{service.illustration}}\",\n alt: \"{{service.name}} service illustration\",\n },\n colorPreset: { color: \"secondary-100\" },\n padding: \"2rem\",\n shadow: \"shadow-sm\",\n rounding: \"rounded-full\",\n },\n },\n {\n description: \"Dynamic testimonial customer photo using testimonial query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{testimonial.customerPhoto}}\",\n alt: \"{{testimonial.customerName}} from {{testimonial.company}}\",\n },\n rounding: \"rounded-full\",\n shadow: \"shadow-lg\",\n padding: \"0.25rem\",\n colorPreset: { color: \"accent-50\" },\n },\n },\n {\n description: \"Product gallery using products query with loop\",\n type: \"image\",\n props: {\n image: {\n src: \"{{products.mainImage}}\",\n alt: \"{{products.name}} - {{products.category}}\",\n },\n author: {\n name: \"{{products.photographer}}\",\n url: \"{{products.photographerUrl}}\",\n },\n provider: \"product-catalog\",\n shadow: \"shadow-md\",\n rounding: \"rounded-lg\",\n padding: \"0.5rem\",\n colorPreset: { color: \"primary-50\" },\n loop: {\n over: \"products\",\n },\n },\n },\n {\n description: \"Team member photos using teamMembers query with loop\",\n type: \"image\",\n props: {\n image: {\n src: \"{{teamMembers.profilePhoto}}\",\n alt: \"{{teamMembers.fullName}} - {{teamMembers.position}}\",\n },\n rounding: \"rounded-full\",\n shadow: \"shadow-lg\",\n padding: \"0.75rem\",\n colorPreset: { color: \"secondary-100\" },\n loop: {\n over: \"teamMembers\",\n },\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -3,25 +3,28 @@
|
|
|
3
3
|
import {
|
|
4
4
|
border,
|
|
5
5
|
rounding
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VYA2FCTY.js";
|
|
7
7
|
import {
|
|
8
8
|
defineProps
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-UC75KRLX.js";
|
|
10
10
|
import {
|
|
11
11
|
image
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import {
|
|
14
|
-
cssLength
|
|
15
|
-
} from "./chunk-OJ6KL7FU.js";
|
|
12
|
+
} from "./chunk-2Z5WOCFS.js";
|
|
16
13
|
import {
|
|
17
14
|
loop
|
|
18
15
|
} from "./chunk-XFZQGRRL.js";
|
|
19
16
|
import {
|
|
20
17
|
colorPreset
|
|
21
18
|
} from "./chunk-IEMCCHM4.js";
|
|
19
|
+
import {
|
|
20
|
+
grow
|
|
21
|
+
} from "./chunk-2EOCK66Z.js";
|
|
22
|
+
import {
|
|
23
|
+
cssLength
|
|
24
|
+
} from "./chunk-OJ6KL7FU.js";
|
|
22
25
|
import {
|
|
23
26
|
defineBrickManifest
|
|
24
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-GNTJT7MR.js";
|
|
25
28
|
|
|
26
29
|
// src/shared/bricks/manifests/images-gallery.manifest.ts
|
|
27
30
|
import { Type } from "@sinclair/typebox";
|
|
@@ -118,7 +121,13 @@ var manifest = defineBrickManifest({
|
|
|
118
121
|
})
|
|
119
122
|
),
|
|
120
123
|
rounding: rounding(),
|
|
121
|
-
border: Type.Optional(border())
|
|
124
|
+
border: Type.Optional(border()),
|
|
125
|
+
// Override grow to default to true
|
|
126
|
+
grow: Type.Optional(
|
|
127
|
+
grow({
|
|
128
|
+
default: true
|
|
129
|
+
})
|
|
130
|
+
)
|
|
122
131
|
})
|
|
123
132
|
});
|
|
124
133
|
var examples = [
|
|
@@ -831,4 +840,4 @@ export {
|
|
|
831
840
|
manifest,
|
|
832
841
|
examples
|
|
833
842
|
};
|
|
834
|
-
//# sourceMappingURL=chunk-
|
|
843
|
+
//# sourceMappingURL=chunk-E3ZW57HF.js.map
|