@risali/react 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brand.d.ts.map +1 -1
- package/dist/brand.js +9 -1
- package/dist/brand.js.map +1 -1
- package/dist/style.d.ts +7 -0
- package/dist/style.d.ts.map +1 -1
- package/dist/style.js +20 -0
- package/dist/style.js.map +1 -1
- package/package.json +1 -1
package/dist/brand.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../src/brand.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAgBF,wBAAsB,WAAW,CAAC,KAAK,GAAE,gBAAqB,
|
|
1
|
+
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../src/brand.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAgBF,wBAAsB,WAAW,CAAC,KAAK,GAAE,gBAAqB,2FAsD7D"}
|
package/dist/brand.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
// stack falls back through locally available fonts.
|
|
15
15
|
import { createElement, Fragment } from "react";
|
|
16
16
|
import { getRisaliContent } from "./content.js";
|
|
17
|
-
import { safeColor } from "./style.js";
|
|
17
|
+
import { readableForeground, safeColor } from "./style.js";
|
|
18
18
|
// Defense-in-depth mirrors of the dashboard-side validation — a compromised
|
|
19
19
|
// or stale API payload must not be able to break out of the <style> block.
|
|
20
20
|
const PALETTE_KEY_RE = /^[a-z][a-z0-9_]{0,40}$/;
|
|
@@ -49,6 +49,14 @@ export async function RisaliBrand(props = {}) {
|
|
|
49
49
|
const body = fontStack(brand.fonts?.body);
|
|
50
50
|
if (body)
|
|
51
51
|
vars.push(`--risali-font-body:${body}`);
|
|
52
|
+
// Readable on-colors for brand-tinted surfaces (L1b). The design system
|
|
53
|
+
// (globals.css) maps --primary-foreground/--accent-foreground onto these.
|
|
54
|
+
const onPrimary = readableForeground(brand.colors?.primary);
|
|
55
|
+
if (onPrimary)
|
|
56
|
+
vars.push(`--risali-on-primary:${onPrimary}`);
|
|
57
|
+
const onAccent = readableForeground(brand.colors?.accent);
|
|
58
|
+
if (onAccent)
|
|
59
|
+
vars.push(`--risali-on-accent:${onAccent}`);
|
|
52
60
|
const links = [];
|
|
53
61
|
for (const font of [brand.fonts?.heading, brand.fonts?.body]) {
|
|
54
62
|
const url = font?.css_url;
|
package/dist/brand.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.tsx"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,yEAAyE;AACzE,iEAAiE;AACjE,EAAE;AACF,iEAAiE;AACjE,EAAE;AACF,aAAa;AACb,yDAAyD;AACzD,+DAA+D;AAC/D,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,0EAA0E;AAC1E,oDAAoD;AAEpD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.tsx"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,yEAAyE;AACzE,iEAAiE;AACjE,EAAE;AACF,iEAAiE;AACjE,EAAE;AACF,aAAa;AACb,yDAAyD;AACzD,+DAA+D;AAC/D,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,0EAA0E;AAC1E,oDAAoD;AAEpD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAU3D,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAChD,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAC3D,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAExD,SAAS,SAAS,CAAC,IAAwC;IACzD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,sEAAsE;IACtE,gCAAgC;IAChC,OAAO,IAAI,IAAI,CAAC,MAAM,0BAA0B,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAA0B,EAAE;IAC5D,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE3D,MAAM,OAAO,GACX,eAAe,KAAK,SAAS;QAC3B,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAExD,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,IAAI,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IAElD,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,IAAI,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAE1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,EAAE,OAAO,CAAC;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/C,OAAO,aAAa,CAClB,QAAQ,EACR,IAAI,EACJ,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjB,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAC9D,EACD,IAAI,CAAC,MAAM;QACT,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE;YACrB,mBAAmB,EAAE,EAAE;YACvB,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;SAChE,CAAC;QACJ,CAAC,CAAC,IAAI,CACT,CAAC;AACJ,CAAC"}
|
package/dist/style.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import type { CSSProperties } from "react";
|
|
2
2
|
import type { RisaliStyleOverrides } from "./types.js";
|
|
3
3
|
export declare function safeColor(value: unknown): string | undefined;
|
|
4
|
+
/**
|
|
5
|
+
* Picks a readable foreground (near-black or white) for a brand color using
|
|
6
|
+
* WCAG relative luminance — so brand-tinted surfaces (a primary button, an
|
|
7
|
+
* accent chip) keep legible text even when the brand color is light/pastel.
|
|
8
|
+
* Returns undefined for anything that is not a #rrggbb hex. (L1b)
|
|
9
|
+
*/
|
|
10
|
+
export declare function readableForeground(value: unknown, dark?: string, light?: string): string | undefined;
|
|
4
11
|
export declare function safeFontSizeMultiplier(value: unknown): number | undefined;
|
|
5
12
|
export declare function applyStyleOverrides(base: CSSProperties | undefined, overrides: RisaliStyleOverrides | null | undefined): CSSProperties | undefined;
|
|
6
13
|
//# sourceMappingURL=style.d.ts.map
|
package/dist/style.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG5D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKzE;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,GAAG,SAAS,EAC/B,SAAS,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GACjD,aAAa,GAAG,SAAS,CAS3B"}
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,IAAI,SAAY,EAChB,KAAK,SAAY,GAChB,MAAM,GAAG,SAAS,CAYpB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKzE;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,GAAG,SAAS,EAC/B,SAAS,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GACjD,aAAa,GAAG,SAAS,CAS3B"}
|
package/dist/style.js
CHANGED
|
@@ -4,6 +4,26 @@ export function safeColor(value) {
|
|
|
4
4
|
return undefined;
|
|
5
5
|
return HEX_RE.test(value) ? value : undefined;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Picks a readable foreground (near-black or white) for a brand color using
|
|
9
|
+
* WCAG relative luminance — so brand-tinted surfaces (a primary button, an
|
|
10
|
+
* accent chip) keep legible text even when the brand color is light/pastel.
|
|
11
|
+
* Returns undefined for anything that is not a #rrggbb hex. (L1b)
|
|
12
|
+
*/
|
|
13
|
+
export function readableForeground(value, dark = "#1a1a1a", light = "#ffffff") {
|
|
14
|
+
const hex = safeColor(value);
|
|
15
|
+
if (!hex)
|
|
16
|
+
return undefined;
|
|
17
|
+
const channel = (i) => {
|
|
18
|
+
const c = parseInt(hex.slice(i, i + 2), 16) / 255;
|
|
19
|
+
return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
|
|
20
|
+
};
|
|
21
|
+
const L = 0.2126 * channel(1) + 0.7152 * channel(3) + 0.0722 * channel(5);
|
|
22
|
+
// Compare contrast ratio against black vs white; pick the stronger.
|
|
23
|
+
const contrastBlack = (L + 0.05) / 0.05;
|
|
24
|
+
const contrastWhite = 1.05 / (L + 0.05);
|
|
25
|
+
return contrastBlack >= contrastWhite ? dark : light;
|
|
26
|
+
}
|
|
7
27
|
export function safeFontSizeMultiplier(value) {
|
|
8
28
|
if (typeof value !== "number" || !Number.isFinite(value))
|
|
9
29
|
return undefined;
|
package/dist/style.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,GAAG,mBAAmB,CAAC;AAEnC,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3E,4EAA4E;IAC5E,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAA+B,EAC/B,SAAkD;IAElD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,sBAAsB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,GAAkB,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;IAChD,IAAI,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9B,IAAI,IAAI;QAAE,IAAI,CAAC,QAAQ,GAAG,GAAG,IAAI,IAAI,CAAC;IACtC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,GAAG,mBAAmB,CAAC;AAEnC,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAc,EACd,IAAI,GAAG,SAAS,EAChB,KAAK,GAAG,SAAS;IAEjB,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE;QAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClD,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;IACvE,CAAC,CAAC;IACF,MAAM,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1E,oEAAoE;IACpE,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACxC,OAAO,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3E,4EAA4E;IAC5E,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAA+B,EAC/B,SAAkD;IAElD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,sBAAsB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,GAAkB,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;IAChD,IAAI,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9B,IAAI,IAAI;QAAE,IAAI,CAAC,QAAQ,GAAG,GAAG,IAAI,IAAI,CAAC;IACtC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED