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,157 @@
1
+ 'use client'
2
+
3
+ import React from 'react'
4
+ import { motion } from 'framer-motion'
5
+ import { cn } from '@/utilities/ui'
6
+ import { Separator } from '@/components/ui/separator'
7
+
8
+ export interface TextMarqueeBlockProps {
9
+ blockType: 'textMarquee'
10
+ items?: Array<{
11
+ text: string
12
+ textClass?: string
13
+ textStyle?: React.CSSProperties
14
+ fontSize?: string
15
+ fontWeight?: string
16
+ color?: string
17
+ }>
18
+ speed?: number
19
+ spacing?: number
20
+ showTopDivider?: boolean
21
+ showBottomDivider?: boolean
22
+ containerClass?: string
23
+ }
24
+
25
+ export type TextMarqueeProps = {
26
+ texts: {
27
+ text: string
28
+ textClass?: string
29
+ textStyle?: React.CSSProperties
30
+ fontSize?: string
31
+ fontWeight?: string
32
+ color?: string
33
+ }[]
34
+ speed?: number
35
+ spacing?: number
36
+ showTopDivider?: boolean
37
+ showBottomDivider?: boolean
38
+ containerClass?: string
39
+ }
40
+
41
+ export const TextMarqueeComponent: React.FC<TextMarqueeProps> = ({
42
+ texts,
43
+ speed = 20,
44
+ spacing = 48,
45
+ showTopDivider = false,
46
+ showBottomDivider = false,
47
+ containerClass = 'overflow-hidden py-8 bg-transparent',
48
+ }) => {
49
+ if (!texts || texts.length === 0) {
50
+ return null
51
+ }
52
+
53
+ // Calculate total width - simple calculation, no memoization needed
54
+ const totalWidth = texts.reduce((acc, text) => {
55
+ const textWidth = text.text.length * 12 // ~12px per character
56
+ return acc + textWidth + spacing
57
+ }, 0)
58
+
59
+ return (
60
+ <>
61
+ {showTopDivider && <Separator gradient={true} className="border-t" />}
62
+ <div className={cn('overflow-clip relative top-24', containerClass)}>
63
+ <motion.div
64
+ className="flex items-center whitespace-nowrap"
65
+ animate={{ x: [0, -totalWidth] }}
66
+ transition={{
67
+ repeat: Infinity,
68
+ duration: speed,
69
+ ease: 'linear',
70
+ repeatType: 'loop',
71
+ }}
72
+ style={{ width: `${totalWidth * 2}px` }}
73
+ >
74
+ {/* First set of texts */}
75
+ {texts.map((item, index) => (
76
+ <div
77
+ key={`text-${index}`}
78
+ className="shrink-0 flex items-center justify-center"
79
+ style={{ marginRight: `${spacing}px` }}
80
+ >
81
+ <span
82
+ className={cn('text-center whitespace-nowrap uppercase', item.textClass)}
83
+ style={{
84
+ fontSize: item.fontSize || '4rem',
85
+ fontWeight: item.fontWeight || 'bold',
86
+ color: item.color || 'currentColor',
87
+ ...item.textStyle,
88
+ }}
89
+ >
90
+ {item.text}
91
+ </span>
92
+ </div>
93
+ ))}
94
+
95
+ {/* Duplicate set for seamless loop */}
96
+ {texts.map((item, index) => (
97
+ <div
98
+ key={`text-${index}-duplicate`}
99
+ className="shrink-0 flex items-center justify-center"
100
+ style={{ marginRight: `${spacing}px` }}
101
+ >
102
+ <span
103
+ className={cn('text-center whitespace-nowrap uppercase', item.textClass)}
104
+ style={{
105
+ fontSize: item.fontSize || '4rem',
106
+ fontWeight: item.fontWeight || 'bold',
107
+ color: item.color || 'currentColor',
108
+ ...item.textStyle,
109
+ }}
110
+ >
111
+ {item.text}
112
+ </span>
113
+ </div>
114
+ ))}
115
+ </motion.div>
116
+ </div>
117
+ {showBottomDivider && <Separator gradient={true} className="border-b" />}
118
+ </>
119
+ )
120
+ }
121
+
122
+ // Block component that transforms props and renders the TextMarquee
123
+ export const DDTextMarq: React.FC<TextMarqueeBlockProps> = (props) => {
124
+ const {
125
+ items = [],
126
+ speed = 20,
127
+ spacing = 48,
128
+ showTopDivider = false,
129
+ showBottomDivider = false,
130
+ containerClass = 'overflow-hidden py-8 bg-transparent',
131
+ } = props
132
+
133
+ // Transform items to match component expectations, using array index instead of id
134
+ const texts = items.map((item, index) => ({
135
+ text: item.text,
136
+ textClass: item.textClass,
137
+ textStyle: item.textStyle,
138
+ fontSize: item.fontSize,
139
+ fontWeight: item.fontWeight,
140
+ color: item.color,
141
+ }))
142
+
143
+ if (texts.length === 0) {
144
+ return null
145
+ }
146
+
147
+ return (
148
+ <TextMarqueeComponent
149
+ texts={texts}
150
+ speed={speed}
151
+ spacing={spacing}
152
+ showTopDivider={showTopDivider}
153
+ showBottomDivider={showBottomDivider}
154
+ containerClass={containerClass}
155
+ />
156
+ )
157
+ }
@@ -0,0 +1,4 @@
1
+ # DD-TextMarq
2
+
3
+ Portable first-pass conversion of `TextMarquee` from ROUND-TWO-CONVERSION. Project-specific roots and nested unconverted block dependencies were intentionally replaced with local rendering so the template can install into a clean Payload project.
4
+
@@ -0,0 +1,237 @@
1
+ import type { Block } from 'payload'
2
+
3
+ export const DDTextMarq: Block = {
4
+ // Changed from TextMarqueeBlock to TextMarquee
5
+ slug: 'DD-TextMarq',
6
+ interfaceName: 'DDTextMarq',
7
+ labels: {
8
+ singular: 'Text Marquee',
9
+ plural: 'Text Marquees'
10
+ },
11
+ fields: [
12
+ {
13
+ admin: {
14
+ initCollapsed: true,
15
+ className: 'custom-css-class'
16
+ },
17
+ type: 'collapsible',
18
+ label: 'Block Settings',
19
+ fields: [
20
+ {
21
+ admin: {
22
+ initCollapsed: true,
23
+ className: 'custom-css-class'
24
+ },
25
+ type: 'collapsible',
26
+ label: 'Container Class',
27
+ fields: [
28
+ {
29
+ name: 'containerClass',
30
+ label: false,
31
+ type: 'text',
32
+ required: false,
33
+ admin: {
34
+ description:
35
+ 'Override the default container class. Default: `overflow-hidden py-8 bg-transparent`'
36
+ }
37
+ }
38
+ ]
39
+ },
40
+ {
41
+ admin: {
42
+ initCollapsed: true,
43
+ className: 'custom-group-class'
44
+ },
45
+ type: 'collapsible',
46
+ label: 'Marquee Settings',
47
+ fields: [
48
+ {
49
+ type: 'row',
50
+ fields: [
51
+ {
52
+ name: 'speed',
53
+ type: 'number',
54
+ label: 'Scroll Speed (seconds)',
55
+ defaultValue: 20,
56
+ required: true,
57
+ admin: {
58
+ description: 'Speed of the marquee in seconds.',
59
+ width: '50%'
60
+ }
61
+ },
62
+ {
63
+ name: 'spacing',
64
+ type: 'number',
65
+ label: 'Spacing between items (px)',
66
+ defaultValue: 48,
67
+ required: true,
68
+ admin: {
69
+ description: 'Space between items in pixels.',
70
+ width: '50%'
71
+ }
72
+ }
73
+ ]
74
+ }
75
+ ]
76
+ },
77
+ {
78
+ admin: {
79
+ initCollapsed: true,
80
+ className: 'custom-group-class'
81
+ },
82
+ type: 'collapsible',
83
+ label: 'Dividers',
84
+ fields: [
85
+ {
86
+ name: 'showTopDivider',
87
+ type: 'checkbox',
88
+ label: 'Show Top Divider',
89
+ defaultValue: false,
90
+ admin: {
91
+ description: 'Enable divider at the top of the marquee.'
92
+ }
93
+ },
94
+ {
95
+ name: 'showBottomDivider',
96
+ type: 'checkbox',
97
+ label: 'Show Bottom Divider',
98
+ defaultValue: false,
99
+ admin: {
100
+ description: 'Enable divider at the bottom of the marquee.'
101
+ }
102
+ }
103
+ ]
104
+ }
105
+ ]
106
+ },
107
+
108
+ {
109
+ name: 'items',
110
+ type: 'array',
111
+ labels: {
112
+ singular: 'Text',
113
+ plural: 'Texts'
114
+ },
115
+ label: 'Text Items',
116
+ required: true,
117
+ minRows: 1,
118
+ fields: [
119
+ {
120
+ name: 'text',
121
+ type: 'text',
122
+ required: true
123
+ },
124
+
125
+ {
126
+ admin: {
127
+ initCollapsed: true,
128
+ className: 'custom-css-class'
129
+ },
130
+ type: 'collapsible',
131
+ label: 'Additional Text Settings',
132
+ fields: [
133
+ {
134
+ admin: {
135
+ initCollapsed: true,
136
+ className: 'custom-css-class'
137
+ },
138
+ type: 'collapsible',
139
+ label: 'Text Class',
140
+ fields: [
141
+ {
142
+ name: 'textClass',
143
+ label: false,
144
+ type: 'text',
145
+ required: false,
146
+ admin: {
147
+ description:
148
+ 'Override the default class for the text. Use text-sm, text-md, text-lg, etc. for font size or other Tailwind classes.'
149
+ }
150
+ }
151
+ ]
152
+ },
153
+ {
154
+ admin: {
155
+ initCollapsed: true,
156
+ className: 'custom-css-class'
157
+ },
158
+ type: 'collapsible',
159
+ label: 'Text Style Options (Experimental)',
160
+ fields: [
161
+ {
162
+ type: 'row',
163
+ fields: [
164
+ {
165
+ name: 'fontSize',
166
+ type: 'text',
167
+ label: 'Font Size',
168
+ hidden: true,
169
+ admin: {
170
+ description: 'CSS font-size value (e.g., "16px", "1.2rem", "1.5em")',
171
+ placeholder: '1rem',
172
+ width: '33%'
173
+ }
174
+ },
175
+ {
176
+ name: 'fontWeight',
177
+ type: 'select',
178
+ label: 'Font Weight',
179
+ options: [
180
+ { label: 'Default', value: '' },
181
+ { label: 'Normal', value: 'normal' },
182
+ { label: 'Bold', value: 'bold' },
183
+ { label: '100 - Thin', value: '100' },
184
+ { label: '200 - Extra Light', value: '200' },
185
+ { label: '300 - Light', value: '300' },
186
+ { label: '400 - Normal', value: '400' },
187
+ { label: '500 - Medium', value: '500' },
188
+ { label: '600 - Semi Bold', value: '600' },
189
+ { label: '700 - Bold', value: '700' },
190
+ { label: '800 - Extra Bold', value: '800' },
191
+ { label: '900 - Black', value: '900' }
192
+ ],
193
+ admin: {
194
+ width: '33%'
195
+ }
196
+ },
197
+ {
198
+ name: 'color',
199
+ type: 'text',
200
+ label: 'Text Color',
201
+ admin: {
202
+ description: 'CSS color value (e.g., "#000000", "rgb(255,0,0)", "red")',
203
+ placeholder: 'currentColor',
204
+ width: '34%'
205
+ }
206
+ }
207
+ ]
208
+ }
209
+ ]
210
+ },
211
+ {
212
+ admin: {
213
+ initCollapsed: true,
214
+ className: 'custom-css-class'
215
+ },
216
+ type: 'collapsible',
217
+ label: 'Advanced Text Style (JSON)',
218
+ fields: [
219
+ {
220
+ name: 'textStyle',
221
+ label: false,
222
+ type: 'json',
223
+ required: false,
224
+ admin: {
225
+ description:
226
+ 'Advanced inline-style json format. Example: { "textShadow": "2px 2px 4px rgba(0,0,0,0.5)" }. This will override the above style options.',
227
+ className: 'json-editor'
228
+ }
229
+ }
230
+ ]
231
+ }
232
+ ]
233
+ }
234
+ ]
235
+ }
236
+ ]
237
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "type": "block",
3
+ "name": "DD-TextMarq",
4
+ "label": "Text Marquee",
5
+ "sourceName": "TextMarquee",
6
+ "portableName": "DD-TextMarq",
7
+ "slug": "DD-TextMarq",
8
+ "version": "0.0.1",
9
+ "source": {
10
+ "repo": "Hadizainal/DesignsDustedv3",
11
+ "originalPath": "src/blocks/ROUND-TWO-CONVERSION/TextMarquee",
12
+ "originalSlug": "textMarquee",
13
+ "originalConfigExport": "TextMarquee",
14
+ "originalComponentExport": "TextMarquee",
15
+ "originalInterfaceName": "DDTextMarq"
16
+ },
17
+ "files": [
18
+ {
19
+ "from": "Component.tsx",
20
+ "to": "src/blocks/DD-TextMarq/Component.tsx"
21
+ },
22
+ {
23
+ "from": "config.ts",
24
+ "to": "src/blocks/DD-TextMarq/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 DDTextMarq in Pages/Posts blocks arrays if automatic registration was skipped.",
59
+ "Register DD-TextMarq in RenderBlocks if automatic registration was skipped.",
60
+ "Run payload generate:types after schema changes."
61
+ ],
62
+ "manualSteps": [
63
+ "Register DDTextMarq in Pages/Posts blocks arrays if automatic registration was skipped.",
64
+ "Register DD-TextMarq 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 { DDTextMarq } from '@/blocks/DD-TextMarq/config' and add DDTextMarq to clear Pages/Posts block arrays."
70
+ },
71
+ "renderBlocksRegistration": {
72
+ "description": "Installer can register DD-TextMarq 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": "DDTextMarq",
81
+ "interfaceName": "DDTextMarq"
82
+ }