blocks-dusted 0.1.1 → 0.1.3
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 +967 -3
- package/package.json +2 -2
- package/src/commands/add.js +143 -45
- package/src/commands/list.js +2 -2
- package/src/installers/checkRequirements.js +1 -0
- package/src/installers/copyTemplateFiles.js +23 -2
- package/src/installers/patchPayloadConfigCollections.js +92 -0
- package/src/installers/writeInstalledBlockReadme.js +17 -4
- package/src/registry/listTemplates.js +16 -7
- package/src/registry/loadTemplateManifest.js +20 -11
- package/src/registry/validateTemplateManifest.js +6 -5
- package/src/utils/paths.js +7 -0
- package/templates/blocks/DD-BookCall/Component.tsx +535 -573
- package/templates/blocks/DD-CardTemplate01/Component.tsx +45 -49
- package/templates/blocks/DD-Carousel-A/Component.tsx +249 -266
- package/templates/blocks/DD-Carousel-B/Component.tsx +403 -432
- package/templates/blocks/DD-ComparisonTable/Component.tsx +256 -272
- package/templates/blocks/DD-Contact/Component.tsx +434 -439
- package/templates/blocks/DD-Contact/config.ts +8 -3
- package/templates/blocks/DD-FeatCat/Component.tsx +302 -361
- package/templates/blocks/DD-FeatCat/config.ts +201 -204
- package/templates/blocks/DD-FeatStrip/Component.tsx +171 -201
- package/templates/blocks/DD-Hero/Component.tsx +297 -317
- package/templates/blocks/DD-HorizontalScroll/Component.tsx +244 -303
- package/templates/blocks/DD-MasonaryMedia/Component.tsx +202 -228
- package/templates/blocks/DD-MasonaryMedia/config.ts +13 -14
- package/templates/blocks/DD-Pricing/Component.tsx +372 -380
- package/templates/blocks/DD-Process/Component.tsx +149 -155
- package/templates/blocks/DD-Section/Component.tsx +266 -327
- package/templates/blocks/DD-Services/Component.tsx +176 -188
- package/templates/blocks/DD-ShowcaseGrid/Component.tsx +307 -317
- package/templates/blocks/DD-Slider-A/Component.tsx +237 -252
- package/templates/blocks/DD-StackCards/Component.tsx +137 -160
- package/templates/blocks/DD-Team/Component.tsx +247 -265
- package/templates/blocks/DD-TechStack/Component.tsx +57 -72
- package/templates/blocks/DD-Testimonials/Component.tsx +147 -147
- package/templates/blocks/DD-Testimonials/config.ts +66 -66
- package/templates/blocks/DD-Work/Component.tsx +315 -328
- package/templates/blocks/DD-Work-B/Component.tsx +294 -320
- package/templates/collections/Testimonials/README.md +11 -0
- package/templates/collections/Testimonials/Testimonials.ts +161 -0
- package/templates/collections/Testimonials/manifest.json +55 -0
- package/templates/components/HeaderDD02/MobileBottomNav/index.tsx +545 -0
- package/templates/components/HeaderDD02/README.md +45 -0
- package/templates/components/HeaderDD02/RowLabel.tsx +33 -0
- package/templates/components/HeaderDD02/config.ts +302 -0
- package/templates/components/HeaderDD02/index.tsx +517 -0
- package/templates/components/HeaderDD02/manifest.json +123 -0
- package/templates/components/RichText/README.md +13 -0
- package/templates/components/RichText/converter/componentConverter/blocks.tsx +43 -0
- package/templates/components/RichText/converter/componentConverter/types.ts +11 -0
- package/templates/components/RichText/converter/index.tsx +18 -0
- package/templates/components/RichText/converter/internalLinks.tsx +45 -0
- package/templates/components/RichText/converter/textConverter.tsx +27 -0
- package/templates/components/RichText/index.tsx +35 -0
- package/templates/components/RichText/manifest.json +80 -0
|
@@ -1,204 +1,201 @@
|
|
|
1
|
-
import type { Block } from 'payload'
|
|
2
|
-
|
|
3
|
-
export const DDFeatCat: Block = {
|
|
4
|
-
slug: 'DD-FeatCat',
|
|
5
|
-
interfaceName: 'DDFeatCat',
|
|
6
|
-
labels: {
|
|
7
|
-
singular: 'Featured Categories',
|
|
8
|
-
plural: 'Featured Categories'
|
|
9
|
-
},
|
|
10
|
-
fields: [
|
|
11
|
-
{
|
|
12
|
-
type: 'tabs',
|
|
13
|
-
tabs: [
|
|
14
|
-
{
|
|
15
|
-
label: 'Header',
|
|
16
|
-
fields: [
|
|
17
|
-
{
|
|
18
|
-
name: 'eyebrow',
|
|
19
|
-
type: 'text',
|
|
20
|
-
label: 'Eyebrow Label',
|
|
21
|
-
defaultValue: 'What we offer'
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
name: 'headlineMain',
|
|
25
|
-
type: 'text',
|
|
26
|
-
label: 'Headline (Main)',
|
|
27
|
-
required: true,
|
|
28
|
-
defaultValue: 'Everything you need'
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
name: 'headlineAccent',
|
|
32
|
-
type: 'text',
|
|
33
|
-
label: 'Headline (Accent)',
|
|
34
|
-
defaultValue: 'to ship faster'
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
name: 'subtext',
|
|
38
|
-
type: 'textarea',
|
|
39
|
-
label: 'Subtext',
|
|
40
|
-
defaultValue:
|
|
41
|
-
'From individual UI blocks to complete website systems — and the studio team to build it all for you.'
|
|
42
|
-
}
|
|
43
|
-
]
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
label: 'Categories',
|
|
47
|
-
fields: [
|
|
48
|
-
{
|
|
49
|
-
name: 'categories',
|
|
50
|
-
type: 'array',
|
|
51
|
-
label: 'Category Cards',
|
|
52
|
-
minRows: 1,
|
|
53
|
-
maxRows: 6,
|
|
54
|
-
defaultValue: [
|
|
55
|
-
{
|
|
56
|
-
title: 'UI Components',
|
|
57
|
-
description:
|
|
58
|
-
'Production-ready blocks for hero sections, navigation, pricing, forms, and more. Drop into any Next.js project.',
|
|
59
|
-
link: '/components',
|
|
60
|
-
linkLabel: 'Browse Components',
|
|
61
|
-
iconName: 'LayoutGrid',
|
|
62
|
-
count: '120+ blocks',
|
|
63
|
-
imageFallbackUrl:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
}
|
|
203
|
-
]
|
|
204
|
-
}
|
|
1
|
+
import type { Block } from 'payload'
|
|
2
|
+
|
|
3
|
+
export const DDFeatCat: Block = {
|
|
4
|
+
slug: 'DD-FeatCat',
|
|
5
|
+
interfaceName: 'DDFeatCat',
|
|
6
|
+
labels: {
|
|
7
|
+
singular: 'Featured Categories',
|
|
8
|
+
plural: 'Featured Categories',
|
|
9
|
+
},
|
|
10
|
+
fields: [
|
|
11
|
+
{
|
|
12
|
+
type: 'tabs',
|
|
13
|
+
tabs: [
|
|
14
|
+
{
|
|
15
|
+
label: 'Header',
|
|
16
|
+
fields: [
|
|
17
|
+
{
|
|
18
|
+
name: 'eyebrow',
|
|
19
|
+
type: 'text',
|
|
20
|
+
label: 'Eyebrow Label',
|
|
21
|
+
defaultValue: 'What we offer',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'headlineMain',
|
|
25
|
+
type: 'text',
|
|
26
|
+
label: 'Headline (Main)',
|
|
27
|
+
required: true,
|
|
28
|
+
defaultValue: 'Everything you need',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'headlineAccent',
|
|
32
|
+
type: 'text',
|
|
33
|
+
label: 'Headline (Accent)',
|
|
34
|
+
defaultValue: 'to ship faster',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'subtext',
|
|
38
|
+
type: 'textarea',
|
|
39
|
+
label: 'Subtext',
|
|
40
|
+
defaultValue:
|
|
41
|
+
'From individual UI blocks to complete website systems — and the studio team to build it all for you.',
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
label: 'Categories',
|
|
47
|
+
fields: [
|
|
48
|
+
{
|
|
49
|
+
name: 'categories',
|
|
50
|
+
type: 'array',
|
|
51
|
+
label: 'Category Cards',
|
|
52
|
+
minRows: 1,
|
|
53
|
+
maxRows: 6,
|
|
54
|
+
defaultValue: [
|
|
55
|
+
{
|
|
56
|
+
title: 'UI Components',
|
|
57
|
+
description:
|
|
58
|
+
'Production-ready blocks for hero sections, navigation, pricing, forms, and more. Drop into any Next.js project.',
|
|
59
|
+
link: '/components',
|
|
60
|
+
linkLabel: 'Browse Components',
|
|
61
|
+
iconName: 'LayoutGrid',
|
|
62
|
+
count: '120+ blocks',
|
|
63
|
+
imageFallbackUrl: '',
|
|
64
|
+
iconColorClass: 'text-amber-400',
|
|
65
|
+
iconBgClass: 'bg-amber-800/50',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
title: 'Website Templates',
|
|
69
|
+
description:
|
|
70
|
+
'Full-site starters for SaaS, agencies, blogs, and e-commerce. Powered by Next.js and Payload CMS.',
|
|
71
|
+
link: '/templates',
|
|
72
|
+
linkLabel: 'Explore Templates',
|
|
73
|
+
iconName: 'FileStack',
|
|
74
|
+
count: '24+ templates',
|
|
75
|
+
imageFallbackUrl: '',
|
|
76
|
+
iconColorClass: 'text-stone-300',
|
|
77
|
+
iconBgClass: 'bg-stone-600/40',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
title: 'Studio Services',
|
|
81
|
+
description:
|
|
82
|
+
'Custom UX/UI design, web development, CMS architecture, and digital product consulting from our expert team.',
|
|
83
|
+
link: '/studio',
|
|
84
|
+
linkLabel: 'Hire the Studio',
|
|
85
|
+
iconName: 'Users',
|
|
86
|
+
count: 'Custom projects',
|
|
87
|
+
imageFallbackUrl: '',
|
|
88
|
+
iconColorClass: 'text-emerald-400',
|
|
89
|
+
iconBgClass: 'bg-emerald-500/20',
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
fields: [
|
|
93
|
+
{
|
|
94
|
+
name: 'title',
|
|
95
|
+
type: 'text',
|
|
96
|
+
label: 'Title',
|
|
97
|
+
required: true,
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: 'description',
|
|
101
|
+
type: 'textarea',
|
|
102
|
+
label: 'Description',
|
|
103
|
+
required: true,
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: 'link',
|
|
107
|
+
type: 'text',
|
|
108
|
+
label: 'Link URL',
|
|
109
|
+
required: true,
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: 'linkLabel',
|
|
113
|
+
type: 'text',
|
|
114
|
+
label: 'Link Label',
|
|
115
|
+
required: true,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: 'iconName',
|
|
119
|
+
type: 'text',
|
|
120
|
+
label: 'Lucide Icon Name',
|
|
121
|
+
admin: {
|
|
122
|
+
description:
|
|
123
|
+
'Lucide icon name e.g. LayoutGrid, FileStack, Users, Zap. Ignored if Icon Image is set.',
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: 'iconImage',
|
|
128
|
+
type: 'upload',
|
|
129
|
+
label: 'Icon Image (SVG / PNG)',
|
|
130
|
+
relationTo: 'media',
|
|
131
|
+
admin: {
|
|
132
|
+
description:
|
|
133
|
+
'Upload a custom SVG or image to use as the icon. Overrides Lucide Icon Name.',
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: 'count',
|
|
138
|
+
type: 'text',
|
|
139
|
+
label: 'Count / Badge Label',
|
|
140
|
+
admin: {
|
|
141
|
+
description: 'e.g. "120+ blocks", "Custom projects"',
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
name: 'image',
|
|
146
|
+
type: 'upload',
|
|
147
|
+
label: 'Card Image',
|
|
148
|
+
relationTo: 'media',
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: 'imageFallbackUrl',
|
|
152
|
+
type: 'text',
|
|
153
|
+
label: 'Image Fallback URL',
|
|
154
|
+
admin: {
|
|
155
|
+
placeholder: '/assets/placeholder/01.png',
|
|
156
|
+
description: 'Used if no uploaded image is set',
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
name: 'iconColorClass',
|
|
161
|
+
type: 'text',
|
|
162
|
+
label: 'Icon Color Class',
|
|
163
|
+
defaultValue: 'text-amber-400',
|
|
164
|
+
admin: {
|
|
165
|
+
description: 'Tailwind text-color class for the icon e.g. text-amber-400',
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
name: 'iconBgClass',
|
|
170
|
+
type: 'text',
|
|
171
|
+
label: 'Icon Background Class',
|
|
172
|
+
defaultValue: 'bg-amber-500/20',
|
|
173
|
+
admin: {
|
|
174
|
+
description: 'Tailwind bg class for the icon container e.g. bg-amber-500/20',
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
],
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
label: 'Settings',
|
|
183
|
+
fields: [
|
|
184
|
+
{
|
|
185
|
+
name: 'sectionId',
|
|
186
|
+
type: 'text',
|
|
187
|
+
label: 'Section ID',
|
|
188
|
+
defaultValue: 'featured-categories',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: 'customCSS',
|
|
192
|
+
type: 'code',
|
|
193
|
+
label: 'Custom CSS',
|
|
194
|
+
admin: { language: 'css' },
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
},
|
|
200
|
+
],
|
|
201
|
+
}
|