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,74 @@
1
+ {
2
+ "type": "block",
3
+ "name": "DD-Progress",
4
+ "label": "Progress Skill",
5
+ "sourceName": "ProgressSkillBlock",
6
+ "portableName": "DD-Progress",
7
+ "slug": "DD-Progress",
8
+ "version": "0.0.1",
9
+ "source": {
10
+ "repo": "Hadizainal/DesignsDustedv3",
11
+ "originalPath": "src/blocks/ROUND-TWO-CONVERSION/ProgressSkillBlock",
12
+ "originalSlug": "progressSkillBlock",
13
+ "originalConfigExport": "ProgressSkillBlock",
14
+ "originalComponentExport": "ProgressSkillBlock",
15
+ "originalInterfaceName": "DDProgress"
16
+ },
17
+ "files": [
18
+ {
19
+ "from": "Component.tsx",
20
+ "to": "src/blocks/DD-Progress/Component.tsx"
21
+ },
22
+ {
23
+ "from": "config.ts",
24
+ "to": "src/blocks/DD-Progress/config.ts"
25
+ }
26
+ ],
27
+ "dependencies": [
28
+ "framer-motion"
29
+ ],
30
+ "sharedFiles": [],
31
+ "requiredProjectFiles": [],
32
+ "optionalProjectFiles": [],
33
+ "collectionRegistration": {
34
+ "enabled": true,
35
+ "collections": [
36
+ "Pages",
37
+ "Posts"
38
+ ]
39
+ },
40
+ "renderBlocksRegistration": {
41
+ "enabled": true
42
+ },
43
+ "renderBlocksBehavior": {
44
+ "wrapperless": false
45
+ },
46
+ "pageRouteIntegration": {
47
+ "required": false,
48
+ "manualSteps": []
49
+ },
50
+ "manual": [
51
+ "Register DDProgress in Pages/Posts blocks arrays if automatic registration was skipped.",
52
+ "Register DD-Progress in RenderBlocks if automatic registration was skipped.",
53
+ "Run payload generate:types after schema changes."
54
+ ],
55
+ "manualSteps": [
56
+ "Register DDProgress in Pages/Posts blocks arrays if automatic registration was skipped.",
57
+ "Register DD-Progress in RenderBlocks if automatic registration was skipped.",
58
+ "Run payload generate:types after schema changes."
59
+ ],
60
+ "patchTargets": {
61
+ "blockConfigRegistration": {
62
+ "description": "Installer can add import { DDProgress } from '@/blocks/DD-Progress/config' and add DDProgress to clear Pages/Posts block arrays."
63
+ },
64
+ "renderBlocksRegistration": {
65
+ "description": "Installer can register DD-Progress in RenderBlocks."
66
+ }
67
+ },
68
+ "notes": [
69
+ "Converted from ROUND-TWO-CONVERSION as a portable Dusted template.",
70
+ "Project-specific imports were replaced with local, dependency-light rendering where required."
71
+ ],
72
+ "exportName": "DDProgress",
73
+ "interfaceName": "DDProgress"
74
+ }
@@ -0,0 +1,91 @@
1
+ 'use client'
2
+ import React from 'react'
3
+ import { DDProjSlider } from '../DD-ProjSlider/Component'
4
+
5
+ export interface Project2HeaderInfo {
6
+ label: string
7
+ value: string
8
+ }
9
+
10
+ export interface Project2HeaderImage {
11
+ image: string | { url: string; alt?: string }
12
+ alt?: string
13
+ id?: string
14
+ }
15
+
16
+ export interface Project2HeaderBlockProps {
17
+ title?: string
18
+ description?: string
19
+ projectInfo?: Project2HeaderInfo[]
20
+ images?: Project2HeaderImage[]
21
+ slidesPerView?: number
22
+ spaceBetween?: number
23
+ loop?: boolean
24
+ centeredSlides?: boolean
25
+ showSlider?: boolean
26
+ }
27
+
28
+ function Project2HeaderBlock({
29
+ title = 'Media Agency',
30
+ description = 'We provide digital experience services to startups and small businesses. We help our clients succeed by creating brand identities.',
31
+ projectInfo = [
32
+ { label: 'Category', value: 'Marketing' },
33
+ { label: 'Client', value: 'DustedClient' },
34
+ { label: 'Start Date', value: '4 July 2021' },
35
+ { label: 'Designer', value: 'DustedUi' }
36
+ ],
37
+ images = [
38
+ {
39
+ id: '1',
40
+ image:
41
+ 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080"%3E%3Crect width="1920" height="1080" fill="%23ddd"/%3E%3Ctext x="50%25" y="50%25" dominant-baseline="middle" text-anchor="middle" font-family="sans-serif" font-size="64" fill="%23999"%3E1920x1080%3C/text%3E%3C/svg%3E'
42
+ },
43
+ {
44
+ id: '2',
45
+ image:
46
+ 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080"%3E%3Crect width="1920" height="1080" fill="%23ddd"/%3E%3Ctext x="50%25" y="50%25" dominant-baseline="middle" text-anchor="middle" font-family="sans-serif" font-size="64" fill="%23999"%3E1920x1080%3C/text%3E%3C/svg%3E'
47
+ },
48
+ {
49
+ id: '3',
50
+ image:
51
+ 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080"%3E%3Crect width="1920" height="1080" fill="%23ddd"/%3E%3Ctext x="50%25" y="50%25" dominant-baseline="middle" text-anchor="middle" font-family="sans-serif" font-size="64" fill="%23999"%3E1920x1080%3C/text%3E%3C/svg%3E'
52
+ }
53
+ ],
54
+ slidesPerView = 2,
55
+ spaceBetween = 30,
56
+ loop = true,
57
+ centeredSlides = true,
58
+ showSlider = true
59
+ }: Project2HeaderBlockProps) {
60
+ return (
61
+ <>
62
+ <section className="container py-12">
63
+ <h1 className="text-3xl md:text-5xl font-semibold mb-4">{title}</h1>
64
+ <p className="text-stone-400 mb-8 max-w-3xl">{description}</p>
65
+ {projectInfo?.length ? (
66
+ <div className="grid gap-3 sm:grid-cols-2 lg:grid-cols-4">
67
+ {projectInfo.map((info, index) => (
68
+ <div key={`${info.label}-${index}`} className="rounded border border-stone-800 p-3">
69
+ <p className="text-xs uppercase text-stone-400">{info.label}</p>
70
+ <p className="text-sm text-stone-200">{info.value}</p>
71
+ </div>
72
+ ))}
73
+ </div>
74
+ ) : null}
75
+ </section>
76
+ {showSlider && (
77
+ <DDProjSlider
78
+ images={images}
79
+ slidesPerView={slidesPerView}
80
+ spaceBetween={spaceBetween}
81
+ loop={loop}
82
+ centeredSlides={centeredSlides}
83
+ />
84
+ )}
85
+ </>
86
+ )
87
+ }
88
+
89
+ export const DDProjHeader = Project2HeaderBlock
90
+ export default DDProjHeader
91
+
@@ -0,0 +1,4 @@
1
+ # DD-ProjHeader
2
+
3
+ Portable first-pass conversion of `Project2HeaderBlock` 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,96 @@
1
+ import { Block } from 'payload'
2
+
3
+ export const DDProjHeader: Block = {
4
+ slug: 'DD-ProjHeader',
5
+ interfaceName: 'DDProjHeader',
6
+ labels: {
7
+ singular: 'Project2 Header Block',
8
+ plural: 'Project2 Header Blocks'
9
+ },
10
+ fields: [
11
+ {
12
+ name: 'title',
13
+ type: 'text',
14
+ label: 'Title',
15
+ defaultValue: 'OPT Media Agency'
16
+ },
17
+ {
18
+ name: 'description',
19
+ type: 'textarea',
20
+ label: 'Description',
21
+ defaultValue:
22
+ 'We provide digital experience services to startups and small businesses. We help our clients succeed by creating brand identities.'
23
+ },
24
+ {
25
+ name: 'projectInfo',
26
+ type: 'array',
27
+ label: 'Project Info',
28
+ fields: [
29
+ {
30
+ name: 'label',
31
+ type: 'text',
32
+ label: 'Label',
33
+ required: true
34
+ },
35
+ {
36
+ name: 'value',
37
+ type: 'text',
38
+ label: 'Value',
39
+ required: true
40
+ }
41
+ ]
42
+ },
43
+ {
44
+ name: 'images',
45
+ type: 'array',
46
+ label: 'Images',
47
+ minRows: 1,
48
+ fields: [
49
+ {
50
+ name: 'image',
51
+ type: 'upload',
52
+ relationTo: 'media',
53
+ label: 'Image',
54
+ required: true
55
+ },
56
+ {
57
+ name: 'alt',
58
+ type: 'text',
59
+ label: 'Alt Text'
60
+ }
61
+ ]
62
+ },
63
+ {
64
+ name: 'slidesPerView',
65
+ type: 'number',
66
+ label: 'Slides Per View',
67
+ defaultValue: 2
68
+ },
69
+ {
70
+ name: 'spaceBetween',
71
+ type: 'number',
72
+ label: 'Space Between Slides',
73
+ defaultValue: 30
74
+ },
75
+ {
76
+ name: 'loop',
77
+ type: 'checkbox',
78
+ label: 'Enable Loop',
79
+ defaultValue: true
80
+ },
81
+ {
82
+ name: 'centeredSlides',
83
+ type: 'checkbox',
84
+ label: 'Center Slides',
85
+ defaultValue: true
86
+ },
87
+ {
88
+ name: 'showSlider',
89
+ type: 'checkbox',
90
+ label: 'Show Slider',
91
+ defaultValue: true
92
+ }
93
+ ]
94
+ }
95
+
96
+ export default DDProjHeader
@@ -0,0 +1,72 @@
1
+ {
2
+ "type": "block",
3
+ "name": "DD-ProjHeader",
4
+ "label": "Project Header",
5
+ "sourceName": "Project2HeaderBlock",
6
+ "portableName": "DD-ProjHeader",
7
+ "slug": "DD-ProjHeader",
8
+ "version": "0.0.1",
9
+ "source": {
10
+ "repo": "Hadizainal/DesignsDustedv3",
11
+ "originalPath": "src/blocks/ROUND-TWO-CONVERSION/Project2HeaderBlock",
12
+ "originalSlug": "project2Header",
13
+ "originalConfigExport": "Project2HeaderBlock",
14
+ "originalComponentExport": "Project2HeaderBlock",
15
+ "originalInterfaceName": "DDProjHeader"
16
+ },
17
+ "files": [
18
+ {
19
+ "from": "Component.tsx",
20
+ "to": "src/blocks/DD-ProjHeader/Component.tsx"
21
+ },
22
+ {
23
+ "from": "config.ts",
24
+ "to": "src/blocks/DD-ProjHeader/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 DDProjHeader in Pages/Posts blocks arrays if automatic registration was skipped.",
50
+ "Register DD-ProjHeader in RenderBlocks if automatic registration was skipped.",
51
+ "Run payload generate:types after schema changes."
52
+ ],
53
+ "manualSteps": [
54
+ "Register DDProjHeader in Pages/Posts blocks arrays if automatic registration was skipped.",
55
+ "Register DD-ProjHeader 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 { DDProjHeader } from '@/blocks/DD-ProjHeader/config' and add DDProjHeader to clear Pages/Posts block arrays."
61
+ },
62
+ "renderBlocksRegistration": {
63
+ "description": "Installer can register DD-ProjHeader in RenderBlocks."
64
+ }
65
+ },
66
+ "notes": [
67
+ "Converted from ROUND-TWO-CONVERSION as a portable Dusted template.",
68
+ "Project-specific imports were replaced with local, dependency-light rendering where required."
69
+ ],
70
+ "exportName": "DDProjHeader",
71
+ "interfaceName": "DDProjHeader"
72
+ }
@@ -0,0 +1,123 @@
1
+ 'use client'
2
+
3
+ import React, { useEffect, useRef } from 'react'
4
+ import Image from 'next/image'
5
+ import 'swiper/css'
6
+
7
+ export interface ProjectSliderImage {
8
+ id?: string
9
+ image: string | { url: string; alt?: string }
10
+ alt?: string
11
+ }
12
+
13
+ export interface ProjectSliderBlockProps {
14
+ images?: ProjectSliderImage[]
15
+ slidesPerView?: number
16
+ spaceBetween?: number
17
+ loop?: boolean
18
+ centeredSlides?: boolean
19
+ }
20
+
21
+ const fallbackImages: ProjectSliderImage[] = [
22
+ {
23
+ id: '1',
24
+ image:
25
+ 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080"%3E%3Crect width="1920" height="1080" fill="%23201d2c"/%3E%3Ctext x="50%25" y="50%25" dominant-baseline="middle" text-anchor="middle" font-family="sans-serif" font-size="64" fill="%23a3e635"%3EProject slide%3C/text%3E%3C/svg%3E',
26
+ alt: 'Project slide'
27
+ },
28
+ {
29
+ id: '2',
30
+ image:
31
+ 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080"%3E%3Crect width="1920" height="1080" fill="%23120f1b"/%3E%3Ctext x="50%25" y="50%25" dominant-baseline="middle" text-anchor="middle" font-family="sans-serif" font-size="64" fill="%23c084fc"%3ECase study%3C/text%3E%3C/svg%3E',
32
+ alt: 'Case study slide'
33
+ },
34
+ {
35
+ id: '3',
36
+ image:
37
+ 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080"%3E%3Crect width="1920" height="1080" fill="%230b0b0d"/%3E%3Ctext x="50%25" y="50%25" dominant-baseline="middle" text-anchor="middle" font-family="sans-serif" font-size="64" fill="%23f8fafc"%3EGallery frame%3C/text%3E%3C/svg%3E',
38
+ alt: 'Gallery frame slide'
39
+ }
40
+ ]
41
+
42
+ function getImageSrc(image: ProjectSliderImage['image']) {
43
+ return typeof image === 'string' ? image : image.url
44
+ }
45
+
46
+ function getImageAlt(image: ProjectSliderImage) {
47
+ return image.alt || (typeof image.image === 'string' ? 'Project image' : image.image.alt) || 'Project image'
48
+ }
49
+
50
+ export const DDProjSlider: React.FC<ProjectSliderBlockProps> = ({
51
+ images = fallbackImages,
52
+ slidesPerView = 2,
53
+ spaceBetween = 30,
54
+ loop = true,
55
+ centeredSlides = true
56
+ }) => {
57
+ const swiperRef = useRef<HTMLDivElement | null>(null)
58
+
59
+ useEffect(() => {
60
+ let destroyed = false
61
+ let instance: { destroy: (deleteInstance?: boolean, cleanStyles?: boolean) => void } | null = null
62
+
63
+ const init = async () => {
64
+ if (!swiperRef.current) return
65
+
66
+ const { Swiper } = await import('swiper')
67
+ if (!swiperRef.current || destroyed) return
68
+
69
+ instance = new Swiper(swiperRef.current, {
70
+ slidesPerView,
71
+ spaceBetween,
72
+ loop,
73
+ centeredSlides,
74
+ watchOverflow: true,
75
+ breakpoints: {
76
+ 0: {
77
+ slidesPerView: 1,
78
+ spaceBetween: 16,
79
+ centeredSlides: false
80
+ },
81
+ 768: {
82
+ slidesPerView,
83
+ spaceBetween,
84
+ centeredSlides
85
+ }
86
+ }
87
+ })
88
+ }
89
+
90
+ init()
91
+
92
+ return () => {
93
+ destroyed = true
94
+ instance?.destroy(true, true)
95
+ }
96
+ }, [slidesPerView, spaceBetween, loop, centeredSlides, images.length])
97
+
98
+ if (!images.length) return null
99
+
100
+ return (
101
+ <section className="project-slider-block w-full overflow-hidden py-10">
102
+ <div ref={swiperRef} className="swiper w-full overflow-visible">
103
+ <div className="swiper-wrapper items-center">
104
+ {images.map((image, index) => (
105
+ <div key={image.id || 'slide-' + index} className="swiper-slide !h-auto">
106
+ <div className="relative aspect-[16/9] w-full overflow-hidden rounded-[2rem] border border-white/10 bg-stone-950 shadow-2xl [corner-shape:squircle]">
107
+ <Image
108
+ src={getImageSrc(image.image)}
109
+ alt={getImageAlt(image)}
110
+ width={1920}
111
+ height={1080}
112
+ className="h-full w-full object-cover object-center"
113
+ sizes="(max-width: 768px) 92vw, 48vw"
114
+ />
115
+ </div>
116
+ </div>
117
+ ))}
118
+ </div>
119
+ </div>
120
+ </section>
121
+ )
122
+ }
123
+
@@ -0,0 +1,4 @@
1
+ # DD-ProjSlider
2
+
3
+ Portable first-pass conversion of `ProjectSliderBlock` 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,64 @@
1
+ import { Block } from 'payload'
2
+
3
+ export const DDProjSlider: Block = {
4
+ slug: 'DD-ProjSlider',
5
+ interfaceName: 'DDProjSlider',
6
+ labels: {
7
+ singular: 'Project Slider Block',
8
+ plural: 'Project Slider Blocks'
9
+ },
10
+ fields: [
11
+ {
12
+ name: 'images',
13
+ type: 'array',
14
+ label: 'Images',
15
+ minRows: 1,
16
+ fields: [
17
+ {
18
+ name: 'itemKey',
19
+ type: 'text',
20
+ label: 'Image Key',
21
+ required: true
22
+ },
23
+ {
24
+ name: 'image',
25
+ type: 'upload',
26
+ relationTo: 'media',
27
+ label: 'Image',
28
+ required: true
29
+ },
30
+ {
31
+ name: 'alt',
32
+ type: 'text',
33
+ label: 'Alt Text'
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ name: 'slidesPerView',
39
+ type: 'number',
40
+ label: 'Slides Per View',
41
+ defaultValue: 2
42
+ },
43
+ {
44
+ name: 'spaceBetween',
45
+ type: 'number',
46
+ label: 'Space Between Slides',
47
+ defaultValue: 30
48
+ },
49
+ {
50
+ name: 'loop',
51
+ type: 'checkbox',
52
+ label: 'Enable Loop',
53
+ defaultValue: true
54
+ },
55
+ {
56
+ name: 'centeredSlides',
57
+ type: 'checkbox',
58
+ label: 'Center Slides',
59
+ defaultValue: true
60
+ }
61
+ ]
62
+ }
63
+
64
+ export default DDProjSlider
@@ -0,0 +1,72 @@
1
+ {
2
+ "type": "block",
3
+ "name": "DD-ProjSlider",
4
+ "label": "Project Slider",
5
+ "sourceName": "ProjectSliderBlock",
6
+ "portableName": "DD-ProjSlider",
7
+ "slug": "DD-ProjSlider",
8
+ "version": "0.0.1",
9
+ "source": {
10
+ "repo": "Hadizainal/DesignsDustedv3",
11
+ "originalPath": "src/blocks/ROUND-TWO-CONVERSION/ProjectSliderBlock",
12
+ "originalSlug": "projectSlider",
13
+ "originalConfigExport": "ProjectSliderBlock",
14
+ "originalComponentExport": "ProjectSliderBlock",
15
+ "originalInterfaceName": "DDProjSlider"
16
+ },
17
+ "files": [
18
+ {
19
+ "from": "Component.tsx",
20
+ "to": "src/blocks/DD-ProjSlider/Component.tsx"
21
+ },
22
+ {
23
+ "from": "config.ts",
24
+ "to": "src/blocks/DD-ProjSlider/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 DDProjSlider in Pages/Posts blocks arrays if automatic registration was skipped.",
50
+ "Register DD-ProjSlider in RenderBlocks if automatic registration was skipped.",
51
+ "Run payload generate:types after schema changes."
52
+ ],
53
+ "manualSteps": [
54
+ "Register DDProjSlider in Pages/Posts blocks arrays if automatic registration was skipped.",
55
+ "Register DD-ProjSlider 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 { DDProjSlider } from '@/blocks/DD-ProjSlider/config' and add DDProjSlider to clear Pages/Posts block arrays."
61
+ },
62
+ "renderBlocksRegistration": {
63
+ "description": "Installer can register DD-ProjSlider in RenderBlocks."
64
+ }
65
+ },
66
+ "notes": [
67
+ "Converted from ROUND-TWO-CONVERSION as a portable Dusted template.",
68
+ "Project-specific imports were replaced with local, dependency-light rendering where required."
69
+ ],
70
+ "exportName": "DDProjSlider",
71
+ "interfaceName": "DDProjSlider"
72
+ }