@upstart.gg/sdk 0.0.135 → 0.0.136
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.d.ts +11 -2
- package/dist/shared/ai/schemas.d.ts.map +1 -1
- package/dist/shared/ai/schemas.js +43 -8
- package/dist/shared/ai/schemas.js.map +1 -1
- package/dist/shared/ai/types.d.ts +125 -65
- package/dist/shared/ai/types.d.ts.map +1 -1
- package/dist/shared/ajv.js +2 -2
- package/dist/shared/attributes.d.ts +3 -1
- package/dist/shared/attributes.d.ts.map +1 -1
- package/dist/shared/attributes.js +9 -9
- package/dist/shared/brick-manifest.js +4 -4
- package/dist/shared/bricks/manifests/_types.d.ts +9 -0
- package/dist/shared/bricks/manifests/_types.d.ts.map +1 -0
- package/dist/shared/bricks/manifests/_types.js +3 -0
- package/dist/shared/bricks/manifests/_types.js.map +1 -0
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/accordion.manifest.js +5 -5
- package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/all-manifests.js +28 -28
- package/dist/shared/bricks/manifests/box.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/box.manifest.js +5 -5
- package/dist/shared/bricks/manifests/button.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/button.manifest.js +5 -5
- package/dist/shared/bricks/manifests/card.manifest.d.ts +8 -7
- package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/card.manifest.js +5 -5
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/carousel.manifest.js +5 -5
- package/dist/shared/bricks/manifests/footer.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/footer.manifest.js +5 -5
- package/dist/shared/bricks/manifests/form.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/form.manifest.js +5 -5
- package/dist/shared/bricks/manifests/hero.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.js +5 -5
- package/dist/shared/bricks/manifests/html.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/html.manifest.js +5 -5
- package/dist/shared/bricks/manifests/icon.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.js +5 -5
- 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 +5 -5
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.js +5 -5
- package/dist/shared/bricks/manifests/map.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/map.manifest.js +5 -5
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/navbar.manifest.js +5 -5
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.js +5 -5
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/social-links.manifest.js +5 -5
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.js +5 -5
- package/dist/shared/bricks/manifests/table.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/table.manifest.js +5 -5
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/tabs.manifest.js +5 -5
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.js +5 -5
- package/dist/shared/bricks/manifests/text.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/text.manifest.js +5 -5
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/timeline.manifest.js +5 -5
- package/dist/shared/bricks/manifests/video.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/video.manifest.js +5 -5
- package/dist/shared/bricks/props/dynamic.js +2 -2
- package/dist/shared/bricks/props/geolocation.js +1 -1
- package/dist/shared/bricks/props/string.js +1 -1
- package/dist/shared/bricks.d.ts +5 -3
- package/dist/shared/bricks.d.ts.map +1 -1
- package/dist/shared/bricks.js +31 -29
- package/dist/shared/{chunk-CKFRSHR2.js → chunk-2IHKVMKW.js} +3 -3
- package/dist/shared/chunk-2IHKVMKW.js.map +1 -0
- package/dist/shared/{chunk-P3RH5URN.js → chunk-2VDR4ZYY.js} +3 -3
- package/dist/shared/chunk-2VDR4ZYY.js.map +1 -0
- package/dist/shared/{chunk-MLZT7MRQ.js → chunk-36PLZKMW.js} +4 -4
- package/dist/shared/chunk-36PLZKMW.js.map +1 -0
- package/dist/shared/{chunk-QQQ3FYPG.js → chunk-42OUNI7C.js} +123 -5
- package/dist/shared/chunk-42OUNI7C.js.map +1 -0
- package/dist/shared/{chunk-2HO4FHLM.js → chunk-4MNWMEMM.js} +118 -152
- package/dist/shared/chunk-4MNWMEMM.js.map +1 -0
- package/dist/shared/chunk-CRS7QCPZ.js +308 -0
- package/dist/shared/chunk-CRS7QCPZ.js.map +1 -0
- package/dist/shared/{chunk-WGDUJSSS.js → chunk-DFAFDBYZ.js} +4 -4
- package/dist/shared/chunk-DFAFDBYZ.js.map +1 -0
- package/dist/shared/{chunk-FVU5PXRC.js → chunk-DV3G7X34.js} +2 -2
- package/dist/shared/{chunk-TB3X4LRQ.js → chunk-EVLRH6VG.js} +2 -2
- package/dist/shared/{chunk-Z35I5JM5.js → chunk-F247VKAE.js} +3 -3
- package/dist/shared/chunk-F247VKAE.js.map +1 -0
- package/dist/shared/{chunk-QL3T5HJQ.js → chunk-FOGAVJC2.js} +2 -2
- package/dist/shared/chunk-FOGAVJC2.js.map +1 -0
- package/dist/shared/{chunk-4WI23M7W.js → chunk-FQDR2BBZ.js} +3 -3
- package/dist/shared/chunk-FQDR2BBZ.js.map +1 -0
- package/dist/shared/{chunk-3KLRW4I2.js → chunk-GFAQWQER.js} +182 -124
- package/dist/shared/chunk-GFAQWQER.js.map +1 -0
- package/dist/shared/{chunk-DRTGM2UJ.js → chunk-GIGFNQBO.js} +2 -2
- package/dist/shared/chunk-GIGFNQBO.js.map +1 -0
- package/dist/shared/{chunk-SHUGHJ7V.js → chunk-GQTZPN5D.js} +3 -3
- package/dist/shared/chunk-GQTZPN5D.js.map +1 -0
- package/dist/shared/{chunk-D4YQ6ABM.js → chunk-H5JM2M2T.js} +211 -34
- package/dist/shared/chunk-H5JM2M2T.js.map +1 -0
- package/dist/shared/{chunk-NT3IW52F.js → chunk-HTUSL2U7.js} +2 -2
- package/dist/shared/{chunk-BW6EFRSF.js → chunk-IQIISR22.js} +2 -2
- package/dist/shared/{chunk-BW6EFRSF.js.map → chunk-IQIISR22.js.map} +1 -1
- package/dist/shared/{chunk-Z2NTDFB4.js → chunk-KEM5N6GJ.js} +4 -4
- package/dist/shared/chunk-KEM5N6GJ.js.map +1 -0
- package/dist/shared/{chunk-V3UA3LRK.js → chunk-KIDICX3Y.js} +32 -7
- package/dist/shared/chunk-KIDICX3Y.js.map +1 -0
- package/dist/shared/chunk-KILJYJFE.js +354 -0
- package/dist/shared/chunk-KILJYJFE.js.map +1 -0
- package/dist/shared/{chunk-GRMY35BU.js → chunk-L6C7HUSA.js} +148 -20
- package/dist/shared/chunk-L6C7HUSA.js.map +1 -0
- package/dist/shared/{chunk-GCQURRVB.js → chunk-LCJ2VFPM.js} +4 -4
- package/dist/shared/chunk-LCJ2VFPM.js.map +1 -0
- package/dist/shared/{chunk-QSND5IWT.js → chunk-LLNPH3XR.js} +19 -36
- package/dist/shared/chunk-LLNPH3XR.js.map +1 -0
- package/dist/shared/{chunk-LXAO3JA6.js → chunk-LTIJI7Y3.js} +4 -4
- package/dist/shared/chunk-LTIJI7Y3.js.map +1 -0
- package/dist/shared/{chunk-6E42XWFH.js → chunk-MFNHFN2B.js} +3 -3
- package/dist/shared/{chunk-6E42XWFH.js.map → chunk-MFNHFN2B.js.map} +1 -1
- package/dist/shared/{chunk-TEO6TJOM.js → chunk-N3BEBLWF.js} +27 -26
- package/dist/shared/{chunk-TEO6TJOM.js.map → chunk-N3BEBLWF.js.map} +1 -1
- package/dist/shared/{chunk-UQF52PWK.js → chunk-N3ZTQD5I.js} +2 -2
- package/dist/shared/chunk-N3ZTQD5I.js.map +1 -0
- package/dist/shared/{chunk-EQMU6NIU.js → chunk-TNTFKLCR.js} +16 -13
- package/dist/shared/chunk-TNTFKLCR.js.map +1 -0
- package/dist/shared/{chunk-EWSPTRDL.js → chunk-U5ZECCJM.js} +102 -16
- package/dist/shared/chunk-U5ZECCJM.js.map +1 -0
- package/dist/shared/{chunk-O5PLB3YB.js → chunk-UXTASZ23.js} +16 -10
- package/dist/shared/chunk-UXTASZ23.js.map +1 -0
- package/dist/shared/{chunk-BMWRR4DI.js → chunk-YWOTQWIQ.js} +3 -3
- package/dist/shared/chunk-YWOTQWIQ.js.map +1 -0
- package/dist/shared/{chunk-GPCI2N2A.js → chunk-ZR6R6Z6O.js} +106 -5
- package/dist/shared/chunk-ZR6R6Z6O.js.map +1 -0
- package/dist/shared/{chunk-U7TVEPKA.js → chunk-ZRRAK5NS.js} +3 -3
- package/dist/shared/chunk-ZRRAK5NS.js.map +1 -0
- package/dist/shared/context.d.ts +1 -0
- package/dist/shared/context.d.ts.map +1 -1
- package/dist/shared/datarecords/types.d.ts +7 -60
- package/dist/shared/datarecords/types.d.ts.map +1 -1
- package/dist/shared/datarecords/types.js +3 -5
- package/dist/shared/datasources/external/threads/media/fetcher.js +3 -3
- package/dist/shared/datasources/types.js +2 -2
- package/dist/shared/datasources.d.ts +1 -1
- package/dist/shared/datasources.d.ts.map +1 -1
- package/dist/shared/datasources.js +1 -3
- package/dist/shared/datasources.js.map +1 -1
- package/dist/shared/page.d.ts.map +1 -1
- package/dist/shared/page.js +31 -31
- package/dist/shared/site.d.ts +6 -6
- package/dist/shared/site.js +36 -36
- package/dist/shared/site.js.map +1 -1
- package/dist/shared/sitemap.d.ts +6 -5
- package/dist/shared/sitemap.d.ts.map +1 -1
- package/dist/shared/sitemap.js +32 -32
- package/dist/shared/theme.js +3 -3
- package/dist/shared/utils/llm.js +2 -2
- package/dist/shared/utils/schema-registry.js +2 -2
- package/dist/shared/utils/schema.js +3 -3
- package/package.json +2 -2
- package/src/shared/ai/schemas.ts +46 -10
- package/src/shared/ai/types.ts +128 -60
- package/src/shared/attributes.ts +11 -3
- package/src/shared/bricks/manifests/_types.ts +9 -0
- package/src/shared/bricks/manifests/accordion.manifest.ts +128 -161
- package/src/shared/bricks/manifests/all-manifests.ts +1 -0
- package/src/shared/bricks/manifests/box.manifest.ts +195 -129
- package/src/shared/bricks/manifests/button.manifest.ts +158 -71
- package/src/shared/bricks/manifests/card.manifest.ts +200 -28
- package/src/shared/bricks/manifests/carousel.manifest.ts +154 -22
- package/src/shared/bricks/manifests/footer.manifest.ts +2 -5
- package/src/shared/bricks/manifests/form.manifest.ts +122 -7
- package/src/shared/bricks/manifests/hero.manifest.ts +103 -18
- package/src/shared/bricks/manifests/html.manifest.ts +2 -5
- package/src/shared/bricks/manifests/icon.manifest.ts +216 -36
- package/src/shared/bricks/manifests/image.manifest.ts +103 -2
- package/src/shared/bricks/manifests/images-gallery.manifest.ts +2 -5
- package/src/shared/bricks/manifests/map.manifest.ts +2 -5
- package/src/shared/bricks/manifests/navbar.manifest.ts +2 -5
- package/src/shared/bricks/manifests/sidebar.manifest.ts +2 -5
- package/src/shared/bricks/manifests/social-links.manifest.ts +2 -5
- package/src/shared/bricks/manifests/spacer.manifest.ts +2 -5
- package/src/shared/bricks/manifests/table.manifest.ts +2 -5
- package/src/shared/bricks/manifests/tabs.manifest.ts +2 -5
- package/src/shared/bricks/manifests/testimonials.manifest.ts +2 -5
- package/src/shared/bricks/manifests/text.manifest.ts +31 -10
- package/src/shared/bricks/manifests/timeline.manifest.ts +2 -5
- package/src/shared/bricks/manifests/video.manifest.ts +2 -5
- package/src/shared/bricks/props/string.ts +1 -1
- package/src/shared/bricks.ts +12 -9
- package/src/shared/context.ts +1 -0
- package/src/shared/datarecords/types.ts +47 -37
- package/src/shared/datasources.ts +2 -4
- package/src/shared/page.ts +0 -1
- package/src/shared/site.ts +3 -3
- package/src/shared/sitemap.ts +2 -0
- package/src/shared/tests/schema-registry.test.ts +0 -2
- package/src/shared/utils/schema-registry.ts +5 -5
- package/src/shared/utils/tests/schema.test.ts +43 -2
- package/dist/shared/chunk-2HO4FHLM.js.map +0 -1
- package/dist/shared/chunk-3KLRW4I2.js.map +0 -1
- package/dist/shared/chunk-4WI23M7W.js.map +0 -1
- package/dist/shared/chunk-BMWRR4DI.js.map +0 -1
- package/dist/shared/chunk-CKFRSHR2.js.map +0 -1
- package/dist/shared/chunk-D4YQ6ABM.js.map +0 -1
- package/dist/shared/chunk-DRTGM2UJ.js.map +0 -1
- package/dist/shared/chunk-EQMU6NIU.js.map +0 -1
- package/dist/shared/chunk-EWSPTRDL.js.map +0 -1
- package/dist/shared/chunk-GCQURRVB.js.map +0 -1
- package/dist/shared/chunk-GPCI2N2A.js.map +0 -1
- package/dist/shared/chunk-GRMY35BU.js.map +0 -1
- package/dist/shared/chunk-LXAO3JA6.js.map +0 -1
- package/dist/shared/chunk-MLZT7MRQ.js.map +0 -1
- package/dist/shared/chunk-O5PLB3YB.js.map +0 -1
- package/dist/shared/chunk-P3RH5URN.js.map +0 -1
- package/dist/shared/chunk-QL3T5HJQ.js.map +0 -1
- package/dist/shared/chunk-QQQ3FYPG.js.map +0 -1
- package/dist/shared/chunk-QSND5IWT.js.map +0 -1
- package/dist/shared/chunk-SHUGHJ7V.js.map +0 -1
- package/dist/shared/chunk-U7TVEPKA.js.map +0 -1
- package/dist/shared/chunk-UQF52PWK.js.map +0 -1
- package/dist/shared/chunk-V3UA3LRK.js.map +0 -1
- package/dist/shared/chunk-WGDUJSSS.js.map +0 -1
- package/dist/shared/chunk-X6N463D4.js +0 -222
- package/dist/shared/chunk-X6N463D4.js.map +0 -1
- package/dist/shared/chunk-X75YV73Q.js +0 -178
- package/dist/shared/chunk-X75YV73Q.js.map +0 -1
- package/dist/shared/chunk-Z2NTDFB4.js.map +0 -1
- package/dist/shared/chunk-Z35I5JM5.js.map +0 -1
- package/dist/shared/schema-registry.d.ts +0 -5
- package/dist/shared/schema-registry.d.ts.map +0 -1
- package/dist/shared/schema-registry.js +0 -119
- package/dist/shared/schema-registry.js.map +0 -1
- package/src/shared/schema-registry.ts +0 -82
- /package/dist/shared/{chunk-FVU5PXRC.js.map → chunk-DV3G7X34.js.map} +0 -0
- /package/dist/shared/{chunk-TB3X4LRQ.js.map → chunk-EVLRH6VG.js.map} +0 -0
- /package/dist/shared/{chunk-NT3IW52F.js.map → chunk-HTUSL2U7.js.map} +0 -0
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
defineProps
|
|
5
|
+
} from "./chunk-BHC2A43S.js";
|
|
6
|
+
import {
|
|
7
|
+
defineBrickManifest
|
|
8
|
+
} from "./chunk-EVLRH6VG.js";
|
|
9
|
+
import {
|
|
10
|
+
loopRef
|
|
11
|
+
} from "./chunk-IQIISR22.js";
|
|
12
|
+
import {
|
|
13
|
+
iconRef,
|
|
14
|
+
urlOrPageIdRef
|
|
15
|
+
} from "./chunk-N3ZTQD5I.js";
|
|
16
|
+
import {
|
|
17
|
+
colorRef
|
|
18
|
+
} from "./chunk-SE6O65HC.js";
|
|
19
|
+
import {
|
|
20
|
+
cssLengthRef
|
|
21
|
+
} from "./chunk-BPBKHEQ5.js";
|
|
22
|
+
|
|
23
|
+
// src/shared/bricks/manifests/icon.manifest.ts
|
|
24
|
+
import { PiConfetti } from "react-icons/pi";
|
|
25
|
+
import { Type } from "@sinclair/typebox";
|
|
26
|
+
var manifest = defineBrickManifest({
|
|
27
|
+
type: "icon",
|
|
28
|
+
name: "Icon",
|
|
29
|
+
category: "basic",
|
|
30
|
+
description: "An icon.",
|
|
31
|
+
aiInstructions: `Use the icon component for adding visual symbols and interactive elements throughout your design.
|
|
32
|
+
|
|
33
|
+
WHEN TO USE:
|
|
34
|
+
- Navigation elements (menu, close, arrow buttons)
|
|
35
|
+
- Social media links (Facebook, Twitter, Instagram, LinkedIn)
|
|
36
|
+
- Contact information (email, phone, location markers)
|
|
37
|
+
- User interface actions (search, shopping cart, download)
|
|
38
|
+
- Status indicators (success, warning, error, info)
|
|
39
|
+
- Content enhancement (stars, hearts, thumbs up)
|
|
40
|
+
- Feature highlights (checkmarks, shields, awards)
|
|
41
|
+
|
|
42
|
+
ICON SELECTION:
|
|
43
|
+
- Use Iconify format: "mdi:icon-name", "lucide:icon-name", "heroicons:icon-name"
|
|
44
|
+
- Examples: "mdi:heart", "lucide:star", "heroicons:envelope", "mdi:facebook"
|
|
45
|
+
|
|
46
|
+
SIZING GUIDELINES:
|
|
47
|
+
- size: "1em" for inline text icons, "1.5em" for buttons, "2em" for headers
|
|
48
|
+
- Common sizes: "16px", "20px", "24px", "32px" for pixel precision
|
|
49
|
+
- Use "em" units to scale with text, "px" for fixed sizes
|
|
50
|
+
- Large decorative icons: "3em", "4em", or "48px", "64px"
|
|
51
|
+
|
|
52
|
+
COLOR OPTIONS:
|
|
53
|
+
- color: "currentColor" inherits text color (default)
|
|
54
|
+
- Hex colors: "#1877f2" (Facebook blue), "#ff0000" (red), "#10b981" (green)
|
|
55
|
+
- Use brand colors for social media icons
|
|
56
|
+
- Match color scheme: warnings (orange/yellow), errors (red), success (green)
|
|
57
|
+
|
|
58
|
+
INTERACTIVE ICONS:
|
|
59
|
+
- Add link property for clickable icons
|
|
60
|
+
- External links: "https://facebook.com/yourpage"
|
|
61
|
+
- Email links: "mailto:contact@example.com"
|
|
62
|
+
- Phone links: "tel:+1234567890"
|
|
63
|
+
- Internal pages: "/contact", "/about"
|
|
64
|
+
|
|
65
|
+
DYNAMIC CONTENT:
|
|
66
|
+
- Use template variables: icon: "{{ service.iconName }}"
|
|
67
|
+
- Dynamic colors: color: "{{ brand.primaryColor }}"
|
|
68
|
+
- Loop over data for icon lists or social media sets
|
|
69
|
+
|
|
70
|
+
AVOID:
|
|
71
|
+
- Oversized icons that dominate content
|
|
72
|
+
- Poor contrast (light icons on light backgrounds)
|
|
73
|
+
- Inconsistent icon styles within the same design
|
|
74
|
+
- Missing alt text context when icons convey important information`,
|
|
75
|
+
resizable: false,
|
|
76
|
+
staticClasses: "!grow-0",
|
|
77
|
+
icon: PiConfetti,
|
|
78
|
+
props: defineProps(
|
|
79
|
+
{
|
|
80
|
+
icon: iconRef({
|
|
81
|
+
default: "mdi:heart"
|
|
82
|
+
}),
|
|
83
|
+
size: Type.Optional(
|
|
84
|
+
cssLengthRef({
|
|
85
|
+
title: "Size",
|
|
86
|
+
description: "The size of the icon. Can be a CSS length value (e.g. '2em', '24px')",
|
|
87
|
+
default: "1em",
|
|
88
|
+
"ui:css-units": ["em", "rem", "px"],
|
|
89
|
+
"ai:instructions": "Use 'em', 'rem', or 'px' for units. Example: '2em', '24px'"
|
|
90
|
+
})
|
|
91
|
+
),
|
|
92
|
+
color: Type.Optional(
|
|
93
|
+
colorRef({
|
|
94
|
+
title: "Color",
|
|
95
|
+
default: "currentColor",
|
|
96
|
+
"ui:hide-color-label": true
|
|
97
|
+
})
|
|
98
|
+
),
|
|
99
|
+
link: Type.Optional(urlOrPageIdRef({ title: "Link" })),
|
|
100
|
+
loop: Type.Optional(loopRef())
|
|
101
|
+
},
|
|
102
|
+
{ noGrow: true }
|
|
103
|
+
)
|
|
104
|
+
});
|
|
105
|
+
var examples = [
|
|
106
|
+
// BASIC ICONS
|
|
107
|
+
{
|
|
108
|
+
description: "Heart icon with default styling - Inherits text color and size",
|
|
109
|
+
type: "icon",
|
|
110
|
+
props: {
|
|
111
|
+
icon: "mdi:heart"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
description: "Star icon with gold color - Perfect for ratings and reviews",
|
|
116
|
+
type: "icon",
|
|
117
|
+
props: {
|
|
118
|
+
icon: "mdi:star",
|
|
119
|
+
size: "1.2em",
|
|
120
|
+
color: "#fbbf24"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
// NAVIGATION ICONS
|
|
124
|
+
{
|
|
125
|
+
description: "Menu hamburger icon - Mobile navigation toggle",
|
|
126
|
+
type: "icon",
|
|
127
|
+
props: {
|
|
128
|
+
icon: "mdi:menu",
|
|
129
|
+
size: "1.8em",
|
|
130
|
+
color: "#374151"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
description: "Search icon - Search functionality indicator",
|
|
135
|
+
type: "icon",
|
|
136
|
+
props: {
|
|
137
|
+
icon: "mdi:magnify",
|
|
138
|
+
size: "1.2em",
|
|
139
|
+
color: "#6b7280"
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
description: "Shopping cart icon - E-commerce navigation",
|
|
144
|
+
type: "icon",
|
|
145
|
+
props: {
|
|
146
|
+
icon: "mdi:cart",
|
|
147
|
+
size: "1.4em",
|
|
148
|
+
color: "#059669"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
description: "Arrow right icon - Navigation and call-to-action",
|
|
153
|
+
type: "icon",
|
|
154
|
+
props: {
|
|
155
|
+
icon: "mdi:arrow-right",
|
|
156
|
+
size: "1.1em",
|
|
157
|
+
color: "currentColor"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
// SOCIAL MEDIA ICONS
|
|
161
|
+
{
|
|
162
|
+
description: "Facebook icon with official brand color and link",
|
|
163
|
+
type: "icon",
|
|
164
|
+
props: {
|
|
165
|
+
icon: "mdi:facebook",
|
|
166
|
+
size: "1.5em",
|
|
167
|
+
color: "#1877f2",
|
|
168
|
+
link: "https://facebook.com/yourpage"
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
description: "Twitter/X icon with link - Social media engagement",
|
|
173
|
+
type: "icon",
|
|
174
|
+
props: {
|
|
175
|
+
icon: "mdi:twitter",
|
|
176
|
+
size: "1.5em",
|
|
177
|
+
color: "#000000",
|
|
178
|
+
link: "https://x.com/yourhandle"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
description: "Instagram icon with gradient-inspired color",
|
|
183
|
+
type: "icon",
|
|
184
|
+
props: {
|
|
185
|
+
icon: "mdi:instagram",
|
|
186
|
+
size: "1.5em",
|
|
187
|
+
color: "#e1306c",
|
|
188
|
+
link: "https://instagram.com/yourprofile"
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
description: "LinkedIn icon with professional blue",
|
|
193
|
+
type: "icon",
|
|
194
|
+
props: {
|
|
195
|
+
icon: "mdi:linkedin",
|
|
196
|
+
size: "1.5em",
|
|
197
|
+
color: "#0077b5",
|
|
198
|
+
link: "https://linkedin.com/company/yourcompany"
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
// CONTACT INFORMATION ICONS
|
|
202
|
+
{
|
|
203
|
+
description: "Email icon with link - Contact information",
|
|
204
|
+
type: "icon",
|
|
205
|
+
props: {
|
|
206
|
+
icon: "mdi:email",
|
|
207
|
+
size: "1.3em",
|
|
208
|
+
color: "#4f46e5",
|
|
209
|
+
link: "mailto:contact@example.com"
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
description: "Phone icon with clickable link - Direct calling",
|
|
214
|
+
type: "icon",
|
|
215
|
+
props: {
|
|
216
|
+
icon: "mdi:phone",
|
|
217
|
+
size: "1.4em",
|
|
218
|
+
color: "#10b981",
|
|
219
|
+
link: "tel:+1234567890"
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
description: "Location marker icon - Address and directions",
|
|
224
|
+
type: "icon",
|
|
225
|
+
props: {
|
|
226
|
+
icon: "mdi:map-marker",
|
|
227
|
+
size: "1.6em",
|
|
228
|
+
color: "#ef4444"
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
// STATUS & FEEDBACK ICONS
|
|
232
|
+
{
|
|
233
|
+
description: "Success checkmark icon - Confirmation and completion",
|
|
234
|
+
type: "icon",
|
|
235
|
+
props: {
|
|
236
|
+
icon: "mdi:check-circle",
|
|
237
|
+
size: "1.5em",
|
|
238
|
+
color: "#10b981"
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
description: "Warning icon - Alerts and cautions",
|
|
243
|
+
type: "icon",
|
|
244
|
+
props: {
|
|
245
|
+
icon: "mdi:alert-triangle",
|
|
246
|
+
size: "1.5em",
|
|
247
|
+
color: "#f59e0b"
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
description: "Error icon - Problems and failures",
|
|
252
|
+
type: "icon",
|
|
253
|
+
props: {
|
|
254
|
+
icon: "mdi:alert-circle",
|
|
255
|
+
size: "1.5em",
|
|
256
|
+
color: "#ef4444"
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
description: "Information icon - Help and guidance",
|
|
261
|
+
type: "icon",
|
|
262
|
+
props: {
|
|
263
|
+
icon: "mdi:information",
|
|
264
|
+
size: "1.4em",
|
|
265
|
+
color: "#3b82f6"
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
// ACTION ICONS
|
|
269
|
+
{
|
|
270
|
+
description: "Download icon with link - File downloads",
|
|
271
|
+
type: "icon",
|
|
272
|
+
props: {
|
|
273
|
+
icon: "mdi:download",
|
|
274
|
+
size: "1.4em",
|
|
275
|
+
color: "#8b5cf6",
|
|
276
|
+
link: "/files/brochure.pdf"
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
description: "Share icon - Content sharing functionality",
|
|
281
|
+
type: "icon",
|
|
282
|
+
props: {
|
|
283
|
+
icon: "mdi:share-variant",
|
|
284
|
+
size: "1.2em",
|
|
285
|
+
color: "#6b7280"
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
description: "Print icon - Document printing",
|
|
290
|
+
type: "icon",
|
|
291
|
+
props: {
|
|
292
|
+
icon: "mdi:printer",
|
|
293
|
+
size: "1.3em",
|
|
294
|
+
color: "#374151"
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
// LARGE DECORATIVE ICONS
|
|
298
|
+
{
|
|
299
|
+
description: "Large security shield icon - Trust and safety messaging",
|
|
300
|
+
type: "icon",
|
|
301
|
+
props: {
|
|
302
|
+
icon: "mdi:shield-check",
|
|
303
|
+
size: "3em",
|
|
304
|
+
color: "#10b981"
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
description: "Large rocket icon - Innovation and growth themes",
|
|
309
|
+
type: "icon",
|
|
310
|
+
props: {
|
|
311
|
+
icon: "mdi:rocket",
|
|
312
|
+
size: "2.5em",
|
|
313
|
+
color: "#f59e0b"
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
// DYNAMIC CONTENT EXAMPLES
|
|
317
|
+
{
|
|
318
|
+
description: "Dynamic service icon using template variables - Data-driven icons",
|
|
319
|
+
type: "icon",
|
|
320
|
+
props: {
|
|
321
|
+
icon: "{{service.iconName}}",
|
|
322
|
+
size: "2em",
|
|
323
|
+
color: "{{service.brandColor}}",
|
|
324
|
+
link: "/services/{{service.slug}}"
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
description: "Dynamic social media icon with loop - Multiple social platforms",
|
|
329
|
+
type: "icon",
|
|
330
|
+
props: {
|
|
331
|
+
icon: "{{socialLinks.iconName}}",
|
|
332
|
+
size: "1.6em",
|
|
333
|
+
color: "{{socialLinks.brandColor}}",
|
|
334
|
+
link: "{{socialLinks.url}}",
|
|
335
|
+
loop: { over: "socialLinks" }
|
|
336
|
+
}
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
description: "Team member contact icon - Dynamic contact information",
|
|
340
|
+
type: "icon",
|
|
341
|
+
props: {
|
|
342
|
+
icon: "mdi:email",
|
|
343
|
+
size: "1.2em",
|
|
344
|
+
color: "#4f46e5",
|
|
345
|
+
link: "mailto:{{teamMember.email}}"
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
];
|
|
349
|
+
|
|
350
|
+
export {
|
|
351
|
+
manifest,
|
|
352
|
+
examples
|
|
353
|
+
};
|
|
354
|
+
//# sourceMappingURL=chunk-KILJYJFE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/manifests/icon.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { PiConfetti } from \"react-icons/pi\";\nimport { iconRef, urlOrPageIdRef } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { Type } from \"@sinclair/typebox\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport { colorRef } from \"../props/color\";\nimport { loopRef } from \"../props/dynamic\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"icon\",\n name: \"Icon\",\n category: \"basic\",\n description: \"An icon.\",\n aiInstructions: `Use the icon component for adding visual symbols and interactive elements throughout your design.\n\nWHEN TO USE:\n- Navigation elements (menu, close, arrow buttons)\n- Social media links (Facebook, Twitter, Instagram, LinkedIn)\n- Contact information (email, phone, location markers)\n- User interface actions (search, shopping cart, download)\n- Status indicators (success, warning, error, info)\n- Content enhancement (stars, hearts, thumbs up)\n- Feature highlights (checkmarks, shields, awards)\n\nICON SELECTION:\n- Use Iconify format: \"mdi:icon-name\", \"lucide:icon-name\", \"heroicons:icon-name\"\n- Examples: \"mdi:heart\", \"lucide:star\", \"heroicons:envelope\", \"mdi:facebook\"\n\nSIZING GUIDELINES:\n- size: \"1em\" for inline text icons, \"1.5em\" for buttons, \"2em\" for headers\n- Common sizes: \"16px\", \"20px\", \"24px\", \"32px\" for pixel precision\n- Use \"em\" units to scale with text, \"px\" for fixed sizes\n- Large decorative icons: \"3em\", \"4em\", or \"48px\", \"64px\"\n\nCOLOR OPTIONS:\n- color: \"currentColor\" inherits text color (default)\n- Hex colors: \"#1877f2\" (Facebook blue), \"#ff0000\" (red), \"#10b981\" (green)\n- Use brand colors for social media icons\n- Match color scheme: warnings (orange/yellow), errors (red), success (green)\n\nINTERACTIVE ICONS:\n- Add link property for clickable icons\n- External links: \"https://facebook.com/yourpage\"\n- Email links: \"mailto:contact@example.com\"\n- Phone links: \"tel:+1234567890\"\n- Internal pages: \"/contact\", \"/about\"\n\nDYNAMIC CONTENT:\n- Use template variables: icon: \"{{ service.iconName }}\"\n- Dynamic colors: color: \"{{ brand.primaryColor }}\"\n- Loop over data for icon lists or social media sets\n\nAVOID:\n- Oversized icons that dominate content\n- Poor contrast (light icons on light backgrounds)\n- Inconsistent icon styles within the same design\n- Missing alt text context when icons convey important information`,\n resizable: false,\n staticClasses: \"!grow-0\",\n icon: PiConfetti,\n props: defineProps(\n {\n icon: iconRef({\n default: \"mdi:heart\",\n }),\n size: Type.Optional(\n cssLengthRef({\n title: \"Size\",\n description: \"The size of the icon. Can be a CSS length value (e.g. '2em', '24px')\",\n default: \"1em\",\n \"ui:css-units\": [\"em\", \"rem\", \"px\"],\n \"ai:instructions\": \"Use 'em', 'rem', or 'px' for units. Example: '2em', '24px'\",\n }),\n ),\n color: Type.Optional(\n colorRef({\n title: \"Color\",\n default: \"currentColor\",\n \"ui:hide-color-label\": true,\n }),\n ),\n link: Type.Optional(urlOrPageIdRef({ title: \"Link\" })),\n loop: Type.Optional(loopRef()),\n },\n { noGrow: true },\n ),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n // BASIC ICONS\n {\n description: \"Heart icon with default styling - Inherits text color and size\",\n type: \"icon\",\n props: {\n icon: \"mdi:heart\",\n },\n },\n {\n description: \"Star icon with gold color - Perfect for ratings and reviews\",\n type: \"icon\",\n props: {\n icon: \"mdi:star\",\n size: \"1.2em\",\n color: \"#fbbf24\",\n },\n },\n\n // NAVIGATION ICONS\n {\n description: \"Menu hamburger icon - Mobile navigation toggle\",\n type: \"icon\",\n props: {\n icon: \"mdi:menu\",\n size: \"1.8em\",\n color: \"#374151\",\n },\n },\n {\n description: \"Search icon - Search functionality indicator\",\n type: \"icon\",\n props: {\n icon: \"mdi:magnify\",\n size: \"1.2em\",\n color: \"#6b7280\",\n },\n },\n {\n description: \"Shopping cart icon - E-commerce navigation\",\n type: \"icon\",\n props: {\n icon: \"mdi:cart\",\n size: \"1.4em\",\n color: \"#059669\",\n },\n },\n {\n description: \"Arrow right icon - Navigation and call-to-action\",\n type: \"icon\",\n props: {\n icon: \"mdi:arrow-right\",\n size: \"1.1em\",\n color: \"currentColor\",\n },\n },\n\n // SOCIAL MEDIA ICONS\n {\n description: \"Facebook icon with official brand color and link\",\n type: \"icon\",\n props: {\n icon: \"mdi:facebook\",\n size: \"1.5em\",\n color: \"#1877f2\",\n link: \"https://facebook.com/yourpage\",\n },\n },\n {\n description: \"Twitter/X icon with link - Social media engagement\",\n type: \"icon\",\n props: {\n icon: \"mdi:twitter\",\n size: \"1.5em\",\n color: \"#000000\",\n link: \"https://x.com/yourhandle\",\n },\n },\n {\n description: \"Instagram icon with gradient-inspired color\",\n type: \"icon\",\n props: {\n icon: \"mdi:instagram\",\n size: \"1.5em\",\n color: \"#e1306c\",\n link: \"https://instagram.com/yourprofile\",\n },\n },\n {\n description: \"LinkedIn icon with professional blue\",\n type: \"icon\",\n props: {\n icon: \"mdi:linkedin\",\n size: \"1.5em\",\n color: \"#0077b5\",\n link: \"https://linkedin.com/company/yourcompany\",\n },\n },\n\n // CONTACT INFORMATION ICONS\n {\n description: \"Email icon with link - Contact information\",\n type: \"icon\",\n props: {\n icon: \"mdi:email\",\n size: \"1.3em\",\n color: \"#4f46e5\",\n link: \"mailto:contact@example.com\",\n },\n },\n {\n description: \"Phone icon with clickable link - Direct calling\",\n type: \"icon\",\n props: {\n icon: \"mdi:phone\",\n size: \"1.4em\",\n color: \"#10b981\",\n link: \"tel:+1234567890\",\n },\n },\n {\n description: \"Location marker icon - Address and directions\",\n type: \"icon\",\n props: {\n icon: \"mdi:map-marker\",\n size: \"1.6em\",\n color: \"#ef4444\",\n },\n },\n\n // STATUS & FEEDBACK ICONS\n {\n description: \"Success checkmark icon - Confirmation and completion\",\n type: \"icon\",\n props: {\n icon: \"mdi:check-circle\",\n size: \"1.5em\",\n color: \"#10b981\",\n },\n },\n {\n description: \"Warning icon - Alerts and cautions\",\n type: \"icon\",\n props: {\n icon: \"mdi:alert-triangle\",\n size: \"1.5em\",\n color: \"#f59e0b\",\n },\n },\n {\n description: \"Error icon - Problems and failures\",\n type: \"icon\",\n props: {\n icon: \"mdi:alert-circle\",\n size: \"1.5em\",\n color: \"#ef4444\",\n },\n },\n {\n description: \"Information icon - Help and guidance\",\n type: \"icon\",\n props: {\n icon: \"mdi:information\",\n size: \"1.4em\",\n color: \"#3b82f6\",\n },\n },\n\n // ACTION ICONS\n {\n description: \"Download icon with link - File downloads\",\n type: \"icon\",\n props: {\n icon: \"mdi:download\",\n size: \"1.4em\",\n color: \"#8b5cf6\",\n link: \"/files/brochure.pdf\",\n },\n },\n {\n description: \"Share icon - Content sharing functionality\",\n type: \"icon\",\n props: {\n icon: \"mdi:share-variant\",\n size: \"1.2em\",\n color: \"#6b7280\",\n },\n },\n {\n description: \"Print icon - Document printing\",\n type: \"icon\",\n props: {\n icon: \"mdi:printer\",\n size: \"1.3em\",\n color: \"#374151\",\n },\n },\n\n // LARGE DECORATIVE ICONS\n {\n description: \"Large security shield icon - Trust and safety messaging\",\n type: \"icon\",\n props: {\n icon: \"mdi:shield-check\",\n size: \"3em\",\n color: \"#10b981\",\n },\n },\n {\n description: \"Large rocket icon - Innovation and growth themes\",\n type: \"icon\",\n props: {\n icon: \"mdi:rocket\",\n size: \"2.5em\",\n color: \"#f59e0b\",\n },\n },\n\n // DYNAMIC CONTENT EXAMPLES\n {\n description: \"Dynamic service icon using template variables - Data-driven icons\",\n type: \"icon\",\n props: {\n icon: \"{{service.iconName}}\",\n size: \"2em\",\n color: \"{{service.brandColor}}\",\n link: \"/services/{{service.slug}}\",\n },\n },\n {\n description: \"Dynamic social media icon with loop - Multiple social platforms\",\n type: \"icon\",\n props: {\n icon: \"{{socialLinks.iconName}}\",\n size: \"1.6em\",\n color: \"{{socialLinks.brandColor}}\",\n link: \"{{socialLinks.url}}\",\n loop: { over: \"socialLinks\" },\n },\n },\n {\n description: \"Team member contact icon - Dynamic contact information\",\n type: \"icon\",\n props: {\n icon: \"mdi:email\",\n size: \"1.2em\",\n color: \"#4f46e5\",\n link: \"mailto:{{teamMember.email}}\",\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
} from "./chunk-BHC2A43S.js";
|
|
6
6
|
import {
|
|
7
7
|
defineBrickManifest
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-EVLRH6VG.js";
|
|
9
9
|
import {
|
|
10
10
|
loopRef
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IQIISR22.js";
|
|
12
12
|
import {
|
|
13
13
|
string
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-N3ZTQD5I.js";
|
|
15
15
|
import {
|
|
16
16
|
imageRef
|
|
17
17
|
} from "./chunk-W6MRYRGJ.js";
|
|
@@ -32,7 +32,48 @@ var manifest = defineBrickManifest({
|
|
|
32
32
|
type: "carousel",
|
|
33
33
|
name: "Carousel",
|
|
34
34
|
description: "An image carousel with navigation arrows and dots or numbers indicator",
|
|
35
|
-
aiInstructions:
|
|
35
|
+
aiInstructions: `Use the carousel component for showcasing sequential visual content with smooth navigation between images.
|
|
36
|
+
|
|
37
|
+
WHEN TO USE:
|
|
38
|
+
- Product galleries with multiple angles or variations
|
|
39
|
+
- Portfolio showcases with project images
|
|
40
|
+
- Step-by-step tutorials or processes (recipes, instructions)
|
|
41
|
+
- Before/after comparisons or transformations
|
|
42
|
+
- Team member profiles with photos
|
|
43
|
+
- Event photo galleries or highlights
|
|
44
|
+
- Feature demonstrations or software screenshots
|
|
45
|
+
- Travel destinations or location showcases
|
|
46
|
+
|
|
47
|
+
CONTENT GUIDELINES:
|
|
48
|
+
- Optimal range: 2-8 images for best user engagement (max 12 supported)
|
|
49
|
+
- Single image allowed only as placeholder for future expansion
|
|
50
|
+
- Each image needs: { src: { src, alt }, legend }
|
|
51
|
+
- Alt text MUST be descriptive and never empty
|
|
52
|
+
- Legend text should be concise (\u226490 characters) and informative
|
|
53
|
+
- Use empty string ("") for legend only when no caption is intentionally desired
|
|
54
|
+
|
|
55
|
+
IMAGE CONSISTENCY:
|
|
56
|
+
- Keep aspect ratios similar across slides to prevent layout jumps
|
|
57
|
+
- Avoid mixing very tall portrait with very wide landscape images
|
|
58
|
+
- Use consistent image quality and style throughout carousel
|
|
59
|
+
- Consider loading performance with image optimization
|
|
60
|
+
|
|
61
|
+
STYLING OPTIONS:
|
|
62
|
+
- padding: "0" for edge-to-edge, "1rem" for standard, "2rem+" for generous spacing
|
|
63
|
+
- borderRadius: "rounded-none" for sharp/modern, "rounded-md" for standard, "rounded-xl" for friendly, "rounded-full" for circular (avatars)
|
|
64
|
+
- colorPreset: Use sparingly - "neutral-50"/"primary-50" for subtle framing, gradients for premium feel
|
|
65
|
+
|
|
66
|
+
DYNAMIC CONTENT:
|
|
67
|
+
- Use loop property with single template object for data-driven carousels
|
|
68
|
+
- Template variables in src and legend: "{{product.image}}", "{{team.name}} - {{team.role}}"
|
|
69
|
+
- Perfect for: product catalogs, team directories, portfolio projects, event galleries
|
|
70
|
+
|
|
71
|
+
AVOID:
|
|
72
|
+
- Including unrelated properties (buttons, titles outside legend)
|
|
73
|
+
- Heavy background colors that distract from images
|
|
74
|
+
- Inconsistent aspect ratios that cause jarring transitions
|
|
75
|
+
- More than 12 images (reduces focus and performance)
|
|
76
|
+
- Empty or placeholder alt text (accessibility requirement)`,
|
|
36
77
|
category: "media",
|
|
37
78
|
defaultInspectorTab: "content",
|
|
38
79
|
consumesMultipleQueryRows: true,
|
|
@@ -89,8 +130,9 @@ var manifest = defineBrickManifest({
|
|
|
89
130
|
})
|
|
90
131
|
});
|
|
91
132
|
var examples = [
|
|
133
|
+
// BASIC CAROUSEL EXAMPLES
|
|
92
134
|
{
|
|
93
|
-
description: "Basic image carousel with legends",
|
|
135
|
+
description: "Basic image carousel with legends - Simple content showcase",
|
|
94
136
|
type: "carousel",
|
|
95
137
|
props: {
|
|
96
138
|
images: [
|
|
@@ -118,8 +160,9 @@ var examples = [
|
|
|
118
160
|
]
|
|
119
161
|
}
|
|
120
162
|
},
|
|
163
|
+
// PRODUCT & COMMERCIAL
|
|
121
164
|
{
|
|
122
|
-
description: "Product showcase carousel with rounded corners and padding",
|
|
165
|
+
description: "Product showcase carousel with rounded corners and padding - E-commerce gallery style",
|
|
123
166
|
type: "carousel",
|
|
124
167
|
props: {
|
|
125
168
|
images: [
|
|
@@ -154,11 +197,12 @@ var examples = [
|
|
|
154
197
|
],
|
|
155
198
|
borderRadius: "rounded-xl",
|
|
156
199
|
padding: "2rem",
|
|
157
|
-
colorPreset: { color: "
|
|
200
|
+
colorPreset: { color: "neutral-50" }
|
|
158
201
|
}
|
|
159
202
|
},
|
|
203
|
+
// PORTFOLIO & CREATIVE
|
|
160
204
|
{
|
|
161
|
-
description: "Portfolio carousel with minimal styling",
|
|
205
|
+
description: "Portfolio carousel with minimal styling - Clean professional presentation",
|
|
162
206
|
type: "carousel",
|
|
163
207
|
props: {
|
|
164
208
|
images: [
|
|
@@ -188,8 +232,9 @@ var examples = [
|
|
|
188
232
|
padding: "0"
|
|
189
233
|
}
|
|
190
234
|
},
|
|
235
|
+
// EVENTS & EXPERIENCES
|
|
191
236
|
{
|
|
192
|
-
description: "Event photos carousel with primary color theme",
|
|
237
|
+
description: "Event photos carousel with primary color theme - Conference or gathering highlights",
|
|
193
238
|
type: "carousel",
|
|
194
239
|
props: {
|
|
195
240
|
images: [
|
|
@@ -272,8 +317,9 @@ var examples = [
|
|
|
272
317
|
padding: "1rem"
|
|
273
318
|
}
|
|
274
319
|
},
|
|
320
|
+
// TEAM & PEOPLE
|
|
275
321
|
{
|
|
276
|
-
description: "Team members carousel with
|
|
322
|
+
description: "Team members carousel with circular images - Professional team showcase",
|
|
277
323
|
type: "carousel",
|
|
278
324
|
props: {
|
|
279
325
|
images: [
|
|
@@ -306,13 +352,14 @@ var examples = [
|
|
|
306
352
|
legend: "Emily Chen - Marketing Director"
|
|
307
353
|
}
|
|
308
354
|
],
|
|
309
|
-
colorPreset: { color: "
|
|
355
|
+
colorPreset: { color: "primary-50" },
|
|
310
356
|
borderRadius: "rounded-full",
|
|
311
357
|
padding: "2rem"
|
|
312
358
|
}
|
|
313
359
|
},
|
|
360
|
+
// TUTORIALS & PROCESSES
|
|
314
361
|
{
|
|
315
|
-
description: "Recipe steps carousel with detailed descriptions",
|
|
362
|
+
description: "Recipe steps carousel with detailed descriptions - Step-by-step instructional content",
|
|
316
363
|
type: "carousel",
|
|
317
364
|
props: {
|
|
318
365
|
images: [
|
|
@@ -345,7 +392,7 @@ var examples = [
|
|
|
345
392
|
legend: "Step 4: Season and serve hot"
|
|
346
393
|
}
|
|
347
394
|
],
|
|
348
|
-
colorPreset: { color: "
|
|
395
|
+
colorPreset: { color: "accent-50" },
|
|
349
396
|
borderRadius: "rounded-md",
|
|
350
397
|
padding: "1.5rem"
|
|
351
398
|
}
|
|
@@ -384,7 +431,7 @@ var examples = [
|
|
|
384
431
|
legend: "Living Room - After"
|
|
385
432
|
}
|
|
386
433
|
],
|
|
387
|
-
colorPreset: { color: "
|
|
434
|
+
colorPreset: { color: "accent-100" },
|
|
388
435
|
borderRadius: "rounded-lg",
|
|
389
436
|
padding: "1rem"
|
|
390
437
|
}
|
|
@@ -416,7 +463,7 @@ var examples = [
|
|
|
416
463
|
legend: "Color Study #7 - 2024"
|
|
417
464
|
}
|
|
418
465
|
],
|
|
419
|
-
colorPreset: { color: "
|
|
466
|
+
colorPreset: { color: "neutral-900" },
|
|
420
467
|
borderRadius: "rounded-sm",
|
|
421
468
|
padding: "3rem"
|
|
422
469
|
}
|
|
@@ -469,7 +516,7 @@ var examples = [
|
|
|
469
516
|
legend: "Weekend Casual - Relaxed Fit"
|
|
470
517
|
}
|
|
471
518
|
],
|
|
472
|
-
colorPreset: { color: "
|
|
519
|
+
colorPreset: { color: "secondary-100" },
|
|
473
520
|
borderRadius: "rounded-xl",
|
|
474
521
|
padding: "2rem"
|
|
475
522
|
}
|
|
@@ -501,7 +548,7 @@ var examples = [
|
|
|
501
548
|
legend: "Electric Sedan"
|
|
502
549
|
}
|
|
503
550
|
],
|
|
504
|
-
colorPreset: { color: "
|
|
551
|
+
colorPreset: { color: "accent-50" },
|
|
505
552
|
borderRadius: "rounded-lg",
|
|
506
553
|
padding: "0.5rem"
|
|
507
554
|
}
|
|
@@ -540,13 +587,13 @@ var examples = [
|
|
|
540
587
|
legend: "Security - Enterprise-grade protection"
|
|
541
588
|
}
|
|
542
589
|
],
|
|
543
|
-
colorPreset: { color: "
|
|
590
|
+
colorPreset: { color: "primary-50" },
|
|
544
591
|
borderRadius: "rounded-2xl",
|
|
545
592
|
padding: "4rem"
|
|
546
593
|
}
|
|
547
594
|
},
|
|
548
595
|
{
|
|
549
|
-
description: "Dynamic product gallery using products query
|
|
596
|
+
description: "Dynamic product gallery using products query - Data-driven product showcase",
|
|
550
597
|
type: "carousel",
|
|
551
598
|
props: {
|
|
552
599
|
images: [
|
|
@@ -566,6 +613,87 @@ var examples = [
|
|
|
566
613
|
}
|
|
567
614
|
}
|
|
568
615
|
},
|
|
616
|
+
// DYNAMIC CONTENT EXAMPLES
|
|
617
|
+
{
|
|
618
|
+
description: "Loop template for portfolioProjects query (one object will repeat per row)",
|
|
619
|
+
type: "carousel",
|
|
620
|
+
props: {
|
|
621
|
+
images: [
|
|
622
|
+
{
|
|
623
|
+
src: {
|
|
624
|
+
src: "{{portfolioProjects.featuredImage}}",
|
|
625
|
+
alt: "{{portfolioProjects.projectName}} featured image"
|
|
626
|
+
},
|
|
627
|
+
legend: "{{portfolioProjects.projectName}} \u2013 {{portfolioProjects.clientName}} ({{portfolioProjects.year}})"
|
|
628
|
+
}
|
|
629
|
+
],
|
|
630
|
+
colorPreset: { color: "neutral-50" },
|
|
631
|
+
borderRadius: "rounded-md",
|
|
632
|
+
padding: "1rem",
|
|
633
|
+
loop: {
|
|
634
|
+
over: "portfolioProjects"
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
},
|
|
638
|
+
// SPECIAL STYLING VARIATIONS
|
|
639
|
+
{
|
|
640
|
+
description: "Showcase carousel with subtle gradient background frame",
|
|
641
|
+
type: "carousel",
|
|
642
|
+
props: {
|
|
643
|
+
images: [
|
|
644
|
+
{
|
|
645
|
+
src: { src: "https://via.placeholder.com/900x500.png?text=Showcase+1", alt: "Showcase slide 1" },
|
|
646
|
+
legend: "Launch Dashboard"
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
src: { src: "https://via.placeholder.com/900x500.png?text=Showcase+2", alt: "Showcase slide 2" },
|
|
650
|
+
legend: "Collaboration Tools"
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
src: { src: "https://via.placeholder.com/900x500.png?text=Showcase+3", alt: "Showcase slide 3" },
|
|
654
|
+
legend: "Usage Analytics"
|
|
655
|
+
}
|
|
656
|
+
],
|
|
657
|
+
colorPreset: { color: "primary-gradient-300", gradientDirection: "bg-gradient-to-br" },
|
|
658
|
+
borderRadius: "rounded-xl",
|
|
659
|
+
padding: "2rem"
|
|
660
|
+
}
|
|
661
|
+
},
|
|
662
|
+
// MINIMAL EDGE (no padding, square corners)
|
|
663
|
+
{
|
|
664
|
+
description: "Minimal edge-to-edge carousel (no padding, no rounding)",
|
|
665
|
+
type: "carousel",
|
|
666
|
+
props: {
|
|
667
|
+
images: [
|
|
668
|
+
{
|
|
669
|
+
src: { src: "https://via.placeholder.com/800x400.png?text=Edge+1", alt: "Edge slide 1" },
|
|
670
|
+
legend: ""
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
src: { src: "https://via.placeholder.com/800x400.png?text=Edge+2", alt: "Edge slide 2" },
|
|
674
|
+
legend: ""
|
|
675
|
+
}
|
|
676
|
+
],
|
|
677
|
+
borderRadius: "rounded-none",
|
|
678
|
+
padding: "0"
|
|
679
|
+
}
|
|
680
|
+
},
|
|
681
|
+
// SINGLE IMAGE (acts as prepared placeholder carousel)
|
|
682
|
+
{
|
|
683
|
+
description: "Single-image carousel (placeholder for future expansion)",
|
|
684
|
+
type: "carousel",
|
|
685
|
+
props: {
|
|
686
|
+
images: [
|
|
687
|
+
{
|
|
688
|
+
src: { src: "https://via.placeholder.com/1000x420.png?text=Banner", alt: "Promotional banner" },
|
|
689
|
+
legend: "Early Access Program"
|
|
690
|
+
}
|
|
691
|
+
],
|
|
692
|
+
colorPreset: { color: "secondary-50" },
|
|
693
|
+
borderRadius: "rounded-lg",
|
|
694
|
+
padding: "1.25rem"
|
|
695
|
+
}
|
|
696
|
+
},
|
|
569
697
|
{
|
|
570
698
|
description: "Team member carousel using teamMembers query with roles and departments",
|
|
571
699
|
type: "carousel",
|
|
@@ -719,4 +847,4 @@ export {
|
|
|
719
847
|
manifest,
|
|
720
848
|
examples
|
|
721
849
|
};
|
|
722
|
-
//# sourceMappingURL=chunk-
|
|
850
|
+
//# sourceMappingURL=chunk-L6C7HUSA.js.map
|