@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.
Files changed (258) hide show
  1. package/dist/shared/ai/schemas.d.ts +11 -2
  2. package/dist/shared/ai/schemas.d.ts.map +1 -1
  3. package/dist/shared/ai/schemas.js +43 -8
  4. package/dist/shared/ai/schemas.js.map +1 -1
  5. package/dist/shared/ai/types.d.ts +125 -65
  6. package/dist/shared/ai/types.d.ts.map +1 -1
  7. package/dist/shared/ajv.js +2 -2
  8. package/dist/shared/attributes.d.ts +3 -1
  9. package/dist/shared/attributes.d.ts.map +1 -1
  10. package/dist/shared/attributes.js +9 -9
  11. package/dist/shared/brick-manifest.js +4 -4
  12. package/dist/shared/bricks/manifests/_types.d.ts +9 -0
  13. package/dist/shared/bricks/manifests/_types.d.ts.map +1 -0
  14. package/dist/shared/bricks/manifests/_types.js +3 -0
  15. package/dist/shared/bricks/manifests/_types.js.map +1 -0
  16. package/dist/shared/bricks/manifests/accordion.manifest.d.ts +2 -6
  17. package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
  18. package/dist/shared/bricks/manifests/accordion.manifest.js +5 -5
  19. package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
  20. package/dist/shared/bricks/manifests/all-manifests.js +28 -28
  21. package/dist/shared/bricks/manifests/box.manifest.d.ts +2 -6
  22. package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
  23. package/dist/shared/bricks/manifests/box.manifest.js +5 -5
  24. package/dist/shared/bricks/manifests/button.manifest.d.ts +2 -6
  25. package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
  26. package/dist/shared/bricks/manifests/button.manifest.js +5 -5
  27. package/dist/shared/bricks/manifests/card.manifest.d.ts +8 -7
  28. package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
  29. package/dist/shared/bricks/manifests/card.manifest.js +5 -5
  30. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +2 -6
  31. package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
  32. package/dist/shared/bricks/manifests/carousel.manifest.js +5 -5
  33. package/dist/shared/bricks/manifests/footer.manifest.d.ts +2 -6
  34. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  35. package/dist/shared/bricks/manifests/footer.manifest.js +5 -5
  36. package/dist/shared/bricks/manifests/form.manifest.d.ts +2 -6
  37. package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
  38. package/dist/shared/bricks/manifests/form.manifest.js +5 -5
  39. package/dist/shared/bricks/manifests/hero.manifest.d.ts +2 -6
  40. package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
  41. package/dist/shared/bricks/manifests/hero.manifest.js +5 -5
  42. package/dist/shared/bricks/manifests/html.manifest.d.ts +2 -6
  43. package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
  44. package/dist/shared/bricks/manifests/html.manifest.js +5 -5
  45. package/dist/shared/bricks/manifests/icon.manifest.d.ts +2 -6
  46. package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
  47. package/dist/shared/bricks/manifests/icon.manifest.js +5 -5
  48. package/dist/shared/bricks/manifests/image.manifest.d.ts +1 -0
  49. package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
  50. package/dist/shared/bricks/manifests/image.manifest.js +5 -5
  51. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +2 -6
  52. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
  53. package/dist/shared/bricks/manifests/images-gallery.manifest.js +5 -5
  54. package/dist/shared/bricks/manifests/map.manifest.d.ts +2 -6
  55. package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
  56. package/dist/shared/bricks/manifests/map.manifest.js +5 -5
  57. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +2 -6
  58. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
  59. package/dist/shared/bricks/manifests/navbar.manifest.js +5 -5
  60. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +2 -6
  61. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
  62. package/dist/shared/bricks/manifests/sidebar.manifest.js +5 -5
  63. package/dist/shared/bricks/manifests/social-links.manifest.d.ts +2 -6
  64. package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
  65. package/dist/shared/bricks/manifests/social-links.manifest.js +5 -5
  66. package/dist/shared/bricks/manifests/spacer.manifest.d.ts +2 -6
  67. package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
  68. package/dist/shared/bricks/manifests/spacer.manifest.js +5 -5
  69. package/dist/shared/bricks/manifests/table.manifest.d.ts +2 -6
  70. package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
  71. package/dist/shared/bricks/manifests/table.manifest.js +5 -5
  72. package/dist/shared/bricks/manifests/tabs.manifest.d.ts +2 -6
  73. package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
  74. package/dist/shared/bricks/manifests/tabs.manifest.js +5 -5
  75. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +2 -6
  76. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
  77. package/dist/shared/bricks/manifests/testimonials.manifest.js +5 -5
  78. package/dist/shared/bricks/manifests/text.manifest.d.ts +2 -6
  79. package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
  80. package/dist/shared/bricks/manifests/text.manifest.js +5 -5
  81. package/dist/shared/bricks/manifests/timeline.manifest.d.ts +2 -6
  82. package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -1
  83. package/dist/shared/bricks/manifests/timeline.manifest.js +5 -5
  84. package/dist/shared/bricks/manifests/video.manifest.d.ts +2 -6
  85. package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
  86. package/dist/shared/bricks/manifests/video.manifest.js +5 -5
  87. package/dist/shared/bricks/props/dynamic.js +2 -2
  88. package/dist/shared/bricks/props/geolocation.js +1 -1
  89. package/dist/shared/bricks/props/string.js +1 -1
  90. package/dist/shared/bricks.d.ts +5 -3
  91. package/dist/shared/bricks.d.ts.map +1 -1
  92. package/dist/shared/bricks.js +31 -29
  93. package/dist/shared/{chunk-CKFRSHR2.js → chunk-2IHKVMKW.js} +3 -3
  94. package/dist/shared/chunk-2IHKVMKW.js.map +1 -0
  95. package/dist/shared/{chunk-P3RH5URN.js → chunk-2VDR4ZYY.js} +3 -3
  96. package/dist/shared/chunk-2VDR4ZYY.js.map +1 -0
  97. package/dist/shared/{chunk-MLZT7MRQ.js → chunk-36PLZKMW.js} +4 -4
  98. package/dist/shared/chunk-36PLZKMW.js.map +1 -0
  99. package/dist/shared/{chunk-QQQ3FYPG.js → chunk-42OUNI7C.js} +123 -5
  100. package/dist/shared/chunk-42OUNI7C.js.map +1 -0
  101. package/dist/shared/{chunk-2HO4FHLM.js → chunk-4MNWMEMM.js} +118 -152
  102. package/dist/shared/chunk-4MNWMEMM.js.map +1 -0
  103. package/dist/shared/chunk-CRS7QCPZ.js +308 -0
  104. package/dist/shared/chunk-CRS7QCPZ.js.map +1 -0
  105. package/dist/shared/{chunk-WGDUJSSS.js → chunk-DFAFDBYZ.js} +4 -4
  106. package/dist/shared/chunk-DFAFDBYZ.js.map +1 -0
  107. package/dist/shared/{chunk-FVU5PXRC.js → chunk-DV3G7X34.js} +2 -2
  108. package/dist/shared/{chunk-TB3X4LRQ.js → chunk-EVLRH6VG.js} +2 -2
  109. package/dist/shared/{chunk-Z35I5JM5.js → chunk-F247VKAE.js} +3 -3
  110. package/dist/shared/chunk-F247VKAE.js.map +1 -0
  111. package/dist/shared/{chunk-QL3T5HJQ.js → chunk-FOGAVJC2.js} +2 -2
  112. package/dist/shared/chunk-FOGAVJC2.js.map +1 -0
  113. package/dist/shared/{chunk-4WI23M7W.js → chunk-FQDR2BBZ.js} +3 -3
  114. package/dist/shared/chunk-FQDR2BBZ.js.map +1 -0
  115. package/dist/shared/{chunk-3KLRW4I2.js → chunk-GFAQWQER.js} +182 -124
  116. package/dist/shared/chunk-GFAQWQER.js.map +1 -0
  117. package/dist/shared/{chunk-DRTGM2UJ.js → chunk-GIGFNQBO.js} +2 -2
  118. package/dist/shared/chunk-GIGFNQBO.js.map +1 -0
  119. package/dist/shared/{chunk-SHUGHJ7V.js → chunk-GQTZPN5D.js} +3 -3
  120. package/dist/shared/chunk-GQTZPN5D.js.map +1 -0
  121. package/dist/shared/{chunk-D4YQ6ABM.js → chunk-H5JM2M2T.js} +211 -34
  122. package/dist/shared/chunk-H5JM2M2T.js.map +1 -0
  123. package/dist/shared/{chunk-NT3IW52F.js → chunk-HTUSL2U7.js} +2 -2
  124. package/dist/shared/{chunk-BW6EFRSF.js → chunk-IQIISR22.js} +2 -2
  125. package/dist/shared/{chunk-BW6EFRSF.js.map → chunk-IQIISR22.js.map} +1 -1
  126. package/dist/shared/{chunk-Z2NTDFB4.js → chunk-KEM5N6GJ.js} +4 -4
  127. package/dist/shared/chunk-KEM5N6GJ.js.map +1 -0
  128. package/dist/shared/{chunk-V3UA3LRK.js → chunk-KIDICX3Y.js} +32 -7
  129. package/dist/shared/chunk-KIDICX3Y.js.map +1 -0
  130. package/dist/shared/chunk-KILJYJFE.js +354 -0
  131. package/dist/shared/chunk-KILJYJFE.js.map +1 -0
  132. package/dist/shared/{chunk-GRMY35BU.js → chunk-L6C7HUSA.js} +148 -20
  133. package/dist/shared/chunk-L6C7HUSA.js.map +1 -0
  134. package/dist/shared/{chunk-GCQURRVB.js → chunk-LCJ2VFPM.js} +4 -4
  135. package/dist/shared/chunk-LCJ2VFPM.js.map +1 -0
  136. package/dist/shared/{chunk-QSND5IWT.js → chunk-LLNPH3XR.js} +19 -36
  137. package/dist/shared/chunk-LLNPH3XR.js.map +1 -0
  138. package/dist/shared/{chunk-LXAO3JA6.js → chunk-LTIJI7Y3.js} +4 -4
  139. package/dist/shared/chunk-LTIJI7Y3.js.map +1 -0
  140. package/dist/shared/{chunk-6E42XWFH.js → chunk-MFNHFN2B.js} +3 -3
  141. package/dist/shared/{chunk-6E42XWFH.js.map → chunk-MFNHFN2B.js.map} +1 -1
  142. package/dist/shared/{chunk-TEO6TJOM.js → chunk-N3BEBLWF.js} +27 -26
  143. package/dist/shared/{chunk-TEO6TJOM.js.map → chunk-N3BEBLWF.js.map} +1 -1
  144. package/dist/shared/{chunk-UQF52PWK.js → chunk-N3ZTQD5I.js} +2 -2
  145. package/dist/shared/chunk-N3ZTQD5I.js.map +1 -0
  146. package/dist/shared/{chunk-EQMU6NIU.js → chunk-TNTFKLCR.js} +16 -13
  147. package/dist/shared/chunk-TNTFKLCR.js.map +1 -0
  148. package/dist/shared/{chunk-EWSPTRDL.js → chunk-U5ZECCJM.js} +102 -16
  149. package/dist/shared/chunk-U5ZECCJM.js.map +1 -0
  150. package/dist/shared/{chunk-O5PLB3YB.js → chunk-UXTASZ23.js} +16 -10
  151. package/dist/shared/chunk-UXTASZ23.js.map +1 -0
  152. package/dist/shared/{chunk-BMWRR4DI.js → chunk-YWOTQWIQ.js} +3 -3
  153. package/dist/shared/chunk-YWOTQWIQ.js.map +1 -0
  154. package/dist/shared/{chunk-GPCI2N2A.js → chunk-ZR6R6Z6O.js} +106 -5
  155. package/dist/shared/chunk-ZR6R6Z6O.js.map +1 -0
  156. package/dist/shared/{chunk-U7TVEPKA.js → chunk-ZRRAK5NS.js} +3 -3
  157. package/dist/shared/chunk-ZRRAK5NS.js.map +1 -0
  158. package/dist/shared/context.d.ts +1 -0
  159. package/dist/shared/context.d.ts.map +1 -1
  160. package/dist/shared/datarecords/types.d.ts +7 -60
  161. package/dist/shared/datarecords/types.d.ts.map +1 -1
  162. package/dist/shared/datarecords/types.js +3 -5
  163. package/dist/shared/datasources/external/threads/media/fetcher.js +3 -3
  164. package/dist/shared/datasources/types.js +2 -2
  165. package/dist/shared/datasources.d.ts +1 -1
  166. package/dist/shared/datasources.d.ts.map +1 -1
  167. package/dist/shared/datasources.js +1 -3
  168. package/dist/shared/datasources.js.map +1 -1
  169. package/dist/shared/page.d.ts.map +1 -1
  170. package/dist/shared/page.js +31 -31
  171. package/dist/shared/site.d.ts +6 -6
  172. package/dist/shared/site.js +36 -36
  173. package/dist/shared/site.js.map +1 -1
  174. package/dist/shared/sitemap.d.ts +6 -5
  175. package/dist/shared/sitemap.d.ts.map +1 -1
  176. package/dist/shared/sitemap.js +32 -32
  177. package/dist/shared/theme.js +3 -3
  178. package/dist/shared/utils/llm.js +2 -2
  179. package/dist/shared/utils/schema-registry.js +2 -2
  180. package/dist/shared/utils/schema.js +3 -3
  181. package/package.json +2 -2
  182. package/src/shared/ai/schemas.ts +46 -10
  183. package/src/shared/ai/types.ts +128 -60
  184. package/src/shared/attributes.ts +11 -3
  185. package/src/shared/bricks/manifests/_types.ts +9 -0
  186. package/src/shared/bricks/manifests/accordion.manifest.ts +128 -161
  187. package/src/shared/bricks/manifests/all-manifests.ts +1 -0
  188. package/src/shared/bricks/manifests/box.manifest.ts +195 -129
  189. package/src/shared/bricks/manifests/button.manifest.ts +158 -71
  190. package/src/shared/bricks/manifests/card.manifest.ts +200 -28
  191. package/src/shared/bricks/manifests/carousel.manifest.ts +154 -22
  192. package/src/shared/bricks/manifests/footer.manifest.ts +2 -5
  193. package/src/shared/bricks/manifests/form.manifest.ts +122 -7
  194. package/src/shared/bricks/manifests/hero.manifest.ts +103 -18
  195. package/src/shared/bricks/manifests/html.manifest.ts +2 -5
  196. package/src/shared/bricks/manifests/icon.manifest.ts +216 -36
  197. package/src/shared/bricks/manifests/image.manifest.ts +103 -2
  198. package/src/shared/bricks/manifests/images-gallery.manifest.ts +2 -5
  199. package/src/shared/bricks/manifests/map.manifest.ts +2 -5
  200. package/src/shared/bricks/manifests/navbar.manifest.ts +2 -5
  201. package/src/shared/bricks/manifests/sidebar.manifest.ts +2 -5
  202. package/src/shared/bricks/manifests/social-links.manifest.ts +2 -5
  203. package/src/shared/bricks/manifests/spacer.manifest.ts +2 -5
  204. package/src/shared/bricks/manifests/table.manifest.ts +2 -5
  205. package/src/shared/bricks/manifests/tabs.manifest.ts +2 -5
  206. package/src/shared/bricks/manifests/testimonials.manifest.ts +2 -5
  207. package/src/shared/bricks/manifests/text.manifest.ts +31 -10
  208. package/src/shared/bricks/manifests/timeline.manifest.ts +2 -5
  209. package/src/shared/bricks/manifests/video.manifest.ts +2 -5
  210. package/src/shared/bricks/props/string.ts +1 -1
  211. package/src/shared/bricks.ts +12 -9
  212. package/src/shared/context.ts +1 -0
  213. package/src/shared/datarecords/types.ts +47 -37
  214. package/src/shared/datasources.ts +2 -4
  215. package/src/shared/page.ts +0 -1
  216. package/src/shared/site.ts +3 -3
  217. package/src/shared/sitemap.ts +2 -0
  218. package/src/shared/tests/schema-registry.test.ts +0 -2
  219. package/src/shared/utils/schema-registry.ts +5 -5
  220. package/src/shared/utils/tests/schema.test.ts +43 -2
  221. package/dist/shared/chunk-2HO4FHLM.js.map +0 -1
  222. package/dist/shared/chunk-3KLRW4I2.js.map +0 -1
  223. package/dist/shared/chunk-4WI23M7W.js.map +0 -1
  224. package/dist/shared/chunk-BMWRR4DI.js.map +0 -1
  225. package/dist/shared/chunk-CKFRSHR2.js.map +0 -1
  226. package/dist/shared/chunk-D4YQ6ABM.js.map +0 -1
  227. package/dist/shared/chunk-DRTGM2UJ.js.map +0 -1
  228. package/dist/shared/chunk-EQMU6NIU.js.map +0 -1
  229. package/dist/shared/chunk-EWSPTRDL.js.map +0 -1
  230. package/dist/shared/chunk-GCQURRVB.js.map +0 -1
  231. package/dist/shared/chunk-GPCI2N2A.js.map +0 -1
  232. package/dist/shared/chunk-GRMY35BU.js.map +0 -1
  233. package/dist/shared/chunk-LXAO3JA6.js.map +0 -1
  234. package/dist/shared/chunk-MLZT7MRQ.js.map +0 -1
  235. package/dist/shared/chunk-O5PLB3YB.js.map +0 -1
  236. package/dist/shared/chunk-P3RH5URN.js.map +0 -1
  237. package/dist/shared/chunk-QL3T5HJQ.js.map +0 -1
  238. package/dist/shared/chunk-QQQ3FYPG.js.map +0 -1
  239. package/dist/shared/chunk-QSND5IWT.js.map +0 -1
  240. package/dist/shared/chunk-SHUGHJ7V.js.map +0 -1
  241. package/dist/shared/chunk-U7TVEPKA.js.map +0 -1
  242. package/dist/shared/chunk-UQF52PWK.js.map +0 -1
  243. package/dist/shared/chunk-V3UA3LRK.js.map +0 -1
  244. package/dist/shared/chunk-WGDUJSSS.js.map +0 -1
  245. package/dist/shared/chunk-X6N463D4.js +0 -222
  246. package/dist/shared/chunk-X6N463D4.js.map +0 -1
  247. package/dist/shared/chunk-X75YV73Q.js +0 -178
  248. package/dist/shared/chunk-X75YV73Q.js.map +0 -1
  249. package/dist/shared/chunk-Z2NTDFB4.js.map +0 -1
  250. package/dist/shared/chunk-Z35I5JM5.js.map +0 -1
  251. package/dist/shared/schema-registry.d.ts +0 -5
  252. package/dist/shared/schema-registry.d.ts.map +0 -1
  253. package/dist/shared/schema-registry.js +0 -119
  254. package/dist/shared/schema-registry.js.map +0 -1
  255. package/src/shared/schema-registry.ts +0 -82
  256. /package/dist/shared/{chunk-FVU5PXRC.js.map → chunk-DV3G7X34.js.map} +0 -0
  257. /package/dist/shared/{chunk-TB3X4LRQ.js.map → chunk-EVLRH6VG.js.map} +0 -0
  258. /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":";;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,kBAAkB;AAG3B,SAAS,YAAY;AAMd,IAAM,WAAW,oBAAoB;AAAA,EAC1C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AAAA,EACb,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4ChB,WAAW;AAAA,EACX,eAAe;AAAA,EACf,MAAM;AAAA,EACN,OAAO;AAAA,IACL;AAAA,MACE,MAAM,QAAQ;AAAA,QACZ,SAAS;AAAA,MACX,CAAC;AAAA,MACD,MAAM,KAAK;AAAA,QACT,aAAa;AAAA,UACX,OAAO;AAAA,UACP,aAAa;AAAA,UACb,SAAS;AAAA,UACT,gBAAgB,CAAC,MAAM,OAAO,IAAI;AAAA,UAClC,mBAAmB;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,MACA,OAAO,KAAK;AAAA,QACV,SAAS;AAAA,UACP,OAAO;AAAA,UACP,SAAS;AAAA,UACT,uBAAuB;AAAA,QACzB,CAAC;AAAA,MACH;AAAA,MACA,MAAM,KAAK,SAAS,eAAe,EAAE,OAAO,OAAO,CAAC,CAAC;AAAA,MACrD,MAAM,KAAK,SAAS,QAAQ,CAAC;AAAA,IAC/B;AAAA,IACA,EAAE,QAAQ,KAAK;AAAA,EACjB;AACF,CAAC;AAIM,IAAM,WAAqC;AAAA;AAAA,EAEhD;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA,EAGA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM,EAAE,MAAM,cAAc;AAAA,IAC9B;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
@@ -5,13 +5,13 @@ import {
5
5
  } from "./chunk-BHC2A43S.js";
6
6
  import {
7
7
  defineBrickManifest
8
- } from "./chunk-TB3X4LRQ.js";
8
+ } from "./chunk-EVLRH6VG.js";
9
9
  import {
10
10
  loopRef
11
- } from "./chunk-BW6EFRSF.js";
11
+ } from "./chunk-IQIISR22.js";
12
12
  import {
13
13
  string
14
- } from "./chunk-UQF52PWK.js";
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: "Use this brick to create an image carousel or slideshow. It can display multiple images that users can navigate through using arrows or dots. Each image can have an optional legend or caption. This brick is ideal for showcasing portfolios, product images, or any visual content in an engaging way.",
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: "gray-50" }
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 blue color scheme",
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: "blue-50" },
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: "orange-50" },
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: "green-50" },
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: "gray-900" },
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: "purple-100" },
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: "red-50" },
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: "indigo-50" },
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 with pricing and details",
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-GRMY35BU.js.map
850
+ //# sourceMappingURL=chunk-L6C7HUSA.js.map