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.
Files changed (161) hide show
  1. package/package.json +5 -2
  2. package/src/cli.js +39 -3
  3. package/src/commands/shop.js +59 -0
  4. package/src/commands/warehouse.js +73 -0
  5. package/src/installers/patchRenderBlocks.js +1 -1
  6. package/src/registry/validateTemplateManifest.js +2 -1
  7. package/templates/blocks/BannerDD790432/Component.tsx +63 -0
  8. package/templates/blocks/BannerDD790432/config.ts +54 -0
  9. package/templates/blocks/BannerDD790432/manifest.json +80 -0
  10. package/templates/blocks/Button47/Component.tsx +124 -0
  11. package/templates/blocks/Button47/config.ts +75 -0
  12. package/templates/blocks/Button47/link.ts +22 -0
  13. package/templates/blocks/Button47/manifest.json +105 -0
  14. package/templates/blocks/Button47/styles.module.scss +75 -0
  15. package/templates/blocks/DD-Accordion/Component.tsx +55 -36
  16. package/templates/blocks/DD-Accordion/config.ts +71 -59
  17. package/templates/blocks/DD-AnimText/Component.tsx +50 -32
  18. package/templates/blocks/DD-AnimText/config.ts +296 -295
  19. package/templates/blocks/DD-AsideNav/Component.tsx +323 -319
  20. package/templates/blocks/DD-Banner/Component.tsx +54 -51
  21. package/templates/blocks/DD-BookCall/Component.tsx +10 -9
  22. package/templates/blocks/DD-ButtonPop/Component.tsx +118 -117
  23. package/templates/blocks/DD-Card/Component.tsx +4 -4
  24. package/templates/blocks/DD-CardTemplate01/Component.tsx +5 -5
  25. package/templates/blocks/DD-CardsWithVariantV3/Component.tsx +472 -0
  26. package/templates/blocks/DD-CardsWithVariantV3/ElectricBorder/index.tsx +203 -0
  27. package/templates/blocks/DD-CardsWithVariantV3/ElectricBorder/styles.ts +87 -0
  28. package/templates/blocks/DD-CardsWithVariantV3/ElectricBorder/useInjectStyle.ts +39 -0
  29. package/templates/blocks/DD-CardsWithVariantV3/config.ts +326 -0
  30. package/templates/blocks/DD-CardsWithVariantV3/manifest.json +110 -0
  31. package/templates/blocks/DD-Carousel-A/Component.tsx +251 -249
  32. package/templates/blocks/DD-Carousel-B/Component.tsx +405 -403
  33. package/templates/blocks/DD-Chip/Component.tsx +14 -14
  34. package/templates/blocks/DD-ComparisonTable/Component.tsx +255 -256
  35. package/templates/blocks/DD-Contact/Component.tsx +433 -434
  36. package/templates/blocks/DD-Counter/Component.tsx +18 -13
  37. package/templates/blocks/DD-DeliCard/Component.tsx +303 -0
  38. package/templates/blocks/DD-DeliCard/config.ts +186 -0
  39. package/templates/blocks/DD-DeliCard/manifest.json +94 -0
  40. package/templates/blocks/DD-FeatCat/Component.tsx +302 -302
  41. package/templates/blocks/DD-FeatProd/CircularGallery.tsx +1179 -0
  42. package/templates/blocks/DD-FeatProd/Component.tsx +484 -0
  43. package/templates/blocks/DD-FeatProd/config.ts +173 -0
  44. package/templates/blocks/DD-FeatProd/manifest.json +93 -0
  45. package/templates/blocks/DD-FeatServ/Component.tsx +607 -0
  46. package/templates/blocks/DD-FeatServ/config.ts +213 -0
  47. package/templates/blocks/DD-FeatServ/manifest.json +113 -0
  48. package/templates/blocks/DD-FeatStrip/Component.tsx +584 -585
  49. package/templates/blocks/DD-FluidBtn/ButtonsEyeCatching.tsx +627 -628
  50. package/templates/blocks/DD-FluidBtn/Component.tsx +46 -43
  51. package/templates/blocks/DD-GooeyInfo/Component.tsx +150 -149
  52. package/templates/blocks/DD-GooeyInfo/config.ts +136 -135
  53. package/templates/blocks/DD-Hero/Component.tsx +16 -40
  54. package/templates/blocks/DD-HeroPlas/Component.tsx +50 -0
  55. package/templates/blocks/DD-HeroPlas/ThreeScene.tsx +109 -0
  56. package/templates/blocks/DD-HeroPlas/config.ts +33 -0
  57. package/templates/blocks/DD-HeroPlas/manifest.json +88 -0
  58. package/templates/blocks/DD-HorizontalScroll/Component.tsx +4 -5
  59. package/templates/blocks/DD-Icon/Component.tsx +46 -81
  60. package/templates/blocks/DD-IconButton/Component.tsx +13 -20
  61. package/templates/blocks/DD-IdTag/Component.tsx +22 -21
  62. package/templates/blocks/DD-IframeMedia/Component.tsx +14 -10
  63. package/templates/blocks/DD-LineAnim/Component.tsx +42 -36
  64. package/templates/blocks/DD-LogoMarq/Component.tsx +38 -48
  65. package/templates/blocks/DD-Lottie/Component.tsx +11 -3
  66. package/templates/blocks/DD-MasonaryMedia/Component.tsx +544 -547
  67. package/templates/blocks/DD-MasonaryMedia/config.ts +389 -389
  68. package/templates/blocks/DD-Masonry/Component.tsx +654 -644
  69. package/templates/blocks/DD-Masonry/config.ts +475 -475
  70. package/templates/blocks/DD-MaterialSwatches/Component.tsx +85 -0
  71. package/templates/blocks/DD-MaterialSwatches/config.ts +232 -0
  72. package/templates/blocks/DD-MaterialSwatches/manifest.json +84 -0
  73. package/templates/blocks/DD-MaterialSwatches/material.ts +107 -0
  74. package/templates/blocks/DD-NineCanvas/Component.tsx +129 -0
  75. package/templates/blocks/DD-NineCanvas/RenderBlocks.tsx +244 -0
  76. package/templates/blocks/DD-NineCanvas/allowedCanvasBlocks.ts +6 -0
  77. package/templates/blocks/DD-NineCanvas/blockComponents.tsx +8 -0
  78. package/templates/blocks/DD-NineCanvas/canvas/CanvasGrid.tsx +316 -0
  79. package/templates/blocks/DD-NineCanvas/canvas/RadialNav.tsx +432 -0
  80. package/templates/blocks/DD-NineCanvas/canvas/canvas-panels.css +889 -0
  81. package/templates/blocks/DD-NineCanvas/canvas/icons/custom-icons.tsx +364 -0
  82. package/templates/blocks/DD-NineCanvas/config.ts +61 -0
  83. package/templates/blocks/DD-NineCanvas/manifest.json +165 -0
  84. package/templates/blocks/DD-NineCanvas/styles.scss +152 -0
  85. package/templates/blocks/DD-NineCanvas/tooltip/get-strict-context.tsx +26 -0
  86. package/templates/blocks/DD-NineCanvas/tooltip/primitives.tsx +178 -0
  87. package/templates/blocks/DD-NineCanvas/tooltip/tooltip.tsx +71 -0
  88. package/templates/blocks/DD-NineCanvas/tooltip/use-controlled-state.tsx +33 -0
  89. package/templates/blocks/DD-NineCanvas/utilities/FadeOnScroll.tsx +68 -0
  90. package/templates/blocks/DD-NineCanvas/utilities/ParallaxWrapper.tsx +157 -0
  91. package/templates/blocks/DD-NineCanvas/utilities/renderCustomCSS.ts +5 -0
  92. package/templates/blocks/DD-NineCanvas/utilities/webglCleanup.ts +27 -0
  93. package/templates/blocks/DD-PayloadAIAssistant/Component.tsx +78 -0
  94. package/templates/blocks/DD-PayloadAIAssistant/DustedBot.tsx +590 -0
  95. package/templates/blocks/DD-PayloadAIAssistant/config.ts +37 -0
  96. package/templates/blocks/DD-PayloadAIAssistant/demo.css +125 -0
  97. package/templates/blocks/DD-PayloadAIAssistant/manifest.json +93 -0
  98. package/templates/blocks/DD-PayloadAIAssistant/source-defaults.ts +17 -0
  99. package/templates/blocks/DD-PayloadAIAssistant/styles.ts +306 -0
  100. package/templates/blocks/DD-Pricing/Component.tsx +368 -372
  101. package/templates/blocks/DD-Pricing/config.ts +215 -215
  102. package/templates/blocks/DD-Process/Component.tsx +147 -149
  103. package/templates/blocks/DD-Progress/Component.tsx +156 -141
  104. package/templates/blocks/DD-ProjHeader/Component.tsx +93 -91
  105. package/templates/blocks/DD-ProjSlider/Component.tsx +1 -1
  106. package/templates/blocks/DD-ProjSlider/config.ts +2 -2
  107. package/templates/blocks/DD-Section/Component.tsx +265 -266
  108. package/templates/blocks/DD-Separator/Component.tsx +66 -66
  109. package/templates/blocks/DD-Services/Component.tsx +176 -176
  110. package/templates/blocks/DD-ShowcaseGrid/Component.tsx +306 -307
  111. package/templates/blocks/DD-Slider-A/Component.tsx +237 -237
  112. package/templates/blocks/DD-StackCards/Component.tsx +474 -473
  113. package/templates/blocks/DD-Team/Component.tsx +247 -247
  114. package/templates/blocks/DD-TeamCards/Component.tsx +251 -251
  115. package/templates/blocks/DD-TechStack/Component.tsx +161 -168
  116. package/templates/blocks/DD-TestMarq/Component.tsx +158 -132
  117. package/templates/blocks/DD-Testim/Component.tsx +247 -247
  118. package/templates/blocks/DD-Testim2/Component.tsx +265 -256
  119. package/templates/blocks/DD-Testimonials/Component.tsx +139 -147
  120. package/templates/blocks/DD-TextMarq/Component.tsx +157 -157
  121. package/templates/blocks/DD-Thanks/Component.tsx +501 -500
  122. package/templates/blocks/DD-Work/Component.tsx +315 -315
  123. package/templates/blocks/DD-Work-B/Component.tsx +294 -294
  124. package/templates/blocks/DDHG-CTASection2/Component.tsx +183 -184
  125. package/templates/blocks/DDHG-HighlightArc/Component.tsx +246 -243
  126. package/templates/blocks/DDHG-LogoMarquee/Component.tsx +180 -93
  127. package/templates/blocks/DDHG-LogoMarquee/config.ts +154 -66
  128. package/templates/blocks/DDHG-NavCodeGrid/Component.tsx +225 -213
  129. package/templates/blocks/DDHG-ProcessSec/Component.tsx +38 -39
  130. package/templates/blocks/DDHG-ServiceDetails/Component.tsx +11 -11
  131. package/templates/blocks/DDHG-ServiceDetails/ServiceDetailCard.tsx +30 -47
  132. package/templates/blocks/DDHG-ServiceHero/Component.tsx +10 -10
  133. package/templates/blocks/DDHG-ServiceOverview/Component.tsx +23 -23
  134. package/templates/blocks/DDHG-StatsFAQ/Component.tsx +40 -40
  135. package/templates/blocks/DDHG-TeamCards/Component.tsx +140 -131
  136. package/templates/blocks/Form/Checkbox/index.tsx +45 -0
  137. package/templates/blocks/Form/Component.tsx +163 -0
  138. package/templates/blocks/Form/Country/index.tsx +65 -0
  139. package/templates/blocks/Form/Country/options.ts +982 -0
  140. package/templates/blocks/Form/Email/index.tsx +38 -0
  141. package/templates/blocks/Form/Error/index.tsx +15 -0
  142. package/templates/blocks/Form/Message/index.tsx +13 -0
  143. package/templates/blocks/Form/Number/index.tsx +36 -0
  144. package/templates/blocks/Form/Select/index.tsx +63 -0
  145. package/templates/blocks/Form/State/index.tsx +64 -0
  146. package/templates/blocks/Form/State/options.ts +52 -0
  147. package/templates/blocks/Form/Text/index.tsx +32 -0
  148. package/templates/blocks/Form/Textarea/index.tsx +40 -0
  149. package/templates/blocks/Form/Width/index.tsx +13 -0
  150. package/templates/blocks/Form/config.ts +51 -0
  151. package/templates/blocks/Form/fields.tsx +21 -0
  152. package/templates/blocks/Form/manifest.json +168 -0
  153. package/templates/blocks/MediaBlock/Component.tsx +67 -0
  154. package/templates/blocks/MediaBlock/config.ts +14 -0
  155. package/templates/blocks/MediaBlock/manifest.json +92 -0
  156. package/templates/blocks/TransitionsDustedShowcase/Component.tsx +9 -0
  157. package/templates/blocks/TransitionsDustedShowcase/config.ts +13 -0
  158. package/templates/blocks/TransitionsDustedShowcase/manifest.json +80 -0
  159. package/templates/blocks/rawHtml/Component.tsx +25 -0
  160. package/templates/blocks/rawHtml/config.ts +56 -0
  161. package/templates/blocks/rawHtml/manifest.json +80 -0
