From e23fd12ff42bf7b2280f6308f60a5e3c729a0e5b Mon Sep 17 00:00:00 2001 From: mertsincan Date: Wed, 27 Mar 2024 13:12:22 +0000 Subject: [PATCH] Theming API: Update themes folder structure and all exports --- .../themes/{utils => actions}/extendPreset.js | 0 components/lib/themes/actions/index.js | 5 +++++ components/lib/themes/actions/package.json | 6 +++++ .../themes/{utils => actions}/updatePreset.js | 3 +-- .../lib/themes/actions/updatePrimary.js | 15 +++++++++++++ .../lib/themes/actions/updateSurface.js | 22 +++++++++++++++++++ .../themes/{utils => actions}/updateTheme.js | 0 .../themes/{utils => helpers}/color/index.js | 0 .../themes/{utils => helpers}/color/mix.js | 0 .../{utils => helpers}/color/palette.js | 0 .../themes/{utils => helpers}/color/shade.js | 0 .../themes/{utils => helpers}/color/tint.js | 0 .../lib/themes/{utils => helpers}/dt.js | 3 +-- components/lib/themes/helpers/index.js | 3 +++ components/lib/themes/helpers/package.json | 6 +++++ .../themes/{utils => helpers}/toVariables.js | 3 +-- components/lib/themes/index.js | 5 ++++- .../primeone/base/calendar/package.json | 6 +++++ .../base/{global.js => global/index.js} | 0 .../themes/primeone/base/global/package.json | 6 +++++ components/lib/themes/primeone/base/index.js | 2 +- .../primeone/presets/aura/avatar/index.js | 4 ++-- .../primeone/presets/aura/floatlabel/index.js | 2 +- .../{utils/service.js => service/index.js} | 0 components/lib/themes/service/package.json | 6 +++++ components/lib/themes/utils/index.js | 7 ------ components/lib/themes/utils/package.json | 6 +++++ 27 files changed, 92 insertions(+), 18 deletions(-) rename components/lib/themes/{utils => actions}/extendPreset.js (100%) create mode 100644 components/lib/themes/actions/index.js create mode 100644 components/lib/themes/actions/package.json rename components/lib/themes/{utils => actions}/updatePreset.js (84%) create mode 100644 components/lib/themes/actions/updatePrimary.js create mode 100644 components/lib/themes/actions/updateSurface.js rename components/lib/themes/{utils => actions}/updateTheme.js (100%) rename components/lib/themes/{utils => helpers}/color/index.js (100%) rename components/lib/themes/{utils => helpers}/color/mix.js (100%) rename components/lib/themes/{utils => helpers}/color/palette.js (100%) rename components/lib/themes/{utils => helpers}/color/shade.js (100%) rename components/lib/themes/{utils => helpers}/color/tint.js (100%) rename components/lib/themes/{utils => helpers}/dt.js (93%) create mode 100644 components/lib/themes/helpers/index.js create mode 100644 components/lib/themes/helpers/package.json rename components/lib/themes/{utils => helpers}/toVariables.js (96%) rename components/lib/themes/primeone/base/{global.js => global/index.js} (100%) create mode 100644 components/lib/themes/primeone/base/global/package.json rename components/lib/themes/{utils/service.js => service/index.js} (100%) create mode 100644 components/lib/themes/service/package.json create mode 100644 components/lib/themes/utils/package.json diff --git a/components/lib/themes/utils/extendPreset.js b/components/lib/themes/actions/extendPreset.js similarity index 100% rename from components/lib/themes/utils/extendPreset.js rename to components/lib/themes/actions/extendPreset.js diff --git a/components/lib/themes/actions/index.js b/components/lib/themes/actions/index.js new file mode 100644 index 000000000..727194f8c --- /dev/null +++ b/components/lib/themes/actions/index.js @@ -0,0 +1,5 @@ +export { default as extendPreset } from './extendPreset'; +export { default as updatePreset } from './updatePreset'; +export { default as updatePrimary } from './updatePrimary'; +export { default as updateSurface } from './updateSurface'; +export { default as updateTheme } from './updateTheme'; diff --git a/components/lib/themes/actions/package.json b/components/lib/themes/actions/package.json new file mode 100644 index 000000000..f8e9d7ae0 --- /dev/null +++ b/components/lib/themes/actions/package.json @@ -0,0 +1,6 @@ +{ + "main": "./index.cjs.js", + "module": "./index.esm.js", + "unpkg": "./index.min.js", + "types": "./index.d.ts" +} diff --git a/components/lib/themes/utils/updatePreset.js b/components/lib/themes/actions/updatePreset.js similarity index 84% rename from components/lib/themes/utils/updatePreset.js rename to components/lib/themes/actions/updatePreset.js index 527065549..e36f053c2 100644 --- a/components/lib/themes/utils/updatePreset.js +++ b/components/lib/themes/actions/updatePreset.js @@ -1,8 +1,7 @@ import Theme, { SharedUtils } from 'primevue/themes'; -const VARIABLE = Theme.defaults.variable; - export default (preset) => { + const VARIABLE = Theme.defaults.variable; const newPreset = SharedUtils.object.mergeKeysByRegex(Theme.getPreset(), preset, VARIABLE.excludedKeyRegex); Theme.setPreset(newPreset); diff --git a/components/lib/themes/actions/updatePrimary.js b/components/lib/themes/actions/updatePrimary.js new file mode 100644 index 000000000..c3441ba52 --- /dev/null +++ b/components/lib/themes/actions/updatePrimary.js @@ -0,0 +1,15 @@ +import Theme from 'primevue/themes'; + +export default (primary) => { + const { primitive, semantic, components, directives } = Theme.getPreset(); + const newPreset = { + primitive, + semantic: { ...semantic, primary }, + components, + directives + }; + + Theme.setPreset(newPreset); + + return newPreset; +}; diff --git a/components/lib/themes/actions/updateSurface.js b/components/lib/themes/actions/updateSurface.js new file mode 100644 index 000000000..740f3fcb8 --- /dev/null +++ b/components/lib/themes/actions/updateSurface.js @@ -0,0 +1,22 @@ +import Theme from 'primevue/themes'; + +export default (surface) => { + const { primitive, semantic, components, directives } = Theme.getPreset(); + const hasLightDark = surface?.hasOwnProperty('light') || surface?.hasOwnProperty('dark'); + const newColorScheme = { + colorScheme: { + light: { ...semantic?.colorScheme?.light, ...{ surface: hasLightDark ? surface?.light : surface } }, + dark: { ...semantic?.colorScheme?.dark, ...{ surface: hasLightDark ? surface?.dark : surface } } + } + }; + const newPreset = { + primitive, + semantic: { ...semantic, ...newColorScheme }, + components, + directives + }; + + Theme.setPreset(newPreset); + + return newPreset; +}; diff --git a/components/lib/themes/utils/updateTheme.js b/components/lib/themes/actions/updateTheme.js similarity index 100% rename from components/lib/themes/utils/updateTheme.js rename to components/lib/themes/actions/updateTheme.js diff --git a/components/lib/themes/utils/color/index.js b/components/lib/themes/helpers/color/index.js similarity index 100% rename from components/lib/themes/utils/color/index.js rename to components/lib/themes/helpers/color/index.js diff --git a/components/lib/themes/utils/color/mix.js b/components/lib/themes/helpers/color/mix.js similarity index 100% rename from components/lib/themes/utils/color/mix.js rename to components/lib/themes/helpers/color/mix.js diff --git a/components/lib/themes/utils/color/palette.js b/components/lib/themes/helpers/color/palette.js similarity index 100% rename from components/lib/themes/utils/color/palette.js rename to components/lib/themes/helpers/color/palette.js diff --git a/components/lib/themes/utils/color/shade.js b/components/lib/themes/helpers/color/shade.js similarity index 100% rename from components/lib/themes/utils/color/shade.js rename to components/lib/themes/helpers/color/shade.js diff --git a/components/lib/themes/utils/color/tint.js b/components/lib/themes/helpers/color/tint.js similarity index 100% rename from components/lib/themes/utils/color/tint.js rename to components/lib/themes/helpers/color/tint.js diff --git a/components/lib/themes/utils/dt.js b/components/lib/themes/helpers/dt.js similarity index 93% rename from components/lib/themes/utils/dt.js rename to components/lib/themes/helpers/dt.js index 3ce2cafd4..b7238b67c 100644 --- a/components/lib/themes/utils/dt.js +++ b/components/lib/themes/helpers/dt.js @@ -1,7 +1,5 @@ import Theme, { SharedUtils } from 'primevue/themes'; -const VARIABLE = Theme.defaults.variable; - export const $dt = (tokenPath, type) => { const config = Theme.getPConfig(); @@ -10,6 +8,7 @@ export const $dt = (tokenPath, type) => { export const dt = (theme = {}, tokenPath, type) => { if (tokenPath) { + const VARIABLE = Theme.defaults.variable; const { prefix, transform } = theme?.options || {}; const regex = /{([^}]*)}/g; const token = SharedUtils.object.test(regex, tokenPath) ? tokenPath : `{${tokenPath}}`; diff --git a/components/lib/themes/helpers/index.js b/components/lib/themes/helpers/index.js new file mode 100644 index 000000000..4795c147f --- /dev/null +++ b/components/lib/themes/helpers/index.js @@ -0,0 +1,3 @@ +export * from './color/index.js'; +export * from './dt'; +export { default as toVariables } from './toVariables'; diff --git a/components/lib/themes/helpers/package.json b/components/lib/themes/helpers/package.json new file mode 100644 index 000000000..f8e9d7ae0 --- /dev/null +++ b/components/lib/themes/helpers/package.json @@ -0,0 +1,6 @@ +{ + "main": "./index.cjs.js", + "module": "./index.esm.js", + "unpkg": "./index.min.js", + "types": "./index.d.ts" +} diff --git a/components/lib/themes/utils/toVariables.js b/components/lib/themes/helpers/toVariables.js similarity index 96% rename from components/lib/themes/utils/toVariables.js rename to components/lib/themes/helpers/toVariables.js index 6df4ffe57..5c683f164 100644 --- a/components/lib/themes/utils/toVariables.js +++ b/components/lib/themes/helpers/toVariables.js @@ -1,8 +1,7 @@ import Theme, { SharedUtils } from 'primevue/themes'; -const VARIABLE = Theme.defaults.variable; - export default function (theme, options = {}) { + const VARIABLE = Theme.defaults.variable; const { prefix = VARIABLE.prefix, selector = VARIABLE.selector, excludedKeyRegex = VARIABLE.excludedKeyRegex } = options; const _toVariables = (_theme, _prefix = '') => { diff --git a/components/lib/themes/index.js b/components/lib/themes/index.js index 3f756ed2a..a39c3063b 100644 --- a/components/lib/themes/index.js +++ b/components/lib/themes/index.js @@ -1,2 +1,5 @@ +export * from 'primevue/themes/actions'; export { default } from 'primevue/themes/config'; -export * from './utils'; +export * from 'primevue/themes/helpers'; +export { default as ThemeService } from 'primevue/themes/service'; +export * from 'primevue/themes/utils'; diff --git a/components/lib/themes/primeone/base/calendar/package.json b/components/lib/themes/primeone/base/calendar/package.json index e69de29bb..f8e9d7ae0 100644 --- a/components/lib/themes/primeone/base/calendar/package.json +++ b/components/lib/themes/primeone/base/calendar/package.json @@ -0,0 +1,6 @@ +{ + "main": "./index.cjs.js", + "module": "./index.esm.js", + "unpkg": "./index.min.js", + "types": "./index.d.ts" +} diff --git a/components/lib/themes/primeone/base/global.js b/components/lib/themes/primeone/base/global/index.js similarity index 100% rename from components/lib/themes/primeone/base/global.js rename to components/lib/themes/primeone/base/global/index.js diff --git a/components/lib/themes/primeone/base/global/package.json b/components/lib/themes/primeone/base/global/package.json new file mode 100644 index 000000000..f8e9d7ae0 --- /dev/null +++ b/components/lib/themes/primeone/base/global/package.json @@ -0,0 +1,6 @@ +{ + "main": "./index.cjs.js", + "module": "./index.esm.js", + "unpkg": "./index.min.js", + "types": "./index.d.ts" +} diff --git a/components/lib/themes/primeone/base/index.js b/components/lib/themes/primeone/base/index.js index c10741b2c..fbcaa35da 100644 --- a/components/lib/themes/primeone/base/index.js +++ b/components/lib/themes/primeone/base/index.js @@ -84,8 +84,8 @@ import treeselect from 'primevue/themes/primeone/base/treeselect'; import treetable from 'primevue/themes/primeone/base/treetable'; export default { + global, components: { - global, accordion, autocomplete, avatar, diff --git a/components/lib/themes/primeone/presets/aura/avatar/index.js b/components/lib/themes/primeone/presets/aura/avatar/index.js index d43f62714..f704c4f3c 100644 --- a/components/lib/themes/primeone/presets/aura/avatar/index.js +++ b/components/lib/themes/primeone/presets/aura/avatar/index.js @@ -2,7 +2,7 @@ export default { colorScheme: { light: { root: { - background: '{surface.200}', + background: '{surface.200}' }, grouped: { borderColor: '{surface.0}' @@ -10,7 +10,7 @@ export default { }, dark: { root: { - background: '{surface.700}', + background: '{surface.700}' }, grouped: { borderColor: '{surface.900}' diff --git a/components/lib/themes/primeone/presets/aura/floatlabel/index.js b/components/lib/themes/primeone/presets/aura/floatlabel/index.js index 01001adcb..e83127703 100644 --- a/components/lib/themes/primeone/presets/aura/floatlabel/index.js +++ b/components/lib/themes/primeone/presets/aura/floatlabel/index.js @@ -2,6 +2,6 @@ export default { root: { color: '{form.field.float.label.color}', focusColor: '{form.field.float.label.focus.color}', - invalidColor: '{form.field.float.label.invalid.color}', + invalidColor: '{form.field.float.label.invalid.color}' } }; diff --git a/components/lib/themes/utils/service.js b/components/lib/themes/service/index.js similarity index 100% rename from components/lib/themes/utils/service.js rename to components/lib/themes/service/index.js diff --git a/components/lib/themes/service/package.json b/components/lib/themes/service/package.json new file mode 100644 index 000000000..f8e9d7ae0 --- /dev/null +++ b/components/lib/themes/service/package.json @@ -0,0 +1,6 @@ +{ + "main": "./index.cjs.js", + "module": "./index.esm.js", + "unpkg": "./index.min.js", + "types": "./index.d.ts" +} diff --git a/components/lib/themes/utils/index.js b/components/lib/themes/utils/index.js index 5cf31f277..885be7b97 100644 --- a/components/lib/themes/utils/index.js +++ b/components/lib/themes/utils/index.js @@ -1,9 +1,2 @@ -export * from './color'; -export * from './dt'; -export { default as extendPreset } from './extendPreset'; -export { default as ThemeService } from './service'; export { default as SharedUtils } from './sharedUtils'; export { default as ThemeUtils } from './themeUtils'; -export { default as toVariables } from './toVariables'; -export { default as updatePreset } from './updatePreset'; -export { default as updateTheme } from './updateTheme'; diff --git a/components/lib/themes/utils/package.json b/components/lib/themes/utils/package.json new file mode 100644 index 000000000..f8e9d7ae0 --- /dev/null +++ b/components/lib/themes/utils/package.json @@ -0,0 +1,6 @@ +{ + "main": "./index.cjs.js", + "module": "./index.esm.js", + "unpkg": "./index.min.js", + "types": "./index.d.ts" +}