blocks-dusted 0.1.10 → 0.1.12

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 (249) hide show
  1. package/README.md +35 -0
  2. package/package.json +5 -2
  3. package/src/cli.js +39 -3
  4. package/src/commands/shop.js +59 -0
  5. package/src/commands/warehouse.js +73 -0
  6. package/src/utils/paths.js +13 -13
  7. package/templates/blocks/DD-Accordion/Component.tsx +229 -0
  8. package/templates/blocks/DD-Accordion/README.md +3 -0
  9. package/templates/blocks/DD-Accordion/config.ts +73 -0
  10. package/templates/blocks/DD-Accordion/manifest.json +75 -0
  11. package/templates/blocks/DD-AnimText/Component.tsx +788 -0
  12. package/templates/blocks/DD-AnimText/README.md +3 -0
  13. package/templates/blocks/DD-AnimText/config.ts +295 -0
  14. package/templates/blocks/DD-AnimText/manifest.json +85 -0
  15. package/templates/blocks/DD-AsideNav/Component.tsx +321 -0
  16. package/templates/blocks/DD-AsideNav/config.ts +204 -0
  17. package/templates/blocks/DD-AsideNav/manifest.json +80 -0
  18. package/templates/blocks/DD-Banner/Component.tsx +51 -0
  19. package/templates/blocks/DD-Banner/config.ts +57 -0
  20. package/templates/blocks/DD-Banner/manifest.json +72 -0
  21. package/templates/blocks/DD-BgLightning/Component.tsx +44 -0
  22. package/templates/blocks/DD-BgLightning/README.md +3 -0
  23. package/templates/blocks/DD-BgLightning/config.ts +97 -0
  24. package/templates/blocks/DD-BgLightning/manifest.json +79 -0
  25. package/templates/blocks/DD-BookCall/Component.tsx +535 -535
  26. package/templates/blocks/DD-BookCall/config.ts +238 -238
  27. package/templates/blocks/DD-ButtonPop/Component.tsx +117 -0
  28. package/templates/blocks/DD-ButtonPop/config.ts +105 -0
  29. package/templates/blocks/DD-ButtonPop/manifest.json +88 -0
  30. package/templates/blocks/DD-ButtonPop/svg-icons/Dust2.tsx +167 -0
  31. package/templates/blocks/DD-Card/Component.tsx +251 -0
  32. package/templates/blocks/DD-Card/README.md +4 -0
  33. package/templates/blocks/DD-Card/config.ts +154 -0
  34. package/templates/blocks/DD-Card/manifest.json +82 -0
  35. package/templates/blocks/DD-CardTemplate01/Component.tsx +140 -140
  36. package/templates/blocks/DD-CardTemplate01/config.ts +106 -106
  37. package/templates/blocks/DD-Carousel-A/Component.tsx +249 -249
  38. package/templates/blocks/DD-Carousel-B/Component.tsx +403 -403
  39. package/templates/blocks/DD-Chip/Component.tsx +250 -0
  40. package/templates/blocks/DD-Chip/EXAMPLES.md +313 -0
  41. package/templates/blocks/DD-Chip/README.md +202 -0
  42. package/templates/blocks/DD-Chip/config.ts +369 -0
  43. package/templates/blocks/DD-Chip/manifest.json +74 -0
  44. package/templates/blocks/DD-ComparisonTable/Component.tsx +256 -256
  45. package/templates/blocks/DD-Contact/Component.tsx +435 -434
  46. package/templates/blocks/DD-Contact/config.ts +22 -22
  47. package/templates/blocks/DD-Counter/Component.tsx +190 -0
  48. package/templates/blocks/DD-Counter/README.md +4 -0
  49. package/templates/blocks/DD-Counter/config.ts +291 -0
  50. package/templates/blocks/DD-Counter/manifest.json +74 -0
  51. package/templates/blocks/DD-CustomCSS/Component.tsx +8 -0
  52. package/templates/blocks/DD-CustomCSS/README.md +4 -0
  53. package/templates/blocks/DD-CustomCSS/addToLayout.md +5 -0
  54. package/templates/blocks/DD-CustomCSS/config.ts +22 -0
  55. package/templates/blocks/DD-CustomCSS/manifest.json +72 -0
  56. package/templates/blocks/DD-CustomCSS/renderCustomCSS.md +7 -0
  57. package/templates/blocks/DD-FeatCat/Component.tsx +302 -302
  58. package/templates/blocks/DD-FeatCat/config.ts +201 -201
  59. package/templates/blocks/DD-FeatStrip/Component.tsx +585 -585
  60. package/templates/blocks/DD-FeatStrip/config.ts +134 -134
  61. package/templates/blocks/DD-FluidBtn/ButtonsEyeCatching.tsx +628 -0
  62. package/templates/blocks/DD-FluidBtn/Component.tsx +43 -0
  63. package/templates/blocks/DD-FluidBtn/README.md +6 -0
  64. package/templates/blocks/DD-FluidBtn/config.ts +102 -0
  65. package/templates/blocks/DD-FluidBtn/manifest.json +86 -0
  66. package/templates/blocks/DD-GooeyInfo/Component.tsx +149 -0
  67. package/templates/blocks/DD-GooeyInfo/config.ts +135 -0
  68. package/templates/blocks/DD-GooeyInfo/manifest.json +72 -0
  69. package/templates/blocks/DD-Hero/Component.tsx +297 -297
  70. package/templates/blocks/DD-Hero/config.ts +267 -267
  71. package/templates/blocks/DD-HorizontalScroll/Component.tsx +936 -936
  72. package/templates/blocks/DD-HorizontalScroll/config.ts +231 -231
  73. package/templates/blocks/DD-Icon/Component.tsx +287 -0
  74. package/templates/blocks/DD-Icon/README.md +4 -0
  75. package/templates/blocks/DD-Icon/config.ts +258 -0
  76. package/templates/blocks/DD-Icon/hooks/revalidateBlockIds.ts +66 -0
  77. package/templates/blocks/DD-Icon/manifest.json +82 -0
  78. package/templates/blocks/DD-IconButton/Component.tsx +455 -0
  79. package/templates/blocks/DD-IconButton/README.md +326 -0
  80. package/templates/blocks/DD-IconButton/config.ts +239 -0
  81. package/templates/blocks/DD-IconButton/manifest.json +85 -0
  82. package/templates/blocks/DD-IdTag/Component.tsx +21 -0
  83. package/templates/blocks/DD-IdTag/README.md +4 -0
  84. package/templates/blocks/DD-IdTag/config.ts +41 -0
  85. package/templates/blocks/DD-IdTag/manifest.json +72 -0
  86. package/templates/blocks/DD-Iframe/Component.tsx +45 -0
  87. package/templates/blocks/DD-Iframe/README.md +4 -0
  88. package/templates/blocks/DD-Iframe/config.ts +47 -0
  89. package/templates/blocks/DD-Iframe/manifest.json +72 -0
  90. package/templates/blocks/DD-IframeMedia/Component.tsx +133 -0
  91. package/templates/blocks/DD-IframeMedia/README.md +4 -0
  92. package/templates/blocks/DD-IframeMedia/config.ts +79 -0
  93. package/templates/blocks/DD-IframeMedia/manifest.json +72 -0
  94. package/templates/blocks/DD-LineAnim/Component.tsx +36 -0
  95. package/templates/blocks/DD-LineAnim/README.md +4 -0
  96. package/templates/blocks/DD-LineAnim/config.ts +90 -0
  97. package/templates/blocks/DD-LineAnim/manifest.json +80 -0
  98. package/templates/blocks/DD-LinkGrid/Component.tsx +119 -0
  99. package/templates/blocks/DD-LinkGrid/README.md +4 -0
  100. package/templates/blocks/DD-LinkGrid/config.ts +51 -0
  101. package/templates/blocks/DD-LinkGrid/manifest.json +74 -0
  102. package/templates/blocks/DD-LogoMarq/Component.tsx +132 -0
  103. package/templates/blocks/DD-LogoMarq/README.md +4 -0
  104. package/templates/blocks/DD-LogoMarq/config.ts +264 -0
  105. package/templates/blocks/DD-LogoMarq/manifest.json +82 -0
  106. package/templates/blocks/DD-Lottie/Component.tsx +459 -0
  107. package/templates/blocks/DD-Lottie/README.md +4 -0
  108. package/templates/blocks/DD-Lottie/config.ts +379 -0
  109. package/templates/blocks/DD-Lottie/index.tsx +28 -0
  110. package/templates/blocks/DD-Lottie/manifest.json +83 -0
  111. package/templates/blocks/DD-MagicBento/Component.tsx +777 -0
  112. package/templates/blocks/DD-MagicBento/README.md +4 -0
  113. package/templates/blocks/DD-MagicBento/config.ts +264 -0
  114. package/templates/blocks/DD-MagicBento/manifest.json +74 -0
  115. package/templates/blocks/DD-MasonaryMedia/Component.tsx +545 -545
  116. package/templates/blocks/DD-MasonaryMedia/config.ts +2 -2
  117. package/templates/blocks/DD-MasonaryMedia/vendor.d.ts +2 -2
  118. package/templates/blocks/DD-Masonry/Component.tsx +645 -0
  119. package/templates/blocks/DD-Masonry/README.md +4 -0
  120. package/templates/blocks/DD-Masonry/config.ts +475 -0
  121. package/templates/blocks/DD-Masonry/manifest.json +82 -0
  122. package/templates/blocks/DD-Pricing/Component.tsx +2 -5
  123. package/templates/blocks/DD-Process/Component.tsx +2 -4
  124. package/templates/blocks/DD-Process/config.ts +150 -150
  125. package/templates/blocks/DD-Progress/Component.tsx +156 -0
  126. package/templates/blocks/DD-Progress/README.md +4 -0
  127. package/templates/blocks/DD-Progress/config.ts +175 -0
  128. package/templates/blocks/DD-Progress/manifest.json +74 -0
  129. package/templates/blocks/DD-ProjHeader/Component.tsx +91 -0
  130. package/templates/blocks/DD-ProjHeader/README.md +4 -0
  131. package/templates/blocks/DD-ProjHeader/config.ts +96 -0
  132. package/templates/blocks/DD-ProjHeader/manifest.json +72 -0
  133. package/templates/blocks/DD-ProjSlider/Component.tsx +123 -0
  134. package/templates/blocks/DD-ProjSlider/README.md +4 -0
  135. package/templates/blocks/DD-ProjSlider/config.ts +64 -0
  136. package/templates/blocks/DD-ProjSlider/manifest.json +72 -0
  137. package/templates/blocks/DD-ScrollText/Component.tsx +114 -0
  138. package/templates/blocks/DD-ScrollText/README.md +4 -0
  139. package/templates/blocks/DD-ScrollText/config.ts +58 -0
  140. package/templates/blocks/DD-ScrollText/manifest.json +72 -0
  141. package/templates/blocks/DD-Section/Component.tsx +266 -266
  142. package/templates/blocks/DD-Separator/Component.tsx +66 -0
  143. package/templates/blocks/DD-Separator/README.md +4 -0
  144. package/templates/blocks/DD-Separator/config.ts +58 -0
  145. package/templates/blocks/DD-Separator/manifest.json +72 -0
  146. package/templates/blocks/DD-Services/Component.tsx +176 -176
  147. package/templates/blocks/DD-Services/config.ts +149 -149
  148. package/templates/blocks/DD-ShowcaseGrid/Component.tsx +307 -307
  149. package/templates/blocks/DD-Slider-A/Component.tsx +1 -1
  150. package/templates/blocks/DD-StackCards/Component.tsx +1 -1
  151. package/templates/blocks/DD-StackCards/config.ts +399 -399
  152. package/templates/blocks/DD-Team/Component.tsx +247 -247
  153. package/templates/blocks/DD-Team/config.ts +173 -173
  154. package/templates/blocks/DD-TeamCards/Component.tsx +251 -0
  155. package/templates/blocks/DD-TeamCards/README.md +4 -0
  156. package/templates/blocks/DD-TeamCards/config.ts +302 -0
  157. package/templates/blocks/DD-TeamCards/manifest.json +74 -0
  158. package/templates/blocks/DD-TechStack/Component.tsx +174 -174
  159. package/templates/blocks/DD-TechStack/config.ts +153 -153
  160. package/templates/blocks/DD-TestMarq/Component.tsx +132 -0
  161. package/templates/blocks/DD-TestMarq/README.md +4 -0
  162. package/templates/blocks/DD-TestMarq/RowLabel.tsx +9 -0
  163. package/templates/blocks/DD-TestMarq/config.ts +88 -0
  164. package/templates/blocks/DD-TestMarq/manifest.json +72 -0
  165. package/templates/blocks/DD-Testim/Component.tsx +247 -0
  166. package/templates/blocks/DD-Testim/README.md +4 -0
  167. package/templates/blocks/DD-Testim/config.ts +101 -0
  168. package/templates/blocks/DD-Testim/manifest.json +75 -0
  169. package/templates/blocks/DD-Testim2/Component.tsx +256 -0
  170. package/templates/blocks/DD-Testim2/README.md +4 -0
  171. package/templates/blocks/DD-Testim2/config.ts +100 -0
  172. package/templates/blocks/DD-Testim2/manifest.json +74 -0
  173. package/templates/blocks/DD-Testimonials/Component.tsx +139 -147
  174. package/templates/blocks/DD-Testimonials/config.ts +120 -120
  175. package/templates/blocks/DD-TextMarq/Component.tsx +157 -0
  176. package/templates/blocks/DD-TextMarq/README.md +4 -0
  177. package/templates/blocks/DD-TextMarq/config.ts +237 -0
  178. package/templates/blocks/DD-TextMarq/manifest.json +82 -0
  179. package/templates/blocks/DD-Thanks/Component.tsx +501 -0
  180. package/templates/blocks/DD-Thanks/README.md +4 -0
  181. package/templates/blocks/DD-Thanks/config.ts +224 -0
  182. package/templates/blocks/DD-Thanks/manifest.json +72 -0
  183. package/templates/blocks/DD-VertMarq/Component.tsx +154 -0
  184. package/templates/blocks/DD-VertMarq/README.md +4 -0
  185. package/templates/blocks/DD-VertMarq/config.ts +236 -0
  186. package/templates/blocks/DD-VertMarq/dist/index.css +6 -0
  187. package/templates/blocks/DD-VertMarq/dist/index.min.css +1 -0
  188. package/templates/blocks/DD-VertMarq/manifest.json +74 -0
  189. package/templates/blocks/DD-Work/Component.tsx +318 -315
  190. package/templates/blocks/DD-Work/config.ts +165 -165
  191. package/templates/blocks/DD-Work-B/Component.tsx +294 -294
  192. package/templates/blocks/DDHG-CTASection2/Component.tsx +185 -0
  193. package/templates/blocks/DDHG-CTASection2/config.ts +140 -0
  194. package/templates/blocks/DDHG-CTASection2/manifest.json +45 -0
  195. package/templates/blocks/DDHG-HighlightArc/Component.tsx +243 -0
  196. package/templates/blocks/DDHG-HighlightArc/config.ts +85 -0
  197. package/templates/blocks/DDHG-HighlightArc/manifest.json +46 -0
  198. package/templates/blocks/DDHG-LogoMarquee/Component.tsx +143 -0
  199. package/templates/blocks/DDHG-LogoMarquee/config.ts +154 -0
  200. package/templates/blocks/DDHG-LogoMarquee/manifest.json +39 -0
  201. package/templates/blocks/DDHG-NavCodeGrid/Component.tsx +227 -0
  202. package/templates/blocks/DDHG-NavCodeGrid/config.ts +64 -0
  203. package/templates/blocks/DDHG-NavCodeGrid/manifest.json +45 -0
  204. package/templates/blocks/DDHG-ProcessSec/Component.tsx +574 -0
  205. package/templates/blocks/DDHG-ProcessSec/config.ts +170 -0
  206. package/templates/blocks/DDHG-ProcessSec/manifest.json +56 -0
  207. package/templates/blocks/DDHG-ServiceDetails/Component.tsx +164 -0
  208. package/templates/blocks/DDHG-ServiceDetails/ServiceDetailCard.tsx +390 -0
  209. package/templates/blocks/DDHG-ServiceDetails/config.ts +77 -0
  210. package/templates/blocks/DDHG-ServiceDetails/manifest.json +50 -0
  211. package/templates/blocks/DDHG-ServiceHero/Component.tsx +234 -0
  212. package/templates/blocks/DDHG-ServiceHero/config.ts +49 -0
  213. package/templates/blocks/DDHG-ServiceHero/manifest.json +26 -0
  214. package/templates/blocks/DDHG-ServiceOverview/Component.tsx +277 -0
  215. package/templates/blocks/DDHG-ServiceOverview/config.ts +64 -0
  216. package/templates/blocks/DDHG-ServiceOverview/manifest.json +44 -0
  217. package/templates/blocks/DDHG-StatsFAQ/Component.tsx +389 -0
  218. package/templates/blocks/DDHG-StatsFAQ/config.ts +204 -0
  219. package/templates/blocks/DDHG-StatsFAQ/manifest.json +45 -0
  220. package/templates/blocks/DDHG-TeamCards/Component.tsx +169 -0
  221. package/templates/blocks/DDHG-TeamCards/config.ts +48 -0
  222. package/templates/blocks/DDHG-TeamCards/manifest.json +29 -0
  223. package/templates/shared/src/components/BgLightning/index.tsx +242 -0
  224. package/templates/shared/src/components/ui/ShareButton/index.tsx +80 -0
  225. package/templates/shared/src/components/ui/anims/FadeOnScroll.tsx +48 -0
  226. package/templates/shared/src/components/ui/anims/FadeUpOnInView.tsx +63 -0
  227. package/templates/shared/src/components/ui/anims/GlareHover.tsx +111 -0
  228. package/templates/shared/src/components/ui/anims/LineAnims.tsx +81 -0
  229. package/templates/shared/src/components/ui/anims/TitleAnims01.tsx +54 -0
  230. package/templates/shared/src/components/ui/anims/animation-container.tsx +29 -0
  231. package/templates/shared/src/components/ui/anims/blur-in.tsx +26 -0
  232. package/templates/shared/src/components/ui/anims/counter.tsx +53 -0
  233. package/templates/shared/src/components/ui/anims/fade.tsx +83 -0
  234. package/templates/shared/src/components/ui/anims/gradual-spacing.tsx +39 -0
  235. package/templates/shared/src/components/ui/anims/pull-up.tsx +93 -0
  236. package/templates/shared/src/components/ui/anims/reveal-text.tsx +76 -0
  237. package/templates/shared/src/components/ui/anims/rotate-words.tsx +43 -0
  238. package/templates/shared/src/components/ui/anims/shiny-text.tsx +58 -0
  239. package/templates/shared/src/components/ui/anims/shuffle-text.tsx +85 -0
  240. package/templates/shared/src/components/ui/anims/split-text.tsx +211 -0
  241. package/templates/shared/src/components/ui/anims/staggered-fade.tsx +133 -0
  242. package/templates/shared/src/components/ui/anims/text-scroll.tsx +111 -0
  243. package/templates/shared/src/components/ui/anims/typing-effect.tsx +112 -0
  244. package/templates/shared/src/components/ui/button-dusted-fluid/index.tsx +1521 -0
  245. package/templates/shared/src/components/ui/separator.tsx +85 -0
  246. package/templates/shared/src/hooks/useBodyScrollLock.ts +97 -0
  247. package/templates/shared/src/hooks/useClickOutside.ts +28 -0
  248. package/templates/shared/src/utilities/renderCustomCSS.ts +5 -0
  249. package/templates/shared/src/utilities/smoothScroll.ts +65 -0
