@trebired/frontend 13.17.0 → 13.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 13.18.0
4
+
5
+ - Added the scroll-state system, so a header that changes appearance once the page is scrolled no longer has to compute that in React. `createScrollStateBootScript()` returns a boot script that sets `data-…-scrolled` on `<html>` before the first paint and keeps it current from then on, so the correct header is painted immediately even when a reload restores a scrolled position.
6
+ - `bindScrollState()` binds the same state from the runtime for apps that do not use a boot script, and does nothing when the boot script already owns it. `bindLayouts` calls it, with the threshold configurable through `scroll` in the layout runtime options.
7
+ - `applyScrollState()`, `readScrollState()`, `SCROLL_STATE_ATTRIBUTE` and `SCROLL_STATE_SELECTOR` are exported for stylesheets and code that need the state directly. The threshold defaults to 24 pixels.
8
+
3
9
  ## 13.17.0
4
10
 
5
11
  - The locale boot script no longer keeps the document hidden until `DOMContentLoaded`. It still hides the page when the visitor's stored locale differs from the rendered one, but `LocaleProvider` now clears that pending state as soon as the localized tree has committed, so the hidden window lasts only until the correct text is on screen instead of until every deferred script has run.
@@ -1,4 +1,5 @@
1
1
  import { type BindRoot } from "../dom/index.d.ts";
2
+ import { type ScrollStateOptions } from "./scroll.js";
2
3
  import { type HeaderRuntimeOptions } from "./header.js";
3
4
  declare const LAYOUT_ROOT_SELECTOR: string;
4
5
  declare const LAYOUT_MAIN_SELECTOR: string;
@@ -20,6 +21,7 @@ type LayoutBodyState = {
20
21
  type LayoutRuntimeOptions = {
21
22
  header?: HeaderRuntimeOptions;
22
23
  mobile?: boolean;
24
+ scroll?: ScrollStateOptions;
23
25
  };
24
26
  declare function readLayoutBodyState(root?: ParentNode): LayoutBodyState;
25
27
  declare function applyLayoutBodyState(state: LayoutBodyState, options?: LayoutRuntimeOptions): LayoutBodyState;
@@ -31,6 +33,7 @@ declare function ensureLayoutPortalRoot(): HTMLElement;
31
33
  declare function createLayoutBootScript(state?: Partial<LayoutBodyState>): string;
32
34
  export { LAYOUT_BODY_ATTRIBUTE, LAYOUT_CONTENT_SELECTOR, LAYOUT_MAIN_SELECTOR, LAYOUT_MOBILE_BODY_ATTRIBUTE, LAYOUT_PORTAL_ROOT_ID, LAYOUT_PORTAL_ROOT_SELECTOR, LAYOUT_ROOT_SELECTOR, SITE_HEADER_ROOT_ATTRIBUTE, SITE_HEADER_ROOT_SELECTOR, applyLayoutBodyState, bindLayoutRoot, bindLayouts, createLayoutBootScript, ensureLayoutPortalRoot, readLayoutBodyState, siteHeaderRootHtml, syncLayoutBodyState, };
33
35
  export * from "./breadcrumb.js";
36
+ export * from "./scroll.js";
34
37
  export * from "./header.js";
35
38
  export * from "./state.js";
36
39
  export type { LayoutBodyState, LayoutRuntimeOptions, LayoutSide };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAGrB,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,uBAAuB,QAAyC,CAAC;AACvE,QAAA,MAAM,qBAAqB,2BAA0C,CAAC;AACtE,QAAA,MAAM,2BAA2B,QAA6C,CAAC;AAC/E,QAAA,MAAM,qBAAqB,kBAA6B,CAAC;AACzD,QAAA,MAAM,4BAA4B,kBAAoC,CAAC;AACvE,QAAA,MAAM,0BAA0B,kBAAuC,CAAC;AACxE,QAAA,MAAM,yBAAyB,QAA2C,CAAC;AAE3E,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnC,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAUF,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,GAAG,eAAe,CAQzE;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB,mBAgBvF;AAED,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,EAAE,OAAO,GAAE,oBAAyB,mBAE3F;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAE,oBAAyB,eAKnF;AAED,iBAAS,WAAW,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,oBAAyB,QAOjF;AAED,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,UAE7C;AAED,iBAAS,sBAAsB,gBAS9B;AAED,iBAAS,sBAAsB,CAAC,KAAK,GAAE,OAAO,CAAC,eAAe,CAAM,UAqBnE;AAED,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,CAAC;AACF,cAAa,iBAAiB,CAAC;AAC/B,cAAa,aAAa,CAAC;AAC3B,cAAa,YAAY,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAGrB,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,uBAAuB,QAAyC,CAAC;AACvE,QAAA,MAAM,qBAAqB,2BAA0C,CAAC;AACtE,QAAA,MAAM,2BAA2B,QAA6C,CAAC;AAC/E,QAAA,MAAM,qBAAqB,kBAA6B,CAAC;AACzD,QAAA,MAAM,4BAA4B,kBAAoC,CAAC;AACvE,QAAA,MAAM,0BAA0B,kBAAuC,CAAC;AACxE,QAAA,MAAM,yBAAyB,QAA2C,CAAC;AAE3E,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnC,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAUF,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,GAAG,eAAe,CAQzE;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB,mBAgBvF;AAED,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,EAAE,OAAO,GAAE,oBAAyB,mBAE3F;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAE,oBAAyB,eAKnF;AAED,iBAAS,WAAW,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,oBAAyB,QASjF;AAED,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,UAE7C;AAED,iBAAS,sBAAsB,gBAS9B;AAED,iBAAS,sBAAsB,CAAC,KAAK,GAAE,OAAO,CAAC,eAAe,CAAM,UAqBnE;AAED,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,CAAC;AACF,cAAa,iBAAiB,CAAC;AAC/B,cAAa,aAAa,CAAC;AAC3B,cAAa,aAAa,CAAC;AAC3B,cAAa,YAAY,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { queryAll } from "../dom/index.js";
2
2
  import { bindBreadcrumbs } from "./breadcrumb.js";
3
+ import { bindScrollState } from "./scroll.js";
3
4
  import { HEADER_PRIMARY_SELECTOR, HEADER_SECONDARY_SELECTOR, bindHeaders, } from "./header.js";
4
5
  import { FRONTEND_PREFIX, frontendDataAttr, frontendDataSelector } from "../namespace/index.js";
5
6
  const LAYOUT_ROOT_SELECTOR = frontendDataSelector("layout-root");
@@ -54,8 +55,10 @@ function bindLayouts(root = document, options = {}) {
54
55
  });
55
56
  bindHeaders(root, options.header || {});
56
57
  bindBreadcrumbs(root);
57
- if (root === document)
58
- syncLayoutBodyState(document, options);
58
+ if (root !== document)
59
+ return;
60
+ bindScrollState(options.scroll);
61
+ syncLayoutBodyState(document, options);
59
62
  }
