@se-studio/core-ui 1.38.3 → 1.38.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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @se-studio/core-ui
2
2
 
3
+ ## 1.38.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 374007e: Re-run HtmlComponent inline scripts after client-side navigations, and remove nodes, listeners, and timers from the previous run.
8
+
9
+ ## 1.38.4
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [e53d0e7]
14
+ - @se-studio/contentful-rest-api@2.0.7
15
+ - @se-studio/core-data-types@2.0.2
16
+
3
17
  ## 1.38.3
4
18
 
5
19
  ### Patch Changes
@@ -16,7 +16,9 @@ export type HtmlComponentProps = IBaseHtmlComponent & {
16
16
  *
17
17
  * - Custom CSS is scoped with [data-hc-id] (see `scopeCss`).
18
18
  * - Allowlisted `externalScripts` load with `next/script` `src`. Inline `customJs` waits for `onReady`.
19
- * - Custom JS uses `next/script` with `loadScriptOnce` controlling id deduplication.
19
+ * - Inline `customJs` runs again after a client-side navigation. The previous run's
20
+ * nodes, listeners, and timers are removed first. `loadScriptOnce` still picks the
21
+ * inline script id; it does not skip that re-run.
20
22
  * - `fullWidth` applies breakout classes (customizable via renderer config).
21
23
  * - Links in raw HTML are plain <a> tags and do not benefit from Next.js prefetching.
22
24
  *
@@ -1 +1 @@
1
- {"version":3,"file":"HtmlComponent.d.ts","sourceRoot":"","sources":["../../src/components/HtmlComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAWrE,0FAA0F;AAC1F,eAAO,MAAM,sCAAsC,8DACU,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,GAAG;IACpD,mHAAmH;IACnH,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,mFAAmF;IACnF,gCAAgC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrD,oFAAoF;IACpF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EACF,OAAO,EACP,SAAS,EACT,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,gCAAgC,EAChC,YAAY,GACb,EAAE,kBAAkB,+BA4CpB"}
1
+ {"version":3,"file":"HtmlComponent.d.ts","sourceRoot":"","sources":["../../src/components/HtmlComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAWrE,0FAA0F;AAC1F,eAAO,MAAM,sCAAsC,8DACU,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,GAAG;IACpD,mHAAmH;IACnH,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,mFAAmF;IACnF,gCAAgC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrD,oFAAoF;IACpF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EACF,OAAO,EACP,SAAS,EACT,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,gCAAgC,EAChC,YAAY,GACb,EAAE,kBAAkB,+BA4CpB"}
@@ -11,7 +11,9 @@ export const defaultHtmlComponentFullWidthClassName = 'relative left-1/2 w-scree
11
11
  *
12
12
  * - Custom CSS is scoped with [data-hc-id] (see `scopeCss`).
13
13
  * - Allowlisted `externalScripts` load with `next/script` `src`. Inline `customJs` waits for `onReady`.
14
- * - Custom JS uses `next/script` with `loadScriptOnce` controlling id deduplication.
14
+ * - Inline `customJs` runs again after a client-side navigation. The previous run's
15
+ * nodes, listeners, and timers are removed first. `loadScriptOnce` still picks the
16
+ * inline script id; it does not skip that re-run.
15
17
  * - `fullWidth` applies breakout classes (customizable via renderer config).
16
18
  * - Links in raw HTML are plain <a> tags and do not benefit from Next.js prefetching.
17
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"HtmlComponent.js","sourceRoot":"","sources":["../../src/components/HtmlComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,0FAA0F;AAC1F,MAAM,CAAC,MAAM,sCAAsC,GACjD,2DAA2D,CAAC;AAa9D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,EAAE,EACF,OAAO,EACP,SAAS,EACT,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,gCAAgC,EAChC,YAAY,GACO;IACnB,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;IAC/E,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,SAAS,GAAG,EAAE,UAAU,EAAE,gCAAgC,EAAE,CAAC;IACnE,MAAM,sBAAsB,GAAG,oCAAoC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAEhG,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,kCAAkC,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,0DAA0D,GAAG,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9D,GAAG;QACH,EAAE,EAAE,6BAA6B,CAAC,GAAG,CAAC;KACvC,CAAC,CAAC,CAAC;IACJ,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtE,IAAI,QAA4B,CAAC;IACjC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,EAAE,CAAC;YAC5C,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,sCAAsC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,CACL,6BAAiB,EAAE,uBAAqB,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,aACxF,SAAS,IAAI,0BAAQ,SAAS,GAAS,EAExC,cAAK,uBAAuB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAI,EACpD,UAAU,IAAI,CACb,KAAC,mBAAmB,IAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,kBAAkB,GACnC,CACH,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"HtmlComponent.js","sourceRoot":"","sources":["../../src/components/HtmlComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,0FAA0F;AAC1F,MAAM,CAAC,MAAM,sCAAsC,GACjD,2DAA2D,CAAC;AAa9D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,EAAE,EACF,OAAO,EACP,SAAS,EACT,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,gCAAgC,EAChC,YAAY,GACO;IACnB,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;IAC/E,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,SAAS,GAAG,EAAE,UAAU,EAAE,gCAAgC,EAAE,CAAC;IACnE,MAAM,sBAAsB,GAAG,oCAAoC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAEhG,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,kCAAkC,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,0DAA0D,GAAG,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9D,GAAG;QACH,EAAE,EAAE,6BAA6B,CAAC,GAAG,CAAC;KACvC,CAAC,CAAC,CAAC;IACJ,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtE,IAAI,QAA4B,CAAC;IACjC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,EAAE,CAAC;YAC5C,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,sCAAsC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,CACL,6BAAiB,EAAE,uBAAqB,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,aACxF,SAAS,IAAI,0BAAQ,SAAS,GAAS,EAExC,cAAK,uBAAuB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAI,EACpD,UAAU,IAAI,CACb,KAAC,mBAAmB,IAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,kBAAkB,GACnC,CACH,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -5,8 +5,10 @@ export interface HtmlComponentExternalScriptRef {
5
5
  }
6
6
  /**
7
7
  * Client wrapper for HtmlComponent scripts.
8
- * External `src` scripts use next/script (shared `id` = one download). Inline `customJs`
9
- * is injected only after every listed src has fired `onReady` (including already-loaded).
8
+ * External `src` scripts use next/script (shared `id` = one download).
9
+ * Inline `customJs` runs after every src is ready, again when the pathname
10
+ * changes, and drops nodes, listeners, and timers from the previous run.
11
+ * It is not also passed to next/script, so the first load runs once.
10
12
  */
11
13
  export declare function HtmlComponentScript({ customJs, scriptStrategy, scriptId, externalScripts, }: {
12
14
  customJs?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"HtmlComponentScript.d.ts","sourceRoot":"","sources":["../../src/components/HtmlComponentScript.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAIrE,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ;AAWD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,eAAoB,GACrB,EAAE;IACD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,SAAS,8BAA8B,EAAE,CAAC;CAC7D,+BAoCA"}
1
+ {"version":3,"file":"HtmlComponentScript.d.ts","sourceRoot":"","sources":["../../src/components/HtmlComponentScript.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAMrE,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ;AAWD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,eAAoB,GACrB,EAAE;IACD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,SAAS,8BAA8B,EAAE,CAAC;CAC7D,+BAmEA"}
@@ -1,7 +1,9 @@
1
1
  'use client';
2
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
3
+ import { usePathname } from 'next/navigation';
3
4
  import Script from 'next/script';
4
- import { useCallback, useState } from 'react';
5
+ import { useCallback, useEffect, useState } from 'react';
6
+ import { runHtmlComponentScript } from '../utils/runHtmlComponentScript';
5
7
  function addToSet(prev, value) {
6
8
  if (prev.has(value)) {
7
9
  return prev;
@@ -12,10 +14,13 @@ function addToSet(prev, value) {
12
14
  }
13
15
  /**
14
16
  * Client wrapper for HtmlComponent scripts.
15
- * External `src` scripts use next/script (shared `id` = one download). Inline `customJs`
16
- * is injected only after every listed src has fired `onReady` (including already-loaded).
17
+ * External `src` scripts use next/script (shared `id` = one download).
18
+ * Inline `customJs` runs after every src is ready, again when the pathname
19
+ * changes, and drops nodes, listeners, and timers from the previous run.
20
+ * It is not also passed to next/script, so the first load runs once.
17
21
  */
18
22
  export function HtmlComponentScript({ customJs, scriptStrategy, scriptId, externalScripts = [], }) {
23
+ const pathname = usePathname();
19
24
  const [loaded, setLoaded] = useState(() => new Set());
20
25
  const [failed, setFailed] = useState(() => new Set());
21
26
  const markLoaded = useCallback((src) => {
@@ -27,6 +32,38 @@ export function HtmlComponentScript({ customJs, scriptStrategy, scriptId, extern
27
32
  const sourcesReady = externalScripts.length === 0 || externalScripts.every((item) => loaded.has(item.src));
28
33
  const sourcesFailed = externalScripts.some((item) => failed.has(item.src));
29
34
  const injectInline = Boolean(customJs) && sourcesReady && !sourcesFailed;
30
- return (_jsxs(_Fragment, { children: [externalScripts.map(({ src, id }) => (_jsx(Script, { id: id, src: src, strategy: scriptStrategy, onReady: () => markLoaded(src), onError: () => markFailed(src) }, src))), injectInline ? (_jsx(Script, { id: scriptId, strategy: scriptStrategy, children: customJs })) : null] }));
35
+ useEffect(() => {
36
+ // Re-subscribe when the App Router pathname changes (client navigation).
37
+ pathname;
38
+ if (!injectInline || !customJs) {
39
+ return;
40
+ }
41
+ let disposed = false;
42
+ let stopScript;
43
+ let cancelSchedule;
44
+ const start = () => {
45
+ if (disposed) {
46
+ return;
47
+ }
48
+ stopScript = runHtmlComponentScript(customJs, scriptId);
49
+ };
50
+ if (scriptStrategy === 'lazyOnload' && typeof window.requestIdleCallback === 'function') {
51
+ const idleId = window.requestIdleCallback(() => start());
52
+ cancelSchedule = () => window.cancelIdleCallback(idleId);
53
+ }
54
+ else if (scriptStrategy === 'lazyOnload') {
55
+ const timeoutId = window.setTimeout(start, 1);
56
+ cancelSchedule = () => window.clearTimeout(timeoutId);
57
+ }
58
+ else {
59
+ start();
60
+ }
61
+ return () => {
62
+ disposed = true;
63
+ cancelSchedule?.();
64
+ stopScript?.();
65
+ };
66
+ }, [customJs, injectInline, pathname, scriptId, scriptStrategy]);
67
+ return (_jsx(_Fragment, { children: externalScripts.map(({ src, id }) => (_jsx(Script, { id: id, src: src, strategy: scriptStrategy, onReady: () => markLoaded(src), onError: () => markFailed(src) }, src))) }));
31
68
  }
32
69
  //# sourceMappingURL=HtmlComponentScript.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HtmlComponentScript.js","sourceRoot":"","sources":["../../src/components/HtmlComponentScript.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAO9C,SAAS,QAAQ,CAAC,IAAyB,EAAE,KAAa;IACxD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,eAAe,GAAG,EAAE,GAMrB;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAsB,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAsB,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAE3E,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,GAAW,EAAE,EAAE;QAC7C,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,GAAW,EAAE,EAAE;QAC7C,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAChB,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxF,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,YAAY,IAAI,CAAC,aAAa,CAAC;IAEzE,OAAO,CACL,8BACG,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CACpC,KAAC,MAAM,IAEL,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IALzB,GAAG,CAMR,CACH,CAAC,EACD,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,MAAM,IAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,YAC3C,QAAQ,GACF,CACV,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"HtmlComponentScript.js","sourceRoot":"","sources":["../../src/components/HtmlComponentScript.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Runs an HtmlComponent inline script and returns a cleanup for that run.
3
+ * Nodes and listeners created during the run, and timers started by the script
4
+ * or its timer callbacks, are removed so a client navigation does not keep them.
5
+ */
6
+ export declare function runHtmlComponentScript(code: string, scriptId: string): () => void;
7
+ //# sourceMappingURL=runHtmlComponentScript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runHtmlComponentScript.d.ts","sourceRoot":"","sources":["../../src/utils/runHtmlComponentScript.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4cH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,IAAI,CAYjF"}
@@ -0,0 +1,392 @@
1
+ /**
2
+ * Runs an HtmlComponent inline script and returns a cleanup for that run.
3
+ * Nodes and listeners created during the run, and timers started by the script
4
+ * or its timer callbacks, are removed so a client navigation does not keep them.
5
+ */
6
+ const RUNNER_ATTR = 'data-hc-script-runner';
7
+ const listenerCells = new WeakMap();
8
+ const stack = [];
9
+ let depth = 0;
10
+ let originals = null;
11
+ let runSeq = 0;
12
+ function currentTrack() {
13
+ return stack[stack.length - 1];
14
+ }
15
+ function isRunner(node) {
16
+ return node instanceof HTMLScriptElement && node.hasAttribute(RUNNER_ATTR);
17
+ }
18
+ function createTrack() {
19
+ runSeq += 1;
20
+ return {
21
+ nodes: new Set(),
22
+ listeners: [],
23
+ runKey: `r${runSeq}`,
24
+ };
25
+ }
26
+ function connectedArgs(nodes) {
27
+ const connected = new Set();
28
+ for (const node of nodes) {
29
+ if (typeof node !== 'string' && node.isConnected) {
30
+ connected.add(node);
31
+ }
32
+ }
33
+ return connected;
34
+ }
35
+ function recordFreshChildren(parent, before, alreadyConnected) {
36
+ const track = currentTrack();
37
+ if (!track) {
38
+ return;
39
+ }
40
+ for (const child of parent.childNodes) {
41
+ if (!before.has(child) && !alreadyConnected.has(child) && !isRunner(child)) {
42
+ track.nodes.add(child);
43
+ }
44
+ }
45
+ }
46
+ function rememberInserted(node) {
47
+ const track = currentTrack();
48
+ if (!track || node.isConnected || isRunner(node)) {
49
+ return false;
50
+ }
51
+ return true;
52
+ }
53
+ function patchedAppendChild(node) {
54
+ const saved = originals;
55
+ if (!saved) {
56
+ return node;
57
+ }
58
+ if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
59
+ const fresh = Array.from(node.childNodes).filter((child) => rememberInserted(child));
60
+ const inserted = saved.appendChild.call(this, node);
61
+ const track = currentTrack();
62
+ if (track) {
63
+ for (const child of fresh) {
64
+ track.nodes.add(child);
65
+ }
66
+ }
67
+ return inserted;
68
+ }
69
+ const trackNode = rememberInserted(node);
70
+ const inserted = saved.appendChild.call(this, node);
71
+ if (trackNode) {
72
+ currentTrack()?.nodes.add(node);
73
+ }
74
+ return inserted;
75
+ }
76
+ function patchedInsertBefore(node, child) {
77
+ const saved = originals;
78
+ if (!saved) {
79
+ return node;
80
+ }
81
+ const trackNode = rememberInserted(node);
82
+ const inserted = saved.insertBefore.call(this, node, child);
83
+ if (trackNode) {
84
+ currentTrack()?.nodes.add(node);
85
+ }
86
+ return inserted;
87
+ }
88
+ function patchParentInsert(method, parentOf) {
89
+ return function patched(...nodes) {
90
+ const parent = parentOf(this);
91
+ const before = parent ? new Set(parent.childNodes) : null;
92
+ const alreadyConnected = connectedArgs(nodes);
93
+ method.apply(this, nodes);
94
+ if (parent && before) {
95
+ recordFreshChildren(parent, before, alreadyConnected);
96
+ }
97
+ };
98
+ }
99
+ function patchedInsertAdjacentElement(position, element) {
100
+ const saved = originals;
101
+ if (!saved) {
102
+ return element;
103
+ }
104
+ const trackNode = rememberInserted(element);
105
+ const result = saved.insertAdjacentElement.call(this, position, element);
106
+ if (trackNode) {
107
+ currentTrack()?.nodes.add(element);
108
+ }
109
+ return result;
110
+ }
111
+ function patchedInsertAdjacentHTML(position, html) {
112
+ const saved = originals;
113
+ if (!saved) {
114
+ return;
115
+ }
116
+ const parent = position === 'beforebegin' || position === 'afterend' ? this.parentNode : this;
117
+ const before = parent ? new Set(parent.childNodes) : null;
118
+ saved.insertAdjacentHTML.call(this, position, html);
119
+ if (parent && before) {
120
+ recordFreshChildren(parent, before, new Set());
121
+ }
122
+ }
123
+ function wrapListener(listener, track) {
124
+ const existing = listenerCells.get(listener);
125
+ if (existing) {
126
+ existing.track = track;
127
+ return existing.wrapped;
128
+ }
129
+ const cell = {
130
+ track,
131
+ wrapped: () => undefined,
132
+ };
133
+ cell.wrapped = function wrapped(event) {
134
+ enter(cell.track);
135
+ try {
136
+ listener.call(this, event);
137
+ }
138
+ finally {
139
+ leave();
140
+ }
141
+ };
142
+ listenerCells.set(listener, cell);
143
+ return cell.wrapped;
144
+ }
145
+ function patchedAddEventListener(type, listener, options) {
146
+ const saved = originals;
147
+ if (!saved) {
148
+ return;
149
+ }
150
+ const track = currentTrack();
151
+ if (!track || listener == null) {
152
+ saved.addEventListener.call(this, type, listener, options);
153
+ return;
154
+ }
155
+ const wrapped = typeof listener === 'function' ? wrapListener(listener, track) : listener;
156
+ saved.addEventListener.call(this, type, wrapped, options);
157
+ track.listeners.push({ target: this, type, wrapped, options });
158
+ }
159
+ function patchedRemoveEventListener(type, listener, options) {
160
+ const saved = originals;
161
+ if (!saved) {
162
+ return;
163
+ }
164
+ const wrapped = typeof listener === 'function' ? listenerCells.get(listener)?.wrapped : undefined;
165
+ saved.removeEventListener.call(this, type, wrapped ?? listener, options);
166
+ if (!listener) {
167
+ return;
168
+ }
169
+ for (const track of stack) {
170
+ track.listeners = track.listeners.filter((entry) => !(entry.target === this &&
171
+ entry.type === type &&
172
+ (entry.wrapped === listener || entry.wrapped === wrapped)));
173
+ }
174
+ }
175
+ function applyPatches() {
176
+ const saved = {
177
+ appendChild: Node.prototype.appendChild,
178
+ insertBefore: Node.prototype.insertBefore,
179
+ append: Element.prototype.append,
180
+ prepend: Element.prototype.prepend,
181
+ before: Element.prototype.before,
182
+ after: Element.prototype.after,
183
+ replaceChildren: Element.prototype.replaceChildren,
184
+ insertAdjacentElement: Element.prototype.insertAdjacentElement,
185
+ insertAdjacentHTML: Element.prototype.insertAdjacentHTML,
186
+ addEventListener: EventTarget.prototype.addEventListener,
187
+ removeEventListener: EventTarget.prototype.removeEventListener,
188
+ };
189
+ originals = saved;
190
+ Node.prototype.appendChild = patchedAppendChild;
191
+ Node.prototype.insertBefore = patchedInsertBefore;
192
+ Element.prototype.append = patchParentInsert(saved.append, (element) => element);
193
+ Element.prototype.prepend = patchParentInsert(saved.prepend, (element) => element);
194
+ Element.prototype.before = patchParentInsert(saved.before, (element) => element.parentNode);
195
+ Element.prototype.after = patchParentInsert(saved.after, (element) => element.parentNode);
196
+ Element.prototype.replaceChildren = patchParentInsert(saved.replaceChildren, (element) => element);
197
+ Element.prototype.insertAdjacentElement = patchedInsertAdjacentElement;
198
+ Element.prototype.insertAdjacentHTML = patchedInsertAdjacentHTML;
199
+ EventTarget.prototype.addEventListener = patchedAddEventListener;
200
+ EventTarget.prototype.removeEventListener = patchedRemoveEventListener;
201
+ }
202
+ function restorePatches() {
203
+ const saved = originals;
204
+ if (!saved) {
205
+ return;
206
+ }
207
+ Node.prototype.appendChild = saved.appendChild;
208
+ Node.prototype.insertBefore = saved.insertBefore;
209
+ Element.prototype.append = saved.append;
210
+ Element.prototype.prepend = saved.prepend;
211
+ Element.prototype.before = saved.before;
212
+ Element.prototype.after = saved.after;
213
+ Element.prototype.replaceChildren = saved.replaceChildren;
214
+ Element.prototype.insertAdjacentElement = saved.insertAdjacentElement;
215
+ Element.prototype.insertAdjacentHTML = saved.insertAdjacentHTML;
216
+ EventTarget.prototype.addEventListener = saved.addEventListener;
217
+ EventTarget.prototype.removeEventListener = saved.removeEventListener;
218
+ originals = null;
219
+ }
220
+ function enter(track) {
221
+ if (depth === 0) {
222
+ applyPatches();
223
+ }
224
+ stack.push(track);
225
+ depth += 1;
226
+ }
227
+ function leave() {
228
+ stack.pop();
229
+ depth -= 1;
230
+ if (depth === 0) {
231
+ restorePatches();
232
+ }
233
+ }
234
+ function timerAttribute(kind, runKey) {
235
+ return `data-hc-${kind}-${runKey}`;
236
+ }
237
+ function takeTimerIds(kind, runKey) {
238
+ const name = timerAttribute(kind, runKey);
239
+ const raw = document.documentElement.getAttribute(name);
240
+ document.documentElement.removeAttribute(name);
241
+ if (!raw) {
242
+ return [];
243
+ }
244
+ return raw
245
+ .split(',')
246
+ .map((part) => Number(part))
247
+ .filter((id) => Number.isFinite(id));
248
+ }
249
+ /**
250
+ * The inline script runs in the page realm, which is not always the same object as this
251
+ * module's `window` (jsdom). Timer wrappers are installed inside that script so the ids
252
+ * it receives are the ones we later clear. Ids are written onto the document element.
253
+ */
254
+ function withTimerTracking(code, runKey) {
255
+ const key = JSON.stringify(runKey);
256
+ return `(function () {
257
+ var runKey = ${key};
258
+ var w = window;
259
+ var origTimeout = w.setTimeout;
260
+ var origInterval = w.setInterval;
261
+ var origRaf = w.requestAnimationFrame;
262
+ var origClearTimeout = w.clearTimeout;
263
+ var origClearInterval = w.clearInterval;
264
+ var origCancelRaf = w.cancelAnimationFrame;
265
+ var depth = 0;
266
+ function add(kind, id) {
267
+ var name = "data-hc-" + kind + "-" + runKey;
268
+ var el = document.documentElement;
269
+ var prev = el.getAttribute(name);
270
+ el.setAttribute(name, prev ? prev + "," + String(id) : String(id));
271
+ }
272
+ function drop(kind, id) {
273
+ var name = "data-hc-" + kind + "-" + runKey;
274
+ var el = document.documentElement;
275
+ var prev = el.getAttribute(name);
276
+ if (!prev) return;
277
+ var next = prev.split(",").filter(function (part) { return part !== String(id); });
278
+ if (next.length === 0) el.removeAttribute(name);
279
+ else el.setAttribute(name, next.join(","));
280
+ }
281
+ function enter() {
282
+ if (depth === 0) {
283
+ w.setTimeout = function (handler, timeout) {
284
+ var args = Array.prototype.slice.call(arguments, 2);
285
+ var wrapped = typeof handler === "function" ? function () {
286
+ enter();
287
+ try { return handler.apply(this, arguments); }
288
+ finally { leave(); }
289
+ } : handler;
290
+ var id = origTimeout.apply(w, [wrapped, timeout].concat(args));
291
+ add("timeouts", id);
292
+ return id;
293
+ };
294
+ w.setInterval = function (handler, timeout) {
295
+ var args = Array.prototype.slice.call(arguments, 2);
296
+ var wrapped = typeof handler === "function" ? function () {
297
+ enter();
298
+ try { return handler.apply(this, arguments); }
299
+ finally { leave(); }
300
+ } : handler;
301
+ var id = origInterval.apply(w, [wrapped, timeout].concat(args));
302
+ add("intervals", id);
303
+ return id;
304
+ };
305
+ w.requestAnimationFrame = function (callback) {
306
+ var wrapped = function (time) {
307
+ enter();
308
+ try { return callback(time); }
309
+ finally { leave(); }
310
+ };
311
+ var id = origRaf.call(w, wrapped);
312
+ add("frames", id);
313
+ return id;
314
+ };
315
+ w.clearTimeout = function (id) {
316
+ drop("timeouts", id);
317
+ return origClearTimeout.call(w, id);
318
+ };
319
+ w.clearInterval = function (id) {
320
+ drop("intervals", id);
321
+ return origClearInterval.call(w, id);
322
+ };
323
+ w.cancelAnimationFrame = function (id) {
324
+ drop("frames", id);
325
+ return origCancelRaf.call(w, id);
326
+ };
327
+ }
328
+ depth += 1;
329
+ }
330
+ function leave() {
331
+ depth -= 1;
332
+ if (depth === 0) {
333
+ w.setTimeout = origTimeout;
334
+ w.setInterval = origInterval;
335
+ w.requestAnimationFrame = origRaf;
336
+ w.clearTimeout = origClearTimeout;
337
+ w.clearInterval = origClearInterval;
338
+ w.cancelAnimationFrame = origCancelRaf;
339
+ }
340
+ }
341
+ enter();
342
+ try {
343
+ ${code}
344
+ } finally {
345
+ leave();
346
+ }
347
+ })();`;
348
+ }
349
+ function dispose(track) {
350
+ for (const id of takeTimerIds('timeouts', track.runKey)) {
351
+ window.clearTimeout(id);
352
+ }
353
+ for (const id of takeTimerIds('intervals', track.runKey)) {
354
+ window.clearInterval(id);
355
+ }
356
+ for (const id of takeTimerIds('frames', track.runKey)) {
357
+ window.cancelAnimationFrame(id);
358
+ }
359
+ for (const entry of track.listeners) {
360
+ entry.target.removeEventListener(entry.type, entry.wrapped, entry.options);
361
+ }
362
+ track.listeners = [];
363
+ for (const node of track.nodes) {
364
+ node.parentNode?.removeChild(node);
365
+ }
366
+ track.nodes.clear();
367
+ }
368
+ function injectAndRun(code, scriptId, runKey) {
369
+ const script = document.createElement('script');
370
+ script.id = scriptId;
371
+ script.setAttribute(RUNNER_ATTR, '');
372
+ script.text = withTimerTracking(code, runKey);
373
+ const parent = document.body ?? document.head ?? document.documentElement;
374
+ parent.appendChild(script);
375
+ script.remove();
376
+ }
377
+ export function runHtmlComponentScript(code, scriptId) {
378
+ const track = createTrack();
379
+ enter(track);
380
+ try {
381
+ injectAndRun(code, scriptId, track.runKey);
382
+ }
383
+ catch (error) {
384
+ dispose(track);
385
+ throw error;
386
+ }
387
+ finally {
388
+ leave();
389
+ }
390
+ return () => dispose(track);
391
+ }
392
+ //# sourceMappingURL=runHtmlComponentScript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runHtmlComponentScript.js","sourceRoot":"","sources":["../../src/utils/runHtmlComponentScript.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/core-ui",
3
- "version": "1.38.3",
3
+ "version": "1.38.5",
4
4
  "description": "Shared React UI component library with Tailwind CSS v4 for SE Studio applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -80,8 +80,8 @@
80
80
  "@contentful/rich-text-react-renderer": "^16.2.2",
81
81
  "@contentful/rich-text-types": "^17.2.7",
82
82
  "@radix-ui/react-slot": "1.3.3",
83
- "@se-studio/contentful-rest-api": "2.0.6",
84
- "@se-studio/core-data-types": "2.0.1",
83
+ "@se-studio/contentful-rest-api": "2.0.7",
84
+ "@se-studio/core-data-types": "2.0.2",
85
85
  "@types/mustache": "4.2.6",
86
86
  "@vimeo/player": "^2.30.4",
87
87
  "clsx": "^2.1.1",