blocks-dusted 0.1.10 → 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.
- package/README.md +35 -0
- package/package.json +1 -1
- package/src/utils/paths.js +13 -13
- package/templates/blocks/DD-Accordion/Component.tsx +229 -0
- package/templates/blocks/DD-Accordion/README.md +3 -0
- package/templates/blocks/DD-Accordion/config.ts +73 -0
- package/templates/blocks/DD-Accordion/manifest.json +75 -0
- package/templates/blocks/DD-AnimText/Component.tsx +788 -0
- package/templates/blocks/DD-AnimText/README.md +3 -0
- package/templates/blocks/DD-AnimText/config.ts +295 -0
- package/templates/blocks/DD-AnimText/manifest.json +85 -0
- package/templates/blocks/DD-AsideNav/Component.tsx +321 -0
- package/templates/blocks/DD-AsideNav/config.ts +204 -0
- package/templates/blocks/DD-AsideNav/manifest.json +80 -0
- package/templates/blocks/DD-Banner/Component.tsx +51 -0
- package/templates/blocks/DD-Banner/config.ts +57 -0
- package/templates/blocks/DD-Banner/manifest.json +72 -0
- package/templates/blocks/DD-BgLightning/Component.tsx +44 -0
- package/templates/blocks/DD-BgLightning/README.md +3 -0
- package/templates/blocks/DD-BgLightning/config.ts +97 -0
- package/templates/blocks/DD-BgLightning/manifest.json +79 -0
- package/templates/blocks/DD-BookCall/Component.tsx +10 -11
- package/templates/blocks/DD-BookCall/config.ts +238 -238
- package/templates/blocks/DD-ButtonPop/Component.tsx +117 -0
- package/templates/blocks/DD-ButtonPop/config.ts +105 -0
- package/templates/blocks/DD-ButtonPop/manifest.json +88 -0
- package/templates/blocks/DD-ButtonPop/svg-icons/Dust2.tsx +167 -0
- package/templates/blocks/DD-Card/Component.tsx +251 -0
- package/templates/blocks/DD-Card/README.md +4 -0
- package/templates/blocks/DD-Card/config.ts +154 -0
- package/templates/blocks/DD-Card/manifest.json +82 -0
- package/templates/blocks/DD-CardTemplate01/Component.tsx +5 -6
- package/templates/blocks/DD-CardTemplate01/config.ts +106 -106
- package/templates/blocks/DD-Carousel-A/Component.tsx +249 -249
- package/templates/blocks/DD-Carousel-B/Component.tsx +403 -403
- package/templates/blocks/DD-Chip/Component.tsx +250 -0
- package/templates/blocks/DD-Chip/EXAMPLES.md +313 -0
- package/templates/blocks/DD-Chip/README.md +202 -0
- package/templates/blocks/DD-Chip/config.ts +369 -0
- package/templates/blocks/DD-Chip/manifest.json +74 -0
- package/templates/blocks/DD-ComparisonTable/Component.tsx +256 -256
- package/templates/blocks/DD-Contact/Component.tsx +434 -434
- package/templates/blocks/DD-Contact/config.ts +22 -22
- package/templates/blocks/DD-Counter/Component.tsx +190 -0
- package/templates/blocks/DD-Counter/README.md +4 -0
- package/templates/blocks/DD-Counter/config.ts +291 -0
- package/templates/blocks/DD-Counter/manifest.json +74 -0
- package/templates/blocks/DD-CustomCSS/Component.tsx +8 -0
- package/templates/blocks/DD-CustomCSS/README.md +4 -0
- package/templates/blocks/DD-CustomCSS/addToLayout.md +5 -0
- package/templates/blocks/DD-CustomCSS/config.ts +22 -0
- package/templates/blocks/DD-CustomCSS/manifest.json +72 -0
- package/templates/blocks/DD-CustomCSS/renderCustomCSS.md +7 -0
- package/templates/blocks/DD-FeatCat/Component.tsx +302 -302
- package/templates/blocks/DD-FeatCat/config.ts +201 -201
- package/templates/blocks/DD-FeatStrip/Component.tsx +585 -585
- package/templates/blocks/DD-FeatStrip/config.ts +134 -134
- package/templates/blocks/DD-FluidBtn/ButtonsEyeCatching.tsx +628 -0
- package/templates/blocks/DD-FluidBtn/Component.tsx +43 -0
- package/templates/blocks/DD-FluidBtn/README.md +6 -0
- package/templates/blocks/DD-FluidBtn/config.ts +102 -0
- package/templates/blocks/DD-FluidBtn/manifest.json +86 -0
- package/templates/blocks/DD-GooeyInfo/Component.tsx +149 -0
- package/templates/blocks/DD-GooeyInfo/config.ts +135 -0
- package/templates/blocks/DD-GooeyInfo/manifest.json +72 -0
- package/templates/blocks/DD-Hero/Component.tsx +40 -17
- package/templates/blocks/DD-Hero/config.ts +267 -267
- package/templates/blocks/DD-HorizontalScroll/Component.tsx +4 -2
- package/templates/blocks/DD-HorizontalScroll/config.ts +231 -231
- package/templates/blocks/DD-Icon/Component.tsx +287 -0
- package/templates/blocks/DD-Icon/README.md +4 -0
- package/templates/blocks/DD-Icon/config.ts +258 -0
- package/templates/blocks/DD-Icon/hooks/revalidateBlockIds.ts +66 -0
- package/templates/blocks/DD-Icon/manifest.json +82 -0
- package/templates/blocks/DD-IconButton/Component.tsx +455 -0
- package/templates/blocks/DD-IconButton/README.md +326 -0
- package/templates/blocks/DD-IconButton/config.ts +239 -0
- package/templates/blocks/DD-IconButton/manifest.json +85 -0
- package/templates/blocks/DD-IdTag/Component.tsx +21 -0
- package/templates/blocks/DD-IdTag/README.md +4 -0
- package/templates/blocks/DD-IdTag/config.ts +41 -0
- package/templates/blocks/DD-IdTag/manifest.json +72 -0
- package/templates/blocks/DD-Iframe/Component.tsx +45 -0
- package/templates/blocks/DD-Iframe/README.md +4 -0
- package/templates/blocks/DD-Iframe/config.ts +47 -0
- package/templates/blocks/DD-Iframe/manifest.json +72 -0
- package/templates/blocks/DD-IframeMedia/Component.tsx +129 -0
- package/templates/blocks/DD-IframeMedia/README.md +4 -0
- package/templates/blocks/DD-IframeMedia/config.ts +79 -0
- package/templates/blocks/DD-IframeMedia/manifest.json +72 -0
- package/templates/blocks/DD-LineAnim/Component.tsx +36 -0
- package/templates/blocks/DD-LineAnim/README.md +4 -0
- package/templates/blocks/DD-LineAnim/config.ts +90 -0
- package/templates/blocks/DD-LineAnim/manifest.json +80 -0
- package/templates/blocks/DD-LinkGrid/Component.tsx +119 -0
- package/templates/blocks/DD-LinkGrid/README.md +4 -0
- package/templates/blocks/DD-LinkGrid/config.ts +51 -0
- package/templates/blocks/DD-LinkGrid/manifest.json +74 -0
- package/templates/blocks/DD-LogoMarq/Component.tsx +132 -0
- package/templates/blocks/DD-LogoMarq/README.md +4 -0
- package/templates/blocks/DD-LogoMarq/config.ts +264 -0
- package/templates/blocks/DD-LogoMarq/manifest.json +82 -0
- package/templates/blocks/DD-Lottie/Component.tsx +459 -0
- package/templates/blocks/DD-Lottie/README.md +4 -0
- package/templates/blocks/DD-Lottie/config.ts +379 -0
- package/templates/blocks/DD-Lottie/index.tsx +28 -0
- package/templates/blocks/DD-Lottie/manifest.json +83 -0
- package/templates/blocks/DD-MagicBento/Component.tsx +777 -0
- package/templates/blocks/DD-MagicBento/README.md +4 -0
- package/templates/blocks/DD-MagicBento/config.ts +264 -0
- package/templates/blocks/DD-MagicBento/manifest.json +74 -0
- package/templates/blocks/DD-MasonaryMedia/Component.tsx +547 -545
- package/templates/blocks/DD-MasonaryMedia/config.ts +2 -2
- package/templates/blocks/DD-MasonaryMedia/vendor.d.ts +2 -2
- package/templates/blocks/DD-Masonry/Component.tsx +645 -0
- package/templates/blocks/DD-Masonry/README.md +4 -0
- package/templates/blocks/DD-Masonry/config.ts +475 -0
- package/templates/blocks/DD-Masonry/manifest.json +82 -0
- package/templates/blocks/DD-Pricing/Component.tsx +372 -372
- package/templates/blocks/DD-Process/Component.tsx +149 -149
- package/templates/blocks/DD-Process/config.ts +150 -150
- package/templates/blocks/DD-Progress/Component.tsx +141 -0
- package/templates/blocks/DD-Progress/README.md +4 -0
- package/templates/blocks/DD-Progress/config.ts +175 -0
- package/templates/blocks/DD-Progress/manifest.json +74 -0
- package/templates/blocks/DD-ProjHeader/Component.tsx +91 -0
- package/templates/blocks/DD-ProjHeader/README.md +4 -0
- package/templates/blocks/DD-ProjHeader/config.ts +96 -0
- package/templates/blocks/DD-ProjHeader/manifest.json +72 -0
- package/templates/blocks/DD-ProjSlider/Component.tsx +123 -0
- package/templates/blocks/DD-ProjSlider/README.md +4 -0
- package/templates/blocks/DD-ProjSlider/config.ts +64 -0
- package/templates/blocks/DD-ProjSlider/manifest.json +72 -0
- package/templates/blocks/DD-ScrollText/Component.tsx +114 -0
- package/templates/blocks/DD-ScrollText/README.md +4 -0
- package/templates/blocks/DD-ScrollText/config.ts +58 -0
- package/templates/blocks/DD-ScrollText/manifest.json +72 -0
- package/templates/blocks/DD-Section/Component.tsx +266 -266
- package/templates/blocks/DD-Separator/Component.tsx +66 -0
- package/templates/blocks/DD-Separator/README.md +4 -0
- package/templates/blocks/DD-Separator/config.ts +58 -0
- package/templates/blocks/DD-Separator/manifest.json +72 -0
- package/templates/blocks/DD-Services/Component.tsx +176 -176
- package/templates/blocks/DD-Services/config.ts +149 -149
- package/templates/blocks/DD-ShowcaseGrid/Component.tsx +307 -307
- package/templates/blocks/DD-Slider-A/Component.tsx +237 -237
- package/templates/blocks/DD-StackCards/Component.tsx +473 -473
- package/templates/blocks/DD-StackCards/config.ts +399 -399
- package/templates/blocks/DD-Team/Component.tsx +247 -247
- package/templates/blocks/DD-Team/config.ts +173 -173
- package/templates/blocks/DD-TeamCards/Component.tsx +251 -0
- package/templates/blocks/DD-TeamCards/README.md +4 -0
- package/templates/blocks/DD-TeamCards/config.ts +302 -0
- package/templates/blocks/DD-TeamCards/manifest.json +74 -0
- package/templates/blocks/DD-TechStack/Component.tsx +168 -162
- package/templates/blocks/DD-TechStack/config.ts +153 -153
- package/templates/blocks/DD-TestMarq/Component.tsx +132 -0
- package/templates/blocks/DD-TestMarq/README.md +4 -0
- package/templates/blocks/DD-TestMarq/RowLabel.tsx +9 -0
- package/templates/blocks/DD-TestMarq/config.ts +88 -0
- package/templates/blocks/DD-TestMarq/manifest.json +72 -0
- package/templates/blocks/DD-Testim/Component.tsx +247 -0
- package/templates/blocks/DD-Testim/README.md +4 -0
- package/templates/blocks/DD-Testim/config.ts +101 -0
- package/templates/blocks/DD-Testim/manifest.json +75 -0
- package/templates/blocks/DD-Testim2/Component.tsx +256 -0
- package/templates/blocks/DD-Testim2/README.md +4 -0
- package/templates/blocks/DD-Testim2/config.ts +100 -0
- package/templates/blocks/DD-Testim2/manifest.json +74 -0
- package/templates/blocks/DD-Testimonials/Component.tsx +147 -147
- package/templates/blocks/DD-Testimonials/config.ts +120 -120
- package/templates/blocks/DD-TextMarq/Component.tsx +157 -0
- package/templates/blocks/DD-TextMarq/README.md +4 -0
- package/templates/blocks/DD-TextMarq/config.ts +237 -0
- package/templates/blocks/DD-TextMarq/manifest.json +82 -0
- package/templates/blocks/DD-Thanks/Component.tsx +500 -0
- package/templates/blocks/DD-Thanks/README.md +4 -0
- package/templates/blocks/DD-Thanks/config.ts +224 -0
- package/templates/blocks/DD-Thanks/manifest.json +72 -0
- package/templates/blocks/DD-VertMarq/Component.tsx +154 -0
- package/templates/blocks/DD-VertMarq/README.md +4 -0
- package/templates/blocks/DD-VertMarq/config.ts +236 -0
- package/templates/blocks/DD-VertMarq/dist/index.css +6 -0
- package/templates/blocks/DD-VertMarq/dist/index.min.css +1 -0
- package/templates/blocks/DD-VertMarq/manifest.json +74 -0
- package/templates/blocks/DD-Work/Component.tsx +318 -315
- package/templates/blocks/DD-Work/config.ts +165 -165
- package/templates/blocks/DD-Work-B/Component.tsx +294 -294
- package/templates/blocks/DDHG-CTASection2/Component.tsx +185 -0
- package/templates/blocks/DDHG-CTASection2/config.ts +140 -0
- package/templates/blocks/DDHG-CTASection2/manifest.json +45 -0
- package/templates/blocks/DDHG-HighlightArc/Component.tsx +243 -0
- package/templates/blocks/DDHG-HighlightArc/config.ts +85 -0
- package/templates/blocks/DDHG-HighlightArc/manifest.json +46 -0
- package/templates/blocks/DDHG-LogoMarquee/Component.tsx +93 -0
- package/templates/blocks/DDHG-LogoMarquee/config.ts +66 -0
- package/templates/blocks/DDHG-LogoMarquee/manifest.json +39 -0
- package/templates/blocks/DDHG-NavCodeGrid/Component.tsx +213 -0
- package/templates/blocks/DDHG-NavCodeGrid/config.ts +64 -0
- package/templates/blocks/DDHG-NavCodeGrid/manifest.json +45 -0
- package/templates/blocks/DDHG-ProcessSec/Component.tsx +575 -0
- package/templates/blocks/DDHG-ProcessSec/config.ts +170 -0
- package/templates/blocks/DDHG-ProcessSec/manifest.json +56 -0
- package/templates/blocks/DDHG-ServiceDetails/Component.tsx +164 -0
- package/templates/blocks/DDHG-ServiceDetails/ServiceDetailCard.tsx +394 -0
- package/templates/blocks/DDHG-ServiceDetails/config.ts +77 -0
- package/templates/blocks/DDHG-ServiceDetails/manifest.json +50 -0
- package/templates/blocks/DDHG-ServiceHero/Component.tsx +234 -0
- package/templates/blocks/DDHG-ServiceHero/config.ts +49 -0
- package/templates/blocks/DDHG-ServiceHero/manifest.json +26 -0
- package/templates/blocks/DDHG-ServiceOverview/Component.tsx +277 -0
- package/templates/blocks/DDHG-ServiceOverview/config.ts +64 -0
- package/templates/blocks/DDHG-ServiceOverview/manifest.json +44 -0
- package/templates/blocks/DDHG-StatsFAQ/Component.tsx +389 -0
- package/templates/blocks/DDHG-StatsFAQ/config.ts +204 -0
- package/templates/blocks/DDHG-StatsFAQ/manifest.json +45 -0
- package/templates/blocks/DDHG-TeamCards/Component.tsx +131 -0
- package/templates/blocks/DDHG-TeamCards/config.ts +48 -0
- package/templates/blocks/DDHG-TeamCards/manifest.json +29 -0
- package/templates/shared/src/components/BgLightning/index.tsx +242 -0
- package/templates/shared/src/components/ui/ShareButton/index.tsx +80 -0
- package/templates/shared/src/components/ui/anims/FadeOnScroll.tsx +48 -0
- package/templates/shared/src/components/ui/anims/FadeUpOnInView.tsx +63 -0
- package/templates/shared/src/components/ui/anims/GlareHover.tsx +111 -0
- package/templates/shared/src/components/ui/anims/LineAnims.tsx +81 -0
- package/templates/shared/src/components/ui/anims/TitleAnims01.tsx +54 -0
- package/templates/shared/src/components/ui/anims/animation-container.tsx +29 -0
- package/templates/shared/src/components/ui/anims/blur-in.tsx +26 -0
- package/templates/shared/src/components/ui/anims/counter.tsx +53 -0
- package/templates/shared/src/components/ui/anims/fade.tsx +83 -0
- package/templates/shared/src/components/ui/anims/gradual-spacing.tsx +39 -0
- package/templates/shared/src/components/ui/anims/pull-up.tsx +93 -0
- package/templates/shared/src/components/ui/anims/reveal-text.tsx +76 -0
- package/templates/shared/src/components/ui/anims/rotate-words.tsx +43 -0
- package/templates/shared/src/components/ui/anims/shiny-text.tsx +58 -0
- package/templates/shared/src/components/ui/anims/shuffle-text.tsx +85 -0
- package/templates/shared/src/components/ui/anims/split-text.tsx +211 -0
- package/templates/shared/src/components/ui/anims/staggered-fade.tsx +133 -0
- package/templates/shared/src/components/ui/anims/text-scroll.tsx +111 -0
- package/templates/shared/src/components/ui/anims/typing-effect.tsx +112 -0
- package/templates/shared/src/components/ui/button-dusted-fluid/index.tsx +1521 -0
- package/templates/shared/src/components/ui/separator.tsx +85 -0
- package/templates/shared/src/hooks/useBodyScrollLock.ts +97 -0
- package/templates/shared/src/hooks/useClickOutside.ts +28 -0
- package/templates/shared/src/utilities/renderCustomCSS.ts +5 -0
- package/templates/shared/src/utilities/smoothScroll.ts +65 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import React from 'react'
|
|
4
|
+
import { motion, useInView } from 'framer-motion'
|
|
5
|
+
import { cn } from '@/utilities/ui'
|
|
6
|
+
|
|
7
|
+
export interface SkillItem {
|
|
8
|
+
label: string
|
|
9
|
+
percentage: number
|
|
10
|
+
color?: string
|
|
11
|
+
showPercentage?: boolean
|
|
12
|
+
id?: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface ProgressSkillBlockProps {
|
|
16
|
+
skills?: SkillItem[]
|
|
17
|
+
containerClass?: string
|
|
18
|
+
labelClass?: string
|
|
19
|
+
progressBarClass?: string
|
|
20
|
+
percentageClass?: string
|
|
21
|
+
animationDuration?: number
|
|
22
|
+
animationDelay?: number
|
|
23
|
+
blockType?: string
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export const DDProgress: React.FC<ProgressSkillBlockProps> = ({
|
|
27
|
+
skills = [],
|
|
28
|
+
containerClass = '',
|
|
29
|
+
labelClass = '',
|
|
30
|
+
progressBarClass = '',
|
|
31
|
+
percentageClass = '',
|
|
32
|
+
animationDuration = 1.5,
|
|
33
|
+
animationDelay = 0.2
|
|
34
|
+
}) => {
|
|
35
|
+
if (!skills || skills.length === 0) {
|
|
36
|
+
return null
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<div className={cn('progress-skill-block w-full space-y-6 py-8', containerClass)}>
|
|
41
|
+
{skills.map((skill, index) => (
|
|
42
|
+
<SkillProgressBar
|
|
43
|
+
key={skill.id || `skill-${index}`}
|
|
44
|
+
skill={skill}
|
|
45
|
+
index={index}
|
|
46
|
+
labelClass={labelClass}
|
|
47
|
+
progressBarClass={progressBarClass}
|
|
48
|
+
percentageClass={percentageClass}
|
|
49
|
+
animationDuration={animationDuration}
|
|
50
|
+
animationDelay={animationDelay}
|
|
51
|
+
/>
|
|
52
|
+
))}
|
|
53
|
+
</div>
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
interface SkillProgressBarProps {
|
|
58
|
+
skill: SkillItem
|
|
59
|
+
index: number
|
|
60
|
+
labelClass: string
|
|
61
|
+
progressBarClass: string
|
|
62
|
+
percentageClass: string
|
|
63
|
+
animationDuration: number
|
|
64
|
+
animationDelay: number
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const SkillProgressBar: React.FC<SkillProgressBarProps> = ({
|
|
68
|
+
skill,
|
|
69
|
+
index,
|
|
70
|
+
labelClass,
|
|
71
|
+
progressBarClass,
|
|
72
|
+
percentageClass,
|
|
73
|
+
animationDuration,
|
|
74
|
+
animationDelay
|
|
75
|
+
}) => {
|
|
76
|
+
const ref = React.useRef(null)
|
|
77
|
+
const isInView = useInView(ref, { once: false, amount: 0.3 })
|
|
78
|
+
|
|
79
|
+
const progressVariants = {
|
|
80
|
+
hidden: { width: '0%' },
|
|
81
|
+
visible: {
|
|
82
|
+
width: `${skill.percentage}%`,
|
|
83
|
+
transition: {
|
|
84
|
+
duration: animationDuration,
|
|
85
|
+
delay: index * animationDelay,
|
|
86
|
+
ease: [0.25, 0.46, 0.45, 0.94] as [number, number, number, number]
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const percentageVariants = {
|
|
92
|
+
hidden: { opacity: 0 },
|
|
93
|
+
visible: {
|
|
94
|
+
opacity: 1,
|
|
95
|
+
transition: {
|
|
96
|
+
duration: 0.3,
|
|
97
|
+
delay: index * animationDelay + animationDuration * 0.8
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Create unique class name from label (slugified)
|
|
103
|
+
const uniqueClass =
|
|
104
|
+
skill.id ||
|
|
105
|
+
skill.label
|
|
106
|
+
.toLowerCase()
|
|
107
|
+
.replace(/\s+/g, '-')
|
|
108
|
+
.replace(/[^a-z0-9-]/g, '')
|
|
109
|
+
|
|
110
|
+
return (
|
|
111
|
+
<div ref={ref} className={cn('skill-item w-full', `skill-${uniqueClass}`)}>
|
|
112
|
+
{/* Label and Percentage Row */}
|
|
113
|
+
<div className="flex justify-between items-center mb-1">
|
|
114
|
+
<div className={cn('text-lg font-medium text-white', labelClass)}>{skill.label}</div>
|
|
115
|
+
{skill.showPercentage !== false && (
|
|
116
|
+
<motion.span
|
|
117
|
+
className={cn('text-sm font-semibold text-white', percentageClass)}
|
|
118
|
+
variants={percentageVariants}
|
|
119
|
+
initial="hidden"
|
|
120
|
+
animate={isInView ? 'visible' : 'hidden'}
|
|
121
|
+
>
|
|
122
|
+
{skill.percentage} %
|
|
123
|
+
</motion.span>
|
|
124
|
+
)}
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
{/* Progress Bar Container */}
|
|
128
|
+
<div className="progress-bar-container relative w-full h-1.5 bg-zinc-700 overflow-hidden">
|
|
129
|
+
<motion.div
|
|
130
|
+
className={cn('progress-bar-fill absolute top-0 left-0 h-full', progressBarClass)}
|
|
131
|
+
style={{
|
|
132
|
+
backgroundColor: skill.color || '#9ACD32'
|
|
133
|
+
}}
|
|
134
|
+
variants={progressVariants}
|
|
135
|
+
initial="hidden"
|
|
136
|
+
animate={isInView ? 'visible' : 'hidden'}
|
|
137
|
+
/>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
)
|
|
141
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import type { Block } from 'payload'
|
|
2
|
+
|
|
3
|
+
export const DDProgress: Block = {
|
|
4
|
+
slug: 'DD-Progress',
|
|
5
|
+
interfaceName: 'DDProgress',
|
|
6
|
+
labels: {
|
|
7
|
+
singular: 'Progress Skill Block',
|
|
8
|
+
plural: 'Progress Skill Blocks'
|
|
9
|
+
},
|
|
10
|
+
fields: [
|
|
11
|
+
{
|
|
12
|
+
name: 'skills',
|
|
13
|
+
label: 'Skills',
|
|
14
|
+
type: 'array',
|
|
15
|
+
required: true,
|
|
16
|
+
minRows: 1,
|
|
17
|
+
maxRows: 10,
|
|
18
|
+
labels: {
|
|
19
|
+
singular: 'Skill',
|
|
20
|
+
plural: 'Skills'
|
|
21
|
+
},
|
|
22
|
+
fields: [
|
|
23
|
+
{
|
|
24
|
+
type: 'row',
|
|
25
|
+
fields: [
|
|
26
|
+
{
|
|
27
|
+
name: 'label',
|
|
28
|
+
type: 'text',
|
|
29
|
+
required: true,
|
|
30
|
+
label: 'Skill Label',
|
|
31
|
+
defaultValue: 'Label',
|
|
32
|
+
admin: {
|
|
33
|
+
width: '50%',
|
|
34
|
+
description: 'Name of the skill (e.g., "Industrial Design", "UI/UX Design")'
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'percentage',
|
|
39
|
+
type: 'number',
|
|
40
|
+
required: true,
|
|
41
|
+
label: 'Skill Percentage',
|
|
42
|
+
defaultValue: 75,
|
|
43
|
+
min: 0,
|
|
44
|
+
max: 100,
|
|
45
|
+
admin: {
|
|
46
|
+
width: '25%',
|
|
47
|
+
description: 'Skill proficiency percentage (0-100)',
|
|
48
|
+
step: 1
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'showPercentage',
|
|
53
|
+
type: 'checkbox',
|
|
54
|
+
label: 'Show %',
|
|
55
|
+
defaultValue: true,
|
|
56
|
+
admin: {
|
|
57
|
+
width: '25%',
|
|
58
|
+
description: 'Display the percentage value'
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'color',
|
|
65
|
+
type: 'text',
|
|
66
|
+
label: 'Progress Bar Color',
|
|
67
|
+
admin: {
|
|
68
|
+
description:
|
|
69
|
+
'Custom color for this skill bar (hex or rgb format only). Example: #9ACD32 or rgb(154, 205, 50)',
|
|
70
|
+
placeholder: '#9ACD32'
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'collapsible',
|
|
77
|
+
label: 'Styling Options',
|
|
78
|
+
admin: {
|
|
79
|
+
initCollapsed: true
|
|
80
|
+
},
|
|
81
|
+
fields: [
|
|
82
|
+
{
|
|
83
|
+
type: 'row',
|
|
84
|
+
fields: [
|
|
85
|
+
{
|
|
86
|
+
name: 'containerClass',
|
|
87
|
+
type: 'text',
|
|
88
|
+
label: 'Container Classes',
|
|
89
|
+
admin: {
|
|
90
|
+
width: '50%',
|
|
91
|
+
description: 'Additional Tailwind classes for the main container',
|
|
92
|
+
placeholder: 'py-12 px-4'
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: 'labelClass',
|
|
97
|
+
type: 'text',
|
|
98
|
+
label: 'Label Classes',
|
|
99
|
+
admin: {
|
|
100
|
+
width: '50%',
|
|
101
|
+
description: 'Additional Tailwind classes for skill labels',
|
|
102
|
+
placeholder: 'text-xl font-bold'
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
type: 'row',
|
|
109
|
+
fields: [
|
|
110
|
+
{
|
|
111
|
+
name: 'progressBarClass',
|
|
112
|
+
type: 'text',
|
|
113
|
+
label: 'Progress Bar Classes',
|
|
114
|
+
admin: {
|
|
115
|
+
width: '50%',
|
|
116
|
+
description: 'Additional Tailwind classes for progress bars',
|
|
117
|
+
placeholder: 'shadow-lg'
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: 'percentageClass',
|
|
122
|
+
type: 'text',
|
|
123
|
+
label: 'Percentage Classes',
|
|
124
|
+
admin: {
|
|
125
|
+
width: '50%',
|
|
126
|
+
description: 'Additional Tailwind classes for percentage display',
|
|
127
|
+
placeholder: 'text-lg font-bold'
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
type: 'collapsible',
|
|
136
|
+
label: 'Animation Settings',
|
|
137
|
+
admin: {
|
|
138
|
+
initCollapsed: true
|
|
139
|
+
},
|
|
140
|
+
fields: [
|
|
141
|
+
{
|
|
142
|
+
type: 'row',
|
|
143
|
+
fields: [
|
|
144
|
+
{
|
|
145
|
+
name: 'animationDuration',
|
|
146
|
+
type: 'number',
|
|
147
|
+
label: 'Animation Duration (seconds)',
|
|
148
|
+
defaultValue: 1.5,
|
|
149
|
+
min: 0.5,
|
|
150
|
+
max: 5,
|
|
151
|
+
admin: {
|
|
152
|
+
width: '50%',
|
|
153
|
+
description: 'Duration of the progress bar animation',
|
|
154
|
+
step: 0.1
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
name: 'animationDelay',
|
|
159
|
+
type: 'number',
|
|
160
|
+
label: 'Stagger Delay (seconds)',
|
|
161
|
+
defaultValue: 0.2,
|
|
162
|
+
min: 0,
|
|
163
|
+
max: 2,
|
|
164
|
+
admin: {
|
|
165
|
+
width: '50%',
|
|
166
|
+
description: 'Delay between each skill animation',
|
|
167
|
+
step: 0.1
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
}
|
|
@@ -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
|
+
}
|