@@ -1,295 +1,296 @@
1
- import type { Block } from 'payload'
2
-
3
- import { defaultLexical } from '@/fields/defaultLexical'
4
-
5
- export const DDAnimText: Block = {
6
- slug: 'DD-AnimText',
7
- interfaceName: 'DDAnimText',
8
- labels: {
9
- singular: 'Animated Text',
10
- plural: 'Animated Texts'
11
- },
12
- fields: [
13
- {
14
- name: 'animTextScrollSpeed',
15
- type: 'text',
16
- hidden: true,
17
- label: 'Scroll Data Speed',
18
- defaultValue: '0.2',
19
- admin: {
20
- description: 'Default value 0.2'
21
- }
22
- },
23
- // Custom class for textbox container - not working - not required
24
- {
25
- admin: {
26
- initCollapsed: true,
27
- hidden: true,
28
- className: 'custom-css-class',
29
- condition: (data) =>
30
- data.variation === 'text-fade-up' ||
31
- data.variation === 'text-fade-down' ||
32
- data.variation === 'blur-in'
33
- },
34
- type: 'collapsible',
35
- label: 'Container Classes (RichText Variations)',
36
- fields: [
37
- {
38
- name: 'aniTextBoxContainerClass',
39
- type: 'text',
40
- hidden: false,
41
- label: 'Animated Text Container Class'
42
- },
43
- {
44
- name: 'aniTextBoxClass',
45
- type: 'text',
46
- hidden: false,
47
- label: 'Animated Text Box Class',
48
- admin: {
49
- description: 'Add additional class to the animated richText box.'
50
- }
51
- }
52
- ]
53
- },
54
- // Custom class for all variations
55
- {
56
- admin: {
57
- initCollapsed: true,
58
- className: 'custom-css-class'
59
- },
60
- type: 'collapsible',
61
- label: 'Text Classes (All Variations)',
62
- fields: [
63
- {
64
- name: 'aniTextClass',
65
- type: 'text',
66
- label: false,
67
- admin: {
68
- description:
69
- 'Add an additional class to the animated text. This can be used to style the text or apply additional animations.'
70
- }
71
- }
72
- ]
73
- },
74
- {
75
- name: 'animatedText',
76
- type: 'richText',
77
- label: 'Text Content',
78
- editor: defaultLexical,
79
- admin: {
80
- condition: (data, siblingData) =>
81
- siblingData.variation === 'text-fade-up' ||
82
- siblingData.variation === 'text-fade-down' ||
83
- siblingData.variation === 'blur-in',
84
- description:
85
- 'Add the text that will be animated. This will be used for text fade and blur effects.'
86
- }
87
- },
88
-
89
- {
90
- name: 'plainText',
91
- type: 'text',
92
- label: 'Content',
93
- admin: {
94
- condition: (data, siblingData) =>
95
- siblingData.variation !== 'text-fade-up' &&
96
- siblingData.variation !== 'text-fade-down' &&
97
- siblingData.variation !== 'blur-in',
98
- description: 'The text content that will be animated.'
99
- }
100
- },
101
- {
102
- name: 'rotateWords',
103
- type: 'text',
104
- label: 'Rotating Words or Letters',
105
- admin: {
106
- condition: (data, siblingData) => siblingData.variation === 'rotate',
107
- description: 'Comma-separated words to rotate through.'
108
- }
109
- },
110
- {
111
- name: 'variation',
112
- type: 'select',
113
- label: 'Animation Type',
114
- defaultValue: 'text-fade-up',
115
- options: [
116
- { label: 'No Animation', value: 'no-animation' },
117
- { label: 'Split Text', value: 'split-text' },
118
- { label: 'Text Type', value: 'text-type' },
119
- { label: 'Shuffle Text', value: 'shuffle-text' },
120
- { label: 'Shiny Text', value: 'shiny-text' },
121
- { label: 'Gradual Spacing', value: 'gradual-spacing' },
122
- { label: 'Typing Effect', value: 'typing' },
123
- { label: 'Staggered Fade', value: 'staggered-fade' },
124
- { label: 'Rotate Words', value: 'rotate' },
125
- { label: 'Letters Pull Up', value: 'letters-pull-up' },
126
- { label: 'Words Pull Up', value: 'words-pull-up' },
127
- { label: 'Blur In', value: 'blur-in' },
128
- { label: 'Text Fade Up', value: 'text-fade-up' },
129
- { label: 'Text Fade Down', value: 'text-fade-down' }
130
- ],
131
-
132
- admin: {
133
- description: 'Select the animation style for this text.'
134
- }
135
- },
136
- // Split Text variant fields
137
- {
138
- admin: {
139
- initCollapsed: true,
140
- condition: (data, siblingData) => siblingData.variation === 'split-text'
141
- },
142
- type: 'collapsible',
143
- label: 'Split Text Settings',
144
- fields: [
145
- {
146
- name: 'splitTrigger',
147
- type: 'select',
148
- label: 'Animation Trigger',
149
- defaultValue: 'view',
150
- options: [
151
- { label: 'In View', value: 'view' },
152
- { label: 'Hover', value: 'hover' },
153
- { label: 'Click', value: 'click' }
154
- ]
155
- },
156
- {
157
- name: 'splitDelay',
158
- type: 'number',
159
- label: 'Character Delay (seconds)',
160
- defaultValue: 0.05,
161
- admin: {
162
- step: 0.01
163
- }
164
- },
165
- {
166
- name: 'splitDuration',
167
- type: 'number',
168
- label: 'Animation Duration (seconds)',
169
- defaultValue: 0.6,
170
- admin: {
171
- step: 0.1
172
- }
173
- },
174
- {
175
- name: 'splitEase',
176
- type: 'text',
177
- label: 'Animation Ease',
178
- defaultValue: 'back.out(1.7)',
179
- admin: {
180
- description: 'GSAP ease string (e.g., "power2.out", "elastic.out(1, 0.3)")'
181
- }
182
- },
183
- {
184
- name: 'splitYOffset',
185
- type: 'number',
186
- label: 'Y Offset (pixels)',
187
- defaultValue: 80
188
- },
189
- {
190
- name: 'splitOpacity',
191
- type: 'checkbox',
192
- label: 'Animate Opacity',
193
- defaultValue: true
194
- }
195
- ]
196
- },
197
- // Text Type variant fields
198
- {
199
- admin: {
200
- initCollapsed: true,
201
- condition: (data, siblingData) => siblingData.variation === 'text-type'
202
- },
203
- type: 'collapsible',
204
- label: 'Text Type Settings',
205
- fields: [
206
- {
207
- name: 'typeSpeed',
208
- type: 'number',
209
- label: 'Typing Speed (ms)',
210
- defaultValue: 100
211
- },
212
- {
213
- name: 'typeDelay',
214
- type: 'number',
215
- label: 'Start Delay (ms)',
216
- defaultValue: 0
217
- },
218
- {
219
- name: 'showCursor',
220
- type: 'checkbox',
221
- label: 'Show Cursor',
222
- defaultValue: true
223
- },
224
- {
225
- name: 'cursorChar',
226
- type: 'text',
227
- label: 'Cursor Character',
228
- defaultValue: '|'
229
- },
230
- {
231
- name: 'autoStart',
232
- type: 'checkbox',
233
- label: 'Auto Start',
234
- defaultValue: true,
235
- admin: {
236
- description: 'Start typing automatically when component mounts'
237
- }
238
- }
239
- ]
240
- },
241
- // Shuffle Text variant fields
242
- {
243
- admin: {
244
- initCollapsed: true,
245
- condition: (data, siblingData) => siblingData.variation === 'shuffle-text'
246
- },
247
- type: 'collapsible',
248
- label: 'Shuffle Text Settings',
249
- fields: [
250
- {
251
- name: 'shuffleDuration',
252
- type: 'number',
253
- label: 'Shuffle Duration (seconds)',
254
- defaultValue: 0.8,
255
- admin: {
256
- step: 0.1,
257
- description: 'Duration of the shuffle animation'
258
- }
259
- }
260
- ]
261
- },
262
- // Shiny Text variant fields
263
- {
264
- admin: {
265
- condition: (data, siblingData) => siblingData.variation === 'shiny-text'
266
- },
267
- type: 'row',
268
- fields: [
269
- {
270
- name: 'shinyDuration',
271
- type: 'number',
272
- label: 'Animation Speed (seconds)',
273
- defaultValue: 5,
274
- admin: {
275
- width: '50%',
276
- step: 0.5,
277
- description: 'Speed of the shine animation (higher = slower)'
278
- }
279
- },
280
- {
281
- name: 'shinyColor',
282
- type: 'text',
283
- label: 'Shine Color (hex or rgba)',
284
- defaultValue: 'rgba(255, 255, 255, 0.6)',
285
- admin: {
286
- width: '50%',
287
- description: 'CSS color for the shine effect (e.g., #ffffff, rgba(255, 255, 255, 0.6))'
288
- }
289
- }
290
- ]
291
- }
292
- ]
293
- }
294
-
295
- export default DDAnimText
1
+ import type { Block } from 'payload'
2
+
3
+ import { defaultLexical } from '@/fields/defaultLexical'
4
+
5
+ export const DDAnimText: Block = {
6
+ slug: 'DD-AnimText',
7
+ interfaceName: 'DDAnimText',
8
+ labels: {
9
+ singular: 'Animated Text',
10
+ plural: 'Animated Texts',
11
+ },
12
+ fields: [
13
+ {
14
+ name: 'animTextScrollSpeed',
15
+ type: 'text',
16
+ hidden: true,
17
+ label: 'Scroll Data Speed',
18
+ defaultValue: '0.2',
19
+ admin: {
20
+ description: 'Default value 0.2',
21
+ },
22
+ },
23
+ // Custom class for textbox container - not working - not required
24
+ {
25
+ admin: {
26
+ initCollapsed: true,
27
+ hidden: true,
28
+ className: 'custom-css-class',
29
+ condition: (data) =>
30
+ data.variation === 'text-fade-up' ||
31
+ data.variation === 'text-fade-down' ||
32
+ data.variation === 'blur-in',
33
+ },
34
+ type: 'collapsible',
35
+ label: 'Container Classes (RichText Variations)',
36
+ fields: [
37
+ {
38
+ name: 'aniTextBoxContainerClass',
39
+ type: 'text',
40
+ hidden: false,
41
+ label: 'Animated Text Container Class',
42
+ },
43
+ {
44
+ name: 'aniTextBoxClass',
45
+ type: 'text',
46
+ hidden: false,
47
+ label: 'Animated Text Box Class',
48
+ admin: {
49
+ description: 'Add additional class to the animated richText box.',
50
+ },
51
+ },
52
+ ],
53
+ },
54
+ // Custom class for all variations
55
+ {
56
+ admin: {
57
+ initCollapsed: true,
58
+ className: 'custom-css-class',
59
+ },
60
+ type: 'collapsible',
61
+ label: 'Text Classes (All Variations)',
62
+ fields: [
63
+ {
64
+ name: 'aniTextClass',
65
+ type: 'text',
66
+ label: false,
67
+ admin: {
68
+ description:
69
+ 'Add an additional class to the animated text. This can be used to style the text or apply additional animations.',
70
+ },
71
+ },
72
+ ],
73
+ },
74
+ {
75
+ name: 'animatedText',
76
+ type: 'richText',
77
+ label: 'Text Content',
78
+ editor: defaultLexical,
79
+ admin: {
80
+ condition: (data, siblingData) =>
81
+ siblingData.variation === 'text-fade-up' ||
82
+ siblingData.variation === 'text-fade-down' ||
83
+ siblingData.variation === 'blur-in' ||
84
+ siblingData.variation === 'no-animation',
85
+ description:
86
+ 'Add the text that will be animated. This will be used for text fade and blur effects.',
87
+ },
88
+ },
89
+
90
+ {
91
+ name: 'plainText',
92
+ type: 'text',
93
+ label: 'Content',
94
+ admin: {
95
+ condition: (data, siblingData) =>
96
+ siblingData.variation !== 'text-fade-up' &&
97
+ siblingData.variation !== 'text-fade-down' &&
98
+ siblingData.variation !== 'blur-in',
99
+ description: 'The text content that will be animated.',
100
+ },
101
+ },
102
+ {
103
+ name: 'rotateWords',
104
+ type: 'text',
105
+ label: 'Rotating Words or Letters',
106
+ admin: {
107
+ condition: (data, siblingData) => siblingData.variation === 'rotate',
108
+ description: 'Comma-separated words to rotate through.',
109
+ },
110
+ },
111
+ {
112
+ name: 'variation',
113
+ type: 'select',
114
+ label: 'Animation Type',
115
+ defaultValue: 'text-fade-up',
116
+ options: [
117
+ { label: 'No Animation', value: 'no-animation' },
118
+ { label: 'Split Text', value: 'split-text' },
119
+ { label: 'Text Type', value: 'text-type' },
120
+ { label: 'Shuffle Text', value: 'shuffle-text' },
121
+ { label: 'Shiny Text', value: 'shiny-text' },
122
+ { label: 'Gradual Spacing', value: 'gradual-spacing' },
123
+ { label: 'Typing Effect', value: 'typing' },
124
+ { label: 'Staggered Fade', value: 'staggered-fade' },
125
+ { label: 'Rotate Words', value: 'rotate' },
126
+ { label: 'Letters Pull Up', value: 'letters-pull-up' },
127
+ { label: 'Words Pull Up', value: 'words-pull-up' },
128
+ { label: 'Blur In', value: 'blur-in' },
129
+ { label: 'Text Fade Up', value: 'text-fade-up' },
130
+ { label: 'Text Fade Down', value: 'text-fade-down' },
131
+ ],
132
+
133
+ admin: {
134
+ description: 'Select the animation style for this text.',
135
+ },
136
+ },
137
+ // Split Text variant fields
138
+ {
139
+ admin: {
140
+ initCollapsed: true,
141
+ condition: (data, siblingData) => siblingData.variation === 'split-text',
142
+ },
143
+ type: 'collapsible',
144
+ label: 'Split Text Settings',
145
+ fields: [
146
+ {
147
+ name: 'splitTrigger',
148
+ type: 'select',
149
+ label: 'Animation Trigger',
150
+ defaultValue: 'view',
151
+ options: [
152
+ { label: 'In View', value: 'view' },
153
+ { label: 'Hover', value: 'hover' },
154
+ { label: 'Click', value: 'click' },
155
+ ],
156
+ },
157
+ {
158
+ name: 'splitDelay',
159
+ type: 'number',
160
+ label: 'Character Delay (seconds)',
161
+ defaultValue: 0.05,
162
+ admin: {
163
+ step: 0.01,
164
+ },
165
+ },
166
+ {
167
+ name: 'splitDuration',
168
+ type: 'number',
169
+ label: 'Animation Duration (seconds)',
170
+ defaultValue: 0.6,
171
+ admin: {
172
+ step: 0.1,
173
+ },
174
+ },
175
+ {
176
+ name: 'splitEase',
177
+ type: 'text',
178
+ label: 'Animation Ease',
179
+ defaultValue: 'back.out(1.7)',
180
+ admin: {
181
+ description: 'GSAP ease string (e.g., "power2.out", "elastic.out(1, 0.3)")',
182
+ },
183
+ },
184
+ {
185
+ name: 'splitYOffset',
186
+ type: 'number',
187
+ label: 'Y Offset (pixels)',
188
+ defaultValue: 80,
189
+ },
190
+ {
191
+ name: 'splitOpacity',
192
+ type: 'checkbox',
193
+ label: 'Animate Opacity',
194
+ defaultValue: true,
195
+ },
196
+ ],
197
+ },
198
+ // Text Type variant fields
199
+ {
200
+ admin: {
201
+ initCollapsed: true,
202
+ condition: (data, siblingData) => siblingData.variation === 'text-type',
203
+ },
204
+ type: 'collapsible',
205
+ label: 'Text Type Settings',
206
+ fields: [
207
+ {
208
+ name: 'typeSpeed',
209
+ type: 'number',
210
+ label: 'Typing Speed (ms)',
211
+ defaultValue: 100,
212
+ },
213
+ {
214
+ name: 'typeDelay',
215
+ type: 'number',
216
+ label: 'Start Delay (ms)',
217
+ defaultValue: 0,
218
+ },
219
+ {
220
+ name: 'showCursor',
221
+ type: 'checkbox',
222
+ label: 'Show Cursor',
223
+ defaultValue: true,
224
+ },
225
+ {
226
+ name: 'cursorChar',
227
+ type: 'text',
228
+ label: 'Cursor Character',
229
+ defaultValue: '|',
230
+ },
231
+ {
232
+ name: 'autoStart',
233
+ type: 'checkbox',
234
+ label: 'Auto Start',
235
+ defaultValue: true,
236
+ admin: {
237
+ description: 'Start typing automatically when component mounts',
238
+ },
239
+ },
240
+ ],
241
+ },
242
+ // Shuffle Text variant fields
243
+ {
244
+ admin: {
245
+ initCollapsed: true,
246
+ condition: (data, siblingData) => siblingData.variation === 'shuffle-text',
247
+ },
248
+ type: 'collapsible',
249
+ label: 'Shuffle Text Settings',
250
+ fields: [
251
+ {
252
+ name: 'shuffleDuration',
253
+ type: 'number',
254
+ label: 'Shuffle Duration (seconds)',
255
+ defaultValue: 0.8,
256
+ admin: {
257
+ step: 0.1,
258
+ description: 'Duration of the shuffle animation',
259
+ },
260
+ },
261
+ ],
262
+ },
263
+ // Shiny Text variant fields
264
+ {
265
+ admin: {
266
+ condition: (data, siblingData) => siblingData.variation === 'shiny-text',
267
+ },
268
+ type: 'row',
269
+ fields: [
270
+ {
271
+ name: 'shinyDuration',
272
+ type: 'number',
273
+ label: 'Animation Speed (seconds)',
274
+ defaultValue: 5,
275
+ admin: {
276
+ width: '50%',
277
+ step: 0.5,
278
+ description: 'Speed of the shine animation (higher = slower)',
279
+ },
280
+ },
281
+ {
282
+ name: 'shinyColor',
283
+ type: 'text',
284
+ label: 'Shine Color (hex or rgba)',
285
+ defaultValue: 'rgba(255, 255, 255, 0.6)',
286
+ admin: {
287
+ width: '50%',
288
+ description: 'CSS color for the shine effect (e.g., #ffffff, rgba(255, 255, 255, 0.6))',
289
+ },
290
+ },
291
+ ],
292
+ },
293
+ ],
294
+ }
295
+
296
+ export default DDAnimText