pull/5507/head
Cagatay Civici 2024-03-28 17:12:00 +03:00
commit c61840859f
3 changed files with 8 additions and 8 deletions

View File

@ -3,10 +3,10 @@ import Theme, { SharedUtils } from 'primevue/themes';
export const $dt = (tokenPath, type) => { export const $dt = (tokenPath, type) => {
const config = Theme.getPConfig(); const config = Theme.getPConfig();
return dt(config?.theme, tokenPath, type); return dt(config?.theme, tokenPath, undefined, type);
}; };
export const dt = (theme = {}, tokenPath, type) => { export const dt = (theme = {}, tokenPath, fallback, type) => {
if (tokenPath) { if (tokenPath) {
const VARIABLE = Theme.defaults.variable; const VARIABLE = Theme.defaults.variable;
const { prefix, transform } = theme?.options || {}; const { prefix, transform } = theme?.options || {};
@ -14,7 +14,7 @@ export const dt = (theme = {}, tokenPath, type) => {
const token = SharedUtils.object.test(regex, tokenPath) ? tokenPath : `{${tokenPath}}`; const token = SharedUtils.object.test(regex, tokenPath) ? tokenPath : `{${tokenPath}}`;
const isStrictTransform = type === 'value' || transform === 'strict'; // @todo - TRANSFORM: strict | lenient(default) const isStrictTransform = type === 'value' || transform === 'strict'; // @todo - TRANSFORM: strict | lenient(default)
return isStrictTransform ? Theme.getTokenValue(tokenPath) : SharedUtils.object.getVariableValue(token, undefined, prefix, [VARIABLE.excludedKeyRegex]); return isStrictTransform ? Theme.getTokenValue(tokenPath) : SharedUtils.object.getVariableValue(token, undefined, prefix, [VARIABLE.excludedKeyRegex], fallback);
} }
return ''; return '';

View File

@ -109,7 +109,7 @@ export default {
getVariableName(prefix = '', variable = '') { getVariableName(prefix = '', variable = '') {
return `--${this.toNormalizeVariable(prefix, variable)}`; return `--${this.toNormalizeVariable(prefix, variable)}`;
}, },
getVariableValue(value, variable = '', prefix = '', excludedKeyRegexes = []) { getVariableValue(value, variable = '', prefix = '', excludedKeyRegexes = [], fallback) {
if (this.isString(value)) { if (this.isString(value)) {
const regex = /{([^}]*)}/g; const regex = /{([^}]*)}/g;
const val = value.trim(); const val = value.trim();
@ -119,7 +119,7 @@ export default {
const path = v.replace(/{|}/g, ''); const path = v.replace(/{|}/g, '');
const keys = path.split('.').filter((_v) => !excludedKeyRegexes.some((_r) => this.test(_r, _v))); const keys = path.split('.').filter((_v) => !excludedKeyRegexes.some((_r) => this.test(_r, _v)));
return `var(${this.getVariableName(prefix, this.toKebabCase(keys.join('-')))})`; return `var(${this.getVariableName(prefix, this.toKebabCase(keys.join('-')))}${this.isNotEmpty(fallback) ? `, ${fallback}` : ''})`;
}); });
const calculationRegex = /(\d+\s+[\+\-\*\/]\s+\d+)/g; const calculationRegex = /(\d+\s+[\+\-\*\/]\s+\d+)/g;

View File

@ -63,7 +63,7 @@ export default {
semantic_css = `${semantic_light_css}${semantic_dark_css}`; semantic_css = `${semantic_light_css}${semantic_dark_css}`;
} }
global_css = SharedUtils.object.getItemValue(base?.global?.css, { ...params, dt: (tokenPath, type) => dt(theme, tokenPath, type) }); global_css = SharedUtils.object.getItemValue(base?.global?.css, { ...params, dt: (tokenPath, fallback, type) => dt(theme, tokenPath, fallback, type) });
return { return {
primitive: primitive_css, primitive: primitive_css,
@ -84,7 +84,7 @@ export default {
getBaseC({ name = '', theme = {}, params, set, defaults }) { getBaseC({ name = '', theme = {}, params, set, defaults }) {
const { base, options } = theme; const { base, options } = theme;
const { css } = base?.components?.[name] || {}; const { css } = base?.components?.[name] || {};
const computed_css = SharedUtils.object.getItemValue(css, { ...params, dt: (tokenPath, type) => dt(theme, tokenPath, type) }); const computed_css = SharedUtils.object.getItemValue(css, { ...params, dt: (tokenPath, fallback, type) => dt(theme, tokenPath, fallback, type) });
return this._transformCSS(name, computed_css, undefined, 'style', options, set, defaults); return this._transformCSS(name, computed_css, undefined, 'style', options, set, defaults);
}, },
@ -101,7 +101,7 @@ export default {
getBaseD({ name = '', theme = {}, params, set, defaults }) { getBaseD({ name = '', theme = {}, params, set, defaults }) {
const { base, options } = theme; const { base, options } = theme;
const { css } = base?.directives?.[name] || {}; const { css } = base?.directives?.[name] || {};
const computed_css = SharedUtils.object.getItemValue(css, { ...params, dt: (tokenPath, type) => dt(theme, tokenPath, type) }); const computed_css = SharedUtils.object.getItemValue(css, { ...params, dt: (tokenPath, fallback, type) => dt(theme, tokenPath, fallback, type) });
return this._transformCSS(name, computed_css, undefined, 'style', options, set, defaults); return this._transformCSS(name, computed_css, undefined, 'style', options, set, defaults);
}, },