blocks-dusted 0.1.9 → 0.1.11

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 (248) hide show
  1. package/README.md +35 -0
  2. package/package.json +1 -1
  3. package/src/utils/paths.js +13 -13
  4. package/templates/blocks/DD-Accordion/Component.tsx +229 -0
  5. package/templates/blocks/DD-Accordion/README.md +3 -0
  6. package/templates/blocks/DD-Accordion/config.ts +73 -0
  7. package/templates/blocks/DD-Accordion/manifest.json +75 -0
  8. package/templates/blocks/DD-AnimText/Component.tsx +788 -0
  9. package/templates/blocks/DD-AnimText/README.md +3 -0
  10. package/templates/blocks/DD-AnimText/config.ts +295 -0
  11. package/templates/blocks/DD-AnimText/manifest.json +85 -0
  12. package/templates/blocks/DD-AsideNav/Component.tsx +321 -0
  13. package/templates/blocks/DD-AsideNav/config.ts +204 -0
  14. package/templates/blocks/DD-AsideNav/manifest.json +80 -0
  15. package/templates/blocks/DD-Banner/Component.tsx +51 -0
  16. package/templates/blocks/DD-Banner/config.ts +57 -0
  17. package/templates/blocks/DD-Banner/manifest.json +72 -0
  18. package/templates/blocks/DD-BgLightning/Component.tsx +44 -0
  19. package/templates/blocks/DD-BgLightning/README.md +3 -0
  20. package/templates/blocks/DD-BgLightning/config.ts +97 -0
  21. package/templates/blocks/DD-BgLightning/manifest.json +79 -0
  22. package/templates/blocks/DD-BookCall/Component.tsx +10 -11
  23. package/templates/blocks/DD-BookCall/config.ts +238 -238
  24. package/templates/blocks/DD-ButtonPop/Component.tsx +117 -0
  25. package/templates/blocks/DD-ButtonPop/config.ts +105 -0
  26. package/templates/blocks/DD-ButtonPop/manifest.json +88 -0
  27. package/templates/blocks/DD-ButtonPop/svg-icons/Dust2.tsx +167 -0
  28. package/templates/blocks/DD-Card/Component.tsx +251 -0
  29. package/templates/blocks/DD-Card/README.md +4 -0
  30. package/templates/blocks/DD-Card/config.ts +154 -0
  31. package/templates/blocks/DD-Card/manifest.json +82 -0
  32. package/templates/blocks/DD-CardTemplate01/Component.tsx +5 -6
  33. package/templates/blocks/DD-CardTemplate01/config.ts +106 -106
  34. package/templates/blocks/DD-Carousel-A/Component.tsx +249 -249
  35. package/templates/blocks/DD-Carousel-B/Component.tsx +403 -403
  36. package/templates/blocks/DD-Chip/Component.tsx +250 -0
  37. package/templates/blocks/DD-Chip/EXAMPLES.md +313 -0
  38. package/templates/blocks/DD-Chip/README.md +202 -0
  39. package/templates/blocks/DD-Chip/config.ts +369 -0
  40. package/templates/blocks/DD-Chip/manifest.json +74 -0
  41. package/templates/blocks/DD-ComparisonTable/Component.tsx +256 -256
  42. package/templates/blocks/DD-Contact/Component.tsx +434 -434
  43. package/templates/blocks/DD-Contact/config.ts +22 -22
  44. package/templates/blocks/DD-Counter/Component.tsx +190 -0
  45. package/templates/blocks/DD-Counter/README.md +4 -0
  46. package/templates/blocks/DD-Counter/config.ts +291 -0
  47. package/templates/blocks/DD-Counter/manifest.json +74 -0
  48. package/templates/blocks/DD-CustomCSS/Component.tsx +8 -0
  49. package/templates/blocks/DD-CustomCSS/README.md +4 -0
  50. package/templates/blocks/DD-CustomCSS/addToLayout.md +5 -0
  51. package/templates/blocks/DD-CustomCSS/config.ts +22 -0
  52. package/templates/blocks/DD-CustomCSS/manifest.json +72 -0
  53. package/templates/blocks/DD-CustomCSS/renderCustomCSS.md +7 -0
  54. package/templates/blocks/DD-FeatCat/Component.tsx +302 -302
  55. package/templates/blocks/DD-FeatCat/config.ts +201 -201
  56. package/templates/blocks/DD-FeatStrip/Component.tsx +585 -585
  57. package/templates/blocks/DD-FeatStrip/config.ts +134 -134
  58. package/templates/blocks/DD-FluidBtn/ButtonsEyeCatching.tsx +628 -0
  59. package/templates/blocks/DD-FluidBtn/Component.tsx +43 -0
  60. package/templates/blocks/DD-FluidBtn/README.md +6 -0
  61. package/templates/blocks/DD-FluidBtn/config.ts +102 -0
  62. package/templates/blocks/DD-FluidBtn/manifest.json +86 -0
  63. package/templates/blocks/DD-GooeyInfo/Component.tsx +149 -0
  64. package/templates/blocks/DD-GooeyInfo/config.ts +135 -0
  65. package/templates/blocks/DD-GooeyInfo/manifest.json +72 -0
  66. package/templates/blocks/DD-Hero/Component.tsx +40 -17
  67. package/templates/blocks/DD-Hero/config.ts +267 -267
  68. package/templates/blocks/DD-HorizontalScroll/Component.tsx +4 -2
  69. package/templates/blocks/DD-HorizontalScroll/config.ts +231 -231
  70. package/templates/blocks/DD-Icon/Component.tsx +287 -0
  71. package/templates/blocks/DD-Icon/README.md +4 -0
  72. package/templates/blocks/DD-Icon/config.ts +258 -0
  73. package/templates/blocks/DD-Icon/hooks/revalidateBlockIds.ts +66 -0
  74. package/templates/blocks/DD-Icon/manifest.json +82 -0
  75. package/templates/blocks/DD-IconButton/Component.tsx +455 -0
  76. package/templates/blocks/DD-IconButton/README.md +326 -0
  77. package/templates/blocks/DD-IconButton/config.ts +239 -0
  78. package/templates/blocks/DD-IconButton/manifest.json +85 -0
  79. package/templates/blocks/DD-IdTag/Component.tsx +21 -0
  80. package/templates/blocks/DD-IdTag/README.md +4 -0
  81. package/templates/blocks/DD-IdTag/config.ts +41 -0
  82. package/templates/blocks/DD-IdTag/manifest.json +72 -0
  83. package/templates/blocks/DD-Iframe/Component.tsx +45 -0
  84. package/templates/blocks/DD-Iframe/README.md +4 -0
  85. package/templates/blocks/DD-Iframe/config.ts +47 -0
  86. package/templates/blocks/DD-Iframe/manifest.json +72 -0
  87. package/templates/blocks/DD-IframeMedia/Component.tsx +129 -0
  88. package/templates/blocks/DD-IframeMedia/README.md +4 -0
  89. package/templates/blocks/DD-IframeMedia/config.ts +79 -0
  90. package/templates/blocks/DD-IframeMedia/manifest.json +72 -0
  91. package/templates/blocks/DD-LineAnim/Component.tsx +36 -0
  92. package/templates/blocks/DD-LineAnim/README.md +4 -0
  93. package/templates/blocks/DD-LineAnim/config.ts +90 -0
  94. package/templates/blocks/DD-LineAnim/manifest.json +80 -0
  95. package/templates/blocks/DD-LinkGrid/Component.tsx +119 -0
  96. package/templates/blocks/DD-LinkGrid/README.md +4 -0
  97. package/templates/blocks/DD-LinkGrid/config.ts +51 -0
  98. package/templates/blocks/DD-LinkGrid/manifest.json +74 -0
  99. package/templates/blocks/DD-LogoMarq/Component.tsx +132 -0
  100. package/templates/blocks/DD-LogoMarq/README.md +4 -0
  101. package/templates/blocks/DD-LogoMarq/config.ts +264 -0
  102. package/templates/blocks/DD-LogoMarq/manifest.json +82 -0
  103. package/templates/blocks/DD-Lottie/Component.tsx +459 -0
  104. package/templates/blocks/DD-Lottie/README.md +4 -0
  105. package/templates/blocks/DD-Lottie/config.ts +379 -0
  106. package/templates/blocks/DD-Lottie/index.tsx +28 -0
  107. package/templates/blocks/DD-Lottie/manifest.json +83 -0
  108. package/templates/blocks/DD-MagicBento/Component.tsx +777 -0
  109. package/templates/blocks/DD-MagicBento/README.md +4 -0
  110. package/templates/blocks/DD-MagicBento/config.ts +264 -0
  111. package/templates/blocks/DD-MagicBento/manifest.json +74 -0
  112. package/templates/blocks/DD-MasonaryMedia/Component.tsx +547 -545
  113. package/templates/blocks/DD-MasonaryMedia/config.ts +2 -2
  114. package/templates/blocks/DD-MasonaryMedia/vendor.d.ts +2 -2
  115. package/templates/blocks/DD-Masonry/Component.tsx +645 -0
  116. package/templates/blocks/DD-Masonry/README.md +4 -0
  117. package/templates/blocks/DD-Masonry/config.ts +475 -0
  118. package/templates/blocks/DD-Masonry/manifest.json +82 -0
  119. package/templates/blocks/DD-Pricing/Component.tsx +372 -372
  120. package/templates/blocks/DD-Process/Component.tsx +149 -149
  121. package/templates/blocks/DD-Process/config.ts +150 -150
  122. package/templates/blocks/DD-Progress/Component.tsx +141 -0
  123. package/templates/blocks/DD-Progress/README.md +4 -0
  124. package/templates/blocks/DD-Progress/config.ts +175 -0
  125. package/templates/blocks/DD-Progress/manifest.json +74 -0
  126. package/templates/blocks/DD-ProjHeader/Component.tsx +91 -0
  127. package/templates/blocks/DD-ProjHeader/README.md +4 -0
  128. package/templates/blocks/DD-ProjHeader/config.ts +96 -0
  129. package/templates/blocks/DD-ProjHeader/manifest.json +72 -0
  130. package/templates/blocks/DD-ProjSlider/Component.tsx +123 -0
  131. package/templates/blocks/DD-ProjSlider/README.md +4 -0
  132. package/templates/blocks/DD-ProjSlider/config.ts +64 -0
  133. package/templates/blocks/DD-ProjSlider/manifest.json +72 -0
  134. package/templates/blocks/DD-ScrollText/Component.tsx +114 -0
  135. package/templates/blocks/DD-ScrollText/README.md +4 -0
  136. package/templates/blocks/DD-ScrollText/config.ts +58 -0
  137. package/templates/blocks/DD-ScrollText/manifest.json +72 -0
  138. package/templates/blocks/DD-Section/Component.tsx +266 -266
  139. package/templates/blocks/DD-Separator/Component.tsx +66 -0
  140. package/templates/blocks/DD-Separator/README.md +4 -0
  141. package/templates/blocks/DD-Separator/config.ts +58 -0
  142. package/templates/blocks/DD-Separator/manifest.json +72 -0
  143. package/templates/blocks/DD-Services/Component.tsx +176 -176
  144. package/templates/blocks/DD-Services/config.ts +149 -149
  145. package/templates/blocks/DD-ShowcaseGrid/Component.tsx +307 -307
  146. package/templates/blocks/DD-Slider-A/Component.tsx +237 -237
  147. package/templates/blocks/DD-StackCards/Component.tsx +473 -473
  148. package/templates/blocks/DD-StackCards/config.ts +399 -399
  149. package/templates/blocks/DD-Team/Component.tsx +247 -247
  150. package/templates/blocks/DD-Team/config.ts +173 -173
  151. package/templates/blocks/DD-TeamCards/Component.tsx +251 -0
  152. package/templates/blocks/DD-TeamCards/README.md +4 -0
  153. package/templates/blocks/DD-TeamCards/config.ts +302 -0
  154. package/templates/blocks/DD-TeamCards/manifest.json +74 -0
  155. package/templates/blocks/DD-TechStack/Component.tsx +168 -162
  156. package/templates/blocks/DD-TechStack/config.ts +153 -153
  157. package/templates/blocks/DD-TestMarq/Component.tsx +132 -0
  158. package/templates/blocks/DD-TestMarq/README.md +4 -0
  159. package/templates/blocks/DD-TestMarq/RowLabel.tsx +9 -0
  160. package/templates/blocks/DD-TestMarq/config.ts +88 -0
  161. package/templates/blocks/DD-TestMarq/manifest.json +72 -0
  162. package/templates/blocks/DD-Testim/Component.tsx +247 -0
  163. package/templates/blocks/DD-Testim/README.md +4 -0
  164. package/templates/blocks/DD-Testim/config.ts +101 -0
  165. package/templates/blocks/DD-Testim/manifest.json +75 -0
  166. package/templates/blocks/DD-Testim2/Component.tsx +256 -0
  167. package/templates/blocks/DD-Testim2/README.md +4 -0
  168. package/templates/blocks/DD-Testim2/config.ts +100 -0
  169. package/templates/blocks/DD-Testim2/manifest.json +74 -0
  170. package/templates/blocks/DD-Testimonials/Component.tsx +147 -147
  171. package/templates/blocks/DD-Testimonials/config.ts +120 -120
  172. package/templates/blocks/DD-TextMarq/Component.tsx +157 -0
  173. package/templates/blocks/DD-TextMarq/README.md +4 -0
  174. package/templates/blocks/DD-TextMarq/config.ts +237 -0
  175. package/templates/blocks/DD-TextMarq/manifest.json +82 -0
  176. package/templates/blocks/DD-Thanks/Component.tsx +500 -0
  177. package/templates/blocks/DD-Thanks/README.md +4 -0
  178. package/templates/blocks/DD-Thanks/config.ts +224 -0
  179. package/templates/blocks/DD-Thanks/manifest.json +72 -0
  180. package/templates/blocks/DD-VertMarq/Component.tsx +154 -0
  181. package/templates/blocks/DD-VertMarq/README.md +4 -0
  182. package/templates/blocks/DD-VertMarq/config.ts +236 -0
  183. package/templates/blocks/DD-VertMarq/dist/index.css +6 -0
  184. package/templates/blocks/DD-VertMarq/dist/index.min.css +1 -0
  185. package/templates/blocks/DD-VertMarq/manifest.json +74 -0
  186. package/templates/blocks/DD-Work/Component.tsx +318 -315
  187. package/templates/blocks/DD-Work/config.ts +165 -165
  188. package/templates/blocks/DD-Work-B/Component.tsx +294 -294
  189. package/templates/blocks/DDHG-CTASection2/Component.tsx +185 -0
  190. package/templates/blocks/DDHG-CTASection2/config.ts +140 -0
  191. package/templates/blocks/DDHG-CTASection2/manifest.json +45 -0
  192. package/templates/blocks/DDHG-HighlightArc/Component.tsx +243 -0
  193. package/templates/blocks/DDHG-HighlightArc/config.ts +85 -0
  194. package/templates/blocks/DDHG-HighlightArc/manifest.json +46 -0
  195. package/templates/blocks/DDHG-LogoMarquee/Component.tsx +93 -0
  196. package/templates/blocks/DDHG-LogoMarquee/config.ts +66 -0
  197. package/templates/blocks/DDHG-LogoMarquee/manifest.json +39 -0
  198. package/templates/blocks/DDHG-NavCodeGrid/Component.tsx +213 -0
  199. package/templates/blocks/DDHG-NavCodeGrid/config.ts +64 -0
  200. package/templates/blocks/DDHG-NavCodeGrid/manifest.json +45 -0
  201. package/templates/blocks/DDHG-ProcessSec/Component.tsx +575 -0
  202. package/templates/blocks/DDHG-ProcessSec/config.ts +170 -0
  203. package/templates/blocks/DDHG-ProcessSec/manifest.json +56 -0
  204. package/templates/blocks/DDHG-ServiceDetails/Component.tsx +164 -0
  205. package/templates/blocks/DDHG-ServiceDetails/ServiceDetailCard.tsx +394 -0
  206. package/templates/blocks/DDHG-ServiceDetails/config.ts +77 -0
  207. package/templates/blocks/DDHG-ServiceDetails/manifest.json +50 -0
  208. package/templates/blocks/DDHG-ServiceHero/Component.tsx +234 -0
  209. package/templates/blocks/DDHG-ServiceHero/config.ts +49 -0
  210. package/templates/blocks/DDHG-ServiceHero/manifest.json +26 -0
  211. package/templates/blocks/DDHG-ServiceOverview/Component.tsx +277 -0
  212. package/templates/blocks/DDHG-ServiceOverview/config.ts +64 -0
  213. package/templates/blocks/DDHG-ServiceOverview/manifest.json +44 -0
  214. package/templates/blocks/DDHG-StatsFAQ/Component.tsx +389 -0
  215. package/templates/blocks/DDHG-StatsFAQ/config.ts +204 -0
  216. package/templates/blocks/DDHG-StatsFAQ/manifest.json +45 -0
  217. package/templates/blocks/DDHG-TeamCards/Component.tsx +131 -0
  218. package/templates/blocks/DDHG-TeamCards/config.ts +48 -0
  219. package/templates/blocks/DDHG-TeamCards/manifest.json +29 -0
  220. package/templates/components/HeaderDD02/MobileBottomNav/index.tsx +352 -257
  221. package/templates/components/HeaderDD02/index.tsx +313 -229
  222. package/templates/shared/src/components/BgLightning/index.tsx +242 -0
  223. package/templates/shared/src/components/ui/ShareButton/index.tsx +80 -0
  224. package/templates/shared/src/components/ui/anims/FadeOnScroll.tsx +48 -0
  225. package/templates/shared/src/components/ui/anims/FadeUpOnInView.tsx +63 -0
  226. package/templates/shared/src/components/ui/anims/GlareHover.tsx +111 -0
  227. package/templates/shared/src/components/ui/anims/LineAnims.tsx +81 -0
  228. package/templates/shared/src/components/ui/anims/TitleAnims01.tsx +54 -0
  229. package/templates/shared/src/components/ui/anims/animation-container.tsx +29 -0
  230. package/templates/shared/src/components/ui/anims/blur-in.tsx +26 -0
  231. package/templates/shared/src/components/ui/anims/counter.tsx +53 -0
  232. package/templates/shared/src/components/ui/anims/fade.tsx +83 -0
  233. package/templates/shared/src/components/ui/anims/gradual-spacing.tsx +39 -0
  234. package/templates/shared/src/components/ui/anims/pull-up.tsx +93 -0
  235. package/templates/shared/src/components/ui/anims/reveal-text.tsx +76 -0
  236. package/templates/shared/src/components/ui/anims/rotate-words.tsx +43 -0
  237. package/templates/shared/src/components/ui/anims/shiny-text.tsx +58 -0
  238. package/templates/shared/src/components/ui/anims/shuffle-text.tsx +85 -0
  239. package/templates/shared/src/components/ui/anims/split-text.tsx +211 -0
  240. package/templates/shared/src/components/ui/anims/staggered-fade.tsx +133 -0
  241. package/templates/shared/src/components/ui/anims/text-scroll.tsx +111 -0
  242. package/templates/shared/src/components/ui/anims/typing-effect.tsx +112 -0
  243. package/templates/shared/src/components/ui/button-dusted-fluid/index.tsx +1521 -0
  244. package/templates/shared/src/components/ui/separator.tsx +85 -0
  245. package/templates/shared/src/hooks/useBodyScrollLock.ts +97 -0
  246. package/templates/shared/src/hooks/useClickOutside.ts +28 -0
  247. package/templates/shared/src/utilities/renderCustomCSS.ts +5 -0
  248. package/templates/shared/src/utilities/smoothScroll.ts +65 -0
