@upstart.gg/sdk 0.0.104 → 0.0.106

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 (254) hide show
  1. package/dist/shared/ajv.d.ts +2 -0
  2. package/dist/shared/ajv.d.ts.map +1 -1
  3. package/dist/shared/ajv.js +1 -1
  4. package/dist/shared/attributes.js +1 -1
  5. package/dist/shared/brick-manifest.js +1 -1
  6. package/dist/shared/bricks/manifests/accordion.manifest.js +1 -1
  7. package/dist/shared/bricks/manifests/all-manifests.js +1 -1
  8. package/dist/shared/bricks/manifests/button.manifest.js +1 -1
  9. package/dist/shared/bricks/manifests/card.manifest.js +1 -1
  10. package/dist/shared/bricks/manifests/carousel.manifest.js +1 -1
  11. package/dist/shared/bricks/manifests/container.manifest.js +1 -1
  12. package/dist/shared/bricks/manifests/divider.manifest.js +1 -1
  13. package/dist/shared/bricks/manifests/footer.manifest.d.ts +1 -1
  14. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  15. package/dist/shared/bricks/manifests/footer.manifest.js +1 -1
  16. package/dist/shared/bricks/manifests/form.manifest.js +1 -1
  17. package/dist/shared/bricks/manifests/hero.manifest.js +1 -1
  18. package/dist/shared/bricks/manifests/icon.manifest.js +1 -1
  19. package/dist/shared/bricks/manifests/image.manifest.js +1 -1
  20. package/dist/shared/bricks/manifests/images-gallery.manifest.js +1 -1
  21. package/dist/shared/bricks/manifests/map.manifest.js +1 -1
  22. package/dist/shared/bricks/manifests/navbar.manifest.js +1 -1
  23. package/dist/shared/bricks/manifests/sidebar.manifest.js +1 -1
  24. package/dist/shared/bricks/manifests/social-links.manifest.js +1 -1
  25. package/dist/shared/bricks/manifests/testimonials.manifest.js +1 -1
  26. package/dist/shared/bricks/manifests/text.manifest.js +1 -1
  27. package/dist/shared/bricks/manifests/timeline.manifest.js +1 -1
  28. package/dist/shared/bricks/manifests/video.manifest.js +1 -1
  29. package/dist/shared/bricks/props/border.d.ts.map +1 -1
  30. package/dist/shared/bricks/props/border.js +1 -1
  31. package/dist/shared/bricks/props/container.js +1 -1
  32. package/dist/shared/bricks/props/effects.js +1 -1
  33. package/dist/shared/bricks.d.ts.map +1 -1
  34. package/dist/shared/bricks.js +1 -1
  35. package/dist/shared/{chunk-TCZBR3ZU.js → chunk-2DI5SIVV.js} +1 -1
  36. package/dist/shared/{chunk-O22VV7YR.js → chunk-33FU4KGU.js} +1 -1
  37. package/dist/shared/{chunk-WCNVFVDK.js → chunk-3ZGRY444.js} +1 -1
  38. package/dist/shared/{chunk-CUCUHPQ7.js → chunk-6OKXZL6R.js} +1 -1
  39. package/dist/shared/chunk-7E67XSKP.js +3 -0
  40. package/dist/shared/{chunk-LJQXN32B.js → chunk-AMGHA7QH.js} +1 -1
  41. package/dist/shared/{chunk-QALNFBY7.js → chunk-DC5DWF7B.js} +1 -1
  42. package/dist/shared/{chunk-I43NIQ2K.js → chunk-DY2YCYZ6.js} +1 -1
  43. package/dist/shared/{chunk-CEXHD4BO.js → chunk-E4UAVLKC.js} +2 -2
  44. package/dist/shared/{chunk-ZFTWLZ3G.js → chunk-EHH677K5.js} +1 -1
  45. package/dist/shared/{chunk-POYVTV5F.js → chunk-FD3KX2U7.js} +1 -1
  46. package/dist/shared/chunk-G3JO5DM5.js +3 -0
  47. package/dist/shared/{chunk-I5S2MPPR.js → chunk-H7OYUKBW.js} +1 -1
  48. package/dist/shared/{chunk-ATVHWZSA.js → chunk-HBM4DPIW.js} +1 -1
  49. package/dist/shared/chunk-HIBTEX2T.js +3 -0
  50. package/dist/shared/{chunk-E2EBTWJI.js → chunk-I3HSLGFA.js} +1 -1
  51. package/dist/shared/{chunk-UISES3HA.js → chunk-IXJX7EQ3.js} +1 -1
  52. package/dist/shared/{chunk-5IEGQ7YT.js → chunk-JAAPJQNK.js} +1 -1
  53. package/dist/shared/{chunk-UK6H3FDX.js → chunk-JDBVMPSI.js} +1 -1
  54. package/dist/shared/{chunk-F6MLW6DO.js → chunk-JH3NRO6M.js} +1 -1
  55. package/dist/shared/{chunk-ZNVRYEO7.js → chunk-L3TKLJKK.js} +1 -1
  56. package/dist/shared/{chunk-TEPFFY32.js → chunk-LOFXGDAK.js} +1 -1
  57. package/dist/shared/chunk-O3FJP65T.js +3 -0
  58. package/dist/shared/{chunk-7L3UOEMR.js → chunk-PX7QSNLO.js} +1 -1
  59. package/dist/shared/{chunk-22KRCQK5.js → chunk-U76JDFWJ.js} +1 -1
  60. package/dist/shared/{chunk-CW5FWW5W.js → chunk-UYZP24VV.js} +1 -1
  61. package/dist/shared/chunk-X42WBJTN.js +3 -0
  62. package/dist/shared/{chunk-OQIFFJ7I.js → chunk-XB3X4P3I.js} +1 -1
  63. package/dist/shared/chunk-XDCGA4WT.js +3 -0
  64. package/dist/shared/chunk-YGHBFXR6.js +3 -0
  65. package/dist/shared/{chunk-WEQRYCPD.js → chunk-ZWYLKIBI.js} +1 -1
  66. package/dist/shared/datasources/external/rss/fetcher.d.ts +1 -1
  67. package/dist/shared/datasources/external/rss/fetcher.d.ts.map +1 -1
  68. package/dist/shared/images.js +1 -1
  69. package/dist/shared/page.js +1 -1
  70. package/dist/shared/responsive.js +1 -1
  71. package/dist/shared/site.js +1 -1
  72. package/dist/shared/sitemap.js +1 -1
  73. package/dist/shared/theme.js +1 -1
  74. package/dist/shared/utils/schema.d.ts +6 -8
  75. package/dist/shared/utils/schema.d.ts.map +1 -1
  76. package/dist/shared/utils/schema.js +1 -1
  77. package/package.json +5 -9
  78. package/dist/shared/chunk-F63ANNAK.js +0 -3
  79. package/dist/shared/chunk-GPKRRX3D.js +0 -3
  80. package/dist/shared/chunk-HQQYIKTE.js +0 -3
  81. package/dist/shared/chunk-JFDOR3UH.js +0 -3
  82. package/dist/shared/chunk-OD2PRCLH.js +0 -3
  83. package/dist/shared/chunk-PK6UAFPW.js +0 -3
  84. package/dist/shared/chunk-VDHLON5R.js +0 -3
  85. package/src/node/cli/api.ts +0 -101
  86. package/src/node/cli/commands/cmd-build.ts +0 -64
  87. package/src/node/cli/commands/login/cmd-login.ts +0 -111
  88. package/src/node/cli/commands/logout/cmd-logout.ts +0 -11
  89. package/src/node/cli/commands/publish/cmd-publish.ts +0 -135
  90. package/src/node/cli/commands/publish/parse-gitignore.ts +0 -278
  91. package/src/node/cli/commands/publish/uploader.ts +0 -333
  92. package/src/node/cli/constants.ts +0 -14
  93. package/src/node/cli/is-logged-in.ts +0 -28
  94. package/src/node/cli/program.ts +0 -77
  95. package/src/node/cli/store.ts +0 -64
  96. package/src/node/cli/tests/api.test.ts +0 -161
  97. package/src/node/cli/types.ts +0 -34
  98. package/src/node/cli/utils.ts +0 -20
  99. package/src/node/shared/config.ts +0 -69
  100. package/src/node/shared/logger.ts +0 -44
  101. package/src/shared/ajv.ts +0 -103
  102. package/src/shared/analytics/init.ts +0 -14
  103. package/src/shared/analytics/track.ts +0 -21
  104. package/src/shared/analytics/types.ts +0 -13
  105. package/src/shared/attributes.ts +0 -211
  106. package/src/shared/brick-manifest.ts +0 -110
  107. package/src/shared/bricks/manifests/accordion.manifest.ts +0 -179
  108. package/src/shared/bricks/manifests/all-manifests.ts +0 -92
  109. package/src/shared/bricks/manifests/button.manifest.ts +0 -145
  110. package/src/shared/bricks/manifests/card.manifest.ts +0 -269
  111. package/src/shared/bricks/manifests/carousel.manifest.ts +0 -106
  112. package/src/shared/bricks/manifests/container.manifest.ts +0 -357
  113. package/src/shared/bricks/manifests/divider.manifest.ts +0 -121
  114. package/src/shared/bricks/manifests/footer.manifest.ts +0 -487
  115. package/src/shared/bricks/manifests/form.manifest.ts +0 -112
  116. package/src/shared/bricks/manifests/hero.manifest.ts +0 -132
  117. package/src/shared/bricks/manifests/icon.manifest.ts +0 -130
  118. package/src/shared/bricks/manifests/image.manifest.ts +0 -203
  119. package/src/shared/bricks/manifests/images-gallery.manifest.ts +0 -227
  120. package/src/shared/bricks/manifests/map.manifest.ts +0 -75
  121. package/src/shared/bricks/manifests/navbar.manifest.ts +0 -344
  122. package/src/shared/bricks/manifests/sidebar.manifest.ts +0 -90
  123. package/src/shared/bricks/manifests/social-links.manifest.ts +0 -370
  124. package/src/shared/bricks/manifests/testimonials.manifest.ts +0 -397
  125. package/src/shared/bricks/manifests/tests/header.manifest.test.ts +0 -10
  126. package/src/shared/bricks/manifests/text.manifest.ts +0 -164
  127. package/src/shared/bricks/manifests/timeline.manifest.ts +0 -456
  128. package/src/shared/bricks/manifests/video.manifest.ts +0 -59
  129. package/src/shared/bricks/props/_style-presets.ts +0 -352
  130. package/src/shared/bricks/props/align.ts +0 -59
  131. package/src/shared/bricks/props/background.ts +0 -118
  132. package/src/shared/bricks/props/boolean.ts +0 -11
  133. package/src/shared/bricks/props/border.ts +0 -84
  134. package/src/shared/bricks/props/color.ts +0 -24
  135. package/src/shared/bricks/props/common.ts +0 -37
  136. package/src/shared/bricks/props/container.ts +0 -356
  137. package/src/shared/bricks/props/css-length.ts +0 -25
  138. package/src/shared/bricks/props/datasource.ts +0 -60
  139. package/src/shared/bricks/props/date.ts +0 -24
  140. package/src/shared/bricks/props/effects.ts +0 -123
  141. package/src/shared/bricks/props/enum.ts +0 -42
  142. package/src/shared/bricks/props/file.ts +0 -12
  143. package/src/shared/bricks/props/geolocation.ts +0 -30
  144. package/src/shared/bricks/props/helpers.ts +0 -101
  145. package/src/shared/bricks/props/image.ts +0 -90
  146. package/src/shared/bricks/props/number.ts +0 -16
  147. package/src/shared/bricks/props/padding.ts +0 -21
  148. package/src/shared/bricks/props/position.ts +0 -27
  149. package/src/shared/bricks/props/preset.ts +0 -136
  150. package/src/shared/bricks/props/string.ts +0 -56
  151. package/src/shared/bricks/props/tests/align.test.ts +0 -37
  152. package/src/shared/bricks/props/tests/background.test.ts +0 -102
  153. package/src/shared/bricks/props/tests/border.test.ts +0 -38
  154. package/src/shared/bricks/props/tests/effects.test.ts +0 -37
  155. package/src/shared/bricks/props/tests/helpers.test.ts +0 -133
  156. package/src/shared/bricks/props/tests/image.test.ts +0 -71
  157. package/src/shared/bricks/props/tests/padding.ts +0 -12
  158. package/src/shared/bricks/props/tests/string.test.ts +0 -79
  159. package/src/shared/bricks/props/text.ts +0 -66
  160. package/src/shared/bricks/props/types.ts +0 -57
  161. package/src/shared/bricks.ts +0 -232
  162. package/src/shared/context.ts +0 -39
  163. package/src/shared/datarecords/external/airtable/handler.ts +0 -21
  164. package/src/shared/datarecords/external/airtable/options.ts +0 -22
  165. package/src/shared/datarecords/external/generic-webhook/handler.ts +0 -10
  166. package/src/shared/datarecords/external/generic-webhook/options.ts +0 -13
  167. package/src/shared/datarecords/external/google/oauth/config.ts +0 -30
  168. package/src/shared/datarecords/external/google/sheets/handler.ts +0 -26
  169. package/src/shared/datarecords/external/google/sheets/options.ts +0 -9
  170. package/src/shared/datarecords/types.ts +0 -120
  171. package/src/shared/datarecords.ts +0 -5
  172. package/src/shared/datasources/README.md +0 -3
  173. package/src/shared/datasources/external/facebook/posts/fetcher.ts +0 -52
  174. package/src/shared/datasources/external/facebook/posts/sample.ts +0 -35
  175. package/src/shared/datasources/external/facebook/posts/schema.ts +0 -33
  176. package/src/shared/datasources/external/facebook/posts/tests/fetcher.test.ts +0 -73
  177. package/src/shared/datasources/external/http-json/fetcher.ts +0 -28
  178. package/src/shared/datasources/external/http-json/options.ts +0 -12
  179. package/src/shared/datasources/external/http-json/schema.ts +0 -6
  180. package/src/shared/datasources/external/http-json/tests/fetcher.test.ts +0 -70
  181. package/src/shared/datasources/external/instagram/feed/fetcher.ts +0 -33
  182. package/src/shared/datasources/external/instagram/feed/sample.ts +0 -22
  183. package/src/shared/datasources/external/instagram/feed/schema.ts +0 -23
  184. package/src/shared/datasources/external/instagram/feed/tests/fetcher.test.ts +0 -64
  185. package/src/shared/datasources/external/mastodon/account/fetcher.ts +0 -24
  186. package/src/shared/datasources/external/mastodon/account/sample.ts +0 -33
  187. package/src/shared/datasources/external/mastodon/account/schema.ts +0 -45
  188. package/src/shared/datasources/external/mastodon/account/tests/fetcher.test.ts +0 -47
  189. package/src/shared/datasources/external/mastodon/options.ts +0 -11
  190. package/src/shared/datasources/external/mastodon/status/fetcher.ts +0 -35
  191. package/src/shared/datasources/external/mastodon/status/sample.array.ts +0 -59
  192. package/src/shared/datasources/external/mastodon/status/sample.single.ts +0 -55
  193. package/src/shared/datasources/external/mastodon/status/schema.ts +0 -130
  194. package/src/shared/datasources/external/mastodon/status/tests/fetcher.test.ts +0 -74
  195. package/src/shared/datasources/external/meta/oauth/config.ts +0 -16
  196. package/src/shared/datasources/external/meta/options.ts +0 -11
  197. package/src/shared/datasources/external/rss/fetcher.ts +0 -29
  198. package/src/shared/datasources/external/rss/options.ts +0 -11
  199. package/src/shared/datasources/external/rss/sample.ts +0 -22
  200. package/src/shared/datasources/external/rss/schema.ts +0 -42
  201. package/src/shared/datasources/external/threads/media/fetcher.ts +0 -53
  202. package/src/shared/datasources/external/threads/media/sample.ts +0 -44
  203. package/src/shared/datasources/external/threads/media/schema.ts +0 -37
  204. package/src/shared/datasources/external/tiktok/oauth/config.ts +0 -17
  205. package/src/shared/datasources/external/tiktok/video/fetcher.ts +0 -39
  206. package/src/shared/datasources/external/tiktok/video/options.ts +0 -12
  207. package/src/shared/datasources/external/tiktok/video/sample.ts +0 -26
  208. package/src/shared/datasources/external/tiktok/video/schema.ts +0 -27
  209. package/src/shared/datasources/external/youtube/list/fetcher.ts +0 -37
  210. package/src/shared/datasources/external/youtube/list/options.ts +0 -15
  211. package/src/shared/datasources/external/youtube/list/sample.ts +0 -33
  212. package/src/shared/datasources/external/youtube/list/schema.ts +0 -38
  213. package/src/shared/datasources/external/youtube/oauth/config.ts +0 -15
  214. package/src/shared/datasources/fetcher.ts +0 -17
  215. package/src/shared/datasources/internal/blog/schema.ts +0 -69
  216. package/src/shared/datasources/internal/changelog/schema.ts +0 -48
  217. package/src/shared/datasources/internal/contact-info/schema.ts +0 -20
  218. package/src/shared/datasources/internal/cv/schema.ts +0 -217
  219. package/src/shared/datasources/internal/faq/schema.ts +0 -27
  220. package/src/shared/datasources/internal/job-board/schema.ts +0 -228
  221. package/src/shared/datasources/internal/links/schema.ts +0 -15
  222. package/src/shared/datasources/internal/recipes/schema.ts +0 -42
  223. package/src/shared/datasources/internal/restaurant/schema.ts +0 -225
  224. package/src/shared/datasources/provider-options.ts +0 -7
  225. package/src/shared/datasources/samples.ts +0 -26
  226. package/src/shared/datasources/schemas.ts +0 -45
  227. package/src/shared/datasources/types.ts +0 -276
  228. package/src/shared/datasources/utils.ts +0 -16
  229. package/src/shared/datasources.ts +0 -42
  230. package/src/shared/env.ts +0 -23
  231. package/src/shared/errors.ts +0 -1
  232. package/src/shared/images.ts +0 -44
  233. package/src/shared/index.ts +0 -3
  234. package/src/shared/layout-constants.ts +0 -25
  235. package/src/shared/manifest.ts +0 -50
  236. package/src/shared/oauth.ts +0 -16
  237. package/src/shared/page.ts +0 -61
  238. package/src/shared/prompt.ts +0 -9
  239. package/src/shared/responsive.ts +0 -5
  240. package/src/shared/site.ts +0 -97
  241. package/src/shared/sitemap.ts +0 -66
  242. package/src/shared/social-icons.ts +0 -307
  243. package/src/shared/tests/attributes.test.ts +0 -37
  244. package/src/shared/theme.ts +0 -245
  245. package/src/shared/themes/README.md +0 -34
  246. package/src/shared/themes/color-system.ts +0 -127
  247. package/src/shared/utils/canvas-data-uri.ts +0 -2
  248. package/src/shared/utils/invariant.ts +0 -25
  249. package/src/shared/utils/json-date.ts +0 -8
  250. package/src/shared/utils/merge.ts +0 -12
  251. package/src/shared/utils/object-hash.ts +0 -7
  252. package/src/shared/utils/schema.ts +0 -35
  253. package/src/shared/utils/try-catch.ts +0 -12
  254. package/src/shared/utils/typed-ref.ts +0 -41
