@kilivi/payloadcms-theme-management 2.0.0 → 2.1.0
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/README.md +318 -847
- package/dist/components/AppearanceSessionControls.d.ts +15 -0
- package/dist/components/AppearanceSessionControls.d.ts.map +1 -0
- package/dist/components/AppearanceSessionControls.js +152 -0
- package/dist/components/AppearanceSessionControls.js.map +1 -0
- package/dist/components/ColorModeToggle.css +42 -0
- package/dist/components/ColorModeToggle.d.ts +40 -0
- package/dist/components/ColorModeToggle.d.ts.map +1 -0
- package/dist/components/ColorModeToggle.js +111 -0
- package/dist/components/ColorModeToggle.js.map +1 -0
- package/dist/components/ServerThemeInjector.d.ts.map +1 -1
- package/dist/components/ServerThemeInjector.js +41 -14
- package/dist/components/ServerThemeInjector.js.map +1 -1
- package/dist/components/ThemeLivePreviewSync.d.ts +1 -0
- package/dist/components/ThemeLivePreviewSync.d.ts.map +1 -1
- package/dist/components/ThemeLivePreviewSync.js +1 -1
- package/dist/components/ThemeLivePreviewSync.js.map +1 -1
- package/dist/components/ThemeSwitcher.d.ts +36 -0
- package/dist/components/ThemeSwitcher.d.ts.map +1 -0
- package/dist/components/ThemeSwitcher.js +89 -0
- package/dist/components/ThemeSwitcher.js.map +1 -0
- package/dist/components/typographyPreviewUtils.d.ts.map +1 -1
- package/dist/components/typographyPreviewUtils.js +8 -1
- package/dist/components/typographyPreviewUtils.js.map +1 -1
- package/dist/constants/devicePreviews.d.ts +35 -0
- package/dist/constants/devicePreviews.d.ts.map +1 -0
- package/dist/constants/devicePreviews.js +43 -0
- package/dist/constants/devicePreviews.js.map +1 -0
- package/dist/constants/themeFonts.js +9 -9
- package/dist/constants/themeFonts.js.map +1 -1
- package/dist/extended-presets.d.ts +0 -4
- package/dist/extended-presets.d.ts.map +1 -1
- package/dist/extended-presets.js +1 -18
- package/dist/extended-presets.js.map +1 -1
- package/dist/extended-themes.d.ts.map +1 -1
- package/dist/extended-themes.js +428 -0
- package/dist/extended-themes.js.map +1 -1
- package/dist/fields/AccessibilityAuditField.d.ts +2 -0
- package/dist/fields/AccessibilityAuditField.d.ts.map +1 -0
- package/dist/fields/AccessibilityAuditField.js +303 -0
- package/dist/fields/AccessibilityAuditField.js.map +1 -0
- package/dist/fields/AppearancePreviewField.d.ts +2 -0
- package/dist/fields/AppearancePreviewField.d.ts.map +1 -0
- package/dist/fields/AppearancePreviewField.js +763 -0
- package/dist/fields/AppearancePreviewField.js.map +1 -0
- package/dist/fields/ColorPickerField.d.ts.map +1 -1
- package/dist/fields/ColorPickerField.js +89 -85
- package/dist/fields/ColorPickerField.js.map +1 -1
- package/dist/fields/FontSelectField.d.ts +6 -0
- package/dist/fields/FontSelectField.d.ts.map +1 -1
- package/dist/fields/FontSelectField.js +195 -122
- package/dist/fields/FontSelectField.js.map +1 -1
- package/dist/fields/PaletteGeneratorField.d.ts +7 -0
- package/dist/fields/PaletteGeneratorField.d.ts.map +1 -0
- package/dist/fields/PaletteGeneratorField.js +327 -0
- package/dist/fields/PaletteGeneratorField.js.map +1 -0
- package/dist/fields/StylePresetField.d.ts +3 -0
- package/dist/fields/StylePresetField.d.ts.map +1 -0
- package/dist/fields/StylePresetField.js +462 -0
- package/dist/fields/StylePresetField.js.map +1 -0
- package/dist/fields/ThemeColorPickerField.css +115 -35
- package/dist/fields/ThemeColorPickerField.d.ts.map +1 -1
- package/dist/fields/ThemeColorPickerField.js +204 -70
- package/dist/fields/ThemeColorPickerField.js.map +1 -1
- package/dist/fields/ThemeExportField.d.ts +6 -0
- package/dist/fields/ThemeExportField.d.ts.map +1 -0
- package/dist/fields/ThemeExportField.js +202 -0
- package/dist/fields/ThemeExportField.js.map +1 -0
- package/dist/fields/ThemePresetImportField.d.ts.map +1 -1
- package/dist/fields/ThemePresetImportField.js +56 -25
- package/dist/fields/ThemePresetImportField.js.map +1 -1
- package/dist/fields/ThemePreviewField.css +382 -5
- package/dist/fields/ThemePreviewField.d.ts.map +1 -1
- package/dist/fields/ThemePreviewField.js +268 -170
- package/dist/fields/ThemePreviewField.js.map +1 -1
- package/dist/fields/ThemeTokenSelectField.d.ts.map +1 -1
- package/dist/fields/ThemeTokenSelectField.js +278 -80
- package/dist/fields/ThemeTokenSelectField.js.map +1 -1
- package/dist/fields/colorFieldHelpers.d.ts +90 -0
- package/dist/fields/colorFieldHelpers.d.ts.map +1 -0
- package/dist/fields/colorFieldHelpers.js +133 -0
- package/dist/fields/colorFieldHelpers.js.map +1 -0
- package/dist/fields/colorModeFields.d.ts +1 -1
- package/dist/fields/colorModeFields.d.ts.map +1 -1
- package/dist/fields/colorModeFields.js +49 -7
- package/dist/fields/colorModeFields.js.map +1 -1
- package/dist/fields/themeConfigurationField.d.ts +8 -1
- package/dist/fields/themeConfigurationField.d.ts.map +1 -1
- package/dist/fields/themeConfigurationField.js +961 -29
- package/dist/fields/themeConfigurationField.js.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/FontPreview.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/FontPreview.js +8 -4
- package/dist/globals/ThemeSettings/FontPicker/FontPreview.js.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/index.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/index.js +81 -26
- package/dist/globals/ThemeSettings/FontPicker/index.js.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/styles.css +98 -41
- package/dist/globals/ThemeSettings/FontPicker/translations.d.ts +6 -0
- package/dist/globals/ThemeSettings/FontPicker/translations.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/translations.js +14 -2
- package/dist/globals/ThemeSettings/FontPicker/translations.js.map +1 -1
- package/dist/globals/ThemeSettings/config.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/config.js +76 -79
- package/dist/globals/ThemeSettings/config.js.map +1 -1
- package/dist/globals/ThemeSettings/fields/FontLoadingGuideField.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/fields/FontLoadingGuideField.js +63 -62
- package/dist/globals/ThemeSettings/fields/FontLoadingGuideField.js.map +1 -1
- package/dist/globals/ThemeSettings/fields/TypographyInfoField.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/fields/TypographyInfoField.js +22 -25
- package/dist/globals/ThemeSettings/fields/TypographyInfoField.js.map +1 -1
- package/dist/hooks/useAppearanceSession.d.ts +50 -0
- package/dist/hooks/useAppearanceSession.d.ts.map +1 -0
- package/dist/hooks/useAppearanceSession.js +91 -0
- package/dist/hooks/useAppearanceSession.js.map +1 -0
- package/dist/hooks/useThemeTranslations.d.ts +13 -0
- package/dist/hooks/useThemeTranslations.d.ts.map +1 -0
- package/dist/hooks/useThemeTranslations.js +22 -0
- package/dist/hooks/useThemeTranslations.js.map +1 -0
- package/dist/i18n.d.ts +53 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +53 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -29
- package/dist/index.js.map +1 -1
- package/dist/payload-types.d.ts +24 -0
- package/dist/payload-types.d.ts.map +1 -1
- package/dist/payload-types.js.map +1 -1
- package/dist/presets.d.ts +8 -0
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js.map +1 -1
- package/dist/providers/Theme/index.d.ts.map +1 -1
- package/dist/providers/Theme/index.js +75 -11
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/Theme/themeConfig.d.ts.map +1 -1
- package/dist/providers/Theme/themeConfig.js +104 -0
- package/dist/providers/Theme/themeConfig.js.map +1 -1
- package/dist/providers/Theme/types.d.ts +1 -1
- package/dist/providers/Theme/types.d.ts.map +1 -1
- package/dist/providers/Theme/types.js +10 -1
- package/dist/providers/Theme/types.js.map +1 -1
- package/dist/style-presets.d.ts +66 -0
- package/dist/style-presets.d.ts.map +1 -0
- package/dist/style-presets.js +556 -0
- package/dist/style-presets.js.map +1 -0
- package/dist/translations.d.ts +159 -1
- package/dist/translations.d.ts.map +1 -1
- package/dist/translations.js +310 -9
- package/dist/translations.js.map +1 -1
- package/dist/tweakcn-special-themes.d.ts.map +1 -1
- package/dist/tweakcn-special-themes.js +585 -9
- package/dist/tweakcn-special-themes.js.map +1 -1
- package/dist/types/css.d.js +3 -0
- package/dist/types/css.d.js.map +1 -0
- package/dist/types.d.ts +26 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/getThemeSettings.d.ts.map +1 -1
- package/dist/utilities/getThemeSettings.js +2 -14
- package/dist/utilities/getThemeSettings.js.map +1 -1
- package/dist/utils/contrast.d.ts +63 -0
- package/dist/utils/contrast.d.ts.map +1 -0
- package/dist/utils/contrast.js +158 -0
- package/dist/utils/contrast.js.map +1 -0
- package/dist/utils/exportTokens.d.ts +30 -0
- package/dist/utils/exportTokens.d.ts.map +1 -0
- package/dist/utils/exportTokens.js +183 -0
- package/dist/utils/exportTokens.js.map +1 -0
- package/dist/utils/generatePalette.d.ts +46 -0
- package/dist/utils/generatePalette.d.ts.map +1 -0
- package/dist/utils/generatePalette.js +127 -0
- package/dist/utils/generatePalette.js.map +1 -0
- package/dist/utils/generateThemeCSS.d.ts.map +1 -1
- package/dist/utils/generateThemeCSS.js +2 -40
- package/dist/utils/generateThemeCSS.js.map +1 -1
- package/dist/utils/livePreviewThemeRuntime.d.ts +16 -2
- package/dist/utils/livePreviewThemeRuntime.d.ts.map +1 -1
- package/dist/utils/livePreviewThemeRuntime.js +37 -14
- package/dist/utils/livePreviewThemeRuntime.js.map +1 -1
- package/dist/utils/localizedText.d.ts +8 -0
- package/dist/utils/localizedText.d.ts.map +1 -0
- package/dist/utils/localizedText.js +21 -0
- package/dist/utils/localizedText.js.map +1 -0
- package/dist/utils/resolveThemeConfiguration.d.ts +45 -1
- package/dist/utils/resolveThemeConfiguration.d.ts.map +1 -1
- package/dist/utils/resolveThemeConfiguration.js +12 -5
- package/dist/utils/resolveThemeConfiguration.js.map +1 -1
- package/dist/utils/themeColors.d.ts +3 -0
- package/dist/utils/themeColors.d.ts.map +1 -1
- package/dist/utils/themeColors.js +30 -1
- package/dist/utils/themeColors.js.map +1 -1
- package/dist/utils/themeHtmlAttributes.d.ts +32 -12
- package/dist/utils/themeHtmlAttributes.d.ts.map +1 -1
- package/dist/utils/themeHtmlAttributes.js +38 -5
- package/dist/utils/themeHtmlAttributes.js.map +1 -1
- package/dist/utils/themeUtils.d.ts +3 -5
- package/dist/utils/themeUtils.d.ts.map +1 -1
- package/dist/utils/themeUtils.js +416 -6
- package/dist/utils/themeUtils.js.map +1 -1
- package/dist/utils/tweakcnConverter.d.ts +1 -3
- package/dist/utils/tweakcnConverter.d.ts.map +1 -1
- package/dist/utils/tweakcnConverter.js +1 -3
- package/dist/utils/tweakcnConverter.js.map +1 -1
- package/package.json +11 -5
- package/dist/components/ThemePreview.d.ts +0 -3
- package/dist/components/ThemePreview.d.ts.map +0 -1
- package/dist/components/ThemePreview.js +0 -321
- package/dist/components/ThemePreview.js.map +0 -1
- package/dist/plugin.d.ts +0 -2
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -3
- package/dist/plugin.js.map +0 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
4
|
+
import { allThemePresets } from '../presets.js';
|
|
5
|
+
import { themeLocalStorageKey } from '../providers/Theme/shared.js';
|
|
6
|
+
import { generateThemeColorsCss } from '../utils/themeColors.js';
|
|
7
|
+
const STYLE_ID = 'tm-theme-switcher-css';
|
|
8
|
+
const applyPreset = (preset)=>{
|
|
9
|
+
if (typeof document === 'undefined') return;
|
|
10
|
+
// Generate with the preset name so selectors match `:root[data-theme='name']`
|
|
11
|
+
// and override the SSR-injected theme (same specificity, injected later wins).
|
|
12
|
+
const css = generateThemeColorsCss({
|
|
13
|
+
themeName: preset.name,
|
|
14
|
+
lightMode: preset.lightMode,
|
|
15
|
+
darkMode: preset.darkMode
|
|
16
|
+
});
|
|
17
|
+
let styleElement = document.getElementById(STYLE_ID);
|
|
18
|
+
if (!styleElement) {
|
|
19
|
+
styleElement = document.createElement('style');
|
|
20
|
+
styleElement.id = STYLE_ID;
|
|
21
|
+
document.head.appendChild(styleElement);
|
|
22
|
+
}
|
|
23
|
+
styleElement.innerHTML = css;
|
|
24
|
+
document.documentElement.setAttribute('data-theme', preset.name);
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Front-end theme-preset switcher. Lets visitors swap between bundled (or a
|
|
28
|
+
* curated subset of) theme presets at runtime by injecting the preset's colour
|
|
29
|
+
* CSS and updating `data-theme`. The choice is persisted to localStorage and
|
|
30
|
+
* restored on the next visit.
|
|
31
|
+
*
|
|
32
|
+
* Note: colour-mode (light/dark) is handled by {@link ColorModeToggle} and the
|
|
33
|
+
* SSR injector with no flash; preset switching re-applies on mount, so a brief
|
|
34
|
+
* flash to the SSR default can occur before the stored preset is restored.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```tsx
|
|
38
|
+
* import { ThemeSwitcher } from '@kilivi/payloadcms-theme-management/components/ThemeSwitcher'
|
|
39
|
+
* <ThemeSwitcher presets={[oceanPreset, forestPreset]} />
|
|
40
|
+
* ```
|
|
41
|
+
*/ export const ThemeSwitcher = ({ presets, className, style, 'aria-label': ariaLabel, persist = true, onChange })=>{
|
|
42
|
+
const list = presets && presets.length > 0 ? presets : allThemePresets;
|
|
43
|
+
const [selected, setSelected] = useState('');
|
|
44
|
+
// Restore the stored preset (or reflect the current data-theme) after mount.
|
|
45
|
+
useEffect(()=>{
|
|
46
|
+
if (typeof document === 'undefined') return;
|
|
47
|
+
const current = document.documentElement.getAttribute('data-theme') ?? '';
|
|
48
|
+
const stored = persist ? window.localStorage.getItem(themeLocalStorageKey) : null;
|
|
49
|
+
const initial = stored && list.some((p)=>p.name === stored) ? stored : current;
|
|
50
|
+
if (initial) {
|
|
51
|
+
setSelected(initial);
|
|
52
|
+
const preset = list.find((p)=>p.name === initial);
|
|
53
|
+
// Only re-inject when the stored preset differs from what SSR rendered.
|
|
54
|
+
if (preset && stored && stored !== current) {
|
|
55
|
+
applyPreset(preset);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Intentionally run once on mount to restore the persisted preset.
|
|
59
|
+
}, []);
|
|
60
|
+
const handleChange = useCallback((event)=>{
|
|
61
|
+
const name = event.target.value;
|
|
62
|
+
const preset = list.find((p)=>p.name === name);
|
|
63
|
+
if (!preset) return;
|
|
64
|
+
setSelected(name);
|
|
65
|
+
applyPreset(preset);
|
|
66
|
+
if (persist) {
|
|
67
|
+
window.localStorage.setItem(themeLocalStorageKey, name);
|
|
68
|
+
}
|
|
69
|
+
onChange?.(name);
|
|
70
|
+
}, [
|
|
71
|
+
list,
|
|
72
|
+
persist,
|
|
73
|
+
onChange
|
|
74
|
+
]);
|
|
75
|
+
return /*#__PURE__*/ _jsx("select", {
|
|
76
|
+
value: selected,
|
|
77
|
+
onChange: handleChange,
|
|
78
|
+
className: className,
|
|
79
|
+
style: style,
|
|
80
|
+
"aria-label": ariaLabel ?? 'Select theme',
|
|
81
|
+
children: list.map((preset)=>/*#__PURE__*/ _jsx("option", {
|
|
82
|
+
value: preset.name,
|
|
83
|
+
children: preset.label
|
|
84
|
+
}, preset.name))
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
export default ThemeSwitcher;
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=ThemeSwitcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/ThemeSwitcher.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { allThemePresets, type ThemePreset } from '../presets.js'\nimport { themeLocalStorageKey } from '../providers/Theme/shared.js'\nimport { generateThemeColorsCss } from '../utils/themeColors.js'\n\nconst STYLE_ID = 'tm-theme-switcher-css'\n\nexport type SwitchablePreset = Pick<ThemePreset, 'name' | 'label' | 'lightMode' | 'darkMode'>\n\nexport interface ThemeSwitcherProps {\n /**\n * Presets the visitor can switch between. Defaults to all bundled presets.\n * Pass a curated subset for a focused switcher.\n */\n presets?: SwitchablePreset[]\n className?: string\n style?: React.CSSProperties\n 'aria-label'?: string\n /** Persist the choice to localStorage and restore it on load. Default true. */\n persist?: boolean\n /** Called after a preset is applied. */\n onChange?: (presetName: string) => void\n}\n\nconst applyPreset = (preset: SwitchablePreset): void => {\n if (typeof document === 'undefined') return\n\n // Generate with the preset name so selectors match `:root[data-theme='name']`\n // and override the SSR-injected theme (same specificity, injected later wins).\n const css = generateThemeColorsCss({\n themeName: preset.name,\n lightMode: preset.lightMode,\n darkMode: preset.darkMode,\n })\n\n let styleElement = document.getElementById(STYLE_ID) as HTMLStyleElement | null\n if (!styleElement) {\n styleElement = document.createElement('style')\n styleElement.id = STYLE_ID\n document.head.appendChild(styleElement)\n }\n styleElement.innerHTML = css\n document.documentElement.setAttribute('data-theme', preset.name)\n}\n\n/**\n * Front-end theme-preset switcher. Lets visitors swap between bundled (or a\n * curated subset of) theme presets at runtime by injecting the preset's colour\n * CSS and updating `data-theme`. The choice is persisted to localStorage and\n * restored on the next visit.\n *\n * Note: colour-mode (light/dark) is handled by {@link ColorModeToggle} and the\n * SSR injector with no flash; preset switching re-applies on mount, so a brief\n * flash to the SSR default can occur before the stored preset is restored.\n *\n * @example\n * ```tsx\n * import { ThemeSwitcher } from '@kilivi/payloadcms-theme-management/components/ThemeSwitcher'\n * <ThemeSwitcher presets={[oceanPreset, forestPreset]} />\n * ```\n */\nexport const ThemeSwitcher: React.FC<ThemeSwitcherProps> = ({\n presets,\n className,\n style,\n 'aria-label': ariaLabel,\n persist = true,\n onChange,\n}) => {\n const list: SwitchablePreset[] = presets && presets.length > 0 ? presets : allThemePresets\n const [selected, setSelected] = useState<string>('')\n\n // Restore the stored preset (or reflect the current data-theme) after mount.\n useEffect(() => {\n if (typeof document === 'undefined') return\n\n const current = document.documentElement.getAttribute('data-theme') ?? ''\n const stored = persist ? window.localStorage.getItem(themeLocalStorageKey) : null\n const initial = stored && list.some((p) => p.name === stored) ? stored : current\n\n if (initial) {\n setSelected(initial)\n const preset = list.find((p) => p.name === initial)\n // Only re-inject when the stored preset differs from what SSR rendered.\n if (preset && stored && stored !== current) {\n applyPreset(preset)\n }\n }\n // Intentionally run once on mount to restore the persisted preset.\n }, [])\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) => {\n const name = event.target.value\n const preset = list.find((p) => p.name === name)\n if (!preset) return\n\n setSelected(name)\n applyPreset(preset)\n if (persist) {\n window.localStorage.setItem(themeLocalStorageKey, name)\n }\n onChange?.(name)\n },\n [list, persist, onChange],\n )\n\n return (\n <select\n value={selected}\n onChange={handleChange}\n className={className}\n style={style}\n aria-label={ariaLabel ?? 'Select theme'}\n >\n {list.map((preset) => (\n <option key={preset.name} value={preset.name}>\n {preset.label}\n </option>\n ))}\n </select>\n )\n}\n\nexport default ThemeSwitcher\n"],"names":["React","useCallback","useEffect","useState","allThemePresets","themeLocalStorageKey","generateThemeColorsCss","STYLE_ID","applyPreset","preset","document","css","themeName","name","lightMode","darkMode","styleElement","getElementById","createElement","id","head","appendChild","innerHTML","documentElement","setAttribute","ThemeSwitcher","presets","className","style","ariaLabel","persist","onChange","list","length","selected","setSelected","current","getAttribute","stored","window","localStorage","getItem","initial","some","p","find","handleChange","event","target","value","setItem","select","aria-label","map","option","label"],"mappings":"AAAA;;AAEA,OAAOA,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAC/D,SAASC,eAAe,QAA0B,gBAAe;AACjE,SAASC,oBAAoB,QAAQ,+BAA8B;AACnE,SAASC,sBAAsB,QAAQ,0BAAyB;AAEhE,MAAMC,WAAW;AAmBjB,MAAMC,cAAc,CAACC;IACnB,IAAI,OAAOC,aAAa,aAAa;IAErC,8EAA8E;IAC9E,+EAA+E;IAC/E,MAAMC,MAAML,uBAAuB;QACjCM,WAAWH,OAAOI,IAAI;QACtBC,WAAWL,OAAOK,SAAS;QAC3BC,UAAUN,OAAOM,QAAQ;IAC3B;IAEA,IAAIC,eAAeN,SAASO,cAAc,CAACV;IAC3C,IAAI,CAACS,cAAc;QACjBA,eAAeN,SAASQ,aAAa,CAAC;QACtCF,aAAaG,EAAE,GAAGZ;QAClBG,SAASU,IAAI,CAACC,WAAW,CAACL;IAC5B;IACAA,aAAaM,SAAS,GAAGX;IACzBD,SAASa,eAAe,CAACC,YAAY,CAAC,cAAcf,OAAOI,IAAI;AACjE;AAEA;;;;;;;;;;;;;;;CAeC,GACD,OAAO,MAAMY,gBAA8C,CAAC,EAC1DC,OAAO,EACPC,SAAS,EACTC,KAAK,EACL,cAAcC,SAAS,EACvBC,UAAU,IAAI,EACdC,QAAQ,EACT;IACC,MAAMC,OAA2BN,WAAWA,QAAQO,MAAM,GAAG,IAAIP,UAAUtB;IAC3E,MAAM,CAAC8B,UAAUC,YAAY,GAAGhC,SAAiB;IAEjD,6EAA6E;IAC7ED,UAAU;QACR,IAAI,OAAOQ,aAAa,aAAa;QAErC,MAAM0B,UAAU1B,SAASa,eAAe,CAACc,YAAY,CAAC,iBAAiB;QACvE,MAAMC,SAASR,UAAUS,OAAOC,YAAY,CAACC,OAAO,CAACpC,wBAAwB;QAC7E,MAAMqC,UAAUJ,UAAUN,KAAKW,IAAI,CAAC,CAACC,IAAMA,EAAE/B,IAAI,KAAKyB,UAAUA,SAASF;QAEzE,IAAIM,SAAS;YACXP,YAAYO;YACZ,MAAMjC,SAASuB,KAAKa,IAAI,CAAC,CAACD,IAAMA,EAAE/B,IAAI,KAAK6B;YAC3C,wEAAwE;YACxE,IAAIjC,UAAU6B,UAAUA,WAAWF,SAAS;gBAC1C5B,YAAYC;YACd;QACF;IACA,mEAAmE;IACrE,GAAG,EAAE;IAEL,MAAMqC,eAAe7C,YACnB,CAAC8C;QACC,MAAMlC,OAAOkC,MAAMC,MAAM,CAACC,KAAK;QAC/B,MAAMxC,SAASuB,KAAKa,IAAI,CAAC,CAACD,IAAMA,EAAE/B,IAAI,KAAKA;QAC3C,IAAI,CAACJ,QAAQ;QAEb0B,YAAYtB;QACZL,YAAYC;QACZ,IAAIqB,SAAS;YACXS,OAAOC,YAAY,CAACU,OAAO,CAAC7C,sBAAsBQ;QACpD;QACAkB,WAAWlB;IACb,GACA;QAACmB;QAAMF;QAASC;KAAS;IAG3B,qBACE,KAACoB;QACCF,OAAOf;QACPH,UAAUe;QACVnB,WAAWA;QACXC,OAAOA;QACPwB,cAAYvB,aAAa;kBAExBG,KAAKqB,GAAG,CAAC,CAAC5C,uBACT,KAAC6C;gBAAyBL,OAAOxC,OAAOI,IAAI;0BACzCJ,OAAO8C,KAAK;eADF9C,OAAOI,IAAI;;AAMhC,EAAC;AAED,eAAeY,cAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typographyPreviewUtils.d.ts","sourceRoot":"","sources":["../../src/components/typographyPreviewUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typographyPreviewUtils.d.ts","sourceRoot":"","sources":["../../src/components/typographyPreviewUtils.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;CACrB;AAgFD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,EACjD,SAAS,CAAC,EAAE,MAAM,GACjB,yBAAyB,CAmC3B"}
|
|
@@ -3,11 +3,18 @@ import { defaultThemePresets } from '../presets.js';
|
|
|
3
3
|
const FALLBACK_THEME = defaultThemePresets[0]?.name ?? 'cool';
|
|
4
4
|
const fallbackPreset = defaultThemePresets.find((preset)=>preset.name === FALLBACK_THEME) ?? defaultThemePresets[0];
|
|
5
5
|
const FONT_VAR_FALLBACK = {
|
|
6
|
+
'var(--font-inter)': '"Inter", system-ui, sans-serif',
|
|
6
7
|
'var(--font-geist-sans)': '"Geist Sans", system-ui, sans-serif',
|
|
7
8
|
'var(--font-geist-mono)': '"Geist Mono", SFMono-Regular, ui-monospace, monospace',
|
|
8
|
-
'var(--font-
|
|
9
|
+
'var(--font-roboto)': '"Roboto", system-ui, sans-serif',
|
|
10
|
+
'var(--font-open-sans)': '"Open Sans", system-ui, sans-serif',
|
|
11
|
+
'var(--font-lato)': '"Lato", system-ui, sans-serif',
|
|
12
|
+
'var(--font-montserrat)': '"Montserrat", system-ui, sans-serif',
|
|
13
|
+
'var(--font-poppins)': '"Poppins", system-ui, sans-serif',
|
|
9
14
|
'var(--font-outfit)': '"Outfit", system-ui, sans-serif',
|
|
10
15
|
'var(--font-playfair)': '"Playfair Display", "Times New Roman", serif',
|
|
16
|
+
'var(--font-merriweather)': '"Merriweather", "Times New Roman", serif',
|
|
17
|
+
'var(--font-raleway)': '"Raleway", system-ui, sans-serif',
|
|
11
18
|
'var(--font-lora)': '"Lora", "Times New Roman", serif',
|
|
12
19
|
'var(--font-manrope)': '"Manrope", system-ui, sans-serif',
|
|
13
20
|
'var(--font-urbanist)': '"Urbanist", system-ui, sans-serif'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/typographyPreviewUtils.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../src/components/typographyPreviewUtils.ts"],"sourcesContent":["import {\n BODY_FONT_OPTIONS,\n FONT_VALUE_TO_CSS,\n HEADING_FONT_OPTIONS,\n} from '../constants/themeFonts.js'\nimport { defaultThemePresets } from '../presets.js'\n\nexport interface TypographySelection {\n bodyFont?: string | null\n headingFont?: string | null\n bodyFontCustom?: string | null\n headingFontCustom?: string | null\n baseFontSize?: string | null\n lineHeight?: string | null\n}\n\nexport interface ResolvedTypographyPreview {\n bodyFont: string\n headingFont: string\n baseFontSize: string\n lineHeight: string\n bodyLabel: string\n headingLabel: string\n}\n\nconst FALLBACK_THEME = defaultThemePresets[0]?.name ?? 'cool'\nconst fallbackPreset =\n defaultThemePresets.find((preset) => preset.name === FALLBACK_THEME) ?? defaultThemePresets[0]\n\nconst FONT_VAR_FALLBACK: Record<string, string> = {\n 'var(--font-inter)': '\"Inter\", system-ui, sans-serif',\n 'var(--font-geist-sans)': '\"Geist Sans\", system-ui, sans-serif',\n 'var(--font-geist-mono)': '\"Geist Mono\", SFMono-Regular, ui-monospace, monospace',\n 'var(--font-roboto)': '\"Roboto\", system-ui, sans-serif',\n 'var(--font-open-sans)': '\"Open Sans\", system-ui, sans-serif',\n 'var(--font-lato)': '\"Lato\", system-ui, sans-serif',\n 'var(--font-montserrat)': '\"Montserrat\", system-ui, sans-serif',\n 'var(--font-poppins)': '\"Poppins\", system-ui, sans-serif',\n 'var(--font-outfit)': '\"Outfit\", system-ui, sans-serif',\n 'var(--font-playfair)': '\"Playfair Display\", \"Times New Roman\", serif',\n 'var(--font-merriweather)': '\"Merriweather\", \"Times New Roman\", serif',\n 'var(--font-raleway)': '\"Raleway\", system-ui, sans-serif',\n 'var(--font-lora)': '\"Lora\", \"Times New Roman\", serif',\n 'var(--font-manrope)': '\"Manrope\", system-ui, sans-serif',\n 'var(--font-urbanist)': '\"Urbanist\", system-ui, sans-serif',\n}\n\nfunction withFallback(fontFamily: string, fallback: string): string {\n if (!fontFamily) return fallback\n\n if (fontFamily.startsWith('var(')) {\n const mappedFallback = FONT_VAR_FALLBACK[fontFamily] ?? fallback\n return `${fontFamily}, ${mappedFallback}`\n }\n\n return fontFamily\n}\n\nfunction getPresetTypography(themeName?: string) {\n const preset = defaultThemePresets.find((item) => item.name === themeName) ?? fallbackPreset\n return preset?.typography\n}\n\nfunction resolveFontFamily(\n value: string | null | undefined,\n customValue: string | null | undefined,\n fallback: string,\n): string {\n if (!value || value === 'preset') {\n return withFallback(fallback, fallbackPreset?.typography?.fontFamily ?? 'system-ui, sans-serif')\n }\n\n if (value === 'custom') {\n if (customValue && customValue.trim().length > 0) {\n return customValue.trim()\n }\n return withFallback(fallback, fallbackPreset?.typography?.fontFamily ?? 'system-ui, sans-serif')\n }\n\n const preconfigured = FONT_VALUE_TO_CSS[value]\n if (preconfigured) {\n return withFallback(\n preconfigured,\n fallbackPreset?.typography?.fontFamily ?? 'system-ui, sans-serif',\n )\n }\n\n return withFallback(fallback, fallbackPreset?.typography?.fontFamily ?? 'system-ui, sans-serif')\n}\n\nfunction resolveOptionLabel(\n options: ReadonlyArray<{ label: string | Record<string, string>; value: string }>,\n value?: string | null,\n locale: 'en' | 'cs' = 'en',\n): string {\n const option = options.find((item) => item.value === value)\n if (!option) return value ?? ''\n if (typeof option.label === 'string') {\n return option.label\n }\n return option.label?.[locale] ?? Object.values(option.label)[0] ?? option.value\n}\n\nexport function resolveTypographyPreview(\n selection: TypographySelection | null | undefined,\n themeName?: string,\n): ResolvedTypographyPreview {\n const presetTypography = getPresetTypography(themeName)\n const fallbackBody = presetTypography?.fontFamily ?? 'system-ui, sans-serif'\n const fallbackHeading = presetTypography?.headingFamily ?? fallbackBody\n const fallbackSize = presetTypography?.baseFontSize ?? '16px'\n const fallbackLineHeight = presetTypography?.lineHeight ?? '1.6'\n\n const bodyFontValue = selection?.bodyFont ?? 'preset'\n const headingFontValue = selection?.headingFont ?? 'preset'\n const bodyFontCustom = selection?.bodyFontCustom ?? undefined\n const headingFontCustom = selection?.headingFontCustom ?? undefined\n const resolvedBodyFont = resolveFontFamily(bodyFontValue, bodyFontCustom, fallbackBody)\n const resolvedHeadingFont = resolveFontFamily(\n headingFontValue,\n headingFontCustom,\n fallbackHeading,\n )\n\n const baseFontSize =\n selection?.baseFontSize && selection.baseFontSize !== 'preset'\n ? selection.baseFontSize\n : fallbackSize\n const lineHeight =\n selection?.lineHeight && selection.lineHeight !== 'preset'\n ? selection.lineHeight\n : fallbackLineHeight\n\n return {\n bodyFont: resolvedBodyFont,\n headingFont: resolvedHeadingFont,\n baseFontSize,\n lineHeight,\n bodyLabel: resolveOptionLabel(BODY_FONT_OPTIONS, bodyFontValue),\n headingLabel: resolveOptionLabel(HEADING_FONT_OPTIONS, headingFontValue),\n }\n}\n"],"names":["BODY_FONT_OPTIONS","FONT_VALUE_TO_CSS","HEADING_FONT_OPTIONS","defaultThemePresets","FALLBACK_THEME","name","fallbackPreset","find","preset","FONT_VAR_FALLBACK","withFallback","fontFamily","fallback","startsWith","mappedFallback","getPresetTypography","themeName","item","typography","resolveFontFamily","value","customValue","trim","length","preconfigured","resolveOptionLabel","options","locale","option","label","Object","values","resolveTypographyPreview","selection","presetTypography","fallbackBody","fallbackHeading","headingFamily","fallbackSize","baseFontSize","fallbackLineHeight","lineHeight","bodyFontValue","bodyFont","headingFontValue","headingFont","bodyFontCustom","undefined","headingFontCustom","resolvedBodyFont","resolvedHeadingFont","bodyLabel","headingLabel"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared device-preview definitions used by:
|
|
3
|
+
* - the in-admin live preview panels (AppearancePreviewField / ThemePreviewField device switcher)
|
|
4
|
+
* - the native Payload Live Preview toolbar (admin.livePreview.breakpoints)
|
|
5
|
+
*
|
|
6
|
+
* Keeping a single source of truth means the device chrome shown inside the
|
|
7
|
+
* theme editor matches the iframe sizes editors get in the real Live Preview.
|
|
8
|
+
*/
|
|
9
|
+
export type DevicePreviewId = 'mobile' | 'tablet' | 'desktop';
|
|
10
|
+
export type DevicePreview = {
|
|
11
|
+
/** Stable identifier, also used as Payload breakpoint `name`. */
|
|
12
|
+
id: DevicePreviewId;
|
|
13
|
+
/** Human-readable label (bilingual handled at the UI layer). */
|
|
14
|
+
label: string;
|
|
15
|
+
/** Czech label for admin UI. */
|
|
16
|
+
labelCs: string;
|
|
17
|
+
/** Viewport width in px. */
|
|
18
|
+
width: number;
|
|
19
|
+
/** Viewport height in px. */
|
|
20
|
+
height: number;
|
|
21
|
+
};
|
|
22
|
+
export declare const DEVICE_PREVIEWS: readonly DevicePreview[];
|
|
23
|
+
export declare const DEFAULT_DEVICE_PREVIEW_ID: DevicePreviewId;
|
|
24
|
+
export declare const getDevicePreview: (id: DevicePreviewId) => DevicePreview;
|
|
25
|
+
/**
|
|
26
|
+
* Default breakpoints for Payload's native Live Preview toolbar.
|
|
27
|
+
* Derived from DEVICE_PREVIEWS so both stay in sync.
|
|
28
|
+
*/
|
|
29
|
+
export declare const DEFAULT_LIVE_PREVIEW_BREAKPOINTS: Array<{
|
|
30
|
+
name: string;
|
|
31
|
+
label: string;
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
}>;
|
|
35
|
+
//# sourceMappingURL=devicePreviews.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devicePreviews.d.ts","sourceRoot":"","sources":["../../src/constants/devicePreviews.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,iEAAiE;IACjE,EAAE,EAAE,eAAe,CAAA;IACnB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAsB1C,CAAA;AAEV,eAAO,MAAM,yBAAyB,EAAE,eAA2B,CAAA;AAEnE,eAAO,MAAM,gBAAgB,GAAI,IAAI,eAAe,KAAG,aAC4C,CAAA;AAEnG;;;GAGG;AACH,eAAO,MAAM,gCAAgC,EAAE,KAAK,CAAC;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAKE,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared device-preview definitions used by:
|
|
3
|
+
* - the in-admin live preview panels (AppearancePreviewField / ThemePreviewField device switcher)
|
|
4
|
+
* - the native Payload Live Preview toolbar (admin.livePreview.breakpoints)
|
|
5
|
+
*
|
|
6
|
+
* Keeping a single source of truth means the device chrome shown inside the
|
|
7
|
+
* theme editor matches the iframe sizes editors get in the real Live Preview.
|
|
8
|
+
*/ export const DEVICE_PREVIEWS = [
|
|
9
|
+
{
|
|
10
|
+
id: 'mobile',
|
|
11
|
+
label: 'Mobile',
|
|
12
|
+
labelCs: 'Mobil',
|
|
13
|
+
width: 390,
|
|
14
|
+
height: 844
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
id: 'tablet',
|
|
18
|
+
label: 'Tablet',
|
|
19
|
+
labelCs: 'Tablet',
|
|
20
|
+
width: 768,
|
|
21
|
+
height: 1024
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: 'desktop',
|
|
25
|
+
label: 'Desktop',
|
|
26
|
+
labelCs: 'Desktop',
|
|
27
|
+
width: 1440,
|
|
28
|
+
height: 900
|
|
29
|
+
}
|
|
30
|
+
];
|
|
31
|
+
export const DEFAULT_DEVICE_PREVIEW_ID = 'desktop';
|
|
32
|
+
export const getDevicePreview = (id)=>DEVICE_PREVIEWS.find((device)=>device.id === id) ?? DEVICE_PREVIEWS[DEVICE_PREVIEWS.length - 1];
|
|
33
|
+
/**
|
|
34
|
+
* Default breakpoints for Payload's native Live Preview toolbar.
|
|
35
|
+
* Derived from DEVICE_PREVIEWS so both stay in sync.
|
|
36
|
+
*/ export const DEFAULT_LIVE_PREVIEW_BREAKPOINTS = DEVICE_PREVIEWS.map((device)=>({
|
|
37
|
+
name: device.id,
|
|
38
|
+
label: device.label,
|
|
39
|
+
width: device.width,
|
|
40
|
+
height: device.height
|
|
41
|
+
}));
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=devicePreviews.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/constants/devicePreviews.ts"],"sourcesContent":["/**\n * Shared device-preview definitions used by:\n * - the in-admin live preview panels (AppearancePreviewField / ThemePreviewField device switcher)\n * - the native Payload Live Preview toolbar (admin.livePreview.breakpoints)\n *\n * Keeping a single source of truth means the device chrome shown inside the\n * theme editor matches the iframe sizes editors get in the real Live Preview.\n */\n\nexport type DevicePreviewId = 'mobile' | 'tablet' | 'desktop'\n\nexport type DevicePreview = {\n /** Stable identifier, also used as Payload breakpoint `name`. */\n id: DevicePreviewId\n /** Human-readable label (bilingual handled at the UI layer). */\n label: string\n /** Czech label for admin UI. */\n labelCs: string\n /** Viewport width in px. */\n width: number\n /** Viewport height in px. */\n height: number\n}\n\nexport const DEVICE_PREVIEWS: readonly DevicePreview[] = [\n {\n id: 'mobile',\n label: 'Mobile',\n labelCs: 'Mobil',\n width: 390,\n height: 844,\n },\n {\n id: 'tablet',\n label: 'Tablet',\n labelCs: 'Tablet',\n width: 768,\n height: 1024,\n },\n {\n id: 'desktop',\n label: 'Desktop',\n labelCs: 'Desktop',\n width: 1440,\n height: 900,\n },\n] as const\n\nexport const DEFAULT_DEVICE_PREVIEW_ID: DevicePreviewId = 'desktop'\n\nexport const getDevicePreview = (id: DevicePreviewId): DevicePreview =>\n DEVICE_PREVIEWS.find((device) => device.id === id) ?? DEVICE_PREVIEWS[DEVICE_PREVIEWS.length - 1]\n\n/**\n * Default breakpoints for Payload's native Live Preview toolbar.\n * Derived from DEVICE_PREVIEWS so both stay in sync.\n */\nexport const DEFAULT_LIVE_PREVIEW_BREAKPOINTS: Array<{\n name: string\n label: string\n width: number\n height: number\n}> = DEVICE_PREVIEWS.map((device) => ({\n name: device.id,\n label: device.label,\n width: device.width,\n height: device.height,\n}))\n"],"names":["DEVICE_PREVIEWS","id","label","labelCs","width","height","DEFAULT_DEVICE_PREVIEW_ID","getDevicePreview","find","device","length","DEFAULT_LIVE_PREVIEW_BREAKPOINTS","map","name"],"mappings":"AAAA;;;;;;;CAOC,GAiBD,OAAO,MAAMA,kBAA4C;IACvD;QACEC,IAAI;QACJC,OAAO;QACPC,SAAS;QACTC,OAAO;QACPC,QAAQ;IACV;IACA;QACEJ,IAAI;QACJC,OAAO;QACPC,SAAS;QACTC,OAAO;QACPC,QAAQ;IACV;IACA;QACEJ,IAAI;QACJC,OAAO;QACPC,SAAS;QACTC,OAAO;QACPC,QAAQ;IACV;CACD,CAAS;AAEV,OAAO,MAAMC,4BAA6C,UAAS;AAEnE,OAAO,MAAMC,mBAAmB,CAACN,KAC/BD,gBAAgBQ,IAAI,CAAC,CAACC,SAAWA,OAAOR,EAAE,KAAKA,OAAOD,eAAe,CAACA,gBAAgBU,MAAM,GAAG,EAAE,CAAA;AAEnG;;;CAGC,GACD,OAAO,MAAMC,mCAKRX,gBAAgBY,GAAG,CAAC,CAACH,SAAY,CAAA;QACpCI,MAAMJ,OAAOR,EAAE;QACfC,OAAOO,OAAOP,KAAK;QACnBE,OAAOK,OAAOL,KAAK;QACnBC,QAAQI,OAAOJ,MAAM;IACvB,CAAA,GAAG"}
|
|
@@ -202,15 +202,15 @@ export const LINE_HEIGHT_OPTIONS = [
|
|
|
202
202
|
];
|
|
203
203
|
export const FONT_VALUE_TO_CSS = {
|
|
204
204
|
'system-ui': 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
|
|
205
|
-
Inter: '"Inter", sans-serif',
|
|
206
|
-
Roboto: '"Roboto", sans-serif',
|
|
207
|
-
'Open Sans': '"Open Sans", sans-serif',
|
|
208
|
-
Lato: '"Lato", sans-serif',
|
|
209
|
-
Montserrat: '"Montserrat", sans-serif',
|
|
210
|
-
Poppins: '"Poppins", sans-serif',
|
|
211
|
-
'Playfair Display': '"Playfair Display", serif',
|
|
212
|
-
Merriweather: '"Merriweather", serif',
|
|
213
|
-
Raleway: '"Raleway", sans-serif'
|
|
205
|
+
Inter: 'var(--font-inter, var(--font-geist-sans), "Inter", sans-serif)',
|
|
206
|
+
Roboto: 'var(--font-roboto, "Roboto", sans-serif)',
|
|
207
|
+
'Open Sans': 'var(--font-open-sans, "Open Sans", sans-serif)',
|
|
208
|
+
Lato: 'var(--font-lato, "Lato", sans-serif)',
|
|
209
|
+
Montserrat: 'var(--font-montserrat, "Montserrat", sans-serif)',
|
|
210
|
+
Poppins: 'var(--font-poppins, "Poppins", sans-serif)',
|
|
211
|
+
'Playfair Display': 'var(--font-playfair, "Playfair Display", serif)',
|
|
212
|
+
Merriweather: 'var(--font-merriweather, "Merriweather", serif)',
|
|
213
|
+
Raleway: 'var(--font-raleway, "Raleway", sans-serif)'
|
|
214
214
|
};
|
|
215
215
|
|
|
216
216
|
//# sourceMappingURL=themeFonts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/constants/themeFonts.ts"],"sourcesContent":["// Theme font constants for the plugin\nexport const BODY_FONT_OPTIONS = [\n { label: { en: 'Use theme preset', cs: 'Použít výchozí' }, value: 'preset' },\n {\n label: { en: 'System', cs: 'Systémové' },\n value: 'system-ui',\n fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Inter', cs: 'Inter' },\n value: 'Inter',\n fontFamily: '\"Inter\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Roboto', cs: 'Roboto' },\n value: 'Roboto',\n fontFamily: '\"Roboto\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Open Sans', cs: 'Open Sans' },\n value: 'Open Sans',\n fontFamily: '\"Open Sans\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Lato', cs: 'Lato' },\n value: 'Lato',\n fontFamily: '\"Lato\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Montserrat', cs: 'Montserrat' },\n value: 'Montserrat',\n fontFamily: '\"Montserrat\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Poppins', cs: 'Poppins' },\n value: 'Poppins',\n fontFamily: '\"Poppins\", sans-serif',\n category: 'sans-serif' as const,\n },\n { label: { en: 'Custom font...', cs: 'Vlastní písmo...' }, value: 'custom' },\n] as const\n\nexport const HEADING_FONT_OPTIONS = [\n { label: { en: 'Use theme preset', cs: 'Použít výchozí' }, value: 'preset' },\n {\n label: { en: 'System', cs: 'Systémové' },\n value: 'system-ui',\n fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Inter', cs: 'Inter' },\n value: 'Inter',\n fontFamily: '\"Inter\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Playfair Display', cs: 'Playfair Display' },\n value: 'Playfair Display',\n fontFamily: '\"Playfair Display\", serif',\n category: 'serif' as const,\n },\n {\n label: { en: 'Merriweather', cs: 'Merriweather' },\n value: 'Merriweather',\n fontFamily: '\"Merriweather\", serif',\n category: 'serif' as const,\n },\n {\n label: { en: 'Montserrat', cs: 'Montserrat' },\n value: 'Montserrat',\n fontFamily: '\"Montserrat\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Raleway', cs: 'Raleway' },\n value: 'Raleway',\n fontFamily: '\"Raleway\", sans-serif',\n category: 'sans-serif' as const,\n },\n { label: { en: 'Custom font...', cs: 'Vlastní písmo...' }, value: 'custom' },\n] as const\n\nexport const BASE_FONT_SIZE_OPTIONS = [\n { label: 'preset', value: 'preset' },\n { label: '14px', value: '14' },\n { label: '15px', value: '15' },\n { label: '16px', value: '16' },\n { label: '17px', value: '17' },\n { label: '18px', value: '18' },\n] as const\n\nexport const LINE_HEIGHT_OPTIONS = [\n { label: 'preset', value: 'preset' },\n { label: '1.4', value: '1.4' },\n { label: '1.5', value: '1.5' },\n { label: '1.6', value: '1.6' },\n { label: '1.7', value: '1.7' },\n { label: '1.8', value: '1.8' },\n] as const\n\nexport const FONT_VALUE_TO_CSS: Record<string, string> = {\n 'system-ui': 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n Inter: '\"Inter\", sans-serif',\n Roboto: '\"Roboto\", sans-serif',\n 'Open Sans': '\"Open Sans\", sans-serif',\n Lato: '\"Lato\", sans-serif',\n Montserrat: '\"Montserrat\", sans-serif',\n Poppins: '\"Poppins\", sans-serif',\n 'Playfair Display': '\"Playfair Display\", serif',\n Merriweather: '\"Merriweather\", serif',\n Raleway: '\"Raleway\", sans-serif',\n}\n"],"names":["BODY_FONT_OPTIONS","label","en","cs","value","fontFamily","category","HEADING_FONT_OPTIONS","BASE_FONT_SIZE_OPTIONS","LINE_HEIGHT_OPTIONS","FONT_VALUE_TO_CSS","Inter","Roboto","Lato","Montserrat","Poppins","Merriweather","Raleway"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/constants/themeFonts.ts"],"sourcesContent":["// Theme font constants for the plugin\nexport const BODY_FONT_OPTIONS = [\n { label: { en: 'Use theme preset', cs: 'Použít výchozí' }, value: 'preset' },\n {\n label: { en: 'System', cs: 'Systémové' },\n value: 'system-ui',\n fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Inter', cs: 'Inter' },\n value: 'Inter',\n fontFamily: '\"Inter\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Roboto', cs: 'Roboto' },\n value: 'Roboto',\n fontFamily: '\"Roboto\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Open Sans', cs: 'Open Sans' },\n value: 'Open Sans',\n fontFamily: '\"Open Sans\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Lato', cs: 'Lato' },\n value: 'Lato',\n fontFamily: '\"Lato\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Montserrat', cs: 'Montserrat' },\n value: 'Montserrat',\n fontFamily: '\"Montserrat\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Poppins', cs: 'Poppins' },\n value: 'Poppins',\n fontFamily: '\"Poppins\", sans-serif',\n category: 'sans-serif' as const,\n },\n { label: { en: 'Custom font...', cs: 'Vlastní písmo...' }, value: 'custom' },\n] as const\n\nexport const HEADING_FONT_OPTIONS = [\n { label: { en: 'Use theme preset', cs: 'Použít výchozí' }, value: 'preset' },\n {\n label: { en: 'System', cs: 'Systémové' },\n value: 'system-ui',\n fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Inter', cs: 'Inter' },\n value: 'Inter',\n fontFamily: '\"Inter\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Playfair Display', cs: 'Playfair Display' },\n value: 'Playfair Display',\n fontFamily: '\"Playfair Display\", serif',\n category: 'serif' as const,\n },\n {\n label: { en: 'Merriweather', cs: 'Merriweather' },\n value: 'Merriweather',\n fontFamily: '\"Merriweather\", serif',\n category: 'serif' as const,\n },\n {\n label: { en: 'Montserrat', cs: 'Montserrat' },\n value: 'Montserrat',\n fontFamily: '\"Montserrat\", sans-serif',\n category: 'sans-serif' as const,\n },\n {\n label: { en: 'Raleway', cs: 'Raleway' },\n value: 'Raleway',\n fontFamily: '\"Raleway\", sans-serif',\n category: 'sans-serif' as const,\n },\n { label: { en: 'Custom font...', cs: 'Vlastní písmo...' }, value: 'custom' },\n] as const\n\nexport const BASE_FONT_SIZE_OPTIONS = [\n { label: 'preset', value: 'preset' },\n { label: '14px', value: '14' },\n { label: '15px', value: '15' },\n { label: '16px', value: '16' },\n { label: '17px', value: '17' },\n { label: '18px', value: '18' },\n] as const\n\nexport const LINE_HEIGHT_OPTIONS = [\n { label: 'preset', value: 'preset' },\n { label: '1.4', value: '1.4' },\n { label: '1.5', value: '1.5' },\n { label: '1.6', value: '1.6' },\n { label: '1.7', value: '1.7' },\n { label: '1.8', value: '1.8' },\n] as const\n\nexport const FONT_VALUE_TO_CSS: Record<string, string> = {\n 'system-ui': 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n Inter: 'var(--font-inter, var(--font-geist-sans), \"Inter\", sans-serif)',\n Roboto: 'var(--font-roboto, \"Roboto\", sans-serif)',\n 'Open Sans': 'var(--font-open-sans, \"Open Sans\", sans-serif)',\n Lato: 'var(--font-lato, \"Lato\", sans-serif)',\n Montserrat: 'var(--font-montserrat, \"Montserrat\", sans-serif)',\n Poppins: 'var(--font-poppins, \"Poppins\", sans-serif)',\n 'Playfair Display': 'var(--font-playfair, \"Playfair Display\", serif)',\n Merriweather: 'var(--font-merriweather, \"Merriweather\", serif)',\n Raleway: 'var(--font-raleway, \"Raleway\", sans-serif)',\n}\n"],"names":["BODY_FONT_OPTIONS","label","en","cs","value","fontFamily","category","HEADING_FONT_OPTIONS","BASE_FONT_SIZE_OPTIONS","LINE_HEIGHT_OPTIONS","FONT_VALUE_TO_CSS","Inter","Roboto","Lato","Montserrat","Poppins","Merriweather","Raleway"],"mappings":"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"}
|
|
@@ -70,8 +70,4 @@ export declare const allExtendedThemePresets: {
|
|
|
70
70
|
* Convert extended theme to CSS variables
|
|
71
71
|
*/
|
|
72
72
|
export declare function extendedThemeToCSSVariables(theme: ExtendedThemePreset, mode?: 'light' | 'dark'): string;
|
|
73
|
-
/**
|
|
74
|
-
* Generate complete CSS for an extended theme
|
|
75
|
-
*/
|
|
76
|
-
export declare function generateExtendedThemeCSS(theme: ExtendedThemePreset): string;
|
|
77
73
|
//# sourceMappingURL=extended-presets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extended-presets.d.ts","sourceRoot":"","sources":["../src/extended-presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,iBAAiB;IAEhC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAGlB,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,EAAE,MAAM,CAAA;IAGzB,OAAO,EAAE,MAAM,CAAA;IACf,oBAAoB,EAAE,MAAM,CAAA;IAG5B,OAAO,EAAE,MAAM,CAAA;IACf,oBAAoB,EAAE,MAAM,CAAA;IAG5B,SAAS,EAAE,MAAM,CAAA;IACjB,sBAAsB,EAAE,MAAM,CAAA;IAG9B,KAAK,EAAE,MAAM,CAAA;IACb,kBAAkB,EAAE,MAAM,CAAA;IAG1B,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,EAAE,MAAM,CAAA;IAG3B,WAAW,EAAE,MAAM,CAAA;IACnB,wBAAwB,EAAE,MAAM,CAAA;IAGhC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IAGZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IAGjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAG1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE;QACN,KAAK,EAAE,iBAAiB,CAAA;QACxB,IAAI,EAAE,iBAAiB,CAAA;KACxB,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAuLpE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB;;CAGnC,CAAA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,GAAE,OAAO,GAAG,MAAgB,GAC/B,MAAM,CASR
|
|
1
|
+
{"version":3,"file":"extended-presets.d.ts","sourceRoot":"","sources":["../src/extended-presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,iBAAiB;IAEhC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAGlB,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,EAAE,MAAM,CAAA;IAGzB,OAAO,EAAE,MAAM,CAAA;IACf,oBAAoB,EAAE,MAAM,CAAA;IAG5B,OAAO,EAAE,MAAM,CAAA;IACf,oBAAoB,EAAE,MAAM,CAAA;IAG5B,SAAS,EAAE,MAAM,CAAA;IACjB,sBAAsB,EAAE,MAAM,CAAA;IAG9B,KAAK,EAAE,MAAM,CAAA;IACb,kBAAkB,EAAE,MAAM,CAAA;IAG1B,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,EAAE,MAAM,CAAA;IAG3B,WAAW,EAAE,MAAM,CAAA;IACnB,wBAAwB,EAAE,MAAM,CAAA;IAGhC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IAGZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IAGjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAG1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE;QACN,KAAK,EAAE,iBAAiB,CAAA;QACxB,IAAI,EAAE,iBAAiB,CAAA;KACxB,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAuLpE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB;;CAGnC,CAAA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,GAAE,OAAO,GAAG,MAAgB,GAC/B,MAAM,CASR"}
|
package/dist/extended-presets.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Extended Shadcn-style theme presets with full color token support
|
|
3
3
|
* Inspired by https://ui.shadcn.com/themes and https://tweakcn.com/editor/theme
|
|
4
|
-
*
|
|
4
|
+
*
|
|
5
5
|
* This extends the existing theme system with:
|
|
6
6
|
* - Full shadcn/ui color tokens
|
|
7
7
|
* - OKLCH color format support
|
|
@@ -210,22 +210,5 @@
|
|
|
210
210
|
});
|
|
211
211
|
return cssVars.join('\n');
|
|
212
212
|
}
|
|
213
|
-
/**
|
|
214
|
-
* Generate complete CSS for an extended theme
|
|
215
|
-
*/ export function generateExtendedThemeCSS(theme) {
|
|
216
|
-
const lightCSS = extendedThemeToCSSVariables(theme, 'light');
|
|
217
|
-
const darkCSS = extendedThemeToCSSVariables(theme, 'dark');
|
|
218
|
-
return `:root {
|
|
219
|
-
${lightCSS}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
.dark {
|
|
223
|
-
${darkCSS}
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
[data-theme-mode="dark"] {
|
|
227
|
-
${darkCSS}
|
|
228
|
-
}`;
|
|
229
|
-
}
|
|
230
213
|
|
|
231
214
|
//# sourceMappingURL=extended-presets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/extended-presets.ts"],"sourcesContent":["/**\n * Extended Shadcn-style theme presets with full color token support\n * Inspired by https://ui.shadcn.com/themes and https://tweakcn.com/editor/theme\n * \n * This extends the existing theme system with:\n * - Full shadcn/ui color tokens\n * - OKLCH color format support\n * - Chart colors (chart-1 through chart-5)\n * - Semantic color tokens (destructive, muted, accent, etc.)\n * - CSS variable generation for Tailwind integration\n */\n\nimport { tweakcnThemePresets } from './tweakcn-presets.js'\n\nexport interface ShadcnColorTokens {\n // Base colors\n background: string\n foreground: string\n \n // Card colors\n card: string\n 'card-foreground': string\n \n // Popover colors\n popover: string\n 'popover-foreground': string\n \n // Primary colors\n primary: string\n 'primary-foreground': string\n \n // Secondary colors\n secondary: string\n 'secondary-foreground': string\n \n // Muted colors\n muted: string\n 'muted-foreground': string\n \n // Accent colors\n accent: string\n 'accent-foreground': string\n \n // Destructive colors\n destructive: string\n 'destructive-foreground': string\n \n // Border & Input\n border: string\n input: string\n ring: string\n \n // Chart colors (for data visualization)\n 'chart-1': string\n 'chart-2': string\n 'chart-3': string\n 'chart-4': string\n 'chart-5': string\n \n // Shadow controls (TweakCN)\n 'shadow-color'?: string\n 'shadow-opacity'?: string\n 'shadow-blur'?: string\n 'shadow-spread'?: string\n 'shadow-offset-x'?: string\n 'shadow-offset-y'?: string\n \n // Font families (TweakCN)\n 'font-sans'?: string\n 'font-serif'?: string\n 'font-mono'?: string\n \n // Advanced typography (TweakCN)\n 'letter-spacing'?: string\n spacing?: string\n \n // Border radius\n radius?: string\n}\n\nexport interface ExtendedThemePreset {\n label: string\n value: string\n styles: {\n light: ShadcnColorTokens\n dark: ShadcnColorTokens\n }\n}\n\n/**\n * Extended theme presets with full shadcn/ui token support\n * These work alongside the existing default presets\n */\nexport const extendedThemePresets: Record<string, ExtendedThemePreset> = {\n 'cool-extended': {\n label: 'Cool & Professional (Extended)',\n value: 'cool-extended',\n styles: {\n light: {\n background: 'oklch(1 0 0)',\n foreground: 'oklch(0.145 0 0)',\n card: 'oklch(1 0 0)',\n 'card-foreground': 'oklch(0.145 0 0)',\n popover: 'oklch(1 0 0)',\n 'popover-foreground': 'oklch(0.145 0 0)',\n primary: 'oklch(0.549 0.184 250.847)',\n 'primary-foreground': 'oklch(0.985 0.005 250.847)',\n secondary: 'oklch(0.97 0 0)',\n 'secondary-foreground': 'oklch(0.205 0 0)',\n muted: 'oklch(0.97 0 0)',\n 'muted-foreground': 'oklch(0.556 0 0)',\n accent: 'oklch(0.97 0 0)',\n 'accent-foreground': 'oklch(0.205 0 0)',\n destructive: 'oklch(0.577 0.245 27.325)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(0.922 0 0)',\n input: 'oklch(0.922 0 0)',\n ring: 'oklch(0.549 0.184 250.847)',\n 'chart-1': 'oklch(0.549 0.184 250.847)',\n 'chart-2': 'oklch(0.645 0.168 250.847)',\n 'chart-3': 'oklch(0.445 0.204 250.847)',\n 'chart-4': 'oklch(0.349 0.184 250.847)',\n 'chart-5': 'oklch(0.749 0.124 250.847)',\n radius: '0.5rem',\n },\n dark: {\n background: 'oklch(0.145 0 0)',\n foreground: 'oklch(0.985 0 0)',\n card: 'oklch(0.205 0 0)',\n 'card-foreground': 'oklch(0.985 0 0)',\n popover: 'oklch(0.269 0 0)',\n 'popover-foreground': 'oklch(0.985 0 0)',\n primary: 'oklch(0.645 0.168 250.847)',\n 'primary-foreground': 'oklch(0.145 0.005 250.847)',\n secondary: 'oklch(0.269 0 0)',\n 'secondary-foreground': 'oklch(0.985 0 0)',\n muted: 'oklch(0.269 0 0)',\n 'muted-foreground': 'oklch(0.708 0 0)',\n accent: 'oklch(0.371 0 0)',\n 'accent-foreground': 'oklch(0.985 0 0)',\n destructive: 'oklch(0.704 0.191 22.216)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(1 0 0 / 10%)',\n input: 'oklch(1 0 0 / 15%)',\n ring: 'oklch(0.645 0.168 250.847)',\n 'chart-1': 'oklch(0.645 0.168 250.847)',\n 'chart-2': 'oklch(0.549 0.184 250.847)',\n 'chart-3': 'oklch(0.445 0.204 250.847)',\n 'chart-4': 'oklch(0.749 0.124 250.847)',\n 'chart-5': 'oklch(0.849 0.084 250.847)',\n radius: '0.5rem',\n },\n },\n },\n \n 'neon-extended': {\n label: 'Neon Cyberpunk (Extended)',\n value: 'neon-extended',\n styles: {\n light: {\n background: 'oklch(1 0 0)',\n foreground: 'oklch(0.145 0 0)',\n card: 'oklch(1 0 0)',\n 'card-foreground': 'oklch(0.145 0 0)',\n popover: 'oklch(1 0 0)',\n 'popover-foreground': 'oklch(0.145 0 0)',\n primary: 'oklch(0.628 0.258 328.363)',\n 'primary-foreground': 'oklch(0.985 0.015 328.363)',\n secondary: 'oklch(0.97 0 0)',\n 'secondary-foreground': 'oklch(0.205 0 0)',\n muted: 'oklch(0.97 0 0)',\n 'muted-foreground': 'oklch(0.556 0 0)',\n accent: 'oklch(0.749 0.168 305.365)',\n 'accent-foreground': 'oklch(0.985 0.015 305.365)',\n destructive: 'oklch(0.577 0.245 27.325)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(0.922 0 0)',\n input: 'oklch(0.922 0 0)',\n ring: 'oklch(0.628 0.258 328.363)',\n 'chart-1': 'oklch(0.628 0.258 328.363)',\n 'chart-2': 'oklch(0.749 0.168 305.365)',\n 'chart-3': 'oklch(0.645 0.234 286.897)',\n 'chart-4': 'oklch(0.545 0.298 328.363)',\n 'chart-5': 'oklch(0.845 0.118 305.365)',\n radius: '0.75rem',\n },\n dark: {\n background: 'oklch(0.125 0.028 305.365)',\n foreground: 'oklch(0.985 0.015 305.365)',\n card: 'oklch(0.185 0.028 305.365)',\n 'card-foreground': 'oklch(0.985 0.015 305.365)',\n popover: 'oklch(0.245 0.028 305.365)',\n 'popover-foreground': 'oklch(0.985 0.015 305.365)',\n primary: 'oklch(0.749 0.168 305.365)',\n 'primary-foreground': 'oklch(0.125 0.028 305.365)',\n secondary: 'oklch(0.245 0.028 305.365)',\n 'secondary-foreground': 'oklch(0.985 0.015 305.365)',\n muted: 'oklch(0.245 0.028 305.365)',\n 'muted-foreground': 'oklch(0.708 0.015 305.365)',\n accent: 'oklch(0.628 0.258 328.363)',\n 'accent-foreground': 'oklch(0.125 0.028 328.363)',\n destructive: 'oklch(0.704 0.191 22.216)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(1 0 0 / 15%)',\n input: 'oklch(1 0 0 / 20%)',\n ring: 'oklch(0.749 0.168 305.365)',\n 'chart-1': 'oklch(0.749 0.168 305.365)',\n 'chart-2': 'oklch(0.628 0.258 328.363)',\n 'chart-3': 'oklch(0.645 0.234 286.897)',\n 'chart-4': 'oklch(0.845 0.118 305.365)',\n 'chart-5': 'oklch(0.945 0.068 305.365)',\n radius: '0.75rem',\n },\n },\n },\n \n 'solar-extended': {\n label: 'Solar Warmth (Extended)',\n value: 'solar-extended',\n styles: {\n light: {\n background: 'oklch(0.985 0.01 83.124)',\n foreground: 'oklch(0.145 0 0)',\n card: 'oklch(1 0 0)',\n 'card-foreground': 'oklch(0.145 0 0)',\n popover: 'oklch(1 0 0)',\n 'popover-foreground': 'oklch(0.145 0 0)',\n primary: 'oklch(0.656 0.214 53.877)',\n 'primary-foreground': 'oklch(0.985 0.015 53.877)',\n secondary: 'oklch(0.97 0 0)',\n 'secondary-foreground': 'oklch(0.205 0 0)',\n muted: 'oklch(0.97 0 0)',\n 'muted-foreground': 'oklch(0.556 0 0)',\n accent: 'oklch(0.745 0.188 83.124)',\n 'accent-foreground': 'oklch(0.145 0 0)',\n destructive: 'oklch(0.577 0.245 27.325)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(0.922 0 0)',\n input: 'oklch(0.922 0 0)',\n ring: 'oklch(0.656 0.214 53.877)',\n 'chart-1': 'oklch(0.656 0.214 53.877)',\n 'chart-2': 'oklch(0.745 0.188 83.124)',\n 'chart-3': 'oklch(0.556 0.234 53.877)',\n 'chart-4': 'oklch(0.845 0.148 83.124)',\n 'chart-5': 'oklch(0.456 0.254 53.877)',\n radius: '0.625rem',\n },\n dark: {\n background: 'oklch(0.125 0.015 53.877)',\n foreground: 'oklch(0.985 0.015 83.124)',\n card: 'oklch(0.185 0.015 53.877)',\n 'card-foreground': 'oklch(0.985 0.015 83.124)',\n popover: 'oklch(0.245 0.015 53.877)',\n 'popover-foreground': 'oklch(0.985 0.015 83.124)',\n primary: 'oklch(0.745 0.188 83.124)',\n 'primary-foreground': 'oklch(0.125 0.015 83.124)',\n secondary: 'oklch(0.245 0.015 53.877)',\n 'secondary-foreground': 'oklch(0.985 0.015 83.124)',\n muted: 'oklch(0.245 0.015 53.877)',\n 'muted-foreground': 'oklch(0.708 0.015 83.124)',\n accent: 'oklch(0.656 0.214 53.877)',\n 'accent-foreground': 'oklch(0.985 0.015 53.877)',\n destructive: 'oklch(0.704 0.191 22.216)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(1 0 0 / 12%)',\n input: 'oklch(1 0 0 / 18%)',\n ring: 'oklch(0.745 0.188 83.124)',\n 'chart-1': 'oklch(0.745 0.188 83.124)',\n 'chart-2': 'oklch(0.656 0.214 53.877)',\n 'chart-3': 'oklch(0.845 0.148 83.124)',\n 'chart-4': 'oklch(0.556 0.234 53.877)',\n 'chart-5': 'oklch(0.945 0.088 83.124)',\n radius: '0.625rem',\n },\n },\n },\n}\n\n/**\n * All available extended theme presets (original + TweakCN)\n */\nexport const allExtendedThemePresets = {\n ...extendedThemePresets,\n ...tweakcnThemePresets,\n}\n\n/**\n * Convert extended theme to CSS variables\n */\nexport function extendedThemeToCSSVariables(\n theme: ExtendedThemePreset,\n mode: 'light' | 'dark' = 'light'\n): string {\n const tokens = theme.styles[mode]\n const cssVars: string[] = []\n \n Object.entries(tokens).forEach(([key, value]) => {\n cssVars.push(` --${key}: ${value};`)\n })\n \n return cssVars.join('\\n')\n}\n\n/**\n * Generate complete CSS for an extended theme\n */\nexport function generateExtendedThemeCSS(theme: ExtendedThemePreset): string {\n const lightCSS = extendedThemeToCSSVariables(theme, 'light')\n const darkCSS = extendedThemeToCSSVariables(theme, 'dark')\n \n return `:root {\n${lightCSS}\n}\n\n.dark {\n${darkCSS}\n}\n\n[data-theme-mode=\"dark\"] {\n${darkCSS}\n}`\n}\n"],"names":["tweakcnThemePresets","extendedThemePresets","label","value","styles","light","background","foreground","card","popover","primary","secondary","muted","accent","destructive","border","input","ring","radius","dark","allExtendedThemePresets","extendedThemeToCSSVariables","theme","mode","tokens","cssVars","Object","entries","forEach","key","push","join","generateExtendedThemeCSS","lightCSS","darkCSS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/extended-presets.ts"],"sourcesContent":["/**\n * Extended Shadcn-style theme presets with full color token support\n * Inspired by https://ui.shadcn.com/themes and https://tweakcn.com/editor/theme\n *\n * This extends the existing theme system with:\n * - Full shadcn/ui color tokens\n * - OKLCH color format support\n * - Chart colors (chart-1 through chart-5)\n * - Semantic color tokens (destructive, muted, accent, etc.)\n * - CSS variable generation for Tailwind integration\n */\n\nimport { tweakcnThemePresets } from './tweakcn-presets.js'\n\nexport interface ShadcnColorTokens {\n // Base colors\n background: string\n foreground: string\n\n // Card colors\n card: string\n 'card-foreground': string\n\n // Popover colors\n popover: string\n 'popover-foreground': string\n\n // Primary colors\n primary: string\n 'primary-foreground': string\n\n // Secondary colors\n secondary: string\n 'secondary-foreground': string\n\n // Muted colors\n muted: string\n 'muted-foreground': string\n\n // Accent colors\n accent: string\n 'accent-foreground': string\n\n // Destructive colors\n destructive: string\n 'destructive-foreground': string\n\n // Border & Input\n border: string\n input: string\n ring: string\n\n // Chart colors (for data visualization)\n 'chart-1': string\n 'chart-2': string\n 'chart-3': string\n 'chart-4': string\n 'chart-5': string\n\n // Shadow controls (TweakCN)\n 'shadow-color'?: string\n 'shadow-opacity'?: string\n 'shadow-blur'?: string\n 'shadow-spread'?: string\n 'shadow-offset-x'?: string\n 'shadow-offset-y'?: string\n\n // Font families (TweakCN)\n 'font-sans'?: string\n 'font-serif'?: string\n 'font-mono'?: string\n\n // Advanced typography (TweakCN)\n 'letter-spacing'?: string\n spacing?: string\n\n // Border radius\n radius?: string\n}\n\nexport interface ExtendedThemePreset {\n label: string\n value: string\n styles: {\n light: ShadcnColorTokens\n dark: ShadcnColorTokens\n }\n}\n\n/**\n * Extended theme presets with full shadcn/ui token support\n * These work alongside the existing default presets\n */\nexport const extendedThemePresets: Record<string, ExtendedThemePreset> = {\n 'cool-extended': {\n label: 'Cool & Professional (Extended)',\n value: 'cool-extended',\n styles: {\n light: {\n background: 'oklch(1 0 0)',\n foreground: 'oklch(0.145 0 0)',\n card: 'oklch(1 0 0)',\n 'card-foreground': 'oklch(0.145 0 0)',\n popover: 'oklch(1 0 0)',\n 'popover-foreground': 'oklch(0.145 0 0)',\n primary: 'oklch(0.549 0.184 250.847)',\n 'primary-foreground': 'oklch(0.985 0.005 250.847)',\n secondary: 'oklch(0.97 0 0)',\n 'secondary-foreground': 'oklch(0.205 0 0)',\n muted: 'oklch(0.97 0 0)',\n 'muted-foreground': 'oklch(0.556 0 0)',\n accent: 'oklch(0.97 0 0)',\n 'accent-foreground': 'oklch(0.205 0 0)',\n destructive: 'oklch(0.577 0.245 27.325)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(0.922 0 0)',\n input: 'oklch(0.922 0 0)',\n ring: 'oklch(0.549 0.184 250.847)',\n 'chart-1': 'oklch(0.549 0.184 250.847)',\n 'chart-2': 'oklch(0.645 0.168 250.847)',\n 'chart-3': 'oklch(0.445 0.204 250.847)',\n 'chart-4': 'oklch(0.349 0.184 250.847)',\n 'chart-5': 'oklch(0.749 0.124 250.847)',\n radius: '0.5rem',\n },\n dark: {\n background: 'oklch(0.145 0 0)',\n foreground: 'oklch(0.985 0 0)',\n card: 'oklch(0.205 0 0)',\n 'card-foreground': 'oklch(0.985 0 0)',\n popover: 'oklch(0.269 0 0)',\n 'popover-foreground': 'oklch(0.985 0 0)',\n primary: 'oklch(0.645 0.168 250.847)',\n 'primary-foreground': 'oklch(0.145 0.005 250.847)',\n secondary: 'oklch(0.269 0 0)',\n 'secondary-foreground': 'oklch(0.985 0 0)',\n muted: 'oklch(0.269 0 0)',\n 'muted-foreground': 'oklch(0.708 0 0)',\n accent: 'oklch(0.371 0 0)',\n 'accent-foreground': 'oklch(0.985 0 0)',\n destructive: 'oklch(0.704 0.191 22.216)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(1 0 0 / 10%)',\n input: 'oklch(1 0 0 / 15%)',\n ring: 'oklch(0.645 0.168 250.847)',\n 'chart-1': 'oklch(0.645 0.168 250.847)',\n 'chart-2': 'oklch(0.549 0.184 250.847)',\n 'chart-3': 'oklch(0.445 0.204 250.847)',\n 'chart-4': 'oklch(0.749 0.124 250.847)',\n 'chart-5': 'oklch(0.849 0.084 250.847)',\n radius: '0.5rem',\n },\n },\n },\n\n 'neon-extended': {\n label: 'Neon Cyberpunk (Extended)',\n value: 'neon-extended',\n styles: {\n light: {\n background: 'oklch(1 0 0)',\n foreground: 'oklch(0.145 0 0)',\n card: 'oklch(1 0 0)',\n 'card-foreground': 'oklch(0.145 0 0)',\n popover: 'oklch(1 0 0)',\n 'popover-foreground': 'oklch(0.145 0 0)',\n primary: 'oklch(0.628 0.258 328.363)',\n 'primary-foreground': 'oklch(0.985 0.015 328.363)',\n secondary: 'oklch(0.97 0 0)',\n 'secondary-foreground': 'oklch(0.205 0 0)',\n muted: 'oklch(0.97 0 0)',\n 'muted-foreground': 'oklch(0.556 0 0)',\n accent: 'oklch(0.749 0.168 305.365)',\n 'accent-foreground': 'oklch(0.985 0.015 305.365)',\n destructive: 'oklch(0.577 0.245 27.325)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(0.922 0 0)',\n input: 'oklch(0.922 0 0)',\n ring: 'oklch(0.628 0.258 328.363)',\n 'chart-1': 'oklch(0.628 0.258 328.363)',\n 'chart-2': 'oklch(0.749 0.168 305.365)',\n 'chart-3': 'oklch(0.645 0.234 286.897)',\n 'chart-4': 'oklch(0.545 0.298 328.363)',\n 'chart-5': 'oklch(0.845 0.118 305.365)',\n radius: '0.75rem',\n },\n dark: {\n background: 'oklch(0.125 0.028 305.365)',\n foreground: 'oklch(0.985 0.015 305.365)',\n card: 'oklch(0.185 0.028 305.365)',\n 'card-foreground': 'oklch(0.985 0.015 305.365)',\n popover: 'oklch(0.245 0.028 305.365)',\n 'popover-foreground': 'oklch(0.985 0.015 305.365)',\n primary: 'oklch(0.749 0.168 305.365)',\n 'primary-foreground': 'oklch(0.125 0.028 305.365)',\n secondary: 'oklch(0.245 0.028 305.365)',\n 'secondary-foreground': 'oklch(0.985 0.015 305.365)',\n muted: 'oklch(0.245 0.028 305.365)',\n 'muted-foreground': 'oklch(0.708 0.015 305.365)',\n accent: 'oklch(0.628 0.258 328.363)',\n 'accent-foreground': 'oklch(0.125 0.028 328.363)',\n destructive: 'oklch(0.704 0.191 22.216)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(1 0 0 / 15%)',\n input: 'oklch(1 0 0 / 20%)',\n ring: 'oklch(0.749 0.168 305.365)',\n 'chart-1': 'oklch(0.749 0.168 305.365)',\n 'chart-2': 'oklch(0.628 0.258 328.363)',\n 'chart-3': 'oklch(0.645 0.234 286.897)',\n 'chart-4': 'oklch(0.845 0.118 305.365)',\n 'chart-5': 'oklch(0.945 0.068 305.365)',\n radius: '0.75rem',\n },\n },\n },\n\n 'solar-extended': {\n label: 'Solar Warmth (Extended)',\n value: 'solar-extended',\n styles: {\n light: {\n background: 'oklch(0.985 0.01 83.124)',\n foreground: 'oklch(0.145 0 0)',\n card: 'oklch(1 0 0)',\n 'card-foreground': 'oklch(0.145 0 0)',\n popover: 'oklch(1 0 0)',\n 'popover-foreground': 'oklch(0.145 0 0)',\n primary: 'oklch(0.656 0.214 53.877)',\n 'primary-foreground': 'oklch(0.985 0.015 53.877)',\n secondary: 'oklch(0.97 0 0)',\n 'secondary-foreground': 'oklch(0.205 0 0)',\n muted: 'oklch(0.97 0 0)',\n 'muted-foreground': 'oklch(0.556 0 0)',\n accent: 'oklch(0.745 0.188 83.124)',\n 'accent-foreground': 'oklch(0.145 0 0)',\n destructive: 'oklch(0.577 0.245 27.325)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(0.922 0 0)',\n input: 'oklch(0.922 0 0)',\n ring: 'oklch(0.656 0.214 53.877)',\n 'chart-1': 'oklch(0.656 0.214 53.877)',\n 'chart-2': 'oklch(0.745 0.188 83.124)',\n 'chart-3': 'oklch(0.556 0.234 53.877)',\n 'chart-4': 'oklch(0.845 0.148 83.124)',\n 'chart-5': 'oklch(0.456 0.254 53.877)',\n radius: '0.625rem',\n },\n dark: {\n background: 'oklch(0.125 0.015 53.877)',\n foreground: 'oklch(0.985 0.015 83.124)',\n card: 'oklch(0.185 0.015 53.877)',\n 'card-foreground': 'oklch(0.985 0.015 83.124)',\n popover: 'oklch(0.245 0.015 53.877)',\n 'popover-foreground': 'oklch(0.985 0.015 83.124)',\n primary: 'oklch(0.745 0.188 83.124)',\n 'primary-foreground': 'oklch(0.125 0.015 83.124)',\n secondary: 'oklch(0.245 0.015 53.877)',\n 'secondary-foreground': 'oklch(0.985 0.015 83.124)',\n muted: 'oklch(0.245 0.015 53.877)',\n 'muted-foreground': 'oklch(0.708 0.015 83.124)',\n accent: 'oklch(0.656 0.214 53.877)',\n 'accent-foreground': 'oklch(0.985 0.015 53.877)',\n destructive: 'oklch(0.704 0.191 22.216)',\n 'destructive-foreground': 'oklch(0.98 0 0)',\n border: 'oklch(1 0 0 / 12%)',\n input: 'oklch(1 0 0 / 18%)',\n ring: 'oklch(0.745 0.188 83.124)',\n 'chart-1': 'oklch(0.745 0.188 83.124)',\n 'chart-2': 'oklch(0.656 0.214 53.877)',\n 'chart-3': 'oklch(0.845 0.148 83.124)',\n 'chart-4': 'oklch(0.556 0.234 53.877)',\n 'chart-5': 'oklch(0.945 0.088 83.124)',\n radius: '0.625rem',\n },\n },\n },\n}\n\n/**\n * All available extended theme presets (original + TweakCN)\n */\nexport const allExtendedThemePresets = {\n ...extendedThemePresets,\n ...tweakcnThemePresets,\n}\n\n/**\n * Convert extended theme to CSS variables\n */\nexport function extendedThemeToCSSVariables(\n theme: ExtendedThemePreset,\n mode: 'light' | 'dark' = 'light',\n): string {\n const tokens = theme.styles[mode]\n const cssVars: string[] = []\n\n Object.entries(tokens).forEach(([key, value]) => {\n cssVars.push(` --${key}: ${value};`)\n })\n\n return cssVars.join('\\n')\n}\n"],"names":["tweakcnThemePresets","extendedThemePresets","label","value","styles","light","background","foreground","card","popover","primary","secondary","muted","accent","destructive","border","input","ring","radius","dark","allExtendedThemePresets","extendedThemeToCSSVariables","theme","mode","tokens","cssVars","Object","entries","forEach","key","push","join"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extended-themes.d.ts","sourceRoot":"","sources":["../src/extended-themes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"extended-themes.d.ts","sourceRoot":"","sources":["../src/extended-themes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,EAq+CvC,CAAA"}
|