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
@@ -0,0 +1,264 @@
1
+ import type { Block } from 'payload'
2
+ import { DDCustomCSS } from '@/blocks/DD-CustomCSS/config'
3
+
4
+ export const DDLogoMarq: Block = {
5
+ slug: 'DD-LogoMarq',
6
+ interfaceName: 'DDLogoMarq',
7
+ labels: {
8
+ singular: 'Image Marquee',
9
+ plural: 'Image Marquee'
10
+ },
11
+
12
+ fields: [
13
+ {
14
+ admin: {
15
+ initCollapsed: true,
16
+ className: 'custom-css-class'
17
+ },
18
+ type: 'collapsible',
19
+ label: 'Block Settings',
20
+ fields: [
21
+ // Custom container class
22
+ {
23
+ admin: {
24
+ initCollapsed: true,
25
+ className: 'custom-css-class'
26
+ },
27
+ type: 'collapsible',
28
+ label: 'Container Class',
29
+ fields: [
30
+ {
31
+ name: 'containerClass',
32
+ label: false,
33
+ type: 'text',
34
+ required: false,
35
+ admin: {
36
+ description:
37
+ 'Overide the default container class. Default: `overflow-hidden py-8 bg-gray-100`'
38
+ }
39
+ }
40
+ ]
41
+ },
42
+ // Marquee settings
43
+ {
44
+ admin: {
45
+ initCollapsed: true,
46
+ className: 'custom-group-class'
47
+ },
48
+ type: 'collapsible',
49
+ label: 'Marquee Settings',
50
+ fields: [
51
+ {
52
+ type: 'row', // Forces items to align in a row
53
+ fields: [
54
+ {
55
+ name: 'speed',
56
+ type: 'number',
57
+ label: 'Scroll Speed (seconds)',
58
+ defaultValue: 10,
59
+ required: true,
60
+ admin: {
61
+ description: 'Speed of the marquee in seconds.',
62
+ width: '50%' // Now properly takes half width
63
+ }
64
+ },
65
+ {
66
+ name: 'spacing',
67
+ type: 'number',
68
+ label: 'Spacing between images (px)',
69
+ defaultValue: 32,
70
+ required: true,
71
+ admin: {
72
+ description: 'Space between images in pixels.',
73
+ width: '50%' // Now properly takes half width
74
+ }
75
+ }
76
+ ]
77
+ }
78
+ ]
79
+ },
80
+ // Priority loading for above-the-fold logos
81
+ {
82
+ name: 'priority',
83
+ type: 'checkbox',
84
+ label: 'High Priority Loading',
85
+ defaultValue: false,
86
+ admin: {
87
+ description:
88
+ 'Enable for above-the-fold logos only. Improves LCP but should only be used when this marquee appears at the top of the page.'
89
+ }
90
+ },
91
+ // Divider
92
+ {
93
+ admin: {
94
+ initCollapsed: true,
95
+ className: 'custom-group-class'
96
+ },
97
+ type: 'collapsible',
98
+ label: 'Dividers',
99
+ fields: [
100
+ {
101
+ name: 'showTopDivider',
102
+ type: 'checkbox',
103
+ label: 'Show Top Divider',
104
+ admin: {
105
+ description: 'Enable divider at the top of the marquee.'
106
+ }
107
+ },
108
+ {
109
+ name: 'showBottomDivider',
110
+ type: 'checkbox',
111
+ label: 'Show Bottom Divider',
112
+ admin: {
113
+ description: 'Enable divider at the bottom of the marquee.'
114
+ }
115
+ }
116
+ ]
117
+ }
118
+ ]
119
+ },
120
+ // Logos array
121
+
122
+ {
123
+ name: 'logoImages',
124
+ type: 'upload',
125
+ relationTo: 'media',
126
+ hasMany: true,
127
+ required: false,
128
+ filterOptions: {
129
+ mimeType: { contains: 'image' }
130
+ },
131
+ admin: {
132
+ description:
133
+ 'Bulk add images to the marquee. Selecting images here will append rows into `Images` (logos[]) with defaults, then clear this field.'
134
+ },
135
+ hooks: {
136
+ beforeChange: [
137
+ ({ value, siblingData }) => {
138
+ if (!Array.isArray(value) || value.length === 0) return value
139
+
140
+ const existingLogos = Array.isArray((siblingData as any)?.logos)
141
+ ? ((siblingData as any).logos as Array<any>)
142
+ : []
143
+
144
+ const normalizeImageId = (imageValue: unknown): number | string | undefined => {
145
+ if (typeof imageValue === 'number' || typeof imageValue === 'string')
146
+ return imageValue
147
+ if (imageValue && typeof imageValue === 'object' && 'id' in (imageValue as any)) {
148
+ const maybeId = (imageValue as any).id
149
+ if (typeof maybeId === 'number' || typeof maybeId === 'string') return maybeId
150
+ }
151
+ return undefined
152
+ }
153
+
154
+ const existingIds = new Set(
155
+ existingLogos
156
+ .map((row) => normalizeImageId(row?.image))
157
+ .filter((id): id is number | string => id !== undefined)
158
+ )
159
+
160
+ const newRows = value
161
+ .map((id) => normalizeImageId(id))
162
+ .filter((id): id is number | string => id !== undefined)
163
+ .filter((id) => !existingIds.has(id))
164
+ .map((id) => ({
165
+ image: id,
166
+ imageAltClass: 'hidden',
167
+ imageClass: ''
168
+ }))
169
+
170
+ ;(siblingData as any).logos = [...existingLogos, ...newRows]
171
+
172
+ // Clear helper field after applying
173
+ return []
174
+ }
175
+ ]
176
+ }
177
+ },
178
+
179
+ {
180
+ name: 'logos',
181
+ type: 'array',
182
+ labels: {
183
+ singular: 'Image',
184
+ plural: 'Images'
185
+ },
186
+ label: 'Images',
187
+ fields: [
188
+ {
189
+ name: 'image',
190
+ type: 'upload',
191
+ relationTo: 'media',
192
+ required: false,
193
+ filterOptions: {
194
+ mimeType: { contains: 'image' }
195
+ }
196
+ },
197
+ // Custom class for alt text
198
+ {
199
+ admin: {
200
+ initCollapsed: true,
201
+ className: 'custom-css-class'
202
+ },
203
+ type: 'collapsible',
204
+ label: 'Alt Text Class',
205
+ fields: [
206
+ {
207
+ name: 'imageAltClass',
208
+ label: false,
209
+ type: 'text',
210
+ required: false,
211
+ defaultValue: 'hidden',
212
+ admin: {
213
+ description:
214
+ 'Overide the default class for the image alt text. Set `hidden` to hide.'
215
+ }
216
+ }
217
+ ]
218
+ },
219
+ // Custom class for image
220
+ {
221
+ admin: {
222
+ initCollapsed: true,
223
+ className: 'custom-css-class'
224
+ },
225
+ type: 'collapsible',
226
+ label: 'Image Class',
227
+ fields: [
228
+ {
229
+ name: 'imageClass',
230
+ label: false,
231
+ type: 'text',
232
+ required: false,
233
+ admin: {
234
+ description: 'Overide the default class for the image.'
235
+ }
236
+ }
237
+ ]
238
+ }
239
+ ]
240
+ },
241
+ {
242
+ name: 'enableCustomCSS',
243
+ type: 'checkbox',
244
+ hidden: false,
245
+ label: 'Inject Custom CSS',
246
+ defaultValue: false
247
+ },
248
+ {
249
+ name: 'customCSS',
250
+ type: 'blocks',
251
+ label: 'Custom CSS',
252
+ blocks: [DDCustomCSS],
253
+ maxRows: 1,
254
+ required: false,
255
+ admin: {
256
+ initCollapsed: true,
257
+ className: 'for-devs-class custom-css-class',
258
+ description:
259
+ 'Add dynamic class in your component and inject or overide existing styles here.',
260
+ condition: (_, siblingData) => Boolean(siblingData.enableCustomCSS)
261
+ }
262
+ }
263
+ ]
264
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "type": "block",
3
+ "name": "DD-LogoMarq",
4
+ "label": "Logo Marquee",
5
+ "sourceName": "LogoMarquee",
6
+ "portableName": "DD-LogoMarq",
7
+ "slug": "DD-LogoMarq",
8
+ "version": "0.0.1",
9
+ "source": {
10
+ "repo": "Hadizainal/DesignsDustedv3",
11
+ "originalPath": "src/blocks/ROUND-TWO-CONVERSION/LogoMarquee",
12
+ "originalSlug": "logoMarquee",
13
+ "originalConfigExport": "LogoMarquee",
14
+ "originalComponentExport": "LogoMarquee",
15
+ "originalInterfaceName": "DDLogoMarq"
16
+ },
17
+ "files": [
18
+ {
19
+ "from": "Component.tsx",
20
+ "to": "src/blocks/DD-LogoMarq/Component.tsx"
21
+ },
22
+ {
23
+ "from": "config.ts",
24
+ "to": "src/blocks/DD-LogoMarq/config.ts"
25
+ }
26
+ ],
27
+ "dependencies": [
28
+ "framer-motion"
29
+ ],
30
+ "sharedFiles": [
31
+ {
32
+ "from": "templates/shared/src/components/ui/separator.tsx",
33
+ "to": "src/components/ui/separator.tsx",
34
+ "required": true,
35
+ "safeToCopy": true
36
+ }
37
+ ],
38
+ "requiredProjectFiles": [],
39
+ "optionalProjectFiles": [],
40
+ "collectionRegistration": {
41
+ "enabled": true,
42
+ "collections": [
43
+ "Pages",
44
+ "Posts"
45
+ ]
46
+ },
47
+ "renderBlocksRegistration": {
48
+ "enabled": true
49
+ },
50
+ "renderBlocksBehavior": {
51
+ "wrapperless": false
52
+ },
53
+ "pageRouteIntegration": {
54
+ "required": false,
55
+ "manualSteps": []
56
+ },
57
+ "manual": [
58
+ "Register DDLogoMarq in Pages/Posts blocks arrays if automatic registration was skipped.",
59
+ "Register DD-LogoMarq in RenderBlocks if automatic registration was skipped.",
60
+ "Run payload generate:types after schema changes."
61
+ ],
62
+ "manualSteps": [
63
+ "Register DDLogoMarq in Pages/Posts blocks arrays if automatic registration was skipped.",
64
+ "Register DD-LogoMarq in RenderBlocks if automatic registration was skipped.",
65
+ "Run payload generate:types after schema changes."
66
+ ],
67
+ "patchTargets": {
68
+ "blockConfigRegistration": {
69
+ "description": "Installer can add import { DDLogoMarq } from '@/blocks/DD-LogoMarq/config' and add DDLogoMarq to clear Pages/Posts block arrays."
70
+ },
71
+ "renderBlocksRegistration": {
72
+ "description": "Installer can register DD-LogoMarq in RenderBlocks."
73
+ }
74
+ },
75
+ "notes": [
76
+ "Converted from ROUND-TWO-CONVERSION as a portable Dusted template.",
77
+ "Project-specific imports were replaced with local, dependency-light rendering where required.",
78
+ "Manifest includes shared local support files required by original DesignsDusted source imports."
79
+ ],
80
+ "exportName": "DDLogoMarq",
81
+ "interfaceName": "DDLogoMarq"
82
+ }