@@ -1,397 +0,0 @@
1
- import { defineBrickManifest } from "~/shared/brick-manifest";
2
- import { defineProps, optional, prop } from "../props/helpers";
3
- import { string } from "../props/string";
4
- import { Type } from "@sinclair/typebox";
5
- import { textContent, textContentRef } from "../props/text";
6
- import { image, imageRef } from "../props/image";
7
- import { HiOutlineChatBubbleBottomCenter } from "react-icons/hi2";
8
- import type { BrickProps } from "../props/types";
9
- import type { FC } from "react";
10
- import { backgroundRef } from "../props/background";
11
- import { borderRef } from "../props/border";
12
- import { paddingRef } from "../props/padding";
13
- import { shadowRef } from "../props/effects";
14
-
15
- export const manifest = defineBrickManifest({
16
- type: "testimonials",
17
- name: "Testimonials",
18
- kind: "widget",
19
- description: "Display testimonials from users",
20
- repeatable: false,
21
- icon: HiOutlineChatBubbleBottomCenter,
22
- props: defineProps(
23
- {
24
- orientation: optional(
25
- prop({
26
- title: "Orientation",
27
- schema: Type.Union(
28
- [
29
- Type.Literal("horizontal", { title: "Horizontal" }),
30
- Type.Literal("vertical", { title: "Vertical" }),
31
- ],
32
- { default: "horizontal" },
33
- ),
34
- }),
35
- ),
36
- background: optional(backgroundRef()),
37
- border: optional(borderRef),
38
- padding: optional(paddingRef),
39
- shadow: optional(shadowRef()),
40
- testimonials: Type.Array(
41
- Type.Object({
42
- author: string("Author", "John Doe"),
43
- company: optional(string("Company")),
44
- text: textContentRef({ title: "Text", default: "Amazing product!" }),
45
- avatar: optional(imageRef({ title: "Avatar" })),
46
- socialIcon: optional(
47
- string("Social Icon", undefined, {
48
- description: "Iconify reference for the social icon",
49
- "ui:field": "iconify",
50
- }),
51
- ),
52
- }),
53
- ),
54
- },
55
- {
56
- default: {
57
- orientation: "horizontal",
58
- },
59
- },
60
- ),
61
- });
62
-
63
- export type Manifest = typeof manifest;
64
-
65
- export const examples: {
66
- description: string;
67
- type: string;
68
- props: BrickProps<Manifest>["brick"]["props"];
69
- }[] = [
70
- {
71
- description: "SaaS platform testimonials with avatars (horizontal)",
72
- type: "testimonials",
73
- props: {
74
- orientation: "horizontal",
75
- testimonials: [
76
- {
77
- author: "Sarah Johnson",
78
- company: "TechCorp Solutions",
79
- text: "This platform has completely transformed how we manage our projects. The intuitive interface and powerful automation features have saved us countless hours.",
80
- avatar: {
81
- src: "https://via.placeholder.com/80x80.png?text=SJ",
82
- alt: "Sarah Johnson profile photo",
83
- },
84
- socialIcon: "mdi:linkedin",
85
- },
86
- {
87
- author: "Mike Chen",
88
- company: "StartupFlow",
89
- text: "Outstanding customer support and regular feature updates. We've been using this for over a year and it keeps getting better. Highly recommend!",
90
- avatar: {
91
- src: "https://via.placeholder.com/80x80.png?text=MC",
92
- alt: "Mike Chen profile photo",
93
- },
94
- socialIcon: "mdi:twitter",
95
- },
96
- {
97
- author: "Emily Rodriguez",
98
- company: "Digital Agency Pro",
99
- text: "The automation capabilities are game-changing. What used to take us days now happens automatically. It's like having an extra team member.",
100
- avatar: {
101
- src: "https://via.placeholder.com/80x80.png?text=ER",
102
- alt: "Emily Rodriguez profile photo",
103
- },
104
- socialIcon: "mdi:linkedin",
105
- },
106
- ],
107
- },
108
- },
109
- {
110
- description: "E-commerce customer reviews (vertical)",
111
- type: "testimonials",
112
- props: {
113
- orientation: "vertical",
114
- testimonials: [
115
- {
116
- author: "Jessica Williams",
117
- company: "Happy Customer",
118
- text: "Amazing product quality and fast shipping! The item exceeded my expectations and the customer service was excellent when I had questions.",
119
- avatar: {
120
- src: "https://via.placeholder.com/60x60.png?text=JW",
121
- alt: "Jessica Williams customer photo",
122
- },
123
- socialIcon: "mdi:star",
124
- },
125
- {
126
- author: "David Park",
127
- text: "Five stars! Been using this product for 6 months and it's still going strong. Definitely worth the investment and I've already recommended it to friends.",
128
- avatar: {
129
- src: "https://via.placeholder.com/60x60.png?text=DP",
130
- alt: "David Park customer photo",
131
- },
132
- socialIcon: "mdi:thumbs-up",
133
- },
134
- ],
135
- },
136
- },
137
- {
138
- description: "Agency client testimonials with company info",
139
- type: "testimonials",
140
- props: {
141
- orientation: "horizontal",
142
- testimonials: [
143
- {
144
- author: "Rachel Thompson",
145
- company: "Global Enterprises",
146
- text: "The team delivered exceptional results on time and within budget. Their creative approach and attention to detail made all the difference for our brand.",
147
- avatar: {
148
- src: "https://via.placeholder.com/70x70.png?text=RT",
149
- alt: "Rachel Thompson headshot",
150
- },
151
- socialIcon: "mdi:briefcase",
152
- },
153
- {
154
- author: "Alex Kumar",
155
- company: "Innovation Labs",
156
- text: "Working with this agency was a game-changer for our digital presence. They understood our vision and brought it to life beautifully.",
157
- avatar: {
158
- src: "https://via.placeholder.com/70x70.png?text=AK",
159
- alt: "Alex Kumar profile",
160
- },
161
- socialIcon: "mdi:lightbulb",
162
- },
163
- {
164
- author: "Maria Santos",
165
- company: "Retail Plus",
166
- text: "Professional, creative, and results-driven. Our website traffic increased by 200% after their redesign. Couldn't be happier!",
167
- avatar: {
168
- src: "https://via.placeholder.com/70x70.png?text=MS",
169
- alt: "Maria Santos photo",
170
- },
171
- socialIcon: "mdi:chart-line",
172
- },
173
- ],
174
- },
175
- },
176
- {
177
- description: "App user feedback (vertical layout)",
178
- type: "testimonials",
179
- props: {
180
- orientation: "vertical",
181
- testimonials: [
182
- {
183
- author: "Tom Wilson",
184
- text: "This app has made my daily routine so much easier. Love the clean interface and how everything just works seamlessly across all my devices.",
185
- avatar: {
186
- src: "https://via.placeholder.com/65x65.png?text=TW",
187
- alt: "Tom Wilson user photo",
188
- },
189
- socialIcon: "mdi:cellphone",
190
- },
191
- {
192
- author: "Lisa Chang",
193
- text: "Been using this app for months and it's become essential to my workflow. The latest update with AI features is incredibly impressive.",
194
- avatar: {
195
- src: "https://via.placeholder.com/65x65.png?text=LC",
196
- alt: "Lisa Chang profile picture",
197
- },
198
- socialIcon: "mdi:robot",
199
- },
200
- {
201
- author: "James Miller",
202
- text: "Simple, powerful, and reliable. Exactly what I was looking for. The customer support team is also very responsive and helpful.",
203
- avatar: {
204
- src: "https://via.placeholder.com/65x65.png?text=JM",
205
- alt: "James Miller avatar",
206
- },
207
- socialIcon: "mdi:heart",
208
- },
209
- ],
210
- },
211
- },
212
- {
213
- description: "Course/education testimonials with social icons",
214
- type: "testimonials",
215
- props: {
216
- orientation: "horizontal",
217
- testimonials: [
218
- {
219
- author: "Amanda Foster",
220
- company: "UX Designer",
221
- text: "This course completely changed my career trajectory. The practical projects and expert feedback helped me land my dream job in just 3 months.",
222
- avatar: {
223
- src: "https://via.placeholder.com/75x75.png?text=AF",
224
- alt: "Amanda Foster student photo",
225
- },
226
- socialIcon: "mdi:school",
227
- },
228
- {
229
- author: "Carlos Rodriguez",
230
- company: "Software Engineer",
231
- text: "The instructors are industry experts and the content is always up-to-date. I've taken three courses here and each one exceeded my expectations.",
232
- avatar: {
233
- src: "https://via.placeholder.com/75x75.png?text=CR",
234
- alt: "Carlos Rodriguez profile",
235
- },
236
- socialIcon: "mdi:code-tags",
237
- },
238
- ],
239
- },
240
- },
241
- {
242
- description: "Simple testimonials without avatars",
243
- type: "testimonials",
244
- props: {
245
- orientation: "horizontal",
246
- testimonials: [
247
- {
248
- author: "Anonymous User",
249
- text: "Great service and excellent value for money. Would definitely recommend to others looking for a reliable solution.",
250
- socialIcon: "mdi:account-circle",
251
- },
252
- {
253
- author: "Verified Customer",
254
- text: "Quick delivery and exactly as described. Very satisfied with my purchase and the overall experience.",
255
- socialIcon: "mdi:check-circle",
256
- },
257
- {
258
- author: "Beta Tester",
259
- text: "Been using the beta version and it's already impressive. Looking forward to the full release with even more features.",
260
- socialIcon: "mdi:beta",
261
- },
262
- ],
263
- },
264
- },
265
- {
266
- description: "Consultant testimonials with professional focus",
267
- type: "testimonials",
268
- props: {
269
- orientation: "vertical",
270
- testimonials: [
271
- {
272
- author: "Dr. Patricia Lee",
273
- company: "Medical Practice Solutions",
274
- text: "The consulting services provided were invaluable to our practice. Revenue increased by 40% and patient satisfaction scores improved significantly.",
275
- avatar: {
276
- src: "https://via.placeholder.com/80x80.png?text=PL",
277
- alt: "Dr. Patricia Lee headshot",
278
- },
279
- socialIcon: "mdi:medical-bag",
280
- },
281
- {
282
- author: "Robert Kim",
283
- company: "Manufacturing Inc.",
284
- text: "Their strategic insights helped us streamline operations and reduce costs by 25%. The ROI was evident within the first quarter.",
285
- avatar: {
286
- src: "https://via.placeholder.com/80x80.png?text=RK",
287
- alt: "Robert Kim executive photo",
288
- },
289
- socialIcon: "mdi:factory",
290
- },
291
- ],
292
- },
293
- },
294
- {
295
- description: "Event testimonials with social media icons",
296
- type: "testimonials",
297
- props: {
298
- orientation: "horizontal",
299
- testimonials: [
300
- {
301
- author: "Jennifer Adams",
302
- company: "Marketing Director",
303
- text: "Best conference I've attended in years! The networking opportunities were incredible and the speakers were top-notch industry leaders.",
304
- avatar: {
305
- src: "https://via.placeholder.com/70x70.png?text=JA",
306
- alt: "Jennifer Adams conference attendee",
307
- },
308
- socialIcon: "mdi:twitter",
309
- },
310
- {
311
- author: "Michael Brown",
312
- company: "Tech Startup Founder",
313
- text: "The workshops were incredibly practical and I left with actionable strategies I could implement immediately. Already planning to attend next year!",
314
- avatar: {
315
- src: "https://via.placeholder.com/70x70.png?text=MB",
316
- alt: "Michael Brown participant photo",
317
- },
318
- socialIcon: "mdi:linkedin",
319
- },
320
- {
321
- author: "Sophie Chen",
322
- company: "Product Manager",
323
- text: "Amazing organization and valuable content. Met so many like-minded professionals and learned cutting-edge techniques I'm excited to try.",
324
- avatar: {
325
- src: "https://via.placeholder.com/70x70.png?text=SC",
326
- alt: "Sophie Chen attendee photo",
327
- },
328
- socialIcon: "mdi:instagram",
329
- },
330
- ],
331
- },
332
- },
333
- {
334
- description: "Fitness/wellness testimonials with achievement focus",
335
- type: "testimonials",
336
- props: {
337
- orientation: "vertical",
338
- testimonials: [
339
- {
340
- author: "Mark Thompson",
341
- text: "Lost 30 pounds in 4 months following this program! The personalized approach and constant support made all the difference in achieving my goals.",
342
- avatar: {
343
- src: "https://via.placeholder.com/75x75.png?text=MT",
344
- alt: "Mark Thompson transformation photo",
345
- },
346
- socialIcon: "mdi:dumbbell",
347
- },
348
- {
349
- author: "Anna Johnson",
350
- text: "Finally found a workout routine I actually enjoy! The trainers are motivating and the community support keeps me accountable every day.",
351
- avatar: {
352
- src: "https://via.placeholder.com/75x75.png?text=AJ",
353
- alt: "Anna Johnson fitness photo",
354
- },
355
- socialIcon: "mdi:heart-pulse",
356
- },
357
- {
358
- author: "Chris Davis",
359
- text: "This program completely changed my relationship with fitness. I'm stronger, more confident, and have energy I haven't felt in years.",
360
- avatar: {
361
- src: "https://via.placeholder.com/75x75.png?text=CD",
362
- alt: "Chris Davis success photo",
363
- },
364
- socialIcon: "mdi:trophy",
365
- },
366
- ],
367
- },
368
- },
369
- {
370
- description: "Restaurant customer reviews with food focus",
371
- type: "testimonials",
372
- props: {
373
- orientation: "horizontal",
374
- testimonials: [
375
- {
376
- author: "Food Critic Helen",
377
- company: "Local Food Blog",
378
- text: "Exceptional cuisine and impeccable service! Every dish was a masterpiece and the attention to detail was remarkable. A true culinary experience.",
379
- avatar: {
380
- src: "https://via.placeholder.com/65x65.png?text=HC",
381
- alt: "Helen food critic photo",
382
- },
383
- socialIcon: "mdi:silverware-fork-knife",
384
- },
385
- {
386
- author: "Regular Customer Joe",
387
- text: "Been coming here for years and it never disappoints. The staff knows my order by heart and the quality is consistently outstanding.",
388
- avatar: {
389
- src: "https://via.placeholder.com/65x65.png?text=JC",
390
- alt: "Joe regular customer",
391
- },
392
- socialIcon: "mdi:food",
393
- },
394
- ],
395
- },
396
- },
397
- ];
@@ -1,10 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { manifest } from "../navbar.manifest";
3
-
4
- describe("Header manifest test suite", () => {
5
- describe("manifest", () => {
6
- it("should be valid", () => {
7
- expect(manifest).toBeTruthy();
8
- });
9
- });
10
- });
@@ -1,164 +0,0 @@
1
- import { defineBrickManifest } from "~/shared/brick-manifest";
2
- import { textContent, textContentRef } from "../props/text";
3
- import { defineProps, optional } from "../props/helpers";
4
- import { backgroundColor, backgroundColorRef } from "../props/background";
5
- import { padding, paddingRef } from "../props/padding";
6
- import { border, borderRef } from "../props/border";
7
- import { RxTextAlignLeft } from "react-icons/rx";
8
- import type { BrickProps } from "../props/types";
9
- import { colorRef } from "../props/color";
10
- import type { FC } from "react";
11
- import type { Type } from "@sinclair/typebox";
12
- import { shadowRef } from "../props/effects";
13
-
14
- export const manifest = defineBrickManifest({
15
- type: "text",
16
- kind: "brick",
17
- name: "Text",
18
- description: "Text with formatting options",
19
- aiInstructions: `Text "content" can contain minimal HTML tags like <strong>, <em>, <br> and <a> as well as <p> and <span> and lists.
20
- Only 'align' is supported as an inline style, so don't use other inline styles like 'font-size' or 'color' in the content prop.
21
- `,
22
- minHeight: {
23
- desktop: 2,
24
- mobile: 2,
25
- },
26
- minWidth: {
27
- desktop: 2,
28
- mobile: 2,
29
- },
30
- defaultHeight: {
31
- desktop: 7,
32
- mobile: 7,
33
- },
34
- defaultWidth: {
35
- desktop: 6,
36
- mobile: 6,
37
- },
38
- repeatable: true,
39
- icon: RxTextAlignLeft,
40
- props: defineProps(
41
- {
42
- content: textContentRef(),
43
- backgroundColor: optional(backgroundColorRef()),
44
- color: optional(colorRef()),
45
- padding: optional(paddingRef),
46
- border: optional(borderRef),
47
- shadow: optional(shadowRef()),
48
- },
49
- {
50
- default: {
51
- padding: "p-8",
52
- },
53
- },
54
- ),
55
- });
56
-
57
- export type Manifest = typeof manifest;
58
-
59
- export const examples: {
60
- description: string;
61
- type: string;
62
- props: BrickProps<Manifest>["brick"]["props"];
63
- }[] = [
64
- {
65
- description: "Welcome paragraph with emphasis, using a preset",
66
- type: "text",
67
- props: {
68
- preset: "prominent-primary",
69
- content:
70
- "Welcome to our platform! We're <strong>excited</strong> to have you here. Our mission is to <em>transform</em> the way you work with cutting-edge technology and <a href='/features'>innovative features</a>.",
71
- padding: "p-16",
72
- },
73
- },
74
- {
75
- description: "Feature list with HTML formatting",
76
- type: "text",
77
- props: {
78
- content:
79
- "<h3>Key Features</h3><ul><li><strong>Advanced Analytics</strong> - Real-time data insights</li><li><strong>Cloud Integration</strong> - Seamless connectivity</li><li><strong>24/7 Support</strong> - Always here to help</li></ul>",
80
- backgroundColor: "#f8fafc",
81
- padding: "p-8",
82
- },
83
- },
84
- {
85
- description: "Quote block with styling",
86
- type: "text",
87
- props: {
88
- content:
89
- "<p style='text-align: center'><em>\"Innovation distinguishes between a leader and a follower.\"</em><br><strong>- Steve Jobs</strong></p>",
90
- backgroundColor: "#1e293b",
91
- color: "#f1f5f9",
92
- padding: "p-8",
93
- },
94
- },
95
- {
96
- description: "Multi-paragraph article content",
97
- type: "text",
98
- props: {
99
- content:
100
- "<p>The future of web development is rapidly evolving with new technologies and frameworks emerging every year. <strong>Modern developers</strong> need to stay current with trends while maintaining focus on <em>user experience</em> and performance.</p><p>Our platform provides the tools and resources you need to build <a href='/docs'>exceptional web applications</a> that scale with your business needs.</p><p>Join thousands of developers who trust our solutions for their most critical projects.</p>",
101
- padding: "p-8",
102
- },
103
- },
104
- {
105
- description: "Call-to-action text with bright styling",
106
- type: "text",
107
- props: {
108
- content:
109
- "<p style='text-align: center'><strong>Ready to Get Started?</strong><br>Join over <span style='color: #ef4444'>50,000</span> satisfied customers and transform your business today!</p><p style='text-align: center'><a href='/signup'>Sign up now</a> and get your first month <em>absolutely free</em>.</p>",
110
- backgroundColor: "#fef3c7",
111
- color: "#92400e",
112
- },
113
- },
114
- {
115
- description: "Simple heading with subtle background",
116
- type: "text",
117
- props: {
118
- content:
119
- "<h2>About Our Company</h2><p>We've been serving customers since 2010, building trust through quality products and exceptional service.</p>",
120
- backgroundColor: "#f0f9ff",
121
- },
122
- },
123
- {
124
- description: "Technical documentation snippet",
125
- type: "text",
126
- props: {
127
- content:
128
- "<h4>API Configuration</h4><p>To get started with our API, you'll need to:</p><ol><li>Create an account and <strong>generate an API key</strong></li><li>Install the SDK: <code>npm install @company/sdk</code></li><li>Initialize with your credentials</li></ol><p>For detailed instructions, visit our <a href='/docs/api'>API documentation</a>.</p>",
129
- backgroundColor: "#f8fafc",
130
- padding: "p-8",
131
- },
132
- },
133
- {
134
- description: "Team introduction with formatting",
135
- type: "text",
136
- props: {
137
- content:
138
- "<p style='text-align: center'><strong>Meet Our Team</strong></p><p>Our diverse team of experts brings together decades of experience in technology, design, and business strategy. We're passionate about <em>creating solutions</em> that make a real difference.</p><p><a href='/team'>Learn more about our team</a> and the values that drive us forward.</p>",
139
- padding: "p-8",
140
- color: "#374151",
141
- },
142
- },
143
- {
144
- description: "Warning notice with dark theme",
145
- type: "text",
146
- props: {
147
- content:
148
- "<p><strong>⚠️ Important Notice:</strong><br>Scheduled maintenance will occur on <em>Sunday, March 15th</em> from 2:00 AM to 6:00 AM UTC.</p><p>During this time, some features may be temporarily unavailable. We apologize for any inconvenience.</p>",
149
- backgroundColor: "#dc2626",
150
- color: "#fef2f2",
151
- padding: "p-8",
152
- },
153
- },
154
- {
155
- description: "Success message with green theme",
156
- type: "text",
157
- props: {
158
- content:
159
- "<p style='text-align: center'><strong>✅ Success!</strong><br>Your account has been created successfully.</p><p style='text-align: center'>Check your email for verification instructions and <a href='/dashboard' style='color: #065f46'>start exploring</a> your new dashboard.</p>",
160
- backgroundColor: "#d1fae5",
161
- padding: "p-8",
162
- },
163
- },
164
- ];