@admin-layout/tailwind-design-pro 12.2.4-alpha.48 → 12.2.4-alpha.51
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/lib/components/Layout/ProTailwindLayout.d.ts.map +1 -1
- package/lib/components/Layout/ProTailwindLayout.js +14 -6
- package/lib/components/Layout/ProTailwindLayout.js.map +1 -1
- package/lib/components/SettingsThemeApplier/SettingsThemeApplier.d.ts +10 -0
- package/lib/components/SettingsThemeApplier/SettingsThemeApplier.d.ts.map +1 -0
- package/lib/components/SettingsThemeApplier/SettingsThemeApplier.js +23 -0
- package/lib/components/SettingsThemeApplier/SettingsThemeApplier.js.map +1 -0
- package/lib/components/SettingsThemeApplier/index.d.ts +2 -0
- package/lib/components/SettingsThemeApplier/index.d.ts.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/utils/settingsTheme.d.ts +40 -0
- package/lib/utils/settingsTheme.d.ts.map +1 -0
- package/lib/utils/settingsTheme.js +106 -0
- package/lib/utils/settingsTheme.js.map +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProTailwindLayout.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/ProTailwindLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEH,gBAAgB,EAMnB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,iBAAiB,CAAC,EAAE,KAAK,CAAC;YACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,GAAG,EAAE,MAAM,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;SAClB,CAAC,CAAC;KACN;CACJ;AASD,eAAO,MAAM,MAAM;;CAElB,CAAC;AACF,eAAO,MAAM,KAAK,EAAE,aAA+D,CAAC;AAkEpF,wBAAsB,MAAM,CAAC,MAAM,KAAA;;;;GAiClC;AACD,wBAAsB,YAAY,CAAC,EAAE,YAAY,EAAE;;CAAA,
|
|
1
|
+
{"version":3,"file":"ProTailwindLayout.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/ProTailwindLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEH,gBAAgB,EAMnB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,iBAAiB,CAAC,EAAE,KAAK,CAAC;YACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,GAAG,EAAE,MAAM,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;SAClB,CAAC,CAAC;KACN;CACJ;AASD,eAAO,MAAM,MAAM;;CAElB,CAAC;AACF,eAAO,MAAM,KAAK,EAAE,aAA+D,CAAC;AAkEpF,wBAAsB,MAAM,CAAC,MAAM,KAAA;;;;GAiClC;AACD,wBAAsB,YAAY,CAAC,EAAE,YAAY,EAAE;;CAAA,gBA4MlD;AAQD,eAAO,MAAM,gBAAgB,GAAI;;;CAA6B,YAE7D,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,qBAsDhE"}
|
|
@@ -212,8 +212,9 @@ async function clientLoader({
|
|
|
212
212
|
topLevelKeys: routeConfig?.map?.(r => r.key) || []
|
|
213
213
|
});
|
|
214
214
|
// Transform routes to menu format - the config already has hierarchical structure with nested routes
|
|
215
|
+
// Mirror the SSR pipeline: filter hidden/resource routes, sort by priority, recurse.
|
|
215
216
|
const transformToMenuData = routes => {
|
|
216
|
-
return routes.filter(r => !r.hideInMenu && !r.isResourceRoute && !r.path?.includes('/resources/')).map(route => {
|
|
217
|
+
return routes.filter(r => !r.hideInMenu && !r.isResourceRoute && !r.path?.includes('/resources/')).slice().sort((a, b) => (parseInt(a?.priority, 10) || 0) - (parseInt(b?.priority, 10) || 0)).map(route => {
|
|
217
218
|
const menuItem = {
|
|
218
219
|
key: route.key,
|
|
219
220
|
name: route.name,
|
|
@@ -230,11 +231,18 @@ async function clientLoader({
|
|
|
230
231
|
return menuItem;
|
|
231
232
|
});
|
|
232
233
|
};
|
|
233
|
-
//
|
|
234
|
-
//
|
|
235
|
-
|
|
236
|
-
const
|
|
237
|
-
|
|
234
|
+
// Use ONLY the `/` root-layout entry for the sidebar menu.
|
|
235
|
+
// The route generator emits multiple `root-layout` entries (e.g. `/` and `/o/:orgName`),
|
|
236
|
+
// but org-scoped routes (`/o/:orgName/*`) should not appear in the global SPA sidebar.
|
|
237
|
+
const rootLayouts = (routeConfig || []).filter?.(r => r.key === 'root-layout' && r.path === config.LAYOUT_ROOT && Array.isArray(r.routes) && r.routes.length > 0) || [];
|
|
238
|
+
// Deduplicate by route key so duplicates from multiple layout entries don't render twice
|
|
239
|
+
const seenKeys = new Set();
|
|
240
|
+
const menuRoutes = rootLayouts.length ? rootLayouts.flatMap(rl => rl.routes).filter(r => {
|
|
241
|
+
if (!r?.key || seenKeys.has(r.key)) return false;
|
|
242
|
+
seenKeys.add(r.key);
|
|
243
|
+
return true;
|
|
244
|
+
}) : routeConfig;
|
|
245
|
+
console.log('[ProTailwindLayout clientLoader] Root layouts found:', rootLayouts.length, rootLayouts.map(r => r.path));
|
|
238
246
|
console.log('[ProTailwindLayout clientLoader] Menu routes count:', menuRoutes?.length || 0);
|
|
239
247
|
const menuData = transformToMenuData(menuRoutes || []);
|
|
240
248
|
console.log('[ProTailwindLayout clientLoader] Final menuData:', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProTailwindLayout.js","sources":["../../../src/components/Layout/ProTailwindLayout.tsx"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ProTailwindLayout.js","sources":["../../../src/components/Layout/ProTailwindLayout.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reactive client-side applier — keeps `<html data-theme>`, the `dark` class
|
|
3
|
+
* and the user-override `<style>` block in sync with the Redux `settings`
|
|
4
|
+
* slice as the user mutates the SettingDrawer. Renders nothing.
|
|
5
|
+
*
|
|
6
|
+
* Server render is handled by `getServerThemeAttrs()` in root.tsx so the
|
|
7
|
+
* first paint already matches; this component only takes over on the client.
|
|
8
|
+
*/
|
|
9
|
+
export declare function SettingsThemeApplier(): any;
|
|
10
|
+
//# sourceMappingURL=SettingsThemeApplier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsThemeApplier.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsThemeApplier/SettingsThemeApplier.tsx"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,QAWnC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {useEffect}from'react';import {useSelector}from'react-redux';import {applyThemeToDom}from'../../utils/settingsTheme.js';/**
|
|
2
|
+
* Reactive client-side applier — keeps `<html data-theme>`, the `dark` class
|
|
3
|
+
* and the user-override `<style>` block in sync with the Redux `settings`
|
|
4
|
+
* slice as the user mutates the SettingDrawer. Renders nothing.
|
|
5
|
+
*
|
|
6
|
+
* Server render is handled by `getServerThemeAttrs()` in root.tsx so the
|
|
7
|
+
* first paint already matches; this component only takes over on the client.
|
|
8
|
+
*/
|
|
9
|
+
function SettingsThemeApplier() {
|
|
10
|
+
const theme = useSelector(s => s?.settings?.theme ?? s?.settings?.themeName);
|
|
11
|
+
const navTheme = useSelector(s => s?.settings?.navTheme);
|
|
12
|
+
const primaryColor = useSelector(s => s?.settings?.primaryColor);
|
|
13
|
+
const fontFamily = useSelector(s => s?.settings?.fontFamily);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
applyThemeToDom({
|
|
16
|
+
theme,
|
|
17
|
+
navTheme,
|
|
18
|
+
primaryColor,
|
|
19
|
+
fontFamily
|
|
20
|
+
});
|
|
21
|
+
}, [theme, navTheme, primaryColor, fontFamily]);
|
|
22
|
+
return null;
|
|
23
|
+
}export{SettingsThemeApplier};//# sourceMappingURL=SettingsThemeApplier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsThemeApplier.js","sources":["../../../src/components/SettingsThemeApplier/SettingsThemeApplier.tsx"],"sourcesContent":[null],"names":[],"mappings":"+HAQA;;;;;;;AAOG;SACa,oBAAoB,GAAA;QAChC,KAAM,cAAQ,CAAA,CAAW,IAAe,CAAE,EAAE,QAAI,EAAA,SAAe,CAAA,EAAA,QAAO,EAAA,SAAU,CAAA;AAChF,EAAA,MAAA,QAAM,GAAQ,WAAG,CAAA,CAAW,IAAe,CAAE,EAAE,QAAI,EAAA,QAAU,CAAA;AAC7D,EAAA,MAAA,YAAM,GAAY,WAAG,CAAA,CAAW,IAAe,CAAE,EAAE,QAAI,EAAA,YAAU,CAAA;AACjE,EAAA,MAAA,UAAM,GAAU,WAAG,CAAA,CAAW,IAAe,CAAE,EAAE,QAAI,EAAA,UAAU,CAAA;WAE/D,CAAA,MAAa;mBACT,CAAA;MACH,KAAG;AAEJ,MAAA;AACJ,MAAC,YAAA;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsThemeApplier/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { Feature } from '@common-stack/client-react';
|
|
|
2
2
|
export * from './tailwindConfig';
|
|
3
3
|
export * from './redux';
|
|
4
4
|
export * from './hooks';
|
|
5
|
+
export * from './utils/settingsTheme';
|
|
6
|
+
export * from './components/SettingsThemeApplier';
|
|
5
7
|
declare const _default: Feature;
|
|
6
8
|
export default _default;
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;;AAElD,wBAAqC"}
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {Feature}from'@common-stack/client-react';import settings from'./module.js';export{themeConfig}from'./tailwindConfig.js';export{SEARCH_ACTIONS,clearSearch,searchReducer,setSearchError,setSearchQuery,setSearchResult}from'./redux/searchReducer.js';export{useTailwindTheme}from'./hooks/useTailwindTheme.js';export{useMediaQuery}from'./hooks/useMediaQuery.js';// eslint-disable-next-line import/no-extraneous-dependencies
|
|
1
|
+
import {Feature}from'@common-stack/client-react';import settings from'./module.js';export{themeConfig}from'./tailwindConfig.js';export{SEARCH_ACTIONS,clearSearch,searchReducer,setSearchError,setSearchQuery,setSearchResult}from'./redux/searchReducer.js';export{useTailwindTheme}from'./hooks/useTailwindTheme.js';export{useMediaQuery}from'./hooks/useMediaQuery.js';export{SETTINGS_THEME_STYLE_ID,THEME_KEYS,applyThemeToDom,buildOverridesCss,getServerThemeAttrs,hexToHslSpace}from'./utils/settingsTheme.js';export{SettingsThemeApplier}from'./components/SettingsThemeApplier/SettingsThemeApplier.js';// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
2
|
var index = new Feature(settings);export{index as default};//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"olBAAA;AASA,YAAe,IAAI,OAAO,CAAC,QAAQ,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings → DOM theme utilities.
|
|
3
|
+
*
|
|
4
|
+
* Three-layer cascade applied to <html>:
|
|
5
|
+
* 1. :root defaults ← package CSS
|
|
6
|
+
* 2. [data-theme="x"] ← brand theme (color + font + radius)
|
|
7
|
+
* 3. :root { ... } injected by settings ← user overrides (highest priority)
|
|
8
|
+
*
|
|
9
|
+
* `getServerThemeAttrs` produces the SSR payload (data-theme attr, dark class,
|
|
10
|
+
* <style> string) so the first paint already matches the user's saved
|
|
11
|
+
* customisations and there is no flash. `applyThemeToDom` performs the same
|
|
12
|
+
* mutation at runtime when the user changes a setting in the drawer; the
|
|
13
|
+
* SettingDrawer's existing reset handler clears storage + reloads, after which
|
|
14
|
+
* the override style block is empty and the page falls back to pure theme.
|
|
15
|
+
*/
|
|
16
|
+
export declare const THEME_KEYS: readonly ["default", "github", "slack", "airbnb", "spotify", "yantra"];
|
|
17
|
+
export type ThemeKey = (typeof THEME_KEYS)[number];
|
|
18
|
+
export interface SettingsLikeShape {
|
|
19
|
+
theme?: string;
|
|
20
|
+
themeName?: string;
|
|
21
|
+
navTheme?: string;
|
|
22
|
+
primaryColor?: string;
|
|
23
|
+
fontFamily?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface ServerThemeAttrs {
|
|
26
|
+
dataTheme: ThemeKey;
|
|
27
|
+
isDark: boolean;
|
|
28
|
+
/** Inline CSS for the user-overrides style block (without the surrounding <style> tag). */
|
|
29
|
+
overridesCss: string;
|
|
30
|
+
}
|
|
31
|
+
/** Convert `#rrggbb` (or `#rgb`) to `"H S% L%"` matching the package CSS convention. */
|
|
32
|
+
export declare function hexToHslSpace(hex?: string | null): string | null;
|
|
33
|
+
/** Build the `:root { ... }` body for the override style block. Empty string means no override. */
|
|
34
|
+
export declare function buildOverridesCss(settings?: SettingsLikeShape | null): string;
|
|
35
|
+
/** SSR helper: derive html attributes + inline style for the initial render. */
|
|
36
|
+
export declare function getServerThemeAttrs(settings?: SettingsLikeShape | null): ServerThemeAttrs;
|
|
37
|
+
/** Runtime applier — mirrors `getServerThemeAttrs` but mutates the live DOM. */
|
|
38
|
+
export declare function applyThemeToDom(settings?: SettingsLikeShape | null): void;
|
|
39
|
+
export declare const SETTINGS_THEME_STYLE_ID = "settings-theme-overrides";
|
|
40
|
+
//# sourceMappingURL=settingsTheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsTheme.d.ts","sourceRoot":"","sources":["../../src/utils/settingsTheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,UAAU,wEAAyE,CAAC;AACjG,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAInD,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,2FAA2F;IAC3F,YAAY,EAAE,MAAM,CAAC;CACxB;AAgBD,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAwChE;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAAG,MAAM,CAiB7E;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAAG,gBAAgB,CAMzF;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAmBzE;AAED,eAAO,MAAM,uBAAuB,6BAAmB,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings → DOM theme utilities.
|
|
3
|
+
*
|
|
4
|
+
* Three-layer cascade applied to <html>:
|
|
5
|
+
* 1. :root defaults ← package CSS
|
|
6
|
+
* 2. [data-theme="x"] ← brand theme (color + font + radius)
|
|
7
|
+
* 3. :root { ... } injected by settings ← user overrides (highest priority)
|
|
8
|
+
*
|
|
9
|
+
* `getServerThemeAttrs` produces the SSR payload (data-theme attr, dark class,
|
|
10
|
+
* <style> string) so the first paint already matches the user's saved
|
|
11
|
+
* customisations and there is no flash. `applyThemeToDom` performs the same
|
|
12
|
+
* mutation at runtime when the user changes a setting in the drawer; the
|
|
13
|
+
* SettingDrawer's existing reset handler clears storage + reloads, after which
|
|
14
|
+
* the override style block is empty and the page falls back to pure theme.
|
|
15
|
+
*/
|
|
16
|
+
const THEME_KEYS = ['default', 'github', 'slack', 'airbnb', 'spotify', 'yantra'];
|
|
17
|
+
const STYLE_ELEMENT_ID = 'settings-theme-overrides';
|
|
18
|
+
function isThemeKey(value) {
|
|
19
|
+
return typeof value === 'string' && THEME_KEYS.includes(value);
|
|
20
|
+
}
|
|
21
|
+
function resolveThemeKey(settings) {
|
|
22
|
+
const candidate = settings?.theme ?? settings?.themeName;
|
|
23
|
+
return isThemeKey(candidate) ? candidate : 'default';
|
|
24
|
+
}
|
|
25
|
+
function resolveIsDark(settings) {
|
|
26
|
+
const nav = settings?.navTheme;
|
|
27
|
+
return nav === 'realDark' || nav === 'dark';
|
|
28
|
+
}
|
|
29
|
+
/** Convert `#rrggbb` (or `#rgb`) to `"H S% L%"` matching the package CSS convention. */
|
|
30
|
+
function hexToHslSpace(hex) {
|
|
31
|
+
if (!hex || typeof hex !== 'string') return null;
|
|
32
|
+
let raw = hex.trim().replace(/^#/, '');
|
|
33
|
+
if (raw.length === 3) raw = raw.split('').map(c => c + c).join('');
|
|
34
|
+
if (!/^[0-9a-fA-F]{6}$/.test(raw)) return null;
|
|
35
|
+
const r = parseInt(raw.slice(0, 2), 16) / 255;
|
|
36
|
+
const g = parseInt(raw.slice(2, 4), 16) / 255;
|
|
37
|
+
const b = parseInt(raw.slice(4, 6), 16) / 255;
|
|
38
|
+
const max = Math.max(r, g, b);
|
|
39
|
+
const min = Math.min(r, g, b);
|
|
40
|
+
const l = (max + min) / 2;
|
|
41
|
+
let h = 0;
|
|
42
|
+
let s = 0;
|
|
43
|
+
if (max !== min) {
|
|
44
|
+
const d = max - min;
|
|
45
|
+
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
46
|
+
switch (max) {
|
|
47
|
+
case r:
|
|
48
|
+
h = (g - b) / d + (g < b ? 6 : 0);
|
|
49
|
+
break;
|
|
50
|
+
case g:
|
|
51
|
+
h = (b - r) / d + 2;
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
h = (r - g) / d + 4;
|
|
55
|
+
}
|
|
56
|
+
h *= 60;
|
|
57
|
+
}
|
|
58
|
+
const hh = Math.round(h);
|
|
59
|
+
const ss = Math.round(s * 100);
|
|
60
|
+
const ll = Math.round(l * 100);
|
|
61
|
+
return `${hh} ${ss}% ${ll}%`;
|
|
62
|
+
}
|
|
63
|
+
/** Build the `:root { ... }` body for the override style block. Empty string means no override. */
|
|
64
|
+
function buildOverridesCss(settings) {
|
|
65
|
+
if (!settings) return '';
|
|
66
|
+
const decls = [];
|
|
67
|
+
const hsl = hexToHslSpace(settings.primaryColor);
|
|
68
|
+
if (hsl) decls.push(`--primary:${hsl};--ring:${hsl};`);
|
|
69
|
+
const font = settings.fontFamily;
|
|
70
|
+
if (font && typeof font === 'string') {
|
|
71
|
+
// Whitelist-ish: only allow a comma-separated list of identifiers / quoted strings.
|
|
72
|
+
// Strip anything containing braces or semicolons (basic CSS-injection guard).
|
|
73
|
+
if (!/[{};]/.test(font)) {
|
|
74
|
+
decls.push(`--font-display:${font};--font-body:${font};`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return decls.length > 0 ? `:root{${decls.join('')}}` : '';
|
|
78
|
+
}
|
|
79
|
+
/** SSR helper: derive html attributes + inline style for the initial render. */
|
|
80
|
+
function getServerThemeAttrs(settings) {
|
|
81
|
+
return {
|
|
82
|
+
dataTheme: resolveThemeKey(settings),
|
|
83
|
+
isDark: resolveIsDark(settings),
|
|
84
|
+
overridesCss: buildOverridesCss(settings)
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/** Runtime applier — mirrors `getServerThemeAttrs` but mutates the live DOM. */
|
|
88
|
+
function applyThemeToDom(settings) {
|
|
89
|
+
if (typeof document === 'undefined') return;
|
|
90
|
+
const html = document.documentElement;
|
|
91
|
+
html.setAttribute('data-theme', resolveThemeKey(settings));
|
|
92
|
+
html.classList.toggle('dark', resolveIsDark(settings));
|
|
93
|
+
const css = buildOverridesCss(settings);
|
|
94
|
+
let node = document.getElementById(STYLE_ELEMENT_ID);
|
|
95
|
+
if (css) {
|
|
96
|
+
if (!node) {
|
|
97
|
+
node = document.createElement('style');
|
|
98
|
+
node.id = STYLE_ELEMENT_ID;
|
|
99
|
+
document.head.appendChild(node);
|
|
100
|
+
}
|
|
101
|
+
if (node.textContent !== css) node.textContent = css;
|
|
102
|
+
} else if (node) {
|
|
103
|
+
node.remove();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const SETTINGS_THEME_STYLE_ID = STYLE_ELEMENT_ID;export{SETTINGS_THEME_STYLE_ID,THEME_KEYS,applyThemeToDom,buildOverridesCss,getServerThemeAttrs,hexToHslSpace};//# sourceMappingURL=settingsTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsTheme.js","sources":["../../src/utils/settingsTheme.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@admin-layout/tailwind-design-pro",
|
|
3
|
-
"version": "12.2.4-alpha.
|
|
3
|
+
"version": "12.2.4-alpha.51",
|
|
4
4
|
"description": "Sample core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@admin-layout/assets": "12.2.4-alpha.37",
|
|
25
|
-
"@admin-layout/client": "12.2.4-alpha.
|
|
26
|
-
"@admin-layout/tailwind-ui": "12.2.4-alpha.
|
|
25
|
+
"@admin-layout/client": "12.2.4-alpha.49",
|
|
26
|
+
"@admin-layout/tailwind-ui": "12.2.4-alpha.51",
|
|
27
27
|
"path-to-regexp": "^8.0.0",
|
|
28
28
|
"react-favicon": "^0.0.23",
|
|
29
29
|
"react-intl": "^6.1.1",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"typescript": {
|
|
56
56
|
"definition": "lib/index.d.ts"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "4a87359a41b6211aa022668844ab1dd2249c689b"
|
|
59
59
|
}
|