60
63
  function siteHeaderRootHtml(headerHtml) {
61
64
  return `<div ${SITE_HEADER_ROOT_ATTRIBUTE}="">${headerHtml}</div>`;
@@ -96,6 +99,7 @@ function createLayoutBootScript(state = {}) {
96
99
  }
97
100
  export { LAYOUT_BODY_ATTRIBUTE, LAYOUT_CONTENT_SELECTOR, LAYOUT_MAIN_SELECTOR, LAYOUT_MOBILE_BODY_ATTRIBUTE, LAYOUT_PORTAL_ROOT_ID, LAYOUT_PORTAL_ROOT_SELECTOR, LAYOUT_ROOT_SELECTOR, SITE_HEADER_ROOT_ATTRIBUTE, SITE_HEADER_ROOT_SELECTOR, applyLayoutBodyState, bindLayoutRoot, bindLayouts, createLayoutBootScript, ensureLayoutPortalRoot, readLayoutBodyState, siteHeaderRootHtml, syncLayoutBodyState, };
98
101
  export * from "./breadcrumb.js";
102
+ export * from "./scroll.js";
99
103
  export * from "./header.js";
100
104
  export * from "./state.js";
101
105
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ declare const SCROLL_STATE_ATTRIBUTE: `data-${string}`;
2
+ declare const SCROLL_STATE_SELECTOR: string;
3
+ declare const DEFAULT_SCROLL_THRESHOLD = 24;
4
+ type ScrollStateOptions = {
5
+ threshold?: number;
6
+ };
7
+ declare function readScrollState(options?: ScrollStateOptions): boolean;
8
+ declare function applyScrollState(options?: ScrollStateOptions): boolean;
9
+ declare function bindScrollState(options?: ScrollStateOptions): () => void;
10
+ declare function createScrollStateBootScript(options?: ScrollStateOptions): string;
11
+ export { DEFAULT_SCROLL_THRESHOLD, SCROLL_STATE_ATTRIBUTE, SCROLL_STATE_SELECTOR, applyScrollState, bindScrollState, createScrollStateBootScript, readScrollState, };
12
+ export type { ScrollStateOptions };
13
+ //# sourceMappingURL=scroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../src/layout/scroll.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,sBAAsB,kBAA+B,CAAC;AAC5D,QAAA,MAAM,qBAAqB,QAA2C,CAAC;AACvE,QAAA,MAAM,wBAAwB,KAAK,CAAC;AAEpC,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAOF,iBAAS,eAAe,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAGlE;AAED,iBAAS,gBAAgB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAMnE;AAOD,iBAAS,eAAe,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,IAAI,CAYrE;AAED,iBAAS,2BAA2B,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAW7E;AAED,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,eAAe,GAChB,CAAC;AACF,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { frontendDataAttr, frontendDataSelector } from "../namespace/index.js";
2
+ const SCROLL_STATE_ATTRIBUTE = frontendDataAttr("scrolled");
3
+ const SCROLL_STATE_SELECTOR = frontendDataSelector("scrolled", "true");
4
+ const DEFAULT_SCROLL_THRESHOLD = 24;
5
+ function scrollStateThreshold(options = {}) {
6
+ const value = Number(options.threshold);
7
+ return Number.isFinite(value) && value >= 0 ? value : DEFAULT_SCROLL_THRESHOLD;
8
+ }
9
+ function readScrollState(options = {}) {
10
+ if (typeof window === "undefined")
11
+ return false;
12
+ return (window.scrollY || window.pageYOffset || 0) > scrollStateThreshold(options);
13
+ }
14
+ function applyScrollState(options = {}) {
15
+ const scrolled = readScrollState(options);
16
+ if (typeof document !== "undefined") {
17
+ document.documentElement.setAttribute(SCROLL_STATE_ATTRIBUTE, scrolled ? "true" : "false");
18
+ }
19
+ return scrolled;
20
+ }
21
+ function scrollStateBound() {
22
+ if (typeof document === "undefined")
23
+ return false;
24
+ return document.documentElement.hasAttribute(SCROLL_STATE_ATTRIBUTE);
25
+ }
26
+ function bindScrollState(options = {}) {
27
+ if (typeof window === "undefined" || scrollStateBound())
28
+ return () => undefined;
29
+ const update = () => {
30
+ applyScrollState(options);
31
+ };
32
+ update();
33
+ window.addEventListener("scroll", update, { passive: true });
34
+ window.addEventListener("resize", update, { passive: true });
35
+ return () => {
36
+ window.removeEventListener("scroll", update);
37
+ window.removeEventListener("resize", update);
38
+ };
39
+ }
40
+ function createScrollStateBootScript(options = {}) {
41
+ return [
42
+ "(function(){try{",
43
+ `var A=${JSON.stringify(SCROLL_STATE_ATTRIBUTE)},T=${scrollStateThreshold(options)};`,
44
+ "var h=document.documentElement;",
45
+ "var u=function(){h.setAttribute(A,(window.scrollY||window.pageYOffset||0)>T?'true':'false')};",
46
+ "u();",
47
+ "window.addEventListener('scroll',u,{passive:true});",
48
+ "window.addEventListener('resize',u,{passive:true});",
49
+ "}catch(e){}})();",
50
+ ].join("");
51
+ }
52
+ export { DEFAULT_SCROLL_THRESHOLD, SCROLL_STATE_ATTRIBUTE, SCROLL_STATE_SELECTOR, applyScrollState, bindScrollState, createScrollStateBootScript, readScrollState, };
53
+ //# sourceMappingURL=scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/layout/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAC5D,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACvE,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAMpC,SAAS,oBAAoB,CAAC,UAA8B,EAAE;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC;AACjF,CAAC;AAED,SAAS,eAAe,CAAC,UAA8B,EAAE;IACvD,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,gBAAgB,CAAC,UAA8B,EAAE;IACxD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAClD,OAAO,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,eAAe,CAAC,UAA8B,EAAE;IACvD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,gBAAgB,EAAE;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAChF,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,MAAM,EAAE,CAAC;IACT,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,UAA8B,EAAE;IACnE,OAAO;QACL,kBAAkB;QAClB,SAAS,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG;QACrF,iCAAiC;QACjC,+FAA+F;QAC/F,MAAM;QACN,qDAAqD;QACrD,qDAAqD;QACrD,kBAAkB;KACnB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,eAAe,GAChB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type BindRoot } from "../../dom/index.d.ts";
2
+ import { type ScrollStateOptions } from "./scroll.js";
2
3
  import { type HeaderRuntimeOptions } from "./header.js";
3
4
  declare const LAYOUT_ROOT_SELECTOR: string;
4
5
  declare const LAYOUT_MAIN_SELECTOR: string;
@@ -20,6 +21,7 @@ type LayoutBodyState = {
20
21
  type LayoutRuntimeOptions = {
21
22
  header?: HeaderRuntimeOptions;
22
23
  mobile?: boolean;
24
+ scroll?: ScrollStateOptions;
23
25
  };
24
26
  declare function readLayoutBodyState(root?: ParentNode): LayoutBodyState;
25
27
  declare function applyLayoutBodyState(state: LayoutBodyState, options?: LayoutRuntimeOptions): LayoutBodyState;
@@ -31,6 +33,7 @@ declare function ensureLayoutPortalRoot(): HTMLElement;
31
33
  declare function createLayoutBootScript(state?: Partial<LayoutBodyState>): string;
32
34
  export { LAYOUT_BODY_ATTRIBUTE, LAYOUT_CONTENT_SELECTOR, LAYOUT_MAIN_SELECTOR, LAYOUT_MOBILE_BODY_ATTRIBUTE, LAYOUT_PORTAL_ROOT_ID, LAYOUT_PORTAL_ROOT_SELECTOR, LAYOUT_ROOT_SELECTOR, SITE_HEADER_ROOT_ATTRIBUTE, SITE_HEADER_ROOT_SELECTOR, applyLayoutBodyState, bindLayoutRoot, bindLayouts, createLayoutBootScript, ensureLayoutPortalRoot, readLayoutBodyState, siteHeaderRootHtml, syncLayoutBodyState, };
33
35
  export * from "./breadcrumb.js";
36
+ export * from "./scroll.js";
34
37
  export * from "./header.js";
35
38
  export * from "./state.js";
36
39
  export type { LayoutBodyState, LayoutRuntimeOptions, LayoutSide };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAGrB,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,uBAAuB,QAAyC,CAAC;AACvE,QAAA,MAAM,qBAAqB,2BAA0C,CAAC;AACtE,QAAA,MAAM,2BAA2B,QAA6C,CAAC;AAC/E,QAAA,MAAM,qBAAqB,kBAA6B,CAAC;AACzD,QAAA,MAAM,4BAA4B,kBAAoC,CAAC;AACvE,QAAA,MAAM,0BAA0B,kBAAuC,CAAC;AACxE,QAAA,MAAM,yBAAyB,QAA2C,CAAC;AAE3E,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnC,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAUF,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,GAAG,eAAe,CAQzE;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB,mBAgBvF;AAED,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,EAAE,OAAO,GAAE,oBAAyB,mBAE3F;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAE,oBAAyB,eAKnF;AAED,iBAAS,WAAW,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,oBAAyB,QAOjF;AAED,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,UAE7C;AAED,iBAAS,sBAAsB,gBAS9B;AAED,iBAAS,sBAAsB,CAAC,KAAK,GAAE,OAAO,CAAC,eAAe,CAAM,UAqBnE;AAED,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,CAAC;AACF,cAAa,iBAAiB,CAAC;AAC/B,cAAa,aAAa,CAAC;AAC3B,cAAa,YAAY,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAGrB,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,uBAAuB,QAAyC,CAAC;AACvE,QAAA,MAAM,qBAAqB,2BAA0C,CAAC;AACtE,QAAA,MAAM,2BAA2B,QAA6C,CAAC;AAC/E,QAAA,MAAM,qBAAqB,kBAA6B,CAAC;AACzD,QAAA,MAAM,4BAA4B,kBAAoC,CAAC;AACvE,QAAA,MAAM,0BAA0B,kBAAuC,CAAC;AACxE,QAAA,MAAM,yBAAyB,QAA2C,CAAC;AAE3E,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnC,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAUF,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,GAAG,eAAe,CAQzE;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB,mBAgBvF;AAED,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,EAAE,OAAO,GAAE,oBAAyB,mBAE3F;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAE,oBAAyB,eAKnF;AAED,iBAAS,WAAW,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,oBAAyB,QASjF;AAED,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,UAE7C;AAED,iBAAS,sBAAsB,gBAS9B;AAED,iBAAS,sBAAsB,CAAC,KAAK,GAAE,OAAO,CAAC,eAAe,CAAM,UAqBnE;AAED,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,CAAC;AACF,cAAa,iBAAiB,CAAC;AAC/B,cAAa,aAAa,CAAC;AAC3B,cAAa,aAAa,CAAC;AAC3B,cAAa,YAAY,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { queryAll } from "../../dom/index.js";
2
2
  import { bindBreadcrumbs } from "./breadcrumb.js";
3
+ import { bindScrollState } from "./scroll.js";
3
4
  import { HEADER_PRIMARY_SELECTOR, HEADER_SECONDARY_SELECTOR, bindHeaders, } from "./header.js";
4
5
  import { FRONTEND_PREFIX, frontendDataAttr, frontendDataSelector } from "../../namespace/index.js";
5
6
  const LAYOUT_ROOT_SELECTOR = frontendDataSelector("layout-root");
@@ -54,8 +55,10 @@ function bindLayouts(root = document, options = {}) {
54
55
  });
55
56
  bindHeaders(root, options.header || {});
56
57
  bindBreadcrumbs(root);
57
- if (root === document)
58
- syncLayoutBodyState(document, options);
58
+ if (root !== document)
59
+ return;
60
+ bindScrollState(options.scroll);
61
+ syncLayoutBodyState(document, options);
59
62
  }
60
63
  function siteHeaderRootHtml(headerHtml) {
61
64
  return `<div ${SITE_HEADER_ROOT_ATTRIBUTE}="">${headerHtml}</div>`;
@@ -96,6 +99,7 @@ function createLayoutBootScript(state = {}) {
96
99
  }
97
100
  export { LAYOUT_BODY_ATTRIBUTE, LAYOUT_CONTENT_SELECTOR, LAYOUT_MAIN_SELECTOR, LAYOUT_MOBILE_BODY_ATTRIBUTE, LAYOUT_PORTAL_ROOT_ID, LAYOUT_PORTAL_ROOT_SELECTOR, LAYOUT_ROOT_SELECTOR, SITE_HEADER_ROOT_ATTRIBUTE, SITE_HEADER_ROOT_SELECTOR, applyLayoutBodyState, bindLayoutRoot, bindLayouts, createLayoutBootScript, ensureLayoutPortalRoot, readLayoutBodyState, siteHeaderRootHtml, syncLayoutBodyState, };
98
101
  export * from "./breadcrumb.js";
102
+ export * from "./scroll.js";
99
103
  export * from "./header.js";
100
104
  export * from "./state.js";
101
105
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,WAAW,GAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAExF,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACjE,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACjE,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AACvE,MAAM,qBAAqB,GAAG,GAAG,eAAe,qBAAqB,CAAC;AACtE,MAAM,2BAA2B,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;AAC/E,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACzD,MAAM,4BAA4B,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AACvE,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AACxE,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;AAiB3E,SAAS,kBAAkB,CAAC,IAAgB;IAC1C,OAAO,GAAG,oBAAoB,CAAC,eAAe,CAAC,GAAG,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC;AACjG,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB,EAAE,IAAgB;IACpD,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAmB,QAAQ;IACtD,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QAC/D,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;QACxC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC1F,eAAe,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;QAC1C,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAsB,EAAE,UAAgC,EAAE;IACtF,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC1F,IAAI,CAAC,YAAY,CACf,gBAAgB,CAAC,kBAAkB,CAAC,EACpC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAC5C,CAAC;IACF,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7F,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/F,IAAI,CAAC,YAAY,CACf,4BAA4B,EAC5B,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CACvE,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAmB,QAAQ,EAAE,UAAgC,EAAE;IAC1F,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CAAC,IAAwB,EAAE,UAAgC,EAAE;IAClF,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5D,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,OAAiB,QAAQ,EAAE,UAAgC,EAAE;IAChF,QAAQ,CAAc,IAAI,EAAE,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACrE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACxC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,IAAI,KAAK,QAAQ;QAAE,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,OAAO,QAAQ,0BAA0B,OAAO,UAAU,QAAQ,CAAC;AACrE,CAAC;AAED,SAAS,sBAAsB;IAC7B,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAChE,IAAI,QAAQ,YAAY,WAAW;QAAE,OAAO,QAAQ,CAAC;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,GAAG,qBAAqB,CAAC;IAChC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkC,EAAE;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI;QACnC,cAAc,EAAE,KAAK,CAAC,cAAc,KAAK,IAAI;QAC7C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI;QACrD,eAAe,EAAE,KAAK,CAAC,eAAe,KAAK,IAAI;QAC/C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI;KACxD,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7B,OAAO;QACL,kBAAkB;QAClB,aAAa,OAAO,GAAG;QACvB,yBAAyB;QACzB,kBAAkB;QAClB,qBAAqB,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,WAAW;QACrE,qBAAqB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,mCAAmC;QAC1G,qBAAqB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,4CAA4C;QACrH,qBAAqB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,wCAAwC;QAC7G,qBAAqB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,yCAAyC;QAC/G,qBAAqB,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,4CAA4C;QAC7G,kBAAkB;KACnB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,CAAC;AACF,cAAa,iBAAiB,CAAC;AAC/B,cAAa,aAAa,CAAC;AAC3B,cAAa,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ declare const SCROLL_STATE_ATTRIBUTE: `data-${string}`;
2
+ declare const SCROLL_STATE_SELECTOR: string;
3
+ declare const DEFAULT_SCROLL_THRESHOLD = 24;
4
+ type ScrollStateOptions = {
5
+ threshold?: number;
6
+ };
7
+ declare function readScrollState(options?: ScrollStateOptions): boolean;
8
+ declare function applyScrollState(options?: ScrollStateOptions): boolean;
9
+ declare function bindScrollState(options?: ScrollStateOptions): () => void;
10
+ declare function createScrollStateBootScript(options?: ScrollStateOptions): string;
11
+ export { DEFAULT_SCROLL_THRESHOLD, SCROLL_STATE_ATTRIBUTE, SCROLL_STATE_SELECTOR, applyScrollState, bindScrollState, createScrollStateBootScript, readScrollState, };
12
+ export type { ScrollStateOptions };
13
+ //# sourceMappingURL=scroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../src/layout/scroll.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,sBAAsB,kBAA+B,CAAC;AAC5D,QAAA,MAAM,qBAAqB,QAA2C,CAAC;AACvE,QAAA,MAAM,wBAAwB,KAAK,CAAC;AAEpC,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAOF,iBAAS,eAAe,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAGlE;AAED,iBAAS,gBAAgB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAMnE;AAOD,iBAAS,eAAe,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,IAAI,CAYrE;AAED,iBAAS,2BAA2B,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAW7E;AAED,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,eAAe,GAChB,CAAC;AACF,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { frontendDataAttr, frontendDataSelector } from "../../namespace/index.js";
2
+ const SCROLL_STATE_ATTRIBUTE = frontendDataAttr("scrolled");
3
+ const SCROLL_STATE_SELECTOR = frontendDataSelector("scrolled", "true");
4
+ const DEFAULT_SCROLL_THRESHOLD = 24;
5
+ function scrollStateThreshold(options = {}) {
6
+ const value = Number(options.threshold);
7
+ return Number.isFinite(value) && value >= 0 ? value : DEFAULT_SCROLL_THRESHOLD;
8
+ }
9
+ function readScrollState(options = {}) {
10
+ if (typeof window === "undefined")
11
+ return false;
12
+ return (window.scrollY || window.pageYOffset || 0) > scrollStateThreshold(options);
13
+ }
14
+ function applyScrollState(options = {}) {
15
+ const scrolled = readScrollState(options);
16
+ if (typeof document !== "undefined") {
17
+ document.documentElement.setAttribute(SCROLL_STATE_ATTRIBUTE, scrolled ? "true" : "false");
18
+ }
19
+ return scrolled;
20
+ }
21
+ function scrollStateBound() {
22
+ if (typeof document === "undefined")
23
+ return false;
24
+ return document.documentElement.hasAttribute(SCROLL_STATE_ATTRIBUTE);
25
+ }
26
+ function bindScrollState(options = {}) {
27
+ if (typeof window === "undefined" || scrollStateBound())
28
+ return () => undefined;
29
+ const update = () => {
30
+ applyScrollState(options);
31
+ };
32
+ update();
33
+ window.addEventListener("scroll", update, { passive: true });
34
+ window.addEventListener("resize", update, { passive: true });
35
+ return () => {
36
+ window.removeEventListener("scroll", update);
37
+ window.removeEventListener("resize", update);
38
+ };
39
+ }
40
+ function createScrollStateBootScript(options = {}) {
41
+ return [
42
+ "(function(){try{",
43
+ `var A=${JSON.stringify(SCROLL_STATE_ATTRIBUTE)},T=${scrollStateThreshold(options)};`,
44
+ "var h=document.documentElement;",
45
+ "var u=function(){h.setAttribute(A,(window.scrollY||window.pageYOffset||0)>T?'true':'false')};",
46
+ "u();",
47
+ "window.addEventListener('scroll',u,{passive:true});",
48
+ "window.addEventListener('resize',u,{passive:true});",
49
+ "}catch(e){}})();",
50
+ ].join("");
51
+ }
52
+ export { DEFAULT_SCROLL_THRESHOLD, SCROLL_STATE_ATTRIBUTE, SCROLL_STATE_SELECTOR, applyScrollState, bindScrollState, createScrollStateBootScript, readScrollState, };
53
+ //# sourceMappingURL=scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/layout/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAC5D,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACvE,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAMpC,SAAS,oBAAoB,CAAC,UAA8B,EAAE;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC;AACjF,CAAC;AAED,SAAS,eAAe,CAAC,UAA8B,EAAE;IACvD,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,gBAAgB,CAAC,UAA8B,EAAE;IACxD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAClD,OAAO,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,eAAe,CAAC,UAA8B,EAAE;IACvD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,gBAAgB,EAAE;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAChF,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,MAAM,EAAE,CAAC;IACT,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,UAA8B,EAAE;IACnE,OAAO;QACL,kBAAkB;QAClB,SAAS,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG;QACrF,iCAAiC;QACjC,+FAA+F;QAC/F,MAAM;QACN,qDAAqD;QACrD,qDAAqD;QACrD,kBAAkB;KACnB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,eAAe,GAChB,CAAC"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  }
9
9
  },
10
10
  "name": "@trebired/frontend",
11
- "version": "13.17.0",
11
+ "version": "13.18.0",
12
12
  "description": "Generic browser runtime systems for Trebired frontend packages and applications.",
13
13
  "type": "module",
14
14
  "private": false,