@woodylab/payload 0.0.37 → 0.0.38
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/dist/acl/index.cjs.js +1 -7
- package/dist/acl/index.cjs.js.map +1 -1
- package/dist/acl/index.esm.js +1 -1
- package/dist/config/index.cjs.js +1 -22
- package/dist/config/index.cjs.js.map +1 -1
- package/dist/config/index.esm.js +1 -5
- package/dist/config/index.esm.js.map +1 -1
- package/dist/enums/index.cjs.js +1 -7
- package/dist/enums/index.cjs.js.map +1 -1
- package/dist/enums/index.esm.js +1 -1
- package/dist/fieldSectionTabs-B_rEttMP.js +2 -0
- package/dist/fieldSectionTabs-B_rEttMP.js.map +1 -0
- package/dist/fieldSectionTabs-DX18jPzj.js +2 -0
- package/dist/fieldSectionTabs-DX18jPzj.js.map +1 -0
- package/dist/fields/index.cjs.js +1 -41
- package/dist/fields/index.cjs.js.map +1 -1
- package/dist/fields/index.esm.js +1 -5
- package/dist/fields/index.esm.js.map +1 -1
- package/dist/getNumberValueFromClassNameString-Dm5eOjBJ.js +2 -0
- package/dist/getNumberValueFromClassNameString-Dm5eOjBJ.js.map +1 -0
- package/dist/getNumberValueFromClassNameString-pKKt97eg.js +2 -0
- package/dist/getNumberValueFromClassNameString-pKKt97eg.js.map +1 -0
- package/dist/hooks/index.cjs.js +1 -7
- package/dist/hooks/index.cjs.js.map +1 -1
- package/dist/hooks/index.esm.js +1 -1
- package/dist/index-0eQdIBGL.js +2 -0
- package/dist/index-0eQdIBGL.js.map +1 -0
- package/dist/index-BnQT4jju.js +2 -0
- package/dist/index-BnQT4jju.js.map +1 -0
- package/dist/index-C4uc5BOd.js +2 -0
- package/dist/index-C4uc5BOd.js.map +1 -0
- package/dist/index-CR0SwRmA.js +2 -0
- package/dist/index-CR0SwRmA.js.map +1 -0
- package/dist/index-CaTg4skG.js +2 -0
- package/dist/index-CaTg4skG.js.map +1 -0
- package/dist/index-D7075_q9.js +2 -0
- package/dist/index-D7075_q9.js.map +1 -0
- package/dist/index-Davj5NSB.js +2 -0
- package/dist/index-Davj5NSB.js.map +1 -0
- package/dist/index-KPE7ZNep.js +2 -0
- package/dist/index-KPE7ZNep.js.map +1 -0
- package/dist/index-XuRN7Bay.js +2 -0
- package/dist/index-XuRN7Bay.js.map +1 -0
- package/dist/index-gxytNJWT.js +2 -0
- package/dist/index-gxytNJWT.js.map +1 -0
- package/dist/index-kvH0sGti.js +2 -0
- package/dist/index-kvH0sGti.js.map +1 -0
- package/dist/index-qlyRswzw.js +2 -0
- package/dist/index-qlyRswzw.js.map +1 -0
- package/dist/index.cjs.js +1 -299
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -283
- package/dist/index.esm.js.map +1 -1
- package/dist/tailwind/index.cjs.js +1 -34
- package/dist/tailwind/index.cjs.js.map +1 -1
- package/dist/tailwind/index.esm.js +1 -1
- package/dist/types/index.cjs.js +1 -7
- package/dist/types/index.cjs.js.map +1 -1
- package/dist/types/index.esm.js +1 -5
- package/dist/types/index.esm.js.map +1 -1
- package/dist/userRoles-BIrmWoCJ.js +2 -0
- package/dist/userRoles-BIrmWoCJ.js.map +1 -0
- package/dist/userRoles-Dd_gfx51.js +2 -0
- package/dist/userRoles-Dd_gfx51.js.map +1 -0
- package/package.json +2 -1
- package/dist/fieldSectionTabs-B2XLxdEW.js +0 -919
- package/dist/fieldSectionTabs-B2XLxdEW.js.map +0 -1
- package/dist/fieldSectionTabs-ns8gLfPr.js +0 -942
- package/dist/fieldSectionTabs-ns8gLfPr.js.map +0 -1
- package/dist/getNumberValueFromClassNameString-D4OqkHPA.js +0 -20
- package/dist/getNumberValueFromClassNameString-D4OqkHPA.js.map +0 -1
- package/dist/getNumberValueFromClassNameString-DyZ9P1fd.js +0 -18
- package/dist/getNumberValueFromClassNameString-DyZ9P1fd.js.map +0 -1
- package/dist/index-1Y54jG4C.js +0 -2244
- package/dist/index-1Y54jG4C.js.map +0 -1
- package/dist/index-5EL7OntE.js +0 -645
- package/dist/index-5EL7OntE.js.map +0 -1
- package/dist/index-B5jmz5OR.js +0 -163
- package/dist/index-B5jmz5OR.js.map +0 -1
- package/dist/index-BD7Mx4u9.js +0 -11
- package/dist/index-BD7Mx4u9.js.map +0 -1
- package/dist/index-Bj0auLnA.js +0 -24
- package/dist/index-Bj0auLnA.js.map +0 -1
- package/dist/index-CKwysnVm.js +0 -9
- package/dist/index-CKwysnVm.js.map +0 -1
- package/dist/index-CWYRhz2T.js +0 -2260
- package/dist/index-CWYRhz2T.js.map +0 -1
- package/dist/index-Ces144rr.js +0 -21
- package/dist/index-Ces144rr.js.map +0 -1
- package/dist/index-DZuNTfoQ.js +0 -175
- package/dist/index-DZuNTfoQ.js.map +0 -1
- package/dist/index-DgYntBlB.js +0 -675
- package/dist/index-DgYntBlB.js.map +0 -1
- package/dist/index-I4vA8AmC.js +0 -9
- package/dist/index-I4vA8AmC.js.map +0 -1
- package/dist/index-JvE9Rtmr.js +0 -11
- package/dist/index-JvE9Rtmr.js.map +0 -1
- package/dist/userRoles-Da1JaIoF.js +0 -13
- package/dist/userRoles-Da1JaIoF.js.map +0 -1
- package/dist/userRoles-Dq3yqKLM.js +0 -11
- package/dist/userRoles-Dq3yqKLM.js.map +0 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1,300 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var fields_index = require('./index-DZuNTfoQ.js');
|
|
4
|
-
var config_index = require('./index-CWYRhz2T.js');
|
|
5
|
-
var tailwind_index = require('./index-DgYntBlB.js');
|
|
6
|
-
var acl_index = require('./index-Bj0auLnA.js');
|
|
7
|
-
var enums_index = require('./index-JvE9Rtmr.js');
|
|
8
|
-
var types_index = require('./types/index.cjs.js');
|
|
9
|
-
var hooks_index = require('./index-BD7Mx4u9.js');
|
|
10
|
-
var fieldSectionTabs = require('./fieldSectionTabs-ns8gLfPr.js');
|
|
11
|
-
require('./userRoles-Da1JaIoF.js');
|
|
12
|
-
require('./getNumberValueFromClassNameString-D4OqkHPA.js');
|
|
13
|
-
|
|
14
|
-
const hexToRgb = (hex) => {
|
|
15
|
-
// Rimuove il simbolo `#` se presente
|
|
16
|
-
const cleanedHex = hex.replace(/^#/, '');
|
|
17
|
-
// Controlla che il colore sia valido (3 o 6 caratteri)
|
|
18
|
-
if (!/^([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$/.test(cleanedHex)) {
|
|
19
|
-
throw new Error(`Colore HEX non valido: ${hex}`);
|
|
20
|
-
}
|
|
21
|
-
// In caso di formato corto (es. "FFF"), lo converte in formato lungo (es. "FFFFFF")
|
|
22
|
-
const expandedHex = cleanedHex.length === 3
|
|
23
|
-
? cleanedHex
|
|
24
|
-
.split('')
|
|
25
|
-
.map(char => char + char)
|
|
26
|
-
.join('')
|
|
27
|
-
: cleanedHex;
|
|
28
|
-
// Converte il valore HEX in decimali per R, G e B
|
|
29
|
-
const r = parseInt(expandedHex.slice(0, 2), 16);
|
|
30
|
-
const g = parseInt(expandedHex.slice(2, 4), 16);
|
|
31
|
-
const b = parseInt(expandedHex.slice(4, 6), 16);
|
|
32
|
-
return { r, g, b };
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
function generateCssVars(settings) {
|
|
36
|
-
// Gestione robusta dei font
|
|
37
|
-
const fontWeights = [300, 400, 500, 600, 700, 800];
|
|
38
|
-
const fontsToImport = [settings.headingFont, settings.textFont]
|
|
39
|
-
.filter(Boolean)
|
|
40
|
-
.map(f => {
|
|
41
|
-
if (!f)
|
|
42
|
-
return '';
|
|
43
|
-
// Aggiungiamo il parametro wght per specificare i pesi da caricare
|
|
44
|
-
return `@import url('https://fonts.googleapis.com/css2?family=${f.replace(/ /g, "+")}:wght@${fontWeights.join(';')}&display=swap');`;
|
|
45
|
-
})
|
|
46
|
-
.join("\n");
|
|
47
|
-
const generateOpacityVariants = (color, name) => {
|
|
48
|
-
if (!color) {
|
|
49
|
-
return '';
|
|
50
|
-
}
|
|
51
|
-
try {
|
|
52
|
-
const rgbValue = hexToRgb(color);
|
|
53
|
-
if (!rgbValue || typeof rgbValue.r !== 'number' ||
|
|
54
|
-
typeof rgbValue.g !== 'number' ||
|
|
55
|
-
typeof rgbValue.b !== 'number') {
|
|
56
|
-
console.warn(`Impossibile convertire il colore ${name}: ${color}`);
|
|
57
|
-
return '';
|
|
58
|
-
}
|
|
59
|
-
const { r, g, b } = rgbValue;
|
|
60
|
-
const opacityVars = Array.from({ length: 9 }, (_, i) => {
|
|
61
|
-
const opacity = (i + 1) * 10;
|
|
62
|
-
return `--color-${name}-${opacity}: rgba(${r}, ${g}, ${b}, ${opacity / 100});`;
|
|
63
|
-
}).join("\n");
|
|
64
|
-
return `
|
|
65
|
-
--color-${name}: rgb(${r}, ${g}, ${b}); /* Default (opacità 1) */
|
|
66
|
-
${opacityVars}
|
|
67
|
-
`;
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
console.warn(`Errore nella generazione delle varianti di opacità per ${name}: ${error}`);
|
|
71
|
-
return '';
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
// Genera variabili solo per i colori forniti
|
|
75
|
-
const primaryVars = generateOpacityVariants(settings.primaryColor, "primary");
|
|
76
|
-
const secondaryVars = generateOpacityVariants(settings.secondaryColor, "secondary");
|
|
77
|
-
const accentVars = generateOpacityVariants(settings.accentColor, "accent");
|
|
78
|
-
const darkVars = generateOpacityVariants(settings.darkColor, "dark");
|
|
79
|
-
const lightVars = generateOpacityVariants(settings.lightColor, "light");
|
|
80
|
-
// Genera i valori dei font in modo sicuro
|
|
81
|
-
const headingFontValue = settings.headingFont
|
|
82
|
-
? `'${settings.headingFont}', sans-serif`
|
|
83
|
-
: 'system-layout, sans-serif';
|
|
84
|
-
const textFontValue = settings.textFont
|
|
85
|
-
? `'${settings.textFont}', sans-serif`
|
|
86
|
-
: 'system-layout, sans-serif';
|
|
87
|
-
return `
|
|
88
|
-
${fontsToImport}
|
|
89
|
-
|
|
90
|
-
:root {
|
|
91
|
-
--font-heading: ${headingFontValue};
|
|
92
|
-
--font-text: ${textFontValue};
|
|
93
|
-
--color-white: #ffffff;
|
|
94
|
-
--color-black: #000000;
|
|
95
|
-
--color-foreground: ${settings.foregroundColor || '#FFFFFF'};
|
|
96
|
-
${primaryVars}
|
|
97
|
-
${secondaryVars}
|
|
98
|
-
${accentVars}
|
|
99
|
-
${darkVars}
|
|
100
|
-
${lightVars}
|
|
101
|
-
}
|
|
102
|
-
`;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
function getButtonClasses(config) {
|
|
106
|
-
const { buttonStyle = 'solid', buttonColor = 'primary', buttonSize = 'default', buttonRounded = 'default', iconPosition = 'left', textColor, // Aggiungiamo il colore del testo
|
|
107
|
-
additionalEffects = [], } = config;
|
|
108
|
-
const classes = [
|
|
109
|
-
'inline-flex',
|
|
110
|
-
'items-center',
|
|
111
|
-
'justify-center',
|
|
112
|
-
'font-medium',
|
|
113
|
-
'focus:outline-none',
|
|
114
|
-
'focus-visible:ring-2',
|
|
115
|
-
'focus-visible:ring-offset-2',
|
|
116
|
-
];
|
|
117
|
-
// Stile base
|
|
118
|
-
switch (buttonStyle) {
|
|
119
|
-
case 'solid':
|
|
120
|
-
classes.push(`bg-${buttonColor}`);
|
|
121
|
-
// Usa textColor se specificato, altrimenti usa il colore predefinito basato sul buttonColor
|
|
122
|
-
if (textColor) {
|
|
123
|
-
classes.push(`text-${textColor}`);
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
classes.push(buttonColor === 'light' ? 'text-dark' : 'text-white');
|
|
127
|
-
}
|
|
128
|
-
classes.push(`hover:bg-${buttonColor}/90`);
|
|
129
|
-
break;
|
|
130
|
-
case 'outline':
|
|
131
|
-
classes.push(`border`);
|
|
132
|
-
classes.push(`border-${buttonColor}`);
|
|
133
|
-
// Usa textColor se specificato, altrimenti usa il colore del bottone
|
|
134
|
-
if (textColor) {
|
|
135
|
-
classes.push(`text-${textColor}`);
|
|
136
|
-
// Mantieni lo stesso colore di testo per l'hover, a meno che non sia specificato diversamente
|
|
137
|
-
classes.push(`hover:text-${textColor}`);
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
classes.push(`text-${buttonColor}`);
|
|
141
|
-
classes.push(`hover:text-${buttonColor === 'light' ? 'dark' : 'white'}`);
|
|
142
|
-
}
|
|
143
|
-
classes.push(`hover:bg-${buttonColor}`);
|
|
144
|
-
break;
|
|
145
|
-
case 'ghost':
|
|
146
|
-
// Usa textColor se specificato, altrimenti usa il colore del bottone
|
|
147
|
-
if (textColor) {
|
|
148
|
-
classes.push(`text-${textColor}`);
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
classes.push(`text-${buttonColor}`);
|
|
152
|
-
}
|
|
153
|
-
classes.push(`hover:bg-${buttonColor}/10`);
|
|
154
|
-
break;
|
|
155
|
-
case 'link':
|
|
156
|
-
// Usa textColor se specificato, altrimenti usa il colore del bottone
|
|
157
|
-
if (textColor) {
|
|
158
|
-
classes.push(`text-${textColor}`);
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
classes.push(`text-${buttonColor}`);
|
|
162
|
-
}
|
|
163
|
-
classes.push('hover:underline');
|
|
164
|
-
break;
|
|
165
|
-
}
|
|
166
|
-
// Dimensione
|
|
167
|
-
switch (buttonSize) {
|
|
168
|
-
case 'small':
|
|
169
|
-
classes.push('text-xs px-2.5 py-1.5');
|
|
170
|
-
break;
|
|
171
|
-
case 'default':
|
|
172
|
-
classes.push('text-sm px-4 py-2');
|
|
173
|
-
break;
|
|
174
|
-
case 'medium':
|
|
175
|
-
classes.push('text-base px-5 py-2.5');
|
|
176
|
-
break;
|
|
177
|
-
case 'large':
|
|
178
|
-
classes.push('text-lg px-6 py-3');
|
|
179
|
-
break;
|
|
180
|
-
case 'xl':
|
|
181
|
-
classes.push('text-xl px-8 py-4');
|
|
182
|
-
break;
|
|
183
|
-
}
|
|
184
|
-
// Se è solo icona, aggiusta il padding per renderlo quadrato/rotondo
|
|
185
|
-
if (config.useIcon && iconPosition === 'only') {
|
|
186
|
-
classes.push('p-0');
|
|
187
|
-
switch (buttonSize) {
|
|
188
|
-
case 'small':
|
|
189
|
-
classes.push('w-7 h-7');
|
|
190
|
-
break;
|
|
191
|
-
case 'default':
|
|
192
|
-
classes.push('w-9 h-9');
|
|
193
|
-
break;
|
|
194
|
-
case 'medium':
|
|
195
|
-
classes.push('w-10 h-10');
|
|
196
|
-
break;
|
|
197
|
-
case 'large':
|
|
198
|
-
classes.push('w-12 h-12');
|
|
199
|
-
break;
|
|
200
|
-
case 'xl':
|
|
201
|
-
classes.push('w-14 h-14');
|
|
202
|
-
break;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
// Arrotondamento
|
|
206
|
-
switch (buttonRounded) {
|
|
207
|
-
case 'none':
|
|
208
|
-
classes.push('rounded-none');
|
|
209
|
-
break;
|
|
210
|
-
case 'sm':
|
|
211
|
-
classes.push('rounded-sm');
|
|
212
|
-
break;
|
|
213
|
-
case 'default':
|
|
214
|
-
classes.push('rounded');
|
|
215
|
-
break;
|
|
216
|
-
case 'lg':
|
|
217
|
-
classes.push('rounded-lg');
|
|
218
|
-
break;
|
|
219
|
-
case 'full':
|
|
220
|
-
classes.push('rounded-full');
|
|
221
|
-
break;
|
|
222
|
-
}
|
|
223
|
-
// Effetti aggiuntivi
|
|
224
|
-
if (additionalEffects) {
|
|
225
|
-
if (additionalEffects.includes('shadow')) {
|
|
226
|
-
classes.push('shadow-md hover:shadow-lg');
|
|
227
|
-
}
|
|
228
|
-
if (additionalEffects.includes('transition')) {
|
|
229
|
-
classes.push('transition-all duration-200');
|
|
230
|
-
}
|
|
231
|
-
if (additionalEffects.includes('scale')) {
|
|
232
|
-
classes.push('transform hover:scale-105');
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
// Aggiungi la classe focus-ring per il colore appropriato
|
|
236
|
-
classes.push(`focus-visible:ring-${buttonColor}/50`);
|
|
237
|
-
return classes.join(' ');
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
function getClassName(config) {
|
|
241
|
-
// Mantieni tutte le altre classi Tailwind, ma ometti quelle di colore di sfondo
|
|
242
|
-
const classList = [];
|
|
243
|
-
// Gestione campi compositi
|
|
244
|
-
['p', 'm'].forEach((field) => {
|
|
245
|
-
if (config[field]?.className) {
|
|
246
|
-
classList.push(config[field].className);
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
// Gestione campi diretti
|
|
250
|
-
['fs', 'h', 'container'].forEach((field) => {
|
|
251
|
-
if (config[field]) {
|
|
252
|
-
classList.push(config[field]);
|
|
253
|
-
}
|
|
254
|
-
});
|
|
255
|
-
// Altre classi che non sono colori dinamici
|
|
256
|
-
if (config.bgi && config.bgi.url) {
|
|
257
|
-
classList.push('bg-no-repeat bg-cover');
|
|
258
|
-
}
|
|
259
|
-
if (config.boxShadow) {
|
|
260
|
-
classList.push(config.boxShadow);
|
|
261
|
-
}
|
|
262
|
-
if (config.borderRadius) {
|
|
263
|
-
classList.push(config.borderRadius);
|
|
264
|
-
}
|
|
265
|
-
return classList.join(' ');
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
function getInlineStyles(config) {
|
|
269
|
-
const styles = {};
|
|
270
|
-
// Gestisci il background color con stile inline
|
|
271
|
-
if (config.bgc) {
|
|
272
|
-
styles.backgroundColor = config.bgc;
|
|
273
|
-
}
|
|
274
|
-
// Gestione background image
|
|
275
|
-
if (config.bgi && config.bgi.url) {
|
|
276
|
-
styles.backgroundImage = `url("${config.bgi.url}")`;
|
|
277
|
-
// Gestione focal point
|
|
278
|
-
if (typeof config.bgi.focalX === 'number' && typeof config.bgi.focalY === 'number') {
|
|
279
|
-
styles.backgroundPosition = `${config.bgi.focalX}% ${config.bgi.focalY}%`;
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
return styles;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
exports.Fields = fields_index.index;
|
|
286
|
-
exports.Config = config_index.index;
|
|
287
|
-
exports.generatePreviewPath = config_index.generatePreviewPath;
|
|
288
|
-
exports.googleFonts = config_index.GoogleFonts;
|
|
289
|
-
exports.Tailwind = tailwind_index.index;
|
|
290
|
-
exports.Acl = acl_index.index;
|
|
291
|
-
exports.Enum = enums_index.index;
|
|
292
|
-
exports.Types = types_index.index;
|
|
293
|
-
exports.Hooks = hooks_index.index;
|
|
294
|
-
exports.iconsList = fieldSectionTabs.iconsList;
|
|
295
|
-
exports.generateCssVars = generateCssVars;
|
|
296
|
-
exports.getButtonClasses = getButtonClasses;
|
|
297
|
-
exports.getClassName = getClassName;
|
|
298
|
-
exports.getInlineStyles = getInlineStyles;
|
|
299
|
-
exports.hexToRgb = hexToRgb;
|
|
1
|
+
"use strict";var e=require("./index-0eQdIBGL.js"),s=require("./index-Davj5NSB.js"),r=require("./index-gxytNJWT.js"),o=require("./index-kvH0sGti.js"),t=require("./index-C4uc5BOd.js"),n=require("./types/index.cjs.js"),i=require("./index-BnQT4jju.js"),a=require("./fieldSectionTabs-B_rEttMP.js");require("./userRoles-Dd_gfx51.js"),require("./getNumberValueFromClassNameString-Dm5eOjBJ.js");const u=e=>{const s=e.replace(/^#/,"");if(!/^([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$/.test(s))throw new Error(`Colore HEX non valido: ${e}`);const r=3===s.length?s.split("").map(e=>e+e).join(""):s;return{r:parseInt(r.slice(0,2),16),g:parseInt(r.slice(2,4),16),b:parseInt(r.slice(4,6),16)}};exports.Fields=e.index,exports.Config=s.index,exports.generatePreviewPath=s.generatePreviewPath,exports.googleFonts=s.GoogleFonts,exports.Tailwind=r.index,exports.Acl=o.index,exports.Enum=t.index,exports.Types=n.index,exports.Hooks=i.index,exports.iconsList=a.iconsList,exports.generateCssVars=function(e){const s=[300,400,500,600,700,800],r=[e.headingFont,e.textFont].filter(Boolean).map(e=>e?`@import url('https://fonts.googleapis.com/css2?family=${e.replace(/ /g,"+")}:wght@${s.join(";")}&display=swap');`:"").join("\n"),o=(e,s)=>{if(!e)return"";try{const r=u(e);if(!r||"number"!=typeof r.r||"number"!=typeof r.g||"number"!=typeof r.b)return console.warn(`Impossibile convertire il colore ${s}: ${e}`),"";const{r:o,g:t,b:n}=r,i=Array.from({length:9},(e,r)=>{const i=10*(r+1);return`--color-${s}-${i}: rgba(${o}, ${t}, ${n}, ${i/100});`}).join("\n");return`\n --color-${s}: rgb(${o}, ${t}, ${n}); /* Default (opacità 1) */\n ${i}\n `}catch(e){return console.warn(`Errore nella generazione delle varianti di opacità per ${s}: ${e}`),""}},t=o(e.primaryColor,"primary"),n=o(e.secondaryColor,"secondary"),i=o(e.accentColor,"accent"),a=o(e.darkColor,"dark"),l=o(e.lightColor,"light");return`\n ${r}\n\n :root {\n --font-heading: ${e.headingFont?`'${e.headingFont}', sans-serif`:"system-layout, sans-serif"};\n --font-text: ${e.textFont?`'${e.textFont}', sans-serif`:"system-layout, sans-serif"};\n --color-white: #ffffff;\n --color-black: #000000;\n --color-foreground: ${e.foregroundColor||"#FFFFFF"};\n ${t}\n ${n}\n ${i}\n ${a}\n ${l}\n }\n `},exports.getButtonClasses=function(e){const{buttonStyle:s="solid",buttonColor:r="primary",buttonSize:o="default",buttonRounded:t="default",iconPosition:n="left",textColor:i,additionalEffects:a=[]}=e,u=["inline-flex","items-center","justify-center","font-medium","focus:outline-none","focus-visible:ring-2","focus-visible:ring-offset-2"];switch(s){case"solid":u.push(`bg-${r}`),i?u.push(`text-${i}`):u.push("light"===r?"text-dark":"text-white"),u.push(`hover:bg-${r}/90`);break;case"outline":u.push("border"),u.push(`border-${r}`),i?(u.push(`text-${i}`),u.push(`hover:text-${i}`)):(u.push(`text-${r}`),u.push("hover:text-"+("light"===r?"dark":"white"))),u.push(`hover:bg-${r}`);break;case"ghost":i?u.push(`text-${i}`):u.push(`text-${r}`),u.push(`hover:bg-${r}/10`);break;case"link":i?u.push(`text-${i}`):u.push(`text-${r}`),u.push("hover:underline")}switch(o){case"small":u.push("text-xs px-2.5 py-1.5");break;case"default":u.push("text-sm px-4 py-2");break;case"medium":u.push("text-base px-5 py-2.5");break;case"large":u.push("text-lg px-6 py-3");break;case"xl":u.push("text-xl px-8 py-4")}if(e.useIcon&&"only"===n)switch(u.push("p-0"),o){case"small":u.push("w-7 h-7");break;case"default":u.push("w-9 h-9");break;case"medium":u.push("w-10 h-10");break;case"large":u.push("w-12 h-12");break;case"xl":u.push("w-14 h-14")}switch(t){case"none":u.push("rounded-none");break;case"sm":u.push("rounded-sm");break;case"default":u.push("rounded");break;case"lg":u.push("rounded-lg");break;case"full":u.push("rounded-full")}return a&&(a.includes("shadow")&&u.push("shadow-md hover:shadow-lg"),a.includes("transition")&&u.push("transition-all duration-200"),a.includes("scale")&&u.push("transform hover:scale-105")),u.push(`focus-visible:ring-${r}/50`),u.join(" ")},exports.getClassName=function(e){const s=[];return["p","m"].forEach(r=>{e[r]?.className&&s.push(e[r].className)}),["fs","h","container"].forEach(r=>{e[r]&&s.push(e[r])}),e.bgi&&e.bgi.url&&s.push("bg-no-repeat bg-cover"),e.boxShadow&&s.push(e.boxShadow),e.borderRadius&&s.push(e.borderRadius),s.join(" ")},exports.getInlineStyles=function(e){const s={};return e.bgc&&(s.backgroundColor=e.bgc),e.bgi&&e.bgi.url&&(s.backgroundImage=`url("${e.bgi.url}")`,"number"==typeof e.bgi.focalX&&"number"==typeof e.bgi.focalY&&(s.backgroundPosition=`${e.bgi.focalX}% ${e.bgi.focalY}%`)),s},exports.hexToRgb=u;
|
|
300
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.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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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/hexToRgb.ts","../src/generateCssVars.ts","../src/getButtonClasses.ts","../src/getClassName.ts","../src/getInlineStyles.ts"],"sourcesContent":[null,null,null,null,null],"names":["hexToRgb","hex","cleanedHex","replace","test","Error","expandedHex","length","split","map","char","join","r","parseInt","slice","g","b","settings","fontWeights","fontsToImport","headingFont","textFont","filter","Boolean","f","generateOpacityVariants","color","name","rgbValue","console","warn","opacityVars","Array","from","_","i","opacity","error","primaryVars","primaryColor","secondaryVars","secondaryColor","accentVars","accentColor","darkVars","darkColor","lightVars","lightColor","foregroundColor","config","buttonStyle","buttonColor","buttonSize","buttonRounded","iconPosition","textColor","additionalEffects","classes","push","useIcon","includes","classList","forEach","field","className","bgi","url","boxShadow","borderRadius","styles","bgc","backgroundColor","backgroundImage","focalX","focalY","backgroundPosition"],"mappings":"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"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,284 +1,2 @@
|
|
|
1
|
-
export { i as
|
|
2
|
-
export { i as Config, g as generatePreviewPath, G as googleFonts } from './index-1Y54jG4C.js';
|
|
3
|
-
export { i as Tailwind } from './index-5EL7OntE.js';
|
|
4
|
-
export { i as Acl } from './index-Ces144rr.js';
|
|
5
|
-
export { i as Enum } from './index-CKwysnVm.js';
|
|
6
|
-
export { i as Types } from './types/index.esm.js';
|
|
7
|
-
export { i as Hooks } from './index-I4vA8AmC.js';
|
|
8
|
-
export { i as iconsList } from './fieldSectionTabs-B2XLxdEW.js';
|
|
9
|
-
import './userRoles-Dq3yqKLM.js';
|
|
10
|
-
import './getNumberValueFromClassNameString-DyZ9P1fd.js';
|
|
11
|
-
|
|
12
|
-
const hexToRgb = (hex) => {
|
|
13
|
-
// Rimuove il simbolo `#` se presente
|
|
14
|
-
const cleanedHex = hex.replace(/^#/, '');
|
|
15
|
-
// Controlla che il colore sia valido (3 o 6 caratteri)
|
|
16
|
-
if (!/^([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$/.test(cleanedHex)) {
|
|
17
|
-
throw new Error(`Colore HEX non valido: ${hex}`);
|
|
18
|
-
}
|
|
19
|
-
// In caso di formato corto (es. "FFF"), lo converte in formato lungo (es. "FFFFFF")
|
|
20
|
-
const expandedHex = cleanedHex.length === 3
|
|
21
|
-
? cleanedHex
|
|
22
|
-
.split('')
|
|
23
|
-
.map(char => char + char)
|
|
24
|
-
.join('')
|
|
25
|
-
: cleanedHex;
|
|
26
|
-
// Converte il valore HEX in decimali per R, G e B
|
|
27
|
-
const r = parseInt(expandedHex.slice(0, 2), 16);
|
|
28
|
-
const g = parseInt(expandedHex.slice(2, 4), 16);
|
|
29
|
-
const b = parseInt(expandedHex.slice(4, 6), 16);
|
|
30
|
-
return { r, g, b };
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
function generateCssVars(settings) {
|
|
34
|
-
// Gestione robusta dei font
|
|
35
|
-
const fontWeights = [300, 400, 500, 600, 700, 800];
|
|
36
|
-
const fontsToImport = [settings.headingFont, settings.textFont]
|
|
37
|
-
.filter(Boolean)
|
|
38
|
-
.map(f => {
|
|
39
|
-
if (!f)
|
|
40
|
-
return '';
|
|
41
|
-
// Aggiungiamo il parametro wght per specificare i pesi da caricare
|
|
42
|
-
return `@import url('https://fonts.googleapis.com/css2?family=${f.replace(/ /g, "+")}:wght@${fontWeights.join(';')}&display=swap');`;
|
|
43
|
-
})
|
|
44
|
-
.join("\n");
|
|
45
|
-
const generateOpacityVariants = (color, name) => {
|
|
46
|
-
if (!color) {
|
|
47
|
-
return '';
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
const rgbValue = hexToRgb(color);
|
|
51
|
-
if (!rgbValue || typeof rgbValue.r !== 'number' ||
|
|
52
|
-
typeof rgbValue.g !== 'number' ||
|
|
53
|
-
typeof rgbValue.b !== 'number') {
|
|
54
|
-
console.warn(`Impossibile convertire il colore ${name}: ${color}`);
|
|
55
|
-
return '';
|
|
56
|
-
}
|
|
57
|
-
const { r, g, b } = rgbValue;
|
|
58
|
-
const opacityVars = Array.from({ length: 9 }, (_, i) => {
|
|
59
|
-
const opacity = (i + 1) * 10;
|
|
60
|
-
return `--color-${name}-${opacity}: rgba(${r}, ${g}, ${b}, ${opacity / 100});`;
|
|
61
|
-
}).join("\n");
|
|
62
|
-
return `
|
|
63
|
-
--color-${name}: rgb(${r}, ${g}, ${b}); /* Default (opacità 1) */
|
|
64
|
-
${opacityVars}
|
|
65
|
-
`;
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
console.warn(`Errore nella generazione delle varianti di opacità per ${name}: ${error}`);
|
|
69
|
-
return '';
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
// Genera variabili solo per i colori forniti
|
|
73
|
-
const primaryVars = generateOpacityVariants(settings.primaryColor, "primary");
|
|
74
|
-
const secondaryVars = generateOpacityVariants(settings.secondaryColor, "secondary");
|
|
75
|
-
const accentVars = generateOpacityVariants(settings.accentColor, "accent");
|
|
76
|
-
const darkVars = generateOpacityVariants(settings.darkColor, "dark");
|
|
77
|
-
const lightVars = generateOpacityVariants(settings.lightColor, "light");
|
|
78
|
-
// Genera i valori dei font in modo sicuro
|
|
79
|
-
const headingFontValue = settings.headingFont
|
|
80
|
-
? `'${settings.headingFont}', sans-serif`
|
|
81
|
-
: 'system-layout, sans-serif';
|
|
82
|
-
const textFontValue = settings.textFont
|
|
83
|
-
? `'${settings.textFont}', sans-serif`
|
|
84
|
-
: 'system-layout, sans-serif';
|
|
85
|
-
return `
|
|
86
|
-
${fontsToImport}
|
|
87
|
-
|
|
88
|
-
:root {
|
|
89
|
-
--font-heading: ${headingFontValue};
|
|
90
|
-
--font-text: ${textFontValue};
|
|
91
|
-
--color-white: #ffffff;
|
|
92
|
-
--color-black: #000000;
|
|
93
|
-
--color-foreground: ${settings.foregroundColor || '#FFFFFF'};
|
|
94
|
-
${primaryVars}
|
|
95
|
-
${secondaryVars}
|
|
96
|
-
${accentVars}
|
|
97
|
-
${darkVars}
|
|
98
|
-
${lightVars}
|
|
99
|
-
}
|
|
100
|
-
`;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function getButtonClasses(config) {
|
|
104
|
-
const { buttonStyle = 'solid', buttonColor = 'primary', buttonSize = 'default', buttonRounded = 'default', iconPosition = 'left', textColor, // Aggiungiamo il colore del testo
|
|
105
|
-
additionalEffects = [], } = config;
|
|
106
|
-
const classes = [
|
|
107
|
-
'inline-flex',
|
|
108
|
-
'items-center',
|
|
109
|
-
'justify-center',
|
|
110
|
-
'font-medium',
|
|
111
|
-
'focus:outline-none',
|
|
112
|
-
'focus-visible:ring-2',
|
|
113
|
-
'focus-visible:ring-offset-2',
|
|
114
|
-
];
|
|
115
|
-
// Stile base
|
|
116
|
-
switch (buttonStyle) {
|
|
117
|
-
case 'solid':
|
|
118
|
-
classes.push(`bg-${buttonColor}`);
|
|
119
|
-
// Usa textColor se specificato, altrimenti usa il colore predefinito basato sul buttonColor
|
|
120
|
-
if (textColor) {
|
|
121
|
-
classes.push(`text-${textColor}`);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
classes.push(buttonColor === 'light' ? 'text-dark' : 'text-white');
|
|
125
|
-
}
|
|
126
|
-
classes.push(`hover:bg-${buttonColor}/90`);
|
|
127
|
-
break;
|
|
128
|
-
case 'outline':
|
|
129
|
-
classes.push(`border`);
|
|
130
|
-
classes.push(`border-${buttonColor}`);
|
|
131
|
-
// Usa textColor se specificato, altrimenti usa il colore del bottone
|
|
132
|
-
if (textColor) {
|
|
133
|
-
classes.push(`text-${textColor}`);
|
|
134
|
-
// Mantieni lo stesso colore di testo per l'hover, a meno che non sia specificato diversamente
|
|
135
|
-
classes.push(`hover:text-${textColor}`);
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
classes.push(`text-${buttonColor}`);
|
|
139
|
-
classes.push(`hover:text-${buttonColor === 'light' ? 'dark' : 'white'}`);
|
|
140
|
-
}
|
|
141
|
-
classes.push(`hover:bg-${buttonColor}`);
|
|
142
|
-
break;
|
|
143
|
-
case 'ghost':
|
|
144
|
-
// Usa textColor se specificato, altrimenti usa il colore del bottone
|
|
145
|
-
if (textColor) {
|
|
146
|
-
classes.push(`text-${textColor}`);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
classes.push(`text-${buttonColor}`);
|
|
150
|
-
}
|
|
151
|
-
classes.push(`hover:bg-${buttonColor}/10`);
|
|
152
|
-
break;
|
|
153
|
-
case 'link':
|
|
154
|
-
// Usa textColor se specificato, altrimenti usa il colore del bottone
|
|
155
|
-
if (textColor) {
|
|
156
|
-
classes.push(`text-${textColor}`);
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
classes.push(`text-${buttonColor}`);
|
|
160
|
-
}
|
|
161
|
-
classes.push('hover:underline');
|
|
162
|
-
break;
|
|
163
|
-
}
|
|
164
|
-
// Dimensione
|
|
165
|
-
switch (buttonSize) {
|
|
166
|
-
case 'small':
|
|
167
|
-
classes.push('text-xs px-2.5 py-1.5');
|
|
168
|
-
break;
|
|
169
|
-
case 'default':
|
|
170
|
-
classes.push('text-sm px-4 py-2');
|
|
171
|
-
break;
|
|
172
|
-
case 'medium':
|
|
173
|
-
classes.push('text-base px-5 py-2.5');
|
|
174
|
-
break;
|
|
175
|
-
case 'large':
|
|
176
|
-
classes.push('text-lg px-6 py-3');
|
|
177
|
-
break;
|
|
178
|
-
case 'xl':
|
|
179
|
-
classes.push('text-xl px-8 py-4');
|
|
180
|
-
break;
|
|
181
|
-
}
|
|
182
|
-
// Se è solo icona, aggiusta il padding per renderlo quadrato/rotondo
|
|
183
|
-
if (config.useIcon && iconPosition === 'only') {
|
|
184
|
-
classes.push('p-0');
|
|
185
|
-
switch (buttonSize) {
|
|
186
|
-
case 'small':
|
|
187
|
-
classes.push('w-7 h-7');
|
|
188
|
-
break;
|
|
189
|
-
case 'default':
|
|
190
|
-
classes.push('w-9 h-9');
|
|
191
|
-
break;
|
|
192
|
-
case 'medium':
|
|
193
|
-
classes.push('w-10 h-10');
|
|
194
|
-
break;
|
|
195
|
-
case 'large':
|
|
196
|
-
classes.push('w-12 h-12');
|
|
197
|
-
break;
|
|
198
|
-
case 'xl':
|
|
199
|
-
classes.push('w-14 h-14');
|
|
200
|
-
break;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
// Arrotondamento
|
|
204
|
-
switch (buttonRounded) {
|
|
205
|
-
case 'none':
|
|
206
|
-
classes.push('rounded-none');
|
|
207
|
-
break;
|
|
208
|
-
case 'sm':
|
|
209
|
-
classes.push('rounded-sm');
|
|
210
|
-
break;
|
|
211
|
-
case 'default':
|
|
212
|
-
classes.push('rounded');
|
|
213
|
-
break;
|
|
214
|
-
case 'lg':
|
|
215
|
-
classes.push('rounded-lg');
|
|
216
|
-
break;
|
|
217
|
-
case 'full':
|
|
218
|
-
classes.push('rounded-full');
|
|
219
|
-
break;
|
|
220
|
-
}
|
|
221
|
-
// Effetti aggiuntivi
|
|
222
|
-
if (additionalEffects) {
|
|
223
|
-
if (additionalEffects.includes('shadow')) {
|
|
224
|
-
classes.push('shadow-md hover:shadow-lg');
|
|
225
|
-
}
|
|
226
|
-
if (additionalEffects.includes('transition')) {
|
|
227
|
-
classes.push('transition-all duration-200');
|
|
228
|
-
}
|
|
229
|
-
if (additionalEffects.includes('scale')) {
|
|
230
|
-
classes.push('transform hover:scale-105');
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
// Aggiungi la classe focus-ring per il colore appropriato
|
|
234
|
-
classes.push(`focus-visible:ring-${buttonColor}/50`);
|
|
235
|
-
return classes.join(' ');
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
function getClassName(config) {
|
|
239
|
-
// Mantieni tutte le altre classi Tailwind, ma ometti quelle di colore di sfondo
|
|
240
|
-
const classList = [];
|
|
241
|
-
// Gestione campi compositi
|
|
242
|
-
['p', 'm'].forEach((field) => {
|
|
243
|
-
if (config[field]?.className) {
|
|
244
|
-
classList.push(config[field].className);
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
// Gestione campi diretti
|
|
248
|
-
['fs', 'h', 'container'].forEach((field) => {
|
|
249
|
-
if (config[field]) {
|
|
250
|
-
classList.push(config[field]);
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
// Altre classi che non sono colori dinamici
|
|
254
|
-
if (config.bgi && config.bgi.url) {
|
|
255
|
-
classList.push('bg-no-repeat bg-cover');
|
|
256
|
-
}
|
|
257
|
-
if (config.boxShadow) {
|
|
258
|
-
classList.push(config.boxShadow);
|
|
259
|
-
}
|
|
260
|
-
if (config.borderRadius) {
|
|
261
|
-
classList.push(config.borderRadius);
|
|
262
|
-
}
|
|
263
|
-
return classList.join(' ');
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
function getInlineStyles(config) {
|
|
267
|
-
const styles = {};
|
|
268
|
-
// Gestisci il background color con stile inline
|
|
269
|
-
if (config.bgc) {
|
|
270
|
-
styles.backgroundColor = config.bgc;
|
|
271
|
-
}
|
|
272
|
-
// Gestione background image
|
|
273
|
-
if (config.bgi && config.bgi.url) {
|
|
274
|
-
styles.backgroundImage = `url("${config.bgi.url}")`;
|
|
275
|
-
// Gestione focal point
|
|
276
|
-
if (typeof config.bgi.focalX === 'number' && typeof config.bgi.focalY === 'number') {
|
|
277
|
-
styles.backgroundPosition = `${config.bgi.focalX}% ${config.bgi.focalY}%`;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
return styles;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
export { generateCssVars, getButtonClasses, getClassName, getInlineStyles, hexToRgb };
|
|
1
|
+
export{i as Fields}from"./index-qlyRswzw.js";export{i as Config,g as generatePreviewPath,G as googleFonts}from"./index-KPE7ZNep.js";export{i as Tailwind}from"./index-XuRN7Bay.js";export{i as Acl}from"./index-CaTg4skG.js";export{i as Enum}from"./index-D7075_q9.js";export{i as Types}from"./types/index.esm.js";export{i as Hooks}from"./index-CR0SwRmA.js";export{i as iconsList}from"./fieldSectionTabs-DX18jPzj.js";import"./userRoles-BIrmWoCJ.js";import"./getNumberValueFromClassNameString-pKKt97eg.js";const e=e=>{const o=e.replace(/^#/,"");if(!/^([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$/.test(o))throw new Error(`Colore HEX non valido: ${e}`);const s=3===o.length?o.split("").map(e=>e+e).join(""):o;return{r:parseInt(s.slice(0,2),16),g:parseInt(s.slice(2,4),16),b:parseInt(s.slice(4,6),16)}};function o(o){const s=[300,400,500,600,700,800],r=[o.headingFont,o.textFont].filter(Boolean).map(e=>e?`@import url('https://fonts.googleapis.com/css2?family=${e.replace(/ /g,"+")}:wght@${s.join(";")}&display=swap');`:"").join("\n"),t=(o,s)=>{if(!o)return"";try{const r=e(o);if(!r||"number"!=typeof r.r||"number"!=typeof r.g||"number"!=typeof r.b)return console.warn(`Impossibile convertire il colore ${s}: ${o}`),"";const{r:t,g:n,b:a}=r,i=Array.from({length:9},(e,o)=>{const r=10*(o+1);return`--color-${s}-${r}: rgba(${t}, ${n}, ${a}, ${r/100});`}).join("\n");return`\n --color-${s}: rgb(${t}, ${n}, ${a}); /* Default (opacità 1) */\n ${i}\n `}catch(e){return console.warn(`Errore nella generazione delle varianti di opacità per ${s}: ${e}`),""}},n=t(o.primaryColor,"primary"),a=t(o.secondaryColor,"secondary"),i=t(o.accentColor,"accent"),u=t(o.darkColor,"dark"),l=t(o.lightColor,"light");return`\n ${r}\n\n :root {\n --font-heading: ${o.headingFont?`'${o.headingFont}', sans-serif`:"system-layout, sans-serif"};\n --font-text: ${o.textFont?`'${o.textFont}', sans-serif`:"system-layout, sans-serif"};\n --color-white: #ffffff;\n --color-black: #000000;\n --color-foreground: ${o.foregroundColor||"#FFFFFF"};\n ${n}\n ${a}\n ${i}\n ${u}\n ${l}\n }\n `}function s(e){const{buttonStyle:o="solid",buttonColor:s="primary",buttonSize:r="default",buttonRounded:t="default",iconPosition:n="left",textColor:a,additionalEffects:i=[]}=e,u=["inline-flex","items-center","justify-center","font-medium","focus:outline-none","focus-visible:ring-2","focus-visible:ring-offset-2"];switch(o){case"solid":u.push(`bg-${s}`),a?u.push(`text-${a}`):u.push("light"===s?"text-dark":"text-white"),u.push(`hover:bg-${s}/90`);break;case"outline":u.push("border"),u.push(`border-${s}`),a?(u.push(`text-${a}`),u.push(`hover:text-${a}`)):(u.push(`text-${s}`),u.push("hover:text-"+("light"===s?"dark":"white"))),u.push(`hover:bg-${s}`);break;case"ghost":a?u.push(`text-${a}`):u.push(`text-${s}`),u.push(`hover:bg-${s}/10`);break;case"link":a?u.push(`text-${a}`):u.push(`text-${s}`),u.push("hover:underline")}switch(r){case"small":u.push("text-xs px-2.5 py-1.5");break;case"default":u.push("text-sm px-4 py-2");break;case"medium":u.push("text-base px-5 py-2.5");break;case"large":u.push("text-lg px-6 py-3");break;case"xl":u.push("text-xl px-8 py-4")}if(e.useIcon&&"only"===n)switch(u.push("p-0"),r){case"small":u.push("w-7 h-7");break;case"default":u.push("w-9 h-9");break;case"medium":u.push("w-10 h-10");break;case"large":u.push("w-12 h-12");break;case"xl":u.push("w-14 h-14")}switch(t){case"none":u.push("rounded-none");break;case"sm":u.push("rounded-sm");break;case"default":u.push("rounded");break;case"lg":u.push("rounded-lg");break;case"full":u.push("rounded-full")}return i&&(i.includes("shadow")&&u.push("shadow-md hover:shadow-lg"),i.includes("transition")&&u.push("transition-all duration-200"),i.includes("scale")&&u.push("transform hover:scale-105")),u.push(`focus-visible:ring-${s}/50`),u.join(" ")}function r(e){const o=[];return["p","m"].forEach(s=>{e[s]?.className&&o.push(e[s].className)}),["fs","h","container"].forEach(s=>{e[s]&&o.push(e[s])}),e.bgi&&e.bgi.url&&o.push("bg-no-repeat bg-cover"),e.boxShadow&&o.push(e.boxShadow),e.borderRadius&&o.push(e.borderRadius),o.join(" ")}function t(e){const o={};return e.bgc&&(o.backgroundColor=e.bgc),e.bgi&&e.bgi.url&&(o.backgroundImage=`url("${e.bgi.url}")`,"number"==typeof e.bgi.focalX&&"number"==typeof e.bgi.focalY&&(o.backgroundPosition=`${e.bgi.focalX}% ${e.bgi.focalY}%`)),o}export{o as generateCssVars,s as getButtonClasses,r as getClassName,t as getInlineStyles,e as hexToRgb};
|
|
284
2
|
//# sourceMappingURL=index.esm.js.map
|