@woodylab/payload 0.0.21 → 0.0.23

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 (56) hide show
  1. package/dist/acl/hasRoles.d.ts +8 -0
  2. package/dist/acl/index.cjs.js +8 -0
  3. package/dist/acl/index.cjs.js.map +1 -0
  4. package/dist/acl/index.d.ts +1 -0
  5. package/dist/acl/index.esm.js +2 -0
  6. package/dist/acl/index.esm.js.map +1 -0
  7. package/dist/config/globals/configFooter.d.ts +1 -1
  8. package/dist/config/globals/configHeader.d.ts +1 -1
  9. package/dist/config/index.cjs.js +3 -2
  10. package/dist/config/index.cjs.js.map +1 -1
  11. package/dist/config/index.esm.js +3 -2
  12. package/dist/config/index.esm.js.map +1 -1
  13. package/dist/{fieldRoles-C_8MuKLB.js → fieldRoles-CaefV-B7.js} +4 -645
  14. package/dist/fieldRoles-CaefV-B7.js.map +1 -0
  15. package/dist/{fieldRoles-ByWB8j1Q.js → fieldRoles-Du7heS1j.js} +6 -649
  16. package/dist/fieldRoles-Du7heS1j.js.map +1 -0
  17. package/dist/fields/index.cjs.js +3 -2
  18. package/dist/fields/index.cjs.js.map +1 -1
  19. package/dist/fields/index.esm.js +3 -2
  20. package/dist/fields/index.esm.js.map +1 -1
  21. package/dist/generateCssVars.d.ts +11 -0
  22. package/dist/generatePreviewPath.d.ts +3 -3
  23. package/dist/getButtonClasses.d.ts +31 -0
  24. package/dist/getClassName.d.ts +2 -0
  25. package/dist/getInlineStyles.d.ts +3 -0
  26. package/dist/hexToRgb.d.ts +6 -0
  27. package/dist/{index-DhejC-CC.js → index-1AtZK_IA.js} +4 -3
  28. package/dist/{index-zJMnbEc6.js.map → index-1AtZK_IA.js.map} +1 -1
  29. package/dist/{index-Dw4k6r1v.js → index-3pvlc6rV.js} +20 -10
  30. package/dist/index-3pvlc6rV.js.map +1 -0
  31. package/dist/index-5EL7OntE.js +645 -0
  32. package/dist/index-5EL7OntE.js.map +1 -0
  33. package/dist/{index-B4kXolv9.js → index-BAwCvuam.js} +21 -9
  34. package/dist/index-BAwCvuam.js.map +1 -0
  35. package/dist/index-BYL-buJk.js +26 -0
  36. package/dist/index-BYL-buJk.js.map +1 -0
  37. package/dist/index-CKYq103o.js +23 -0
  38. package/dist/index-CKYq103o.js.map +1 -0
  39. package/dist/{index-zJMnbEc6.js → index-CVfvkQ4R.js} +3 -2
  40. package/dist/{index-DhejC-CC.js.map → index-CVfvkQ4R.js.map} +1 -1
  41. package/dist/index-DgYntBlB.js +675 -0
  42. package/dist/index-DgYntBlB.js.map +1 -0
  43. package/dist/index.cjs.js +284 -4
  44. package/dist/index.cjs.js.map +1 -1
  45. package/dist/index.d.ts +9 -0
  46. package/dist/index.esm.js +278 -3
  47. package/dist/index.esm.js.map +1 -1
  48. package/dist/tailwind/index.cjs.js +35 -0
  49. package/dist/tailwind/index.cjs.js.map +1 -0
  50. package/dist/tailwind/index.esm.js +2 -0
  51. package/dist/tailwind/index.esm.js.map +1 -0
  52. package/package.json +3 -1
  53. package/dist/fieldRoles-ByWB8j1Q.js.map +0 -1
  54. package/dist/fieldRoles-C_8MuKLB.js.map +0 -1
  55. package/dist/index-B4kXolv9.js.map +0 -1
  56. package/dist/index-Dw4k6r1v.js.map +0 -1