@@ -8,9 +8,8 @@ import {
8
8
  Globe,
9
9
  Clock,
10
10
  AlertCircle,
11
- CalendarCheck,
11
+ CalendarCheck
12
12
  } from 'lucide-react'
13
- import { Input } from '@/components/ui/input'
14
13
  import { getClientSideURL } from '@/utilities/getURL'
15
14
 
16
15
  type Status = 'idle' | 'submitting' | 'success' | 'error'
@@ -70,7 +69,7 @@ export const DDBookCall: React.FC<DDBookCallProps> = ({
70
69
  timeSlots,
71
70
  footerNote,
72
71
  sectionId,
73
- customCSS,
72
+ customCSS
74
73
  }) => {
75
74
  const [status, setStatus] = useState<Status>('idle')
76
75
  const [selectedType, setSelectedType] = useState<string>(callTypes?.[0]?.value ?? 'discovery')
@@ -108,14 +107,14 @@ export const DDBookCall: React.FC<DDBookCallProps> = ({
108
107
  { field: 'call_type', value: selectedType },
109
108
  { field: 'preferred_date', value: selectedDate },
110
109
  { field: 'preferred_time', value: selectedSlot },
111
- { field: 'notes', value: data.get('notes') },
110
+ { field: 'notes', value: data.get('notes') }
112
111
  ]
113
112
 
114
113
  try {
115
114
  const res = await fetch(`${getClientSideURL()}/api/form-submissions`, {
116
115
  method: 'POST',
117
116
  headers: { 'Content-Type': 'application/json' },
118
- body: JSON.stringify({ form: formID, submissionData }),
117
+ body: JSON.stringify({ form: formID, submissionData })
119
118
  })
120
119
 
121
120
  if (res.ok) {
@@ -138,7 +137,7 @@ export const DDBookCall: React.FC<DDBookCallProps> = ({
138
137
 
139
138
  <section
140
139
  id={sectionId ?? 'book-call'}
141
- className="py-28 bg-stone-50 dark:bg-stone-950 relative overflow-hidden"
140
+ className="container-fluid mx-auto py-28 relative overflow-hidden"
142
141
  >
143
142
  {/* Background gradients – light & dark variants */}
144
143
  <div
@@ -157,8 +156,8 @@ export const DDBookCall: React.FC<DDBookCallProps> = ({
157
156
  bg-size-[60px_60px]"
158
157
  />
159
158
 
160
- <div className="relative max-w-6xl lg:max-w-7xl mx-auto px-4 md:px-6">
161
- {/* Header */}#BlockName-DDBookCall
159
+ <div className="relative max-w-7xl lg:max-w-8xl mx-auto px-4 md:px-6">
160
+ {/* Header */}
162
161
  <div className="text-center mb-16">
163
162
  {eyebrow && (
164
163
  <div className="inline-flex items-center gap-2 mb-4">
@@ -406,12 +405,12 @@ export const DDBookCall: React.FC<DDBookCallProps> = ({
406
405
  <label className="block text-xs text-stone-500 dark:text-stone-500 mb-1.5">
407
406
  Time Zone
408
407
  </label>
409
- <div className="flex items-center gap-2.5 w-full rounded-sm border border-stone-300 dark:border-stone-600 bg-stone-50/80 dark:bg-black/80 px-3 py-2 backdrop-blur-[22px]">
408
+ <div className="flex h-10 w-full items-center gap-2.5 rounded-2xl squircle border border-stone-300 bg-stone-50/80 px-3 py-2 text-sm text-stone-900 outline-none backdrop-blur-[22px] transition-all duration-300 dark:border-stone-600 dark:bg-[#0e0e13] dark:text-stone-200">
410
409
  <Globe
411
410
  size={14}
412
411
  className="text-stone-400 dark:text-stone-500 shrink-0"
413
412
  />
414
- <span className="text-sm text-stone-700 dark:text-stone-400 truncate">
413
+ <span className="truncate text-sm text-stone-900 dark:text-stone-200">
415
414
  {Intl.DateTimeFormat().resolvedOptions().timeZone}
416
415
  </span>
417
416
  </div>
@@ -432,7 +431,7 @@ export const DDBookCall: React.FC<DDBookCallProps> = ({
432
431
  onClick={() => setSelectedSlot(slot)}
433
432
  className={`py-2 rounded-lg text-xs font-medium border transition-all cursor-pointer whitespace-nowrap ${
434
433
  selectedSlot === slot
435
- ? 'bg-stone-900 dark:bg-stone-50 text-stone-50 dark:text-stone-900 border-stone-900 dark:border-white'
434
+ ? 'bg-stone-900 dark:!bg-lime-950/50 text-stone-50 dark:text-lime-500 border-stone-900 dark:border-lime-500'
436
435
  : 'bg-stone-100 dark:bg-stone-950 border-stone-200 dark:border-stone-700 text-stone-600 dark:text-stone-400 hover:border-stone-300 dark:hover:border-stone-500 hover:text-stone-900 dark:hover:text-stone-200'
437
436
  }`}
438
437
  >
@@ -1,239 +1,239 @@
1
- import type { Block } from 'payload'
2
-
3
- export const DDBookCall: Block = {
4
- slug: 'DD-BookCall',
5
- interfaceName: 'DDBookCall',
6
- labels: {
7
- singular: 'Studio Book Call',
8
- plural: 'Studio Book Call Sections'
9
- },
10
- fields: [
11
- {
12
- type: 'tabs',
13
- tabs: [
14
- {
15
- label: 'Info',
16
- fields: [
17
- {
18
- name: 'eyebrow',
19
- type: 'text',
20
- label: 'Eyebrow Label',
21
- defaultValue: 'Schedule a Call'
22
- },
23
- {
24
- name: 'headlineMain',
25
- type: 'text',
26
- label: 'Headline (Main)',
27
- required: true,
28
- defaultValue: 'Book a call with'
29
- },
30
- {
31
- name: 'headlineAccent',
32
- type: 'text',
33
- label: 'Headline (Accent)',
34
- defaultValue: 'our team'
35
- },
36
- {
37
- name: 'description',
38
- type: 'textarea',
39
- label: 'Description',
40
- defaultValue:
41
- "Pick a time that works for you. We'll send a calendar invite with everything you need."
42
- },
43
- {
44
- name: 'callTypes',
45
- type: 'array',
46
- label: 'Call Types',
47
- minRows: 1,
48
- maxRows: 6,
49
- admin: {
50
- description: 'Session types the user can pick from in the left sidebar.'
51
- },
52
- fields: [
53
- {
54
- type: 'row',
55
- fields: [
56
- {
57
- name: 'value',
58
- type: 'text',
59
- label: 'Value (slug)',
60
- required: true,
61
- admin: {
62
- width: '33%',
63
- description: 'Internal key, e.g. discovery'
64
- }
65
- },
66
- {
67
- name: 'label',
68
- type: 'text',
69
- label: 'Label',
70
- required: true,
71
- admin: { width: '34%' }
72
- },
73
- {
74
- name: 'duration',
75
- type: 'text',
76
- label: 'Duration',
77
- required: true,
78
- admin: { width: '33%', description: 'e.g. 30 min' }
79
- }
80
- ]
81
- },
82
- {
83
- type: 'row',
84
- fields: [
85
- {
86
- name: 'iconName',
87
- type: 'text',
88
- label: 'Lucide Icon Name',
89
- admin: {
90
- width: '50%',
91
- description: 'e.g. Search, Compass, Code2'
92
- }
93
- },
94
- {
95
- name: 'desc',
96
- type: 'text',
97
- label: 'Short Description',
98
- admin: { width: '50%', description: 'e.g. Explore scope & fit' }
99
- }
100
- ]
101
- }
102
- ],
103
- defaultValue: [
104
- {
105
- value: 'discovery',
106
- label: 'Discovery Call',
107
- duration: '30 min',
108
- iconName: 'Search',
109
- desc: 'Explore scope & fit'
110
- },
111
- {
112
- value: 'strategy',
113
- label: 'Strategy Session',
114
- duration: '60 min',
115
- iconName: 'Compass',
116
- desc: 'Deep dive into your project'
117
- },
118
- {
119
- value: 'technical',
120
- label: 'Technical Review',
121
- duration: '45 min',
122
- iconName: 'Code2',
123
- desc: 'Architecture & implementation'
124
- }
125
- ]
126
- },
127
- {
128
- name: 'features',
129
- type: 'array',
130
- label: '"What to Expect" Items',
131
- admin: {
132
- description: 'Bullet points in the left sidebar below call types.'
133
- },
134
- fields: [
135
- {
136
- type: 'row',
137
- fields: [
138
- {
139
- name: 'iconName',
140
- type: 'text',
141
- label: 'Lucide Icon Name',
142
- admin: { width: '50%', description: 'e.g. Video, CalendarCheck, FileText' }
143
- },
144
- {
145
- name: 'text',
146
- type: 'text',
147
- label: 'Text',
148
- required: true,
149
- admin: { width: '50%' }
150
- }
151
- ]
152
- }
153
- ],
154
- defaultValue: [
155
- { iconName: 'Video', text: 'Google Meet or Zoom' },
156
- { iconName: 'CalendarCheck', text: 'Calendar invite sent instantly' },
157
- { iconName: 'FileText', text: 'Pre-call briefing document' },
158
- { iconName: 'Lock', text: 'NDA available on request' }
159
- ]
160
- }
161
- ]
162
- },
163
- {
164
- label: 'Form',
165
- fields: [
166
- {
167
- name: 'form',
168
- type: 'relationship',
169
- relationTo: 'forms',
170
- label: 'Payload Form',
171
- required: true,
172
- admin: {
173
- description:
174
- 'Select the Payload Form Builder form used to store Book Call submissions. Fields must include: name, email, company, call_type, preferred_date, preferred_time, notes.'
175
- }
176
- },
177
- {
178
- name: 'timeSlots',
179
- type: 'array',
180
- label: 'Available Time Slots',
181
- admin: {
182
- description: 'Time slots shown in the booking grid.'
183
- },
184
- fields: [
185
- {
186
- name: 'slot',
187
- type: 'text',
188
- label: 'Time Slot',
189
- required: true,
190
- admin: { description: 'e.g. 9:00 AM' }
191
- }
192
- ],
193
- defaultValue: [
194
- { slot: '9:00 AM' },
195
- { slot: '9:30 AM' },
196
- { slot: '10:00 AM' },
197
- { slot: '10:30 AM' },
198
- { slot: '11:00 AM' },
199
- { slot: '11:30 AM' },
200
- { slot: '1:00 PM' },
201
- { slot: '1:30 PM' },
202
- { slot: '2:00 PM' },
203
- { slot: '2:30 PM' },
204
- { slot: '3:00 PM' },
205
- { slot: '3:30 PM' },
206
- { slot: '4:00 PM' },
207
- { slot: '4:30 PM' }
208
- ]
209
- },
210
- {
211
- name: 'footerNote',
212
- type: 'text',
213
- label: 'Form Footer Note',
214
- defaultValue: `No charge. No commitment. We'll confirm within a few hours.`
215
- }
216
- ]
217
- },
218
- {
219
- label: 'Settings',
220
- fields: [
221
- {
222
- name: 'sectionId',
223
- type: 'text',
224
- label: 'Section ID',
225
- defaultValue: 'book-call'
226
- },
227
- {
228
- name: 'customCSS',
229
- type: 'code',
230
- label: 'Custom CSS',
231
- admin: { language: 'css' }
232
- }
233
- ]
234
- }
235
- ]
236
- }
237
- ]
238
- }
1
+ import type { Block } from 'payload'
2
+
3
+ export const DDBookCall: Block = {
4
+ slug: 'DD-BookCall',
5
+ interfaceName: 'DDBookCall',
6
+ labels: {
7
+ singular: 'Studio Book Call',
8
+ plural: 'Studio Book Call Sections'
9
+ },
10
+ fields: [
11
+ {
12
+ type: 'tabs',
13
+ tabs: [
14
+ {
15
+ label: 'Info',
16
+ fields: [
17
+ {
18
+ name: 'eyebrow',
19
+ type: 'text',
20
+ label: 'Eyebrow Label',
21
+ defaultValue: 'Schedule a Call'
22
+ },
23
+ {
24
+ name: 'headlineMain',
25
+ type: 'text',
26
+ label: 'Headline (Main)',
27
+ required: true,
28
+ defaultValue: 'Book a call with'
29
+ },
30
+ {
31
+ name: 'headlineAccent',
32
+ type: 'text',
33
+ label: 'Headline (Accent)',
34
+ defaultValue: 'our team'
35
+ },
36
+ {
37
+ name: 'description',
38
+ type: 'textarea',
39
+ label: 'Description',
40
+ defaultValue:
41
+ "Pick a time that works for you. We'll send a calendar invite with everything you need."
42
+ },
43
+ {
44
+ name: 'callTypes',
45
+ type: 'array',
46
+ label: 'Call Types',
47
+ minRows: 1,
48
+ maxRows: 6,
49
+ admin: {
50
+ description: 'Session types the user can pick from in the left sidebar.'
51
+ },
52
+ fields: [
53
+ {
54
+ type: 'row',
55
+ fields: [
56
+ {
57
+ name: 'value',
58
+ type: 'text',
59
+ label: 'Value (slug)',
60
+ required: true,
61
+ admin: {
62
+ width: '33%',
63
+ description: 'Internal key, e.g. discovery'
64
+ }
65
+ },
66
+ {
67
+ name: 'label',
68
+ type: 'text',
69
+ label: 'Label',
70
+ required: true,
71
+ admin: { width: '34%' }
72
+ },
73
+ {
74
+ name: 'duration',
75
+ type: 'text',
76
+ label: 'Duration',
77
+ required: true,
78
+ admin: { width: '33%', description: 'e.g. 30 min' }
79
+ }
80
+ ]
81
+ },
82
+ {
83
+ type: 'row',
84
+ fields: [
85
+ {
86
+ name: 'iconName',
87
+ type: 'text',
88
+ label: 'Lucide Icon Name',
89
+ admin: {
90
+ width: '50%',
91
+ description: 'e.g. Search, Compass, Code2'
92
+ }
93
+ },
94
+ {
95
+ name: 'desc',
96
+ type: 'text',
97
+ label: 'Short Description',
98
+ admin: { width: '50%', description: 'e.g. Explore scope & fit' }
99
+ }
100
+ ]
101
+ }
102
+ ],
103
+ defaultValue: [
104
+ {
105
+ value: 'discovery',
106
+ label: 'Discovery Call',
107
+ duration: '30 min',
108
+ iconName: 'Search',
109
+ desc: 'Explore scope & fit'
110
+ },
111
+ {
112
+ value: 'strategy',
113
+ label: 'Strategy Session',
114
+ duration: '60 min',
115
+ iconName: 'Compass',
116
+ desc: 'Deep dive into your project'
117
+ },
118
+ {
119
+ value: 'technical',
120
+ label: 'Technical Review',
121
+ duration: '45 min',
122
+ iconName: 'Code2',
123
+ desc: 'Architecture & implementation'
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ name: 'features',
129
+ type: 'array',
130
+ label: '"What to Expect" Items',
131
+ admin: {
132
+ description: 'Bullet points in the left sidebar below call types.'
133
+ },
134
+ fields: [
135
+ {
136
+ type: 'row',
137
+ fields: [
138
+ {
139
+ name: 'iconName',
140
+ type: 'text',
141
+ label: 'Lucide Icon Name',
142
+ admin: { width: '50%', description: 'e.g. Video, CalendarCheck, FileText' }
143
+ },
144
+ {
145
+ name: 'text',
146
+ type: 'text',
147
+ label: 'Text',
148
+ required: true,
149
+ admin: { width: '50%' }
150
+ }
151
+ ]
152
+ }
153
+ ],
154
+ defaultValue: [
155
+ { iconName: 'Video', text: 'Google Meet or Zoom' },
156
+ { iconName: 'CalendarCheck', text: 'Calendar invite sent instantly' },
157
+ { iconName: 'FileText', text: 'Pre-call briefing document' },
158
+ { iconName: 'Lock', text: 'NDA available on request' }
159
+ ]
160
+ }
161
+ ]
162
+ },
163
+ {
164
+ label: 'Form',
165
+ fields: [
166
+ {
167
+ name: 'form',
168
+ type: 'relationship',
169
+ relationTo: 'forms',
170
+ label: 'Payload Form',
171
+ required: true,
172
+ admin: {
173
+ description:
174
+ 'Select the Payload Form Builder form used to store Book Call submissions. Fields must include: name, email, company, call_type, preferred_date, preferred_time, notes.'
175
+ }
176
+ },
177
+ {
178
+ name: 'timeSlots',
179
+ type: 'array',
180
+ label: 'Available Time Slots',
181
+ admin: {
182
+ description: 'Time slots shown in the booking grid.'
183
+ },
184
+ fields: [
185
+ {
186
+ name: 'slot',
187
+ type: 'text',
188
+ label: 'Time Slot',
189
+ required: true,
190
+ admin: { description: 'e.g. 9:00 AM' }
191
+ }
192
+ ],
193
+ defaultValue: [
194
+ { slot: '9:00 AM' },
195
+ { slot: '9:30 AM' },
196
+ { slot: '10:00 AM' },
197
+ { slot: '10:30 AM' },
198
+ { slot: '11:00 AM' },
199
+ { slot: '11:30 AM' },
200
+ { slot: '1:00 PM' },
201
+ { slot: '1:30 PM' },
202
+ { slot: '2:00 PM' },
203
+ { slot: '2:30 PM' },
204
+ { slot: '3:00 PM' },
205
+ { slot: '3:30 PM' },
206
+ { slot: '4:00 PM' },
207
+ { slot: '4:30 PM' }
208
+ ]
209
+ },
210
+ {
211
+ name: 'footerNote',
212
+ type: 'text',
213
+ label: 'Form Footer Note',
214
+ defaultValue: `No charge. No commitment. We'll confirm within a few hours.`
215
+ }
216
+ ]
217
+ },
218
+ {
219
+ label: 'Settings',
220
+ fields: [
221
+ {
222
+ name: 'sectionId',
223
+ type: 'text',
224
+ label: 'Section ID',
225
+ defaultValue: 'book-call'
226
+ },
227
+ {
228
+ name: 'customCSS',
229
+ type: 'code',
230
+ label: 'Custom CSS',
231
+ admin: { language: 'css' }
232
+ }
233
+ ]
234
+ }
235
+ ]
236
+ }
237
+ ]
238
+ }
239
239