@@ -1,267 +1,267 @@
1
- import type { Block } from 'payload'
2
-
3
- export const DDHero: Block = {
4
- slug: 'DD-Hero',
5
- interfaceName: 'DDHero',
6
- labels: {
7
- singular: 'Studio Hero',
8
- plural: 'Studio Heroes'
9
- },
10
- fields: [
11
- {
12
- type: 'tabs',
13
- tabs: [
14
- {
15
- label: 'Content',
16
- fields: [
17
- {
18
- name: 'badge',
19
- type: 'group',
20
- label: 'Badge',
21
- fields: [
22
- {
23
- name: 'show',
24
- type: 'checkbox',
25
- label: 'Show Badge',
26
- defaultValue: true
27
- },
28
- {
29
- name: 'text',
30
- type: 'text',
31
- label: 'Badge Text',
32
- defaultValue: 'Accepting projects — Q2 2026',
33
- admin: {
34
- condition: (_, siblingData) => siblingData?.show
35
- }
36
- }
37
- ]
38
- },
39
- {
40
- name: 'headlineMain',
41
- type: 'text',
42
- label: 'Headline (Main)',
43
- defaultValue: 'We build what',
44
- required: true
45
- },
46
- {
47
- name: 'headlineAccent',
48
- type: 'text',
49
- label: 'Headline (Accent / Second Line)',
50
- defaultValue: 'you imagine',
51
- required: true
52
- },
53
- {
54
- name: 'description',
55
- type: 'textarea',
56
- label: 'Description',
57
- defaultValue:
58
- 'DesignsDusted Studio is a small, focused team of designers and developers. We take on select projects where we can make a real impact — from product design to full-stack delivery.'
59
- },
60
-
61
- // BasicButton hidden
62
- {
63
- name: 'primaryCta',
64
- type: 'group',
65
- hidden: true,
66
- label: 'Primary CTA Button',
67
- fields: [
68
- {
69
- name: 'label',
70
- type: 'text',
71
- label: 'Label',
72
- defaultValue: 'Start a Project'
73
- },
74
- {
75
- name: 'href',
76
- type: 'text',
77
- label: 'Link',
78
- defaultValue: '#contact'
79
- },
80
- {
81
- name: 'iconName',
82
- type: 'text',
83
- label: 'Lucide Icon Name',
84
- defaultValue: 'SendHorizonal',
85
- admin: {
86
- description: 'e.g. SendHorizonal, ArrowRight, Mail'
87
- }
88
- }
89
- ]
90
- },
91
- {
92
- name: 'secondaryCta',
93
- type: 'group',
94
- hidden: true,
95
- label: 'Secondary CTA Button',
96
- fields: [
97
- {
98
- name: 'label',
99
- type: 'text',
100
- label: 'Label',
101
- defaultValue: 'View Our Work'
102
- },
103
- {
104
- name: 'href',
105
- type: 'text',
106
- label: 'Link',
107
- defaultValue: '#work'
108
- },
109
- {
110
- name: 'iconName',
111
- type: 'text',
112
- label: 'Lucide Icon Name',
113
- defaultValue: 'Images',
114
- admin: {
115
- description: 'e.g. Images, GalleryHorizontal, Eye'
116
- }
117
- }
118
- ]
119
- },
120
- // DustedFluidButtons
121
- {
122
- type: 'group',
123
- label: 'CTA Buttons',
124
- fields: [
125
- {
126
- name: 'showButtons',
127
- type: 'checkbox',
128
- label: 'Show Buttons',
129
- defaultValue: true
130
- },
131
- {
132
- name: 'buttons',
133
- type: 'array',
134
- label: 'Buttons',
135
- maxRows: 3,
136
- admin: {
137
- condition: (_, siblingData) => siblingData?.showButtons
138
- },
139
- fields: [
140
- {
141
- name: 'variant',
142
- type: 'select',
143
- label: 'Button Variant',
144
- options: [
145
- { label: 'V1', value: 'v1' },
146
- { label: 'V2', value: 'v2' },
147
- { label: 'V3', value: 'v3' }
148
- ],
149
- defaultValue: 'v1'
150
- },
151
- {
152
- name: 'icon',
153
- type: 'text',
154
- label: 'Icon Name (Lucide)',
155
- defaultValue: 'Goal',
156
- admin: {
157
- description:
158
- 'Enter a Lucide icon name. (e.g., ArrowRight, ChevronRight, ExternalLink)'
159
- }
160
- },
161
- {
162
- name: 'label',
163
- type: 'text',
164
- label: 'Button Label',
165
- required: true
166
- },
167
- {
168
- name: 'class',
169
- type: 'text',
170
- label: 'Extra CSS Class',
171
- admin: {
172
- description:
173
- 'Additional class(es) appended to the button (e.g. my-4, !rounded-full)'
174
- }
175
- }
176
- ],
177
- defaultValue: [
178
- { variant: 'v1', icon: 'Goal', label: 'Explore Components' },
179
- { variant: 'v2', icon: 'Goal', label: 'Choose Lane' },
180
- { variant: 'v3', icon: 'Feather', label: 'How it works' }
181
- ]
182
- }
183
- ]
184
- },
185
- // Stats
186
- {
187
- name: 'stats',
188
- type: 'array',
189
- label: 'Stats',
190
- minRows: 0,
191
- maxRows: 6,
192
- fields: [
193
- {
194
- name: 'value',
195
- type: 'text',
196
- label: 'Value',
197
- required: true
198
- },
199
- {
200
- name: 'label',
201
- type: 'text',
202
- label: 'Label',
203
- required: true
204
- }
205
- ],
206
- defaultValue: [
207
- { value: '40+', label: 'Projects Delivered' },
208
- { value: '98%', label: 'Client Satisfaction' },
209
- { value: '6yr', label: 'In Business' }
210
- ]
211
- }
212
- ]
213
- },
214
- {
215
- label: 'Background',
216
- fields: [
217
- {
218
- name: 'backgroundImage',
219
- type: 'upload',
220
- relationTo: 'media',
221
- label: 'Background Image',
222
- admin: {
223
- description: 'Full-bleed background image for the hero section.'
224
- }
225
- },
226
- {
227
- name: 'backgroundImageFallbackUrl',
228
- type: 'text',
229
- label: 'Fallback Background URL',
230
- admin: {
231
- description: 'Used when no background image is uploaded.'
232
- }
233
- }
234
- ]
235
- },
236
- {
237
- label: 'Settings',
238
- fields: [
239
- {
240
- name: 'sectionId',
241
- type: 'text',
242
- label: 'Section ID',
243
- admin: {
244
- description: 'Unique ID for anchor links (e.g. "hero")'
245
- }
246
- },
247
- {
248
- name: 'showScrollIndicator',
249
- type: 'checkbox',
250
- label: 'Show Scroll Indicator',
251
- defaultValue: true
252
- },
253
- {
254
- name: 'customCSS',
255
- type: 'code',
256
- label: 'Custom CSS',
257
- admin: {
258
- language: 'css',
259
- description: 'Add custom CSS styles for this block.'
260
- }
261
- }
262
- ]
263
- }
264
- ]
265
- }
266
- ]
267
- }
1
+ import type { Block } from 'payload'
2
+
3
+ export const DDHero: Block = {
4
+ slug: 'DD-Hero',
5
+ interfaceName: 'DDHero',
6
+ labels: {
7
+ singular: 'Studio Hero',
8
+ plural: 'Studio Heroes'
9
+ },
10
+ fields: [
11
+ {
12
+ type: 'tabs',
13
+ tabs: [
14
+ {
15
+ label: 'Content',
16
+ fields: [
17
+ {
18
+ name: 'badge',
19
+ type: 'group',
20
+ label: 'Badge',
21
+ fields: [
22
+ {
23
+ name: 'show',
24
+ type: 'checkbox',
25
+ label: 'Show Badge',
26
+ defaultValue: true
27
+ },
28
+ {
29
+ name: 'text',
30
+ type: 'text',
31
+ label: 'Badge Text',
32
+ defaultValue: 'Accepting projects — Q2 2026',
33
+ admin: {
34
+ condition: (_, siblingData) => siblingData?.show
35
+ }
36
+ }
37
+ ]
38
+ },
39
+ {
40
+ name: 'headlineMain',
41
+ type: 'text',
42
+ label: 'Headline (Main)',
43
+ defaultValue: 'We build what',
44
+ required: true
45
+ },
46
+ {
47
+ name: 'headlineAccent',
48
+ type: 'text',
49
+ label: 'Headline (Accent / Second Line)',
50
+ defaultValue: 'you imagine',
51
+ required: true
52
+ },
53
+ {
54
+ name: 'description',
55
+ type: 'textarea',
56
+ label: 'Description',
57
+ defaultValue:
58
+ 'DesignsDusted Studio is a small, focused team of designers and developers. We take on select projects where we can make a real impact — from product design to full-stack delivery.'
59
+ },
60
+
61
+ // BasicButton hidden
62
+ {
63
+ name: 'primaryCta',
64
+ type: 'group',
65
+ hidden: true,
66
+ label: 'Primary CTA Button',
67
+ fields: [
68
+ {
69
+ name: 'label',
70
+ type: 'text',
71
+ label: 'Label',
72
+ defaultValue: 'Start a Project'
73
+ },
74
+ {
75
+ name: 'href',
76
+ type: 'text',
77
+ label: 'Link',
78
+ defaultValue: '#contact'
79
+ },
80
+ {
81
+ name: 'iconName',
82
+ type: 'text',
83
+ label: 'Lucide Icon Name',
84
+ defaultValue: 'SendHorizonal',
85
+ admin: {
86
+ description: 'e.g. SendHorizonal, ArrowRight, Mail'
87
+ }
88
+ }
89
+ ]
90
+ },
91
+ {
92
+ name: 'secondaryCta',
93
+ type: 'group',
94
+ hidden: true,
95
+ label: 'Secondary CTA Button',
96
+ fields: [
97
+ {
98
+ name: 'label',
99
+ type: 'text',
100
+ label: 'Label',
101
+ defaultValue: 'View Our Work'
102
+ },
103
+ {
104
+ name: 'href',
105
+ type: 'text',
106
+ label: 'Link',
107
+ defaultValue: '#work'
108
+ },
109
+ {
110
+ name: 'iconName',
111
+ type: 'text',
112
+ label: 'Lucide Icon Name',
113
+ defaultValue: 'Images',
114
+ admin: {
115
+ description: 'e.g. Images, GalleryHorizontal, Eye'
116
+ }
117
+ }
118
+ ]
119
+ },
120
+ // DustedFluidButtons
121
+ {
122
+ type: 'group',
123
+ label: 'CTA Buttons',
124
+ fields: [
125
+ {
126
+ name: 'showButtons',
127
+ type: 'checkbox',
128
+ label: 'Show Buttons',
129
+ defaultValue: true
130
+ },
131
+ {
132
+ name: 'buttons',
133
+ type: 'array',
134
+ label: 'Buttons',
135
+ maxRows: 3,
136
+ admin: {
137
+ condition: (_, siblingData) => siblingData?.showButtons
138
+ },
139
+ fields: [
140
+ {
141
+ name: 'variant',
142
+ type: 'select',
143
+ label: 'Button Variant',
144
+ options: [
145
+ { label: 'V1', value: 'v1' },
146
+ { label: 'V2', value: 'v2' },
147
+ { label: 'V3', value: 'v3' }
148
+ ],
149
+ defaultValue: 'v1'
150
+ },
151
+ {
152
+ name: 'icon',
153
+ type: 'text',
154
+ label: 'Icon Name (Lucide)',
155
+ defaultValue: 'Goal',
156
+ admin: {
157
+ description:
158
+ 'Enter a Lucide icon name. (e.g., ArrowRight, ChevronRight, ExternalLink)'
159
+ }
160
+ },
161
+ {
162
+ name: 'label',
163
+ type: 'text',
164
+ label: 'Button Label',
165
+ required: true
166
+ },
167
+ {
168
+ name: 'class',
169
+ type: 'text',
170
+ label: 'Extra CSS Class',
171
+ admin: {
172
+ description:
173
+ 'Additional class(es) appended to the button (e.g. my-4, !rounded-full)'
174
+ }
175
+ }
176
+ ],
177
+ defaultValue: [
178
+ { variant: 'v1', icon: 'Goal', label: 'Explore Components' },
179
+ { variant: 'v2', icon: 'Goal', label: 'Choose Lane' },
180
+ { variant: 'v3', icon: 'Feather', label: 'How it works' }
181
+ ]
182
+ }
183
+ ]
184
+ },
185
+ // Stats
186
+ {
187
+ name: 'stats',
188
+ type: 'array',
189
+ label: 'Stats',
190
+ minRows: 0,
191
+ maxRows: 6,
192
+ fields: [
193
+ {
194
+ name: 'value',
195
+ type: 'text',
196
+ label: 'Value',
197
+ required: true
198
+ },
199
+ {
200
+ name: 'label',
201
+ type: 'text',
202
+ label: 'Label',
203
+ required: true
204
+ }
205
+ ],
206
+ defaultValue: [
207
+ { value: '40+', label: 'Projects Delivered' },
208
+ { value: '98%', label: 'Client Satisfaction' },
209
+ { value: '6yr', label: 'In Business' }
210
+ ]
211
+ }
212
+ ]
213
+ },
214
+ {
215
+ label: 'Background',
216
+ fields: [
217
+ {
218
+ name: 'backgroundImage',
219
+ type: 'upload',
220
+ relationTo: 'media',
221
+ label: 'Background Image',
222
+ admin: {
223
+ description: 'Full-bleed background image for the hero section.'
224
+ }
225
+ },
226
+ {
227
+ name: 'backgroundImageFallbackUrl',
228
+ type: 'text',
229
+ label: 'Fallback Background URL',
230
+ admin: {
231
+ description: 'Used when no background image is uploaded.'
232
+ }
233
+ }
234
+ ]
235
+ },
236
+ {
237
+ label: 'Settings',
238
+ fields: [
239
+ {
240
+ name: 'sectionId',
241
+ type: 'text',
242
+ label: 'Section ID',
243
+ admin: {
244
+ description: 'Unique ID for anchor links (e.g. "hero")'
245
+ }
246
+ },
247
+ {
248
+ name: 'showScrollIndicator',
249
+ type: 'checkbox',
250
+ label: 'Show Scroll Indicator',
251
+ defaultValue: true
252
+ },
253
+ {
254
+ name: 'customCSS',
255
+ type: 'code',
256
+ label: 'Custom CSS',
257
+ admin: {
258
+ language: 'css',
259
+ description: 'Add custom CSS styles for this block.'
260
+ }
261
+ }
262
+ ]
263
+ }
264
+ ]
265
+ }
266
+ ]
267
+ }