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
@@ -0,0 +1,102 @@
1
+ // src/blocks/ButtonECDustedFluid/config.ts
2
+ import type { Block } from 'payload'
3
+ import { link } from '@/fields/link'
4
+
5
+ export const DDFluidBtn: Block = {
6
+ slug: 'DD-FluidBtn',
7
+ interfaceName: 'DDFluidBtn',
8
+ labels: {
9
+ singular: 'Button Dusted Fluid',
10
+ plural: 'Button Dusted Fluid'
11
+ },
12
+ fields: [
13
+ {
14
+ name: 'variant',
15
+ type: 'select',
16
+ defaultValue: 'v1',
17
+ required: true,
18
+ options: [
19
+ { label: 'v1', value: 'v1' },
20
+ { label: 'v2', value: 'v2' },
21
+ { label: 'v3', value: 'v3' },
22
+ { label: 'v4', value: 'v4' },
23
+ { label: 'v5', value: 'v5' }
24
+ ],
25
+ admin: { width: '50%' }
26
+ },
27
+ {
28
+ name: 'label',
29
+ type: 'text',
30
+ required: true,
31
+ defaultValue: 'BUTTON',
32
+ admin: { width: '50%' }
33
+ },
34
+ {
35
+ name: 'displayMode',
36
+ type: 'select',
37
+ label: 'Display Mode',
38
+ defaultValue: 'labelOnly',
39
+ options: [
40
+ { label: 'Label Only', value: 'labelOnly' },
41
+ { label: 'Icon with Label', value: 'iconWithLabel' },
42
+ { label: 'Icon Only', value: 'iconOnly' }
43
+ ],
44
+ required: true,
45
+ admin: { width: '50%' }
46
+ },
47
+ {
48
+ name: 'iconPosition',
49
+ type: 'select',
50
+ label: 'Icon Position',
51
+ defaultValue: 'before',
52
+ options: [
53
+ { label: 'Before Label', value: 'before' },
54
+ { label: 'After Label', value: 'after' }
55
+ ],
56
+ required: false,
57
+ admin: {
58
+ width: '50%',
59
+ condition: (data, siblingData) => siblingData?.displayMode === 'iconWithLabel'
60
+ }
61
+ },
62
+ link({
63
+ overrides: {
64
+ name: 'link',
65
+ label: 'Link',
66
+ admin: {
67
+ condition: (data) => data.displayMode !== 'labelOnly'
68
+ }
69
+ },
70
+ disableLabel: true,
71
+ appearances: false
72
+ }),
73
+ {
74
+ name: 'enableCustomClasses',
75
+ type: 'checkbox',
76
+ label: 'Enable Custom Classes',
77
+ defaultValue: false,
78
+ admin: { width: '100%' }
79
+ },
80
+ {
81
+ name: 'wrapperClassName',
82
+ type: 'text',
83
+ label: 'Button Wrapper Class',
84
+ defaultValue: 'w-fit',
85
+ required: false,
86
+ admin: {
87
+ width: '50%',
88
+ condition: (data, siblingData) => siblingData.enableCustomClasses === true
89
+ }
90
+ },
91
+ {
92
+ name: 'className',
93
+ type: 'text',
94
+ label: 'Inner Button Class',
95
+ required: false,
96
+ admin: {
97
+ width: '50%',
98
+ condition: (data, siblingData) => siblingData.enableCustomClasses === true
99
+ }
100
+ }
101
+ ]
102
+ }
@@ -0,0 +1,86 @@
1
+ {
2
+ "type": "block",
3
+ "name": "DD-FluidBtn",
4
+ "label": "Fluid Button Set",
5
+ "sourceName": "ButtonECDustedFluid",
6
+ "portableName": "DD-FluidBtn",
7
+ "slug": "DD-FluidBtn",
8
+ "version": "0.0.1",
9
+ "source": {
10
+ "repo": "Hadizainal/DesignsDustedv3",
11
+ "originalPath": "src/blocks/ButtonECDustedFluid",
12
+ "originalSlug": "buttonECDustedFluid",
13
+ "originalConfigExport": "ButtonECDustedFluid",
14
+ "originalComponentExport": "ButtonECDustedFluid",
15
+ "originalInterfaceName": "DDFluidBtn"
16
+ },
17
+ "files": [
18
+ {
19
+ "from": "Component.tsx",
20
+ "to": "src/blocks/DD-FluidBtn/Component.tsx"
21
+ },
22
+ {
23
+ "from": "config.ts",
24
+ "to": "src/blocks/DD-FluidBtn/config.ts"
25
+ },
26
+ {
27
+ "from": "ButtonsEyeCatching.tsx",
28
+ "to": "src/blocks/DD-FluidBtn/ButtonsEyeCatching.tsx"
29
+ }
30
+ ],
31
+ "dependencies": [
32
+ "framer-motion"
33
+ ],
34
+ "sharedFiles": [
35
+ {
36
+ "from": "templates/shared/src/components/ui/button-dusted-fluid",
37
+ "to": "src/components/ui/button-dusted-fluid",
38
+ "required": true,
39
+ "safeToCopy": true
40
+ }
41
+ ],
42
+ "requiredProjectFiles": [],
43
+ "optionalProjectFiles": [],
44
+ "collectionRegistration": {
45
+ "enabled": true,
46
+ "collections": [
47
+ "Pages",
48
+ "Posts"
49
+ ]
50
+ },
51
+ "renderBlocksRegistration": {
52
+ "enabled": true
53
+ },
54
+ "renderBlocksBehavior": {
55
+ "wrapperless": false
56
+ },
57
+ "pageRouteIntegration": {
58
+ "required": false,
59
+ "manualSteps": []
60
+ },
61
+ "manual": [
62
+ "Register DDFluidBtn in Pages/Posts blocks arrays if automatic registration was skipped.",
63
+ "Register DD-FluidBtn in RenderBlocks if automatic registration was skipped.",
64
+ "Run payload generate:types after schema changes."
65
+ ],
66
+ "manualSteps": [
67
+ "Register DDFluidBtn in Pages/Posts blocks arrays if automatic registration was skipped.",
68
+ "Register DD-FluidBtn in RenderBlocks if automatic registration was skipped.",
69
+ "Run payload generate:types after schema changes."
70
+ ],
71
+ "patchTargets": {
72
+ "blockConfigRegistration": {
73
+ "description": "Installer can add import { DDFluidBtn } from '@/blocks/DD-FluidBtn/config' and add DDFluidBtn to clear Pages/Posts block arrays."
74
+ },
75
+ "renderBlocksRegistration": {
76
+ "description": "Installer can register DD-FluidBtn in RenderBlocks."
77
+ }
78
+ },
79
+ "notes": [
80
+ "Bundles the required ButtonsEyeCatching child component with the public parent block.",
81
+ "Only DDFluidBtn is registered as a block.",
82
+ "Manifest includes shared local support files required by original DesignsDusted source imports."
83
+ ],
84
+ "exportName": "DDFluidBtn",
85
+ "interfaceName": "DDFluidBtn"
86
+ }
@@ -0,0 +1,149 @@
1
+ 'use client'
2
+
3
+ import React, { useState, useEffect, useRef } from 'react'
4
+ import { motion } from 'framer-motion'
5
+ import RichText from '@/components/RichText'
6
+
7
+ export interface ButtonGooeyInfoProps {
8
+ buttonLabel?: string
9
+ buttonIcon?: string
10
+ richTextData?: any
11
+ panelWidth?: string
12
+ panelBgColor?: string
13
+ buttonBgColor?: string
14
+ buttonTextColor?: string
15
+ panelTextColor?: string
16
+ xOffset?: number
17
+ className?: string
18
+ panelClassName?: string
19
+ }
20
+
21
+ export const DDGooeyInfo: React.FC<ButtonGooeyInfoProps> = ({
22
+ buttonLabel = 'i',
23
+ buttonIcon,
24
+ richTextData,
25
+ panelWidth = '16rem',
26
+ panelBgColor = 'black',
27
+ buttonBgColor = 'black',
28
+ buttonTextColor = 'white',
29
+ panelTextColor = 'white',
30
+ xOffset = 48,
31
+ className = '',
32
+ panelClassName = ''
33
+ }) => {
34
+ const [open, setOpen] = useState(false)
35
+ const buttonRef = useRef<HTMLButtonElement | null>(null)
36
+ const panelRef = useRef<HTMLDivElement | null>(null)
37
+
38
+ // Close on outside tap/click (helps on touch devices)
39
+ useEffect(() => {
40
+ function handlePointerDown(e: PointerEvent) {
41
+ if (!buttonRef.current || !panelRef.current) return
42
+ if (
43
+ !buttonRef.current.contains(e.target as Node) &&
44
+ !panelRef.current.contains(e.target as Node)
45
+ ) {
46
+ setOpen(false)
47
+ }
48
+ }
49
+
50
+ window.addEventListener('pointerdown', handlePointerDown)
51
+ return () => window.removeEventListener('pointerdown', handlePointerDown)
52
+ }, [])
53
+
54
+ const handleToggle = () => {
55
+ setOpen((prev) => !prev)
56
+ }
57
+
58
+ return (
59
+ <div className={`gooey-info-container relative w-auto h-auto block ${className}`}>
60
+ {/* Gooey Filter */}
61
+ <svg className="absolute w-0 h-0">
62
+ <filter id="gooey">
63
+ {/* // Subtle gooey effect - best color merge */}
64
+ <feGaussianBlur in="SourceGraphic" stdDeviation="8" result="blur" />
65
+ <feColorMatrix
66
+ in="blur"
67
+ mode="matrix"
68
+ values="1 0 0 0 0
69
+ 0 1 0 0 0
70
+ 0 0 1 0 0
71
+ 0 0 0 18 -5"
72
+ result="gooey"
73
+ />
74
+ {/* // Strong gooey effect */}
75
+ {/* <feGaussianBlur in="SourceGraphic" stdDeviation="12" result="blur" />
76
+ <feColorMatrix
77
+ in="blur"
78
+ mode="matrix"
79
+ values="1 0 0 0 0
80
+ 0 1 0 0 0
81
+ 0 0 1 0 0
82
+ 0 0 0 24 -8"
83
+ result="gooey"
84
+ /> */}
85
+ {/* // Extreme gooey effect */}
86
+ {/* <feGaussianBlur in="SourceGraphic" stdDeviation="16" result="blur" />
87
+ <feColorMatrix
88
+ in="blur"
89
+ mode="matrix"
90
+ values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0
91
+ 0 0 0 30 -10"
92
+ result="gooey"
93
+ /> */}
94
+ <feBlend in="SourceGraphic" in2="gooey" />
95
+ </filter>
96
+ </svg>
97
+ <div
98
+ className="relative flex items-center justify-center my-16"
99
+ style={{ filter: 'url(#gooey)' }}
100
+ >
101
+ {/* Floating Button */}
102
+ <motion.button
103
+ ref={buttonRef}
104
+ onHoverStart={() => setOpen(true)}
105
+ onHoverEnd={() => setOpen(false)}
106
+ onClick={handleToggle} // supports mouse + touch tap
107
+ className="w-14 h-14 rounded-full flex items-center justify-center cursor-pointer shadow-lg touch-manipulation select-none"
108
+ style={{
109
+ backgroundColor: buttonBgColor,
110
+ color: buttonTextColor
111
+ }}
112
+ >
113
+ <span className="text-xl font-bold">{buttonIcon || buttonLabel}</span>
114
+ </motion.button>
115
+
116
+ {/* Panel */}
117
+ <motion.div
118
+ ref={panelRef}
119
+ initial={{
120
+ opacity: 0,
121
+ scale: 0.85,
122
+ x: xOffset - 8
123
+ }}
124
+ animate={{
125
+ opacity: open ? 1 : 0,
126
+ scale: open ? 1 : 0.85,
127
+ x: open ? xOffset : xOffset - 8
128
+ }}
129
+ transition={{ type: 'spring', stiffness: 250, damping: 22 }}
130
+ onHoverStart={() => setOpen(true)}
131
+ onHoverEnd={() => setOpen(false)}
132
+ className={`absolute left-0 top-1/2 -translate-y-1/2 origin-left rounded-3xl px-6 py-5 flex flex-col gap-3 ${panelClassName}`}
133
+ style={{
134
+ width: panelWidth,
135
+ backgroundColor: panelBgColor,
136
+ color: panelTextColor,
137
+ pointerEvents: open ? 'auto' : 'none'
138
+ }}
139
+ >
140
+ {richTextData && (
141
+ <RichText data={richTextData} className="gooey-info-richtext" enableGutter={false} />
142
+ )}
143
+ </motion.div>
144
+ </div>
145
+ </div>
146
+ )
147
+ }
148
+
149
+ export default DDGooeyInfo
@@ -0,0 +1,135 @@
1
+ import type { Block } from 'payload'
2
+ import { BlocksFeature } from '@payloadcms/richtext-lexical'
3
+
4
+ import { MediaBlock } from '@/blocks/MediaBlock/config'
5
+ import { DDIcon } from '@/blocks/DD-Icon/config'
6
+ import { DDAnimText } from '@/blocks/DD-AnimText/config'
7
+ import { DDIconButton } from '@/blocks/DD-IconButton/config'
8
+ import { defaultLexical } from '@/fields/defaultLexical'
9
+
10
+ export const DDGooeyInfo: Block = {
11
+ slug: 'DD-GooeyInfo',
12
+ interfaceName: 'DDGooeyInfo',
13
+ labels: {
14
+ singular: 'Button Gooey Info',
15
+ plural: 'Button Gooey Info Blocks'
16
+ },
17
+ fields: [
18
+ {
19
+ type: 'row',
20
+ fields: [
21
+ {
22
+ name: 'buttonLabel',
23
+ type: 'text',
24
+ label: 'Button Label/Icon',
25
+ defaultValue: 'i',
26
+ admin: {
27
+ width: '50%',
28
+ description: 'Text or single character to display on button (e.g., "i", "?", "N")'
29
+ }
30
+ },
31
+ {
32
+ name: 'xOffset',
33
+ type: 'number',
34
+ label: 'Panel X Offset',
35
+ defaultValue: 110,
36
+ admin: {
37
+ width: '50%',
38
+ description: 'Horizontal distance from button to panel in pixels'
39
+ }
40
+ }
41
+ ]
42
+ },
43
+ {
44
+ type: 'row',
45
+ fields: [
46
+ {
47
+ name: 'panelWidth',
48
+ type: 'text',
49
+ label: 'Panel Width',
50
+ defaultValue: '16rem',
51
+ admin: {
52
+ width: '33.33%',
53
+ description: 'Width of info panel (e.g., 16rem, 300px)'
54
+ }
55
+ },
56
+ {
57
+ name: 'buttonBgColor',
58
+ type: 'text',
59
+ label: 'Button Background',
60
+ defaultValue: 'black',
61
+ admin: {
62
+ width: '33.33%',
63
+ description: 'CSS color (e.g., black, #000, var(--primary))'
64
+ }
65
+ },
66
+ {
67
+ name: 'buttonTextColor',
68
+ type: 'text',
69
+ label: 'Button Text Color',
70
+ defaultValue: 'white',
71
+ admin: {
72
+ width: '33.33%',
73
+ description: 'CSS color for button text'
74
+ }
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ type: 'row',
80
+ fields: [
81
+ {
82
+ name: 'panelBgColor',
83
+ type: 'text',
84
+ label: 'Panel Background',
85
+ defaultValue: 'black',
86
+ admin: {
87
+ width: '50%',
88
+ description: 'CSS color for panel background'
89
+ }
90
+ },
91
+ {
92
+ name: 'panelTextColor',
93
+ type: 'text',
94
+ label: 'Panel Text Color',
95
+ defaultValue: 'white',
96
+ admin: {
97
+ width: '50%',
98
+ description: 'CSS color for panel text'
99
+ }
100
+ }
101
+ ]
102
+ },
103
+ {
104
+ type: 'row',
105
+ fields: [
106
+ {
107
+ name: 'className',
108
+ type: 'text',
109
+ label: 'Container CSS Classes',
110
+ admin: {
111
+ width: '50%',
112
+ description: 'Additional CSS classes for the outer container'
113
+ }
114
+ },
115
+ {
116
+ name: 'panelClassName',
117
+ type: 'text',
118
+ label: 'Panel CSS Classes',
119
+ admin: {
120
+ width: '50%',
121
+ description: 'Additional CSS classes for the info panel'
122
+ }
123
+ }
124
+ ]
125
+ },
126
+ {
127
+ name: 'richTextData',
128
+ type: 'richText',
129
+ editor: defaultLexical,
130
+ label: 'Panel Content'
131
+ }
132
+ ]
133
+ }
134
+
135
+ export default DDGooeyInfo
@@ -0,0 +1,72 @@
1
+ {
2
+ "type": "block",
3
+ "name": "DD-GooeyInfo",
4
+ "label": "Gooey Info Button",
5
+ "sourceName": "ButtonGooeyInfo",
6
+ "portableName": "DD-GooeyInfo",
7
+ "slug": "DD-GooeyInfo",
8
+ "version": "0.0.1",
9
+ "source": {
10
+ "repo": "Hadizainal/DesignsDustedv3",
11
+ "originalPath": "src/blocks/ButtonGooeyInfo",
12
+ "originalSlug": "buttonGooeyInfo",
13
+ "originalConfigExport": "ButtonGooeyInfo",
14
+ "originalComponentExport": "ButtonGooeyInfo",
15
+ "originalInterfaceName": "DDGooeyInfo"
16
+ },
17
+ "files": [
18
+ {
19
+ "from": "Component.tsx",
20
+ "to": "src/blocks/DD-GooeyInfo/Component.tsx"
21
+ },
22
+ {
23
+ "from": "config.ts",
24
+ "to": "src/blocks/DD-GooeyInfo/config.ts"
25
+ }
26
+ ],
27
+ "dependencies": [],
28
+ "sharedFiles": [],
29
+ "requiredProjectFiles": [],
30
+ "optionalProjectFiles": [],
31
+ "collectionRegistration": {
32
+ "enabled": true,
33
+ "collections": [
34
+ "Pages",
35
+ "Posts"
36
+ ]
37
+ },
38
+ "renderBlocksRegistration": {
39
+ "enabled": true
40
+ },
41
+ "renderBlocksBehavior": {
42
+ "wrapperless": false
43
+ },
44
+ "pageRouteIntegration": {
45
+ "required": false,
46
+ "manualSteps": []
47
+ },
48
+ "manual": [
49
+ "Register DDGooeyInfo in Pages/Posts blocks arrays if automatic registration was skipped.",
50
+ "Register DD-GooeyInfo in RenderBlocks if automatic registration was skipped.",
51
+ "Run payload generate:types after schema changes."
52
+ ],
53
+ "manualSteps": [
54
+ "Register DDGooeyInfo in Pages/Posts blocks arrays if automatic registration was skipped.",
55
+ "Register DD-GooeyInfo in RenderBlocks if automatic registration was skipped.",
56
+ "Run payload generate:types after schema changes."
57
+ ],
58
+ "patchTargets": {
59
+ "blockConfigRegistration": {
60
+ "description": "Installer can add import { DDGooeyInfo } from '@/blocks/DD-GooeyInfo/config' and add DDGooeyInfo to clear Pages/Posts block arrays."
61
+ },
62
+ "renderBlocksRegistration": {
63
+ "description": "Installer can register DD-GooeyInfo in RenderBlocks."
64
+ }
65
+ },
66
+ "notes": [
67
+ "Converted from DesignsDustedv3 ButtonGooeyInfo.",
68
+ "Project-specific imports were replaced with portable local behaviour where required."
69
+ ],
70
+ "exportName": "DDGooeyInfo",
71
+ "interfaceName": "DDGooeyInfo"
72
+ }
@@ -68,9 +68,19 @@ function DynamicIcon({
68
68
 
69
69
  export const DDHero: React.FC<DDHeroProps> = ({
70
70
  badge,
71
+ eyebrow,
71
72
  headlineMain,
72
73
  headlineAccent,
73
74
  description,
75
+ headlineText,
76
+ accentText,
77
+ subText,
78
+ phase1,
79
+ phase2,
80
+ phase3,
81
+ phase1Desc,
82
+ phase2Desc,
83
+ phase3Desc,
74
84
  // primaryCta,
75
85
  // secondaryCta,
76
86
  stats,
@@ -90,8 +100,20 @@ export const DDHero: React.FC<DDHeroProps> = ({
90
100
  const bgUrl = bgMedia?.url ?? backgroundImageFallbackUrl ?? undefined
91
101
  const safeBgUrl = isLocalAssetSrc(bgUrl) ? bgUrl : null
92
102
  const isVideo = Boolean(safeBgUrl && (bgMedia?.mimeType?.startsWith('video/') ?? false))
103
+ const resolvedBadge = badge?.text ?? eyebrow
104
+ const resolvedHeadlineMain = headlineMain ?? headlineText ?? 'Launch-ready digital products'
105
+ const resolvedHeadlineAccent = headlineAccent ?? accentText ?? 'with sharper positioning'
106
+ const resolvedDescription =
107
+ description ??
108
+ subText ??
109
+ 'A hero section for selling a focused offer with clear messaging, visual depth, and direct action.'
110
+ const phaseStats = [
111
+ phase1 && { value: phase1, label: phase1Desc },
112
+ phase2 && { value: phase2, label: phase2Desc },
113
+ phase3 && { value: phase3, label: phase3Desc }
114
+ ].filter(Boolean) as StatItem[]
93
115
  const buttonItems = buttons as ButtonItem[]
94
- const statItems = (stats ?? []) as StatItem[]
116
+ const statItems = ((stats?.length ? stats : phaseStats) ?? []) as StatItem[]
95
117
 
96
118
  const [bgLoaded, setBgLoaded] = useState(false)
97
119
 
@@ -104,7 +126,7 @@ export const DDHero: React.FC<DDHeroProps> = ({
104
126
 
105
127
  <div
106
128
  id={sectionId ?? undefined}
107
- className="relative min-h-screen flex items-center overflow-hidden"
129
+ className="relative flex min-h-[72vh] w-full items-center overflow-hidden rounded-2xl"
108
130
  >
109
131
  {/* Background Image */}
110
132
  <div className="absolute inset-0">
@@ -142,21 +164,20 @@ export const DDHero: React.FC<DDHeroProps> = ({
142
164
  </div>
143
165
 
144
166
  {/* Content */}
145
- <div className="relative z-10 w-full max-w-6xl lg:max-w-7xl mx-auto px-4 md:px-6 pt-28 pb-24">
146
- #BlockName-DDHero
147
- <div className="max-w-2xl">
167
+ <div className="relative z-10 mx-auto flex w-full max-w-6xl items-center px-6 py-20 md:px-10 lg:px-14">
168
+ <div className="max-w-3xl">
148
169
  {/* Badge */}
149
170
  {/* {badge?.show && badge.text && (
150
171
  <div className="inline-flex items-center gap-2 bg-stone-50/10 border border-white/20 rounded-full px-4 py-1.5 mb-8">
151
172
  <span className="w-1.5 h-1.5 rounded-full bg-lime-400 animate-pulse" />
152
173
  <span className="text-stone-50/80 text-xs font-medium tracking-wide">
153
- {badge.text}
174
+ {resolvedBadge}
154
175
  </span>
155
176
  </div>
156
177
  )} */}
157
178
 
158
179
  {/* Badge - to convert to dynamic */}
159
- {badge?.show && badge.text && (
180
+ {(badge?.show ?? Boolean(resolvedBadge)) && resolvedBadge && (
160
181
  <motion.div
161
182
  variants={{
162
183
  hidden: { opacity: 0, y: -20, filter: 'blur(6px)' },
@@ -167,16 +188,16 @@ export const DDHero: React.FC<DDHeroProps> = ({
167
188
  <span className="inline-flex items-center gap-2 rounded-full border border-lime-500 bg-black/70 px-4 py-1.5 text-xs text-lime-100">
168
189
  {/* TODO: Reconnect Badge/AnimatedShinyText if this project provides them. */}
169
190
  <ChipIcon className="mr-2 h-3.5 w-3.5" />
170
- {badge.text}
191
+ {resolvedBadge}
171
192
  </span>
172
193
  </motion.div>
173
194
  )}
174
195
 
175
196
  {/* Headline */}
176
197
  {/* <h1 className="text-5xl md:text-6xl lg:text-7xl font-semibold text-stone-900 dark:text-stone-50 leading-[1.05] tracking-tight mb-6">
177
- {headlineMain}
198
+ {resolvedHeadlineMain}
178
199
  <br />
179
- <span className="text-stone-400">{headlineAccent}</span>
200
+ <span className="text-stone-400">{resolvedHeadlineAccent}</span>
180
201
  </h1> */}
181
202
 
182
203
  {/* Headline */}
@@ -190,9 +211,9 @@ export const DDHero: React.FC<DDHeroProps> = ({
190
211
  transition={{ duration: 0.6, ease: 'easeOut' }}
191
212
  style={{ filter: 'drop-shadow(3px 3px 1px #151515)' }}
192
213
  >
193
- <span className="block text-6xl sm:text-6xl font-semibold text-left tracking-tight md:text-7xl text-purple-600 dark:text-violet-600 hyphens-auto">
214
+ <span className="block text-left text-5xl font-semibold tracking-tight text-lime-300 drop-shadow-lg sm:text-6xl md:text-7xl">
194
215
  {/* TODO: Reconnect SplittingText animation if this project provides it. */}
195
- {headlineMain}
216
+ {resolvedHeadlineMain}
196
217
  </span>
197
218
  </motion.div>
198
219
  <motion.div
@@ -205,16 +226,18 @@ export const DDHero: React.FC<DDHeroProps> = ({
205
226
  transition={{ duration: 0.6, ease: 'easeOut' }}
206
227
  style={{ filter: 'drop-shadow(3px 3px 1px #151515)' }}
207
228
  >
208
- <span className="block text-6xl sm:text-6xl font-semibold text-left tracking-tight md:text-7xl text-purple-900 dark:text-violet-900 hyphens-auto">
229
+ <span className="block text-left text-5xl font-semibold tracking-tight text-stone-50 drop-shadow-lg sm:text-6xl md:text-7xl">
209
230
  {/* TODO: Reconnect SplittingText animation if this project provides it. */}
210
- {headlineAccent}
231
+ {resolvedHeadlineAccent}
211
232
  </span>
212
233
  </motion.div>
213
234
 
214
235
  {/* Description */}
215
236
  <TextFade direction="down" className="mt-10" delay={0.5}>
216
- {description && (
217
- <p className="text-stone-50/65 leading-relaxed mt-4 mb-0 max-w-xl">{description}</p>
237
+ {resolvedDescription && (
238
+ <p className="mt-4 mb-0 max-w-2xl text-lg leading-relaxed text-stone-50/75">
239
+ {resolvedDescription}
240
+ </p>
218
241
  )}
219
242
  </TextFade>
220
243
 
@@ -256,7 +279,7 @@ export const DDHero: React.FC<DDHeroProps> = ({
256
279
  href={(button as any).href ?? '#'}
257
280
  className={
258
281
  button.class ??
259
- 'inline-flex items-center gap-1.5 bg-indigo-700 text-stone-50 text-xs font-semibold px-3 py-1.5 rounded-lg group-hover:bg-indigo-600 group-hover:scale-[1.05] group-hover:shadow-xl transition-all duration-150 whitespace-nowrap'
282
+ 'inline-flex items-center justify-center gap-2 rounded-full bg-lime-400 px-5 py-2.5 text-sm font-semibold text-stone-950 shadow-[0_0_28px_rgba(132,204,22,0.35)] transition-all duration-150 hover:bg-lime-300 hover:scale-[1.03] whitespace-nowrap'
260
283
  }
261
284
  style={{ cornerShape: 'squircle' } as React.CSSProperties}
262
285
  >