@risali/react 0.8.0 → 0.8.5

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/fonts.d.ts CHANGED
@@ -10,4 +10,8 @@ export declare function fontCssUrlForId(id: string, base?: string): string | und
10
10
  /** Derive the `…/fonts/` base from a brand font's css_url (e.g.
11
11
  * "https://app.risali.app/fonts/inter.css" → "https://app.risali.app/fonts/"). */
12
12
  export declare function fontBaseFromCssUrl(cssUrl: unknown): string | undefined;
13
+ /** Canonical catalog id for a family name (case-insensitive), or undefined. */
14
+ export declare function familyToFontId(family: unknown): string | undefined;
15
+ /** Catalog font ids referenced inline (font-family:"…") in rich-text HTML. */
16
+ export declare function extractCatalogFontIds(html: unknown): string[];
13
17
  //# sourceMappingURL=fonts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiBvD,CAAC;AASF,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI9D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI7E;AAED;kFACkF;AAClF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAItE"}
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiBvD,CAAC;AASF,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI9D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI7E;AAED;kFACkF;AAClF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAItE;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAQlE;AASD,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,CAU7D"}
package/dist/fonts.js CHANGED
@@ -54,4 +54,37 @@ export function fontBaseFromCssUrl(cssUrl) {
54
54
  const m = cssUrl.match(/^(https:\/\/[^\s"'<>\\]+\/fonts\/)[a-z0-9-]+\.css$/);
55
55
  return m ? m[1] : undefined;
56
56
  }
57
+ /** Canonical catalog id for a family name (case-insensitive), or undefined. */
58
+ export function familyToFontId(family) {
59
+ if (typeof family !== "string")
60
+ return undefined;
61
+ const needle = family.trim().toLowerCase();
62
+ if (!needle)
63
+ return undefined;
64
+ for (const [id, fam] of Object.entries(RISALI_FONT_FAMILIES)) {
65
+ if (fam.toLowerCase() === needle)
66
+ return id;
67
+ }
68
+ return undefined;
69
+ }
70
+ // Per-range fonts (PR 9b) are stored inside rich_text HTML as a quoted
71
+ // `font-family:'<Family>'` (sanitiser-canonical; single quotes survive HTML
72
+ // attribute escaping). RisaliPage / RisaliRichText scan the markup for these so
73
+ // the matching self-hosted stylesheet loads — the page-level style_overrides
74
+ // scan would otherwise miss inline fonts. Both quote styles matched for safety.
75
+ const INLINE_FONT_FAMILY_RE = /font-family\s*:\s*['"]([^'"]+)['"]/gi;
76
+ /** Catalog font ids referenced inline (font-family:"…") in rich-text HTML. */
77
+ export function extractCatalogFontIds(html) {
78
+ if (typeof html !== "string" || !html)
79
+ return [];
80
+ const ids = [];
81
+ INLINE_FONT_FAMILY_RE.lastIndex = 0;
82
+ let m;
83
+ while ((m = INLINE_FONT_FAMILY_RE.exec(html)) !== null) {
84
+ const id = familyToFontId(m[1]);
85
+ if (id && !ids.includes(id))
86
+ ids.push(id);
87
+ }
88
+ return ids;
89
+ }
57
90
  //# sourceMappingURL=fonts.js.map
package/dist/fonts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,yEAAyE;AACzE,2EAA2E;AAC3E,8EAA8E;AAC9E,gEAAgE;AAEhE,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,kBAAkB,EAAE,kBAAkB;IACtC,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,WAAW;IACxB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,WAAW;IACxB,eAAe,EAAE,eAAe;IAChC,oBAAoB,EAAE,oBAAoB;IAC1C,mBAAmB,EAAE,mBAAmB;IACxC,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,KAAK,GAAG,mBAAmB,CAAC;AAElC,0EAA0E;AAC1E,4EAA4E;AAC5E,MAAM,iBAAiB,GAAG,+BAA+B,CAAC;AAC1D,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAEzD,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,EAAW;IACxC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,0BAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU,EAAE,IAAa;IACvD,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACzF,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;AACzB,CAAC;AAED;kFACkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAChD,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACjD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC7E,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"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"}
package/dist/image.d.ts CHANGED
@@ -12,22 +12,23 @@ export type RisaliImageProps = Omit<ImgHTMLAttributes<HTMLImageElement>, "src" |
12
12
  export declare function RisaliImage(props: RisaliImageProps): Promise<import("react").DetailedReactHTMLElement<{
13
13
  src: string;
14
14
  alt: string;
15
+ style: CSSProperties | undefined;
15
16
  "data-risali-key": string;
16
17
  children?: import("react").ReactNode;
17
18
  className?: string | undefined | undefined;
18
- style?: CSSProperties;
19
19
  hidden?: boolean | undefined | undefined;
20
20
  color?: string | undefined | undefined;
21
21
  height?: number | string | undefined | undefined;
22
22
  width?: number | string | undefined | undefined;
23
23
  loading?: "eager" | "lazy" | undefined | undefined;
24
- rel?: string | undefined | undefined;
25
24
  id?: string | undefined | undefined;
25
+ rel?: string | undefined | undefined;
26
26
  title?: string | undefined | undefined;
27
27
  dangerouslySetInnerHTML?: {
28
28
  __html: string | TrustedHTML;
29
29
  } | undefined | undefined;
30
30
  fetchPriority?: "high" | "low" | "auto" | undefined | undefined;
31
+ translate?: "yes" | "no" | undefined | undefined;
31
32
  slot?: string | undefined | undefined;
32
33
  defaultChecked?: boolean | undefined | undefined;
33
34
  defaultValue?: string | number | readonly string[] | undefined;
@@ -45,7 +46,6 @@ export declare function RisaliImage(props: RisaliImageProps): Promise<import("re
45
46
  nonce?: string | undefined | undefined;
46
47
  spellCheck?: (boolean | "false" | "true") | undefined;
47
48
  tabIndex?: number | undefined | undefined;
48
- translate?: "yes" | "no" | undefined | undefined;
49
49
  radioGroup?: string | undefined | undefined;
50
50
  role?: import("react").AriaRole | undefined;
51
51
  about?: string | undefined | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAC;AAIlE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,iBAAiB,CAAC,gBAAgB,CAAC,EACnC,KAAK,GAAG,KAAK,CACd,GAAG;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAOF,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB;;;;;;YAR/C,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0CtB"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI9D,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAC;AAIlE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,iBAAiB,CAAC,gBAAgB,CAAC,EACnC,KAAK,GAAG,KAAK,CACd,GAAG;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAOF,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuCxD"}
package/dist/image.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { createElement } from "react";
2
2
  import { findBlock, getRisaliContent } from "./content.js";
3
+ import { imageLayoutStyle } from "./style.js";
3
4
  const SAFE_SRC_RE = /^(https?:\/\/|\/)/;
4
5
  function safeSrc(value, fallback) {
5
6
  if (typeof value !== "string" || !value)
@@ -19,10 +20,14 @@ export async function RisaliImage(props) {
19
20
  const alt = typeof value.alt === "string" && value.alt
20
21
  ? value.alt
21
22
  : (defaultAlt ?? "");
23
+ // Full editor PR 8 — width/height + focal (object-position) merged onto any
24
+ // caller-supplied style. Omitted entirely when the block sets no layout.
25
+ const style = imageLayoutStyle(rest.style, value);
22
26
  return createElement("img", {
23
27
  ...rest,
24
28
  src,
25
29
  alt,
30
+ style,
26
31
  "data-risali-key": pageKey,
27
32
  });
28
33
  }
package/dist/image.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../src/image.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAG3D,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAexC,SAAS,OAAO,CAAC,KAAc,EAAE,QAAgB;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IACzD,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB;IACvD,MAAM,EACJ,OAAO,EACP,UAAU,EACV,UAAU,EACV,IAAI,EACJ,OAAO,EAAE,eAAe,EACxB,QAAQ,EACR,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,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,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GACT,KAAK,EAAE,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QACvE,CAAC,CAAE,KAAK,CAAC,KAA0B;QACnC,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,GAAG,GACP,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG;QACxC,CAAC,CAAC,KAAK,CAAC,GAAG;QACX,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAEzB,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,GAAG,IAAI;QACP,GAAG;QACH,GAAG;QACH,iBAAiB,EAAE,OAAO;KAC3B,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../src/image.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAexC,SAAS,OAAO,CAAC,KAAc,EAAE,QAAgB;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IACzD,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB;IACvD,MAAM,EACJ,OAAO,EACP,UAAU,EACV,UAAU,EACV,IAAI,EACJ,OAAO,EAAE,eAAe,EACxB,QAAQ,EACR,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,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,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GACT,KAAK,EAAE,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QACvE,CAAC,CAAE,KAAK,CAAC,KAA0B;QACnC,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,GAAG,GACP,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG;QACxC,CAAC,CAAC,KAAK,CAAC,GAAG;QACX,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAEzB,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAElD,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,GAAG,IAAI;QACP,GAAG;QACH,GAAG;QACH,KAAK;QACL,iBAAiB,EAAE,OAAO;KAC3B,CAAC,CAAC;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { getRisaliContent, findBlock, getBlockValue, getBlockImage, getBlockRichText, getBlockStyleOverrides, } from "./content.js";
2
2
  export type { GetRisaliContentOptions } from "./content.js";
3
- export { applyStyleOverrides } from "./style.js";
3
+ export { applyStyleOverrides, imageLayoutStyle, buildBlockStateCss, buildPageStateCss, } from "./style.js";
4
4
  export { RisaliText } from "./text.js";
5
5
  export type { RisaliTextProps } from "./text.js";
6
6
  export { RisaliImage } from "./image.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,IAAI,kBAAkB,EACpC,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EACV,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,IAAI,kBAAkB,EACpC,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EACV,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { getRisaliContent, findBlock, getBlockValue, getBlockImage, getBlockRichText, getBlockStyleOverrides, } from "./content.js";
2
- export { applyStyleOverrides } from "./style.js";
2
+ export { applyStyleOverrides, imageLayoutStyle, buildBlockStateCss, buildPageStateCss, } from "./style.js";
3
3
  export { RisaliText } from "./text.js";
4
4
  export { RisaliImage } from "./image.js";
5
5
  export { RisaliRichText } from "./rich-text.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AASjD,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EACL,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAS9B,iCAAiC;AACjC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAQnB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,wCAAwC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAKxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,kCAAkC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AASjD,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EACL,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAS9B,iCAAiC;AACjC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAQnB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,wCAAwC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAKxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,kCAAkC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACxD,gEAAgE;IAChE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,+PAiEtD"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,YAAY,CAAC;AAEtE,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACxD,gEAAgE;IAChE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,+PA+FtD"}
package/dist/page.js CHANGED
@@ -14,7 +14,8 @@ import { createElement, Fragment } from "react";
14
14
  import { getRisaliContent } from "./content.js";
15
15
  import { RISALI_SECTION_COMPONENTS, sectionWrapperStyle, } from "./sections/index.js";
16
16
  import { sortByPosition } from "./sections/blocks.js";
17
- import { fontCssUrlForId, fontBaseFromCssUrl } from "./fonts.js";
17
+ import { fontCssUrlForId, fontBaseFromCssUrl, extractCatalogFontIds } from "./fonts.js";
18
+ import { buildPageStateCss } from "./style.js";
18
19
  export async function RisaliPage(props) {
19
20
  const { path, siteSlug, content: providedContent, customSections, notFound } = props;
20
21
  const content = providedContent !== undefined
@@ -35,10 +36,29 @@ export async function RisaliPage(props) {
35
36
  const fontBase = fontBaseFromCssUrl(fonts?.heading?.css_url) ??
36
37
  fontBaseFromCssUrl(fonts?.body?.css_url);
37
38
  const usedFontIds = new Set();
38
- for (const b of content.blocks) {
39
- const id = b.style_overrides?.font_family;
39
+ const addFont = (slice) => {
40
+ const id = slice?.font_family;
40
41
  if (typeof id === "string")
41
42
  usedFontIds.add(id);
43
+ };
44
+ for (const b of content.blocks) {
45
+ addFont(b.style_overrides);
46
+ // Per-element fonts can also live in the PR 11 hover / responsive slices —
47
+ // collect those too so their stylesheet loads (the generated state CSS sets
48
+ // font-family from the same catalog).
49
+ addFont(b.style_overrides?.hover);
50
+ const resp = b.style_overrides?.responsive;
51
+ if (resp) {
52
+ addFont(resp.mobile);
53
+ addFont(resp.tablet);
54
+ addFont(resp.desktop);
55
+ }
56
+ // Per-range fonts (PR 9b) live inline in rich_text/html markup, not in
57
+ // style_overrides — scan the value so their stylesheet loads too.
58
+ if ((b.type === "rich_text" || b.type === "html") && typeof b.value === "string") {
59
+ for (const fid of extractCatalogFontIds(b.value))
60
+ usedFontIds.add(fid);
61
+ }
42
62
  }
43
63
  const fontLinks = [];
44
64
  for (const id of usedFontIds) {
@@ -46,7 +66,17 @@ export async function RisaliPage(props) {
46
66
  if (url && !fontLinks.includes(url))
47
67
  fontLinks.push(url);
48
68
  }
49
- return createElement(Fragment, null, fontLinks.map((href) => createElement("link", { key: href, rel: "stylesheet", href })), sections.map((section) => {
69
+ // PR 11 hover + responsive overrides can't be inline, so emit one
70
+ // page-level <style> built from every block's stateful overrides (keyed on
71
+ // data-risali-key). Values are pre-validated, so the body is safe to inject.
72
+ const stateCss = buildPageStateCss(content.blocks);
73
+ return createElement(Fragment, null, fontLinks.map((href) => createElement("link", { key: href, rel: "stylesheet", href })), stateCss
74
+ ? createElement("style", {
75
+ key: "risali-block-state-css",
76
+ "data-risali-blockcss": "1",
77
+ dangerouslySetInnerHTML: { __html: stateCss },
78
+ })
79
+ : null, sections.map((section) => {
50
80
  const Component = customSections?.[section.type] ?? RISALI_SECTION_COMPONENTS[section.type];
51
81
  // Unknown type (e.g. a signature section whose component is missing
52
82
  // from this deploy) — skip rather than crash the whole page.
package/dist/page.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"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"}
@@ -10,5 +10,5 @@ export type RisaliRichTextProps = {
10
10
  style?: CSSProperties;
11
11
  siteSlug?: string;
12
12
  };
13
- export declare function RisaliRichText(props: RisaliRichTextProps): Promise<import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>>;
13
+ export declare function RisaliRichText(props: RisaliRichTextProps): Promise<import("react").FunctionComponentElement<import("react").FragmentProps> | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>>;
14
14
  //# sourceMappingURL=rich-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rich-text.d.ts","sourceRoot":"","sources":["../src/rich-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAKxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,mGAsC9D"}
1
+ {"version":3,"file":"rich-text.d.ts","sourceRoot":"","sources":["../src/rich-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAUxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,6KA+D9D"}
package/dist/rich-text.js CHANGED
@@ -1,7 +1,8 @@
1
- import { createElement } from "react";
1
+ import { createElement, Fragment } from "react";
2
2
  import { findBlock, getRisaliContent } from "./content.js";
3
3
  import { sanitiseRichText } from "./sanitize.js";
4
4
  import { applyStyleOverrides } from "./style.js";
5
+ import { extractCatalogFontIds, fontBaseFromCssUrl, fontCssUrlForId, } from "./fonts.js";
5
6
  export async function RisaliRichText(props) {
6
7
  const { pageKey, defaultValue, path, content: providedContent, as, className, style, siteSlug, } = props;
7
8
  const Tag = as || "div";
@@ -16,7 +17,21 @@ export async function RisaliRichText(props) {
16
17
  : defaultValue;
17
18
  const safeHtml = sanitiseRichText(rawValue);
18
19
  const mergedStyle = applyStyleOverrides(style, block?.style_overrides);
19
- return createElement(Tag, {
20
+ // Per-range fonts (PR 9b): emit a stylesheet <link> for every catalog font
21
+ // used inline in the markup. Unlike builder pages (RisaliPage collects all
22
+ // fonts up front), a code-mode block has no page-level collector — but React
23
+ // hoists & dedupes <link rel="stylesheet"> to <head>, so emitting them here
24
+ // is safe even if the same font appears in several blocks.
25
+ const fonts = content?.site?.brand?.fonts;
26
+ const fontBase = fontBaseFromCssUrl(fonts?.heading?.css_url) ??
27
+ fontBaseFromCssUrl(fonts?.body?.css_url);
28
+ const fontLinks = [];
29
+ for (const id of extractCatalogFontIds(safeHtml)) {
30
+ const url = fontCssUrlForId(id, fontBase);
31
+ if (url && !fontLinks.includes(url))
32
+ fontLinks.push(url);
33
+ }
34
+ const el = createElement(Tag, {
20
35
  className,
21
36
  style: mergedStyle,
22
37
  "data-risali-key": pageKey,
@@ -25,5 +40,8 @@ export async function RisaliRichText(props) {
25
40
  "data-risali-type": "rich_text",
26
41
  dangerouslySetInnerHTML: { __html: safeHtml },
27
42
  });
43
+ if (fontLinks.length === 0)
44
+ return el;
45
+ return createElement(Fragment, null, fontLinks.map((href) => createElement("link", { key: href, rel: "stylesheet", href })), el);
28
46
  }
29
47
  //# sourceMappingURL=rich-text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rich-text.js","sourceRoot":"","sources":["../src/rich-text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAcjD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAA0B;IAC7D,MAAM,EACJ,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,OAAO,EAAE,eAAe,EACxB,EAAE,EACF,SAAS,EACT,KAAK,EACL,QAAQ,GACT,GAAG,KAAK,CAAC;IAEV,MAAM,GAAG,GAAgB,EAAE,IAAI,KAAK,CAAC;IACrC,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,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,QAAQ,GACZ,KAAK;QACL,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;QACrD,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC7B,CAAC,CAAC,KAAK,CAAC,KAAK;QACb,CAAC,CAAC,YAAY,CAAC;IAEnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAEvE,OAAO,aAAa,CAAC,GAAG,EAAE;QACxB,SAAS;QACT,KAAK,EAAE,WAAW;QAClB,iBAAiB,EAAE,OAAO;QAC1B,yEAAyE;QACzE,2DAA2D;QAC3D,kBAAkB,EAAE,WAAW;QAC/B,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;KAC9C,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"rich-text.js","sourceRoot":"","sources":["../src/rich-text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,GAChB,MAAM,YAAY,CAAC;AAcpB,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAA0B;IAC7D,MAAM,EACJ,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,OAAO,EAAE,eAAe,EACxB,EAAE,EACF,SAAS,EACT,KAAK,EACL,QAAQ,GACT,GAAG,KAAK,CAAC;IAEV,MAAM,GAAG,GAAgB,EAAE,IAAI,KAAK,CAAC;IACrC,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,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,QAAQ,GACZ,KAAK;QACL,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;QACrD,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC7B,CAAC,CAAC,KAAK,CAAC,KAAK;QACb,CAAC,CAAC,YAAY,CAAC;IAEnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAEvE,2EAA2E;IAC3E,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAC5E,2DAA2D;IAC3D,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;IAC1C,MAAM,QAAQ,GACZ,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;QAC3C,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,EAAE,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE;QAC5B,SAAS;QACT,KAAK,EAAE,WAAW;QAClB,iBAAiB,EAAE,OAAO;QAC1B,yEAAyE;QACzE,2DAA2D;QAC3D,kBAAkB,EAAE,WAAW;QAC/B,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;KAC9C,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,aAAa,CAClB,QAAQ,EACR,IAAI,EACJ,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACrB,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAC9D,EACD,EAAE,CACH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AAuMA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkEtD"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AA0NA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkEtD"}
package/dist/sanitize.js CHANGED
@@ -5,6 +5,7 @@
5
5
  // Tag set grew in PR 36a (blog rendering): added h2/h3/h4, ul/ol/li,
6
6
  // blockquote, pre, code, hr, figure/figcaption, img (with src
7
7
  // whitelist), iframe (YouTube/Vimeo embed src whitelist).
8
+ import { RISALI_FONT_FAMILIES, familyToFontId } from "./fonts.js";
8
9
  const ALLOWED_TAGS = new Set([
9
10
  // Inline (original set)
10
11
  "span",
@@ -90,6 +91,13 @@ const SAFE_LOADING_RE = /^(lazy|eager)$/;
90
91
  const SAFE_ID_RE = /^[A-Za-z][A-Za-z0-9_-]{0,80}$/;
91
92
  const STYLE_COLOR_RE = /(?:^|;)\s*color\s*:\s*(#[0-9a-fA-F]{6})\s*(?:;|$)/;
92
93
  const STYLE_FONT_SIZE_RE = /(?:^|;)\s*font-size\s*:\s*([0-9]+(?:\.[0-9]+)?)(px|rem|em)\s*(?:;|$)/i;
94
+ // Underline declaration (PR 9a) — rich_text may carry it on a <span> when the
95
+ // in-page editor's execCommand path emits CSS instead of a <u> tag. Enum-locked.
96
+ const STYLE_TEXT_DECORATION_RE = /(?:^|;)\s*text-decoration(?:-line)?\s*:\s*underline\s*(?:;|$)/i;
97
+ // Per-range font (PR 9b) — catalog-locked: only families in RISALI_FONT_FAMILIES
98
+ // survive, re-emitted as the canonical quoted family (defense-in-depth over the
99
+ // editor-side sanitiser which already wrote this exact form).
100
+ const STYLE_FONT_FAMILY_RE = /(?:^|;)\s*font-family\s*:\s*(?:"([^"]+)"|'([^']+)'|([^;]+?))\s*(?:;|$)/i;
93
101
  const TAG_RE = /<\/?([a-zA-Z][a-zA-Z0-9]*)((?:\s+[^>]*)?)\/?>|<!--[\s\S]*?-->/g;
94
102
  const ATTR_RE = /([a-zA-Z][a-zA-Z0-9_-]*)\s*=\s*("([^"]*)"|'([^']*)'|([^\s"'>]+))|([a-zA-Z][a-zA-Z0-9_-]*)(?=\s|$|\/)/g;
95
103
  function sanitiseStyle(raw) {
@@ -106,6 +114,16 @@ function sanitiseStyle(raw) {
106
114
  out.push(`font-size:${num}${unit}`);
107
115
  }
108
116
  }
117
+ if (STYLE_TEXT_DECORATION_RE.test(raw))
118
+ out.push("text-decoration:underline");
119
+ const fam = raw.match(STYLE_FONT_FAMILY_RE);
120
+ if (fam) {
121
+ const id = familyToFontId(fam[1] ?? fam[2] ?? fam[3] ?? "");
122
+ const family = id ? RISALI_FONT_FAMILIES[id] : undefined;
123
+ // Single quotes (survive escapeAttr) keep the form scannable by collectors.
124
+ if (family)
125
+ out.push(`font-family:'${family}'`);
126
+ }
109
127
  return out.join(";");
110
128
  }
111
129
  function sanitiseRel(raw) {
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,0EAA0E;AAC1E,qEAAqE;AACrE,EAAE;AACF,qEAAqE;AACrE,8DAA8D;AAC9D,0DAA0D;AAE1D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,wBAAwB;IACxB,MAAM;IACN,QAAQ;IACR,GAAG;IACH,IAAI;IACJ,GAAG;IACH,GAAG;IACH,IAAI;IACJ,GAAG;IACH,GAAG;IACH,2BAA2B;IAC3B,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,YAAY;IACZ,KAAK;IACL,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,YAAY;IACZ,KAAK;IACL,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/C,uEAAuE;AACvE,qFAAqF;AACrF,kDAAkD;AAClD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE1C,MAAM,aAAa,GAAgC;IACjD,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACrB,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAC1B,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACrB,YAAY;IACZ,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACnB,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACnB,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACnB,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,uBAAuB;IACjD,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,EAAE,IAAI,GAAG,CAAC;QACd,KAAK;QACL,OAAO;QACP,QAAQ;QACR,iBAAiB;QACjB,SAAS;QACT,OAAO;KACR,CAAC;CACH,CAAC;AAEF,0DAA0D;AAC1D,MAAM,YAAY,GAAG,qCAAqC,CAAC;AAC3D,oEAAoE;AACpE,MAAM,eAAe,GAAG,wBAAwB,CAAC;AACjD,uEAAuE;AACvE,oEAAoE;AACpE,kEAAkE;AAClE,iEAAiE;AACjE,qBAAqB;AACrB,MAAM,kBAAkB,GACtB,+IAA+I,CAAC;AAClJ,oEAAoE;AACpE,kDAAkD;AAClD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;IACX,KAAK;CACN,CAAC,CAAC;AACH,+BAA+B;AAC/B,MAAM,kBAAkB,GAAG,gCAAgC,CAAC;AAC5D,uCAAuC;AACvC,MAAM,eAAe,GAAG,WAAW,CAAC;AACpC,0BAA0B;AAC1B,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,0CAA0C;AAC1C,MAAM,UAAU,GAAG,+BAA+B,CAAC;AAEnD,MAAM,cAAc,GAAG,mDAAmD,CAAC;AAC3E,MAAM,kBAAkB,GACtB,uEAAuE,CAAC;AAE1E,MAAM,MAAM,GAAG,gEAAgE,CAAC;AAChF,MAAM,OAAO,GAAG,uGAAuG,CAAC;AAExH,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAChD,IAAI,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;YACjD,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,MAAM,GAAG,GAAG;SACf,KAAK,CAAC,KAAK,CAAC;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,GAAW;IAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;IACtB,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5C,uEAAuE;QACvE,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YAC3C,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,QAAQ,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC9C,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,QAAQ,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,qDAAqD;YACrD,KAAK,CAAC,IAAI,CAAC,QAAQ,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjD,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,QAAQ,GAAG,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,QAAQ,GAAG,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACtC,sCAAsC;YACtC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAC9C,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,CAAC;QACD,gEAAgE;QAChE,IAAI,SAAS,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC5C,yBAAyB;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,gEAAgE;IAChE,kEAAkE;IAClE,4DAA4D;IAC5D,4DAA4D;IAE5D,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAE1C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QAE1C,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAErC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,SAAS;YACzB,OAAO,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,MAAM;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,sEAAsE;YACtE,uEAAuE;YACvE,kEAAkE;YAClE,6CAA6C;YAC7C,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,SAAS;YACrD,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,iEAAiE;YACjE,IAAI,GAAG,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,SAAS;YACxD,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;YAChC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,oDAAoD;gBACpD,6DAA6D;gBAC7D,2DAA2D;gBAC3D,yDAAyD;gBACzD,sCAAsC;YACxC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/sections/blocks.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAItD,OAAO,KAAK,EAAE,WAAW,EAAuC,MAAM,aAAa,CAAC;AAWpF,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAK3D;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACnE,KAAK,EAAE,SAAS,CAAC,EAAE,GAClB,CAAC,EAAE,CAML;AAED,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE1D;AAuDD,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG;IAC5B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,uDAAuD;IACvD,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,CAmHjF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAMtE"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/sections/blocks.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAItD,OAAO,KAAK,EAAE,WAAW,EAAuC,MAAM,aAAa,CAAC;AAWpF,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAK3D;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACnE,KAAK,EAAE,SAAS,CAAC,EAAE,GAClB,CAAC,EAAE,CAML;AAED,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE1D;AAuDD,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG;IAC5B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,uDAAuD;IACvD,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,CAqHjF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAMtE"}
@@ -14,7 +14,7 @@
14
14
  // client's per-block color / font-size always wins.
15
15
  import { createElement, Fragment } from "react";
16
16
  import { sanitiseRichText } from "../sanitize.js";
17
- import { applyStyleOverrides } from "../style.js";
17
+ import { applyStyleOverrides, imageLayoutStyle } from "../style.js";
18
18
  import { BORDER } from "./tokens.js";
19
19
  const SAFE_SRC_RE = /^(https?:\/\/|\/)/;
20
20
  // Mirror of src/lib/editor/href.ts on the dashboard side — buttons accept
@@ -130,7 +130,9 @@ export function renderBlock(block, opts) {
130
130
  src,
131
131
  alt: typeof value.alt === "string" ? value.alt : "",
132
132
  loading: "lazy",
133
- style: { ...IMG_STYLE, ...opts?.imageStyle },
133
+ // Full editor PR 8 — block width/height + focal override the section's
134
+ // default IMG_STYLE.
135
+ style: imageLayoutStyle({ ...IMG_STYLE, ...opts?.imageStyle }, value),
134
136
  });
135
137
  }
136
138
  case "button": {
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/sections/blocks.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/sections/blocks.tsx"],"names":[],"mappings":"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"}
package/dist/style.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { CSSProperties } from "react";
2
- import type { RisaliStyleOverrides } from "./types.js";
2
+ import type { RisaliImageValue, RisaliStyleOverrides } from "./types.js";
3
3
  export declare function safeColor(value: unknown): string | undefined;
4
4
  /**
5
5
  * Like safeColor but also accepts an 8-digit hex (alpha) and the "transparent"
@@ -16,5 +16,32 @@ export declare function safeColorAlpha(value: unknown): string | undefined;
16
16
  */
17
17
  export declare function readableForeground(value: unknown, dark?: string, light?: string): string | undefined;
18
18
  export declare function safeFontSizeMultiplier(value: unknown): number | undefined;
19
+ /**
20
+ * Build the inline layout style for an image block from its value
21
+ * (full editor PR 8): `width`/`height` in px and a non-destructive `focal`
22
+ * crop rendered as `object-position` + `object-fit: cover`. `object-fit:cover`
23
+ * is applied only when a focal point is set, so plain resizing keeps the
24
+ * default fit. Returns `base` unchanged when nothing applies.
25
+ */
26
+ export declare function imageLayoutStyle(base: CSSProperties | undefined, value: RisaliImageValue | null | undefined): CSSProperties | undefined;
19
27
  export declare function applyStyleOverrides(base: CSSProperties | undefined, overrides: RisaliStyleOverrides | null | undefined): CSSProperties | undefined;
28
+ /**
29
+ * Build the generated CSS for one block's hover + responsive overrides
30
+ * (PR 11), keyed on its `data-risali-key`. Returns "" when the key is invalid
31
+ * or no stateful override is set. The output is a concatenation of:
32
+ * `[data-risali-key="K"]:hover{…}`
33
+ * `@media (max-width:640px){[data-risali-key="K"]{…}}` (and tablet/desktop)
34
+ * Every value was validated by applyStyleOverrides, and the key by
35
+ * {@link BLOCK_KEY_RE}, so the string is safe to inject verbatim.
36
+ */
37
+ export declare function buildBlockStateCss(blockKey: string, overrides: RisaliStyleOverrides | null | undefined): string;
38
+ /**
39
+ * Collect the generated stateful CSS for every block on a page (PR 11),
40
+ * concatenated into one stylesheet body. Empty when no block has hover /
41
+ * responsive overrides.
42
+ */
43
+ export declare function buildPageStateCss(blocks: ReadonlyArray<{
44
+ key: string;
45
+ style_overrides?: RisaliStyleOverrides | null;
46
+ }>): string;
20
47
  //# sourceMappingURL=style.d.ts.map
@@ -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;AAMvD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKjE;AAYD;;;;;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,CA0B3B"}
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,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAMzE,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKjE;AAiCD;;;;;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;AAoBD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,aAAa,GAAG,SAAS,EAC/B,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GACzC,aAAa,GAAG,SAAS,CAkB3B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,GAAG,SAAS,EAC/B,SAAS,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GACjD,aAAa,GAAG,SAAS,CA0C3B;AAwDD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GACjD,MAAM,CAmBR;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAA;CAAE,CAAC,GACpF,MAAM,CAOR"}
package/dist/style.js CHANGED
@@ -28,6 +28,22 @@ const BLOCK_PADDING_PX = {
28
28
  spacious: "48px",
29
29
  };
30
30
  const TEXT_ALIGNS = new Set(["left", "center", "right"]);
31
+ // PR 10 effects — defense-in-depth re-validation of the already-canonical
32
+ // server output (sanitizeBorder/BoxShadow/Transform). Anchored patterns: only
33
+ // digits, a `solid` keyword and a hex/rgba-free colour token can appear, so no
34
+ // `url()`/`var()`/`;}` breakout survives the API payload.
35
+ const BORDER_RE = /^(?:[1-9]|1[0-2])px solid (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)$/;
36
+ const BOX_SHADOW_RE = /^-?\d{1,3}px -?\d{1,3}px \d{1,3}px (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)$/;
37
+ const TRANSFORM_RE = /^(?:rotate\(-?\d{1,3}(?:\.\d+)?deg\)(?: scale\(\d(?:\.\d+)?\))?|scale\(\d(?:\.\d+)?\))$/;
38
+ function safeBorder(value) {
39
+ return typeof value === "string" && BORDER_RE.test(value) ? value : undefined;
40
+ }
41
+ function safeBoxShadow(value) {
42
+ return typeof value === "string" && BOX_SHADOW_RE.test(value) ? value : undefined;
43
+ }
44
+ function safeTransform(value) {
45
+ return typeof value === "string" && TRANSFORM_RE.test(value) ? value : undefined;
46
+ }
31
47
  /**
32
48
  * Picks a readable foreground (near-black or white) for a brand color using
33
49
  * WCAG relative luminance — so brand-tinted surfaces (a primary button, an
@@ -56,6 +72,52 @@ export function safeFontSizeMultiplier(value) {
56
72
  return undefined;
57
73
  return value;
58
74
  }
75
+ // Image layout (full editor PR 8). Defense-in-depth clamps mirror the server
76
+ // sanitizer (sanitizeImageValue) — the value was already validated, but the API
77
+ // payload is never trusted verbatim before it becomes inline CSS.
78
+ const MAX_IMAGE_DIMENSION_PX = 4000;
79
+ function safeImageDimension(value) {
80
+ if (typeof value !== "number" || !Number.isFinite(value))
81
+ return undefined;
82
+ const n = Math.round(value);
83
+ if (n < 1)
84
+ return undefined;
85
+ return n > MAX_IMAGE_DIMENSION_PX ? MAX_IMAGE_DIMENSION_PX : n;
86
+ }
87
+ function safeFocalPct(value) {
88
+ if (typeof value !== "number" || !Number.isFinite(value))
89
+ return undefined;
90
+ const c = value < 0 ? 0 : value > 1 ? 1 : value;
91
+ return Math.round(c * 1000) / 10; // 0–100, one decimal
92
+ }
93
+ /**
94
+ * Build the inline layout style for an image block from its value
95
+ * (full editor PR 8): `width`/`height` in px and a non-destructive `focal`
96
+ * crop rendered as `object-position` + `object-fit: cover`. `object-fit:cover`
97
+ * is applied only when a focal point is set, so plain resizing keeps the
98
+ * default fit. Returns `base` unchanged when nothing applies.
99
+ */
100
+ export function imageLayoutStyle(base, value) {
101
+ if (!value || typeof value !== "object")
102
+ return base;
103
+ const width = safeImageDimension(value.width);
104
+ const height = safeImageDimension(value.height);
105
+ const fx = value.focal ? safeFocalPct(value.focal.x) : undefined;
106
+ const fy = value.focal ? safeFocalPct(value.focal.y) : undefined;
107
+ const hasFocal = fx !== undefined && fy !== undefined;
108
+ if (width === undefined && height === undefined && !hasFocal)
109
+ return base;
110
+ const next = { ...(base || {}) };
111
+ if (width !== undefined)
112
+ next.width = width;
113
+ if (height !== undefined)
114
+ next.height = height;
115
+ if (hasFocal) {
116
+ next.objectFit = "cover";
117
+ next.objectPosition = `${fx}% ${fy}%`;
118
+ }
119
+ return next;
120
+ }
59
121
  export function applyStyleOverrides(base, overrides) {
60
122
  if (!overrides)
61
123
  return base;
@@ -69,7 +131,18 @@ export function applyStyleOverrides(base, overrides) {
69
131
  const padding = typeof overrides.padding === "string"
70
132
  ? BLOCK_PADDING_PX[overrides.padding]
71
133
  : undefined;
72
- if (!color && !bg && !mult && !fontStack && !align && padding === undefined) {
134
+ const border = safeBorder(overrides.border);
135
+ const boxShadow = safeBoxShadow(overrides.box_shadow);
136
+ const transform = safeTransform(overrides.transform);
137
+ if (!color &&
138
+ !bg &&
139
+ !mult &&
140
+ !fontStack &&
141
+ !align &&
142
+ padding === undefined &&
143
+ !border &&
144
+ !boxShadow &&
145
+ !transform) {
73
146
  return base;
74
147
  }
75
148
  const next = { ...(base || {}) };
@@ -85,6 +158,104 @@ export function applyStyleOverrides(base, overrides) {
85
158
  next.textAlign = align;
86
159
  if (padding !== undefined)
87
160
  next.padding = padding;
161
+ if (border)
162
+ next.border = border;
163
+ if (boxShadow)
164
+ next.boxShadow = boxShadow;
165
+ if (transform)
166
+ next.transform = transform;
88
167
  return next;
89
168
  }
169
+ // ---------------------------------------------------------------------------
170
+ // PR 11 — stateful styles (hover + responsive breakpoints).
171
+ //
172
+ // These two layers CANNOT be expressed inline (PR 1–10 were inline-only), so
173
+ // the renderers emit a generated <style> keyed on data-risali-key. The base
174
+ // fields stay inline; only :hover and @media overrides go through here.
175
+ // Declarations carry `!important` so they beat the element's (non-important)
176
+ // inline base styles at the matching state/breakpoint.
177
+ // ---------------------------------------------------------------------------
178
+ // Only validated keys reach the selector; anything else can never be a block
179
+ // key, so an attribute-selector / </style> breakout is impossible.
180
+ const BLOCK_KEY_RE = /^[A-Za-z0-9_-]+$/;
181
+ // CSSProperties (camelCase) → CSS declaration property (kebab). Closed set —
182
+ // exactly the keys applyStyleOverrides can ever set.
183
+ const CSS_DECL_PROP = {
184
+ color: "color",
185
+ backgroundColor: "background-color",
186
+ fontSize: "font-size",
187
+ fontFamily: "font-family",
188
+ textAlign: "text-align",
189
+ padding: "padding",
190
+ border: "border",
191
+ boxShadow: "box-shadow",
192
+ transform: "transform",
193
+ };
194
+ /**
195
+ * Turn a single override slice into a `prop:val !important;…` declaration block
196
+ * by running it through applyStyleOverrides (which already validates every
197
+ * field) and serialising the resulting CSSProperties. Returns "" when nothing
198
+ * valid is set — the caller then skips the rule entirely.
199
+ */
200
+ function declarationsFor(slice) {
201
+ const css = applyStyleOverrides(undefined, slice);
202
+ if (!css)
203
+ return "";
204
+ const parts = [];
205
+ for (const [k, v] of Object.entries(css)) {
206
+ const prop = CSS_DECL_PROP[k];
207
+ if (prop && v !== undefined && v !== null && v !== "") {
208
+ parts.push(`${prop}:${v} !important`);
209
+ }
210
+ }
211
+ return parts.join(";");
212
+ }
213
+ /** Media query bounds per breakpoint (mobile ≤640 / tablet 641–1024 / desktop ≥1025). */
214
+ const BREAKPOINT_MEDIA = {
215
+ mobile: "(max-width:640px)",
216
+ tablet: "(min-width:641px) and (max-width:1024px)",
217
+ desktop: "(min-width:1025px)",
218
+ };
219
+ /**
220
+ * Build the generated CSS for one block's hover + responsive overrides
221
+ * (PR 11), keyed on its `data-risali-key`. Returns "" when the key is invalid
222
+ * or no stateful override is set. The output is a concatenation of:
223
+ * `[data-risali-key="K"]:hover{…}`
224
+ * `@media (max-width:640px){[data-risali-key="K"]{…}}` (and tablet/desktop)
225
+ * Every value was validated by applyStyleOverrides, and the key by
226
+ * {@link BLOCK_KEY_RE}, so the string is safe to inject verbatim.
227
+ */
228
+ export function buildBlockStateCss(blockKey, overrides) {
229
+ if (!overrides || typeof blockKey !== "string" || !BLOCK_KEY_RE.test(blockKey)) {
230
+ return "";
231
+ }
232
+ const sel = `[data-risali-key="${blockKey}"]`;
233
+ const out = [];
234
+ const hover = declarationsFor(overrides.hover);
235
+ if (hover)
236
+ out.push(`${sel}:hover{${hover}}`);
237
+ const responsive = overrides.responsive;
238
+ if (responsive && typeof responsive === "object") {
239
+ for (const bp of ["mobile", "tablet", "desktop"]) {
240
+ const decls = declarationsFor(responsive[bp]);
241
+ if (decls)
242
+ out.push(`@media ${BREAKPOINT_MEDIA[bp]}{${sel}{${decls}}}`);
243
+ }
244
+ }
245
+ return out.join("");
246
+ }
247
+ /**
248
+ * Collect the generated stateful CSS for every block on a page (PR 11),
249
+ * concatenated into one stylesheet body. Empty when no block has hover /
250
+ * responsive overrides.
251
+ */
252
+ export function buildPageStateCss(blocks) {
253
+ const parts = [];
254
+ for (const b of blocks) {
255
+ const css = buildBlockStateCss(b.key, b.style_overrides);
256
+ if (css)
257
+ parts.push(css);
258
+ }
259
+ return parts.join("");
260
+ }
90
261
  //# sourceMappingURL=style.js.map
package/dist/style.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -8,6 +8,26 @@ export type RisaliStyleOverrides = {
8
8
  font_size_multiplier?: number;
9
9
  text_align?: "left" | "center" | "right" | string;
10
10
  padding?: "none" | "compact" | "normal" | "spacious" | string;
11
+ /** Block border — canonical `"<1..12>px solid <color>"` (full editor PR 10). */
12
+ border?: string;
13
+ /** Block box-shadow — canonical `"<x>px <y>px <blur>px <color>"` (PR 10). */
14
+ box_shadow?: string;
15
+ /** Block transform — `"rotate(<deg>deg)"` and/or `"scale(<n>)"` (PR 10). */
16
+ transform?: string;
17
+ /**
18
+ * Hover-state overrides (full editor PR 11) — emitted as a generated
19
+ * `[data-risali-key]:hover { … }` rule (not inline). Base fields only.
20
+ */
21
+ hover?: RisaliStyleOverrides;
22
+ /**
23
+ * Per-breakpoint overrides (full editor PR 11) — emitted inside `@media`
24
+ * queries (mobile ≤640px / tablet 641–1024px / desktop ≥1025px).
25
+ */
26
+ responsive?: {
27
+ mobile?: RisaliStyleOverrides;
28
+ tablet?: RisaliStyleOverrides;
29
+ desktop?: RisaliStyleOverrides;
30
+ };
11
31
  };
12
32
  export type RisaliBlock = {
13
33
  key: string;
@@ -72,6 +92,18 @@ export type RisaliContent = {
72
92
  export type RisaliImageValue = {
73
93
  src?: string;
74
94
  alt?: string;
95
+ /** Display width in px (full editor PR 8); rendered as inline `width`. */
96
+ width?: number;
97
+ /** Display height in px (full editor PR 8); rendered as inline `height`. */
98
+ height?: number;
99
+ /**
100
+ * Non-destructive crop anchor (full editor PR 8). Each axis 0–1 (0.5 = centre);
101
+ * rendered as `object-position: {x*100}% {y*100}%` + `object-fit: cover`.
102
+ */
103
+ focal?: {
104
+ x?: number;
105
+ y?: number;
106
+ };
75
107
  };
76
108
  export type RisaliButtonValue = {
77
109
  text?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,OAAO,GACP,WAAW,GACX,MAAM,GACN,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,eAAe,GAAG,MAAM,CAAC;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAIF,MAAM,MAAM,qBAAqB,GAAG;IAGlC,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC;QAEhB,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAE5B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@risali/react",
3
- "version": "0.8.0",
3
+ "version": "0.8.5",
4
4
  "description": "React server components for Risali.app — SSR-fetch editable text/image/rich-text blocks from a client's Risali site.",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,