package/dist/index.esm.js CHANGED
@@ -1,4 +1,279 @@
1
- export { i as Fields } from './index-zJMnbEc6.js';
2
- export { i as Config } from './index-Dw4k6r1v.js';
3
- export { i as Tailwind } from './fieldRoles-C_8MuKLB.js';
1
+ export { i as Fields } from './index-CVfvkQ4R.js';
2
+ export { i as Config, g as generatePreviewPath, G as googleFonts } from './index-3pvlc6rV.js';
3
+ export { i as Tailwind } from './index-5EL7OntE.js';
4
+ export { i as ACL } from './index-CKYq103o.js';
5
+ export { i as iconsList } from './fieldRoles-CaefV-B7.js';
6
+
7
+ const hexToRgb = (hex) => {
8
+ // Rimuove il simbolo `#` se presente
9
+ const cleanedHex = hex.replace(/^#/, '');
10
+ // Controlla che il colore sia valido (3 o 6 caratteri)
11
+ if (!/^([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$/.test(cleanedHex)) {
12
+ throw new Error(`Colore HEX non valido: ${hex}`);
13
+ }
14
+ // In caso di formato corto (es. "FFF"), lo converte in formato lungo (es. "FFFFFF")
15
+ const expandedHex = cleanedHex.length === 3
16
+ ? cleanedHex
17
+ .split('')
18
+ .map(char => char + char)
19
+ .join('')
20
+ : cleanedHex;
21
+ // Converte il valore HEX in decimali per R, G e B
22
+ const r = parseInt(expandedHex.slice(0, 2), 16);
23
+ const g = parseInt(expandedHex.slice(2, 4), 16);
24
+ const b = parseInt(expandedHex.slice(4, 6), 16);
25
+ return { r, g, b };
26
+ };
27
+
28
+ function generateCssVars(settings) {
29
+ // Gestione robusta dei font
30
+ const fontWeights = [300, 400, 500, 600, 700, 800];
31
+ const fontsToImport = [settings.headingFont, settings.textFont]
32
+ .filter(Boolean)
33
+ .map(f => {
34
+ if (!f)
35
+ return '';
36
+ // Aggiungiamo il parametro wght per specificare i pesi da caricare
37
+ return `@import url('https://fonts.googleapis.com/css2?family=${f.replace(/ /g, "+")}:wght@${fontWeights.join(';')}&display=swap');`;
38
+ })
39
+ .join("\n");
40
+ const generateOpacityVariants = (color, name) => {
41
+ if (!color) {
42
+ return '';
43
+ }
44
+ try {
45
+ const rgbValue = hexToRgb(color);
46
+ if (!rgbValue || typeof rgbValue.r !== 'number' ||
47
+ typeof rgbValue.g !== 'number' ||
48
+ typeof rgbValue.b !== 'number') {
49
+ console.warn(`Impossibile convertire il colore ${name}: ${color}`);
50
+ return '';
51
+ }
52
+ const { r, g, b } = rgbValue;
53
+ const opacityVars = Array.from({ length: 9 }, (_, i) => {
54
+ const opacity = (i + 1) * 10;
55
+ return `--color-${name}-${opacity}: rgba(${r}, ${g}, ${b}, ${opacity / 100});`;
56
+ }).join("\n");
57
+ return `
58
+ --color-${name}: rgb(${r}, ${g}, ${b}); /* Default (opacità 1) */
59
+ ${opacityVars}
60
+ `;
61
+ }
62
+ catch (error) {
63
+ console.warn(`Errore nella generazione delle varianti di opacità per ${name}: ${error}`);
64
+ return '';
65
+ }
66
+ };
67
+ // Genera variabili solo per i colori forniti
68
+ const primaryVars = generateOpacityVariants(settings.primaryColor, "primary");
69
+ const secondaryVars = generateOpacityVariants(settings.secondaryColor, "secondary");
70
+ const accentVars = generateOpacityVariants(settings.accentColor, "accent");
71
+ const darkVars = generateOpacityVariants(settings.darkColor, "dark");
72
+ const lightVars = generateOpacityVariants(settings.lightColor, "light");
73
+ // Genera i valori dei font in modo sicuro
74
+ const headingFontValue = settings.headingFont
75
+ ? `'${settings.headingFont}', sans-serif`
76
+ : 'system-layout, sans-serif';
77
+ const textFontValue = settings.textFont
78
+ ? `'${settings.textFont}', sans-serif`
79
+ : 'system-layout, sans-serif';
80
+ return `
81
+ ${fontsToImport}
82
+
83
+ :root {
84
+ --font-heading: ${headingFontValue};
85
+ --font-text: ${textFontValue};
86
+ --color-white: #ffffff;
87
+ --color-black: #000000;
88
+ --color-foreground: ${settings.foregroundColor || '#FFFFFF'};
89
+ ${primaryVars}
90
+ ${secondaryVars}
91
+ ${accentVars}
92
+ ${darkVars}
93
+ ${lightVars}
94
+ }
95
+ `;
96
+ }
97
+
98
+ function getButtonClasses(config) {
99
+ const { buttonStyle = 'solid', buttonColor = 'primary', buttonSize = 'default', buttonRounded = 'default', iconPosition = 'left', textColor, // Aggiungiamo il colore del testo
100
+ additionalEffects = [], } = config;
101
+ const classes = [
102
+ 'inline-flex',
103
+ 'items-center',
104
+ 'justify-center',
105
+ 'font-medium',
106
+ 'focus:outline-none',
107
+ 'focus-visible:ring-2',
108
+ 'focus-visible:ring-offset-2',
109
+ ];
110
+ // Stile base
111
+ switch (buttonStyle) {
112
+ case 'solid':
113
+ classes.push(`bg-${buttonColor}`);
114
+ // Usa textColor se specificato, altrimenti usa il colore predefinito basato sul buttonColor
115
+ if (textColor) {
116
+ classes.push(`text-${textColor}`);
117
+ }
118
+ else {
119
+ classes.push(buttonColor === 'light' ? 'text-dark' : 'text-white');
120
+ }
121
+ classes.push(`hover:bg-${buttonColor}/90`);
122
+ break;
123
+ case 'outline':
124
+ classes.push(`border`);
125
+ classes.push(`border-${buttonColor}`);
126
+ // Usa textColor se specificato, altrimenti usa il colore del bottone
127
+ if (textColor) {
128
+ classes.push(`text-${textColor}`);
129
+ // Mantieni lo stesso colore di testo per l'hover, a meno che non sia specificato diversamente
130
+ classes.push(`hover:text-${textColor}`);
131
+ }
132
+ else {
133
+ classes.push(`text-${buttonColor}`);
134
+ classes.push(`hover:text-${buttonColor === 'light' ? 'dark' : 'white'}`);
135
+ }
136
+ classes.push(`hover:bg-${buttonColor}`);
137
+ break;
138
+ case 'ghost':
139
+ // Usa textColor se specificato, altrimenti usa il colore del bottone
140
+ if (textColor) {
141
+ classes.push(`text-${textColor}`);
142
+ }
143
+ else {
144
+ classes.push(`text-${buttonColor}`);
145
+ }
146
+ classes.push(`hover:bg-${buttonColor}/10`);
147
+ break;
148
+ case 'link':
149
+ // Usa textColor se specificato, altrimenti usa il colore del bottone
150
+ if (textColor) {
151
+ classes.push(`text-${textColor}`);
152
+ }
153
+ else {
154
+ classes.push(`text-${buttonColor}`);
155
+ }
156
+ classes.push('hover:underline');
157
+ break;
158
+ }
159
+ // Dimensione
160
+ switch (buttonSize) {
161
+ case 'small':
162
+ classes.push('text-xs px-2.5 py-1.5');
163
+ break;
164
+ case 'default':
165
+ classes.push('text-sm px-4 py-2');
166
+ break;
167
+ case 'medium':
168
+ classes.push('text-base px-5 py-2.5');
169
+ break;
170
+ case 'large':
171
+ classes.push('text-lg px-6 py-3');
172
+ break;
173
+ case 'xl':
174
+ classes.push('text-xl px-8 py-4');
175
+ break;
176
+ }
177
+ // Se è solo icona, aggiusta il padding per renderlo quadrato/rotondo
178
+ if (config.useIcon && iconPosition === 'only') {
179
+ classes.push('p-0');
180
+ switch (buttonSize) {
181
+ case 'small':
182
+ classes.push('w-7 h-7');
183
+ break;
184
+ case 'default':
185
+ classes.push('w-9 h-9');
186
+ break;
187
+ case 'medium':
188
+ classes.push('w-10 h-10');
189
+ break;
190
+ case 'large':
191
+ classes.push('w-12 h-12');
192
+ break;
193
+ case 'xl':
194
+ classes.push('w-14 h-14');
195
+ break;
196
+ }
197
+ }
198
+ // Arrotondamento
199
+ switch (buttonRounded) {
200
+ case 'none':
201
+ classes.push('rounded-none');
202
+ break;
203
+ case 'sm':
204
+ classes.push('rounded-sm');
205
+ break;
206
+ case 'default':
207
+ classes.push('rounded');
208
+ break;
209
+ case 'lg':
210
+ classes.push('rounded-lg');
211
+ break;
212
+ case 'full':
213
+ classes.push('rounded-full');
214
+ break;
215
+ }
216
+ // Effetti aggiuntivi
217
+ if (additionalEffects) {
218
+ if (additionalEffects.includes('shadow')) {
219
+ classes.push('shadow-md hover:shadow-lg');
220
+ }
221
+ if (additionalEffects.includes('transition')) {
222
+ classes.push('transition-all duration-200');
223
+ }
224
+ if (additionalEffects.includes('scale')) {
225
+ classes.push('transform hover:scale-105');
226
+ }
227
+ }
228
+ // Aggiungi la classe focus-ring per il colore appropriato
229
+ classes.push(`focus-visible:ring-${buttonColor}/50`);
230
+ return classes.join(' ');
231
+ }
232
+
233
+ function getClassName(config) {
234
+ // Mantieni tutte le altre classi Tailwind, ma ometti quelle di colore di sfondo
235
+ const classList = [];
236
+ // Gestione campi compositi
237
+ ['p', 'm'].forEach((field) => {
238
+ if (config[field]?.className) {
239
+ classList.push(config[field].className);
240
+ }
241
+ });
242
+ // Gestione campi diretti
243
+ ['fs', 'h', 'container'].forEach((field) => {
244
+ if (config[field]) {
245
+ classList.push(config[field]);
246
+ }
247
+ });
248
+ // Altre classi che non sono colori dinamici
249
+ if (config.bgi && config.bgi.url) {
250
+ classList.push('bg-no-repeat bg-cover');
251
+ }
252
+ if (config.boxShadow) {
253
+ classList.push(config.boxShadow);
254
+ }
255
+ if (config.borderRadius) {
256
+ classList.push(config.borderRadius);
257
+ }
258
+ return classList.join(' ');
259
+ }
260
+
261
+ function getInlineStyles(config) {
262
+ const styles = {};
263
+ // Gestisci il background color con stile inline
264
+ if (config.bgc) {
265
+ styles.backgroundColor = config.bgc;
266
+ }
267
+ // Gestione background image
268
+ if (config.bgi && config.bgi.url) {
269
+ styles.backgroundImage = `url("${config.bgi.url}")`;
270
+ // Gestione focal point
271
+ if (typeof config.bgi.focalX === 'number' && typeof config.bgi.focalY === 'number') {
272
+ styles.backgroundPosition = `${config.bgi.focalX}% ${config.bgi.focalY}%`;
273
+ }
274
+ }
275
+ return styles;
276
+ }
277
+
278
+ export { generateCssVars, getButtonClasses, getClassName, getInlineStyles, hexToRgb };
4
279
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/hexToRgb.ts","../src/generateCssVars.ts","../src/getButtonClasses.ts","../src/getClassName.ts","../src/getInlineStyles.ts"],"sourcesContent":["const hexToRgb = (hex: string): { r: number; g: number; b: number } => {\n // Rimuove il simbolo `#` se presente\n const cleanedHex = hex.replace(/^#/, '');\n\n // Controlla che il colore sia valido (3 o 6 caratteri)\n if (!/^([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$/.test(cleanedHex)) {\n throw new Error(`Colore HEX non valido: ${hex}`);\n }\n\n // In caso di formato corto (es. \"FFF\"), lo converte in formato lungo (es. \"FFFFFF\")\n const expandedHex =\n cleanedHex.length === 3\n ? cleanedHex\n .split('')\n .map(char => char + char)\n .join('')\n : cleanedHex;\n\n // Converte il valore HEX in decimali per R, G e B\n const r = parseInt(expandedHex.slice(0, 2), 16);\n const g = parseInt(expandedHex.slice(2, 4), 16);\n const b = parseInt(expandedHex.slice(4, 6), 16);\n\n return { r, g, b };\n};\n\nexport default hexToRgb;","import hexToRgb from \"./hexToRgb\";\n\nfunction generateCssVars(settings: {\n headingFont?: string;\n textFont?: string;\n foregroundColor?: string;\n primaryColor?: string;\n secondaryColor?: string;\n accentColor?: string;\n darkColor?: string;\n lightColor?: string;\n}): string {\n // Gestione robusta dei font\n const fontWeights = [300, 400, 500, 600, 700, 800];\n\n const fontsToImport = [settings.headingFont, settings.textFont]\n .filter(Boolean)\n .map(f => {\n if (!f) return '';\n // Aggiungiamo il parametro wght per specificare i pesi da caricare\n return `@import url('https://fonts.googleapis.com/css2?family=${f.replace(\n / /g,\n \"+\"\n )}:wght@${fontWeights.join(';')}&display=swap');`\n })\n .join(\"\\n\");\n\n\n const generateOpacityVariants = (color: string | undefined, name: string): string => {\n if (!color) {\n return '';\n }\n\n try {\n const rgbValue = hexToRgb(color);\n\n if (!rgbValue || typeof rgbValue.r !== 'number' ||\n typeof rgbValue.g !== 'number' ||\n typeof rgbValue.b !== 'number') {\n console.warn(`Impossibile convertire il colore ${name}: ${color}`);\n return '';\n }\n\n const { r, g, b } = rgbValue;\n\n const opacityVars = Array.from({ length: 9 }, (_, i) => {\n const opacity = (i + 1) * 10;\n return `--color-${name}-${opacity}: rgba(${r}, ${g}, ${b}, ${opacity / 100});`;\n }).join(\"\\n\");\n\n return `\n --color-${name}: rgb(${r}, ${g}, ${b}); /* Default (opacità 1) */\n ${opacityVars}\n `;\n } catch (error) {\n console.warn(`Errore nella generazione delle varianti di opacità per ${name}: ${error}`);\n return '';\n }\n };\n\n // Genera variabili solo per i colori forniti\n const primaryVars = generateOpacityVariants(settings.primaryColor, \"primary\");\n const secondaryVars = generateOpacityVariants(settings.secondaryColor, \"secondary\");\n const accentVars = generateOpacityVariants(settings.accentColor, \"accent\");\n const darkVars = generateOpacityVariants(settings.darkColor, \"dark\");\n const lightVars = generateOpacityVariants(settings.lightColor, \"light\");\n\n // Genera i valori dei font in modo sicuro\n const headingFontValue = settings.headingFont\n ? `'${settings.headingFont}', sans-serif`\n : 'system-layout, sans-serif';\n\n const textFontValue = settings.textFont\n ? `'${settings.textFont}', sans-serif`\n : 'system-layout, sans-serif';\n\n return `\n ${fontsToImport}\n\n :root {\n --font-heading: ${headingFontValue};\n --font-text: ${textFontValue};\n --color-white: #ffffff;\n --color-black: #000000;\n --color-foreground: ${settings.foregroundColor || '#FFFFFF'};\n ${primaryVars}\n ${secondaryVars}\n ${accentVars}\n ${darkVars}\n ${lightVars}\n }\n `;\n}\n\nexport default generateCssVars;\n","export type ButtonConfig = {\n show: boolean\n buttonStyle?: 'solid' | 'outline' | 'ghost' | 'link'\n buttonColor?: 'primary' | 'secondary' | 'accent' | 'dark' | 'light'\n buttonSize?: 'small' | 'default' | 'medium' | 'large' | 'xl'\n buttonRounded?: 'none' | 'sm' | 'default' | 'lg' | 'full'\n useIcon?: boolean\n iconPosition?: 'left' | 'right' | 'only'\n iconName?: string\n iconVariant?: 'outline' | 'solid'\n alignment?: 'left' | 'center' | 'right'\n textColor?: 'primary' | 'secondary' | 'accent' | 'dark' | 'light' | 'white' | 'black'\n additionalEffects?: ('shadow' | 'transition' | 'scale')[]\n}\n\nexport type ActionConfig = ButtonConfig & {\n show?: boolean\n actionType?: 'internalLink' | 'externalLink' | 'customAction'\n internalLink?: {\n relationTo: string\n value: {\n slug: string\n id: string\n }\n }\n externalLink?: string\n customActionId?: string\n label?: string\n onClick?: () => void\n}\n\nfunction getButtonClasses(config: ActionConfig): string {\n const {\n buttonStyle = 'solid',\n buttonColor = 'primary',\n buttonSize = 'default',\n buttonRounded = 'default',\n iconPosition = 'left',\n textColor, // Aggiungiamo il colore del testo\n additionalEffects = [],\n } = config\n\n const classes: string[] = [\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'font-medium',\n 'focus:outline-none',\n 'focus-visible:ring-2',\n 'focus-visible:ring-offset-2',\n ]\n\n // Stile base\n switch (buttonStyle) {\n case 'solid':\n classes.push(`bg-${buttonColor}`)\n // Usa textColor se specificato, altrimenti usa il colore predefinito basato sul buttonColor\n if (textColor) {\n classes.push(`text-${textColor}`)\n } else {\n classes.push(buttonColor === 'light' ? 'text-dark' : 'text-white')\n }\n classes.push(`hover:bg-${buttonColor}/90`)\n break\n case 'outline':\n classes.push(`border`)\n classes.push(`border-${buttonColor}`)\n // Usa textColor se specificato, altrimenti usa il colore del bottone\n if (textColor) {\n classes.push(`text-${textColor}`)\n // Mantieni lo stesso colore di testo per l'hover, a meno che non sia specificato diversamente\n classes.push(`hover:text-${textColor}`)\n } else {\n classes.push(`text-${buttonColor}`)\n classes.push(`hover:text-${buttonColor === 'light' ? 'dark' : 'white'}`)\n }\n classes.push(`hover:bg-${buttonColor}`)\n break\n case 'ghost':\n // Usa textColor se specificato, altrimenti usa il colore del bottone\n if (textColor) {\n classes.push(`text-${textColor}`)\n } else {\n classes.push(`text-${buttonColor}`)\n }\n classes.push(`hover:bg-${buttonColor}/10`)\n break\n case 'link':\n // Usa textColor se specificato, altrimenti usa il colore del bottone\n if (textColor) {\n classes.push(`text-${textColor}`)\n } else {\n classes.push(`text-${buttonColor}`)\n }\n classes.push('hover:underline')\n break\n }\n\n // Dimensione\n switch (buttonSize) {\n case 'small':\n classes.push('text-xs px-2.5 py-1.5')\n break\n case 'default':\n classes.push('text-sm px-4 py-2')\n break\n case 'medium':\n classes.push('text-base px-5 py-2.5')\n break\n case 'large':\n classes.push('text-lg px-6 py-3')\n break\n case 'xl':\n classes.push('text-xl px-8 py-4')\n break\n }\n\n // Se è solo icona, aggiusta il padding per renderlo quadrato/rotondo\n if (config.useIcon && iconPosition === 'only') {\n classes.push('p-0')\n switch (buttonSize) {\n case 'small':\n classes.push('w-7 h-7')\n break\n case 'default':\n classes.push('w-9 h-9')\n break\n case 'medium':\n classes.push('w-10 h-10')\n break\n case 'large':\n classes.push('w-12 h-12')\n break\n case 'xl':\n classes.push('w-14 h-14')\n break\n }\n }\n\n // Arrotondamento\n switch (buttonRounded) {\n case 'none':\n classes.push('rounded-none')\n break\n case 'sm':\n classes.push('rounded-sm')\n break\n case 'default':\n classes.push('rounded')\n break\n case 'lg':\n classes.push('rounded-lg')\n break\n case 'full':\n classes.push('rounded-full')\n break\n }\n\n // Effetti aggiuntivi\n if (additionalEffects) {\n if (additionalEffects.includes('shadow')) {\n classes.push('shadow-md hover:shadow-lg')\n }\n if (additionalEffects.includes('transition')) {\n classes.push('transition-all duration-200')\n }\n if (additionalEffects.includes('scale')) {\n classes.push('transform hover:scale-105')\n }\n }\n\n // Aggiungi la classe focus-ring per il colore appropriato\n classes.push(`focus-visible:ring-${buttonColor}/50`)\n\n return classes.join(' ')\n}\n\nexport default getButtonClasses\n","function getClassName(config: any): string {\n // Mantieni tutte le altre classi Tailwind, ma ometti quelle di colore di sfondo\n const classList: string[] = [];\n\n // Gestione campi compositi\n ['p', 'm'].forEach((field) => {\n if (config[field]?.className) {\n classList.push(config[field].className);\n }\n });\n\n // Gestione campi diretti\n ['fs', 'h', 'container'].forEach((field) => {\n if (config[field]) {\n classList.push(config[field]);\n }\n });\n\n // Altre classi che non sono colori dinamici\n if (config.bgi && config.bgi.url) {\n classList.push('bg-no-repeat bg-cover');\n }\n if (config.boxShadow) {\n classList.push(config.boxShadow);\n }\n if (config.borderRadius) {\n classList.push(config.borderRadius);\n }\n\n return classList.join(' ');\n}\nexport default getClassName;\n","import React from 'react'\n\nfunction getInlineStyles(config: any): React.CSSProperties {\n const styles: React.CSSProperties = {}\n\n // Gestisci il background color con stile inline\n if (config.bgc) {\n styles.backgroundColor = config.bgc\n }\n\n // Gestione background image\n if (config.bgi && config.bgi.url) {\n styles.backgroundImage = `url(\"${config.bgi.url}\")`\n\n // Gestione focal point\n if (typeof config.bgi.focalX === 'number' && typeof config.bgi.focalY === 'number') {\n styles.backgroundPosition = `${config.bgi.focalX}% ${config.bgi.focalY}%`\n }\n }\n\n return styles\n}\n\nexport default getInlineStyles\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var tailwind_index = require('../index-DgYntBlB.js');
4
+
5
+
6
+
7
+ exports.TailwindAllSafeList = tailwind_index.TailwindAllSafeList;
8
+ exports.TailwindColors = tailwind_index.TailwindColors;
9
+ exports.TailwindContainerWidths = tailwind_index.TailwindContainerWidths;
10
+ exports.TailwindDesktopGridColumns = tailwind_index.TailwindDesktopGridColumns;
11
+ exports.TailwindHeights = tailwind_index.TailwindHeights;
12
+ exports.TailwindMargins = tailwind_index.TailwindMargins;
13
+ exports.TailwindMargins_ALL = tailwind_index.TailwindMargins_ALL;
14
+ exports.TailwindMargins_B = tailwind_index.TailwindMargins_B;
15
+ exports.TailwindMargins_L = tailwind_index.TailwindMargins_L;
16
+ exports.TailwindMargins_R = tailwind_index.TailwindMargins_R;
17
+ exports.TailwindMargins_T = tailwind_index.TailwindMargins_T;
18
+ exports.TailwindMargins_X = tailwind_index.TailwindMargins_X;
19
+ exports.TailwindMargins_Y = tailwind_index.TailwindMargins_Y;
20
+ exports.TailwindMobileGridColumns = tailwind_index.TailwindMobileGridColumns;
21
+ exports.TailwindMultipliers = tailwind_index.TailwindMultipliers;
22
+ exports.TailwindPaddings = tailwind_index.TailwindPaddings;
23
+ exports.TailwindPaddings_ALL = tailwind_index.TailwindPaddings_ALL;
24
+ exports.TailwindPaddings_B = tailwind_index.TailwindPaddings_B;
25
+ exports.TailwindPaddings_L = tailwind_index.TailwindPaddings_L;
26
+ exports.TailwindPaddings_R = tailwind_index.TailwindPaddings_R;
27
+ exports.TailwindPaddings_T = tailwind_index.TailwindPaddings_T;
28
+ exports.TailwindPaddings_X = tailwind_index.TailwindPaddings_X;
29
+ exports.TailwindPaddings_Y = tailwind_index.TailwindPaddings_Y;
30
+ exports.TailwindTabletGridColumns = tailwind_index.TailwindTabletGridColumns;
31
+ exports.TailwindTextSizes = tailwind_index.TailwindTextSizes;
32
+ exports.TailwindViewportHeightMultipliers = tailwind_index.TailwindViewportHeightMultipliers;
33
+ exports.TailwindViewportHeights = tailwind_index.TailwindViewportHeights;
34
+ exports.TailwindWidths = tailwind_index.TailwindWidths;
35
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export { B as TailwindAllSafeList, x as TailwindColors, a as TailwindContainerWidths, y as TailwindDesktopGridColumns, b as TailwindHeights, d as TailwindMargins, l as TailwindMargins_ALL, k as TailwindMargins_B, j as TailwindMargins_L, h as TailwindMargins_R, g as TailwindMargins_T, e as TailwindMargins_X, f as TailwindMargins_Y, A as TailwindMobileGridColumns, m as TailwindMultipliers, o as TailwindPaddings, v as TailwindPaddings_ALL, t as TailwindPaddings_B, u as TailwindPaddings_L, s as TailwindPaddings_R, r as TailwindPaddings_T, p as TailwindPaddings_X, q as TailwindPaddings_Y, z as TailwindTabletGridColumns, T as TailwindTextSizes, n as TailwindViewportHeightMultipliers, c as TailwindViewportHeights, w as TailwindWidths } from '../index-5EL7OntE.js';
2
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@woodylab/payload",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.esm.js",
@@ -38,7 +38,9 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "@rollup/plugin-typescript": "^11.1.6",
41
+ "@types/react": "^19.1.13",
41
42
  "payload": "^3.54.0",
43
+ "react": "^19.1.1",
42
44
  "rollup": "^4.22.4",
43
45
  "tslib": "^2.8.1",
44
46
  "typescript": "^5.6.3"