blocks-dusted 0.1.11 → 0.1.13
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/package.json +5 -2
- package/src/cli.js +39 -3
- package/src/commands/shop.js +59 -0
- package/src/commands/warehouse.js +73 -0
- package/src/installers/patchRenderBlocks.js +1 -1
- package/src/registry/validateTemplateManifest.js +2 -1
- package/templates/blocks/BannerDD790432/Component.tsx +63 -0
- package/templates/blocks/BannerDD790432/config.ts +54 -0
- package/templates/blocks/BannerDD790432/manifest.json +80 -0
- package/templates/blocks/Button47/Component.tsx +124 -0
- package/templates/blocks/Button47/config.ts +75 -0
- package/templates/blocks/Button47/link.ts +22 -0
- package/templates/blocks/Button47/manifest.json +105 -0
- package/templates/blocks/Button47/styles.module.scss +75 -0
- package/templates/blocks/DD-Accordion/Component.tsx +55 -36
- package/templates/blocks/DD-Accordion/config.ts +71 -59
- package/templates/blocks/DD-AnimText/Component.tsx +50 -32
- package/templates/blocks/DD-AnimText/config.ts +296 -295
- package/templates/blocks/DD-AsideNav/Component.tsx +323 -319
- package/templates/blocks/DD-Banner/Component.tsx +54 -51
- package/templates/blocks/DD-BookCall/Component.tsx +10 -9
- package/templates/blocks/DD-ButtonPop/Component.tsx +118 -117
- package/templates/blocks/DD-Card/Component.tsx +4 -4
- package/templates/blocks/DD-CardTemplate01/Component.tsx +5 -5
- package/templates/blocks/DD-CardsWithVariantV3/Component.tsx +472 -0
- package/templates/blocks/DD-CardsWithVariantV3/ElectricBorder/index.tsx +203 -0
- package/templates/blocks/DD-CardsWithVariantV3/ElectricBorder/styles.ts +87 -0
- package/templates/blocks/DD-CardsWithVariantV3/ElectricBorder/useInjectStyle.ts +39 -0
- package/templates/blocks/DD-CardsWithVariantV3/config.ts +326 -0
- package/templates/blocks/DD-CardsWithVariantV3/manifest.json +110 -0
- package/templates/blocks/DD-Carousel-A/Component.tsx +251 -249
- package/templates/blocks/DD-Carousel-B/Component.tsx +405 -403
- package/templates/blocks/DD-Chip/Component.tsx +14 -14
- package/templates/blocks/DD-ComparisonTable/Component.tsx +255 -256
- package/templates/blocks/DD-Contact/Component.tsx +433 -434
- package/templates/blocks/DD-Counter/Component.tsx +18 -13
- package/templates/blocks/DD-DeliCard/Component.tsx +303 -0
- package/templates/blocks/DD-DeliCard/config.ts +186 -0
- package/templates/blocks/DD-DeliCard/manifest.json +94 -0
- package/templates/blocks/DD-FeatCat/Component.tsx +302 -302
- package/templates/blocks/DD-FeatProd/CircularGallery.tsx +1179 -0
- package/templates/blocks/DD-FeatProd/Component.tsx +484 -0
- package/templates/blocks/DD-FeatProd/config.ts +173 -0
- package/templates/blocks/DD-FeatProd/manifest.json +93 -0
- package/templates/blocks/DD-FeatServ/Component.tsx +607 -0
- package/templates/blocks/DD-FeatServ/config.ts +213 -0
- package/templates/blocks/DD-FeatServ/manifest.json +113 -0
- package/templates/blocks/DD-FeatStrip/Component.tsx +584 -585
- package/templates/blocks/DD-FluidBtn/ButtonsEyeCatching.tsx +627 -628
- package/templates/blocks/DD-FluidBtn/Component.tsx +46 -43
- package/templates/blocks/DD-GooeyInfo/Component.tsx +150 -149
- package/templates/blocks/DD-GooeyInfo/config.ts +136 -135
- package/templates/blocks/DD-Hero/Component.tsx +16 -40
- package/templates/blocks/DD-HeroPlas/Component.tsx +50 -0
- package/templates/blocks/DD-HeroPlas/ThreeScene.tsx +109 -0
- package/templates/blocks/DD-HeroPlas/config.ts +33 -0
- package/templates/blocks/DD-HeroPlas/manifest.json +88 -0
- package/templates/blocks/DD-HorizontalScroll/Component.tsx +4 -5
- package/templates/blocks/DD-Icon/Component.tsx +46 -81
- package/templates/blocks/DD-IconButton/Component.tsx +13 -20
- package/templates/blocks/DD-IdTag/Component.tsx +22 -21
- package/templates/blocks/DD-IframeMedia/Component.tsx +14 -10
- package/templates/blocks/DD-LineAnim/Component.tsx +42 -36
- package/templates/blocks/DD-LogoMarq/Component.tsx +38 -48
- package/templates/blocks/DD-Lottie/Component.tsx +11 -3
- package/templates/blocks/DD-MasonaryMedia/Component.tsx +544 -547
- package/templates/blocks/DD-MasonaryMedia/config.ts +389 -389
- package/templates/blocks/DD-Masonry/Component.tsx +654 -644
- package/templates/blocks/DD-Masonry/config.ts +475 -475
- package/templates/blocks/DD-MaterialSwatches/Component.tsx +85 -0
- package/templates/blocks/DD-MaterialSwatches/config.ts +232 -0
- package/templates/blocks/DD-MaterialSwatches/manifest.json +84 -0
- package/templates/blocks/DD-MaterialSwatches/material.ts +107 -0
- package/templates/blocks/DD-NineCanvas/Component.tsx +129 -0
- package/templates/blocks/DD-NineCanvas/RenderBlocks.tsx +244 -0
- package/templates/blocks/DD-NineCanvas/allowedCanvasBlocks.ts +6 -0
- package/templates/blocks/DD-NineCanvas/blockComponents.tsx +8 -0
- package/templates/blocks/DD-NineCanvas/canvas/CanvasGrid.tsx +316 -0
- package/templates/blocks/DD-NineCanvas/canvas/RadialNav.tsx +432 -0
- package/templates/blocks/DD-NineCanvas/canvas/canvas-panels.css +889 -0
- package/templates/blocks/DD-NineCanvas/canvas/icons/custom-icons.tsx +364 -0
- package/templates/blocks/DD-NineCanvas/config.ts +61 -0
- package/templates/blocks/DD-NineCanvas/manifest.json +165 -0
- package/templates/blocks/DD-NineCanvas/styles.scss +152 -0
- package/templates/blocks/DD-NineCanvas/tooltip/get-strict-context.tsx +26 -0
- package/templates/blocks/DD-NineCanvas/tooltip/primitives.tsx +178 -0
- package/templates/blocks/DD-NineCanvas/tooltip/tooltip.tsx +71 -0
- package/templates/blocks/DD-NineCanvas/tooltip/use-controlled-state.tsx +33 -0
- package/templates/blocks/DD-NineCanvas/utilities/FadeOnScroll.tsx +68 -0
- package/templates/blocks/DD-NineCanvas/utilities/ParallaxWrapper.tsx +157 -0
- package/templates/blocks/DD-NineCanvas/utilities/renderCustomCSS.ts +5 -0
- package/templates/blocks/DD-NineCanvas/utilities/webglCleanup.ts +27 -0
- package/templates/blocks/DD-PayloadAIAssistant/Component.tsx +78 -0
- package/templates/blocks/DD-PayloadAIAssistant/DustedBot.tsx +590 -0
- package/templates/blocks/DD-PayloadAIAssistant/config.ts +37 -0
- package/templates/blocks/DD-PayloadAIAssistant/demo.css +125 -0
- package/templates/blocks/DD-PayloadAIAssistant/manifest.json +93 -0
- package/templates/blocks/DD-PayloadAIAssistant/source-defaults.ts +17 -0
- package/templates/blocks/DD-PayloadAIAssistant/styles.ts +306 -0
- package/templates/blocks/DD-Pricing/Component.tsx +368 -372
- package/templates/blocks/DD-Pricing/config.ts +215 -215
- package/templates/blocks/DD-Process/Component.tsx +147 -149
- package/templates/blocks/DD-Progress/Component.tsx +156 -141
- package/templates/blocks/DD-ProjHeader/Component.tsx +93 -91
- package/templates/blocks/DD-ProjSlider/Component.tsx +1 -1
- package/templates/blocks/DD-ProjSlider/config.ts +2 -2
- package/templates/blocks/DD-Section/Component.tsx +265 -266
- package/templates/blocks/DD-Separator/Component.tsx +66 -66
- package/templates/blocks/DD-Services/Component.tsx +176 -176
- package/templates/blocks/DD-ShowcaseGrid/Component.tsx +306 -307
- package/templates/blocks/DD-Slider-A/Component.tsx +237 -237
- package/templates/blocks/DD-StackCards/Component.tsx +474 -473
- package/templates/blocks/DD-Team/Component.tsx +247 -247
- package/templates/blocks/DD-TeamCards/Component.tsx +251 -251
- package/templates/blocks/DD-TechStack/Component.tsx +161 -168
- package/templates/blocks/DD-TestMarq/Component.tsx +158 -132
- package/templates/blocks/DD-Testim/Component.tsx +247 -247
- package/templates/blocks/DD-Testim2/Component.tsx +265 -256
- package/templates/blocks/DD-Testimonials/Component.tsx +139 -147
- package/templates/blocks/DD-TextMarq/Component.tsx +157 -157
- package/templates/blocks/DD-Thanks/Component.tsx +501 -500
- package/templates/blocks/DD-Work/Component.tsx +315 -315
- package/templates/blocks/DD-Work-B/Component.tsx +294 -294
- package/templates/blocks/DDHG-CTASection2/Component.tsx +183 -184
- package/templates/blocks/DDHG-HighlightArc/Component.tsx +246 -243
- package/templates/blocks/DDHG-LogoMarquee/Component.tsx +180 -93
- package/templates/blocks/DDHG-LogoMarquee/config.ts +154 -66
- package/templates/blocks/DDHG-NavCodeGrid/Component.tsx +225 -213
- package/templates/blocks/DDHG-ProcessSec/Component.tsx +38 -39
- package/templates/blocks/DDHG-ServiceDetails/Component.tsx +11 -11
- package/templates/blocks/DDHG-ServiceDetails/ServiceDetailCard.tsx +30 -47
- package/templates/blocks/DDHG-ServiceHero/Component.tsx +10 -10
- package/templates/blocks/DDHG-ServiceOverview/Component.tsx +23 -23
- package/templates/blocks/DDHG-StatsFAQ/Component.tsx +40 -40
- package/templates/blocks/DDHG-TeamCards/Component.tsx +140 -131
- package/templates/blocks/Form/Checkbox/index.tsx +45 -0
- package/templates/blocks/Form/Component.tsx +163 -0
- package/templates/blocks/Form/Country/index.tsx +65 -0
- package/templates/blocks/Form/Country/options.ts +982 -0
- package/templates/blocks/Form/Email/index.tsx +38 -0
- package/templates/blocks/Form/Error/index.tsx +15 -0
- package/templates/blocks/Form/Message/index.tsx +13 -0
- package/templates/blocks/Form/Number/index.tsx +36 -0
- package/templates/blocks/Form/Select/index.tsx +63 -0
- package/templates/blocks/Form/State/index.tsx +64 -0
- package/templates/blocks/Form/State/options.ts +52 -0
- package/templates/blocks/Form/Text/index.tsx +32 -0
- package/templates/blocks/Form/Textarea/index.tsx +40 -0
- package/templates/blocks/Form/Width/index.tsx +13 -0
- package/templates/blocks/Form/config.ts +51 -0
- package/templates/blocks/Form/fields.tsx +21 -0
- package/templates/blocks/Form/manifest.json +168 -0
- package/templates/blocks/MediaBlock/Component.tsx +67 -0
- package/templates/blocks/MediaBlock/config.ts +14 -0
- package/templates/blocks/MediaBlock/manifest.json +92 -0
- package/templates/blocks/TransitionsDustedShowcase/Component.tsx +9 -0
- package/templates/blocks/TransitionsDustedShowcase/config.ts +13 -0
- package/templates/blocks/TransitionsDustedShowcase/manifest.json +80 -0
- package/templates/blocks/rawHtml/Component.tsx +25 -0
- package/templates/blocks/rawHtml/config.ts +56 -0
- package/templates/blocks/rawHtml/manifest.json +80 -0
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
|
|
3
|
-
import React, { useMemo
|
|
4
|
-
import
|
|
3
|
+
import React, { useMemo } from 'react'
|
|
4
|
+
import * as LucideIcons from 'lucide-react'
|
|
5
5
|
import { cn } from '@/utilities/ui'
|
|
6
6
|
import { Separator } from '@/components/ui/separator'
|
|
7
7
|
|
|
8
|
-
const placeholderBlur =
|
|
9
|
-
'data:image/svg+xml;base64,' +
|
|
10
|
-
btoa(
|
|
11
|
-
'<svg width="160" height="80" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="transparent"/></svg>'
|
|
12
|
-
)
|
|
13
|
-
|
|
14
8
|
export type LogoMarqueeProps = {
|
|
15
9
|
logos: {
|
|
16
10
|
image?: {
|
|
@@ -20,6 +14,9 @@ export type LogoMarqueeProps = {
|
|
|
20
14
|
imageClass?: string
|
|
21
15
|
imageStyle?: React.CSSProperties
|
|
22
16
|
imageAltClass?: string
|
|
17
|
+
icon?: string | null
|
|
18
|
+
label?: string | null
|
|
19
|
+
showLabel?: boolean | null
|
|
23
20
|
}[]
|
|
24
21
|
speed?: number
|
|
25
22
|
spacing?: number
|
|
@@ -30,29 +27,15 @@ export type LogoMarqueeProps = {
|
|
|
30
27
|
customCSS?: string
|
|
31
28
|
}
|
|
32
29
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return (
|
|
43
|
-
<Image
|
|
44
|
-
src={imageSrc}
|
|
45
|
-
alt={alt || 'Logo'}
|
|
46
|
-
width={160}
|
|
47
|
-
height={72}
|
|
48
|
-
priority
|
|
49
|
-
className={cn('h-14 w-auto max-w-[140px] object-contain', customClass)}
|
|
50
|
-
style={imageStyle}
|
|
51
|
-
onError={() => setImageError(true)}
|
|
52
|
-
placeholder="blur"
|
|
53
|
-
blurDataURL={placeholderBlur}
|
|
54
|
-
/>
|
|
55
|
-
)
|
|
30
|
+
function DynamicIcon({
|
|
31
|
+
name,
|
|
32
|
+
size = 36,
|
|
33
|
+
...props
|
|
34
|
+
}: { name?: string | null } & Omit<LucideIcons.LucideProps, 'name'>) {
|
|
35
|
+
if (!name) return null
|
|
36
|
+
const Icon = (LucideIcons as unknown as Record<string, React.FC<LucideIcons.LucideProps>>)[name]
|
|
37
|
+
if (!Icon) return null
|
|
38
|
+
return <Icon size={size} {...props} />
|
|
56
39
|
}
|
|
57
40
|
|
|
58
41
|
export const DDLogoMarq: React.FC<LogoMarqueeProps> = ({
|
|
@@ -63,7 +46,7 @@ export const DDLogoMarq: React.FC<LogoMarqueeProps> = ({
|
|
|
63
46
|
showBottomDivider = false,
|
|
64
47
|
containerClass = 'py-8',
|
|
65
48
|
customCSS,
|
|
66
|
-
itemWidth = 190
|
|
49
|
+
itemWidth = 190,
|
|
67
50
|
}) => {
|
|
68
51
|
const validLogos = logos || []
|
|
69
52
|
const marqueeItems = useMemo(() => {
|
|
@@ -75,11 +58,12 @@ export const DDLogoMarq: React.FC<LogoMarqueeProps> = ({
|
|
|
75
58
|
if (marqueeItems.length === 0) return null
|
|
76
59
|
|
|
77
60
|
const gap = Math.max(16, spacing)
|
|
61
|
+
const defaultIcons = ['Code2', 'Database', 'PanelsTopLeft', 'Braces', 'Workflow', 'GitBranch']
|
|
78
62
|
|
|
79
63
|
const LogoTile = ({
|
|
80
64
|
logo,
|
|
81
65
|
index,
|
|
82
|
-
duplicate = false
|
|
66
|
+
duplicate = false,
|
|
83
67
|
}: {
|
|
84
68
|
logo: (typeof marqueeItems)[number]
|
|
85
69
|
index: number
|
|
@@ -87,18 +71,24 @@ export const DDLogoMarq: React.FC<LogoMarqueeProps> = ({
|
|
|
87
71
|
}) => (
|
|
88
72
|
<div
|
|
89
73
|
key={(duplicate ? 'duplicate' : 'logo') + '-' + index}
|
|
90
|
-
className="marquee-logo-tile flex shrink-0 flex-col items-center justify-center
|
|
74
|
+
className="marquee-logo-tile flex shrink-0 flex-col items-center justify-center"
|
|
91
75
|
style={{ width: itemWidth }}
|
|
92
76
|
>
|
|
93
|
-
<
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
77
|
+
<div className="flex h-20 w-20 items-center justify-center rounded-2xl border border-[#2A2A30] bg-linear-to-b from-[#1a1a1f] to-[#0f0f12] p-4 invert-[1] transition-all duration-300 hover:scale-105 hover:shadow-[0_0_30px_rgba(140,138,132,0.15)] dark:invert-[0]">
|
|
78
|
+
<DynamicIcon
|
|
79
|
+
className="text-[#9A9790]"
|
|
80
|
+
name={logo.icon || defaultIcons[index % defaultIcons.length]}
|
|
81
|
+
size={36}
|
|
82
|
+
/>
|
|
83
|
+
</div>
|
|
84
|
+
{logo.showLabel !== false && (logo.label || logo.image?.alt) && (
|
|
85
|
+
<p
|
|
86
|
+
className={cn(
|
|
87
|
+
'mt-2 text-center text-sm leading-tight text-[#9A9790]',
|
|
88
|
+
logo.imageAltClass,
|
|
89
|
+
)}
|
|
90
|
+
>
|
|
91
|
+
{logo.label || logo.image?.alt}
|
|
102
92
|
</p>
|
|
103
93
|
)}
|
|
104
94
|
</div>
|
|
@@ -109,11 +99,11 @@ export const DDLogoMarq: React.FC<LogoMarqueeProps> = ({
|
|
|
109
99
|
{showTopDivider && <Separator gradient className="border-seperator" />}
|
|
110
100
|
<section className="logo-marquee-block mx-auto flex min-h-[280px] w-full max-w-6xl items-center overflow-hidden">
|
|
111
101
|
{customCSS && <style dangerouslySetInnerHTML={{ __html: customCSS }} />}
|
|
112
|
-
<style>
|
|
113
|
-
'@keyframes dd-logo-marquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }' +
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
102
|
+
<style>
|
|
103
|
+
{'@keyframes dd-logo-marquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }' +
|
|
104
|
+
'.logo-marquee-track { animation: dd-logo-marquee var(--dd-logo-marquee-speed) linear infinite; }' +
|
|
105
|
+
'.logo-marquee-block:hover .logo-marquee-track { animation-play-state: paused; }'}
|
|
106
|
+
</style>
|
|
117
107
|
<div className={cn('relative w-full overflow-hidden', containerClass)}>
|
|
118
108
|
<div
|
|
119
109
|
className="logo-marquee-track flex w-max items-center"
|
|
@@ -343,6 +343,14 @@ const LottieBlockComponent: React.FC<LottieBlockProps> = ({
|
|
|
343
343
|
}
|
|
344
344
|
}
|
|
345
345
|
|
|
346
|
+
if (!fileUrl) {
|
|
347
|
+
return (
|
|
348
|
+
<div className={cn(lottieBaseClass, 'flex min-h-[220px] min-w-[320px] items-center justify-center rounded-md border border-border bg-card p-8 text-center text-sm text-muted-foreground', containerClass)}>
|
|
349
|
+
Lottie animation placeholder
|
|
350
|
+
</div>
|
|
351
|
+
)
|
|
352
|
+
}
|
|
353
|
+
|
|
346
354
|
const containerStyles: React.CSSProperties = {
|
|
347
355
|
width: width || 'auto',
|
|
348
356
|
height: height || 'auto',
|
|
@@ -424,7 +432,7 @@ const LottieBlockComponent: React.FC<LottieBlockProps> = ({
|
|
|
424
432
|
aria-label="Play animation"
|
|
425
433
|
type="button"
|
|
426
434
|
>
|
|
427
|
-
|
|
435
|
+
â–¶ï¸
|
|
428
436
|
</button>
|
|
429
437
|
<button
|
|
430
438
|
onClick={handlePause}
|
|
@@ -432,7 +440,7 @@ const LottieBlockComponent: React.FC<LottieBlockProps> = ({
|
|
|
432
440
|
aria-label="Pause animation"
|
|
433
441
|
type="button"
|
|
434
442
|
>
|
|
435
|
-
|
|
443
|
+
â¸ï¸
|
|
436
444
|
</button>
|
|
437
445
|
<button
|
|
438
446
|
onClick={handleStop}
|
|
@@ -440,7 +448,7 @@ const LottieBlockComponent: React.FC<LottieBlockProps> = ({
|
|
|
440
448
|
aria-label="Stop animation"
|
|
441
449
|
type="button"
|
|
442
450
|
>
|
|
443
|
-
|
|
451
|
+
â¹ï¸
|
|
444
452
|
</button>
|
|
445
453
|
</div>
|
|
446
454
|
)}
|